chore(js/css): update generated files

This commit is contained in:
InverseBot committed 2020-01-21 01:21:02 -05:00
1 parent c69382cb5d
commit d92cd9c3f3
8 files changed
+221 -155

No files matched your search

+213 -147
View File
@@ -2,7 +2,7 @@
* AngularJS Material Design
* https://github.com/angular/material
* @license MIT
* v1.1.20
* v1.1.21
*/
(function( window, angular, undefined ){
"use strict";
@@ -1036,7 +1036,14 @@ function MdPrefixer(initialAttributes, buildSelector) {
* will not be unique.
*/
UtilFactory.$inject = ["$document", "$timeout", "$compile", "$rootScope", "$$mdAnimate", "$interpolate", "$log", "$rootElement", "$window", "$$rAF"];
var nextUniqueId = 0;
var nextUniqueId = 0, isIos, isAndroid;
// Support material-tools builds.
if (window.navigator) {
var userAgent = window.navigator.userAgent || window.navigator.vendor || window.opera;
isIos = userAgent.match(/ipad|iphone|ipod/i);
isAndroid = userAgent.match(/android/i);
}
/**
* @ngdoc module
@@ -1097,6 +1104,8 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
var $mdUtil = {
dom: {},
isIos: isIos,
isAndroid: isAndroid,
now: window.performance && window.performance.now ?
angular.bind(window.performance, window.performance.now) : Date.now || function() {
return new Date().getTime();
@@ -1330,16 +1339,17 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
wrappedElementToDisable.append(scrollMask);
}
function preventDefault(e) {
e.preventDefault();
/**
* @param {Event} $event
*/
function preventDefault($event) {
$event.preventDefault();
}
scrollMask.on('wheel', preventDefault);
scrollMask.on('touchmove', preventDefault);
scrollMask.on('wheel touchmove', preventDefault);
return function restoreElementScroll() {
scrollMask.off('wheel');
scrollMask.off('touchmove');
scrollMask.off('wheel touchmove', preventDefault);
if (!scrollMaskOptions.disableScrollMask && scrollMask[0].parentNode) {
scrollMask[0].parentNode.removeChild(scrollMask[0]);
@@ -1411,7 +1421,10 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
return this.floatingScrollbars.cached;
},
// Mobile safari only allows you to set focus in click event listeners...
/**
* Mobile safari only allows you to set focus in click event listeners.
* @param {Element|angular.JQLite} element to focus
*/
forceFocus: function(element) {
var node = element[0] || element;
@@ -1485,17 +1498,21 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
};
},
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds.
// @param wait Integer value of msecs to delay (since last debounce reset); default value 10 msecs
// @param invokeApply should the $timeout trigger $digest() dirty checking
/**
* @param {Function} func original function to be debounced
* @param {number} wait number of milliseconds to delay (since last debounce reset).
* Default value 10 msecs.
* @param {Object} scope in which to apply the function after debouncing ends
* @param {boolean} invokeApply should the $timeout trigger $digest() dirty checking
* @return {Function} A function, that, as long as it continues to be invoked, will not be
* triggered. The function will be called after it stops being called for N milliseconds.
*/
debounce: function(func, wait, scope, invokeApply) {
var timer;
return function debounced() {
var context = scope,
args = Array.prototype.slice.call(arguments);
args = Array.prototype.slice.call(arguments);
$timeout.cancel(timer);
timer = $timeout(function() {
@@ -1507,9 +1524,13 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
};
},
// Returns a function that can only be triggered every `delay` milliseconds.
// In other words, the function will not be called unless it has been more
// than `delay` milliseconds since the last call.
/**
* The function will not be called unless it has been more than `delay` milliseconds since the
* last call.
* @param {Function} func original function to throttle
* @param {number} delay number of milliseconds to delay
* @return {Function} a function that can only be triggered every `delay` milliseconds.
*/
throttle: function throttle(func, delay) {
var recent;
return function throttled() {
@@ -1559,8 +1580,11 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
return '' + nextUniqueId++;
},
// Stop watchers and events from firing on a scope without destroying it,
// by disconnecting it from its parent and its siblings' linked lists.
/**
* Stop watchers and events from firing on a scope without destroying it,
* by disconnecting it from its parent and its siblings' linked lists.
* @param {Object} scope to disconnect
*/
disconnectScope: function disconnectScope(scope) {
if (!scope) return;
@@ -1581,7 +1605,10 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
},
// Undo the effects of disconnectScope above.
/**
* Undo the effects of disconnectScope().
* @param {Object} scope to reconnect
*/
reconnectScope: function reconnectScope(scope) {
if (!scope) return;
@@ -1728,8 +1755,8 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
* to minimize $digest thrashing
*
* @param {Function} callback function to be called after the tick
* @param {boolean} digest true to call $rootScope.$digest() after callback
* @param scope scope associated with callback. If the scope is destroyed, the callback will
* @param {boolean=} digest true to call $rootScope.$digest() after callback
* @param {Object=} scope associated with callback. If the scope is destroyed, the callback will
* be skipped.
* @returns {*}
*/
@@ -1861,9 +1888,7 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
/**
* Returns true if the parent form of the element has been submitted.
*
* @param element An AngularJS or HTML5 element.
*
* @returns {boolean}
*/
isParentFormSubmitted: function(element) {
@@ -1875,7 +1900,6 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
/**
* Animate the requested element's scrollTop to the requested scrollPosition with basic easing.
*
* @param {!Element} element The element to scroll.
* @param {number} scrollEnd The new/final scroll position.
* @param {number=} duration Duration of the scroll. Default is 1000ms.
@@ -1927,7 +1951,6 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
* $mdUtil.uniq(myArray) => [1, 2, 3, 4]
*
* @param {array} array The array whose unique values should be returned.
*
* @returns {array} A copy of the array containing only unique values.
*/
uniq: function(array) {
@@ -1988,7 +2011,7 @@ function UtilFactory($document, $timeout, $compile, $rootScope, $$mdAnimate, $in
}
}
/*
/**
* Since removing jQuery from the demos, some code that uses `element.focus()` is broken.
* We need to add `element.focus()`, because it's testable unlike `element[0].focus`.
*/
@@ -3594,8 +3617,8 @@ function MdCompilerProvider($compileProvider) {
"use strict";
MdGesture.$inject = ["$$MdGestureHandler", "$$rAF", "$timeout"];
attachToDocument.$inject = ["$mdGesture", "$$MdGestureHandler"];var HANDLERS = {};
MdGesture.$inject = ["$$MdGestureHandler", "$$rAF", "$timeout", "$mdUtil"];
attachToDocument.$inject = ["$mdGesture", "$$MdGestureHandler", "$mdUtil"];var HANDLERS = {};
/**
* The state of the current 'pointer'. The pointer represents the state of the current touch.
@@ -3611,21 +3634,18 @@ var forceSkipClickHijack = false, disableAllGestures = false;
*/
var lastLabelClickPos = null;
// Used to attach event listeners once when multiple ng-apps are running.
/**
* Used to attach event listeners once when multiple ng-apps are running.
* @type {boolean}
*/
var isInitialized = false;
// Support material-tools builds.
if (window.navigator) {
var userAgent = window.navigator.userAgent || window.navigator.vendor || window.opera;
var isIos = userAgent.match(/ipad|iphone|ipod/i);
var isAndroid = userAgent.match(/android/i);
}
/**
* @ngdoc module
* @name material.core.gestures
* @description
* AngularJS Material Gesture handling for touch devices. This module replaced the usage of the hammerjs library.
* AngularJS Material Gesture handling for touch devices.
* This module replaced the usage of the HammerJS library.
*/
angular
.module('material.core.gestures', [])
@@ -3640,10 +3660,11 @@ angular
*
* @description
* In some scenarios on mobile devices (without jQuery), the click events should NOT be hijacked.
* `$mdGestureProvider` is used to configure the Gesture module to ignore or skip click hijacking on mobile
* devices.
* `$mdGestureProvider` is used to configure the Gesture module to ignore or skip click hijacking
* on mobile devices.
*
* You can also change the max click distance, `6px` by default, if you have issues on some touch screens.
* You can also change the max click distance, `6px` by default, if you have issues on some touch
* screens.
*
* <hljs lang="js">
* app.config(function($mdGestureProvider) {
@@ -3702,8 +3723,8 @@ MdGestureProvider.prototype = {
* $get is used to build an instance of $mdGesture
* @ngInject
*/
$get : ["$$MdGestureHandler", "$$rAF", "$timeout", function($$MdGestureHandler, $$rAF, $timeout) {
return new MdGesture($$MdGestureHandler, $$rAF, $timeout);
$get : ["$$MdGestureHandler", "$$rAF", "$timeout", "$mdUtil", function($$MdGestureHandler, $$rAF, $timeout, $mdUtil) {
return new MdGesture($$MdGestureHandler, $$rAF, $timeout, $mdUtil);
}]
};
@@ -3713,17 +3734,17 @@ MdGestureProvider.prototype = {
* MdGesture factory construction function
* @ngInject
*/
function MdGesture($$MdGestureHandler, $$rAF, $timeout) {
function MdGesture($$MdGestureHandler, $$rAF, $timeout, $mdUtil) {
var touchActionProperty = getTouchAction();
var hasJQuery = (typeof window.jQuery !== 'undefined') && (angular.element === window.jQuery);
var hasJQuery = (typeof window.jQuery !== 'undefined') && (angular.element === window.jQuery);
var self = {
handler: addHandler,
register: register,
isAndroid: isAndroid,
isIos: isIos,
isAndroid: $mdUtil.isAndroid,
isIos: $mdUtil.isIos,
// On mobile w/out jQuery, we normally intercept clicks. Should we skip that?
isHijackingClicks: (isIos || isAndroid) && !hasJQuery && !forceSkipClickHijack
isHijackingClicks: ($mdUtil.isIos || $mdUtil.isAndroid) && !hasJQuery && !forceSkipClickHijack
};
if (self.isHijackingClicks) {
@@ -4172,7 +4193,7 @@ function MdGestureHandler() {
* Attach Gestures: hook document and check shouldHijack clicks
* @ngInject
*/
function attachToDocument($mdGesture, $$MdGestureHandler) {
function attachToDocument($mdGesture, $$MdGestureHandler, $mdUtil) {
if (disableAllGestures) {
return;
}
@@ -4220,7 +4241,7 @@ function attachToDocument($mdGesture, $$MdGestureHandler) {
*/
function clickHijacker(ev) {
var isKeyClick;
if (isIos) {
if ($mdUtil.isIos) {
isKeyClick = angular.isDefined(ev.webkitForce) && ev.webkitForce === 0;
} else {
isKeyClick = ev.clientX === 0 && ev.clientY === 0;
@@ -8565,14 +8586,15 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
defineProperty('hidden', handleHiddenChange, true);
// Public Exported Variables
ctrl.scope = $scope;
ctrl.parent = $scope.$parent;
ctrl.itemName = itemParts[ 0 ];
ctrl.matches = [];
ctrl.loading = false;
ctrl.hidden = true;
ctrl.index = null;
ctrl.id = $mdUtil.nextUid();
ctrl.scope = $scope;
ctrl.parent = $scope.$parent;
ctrl.itemName = itemParts[0];
ctrl.matches = [];
ctrl.loading = false;
ctrl.hidden = true;
ctrl.index = -1;
ctrl.activeOption = null;
ctrl.id = $mdUtil.nextUid();
ctrl.isDisabled = null;
ctrl.isRequired = null;
ctrl.isReadonly = null;
@@ -8580,20 +8602,20 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
ctrl.selectedMessage = $scope.selectedMessage || 'selected';
// Public Exported Methods
ctrl.keydown = keydown;
ctrl.blur = blur;
ctrl.focus = focus;
ctrl.clear = clearValue;
ctrl.select = select;
ctrl.listEnter = onListEnter;
ctrl.listLeave = onListLeave;
ctrl.mouseUp = onMouseup;
ctrl.getCurrentDisplayValue = getCurrentDisplayValue;
ctrl.registerSelectedItemWatcher = registerSelectedItemWatcher;
ctrl.keydown = keydown;
ctrl.blur = blur;
ctrl.focus = focus;
ctrl.clear = clearValue;
ctrl.select = select;
ctrl.listEnter = onListEnter;
ctrl.listLeave = onListLeave;
ctrl.focusInput = focusInputElement;
ctrl.getCurrentDisplayValue = getCurrentDisplayValue;
ctrl.registerSelectedItemWatcher = registerSelectedItemWatcher;
ctrl.unregisterSelectedItemWatcher = unregisterSelectedItemWatcher;
ctrl.notFoundVisible = notFoundVisible;
ctrl.loadingIsVisible = loadingIsVisible;
ctrl.positionDropdown = positionDropdown;
ctrl.notFoundVisible = notFoundVisible;
ctrl.loadingIsVisible = loadingIsVisible;
ctrl.positionDropdown = positionDropdown;
/**
* Report types to be used for the $mdLiveAnnouncer
@@ -8627,6 +8649,10 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
gatherElements();
moveDropdown();
// Touch devices often do not send a click event on tap. We still want to focus the input
// and open the options pop-up in these cases.
$element.on('touchstart', focusInputElement);
// Forward all focus events to the input element when autofocus is enabled
if ($scope.autofocus) {
$element.on('focus', focusInputElement);
@@ -8764,6 +8790,22 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
elements.input.focus();
}
/**
* Update the activeOption based on the selected item in the listbox.
* The activeOption is used in the template to set the aria-activedescendant attribute, which
* enables screen readers to properly handle visual focus within the listbox and announce the
* item's place in the list. I.e. "List item 3 of 50". Anytime that `ctrl.index` changes, this
* function needs to be called to update the activeOption.
*/
function updateActiveOption() {
var selectedOption = elements.scroller.querySelector('.selected');
if (selectedOption) {
ctrl.activeOption = selectedOption.id;
} else {
ctrl.activeOption = null;
}
}
/**
* Sets up any watchers used by autocomplete
*/
@@ -8874,12 +8916,31 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
// event/change handlers
/**
* @param {Event} $event
*/
function preventDefault($event) {
$event.preventDefault();
}
/**
* @param {Event} $event
*/
function stopPropagation($event) {
$event.stopPropagation();
}
/**
* Handles changes to the `hidden` property.
* @param {boolean} hidden
* @param {boolean} oldHidden
* @param {boolean} hidden true to hide the options pop-up, false to show it.
* @param {boolean} oldHidden the previous value of hidden
*/
function handleHiddenChange (hidden, oldHidden) {
var scrollContainerElement;
if (elements) {
scrollContainerElement = angular.element(elements.scrollContainer);
}
if (!hidden && oldHidden) {
positionDropdown();
@@ -8888,12 +8949,23 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
reportMessages(true, ReportType.Count | ReportType.Selected);
if (elements) {
$mdUtil.disableScrollAround(elements.ul);
enableWrapScroll = disableElementScrollEvents(angular.element(elements.wrap));
ctrl.documentElement.on('click', handleClickOutside);
$mdUtil.disableScrollAround(elements.scrollContainer);
enableWrapScroll = disableElementScrollEvents(elements.wrap);
if ($mdUtil.isIos) {
ctrl.documentElement.on('touchend', handleTouchOutsidePanel);
if (scrollContainerElement) {
scrollContainerElement.on('touchstart touchmove touchend', stopPropagation);
}
}
$mdUtil.nextTick(updateActiveOption);
}
} else if (hidden && !oldHidden) {
ctrl.documentElement.off('click', handleClickOutside);
if ($mdUtil.isIos) {
ctrl.documentElement.off('touchend', handleTouchOutsidePanel);
if (scrollContainerElement) {
scrollContainerElement.off('touchstart touchmove touchend', stopPropagation);
}
}
$mdUtil.enableScrolling();
if (enableWrapScroll) {
@@ -8904,29 +8976,27 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
}
/**
* Handling click events that bubble up to the document is required for closing the dropdown
* panel on click outside of the panel on iOS.
* Handling touch events that bubble up to the document is required for closing the dropdown
* panel on touch outside of the options pop-up panel on iOS.
* @param {Event} $event
*/
function handleClickOutside($event) {
function handleTouchOutsidePanel($event) {
ctrl.hidden = true;
// iOS does not blur the pop-up for touches on the scroll mask, so we have to do it.
doBlur(true);
}
/**
* Disables scrolling for a specific element
* Disables scrolling for a specific element.
* @param {!string|!DOMElement} element to disable scrolling
* @return {Function} function to call to re-enable scrolling for the element
*/
function disableElementScrollEvents(element) {
function preventDefault(e) {
e.preventDefault();
}
element.on('wheel', preventDefault);
element.on('touchmove', preventDefault);
var elementToDisable = angular.element(element);
elementToDisable.on('wheel touchmove', preventDefault);
return function() {
element.off('wheel', preventDefault);
element.off('touchmove', preventDefault);
elementToDisable.off('wheel touchmove', preventDefault);
};
}
@@ -8946,13 +9016,6 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
ctrl.hidden = shouldHide();
}
/**
* When the mouse button is released, send focus back to the input field.
*/
function onMouseup () {
elements.input.focus();
}
/**
* Handles changes to the selected item.
* @param selectedItem
@@ -9034,8 +9097,8 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
/**
* Handles changes to the searchText property.
* @param searchText
* @param previousSearchText
* @param {string} searchText
* @param {string} previousSearchText
*/
function handleSearchText (searchText, previousSearchText) {
ctrl.index = getDefaultIndex();
@@ -9119,17 +9182,17 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
if (ctrl.loading || hasSelection()) return;
event.stopPropagation();
event.preventDefault();
ctrl.index = Math.min(ctrl.index + 1, ctrl.matches.length - 1);
ctrl.index = Math.min(ctrl.index + 1, ctrl.matches.length - 1);
$mdUtil.nextTick(updateActiveOption);
updateScroll();
reportMessages(false, ReportType.Selected);
break;
case $mdConstant.KEY_CODE.UP_ARROW:
if (ctrl.loading || hasSelection()) return;
event.stopPropagation();
event.preventDefault();
ctrl.index = ctrl.index < 0 ? ctrl.matches.length - 1 : Math.max(0, ctrl.index - 1);
ctrl.index = ctrl.index < 0 ? ctrl.matches.length - 1 : Math.max(0, ctrl.index - 1);
$mdUtil.nextTick(updateActiveOption);
updateScroll();
reportMessages(false, ReportType.Selected);
break;
case $mdConstant.KEY_CODE.TAB:
// If we hit tab, assume that we've left the list so it will close
@@ -9180,7 +9243,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
/**
* Returns the display value for an item.
* @param item
* @param {*} item
* @returns {*}
*/
function getDisplayValue (item) {
@@ -9196,7 +9259,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
/**
* Getter function to invoke user-defined expression (in the directive)
* to convert your object to a single string.
* @param item
* @param {*} item
* @returns {string|null}
*/
function getItemText (item) {
@@ -9206,7 +9269,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
/**
* Returns the locals object for compiling item templates.
* @param item
* @param {*} item
* @returns {Object|undefined}
*/
function getItemAsNameVal (item) {
@@ -9344,14 +9407,14 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
* Defines a public property with a handler and a default value.
* @param {string} key
* @param {Function} handler function
* @param {*} value default value
* @param {*} defaultValue default value
*/
function defineProperty (key, handler, value) {
function defineProperty (key, handler, defaultValue) {
Object.defineProperty(ctrl, key, {
get: function () { return value; },
get: function () { return defaultValue; },
set: function (newValue) {
var oldValue = value;
value = newValue;
var oldValue = defaultValue;
defaultValue = newValue;
handler(newValue, oldValue);
}
});
@@ -9393,7 +9456,8 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
*/
function clearSelectedItem () {
// Reset our variables
ctrl.index = 0;
ctrl.index = -1;
$mdUtil.nextTick(updateActiveOption);
ctrl.matches = [];
}
@@ -9520,7 +9584,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
function updateVirtualScroll() {
// elements in virtual scroll have consistent heights
var optionHeight = elements.li[0].offsetHeight,
top = optionHeight * ctrl.index,
top = optionHeight * Math.max(0, ctrl.index),
bottom = top + optionHeight,
containerHeight = elements.scroller.clientHeight,
scrollTop = elements.scroller.scrollTop;
@@ -9534,7 +9598,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming,
function updateStandardScroll() {
// elements in standard scroll have variable heights
var selected = elements.li[ctrl.index] || elements.li[0];
var selected = elements.li[Math.max(0, ctrl.index)];
var containerHeight = elements.scrollContainer.offsetHeight,
top = selected && selected.offsetTop || 0,
bottom = top + selected.clientHeight,
@@ -9741,7 +9805,7 @@ MdAutocomplete.$inject = ["$$mdSvgRegistry"];angular
* @param {number=} md-delay Specifies the amount of time (in milliseconds) to wait before looking
* for results.
* @param {boolean=} md-clear-button Whether the clear button for the autocomplete input should show
* up or not.
* up or not. When `md-floating-label` is set, defaults to false, defaults to true otherwise.
* @param {boolean=} md-autofocus If true, the autocomplete will be automatically focused when a
* `$mdDialog`, `$mdBottomsheet` or `$mdSidenav`, which contains the autocomplete, is opening.
* <br/><br/>
@@ -10008,7 +10072,7 @@ function MdAutocomplete ($$mdSvgRegistry) {
// Stop click events from bubbling up to the document and triggering a flicker of the
// options panel while still supporting ng-click to be placed on md-autocomplete.
element.on('click', function(event) {
element.on('click touchstart touchend', function(event) {
event.stopPropagation();
});
};
@@ -10045,11 +10109,11 @@ function MdAutocomplete ($$mdSvgRegistry) {
id="ul-{{$mdAutocompleteCtrl.id}}"\
ng-mouseenter="$mdAutocompleteCtrl.listEnter()"\
ng-mouseleave="$mdAutocompleteCtrl.listLeave()"\
ng-mouseup="$mdAutocompleteCtrl.mouseUp()"\
ng-mouseup="$mdAutocompleteCtrl.focusInput()"\
role="listbox">\
<li ' + getRepeatType(attr.mdMode) + ' ="item in $mdAutocompleteCtrl.matches"\
<li class="md-autocomplete-suggestion" ' + getRepeatType(attr.mdMode) + ' ="item in $mdAutocompleteCtrl.matches"\
ng-class="{ selected: $index === $mdAutocompleteCtrl.index }"\
ng-attr-id="{{$index === $mdAutocompleteCtrl.index ? \'selected_option\' : undefined}}"\
ng-attr-id="{{\'md-option-\' + $mdAutocompleteCtrl.id + \'-\' + $index}}"\
ng-click="$mdAutocompleteCtrl.select($index)"\
role="option"\
aria-setsize="{{$mdAutocompleteCtrl.matches.length}}"\
@@ -10126,10 +10190,10 @@ function MdAutocomplete ($$mdSvgRegistry) {
return '\
<md-input-container ng-if="floatingLabel">\
<label>{{floatingLabel}}</label>\
<input type="search"\
<input type="text"\
' + (tabindex != null ? 'tabindex="' + tabindex + '"' : '') + '\
id="{{ inputId || \'fl-input-\' + $mdAutocompleteCtrl.id }}"\
name="{{inputName}}"\
id="{{inputId || \'fl-input-\' + $mdAutocompleteCtrl.id}}"\
name="{{inputName || \'fl-input-\' + $mdAutocompleteCtrl.id }}"\
ng-class="::inputClass"\
autocomplete="off"\
ng-required="$mdAutocompleteCtrl.isRequired"\
@@ -10139,24 +10203,25 @@ function MdAutocomplete ($$mdSvgRegistry) {
ng-disabled="$mdAutocompleteCtrl.isDisabled"\
ng-model="$mdAutocompleteCtrl.scope.searchText"\
ng-model-options="{ allowInvalid: true }"\
ng-mousedown="$mdAutocompleteCtrl.focusInput()"\
ng-keydown="$mdAutocompleteCtrl.keydown($event)"\
ng-blur="$mdAutocompleteCtrl.blur($event)"\
ng-focus="$mdAutocompleteCtrl.focus($event)"\
aria-label="{{floatingLabel}}"\
aria-autocomplete="list"\
role="combobox"\
aria-haspopup="true"\
ng-attr-aria-autocomplete="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'list\'}}"\
ng-attr-role="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'combobox\'}}"\
aria-haspopup="{{!$mdAutocompleteCtrl.isDisabled}}"\
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"\
aria-owns="ul-{{$mdAutocompleteCtrl.id}}"\
ng-attr-aria-activedescendant="{{$mdAutocompleteCtrl.index >= 0 ? \'selected_option\' : undefined}}">\
ng-attr-aria-owns="{{$mdAutocompleteCtrl.hidden || $mdAutocompleteCtrl.isDisabled ? undefined : \'ul-\' + $mdAutocompleteCtrl.id}}"\
ng-attr-aria-activedescendant="{{!$mdAutocompleteCtrl.hidden && $mdAutocompleteCtrl.activeOption ? $mdAutocompleteCtrl.activeOption : undefined}}">\
<div md-autocomplete-parent-scope md-autocomplete-replace>' + leftover + '</div>\
</md-input-container>';
} else {
return '\
<input type="search"\
<input type="text"\
' + (tabindex != null ? 'tabindex="' + tabindex + '"' : '') + '\
id="{{ inputId || \'input-\' + $mdAutocompleteCtrl.id }}"\
name="{{inputName}}"\
id="{{inputId || \'input-\' + $mdAutocompleteCtrl.id}}"\
name="{{inputName || \'input-\' + $mdAutocompleteCtrl.id }}"\
ng-class="::inputClass"\
ng-if="!floatingLabel"\
autocomplete="off"\
@@ -10166,17 +10231,18 @@ function MdAutocomplete ($$mdSvgRegistry) {
ng-minlength="inputMinlength"\
ng-maxlength="inputMaxlength"\
ng-model="$mdAutocompleteCtrl.scope.searchText"\
ng-mousedown="$mdAutocompleteCtrl.focusInput()"\
ng-keydown="$mdAutocompleteCtrl.keydown($event)"\
ng-blur="$mdAutocompleteCtrl.blur($event)"\
ng-focus="$mdAutocompleteCtrl.focus($event)"\
placeholder="{{placeholder}}"\
aria-label="{{placeholder}}"\
aria-autocomplete="list"\
role="combobox"\
aria-haspopup="true"\
ng-attr-aria-autocomplete="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'list\'}}"\
ng-attr-role="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'combobox\'}}"\
aria-haspopup="{{!$mdAutocompleteCtrl.isDisabled}}"\
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"\
aria-owns="ul-{{$mdAutocompleteCtrl.id}}"\
ng-attr-aria-activedescendant="{{$mdAutocompleteCtrl.index >= 0 ? \'selected_option\' : undefined}}">';
ng-attr-aria-owns="{{$mdAutocompleteCtrl.hidden || $mdAutocompleteCtrl.isDisabled ? undefined : \'ul-\' + $mdAutocompleteCtrl.id}}"\
ng-attr-aria-activedescendant="{{!$mdAutocompleteCtrl.hidden && $mdAutocompleteCtrl.activeOption ? $mdAutocompleteCtrl.activeOption : undefined}}">';
}
}
@@ -10185,7 +10251,7 @@ function MdAutocomplete ($$mdSvgRegistry) {
'<button ' +
'type="button" ' +
'aria-label="Clear Input" ' +
'tabindex="-1" ' +
'tabindex="0" ' +
'ng-if="clearButton && $mdAutocompleteCtrl.scope.searchText" ' +
'ng-click="$mdAutocompleteCtrl.clear($event)">' +
'<md-icon md-svg-src="' + $$mdSvgRegistry.mdClose + '"></md-icon>' +
@@ -30387,8 +30453,8 @@ angular.module('material.components.select', [
* @module material.components.select
*
* @description Displays a select box, bound to an `ng-model`. Selectable options are defined using
* the <a ng-href="/api/directive/mdOption">md-option</a> element directive. Options can be grouped
* using the <a ng-href="/api/directive/mdOptgroup">md-optgroup</a> element directive.
* the <a ng-href="api/directive/mdOption">md-option</a> element directive. Options can be grouped
* using the <a ng-href="api/directive/mdOptgroup">md-optgroup</a> element directive.
*
* When the select is required and uses a floating label, then the label will automatically contain
* an asterisk (`*`). This behavior can be disabled by using the `md-no-asterisk` attribute.
@@ -31265,9 +31331,9 @@ function SelectMenuDirective($parse, $mdUtil, $mdConstant, $mdTheming) {
* @restrict E
* @module material.components.select
*
* @description Displays an option in a <a ng-href="/api/directive/mdSelect">md-select</a> box's
* @description Displays an option in a <a ng-href="api/directive/mdSelect">md-select</a> box's
* dropdown menu. Options can be grouped using
* <a ng-href="/api/directive/mdOptgroup">md-optgroup</a> element directives.
* <a ng-href="api/directive/mdOptgroup">md-optgroup</a> element directives.
*
* ### Option Params
*
@@ -31305,7 +31371,7 @@ function SelectMenuDirective($parse, $mdUtil, $mdConstant, $mdTheming) {
* `ng-model` like `$scope.selectedValue = 1`. Use `ng-value="1"` in this case and other cases where
* you have values that are not strings.
*
* **Note:** Please see our <a ng-href="/api/directive/mdSelect#selects-and-object-equality">docs on
* **Note:** Please see our <a ng-href="api/directive/mdSelect#selects-and-object-equality">docs on
* using objects with `md-select`</a> for additional guidance on using the `trackBy` option with
* `ng-model-options`.
*
@@ -31474,11 +31540,11 @@ function OptionDirective($mdButtonInkRipple, $mdUtil, $mdTheming) {
* @module material.components.select
*
* @description Displays a label separating groups of
* <a ng-href="/api/directive/mdOption">md-option</a> element directives in a
* <a ng-href="/api/directive/mdSelect">md-select</a> box's dropdown menu.
* <a ng-href="api/directive/mdOption">md-option</a> element directives in a
* <a ng-href="api/directive/mdSelect">md-select</a> box's dropdown menu.
*
* **Note:** When using `md-select-header` element directives within a `md-select`, the labels that
* would normally be added to the <a ng-href="/api/directive/mdOptgroup">md-optgroup</a> directives
* would normally be added to the <a ng-href="api/directive/mdOptgroup">md-optgroup</a> directives
* are omitted, allowing the `md-select-header` to represent the option group label
* (and possibly more).
*
@@ -38502,8 +38568,8 @@ function MdWhiteframeDirective($log) {
})();
(function(){
angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme{background:\"{{background-hue-1}}\"}md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]){background:\"{{background-hue-2}}\"}md-autocomplete.md-THEME_NAME-theme button md-icon path{fill:\"{{background-600}}\"}md-autocomplete.md-THEME_NAME-theme button:after{background:\"{{background-600-0.3}}\"}md-autocomplete.md-THEME_NAME-theme input{color:\"{{foreground-1}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused .md-input{border-color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused label,md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused md-icon{color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-progress-linear .md-container{background-color:\"{{accent-100}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-progress-linear .md-bar{background-color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused .md-input{border-color:\"{{warn-A700}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused label,md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused md-icon{color:\"{{warn-A700}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-progress-linear .md-container{background-color:\"{{warn-100}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-progress-linear .md-bar{background-color:\"{{warn-color}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme,.md-autocomplete-suggestions-container.md-THEME_NAME-theme{background:\"{{background-hue-1}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme li,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li{color:\"{{foreground-1}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme li#selected_option,.md-autocomplete-standard-list-container.md-THEME_NAME-theme li:hover,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li#selected_option,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover{background:\"{{background-500-0.18}}\"}md-backdrop{background-color:\"{{background-900-0.0}}\"}md-backdrop.md-opaque.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}md-bottom-sheet.md-THEME_NAME-theme{background-color:\"{{background-color}}\";border-top-color:\"{{background-hue-3}}\"}md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item{color:\"{{foreground-1}}\"}md-bottom-sheet.md-THEME_NAME-theme .md-subheader{background-color:\"{{background-color}}\";color:\"{{foreground-1}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme:not([disabled]):hover{background-color:\"{{background-500-0.2}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-THEME_NAME-theme.md-fab md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab,.md-button.md-THEME_NAME-theme.md-primary.md-raised{color:\"{{primary-contrast}}\";background-color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon{color:\"{{primary-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover{background-color:\"{{primary-600}}\"}.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-fab{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-raised{color:\"{{background-900}}\";background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon{color:\"{{background-900}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover{background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused{background-color:\"{{background-200}}\"}.md-button.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab,.md-button.md-THEME_NAME-theme.md-warn.md-raised{color:\"{{warn-contrast}}\";background-color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icoLine truncated
angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme{background:\"{{background-hue-1}}\"}md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]){background:\"{{background-hue-2}}\"}md-autocomplete.md-THEME_NAME-theme button md-icon path{fill:\"{{background-600}}\"}md-autocomplete.md-THEME_NAME-theme button:after{background:\"{{background-600-0.3}}\"}md-autocomplete.md-THEME_NAME-theme input{color:\"{{foreground-1}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused .md-input{border-color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused label,md-autocomplete.md-THEME_NAME-theme.md-accent md-input-container.md-input-focused md-icon{color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-progress-linear .md-container{background-color:\"{{accent-100}}\"}md-autocomplete.md-THEME_NAME-theme.md-accent md-progress-linear .md-bar{background-color:\"{{accent-color}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused .md-input{border-color:\"{{warn-A700}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused label,md-autocomplete.md-THEME_NAME-theme.md-warn md-input-container.md-input-focused md-icon{color:\"{{warn-A700}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-progress-linear .md-container{background-color:\"{{warn-100}}\"}md-autocomplete.md-THEME_NAME-theme.md-warn md-progress-linear .md-bar{background-color:\"{{warn-color}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme,.md-autocomplete-suggestions-container.md-THEME_NAME-theme{background:\"{{background-hue-1}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme .md-autocomplete-suggestion,.md-autocomplete-suggestions-container.md-THEME_NAME-theme .md-autocomplete-suggestion{color:\"{{foreground-1}}\"}.md-autocomplete-standard-list-container.md-THEME_NAME-theme .md-autocomplete-suggestion.selected,.md-autocomplete-standard-list-container.md-THEME_NAME-theme .md-autocomplete-suggestion:hover,.md-autocomplete-suggestions-container.md-THEME_NAME-theme .md-autocomplete-suggestion.selected,.md-autocomplete-suggestions-container.md-THEME_NAME-theme .md-autocomplete-suggestion:hover{background:\"{{background-500-0.18}}\"}md-backdrop{background-color:\"{{background-900-0.0}}\"}md-backdrop.md-opaque.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}md-bottom-sheet.md-THEME_NAME-theme{background-color:\"{{background-color}}\";border-top-color:\"{{background-hue-3}}\"}md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item{color:\"{{foreground-1}}\"}md-bottom-sheet.md-THEME_NAME-theme .md-subheader{background-color:\"{{background-color}}\";color:\"{{foreground-1}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme:not([disabled]):hover{background-color:\"{{background-500-0.2}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-THEME_NAME-theme.md-fab md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab,.md-button.md-THEME_NAME-theme.md-primary.md-raised{color:\"{{primary-contrast}}\";background-color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon{color:\"{{primary-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover{background-color:\"{{primary-600}}\"}.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-fab{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-raised{color:\"{{background-900}}\";background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon{color:\"{{background-900}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover{background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused{background-color:\"{{background-200}}\"}.md-button.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab,.md-button.md-THEME_NAME-theme.md-warn.md-raised{color:\"{{warn-contrast}}\";background-color:\"{{warn-color}}\"}.md-bLine truncated
})();
})(window, window.angular);;window.ngMaterial={version:{full: "1.1.20"}};
})(window, window.angular);;window.ngMaterial={version:{full: "1.1.21"}};
+2 -2
View File
@@ -2,6 +2,6 @@
* AngularJS Material Design
* https://github.com/angular/material
* @license MIT
* v1.1.20
* v1.1.21
*/
!function(R,me,ue){"use strict";function e(e,t){if(t.has("$swipe")){e.warn("You are using the ngTouch module. \nAngularJS Material already has mobile click, tap, and swipe support... \nngTouch is not supported with AngularJS Material!")}}function t(e,t){e.decorator("$$rAF",["$delegate",n]),e.decorator("$q",["$delegate",o]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")}function n(r){return r.throttle=function(e){var t,n,o,i;return function(){t=arguments,i=this,o=e,n||(n=!0,r(function(){o.apply(i,Array.prototype.slice.call(t)),n=!1}))}},r}function o(e){return e.resolve||(e.resolve=e.when),e}function i(r){return{restrict:"A",link:{pre:function(e,t,n){var o=n.mdAutoFocus||n.mdAutofocus||n.mdSidenavFocus;i(r(o)(e)),o&&e.$watch(o,i);function i(e){me.isUndefined(e)&&(e=!0),t.toggleClass("md-autofocus",!!e)}}}}}function r(e,d){function s(){return!0}e&&!me.isArray(e)&&(e=Array.prototype.slice.call(e)),d=!!d;var l=e||[];return{items:function(){return[].concat(l)},count:function(){return l.length},inRange:c,contains:t,indexOf:m,itemAt:function(e){return c(e)?l[e]:null},findBy:function(t,n){return l.filter(function(e){return e[t]===n})},add:function(e,t){if(!e)return-1;me.isNumber(t)||(t=l.length);return l.splice(t,0,e),m(e)},remove:function(e){t(e)&&l.splice(m(e),1)},first:u,last:p,next:me.bind(null,n,!1),previous:me.bind(null,n,!0),hasPrevious:function(e){return!!e&&c(m(e)-1)},hasNext:function(e){return!!e&&c(m(e)+1)}};function c(e){return l.length&&-1<e&&e<l.length}function m(e){return l.indexOf(e)}function t(e){return e&&-1<m(e)}function u(){return l.length?l[0]:null}function p(){return l.length?l[l.length-1]:null}function n(e,t,n,o){n=n||s;for(var i=m(t);;){if(!c(i))return null;var r=i+(e?-1:1),a=null;if(c(r)?a=l[r]:d&&(r=m(a=e?p():u())),null===a||r===o)return null;if(n(a))return a;me.isUndefined(o)&&(o=r),i=r}}}function a(a,t,o){var r={},d={},i={},n={};return e.getResponsiveAttribute=function(e,t){for(var n=0;n<a.MEDIA_PRIORITY.length;n++){var o=a.MEDIA_PRIORITY[n];if(d[r[o]].matches){var i=l(e,t+"-"+o);if(e[i])return e[i]}}return e[l(e,t)]},e.getQuery=function(e){return d[e]},e.watchResponsiveAttributes=function(e,o,i){var r=[];return e.forEach(function(e){var t=l(o,e);for(var n in me.isDefined(o[t])&&r.push(o.$observe(t,me.bind(void 0,i,null))),a.MEDIA)t=l(o,e+"-"+n),me.isDefined(o[t])&&r.push(o.$observe(t,me.bind(void 0,i,n)))}),function(){r.forEach(function(e){e()})}},e;function e(e){var t=r[e];me.isUndefined(t)&&(t=r[e]=function(e){return a.MEDIA[e]||("("!==e.charAt(0)?"("+e+")":e)}(e));var n=i[t];return me.isUndefined(n)&&(n=function(e){var t=d[e];t=t||(d[e]=o.matchMedia(e));return t.addListener(s),i[t.media]=!!t.matches}(t)),n}function s(e){t.$evalAsync(function(){i[e.media]=!!e.matches})}function l(e,t){return n[t]||(n[t]=e.$normalize(t))}}function d(e,t){var o=["data","x"];return e?t?n(e):i(e):{buildList:i,buildSelector:n,hasAttribute:function(e,t){if(!(e=r(e)))return!1;for(var n=i(t),o=0;o<n.length;o++)if(e.hasAttribute(n[o]))return!0;return!1},removeAttribute:function(t,e){if(!(t=r(t)))return;i(e).forEach(function(e){t.removeAttribute(e)})}};function i(n){return(n=me.isArray(n)?n:[n]).forEach(function(t){o.forEach(function(e){n.push(e+"-"+t)})}),n}function n(e){return i(e=me.isArray(e)?e:[e]).map(function(e){return"["+e+"]"}).join(",")}function r(e){if((e=e[0]||e).nodeType)return e}}function A(e){return e.replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()})}var w,_,k,x,N,s,l,c,m,u,p,h,f,g,b,v,E,$,y,M,C,T;function S(o,i,s,r){var a=this.showWarnings;return{expect:d,expectAsync:l,expectWithText:function(e,t){var n=c(e)||"";-1<n.indexOf(r.startSymbol())?l(e,t,function(){return c(e)}):d(e,t,n)},expectWithoutText:function(e,t){var n=c(e);-1<n.indexOf(r.startSymbol())||n||d(e,t,n)},getText:c,hasAriaLabel:m,parentHasAriaLabel:function e(t,n){n=n||1;var o=me.element(t)[0]||t;if(!o.parentNode)return!1;if(i(o.parentNode))return!0;n--;if(n)return e(o.parentNode,n);return!1;function i(e){if(!m(e))return!1;if(e.hasAttribute("role"))switch(e.getAttribute("role").toLowerCase()){case"command":case"definition":case"directory":case"grid":case"list":case"listitem":case"log":case"marquee":case"menu":case"menubar":case"note":case"presentation":case"separator":case"scrollbar":case"status":case"tablist":return!1}switch(e.tagName.toLowerCase()){case"abbr":case"acronym":case"address":case"applet":case"audio":case"b":case"bdi":case"bdo":case"big":case"blockquote":case"br":case"canvas":case"caption":case"center":case"cite":case"code":case"col":case"data":case"dd":case"del":case"dfn":case"dir":case"div":case"dl":case"em":case"embed":case"fieldset":case"figcaption":case"font":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"hgroup":case"html":case"i":case"ins":case"isindex":case"kbd":case"keygen":case"label":case"legend":case"li":case"map":case"mark":case"menu":case"object":case"ol":case"output":case"pre":case"presentation":case"q":case"Line truncated
!function(R,fe,ge){"use strict";function e(e,t){if(t.has("$swipe")){e.warn("You are using the ngTouch module. \nAngularJS Material already has mobile click, tap, and swipe support... \nngTouch is not supported with AngularJS Material!")}}function t(e,t){e.decorator("$$rAF",["$delegate",n]),e.decorator("$q",["$delegate",o]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")}function n(r){return r.throttle=function(e){var t,n,o,i;return function(){t=arguments,i=this,o=e,n||(n=!0,r(function(){o.apply(i,Array.prototype.slice.call(t)),n=!1}))}},r}function o(e){return e.resolve||(e.resolve=e.when),e}function i(r){return{restrict:"A",link:{pre:function(e,t,n){var o=n.mdAutoFocus||n.mdAutofocus||n.mdSidenavFocus;i(r(o)(e)),o&&e.$watch(o,i);function i(e){fe.isUndefined(e)&&(e=!0),t.toggleClass("md-autofocus",!!e)}}}}}function r(e,d){function s(){return!0}e&&!fe.isArray(e)&&(e=Array.prototype.slice.call(e)),d=!!d;var l=e||[];return{items:function(){return[].concat(l)},count:function(){return l.length},inRange:c,contains:t,indexOf:m,itemAt:function(e){return c(e)?l[e]:null},findBy:function(t,n){return l.filter(function(e){return e[t]===n})},add:function(e,t){if(!e)return-1;fe.isNumber(t)||(t=l.length);return l.splice(t,0,e),m(e)},remove:function(e){t(e)&&l.splice(m(e),1)},first:u,last:p,next:fe.bind(null,n,!1),previous:fe.bind(null,n,!0),hasPrevious:function(e){return!!e&&c(m(e)-1)},hasNext:function(e){return!!e&&c(m(e)+1)}};function c(e){return l.length&&-1<e&&e<l.length}function m(e){return l.indexOf(e)}function t(e){return e&&-1<m(e)}function u(){return l.length?l[0]:null}function p(){return l.length?l[l.length-1]:null}function n(e,t,n,o){n=n||s;for(var i=m(t);;){if(!c(i))return null;var r=i+(e?-1:1),a=null;if(c(r)?a=l[r]:d&&(r=m(a=e?p():u())),null===a||r===o)return null;if(n(a))return a;fe.isUndefined(o)&&(o=r),i=r}}}function a(a,t,o){var r={},d={},i={},n={};return e.getResponsiveAttribute=function(e,t){for(var n=0;n<a.MEDIA_PRIORITY.length;n++){var o=a.MEDIA_PRIORITY[n];if(d[r[o]].matches){var i=l(e,t+"-"+o);if(e[i])return e[i]}}return e[l(e,t)]},e.getQuery=function(e){return d[e]},e.watchResponsiveAttributes=function(e,o,i){var r=[];return e.forEach(function(e){var t=l(o,e);for(var n in fe.isDefined(o[t])&&r.push(o.$observe(t,fe.bind(void 0,i,null))),a.MEDIA)t=l(o,e+"-"+n),fe.isDefined(o[t])&&r.push(o.$observe(t,fe.bind(void 0,i,n)))}),function(){r.forEach(function(e){e()})}},e;function e(e){var t=r[e];fe.isUndefined(t)&&(t=r[e]=function(e){return a.MEDIA[e]||("("!==e.charAt(0)?"("+e+")":e)}(e));var n=i[t];return fe.isUndefined(n)&&(n=function(e){var t=d[e];t=t||(d[e]=o.matchMedia(e));return t.addListener(s),i[t.media]=!!t.matches}(t)),n}function s(e){t.$evalAsync(function(){i[e.media]=!!e.matches})}function l(e,t){return n[t]||(n[t]=e.$normalize(t))}}function d(e,t){var o=["data","x"];return e?t?n(e):i(e):{buildList:i,buildSelector:n,hasAttribute:function(e,t){if(!(e=r(e)))return!1;for(var n=i(t),o=0;o<n.length;o++)if(e.hasAttribute(n[o]))return!0;return!1},removeAttribute:function(t,e){if(!(t=r(t)))return;i(e).forEach(function(e){t.removeAttribute(e)})}};function i(n){return(n=fe.isArray(n)?n:[n]).forEach(function(t){o.forEach(function(e){n.push(e+"-"+t)})}),n}function n(e){return i(e=fe.isArray(e)?e:[e]).map(function(e){return"["+e+"]"}).join(",")}function r(e){if((e=e[0]||e).nodeType)return e}}function A(e){return e.replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()})}var w,_,k,x,N,s,l,c,m,u,p,h,f,g,b,v,E,$,y,C,M,T;function S(o,i,s,r){var a=this.showWarnings;return{expect:d,expectAsync:l,expectWithText:function(e,t){var n=c(e)||"";-1<n.indexOf(r.startSymbol())?l(e,t,function(){return c(e)}):d(e,t,n)},expectWithoutText:function(e,t){var n=c(e);-1<n.indexOf(r.startSymbol())||n||d(e,t,n)},getText:c,hasAriaLabel:m,parentHasAriaLabel:function e(t,n){n=n||1;var o=fe.element(t)[0]||t;if(!o.parentNode)return!1;if(i(o.parentNode))return!0;n--;if(n)return e(o.parentNode,n);return!1;function i(e){if(!m(e))return!1;if(e.hasAttribute("role"))switch(e.getAttribute("role").toLowerCase()){case"command":case"definition":case"directory":case"grid":case"list":case"listitem":case"log":case"marquee":case"menu":case"menubar":case"note":case"presentation":case"separator":case"scrollbar":case"status":case"tablist":return!1}switch(e.tagName.toLowerCase()){case"abbr":case"acronym":case"address":case"applet":case"audio":case"b":case"bdi":case"bdo":case"big":case"blockquote":case"br":case"canvas":case"caption":case"center":case"cite":case"code":case"col":case"data":case"dd":case"del":case"dfn":case"dir":case"div":case"dl":case"em":case"embed":case"fieldset":case"figcaption":case"font":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":case"hgroup":case"html":case"i":case"ins":case"isindex":case"kbd":case"keygen":case"label":case"legend":case"li":case"map":case"mark":case"menu":case"object":case"ol":case"output":case"pre":case"presentation":case"q":case"Line truncated