angular-material
Version:
This repository publishes the AngularJS Material v1.x library and localized installs using `npm`. You can find the component source-code for this library in the [AngularJS Material repository](https://github.com/angular/material).
7 lines • 423 kB
JavaScript
/*!
* AngularJS Material Design
* https://github.com/angular/material
* @license MIT
* v1.2.1
*/
!function(L,be,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(i){return i.throttle=function(e){var t,n,o,r;return function(){t=arguments,r=this,o=e,n||(n=!0,i(function(){o.apply(r,Array.prototype.slice.call(t)),n=!1}))}},i}function o(e){return e.resolve||(e.resolve=e.when),e}function r(i){return{restrict:"A",link:{pre:function(e,t,n){var o=n.mdAutoFocus||n.mdAutofocus||n.mdSidenavFocus;r(i(o)(e)),o&&e.$watch(o,r);function r(e){be.isUndefined(e)&&(e=!0),t.toggleClass("md-autofocus",!!e)}}}}}function i(e,d){function s(){return!0}e&&!be.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;be.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:be.bind(null,n,!1),previous:be.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 r=m(t);;){if(!c(r))return null;var i=r+(e?-1:1),a=null;if(c(i)?a=l[i]:d&&(i=m(a=e?p():u())),null===a||i===o)return null;if(n(a))return a;be.isUndefined(o)&&(o=i),r=i}}}function a(a,t,o){var i={},d={},r={},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[i[o]].matches){var r=l(e,t+"-"+o);if(e[r])return e[r]}}return e[l(e,t)]},e.getQuery=function(e){return d[e]},e.watchResponsiveAttributes=function(e,o,r){var i=[];return e.forEach(function(e){var t=l(o,e);for(var n in be.isDefined(o[t])&&i.push(o.$observe(t,be.bind(void 0,r,null))),a.MEDIA)t=l(o,e+"-"+n),be.isDefined(o[t])&&i.push(o.$observe(t,be.bind(void 0,r,n)))}),function(){i.forEach(function(e){e()})}},e;function e(e){var t=i[e];be.isUndefined(t)&&(t=i[e]=function(e){return a.MEDIA[e]||("("!==e.charAt(0)?"("+e+")":e)}(e));var n=r[t];return be.isUndefined(n)&&(n=function(e){var t=d[e];t=t||(d[e]=o.matchMedia(e));return t.addListener(s),r[t.media]=!!t.matches}(t)),n}function s(e){t.$evalAsync(function(){r[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):r(e):{buildList:r,buildSelector:n,hasAttribute:function(e,t){if(!(e=i(e)))return!1;for(var n=r(t),o=0;o<n.length;o++)if(e.hasAttribute(n[o]))return!0;return!1},removeAttribute:function(t,e){if(!(t=i(t)))return;r(e).forEach(function(e){t.removeAttribute(e)})}};function r(n){return(n=be.isArray(n)?n:[n]).forEach(function(t){o.forEach(function(e){n.push(e+"-"+t)})}),n}function n(e){return r(e=be.isArray(e)?e:[e]).map(function(e){return"["+e+"]"}).join(",")}function i(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,b,g,v,E,$,y,M,C,T;function S(o,r,s,i){var a=this.showWarnings;return{expect:d,expectAsync:l,expectWithText:function(e,t){var n=c(e)||"";-1<n.indexOf(i.startSymbol())?l(e,t,function(){return c(e)}):d(e,t,n)},expectWithoutText:function(e,t){var n=c(e);-1<n.indexOf(i.startSymbol())||n||d(e,t,n)},getText:c,hasAriaLabel:m,parentHasAriaLabel:function e(t,n){n=n||1;var o=be.element(t)[0]||t;if(!o.parentNode)return!1;if(r(o.parentNode))return!0;n--;if(n)return e(o.parentNode,n);return!1;function r(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"rt":case"ruby":case"samp":case"small":case"source":case"span":case"status":case"strike":case"strong":case"sub":case"sup":case"svg":case"tbody":case"td":case"th":case"thead":case"time":case"tr":case"track":case"tt":case"ul":case"var":return!1}return!0}}};function d(e,t,n){var o=be.element(e)[0]||e;!o||o.hasAttribute(t)&&0!==o.getAttribute(t).length||function(e,t){var n=e.hasChildNodes(),o=!1;if(n)for(var r=e.childNodes,i=0;i<r.length;i++){var a=r[i];1===a.nodeType&&a.hasAttribute(t)&&"none"!==((d=a).currentStyle?d.currentStyle:s.getComputedStyle(d)).display&&(o=!0)}var d;return o}(o,t)||((n=be.isString(n)?n.trim():"").length?e.attr(t,n):a&&r.warn('ARIA: Attribute "',t,'", required for accessibility, is missing on node:',o))}function l(e,t,n){o(function(){d(e,t,n())})}function c(t){t=t[0]||t;for(var e,n=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,null),o="";e=n.nextNode();)r(e)||(o+=e.textContent);return o.trim()||"";function r(e){for(;e.parentNode&&(e=e.parentNode)!==t;)if(e.getAttribute&&"true"===e.getAttribute("aria-hidden"))return!0}}function m(e){var t=be.element(e)[0]||e;return!!t.hasAttribute&&(t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby")||t.hasAttribute("aria-describedby"))}}function H(){function i(e,t,n,o,r){this.$q=e,this.$templateRequest=t,this.$injector=n,this.$compile=o,this.$controller=r}this.$get=["$q","$templateRequest","$injector","$compile","$controller",function(e,t,n,o,r){return new i(e,t,n,o,r)}],i.prototype.compile=function(e){return e.contentElement?this._prepareContentElement(e):this._compileTemplate(e)},i.prototype._prepareContentElement=function(e){var t=this._fetchContentElement(e);return this.$q.resolve({element:t.element,cleanup:t.restore,locals:{},link:function(){return t.element}})},i.prototype._compileTemplate=function(o){var r=this,e=o.templateUrl,t=o.template||"",n=be.extend({},o.resolve),i=be.extend({},o.locals),a=o.transformTemplate||be.identity;return be.forEach(n,function(e,t){be.isString(e)?n[t]=r.$injector.get(e):n[t]=r.$injector.invoke(e)}),be.extend(n,i),n.$$ngTemplate=e?this.$templateRequest(e):this.$q.when(t),this.$q.all(n).then(function(e){var t=a(e.$$ngTemplate,o),n=o.element||be.element("<div>").html(t.trim()).contents();return r._compileElement(e,n,o)})},i.prototype._compileElement=function(o,r,i){var a=this,d=this.$compile(r),s={element:r,cleanup:r.remove.bind(r),locals:o,link:function(e){if(o.$scope=e,i.controller){var t=be.extend({},o,{$element:r}),n=a._createController(i,t,o);be.isFunction(n.$onDestroy)&&e.$on("$destroy",function(){be.isFunction(n.$onDestroy)&&n.$onDestroy()}),r.data("$ngControllerController",n),r.children().data("$ngControllerController",n),s.controller=n}return d(e)}};return s},i.prototype._createController=function(e,t,n){var o=this.$controller(e.controller,t);return e.bindToController&&be.extend(o,n),e.controllerAs&&(t.$scope[e.controllerAs]=o),be.isFunction(o.$onInit)&&o.$onInit(),o},i.prototype._fetchContentElement=function(e){var t,n=e.contentElement;return t=be.isString(n)?o(n=document.querySelector(n)):(n=n[0]||n,document.contains(n)?o(n):function(){n.parentNode&&n.parentNode.removeChild(n)}),{element:be.element(n),restore:t};function o(e){var t=e.parentNode,n=e.nextElementSibling;return function(){n?t.insertBefore(e,n):t.appendChild(e)}}}}function D(e,t,n){this.$timeout=e,this.$mdUtil=t,this.$rootScope=n,this.pointerEvent="MSPointerEvent"in L?"MSPointerDown":"PointerEvent"in L?"pointerdown":null,this.bodyElement=be.element(document.body),this.isBuffering=!1,this.bufferTimeout=null,this.lastInteractionType=null,this.lastInteractionTime=null,this.inputHandler=this.onInputEvent.bind(this),this.bufferedInputHandler=this.onBufferInputEvent.bind(this),this.inputEventMap={keydown:"keyboard",mousedown:"mouse",mouseenter:"mouse",touchstart:"touch",pointerdown:"pointer",MSPointerDown:"pointer"},this.iePointerMap={2:"touch",3:"touch",4:"mouse"},this.initializeEvents(),this.$rootScope.$on("$destroy",this.deregister.bind(this))}function I(e){return e.replace(h,"").replace(f,function(e,t,n,o){return o?n.toUpperCase():n})}function O(){var e=!!document.querySelector("[md-layouts-disabled]");T.enabled=!e}function P(){return T.enabled=!1,{restrict:"A",priority:"900"}}function R(o){return["$mdUtil","$interpolate","$log",function(e,t,n){return l=e,c=t,m=n,{restrict:"A",compile:function(e,t){var n;return T.enabled&&(B(o,z(o,t,""),U(e,o,t)),r(null,e),n=r),n||be.noop}}}];function r(e,t){t.addClass(o)}}function F(e,t,n,o){var r,i=n[0].nodeName.toLowerCase();switch(e.replace(v,"")){case"flex":"md-button"!==i&&"fieldset"!==i||(r="<"+i+" "+e+"></"+i+">","https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers","Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.",o.warn(l.supplant("Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.",[r,"https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers"])))}}function B(e,t,n){var o=t;if(!j(t)){switch(e.replace(v,"")){case"layout":q(t,y)||(t=y[0]);break;case"flex":q(t,$)||isNaN(t)&&(t="");break;case"flex-offset":case"flex-order":t&&!isNaN(+t)||(t="0");break;case"layout-align":var r=function(e){var t,n={main:"start",cross:"stretch"};0!==(e=e||"").indexOf("-")&&0!==e.indexOf(" ")||(e="none"+e);(t=e.toLowerCase().trim().replace(E,"-").split("-")).length&&"space"===t[0]&&(t=[t[0]+"-"+t[1],t[2]]);0<t.length&&(n.main=t[0]||n.main);1<t.length&&(n.cross=t[1]||n.cross);M.indexOf(n.main)<0&&(n.main="start");C.indexOf(n.cross)<0&&(n.cross="stretch");return n}(t);t=l.supplant("{main}-{cross}",r);break;case"layout-padding":case"layout-margin":case"layout-fill":case"layout-wrap":case"layout-nowrap":t=""}t!==o&&(n||be.noop)(t)}return t?t.trim():""}function U(e,t,n){return function(e){j(e)||(n[n.$normalize(t)]=e)}}function j(e){return-1<(e||"").indexOf(c.startSymbol())}function z(e,t,n){var o=t.$normalize(e);return t[o]?t[o].trim().replace(E,"-"):n||null}function q(t,e,n){t=n&&t?t.replace(E,n):t;var o=!1;return t&&e.forEach(function(e){e=n?e.replace(E,n):e,o=o||e===t}),o}function V(e){this._$timeout=e,this._liveElement=this._createLiveElement(),this._announceTimeout=100}function W(n,o){var r,i=[],a={};return r={notFoundError:function(e,t){n.error((t||"")+"No instance found for handle",e)},getInstances:function(){return i},get:function(e){if(!d(e))return null;var t,n,o;for(t=0,n=i.length;t<n;t++)if((o=i[t]).$$mdHandle===e)return o;return null},register:function(t,e){return e?(t.$$mdHandle=e,i.push(t),(n=a[e])&&(n.forEach(function(e){e.resolve(t)}),delete a[e]),function(){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}):be.noop;var n},when:function(e){if(d(e)){var t=o.defer(),n=r.get(e);return n?t.resolve(n):(a[e]===ge&&(a[e]=[]),a[e].push(t)),t.promise}return o.reject("Invalid `md-component-id` value.")}};function d(e){return e&&""!==e}}function Y(o){return{attach:function(e,t,n){return n=be.extend(function(e){return e.hasClass("md-icon-button")?{isMenuItem:e.hasClass("md-menu-item"),fitRipple:!0,center:!0}:{isMenuItem:e.hasClass("md-menu-item"),dimBackground:!0}}(t),n),o.attach(e,t,n)}}}function K(o){return{attach:function(e,t,n){return o.attach(e,t,be.extend({center:!0,dimBackground:!1,fitRipple:!0},n))}}}function G(o){return{attach:function(e,t,n){return o.attach(e,t,be.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},n))}}}function X(o){return{attach:function(e,t,n){return o.attach(e,t,be.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},n))}}}function Z(l){var c="virtual",t=["standard",c];function m(e){return e?(e=e.toLowerCase(),-1<t.indexOf(e)?e:c):c}return{controller:"MdAutocompleteCtrl",controllerAs:"$mdAutocompleteCtrl",scope:{inputName:"@mdInputName",inputMinlength:"@mdInputMinlength",inputMaxlength:"@mdInputMaxlength",searchText:"=?mdSearchText",selectedItem:"=?mdSelectedItem",itemsExpr:"@mdItems",itemText:"&mdItemText",placeholder:"@placeholder",inputAriaDescribedBy:"@?inputAriaDescribedby",inputAriaLabelledBy:"@?inputAriaLabelledby",inputAriaLabel:"@?inputAriaLabel",noCache:"=?mdNoCache",requireMatch:"=?mdRequireMatch",selectOnMatch:"=?mdSelectOnMatch",matchInsensitive:"=?mdMatchCaseInsensitive",itemChange:"&?mdSelectedItemChange",textChange:"&?mdSearchTextChange",minLength:"=?mdMinLength",delay:"=?mdDelay",autofocus:"=?mdAutofocus",floatingLabel:"@?mdFloatingLabel",autoselect:"=?mdAutoselect",menuClass:"@?mdMenuClass",menuContainerClass:"@?mdMenuContainerClass",inputClass:"@?mdInputClass",inputId:"@?mdInputId",escapeOptions:"@?mdEscapeOptions",dropdownItems:"=?mdDropdownItems",dropdownPosition:"@?mdDropdownPosition",clearButton:"=?mdClearButton",selectedMessage:"@?mdSelectedMessage",mdMode:"=?mdMode"},compile:function(e,n){var o=e.find("input");return["md-select-on-focus","md-no-asterisk","ng-trim","ng-pattern"].forEach(function(e){var t=n[n.$normalize(e)];null!==t&&o.attr(e,t)}),function(e,t,n,o){o.hasNotFound=!!t.attr("md-has-not-found"),be.isDefined(n.mdClearButton)||e.floatingLabel||(e.clearButton=!0),e.mdMode=m(n.mdMode),t.on("click touchstart touchend",function(e){e.stopPropagation()})}},template:function(n,e){var t,o,r=(t=n.find("md-not-found").detach(),(o=t.length?t.html():"")?'<li ng-if="$mdAutocompleteCtrl.notFoundVisible()" class="md-autocomplete-suggestion" md-autocomplete-parent-scope>'+o+"</li>":""),i=function(){var e=n.find("md-item-template").detach(),t=e.length?e.html():n.html();e.length||n.empty();return"<md-autocomplete-parent-scope md-autocomplete-replace>"+t+"</md-autocomplete-parent-scope>"}(),a=n.html(),d=e.tabindex;return r&&n.attr("md-has-not-found",!0),n.attr("tabindex","-1")," <md-autocomplete-wrap ng-class=\"{ 'md-whiteframe-z1': !floatingLabel, 'md-menu-showing': !$mdAutocompleteCtrl.hidden, 'md-show-clear-button': !!clearButton }\"> "+(e.mdFloatingLabel?' <md-input-container ng-if="floatingLabel"> <label>{{floatingLabel}}</label> <input type="text" '+(null!=d?'tabindex="'+d+'"':"")+' id="{{inputId || \'fl-input-\' + $mdAutocompleteCtrl.id}}" name="{{inputName || \'fl-input-\' + $mdAutocompleteCtrl.id }}" ng-class="::inputClass" autocomplete="off" ng-required="$mdAutocompleteCtrl.isRequired" ng-readonly="$mdAutocompleteCtrl.isReadonly" ng-minlength="inputMinlength" ng-maxlength="inputMaxlength" 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}}" ng-attr-aria-autocomplete="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'list\'}}" ng-attr-role="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'combobox\'}}" aria-haspopup="{{!$mdAutocompleteCtrl.isDisabled}}" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}" 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>'+a+"</div> </md-input-container>":' <input type="text" '+(null!=d?'tabindex="'+d+'"':"")+' id="{{inputId || \'input-\' + $mdAutocompleteCtrl.id}}" name="{{inputName || \'input-\' + $mdAutocompleteCtrl.id }}" ng-class="::inputClass" ng-if="!floatingLabel" autocomplete="off" ng-required="$mdAutocompleteCtrl.isRequired" ng-disabled="$mdAutocompleteCtrl.isDisabled" ng-readonly="$mdAutocompleteCtrl.isReadonly" 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}}" ng-attr-aria-autocomplete="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'list\'}}" ng-attr-role="{{$mdAutocompleteCtrl.isDisabled ? undefined : \'combobox\'}}" aria-haspopup="{{!$mdAutocompleteCtrl.isDisabled}}" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}" ng-attr-aria-owns="{{$mdAutocompleteCtrl.hidden || $mdAutocompleteCtrl.isDisabled ? undefined : \'ul-\' + $mdAutocompleteCtrl.id}}" ng-attr-aria-activedescendant="{{!$mdAutocompleteCtrl.hidden && $mdAutocompleteCtrl.activeOption ? $mdAutocompleteCtrl.activeOption : undefined}}">')+' <button type="button" aria-label="Clear Input" tabindex="0" ng-if="clearButton && $mdAutocompleteCtrl.scope.searchText" ng-click="$mdAutocompleteCtrl.clear($event)"><md-icon md-svg-src="'+l.mdClose+'"></md-icon></button> <md-progress-linear class="'+(e.mdFloatingLabel?"md-inline":"")+'" ng-if="$mdAutocompleteCtrl.loadingIsVisible()" md-mode="indeterminate"></md-progress-linear> '+function(e,t){if(e=e?" "+e:"",s(t))return' <div ng-hide="$mdAutocompleteCtrl.hidden" class="md-standard-list-container md-autocomplete-suggestions-container md-whiteframe-z1'+e+'" ng-class="{ \'md-not-found\': $mdAutocompleteCtrl.notFoundVisible() }" ng-mouseenter="$mdAutocompleteCtrl.listEnter()" ng-mouseleave="$mdAutocompleteCtrl.listLeave()" role="presentation"> <div class="md-standard-list-scroller" role="presentation">';return' <md-virtual-repeat-container md-auto-shrink md-auto-shrink-min="1" ng-hide="$mdAutocompleteCtrl.hidden" class="md-virtual-repeat-container md-autocomplete-suggestions-container md-whiteframe-z1'+e+'" ng-class="{ \'md-not-found\': $mdAutocompleteCtrl.notFoundVisible() }" ng-mouseenter="$mdAutocompleteCtrl.listEnter()" ng-mouseleave="$mdAutocompleteCtrl.listLeave()" role="presentation">'}(e.mdMenuContainerClass,e.mdMode)+' <ul class="md-autocomplete-suggestions" ng-class="::menuClass" id="ul-{{$mdAutocompleteCtrl.id}}" ng-mouseup="$mdAutocompleteCtrl.focusInput()" role="listbox"> <li class="md-autocomplete-suggestion" '+(s(e.mdMode)?"ng-repeat":"md-virtual-repeat")+' ="item in $mdAutocompleteCtrl.matches" ng-class="{ selected: $index === $mdAutocompleteCtrl.index }" ng-attr-id="{{\'md-option-\' + $mdAutocompleteCtrl.id + \'-\' + $index}}" ng-click="$mdAutocompleteCtrl.select($index)" role="option" aria-setsize="{{$mdAutocompleteCtrl.matches.length}}" aria-posinset="{{$index+1}}" aria-selected="{{$index === $mdAutocompleteCtrl.index ? true : false}}" md-extra-name="$mdAutocompleteCtrl.itemName"> '+i+" </li>"+r+" </ul> "+(s(e.mdMode)?" </div> </div> </div>":"</md-virtual-repeat-container>")+" </md-autocomplete-wrap>";function s(e){return m(e)!==c}}}}function Q(e,c){return{restrict:"AE",compile:function(e,t,l){return function(n,t,e){var o,r,i=n.$mdAutocompleteCtrl,a=i.parent.$new(),d=i.itemName;function s(e,t){a[t]=n[e],n.$watch(e,function(e){c.nextTick(function(){a[t]=e})})}s("$index","$index"),s("item",d),r=o=!1,n.$watch(function(){r||o||(o=!0,n.$$postDigest(function(){r||a.$digest(),o=r=!1}))}),a.$watch(function(){r=!0}),l(a,function(e){t.after(e)})}},terminal:!0,transclude:"element"}}function J(e,t,n,o){this.$scope=e,this.$element=t,this.$attrs=n,this.$mdUtil=o,this.regex=null}function ee(n,o){return{terminal:!0,controller:"MdHighlightCtrl",compile:function(e,t){var r=o(t.mdHighlightText),i=n(e.html());return function(e,t,n,o){o.init(r,i)}}}}function te(n){return{restrict:"E",link:function(e,t){t.addClass("_md"),e.$on("$destroy",function(){n.destroy()})}}}function ne(e){t.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture","$log"];var u=.5,p=80;return e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","clickOutsideToClose"],options:t});function t(o,a,d,r,s,i,l,c){var m;return{themable:!0,onShow:function(e,t,n){if((t=d.extractElementByName(t,"md-bottom-sheet")).attr("tabindex","-1"),t.hasClass("ng-cloak")){c.warn("$mdBottomSheet: using `<md-bottom-sheet ng-cloak>` will affect the bottom-sheet opening animations.",t[0])}n.isLockedOpen?(n.clickOutsideToClose=!1,n.escapeToClose=!1):n.cleanupGestures=function(o,e){var t=l.register(e,"drag",{horizontal:!1});return e.on("$md.dragstart",n).on("$md.drag",r).on("$md.dragend",i),function(){t(),e.off("$md.dragstart",n),e.off("$md.drag",r),e.off("$md.dragend",i)};function n(){o.css(a.CSS.TRANSITION_DURATION,"0ms")}function r(e){var t=e.pointer.distanceY;t<5&&(t=Math.max(-p,t/2)),o.css(a.CSS.TRANSFORM,"translate3d(0,"+(p+t)+"px,0)")}function i(e){if(0<e.pointer.distanceY&&(20<e.pointer.distanceY||Math.abs(e.pointer.velocityY)>u)){var t=o.prop("offsetHeight")-e.pointer.distanceY,n=Math.min(t/e.pointer.velocityY*.75,500);o.css(a.CSS.TRANSITION_DURATION,n+"ms"),d.nextTick(s.cancel,!0)}else o.css(a.CSS.TRANSITION_DURATION,""),o.css(a.CSS.TRANSFORM,"")}}(t,n.parent);n.disableBackdrop||((m=d.createBackdrop(e,"md-bottom-sheet-backdrop md-opaque"))[0].tabIndex=-1,n.clickOutsideToClose&&m.on("click",function(){d.nextTick(s.cancel,!0)}),r.inherit(m,n.parent),o.enter(m,n.parent,null));r.inherit(t,n.parent),n.disableParentScroll&&(n.restoreScroll=d.disableScrollAround(t,n.parent));return o.enter(t,n.parent,m).then(function(){var e=d.findFocusTarget(t)||be.element(t[0].querySelector("button")||t[0].querySelector("a")||t[0].querySelector(d.prefixer("ng-click",!0)))||m;n.escapeToClose&&(n.rootElementKeyupCallback=function(e){e.keyCode===a.KEY_CODE.ESCAPE&&d.nextTick(s.cancel,!0)},i.on("keyup",n.rootElementKeyupCallback),e&&e.focus())})},onRemove:function(e,t,n){n.disableBackdrop||o.leave(m);return o.leave(t).then(function(){n.disableParentScroll&&(n.restoreScroll(),delete n.restoreScroll),n.cleanupGestures&&n.cleanupGestures()})},disableBackdrop:!1,escapeToClose:!0,clickOutsideToClose:!0,disableParentScroll:!0,isLockedOpen:!1}}}function oe(n){return{restrict:"E",link:function(e,t){n(t)}}}function re(o,r,i,a){return{restrict:"EA",replace:!0,transclude:!0,template:function(e,t){{return d(t)?'<a class="md-button" ng-transclude></a>':'<button class="md-button" type="'+(void 0===t.type?"button":t.type)+'" ng-transclude></button>'}},link:function(e,t,n){r(t),o.attach(e,t),i.expectWithoutText(t,"aria-label"),d(n)&&be.isDefined(n.ngDisabled)&&!t.hasClass("_md-nav-button")&&e.$watch(n.ngDisabled,function(e){t.attr("tabindex",e?-1:0)});t.on("click",function(e){!0===n.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),t.hasClass("md-no-focus")||(t.on("focus",function(){a.isUserInvoked()&&"keyboard"!==a.getLastInteractionType()||t.addClass("md-focused")}),t.on("blur",function(){t.removeClass("md-focused")}))}};function d(e){return be.isDefined(e.href)||be.isDefined(e.ngHref)||be.isDefined(e.ngLink)||be.isDefined(e.uiSref)}}function ie(o){return{restrict:"E",link:function(e,t,n){t.addClass("_md"),o(t)}}}function ae(h,f,b,g,v,E){return h=h[0],{restrict:"E",transclude:!0,require:["^?mdInputContainer","?ngModel","?^form"],priority:b.BEFORE_NG_ARIA,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:function(e,t){return t.$set("tabindex",t.tabindex||"0"),t.$set("type","checkbox"),t.$set("role",t.type),e.addClass("md-auto-horizontal-margin"),{pre:function(e,t){t.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()})},post:function(o,r,i,e){var t,n=e[0],a=e[1]||v.fakeNgModel(),d=e[2],s=0<r.find("a").length;if(s){var l="label-"+v.nextUid();i.$set("aria-labelledby",l);var c=r.children()[1];be.element(c).remove(),c.removeAttribute("ng-transclude"),c.className="md-checkbox-link-label",c.setAttribute("id",l),r.after(c),r.next().on("click",u)}if(n){var m=n.isErrorGetter||function(){return a.$invalid&&(a.$touched||d&&d.$submitted)};n.input=r,o.$watch(m,n.setInvalid)}g(r),r.children().on("focus",function(){r.focus()}),v.parseAttributeBoolean(i.mdIndeterminate)&&(p(),o.$watch(i.mdIndeterminate,p));i.ngChecked&&o.$watch(o.$eval.bind(o,i.ngChecked),function(e){a.$setViewValue(e),a.$render()});(function(e,t,n){i[e]&&o.$watch(i[e],function(e){n[e]&&r.attr(t,n[e])})})("ngDisabled","tabindex",{true:"-1",false:i.tabindex}),s||f.expectWithText(r,"aria-label");function u(t){r[0].hasAttribute("disabled")||o.skipToggle||"A"===t.target.tagName||o.$apply(function(){var e=i.ngChecked&&i.ngClick?i.checked:!a.$viewValue;a.$setViewValue(e,t&&t.type),a.$render()})}function p(e){(t=!1!==e)&&r.attr("aria-checked","mixed"),r.toggleClass("md-indeterminate",t)}h.link.pre(o,{on:be.noop,0:{}},i,[a]),r.on("click",u).on("keypress",function(e){var t,n,o=e.which||e.keyCode;switch(e.preventDefault(),o){case b.KEY_CODE.SPACE:r.addClass("md-focused"),u(e);break;case b.KEY_CODE.ENTER:(n=v.getClosest(e.target,"form"))&&(t=n.querySelector('button[type="submit"]:enabled, input[type="submit"]:enabled'))&&t.click()}}).on("focus",function(){"keyboard"===E.getLastInteractionType()&&r.addClass("md-focused")}).on("blur",function(){r.removeClass("md-focused")}),a.$render=function(){r.toggleClass("md-checked",!!a.$viewValue&&!t)}}}}}}function de(e,t,n,o,r){this.$scope=e,this.$element=t,this.$mdConstant=n,this.$timeout=o,this.$mdUtil=r,this.isEditing=!1,this.parentController=ge,this.enableChipEdit=!1}function se(d,e,t,s){return{restrict:"E",require:["^?mdChips","mdChip"],link:function(e,t,n,o){var r=o.shift(),i=o.shift(),a=be.element(t[0].querySelector(".md-chip-content"));d(t),r&&(i.init(r),a.on("blur",function(){r.resetSelectedChip(),r.$scope.$applyAsync()}));s(function(){r&&r.shouldFocusLastChip&&r.focusLastChipThenInput()})},controller:"MdChipCtrl"}}function le(r){return{restrict:"A",require:"^mdChips",scope:!1,link:function(e,t,n,o){t.on("click",function(){e.$apply(function(){o.removeChip(e.$$replacedScope.$index)})}),r(function(){t.attr({tabindex:"-1","aria-hidden":"true"}),t.find("button").attr("tabindex","-1")})}}}function ce(a){return{restrict:"EA",terminal:!0,link:function(e,t,n){var o=e.$parent.$mdChipsCtrl,r=o.parent.$new(!1,o.parent);r.$$replacedScope=e,r.$chip=e.$chip,r.$index=e.$index;var i=(r.$mdChipsCtrl=o).$scope.$eval(n.mdChipTransclude);t.html(i),a(t.contents())(r)},scope:!1}}function me(e,t,n){this.$element=t,this.$attrs=e,this.$timeout=n,this.selectedItem=null,this.searchText="",this.deRegister=[],this.init()}function ue(n){return{restrict:"E",controller:["$scope","$element",function(e,t){this.$scope=e,this.$element=t}],link:function(e,t){t.addClass("_md"),n(t),e.$broadcast("$mdContentLoaded",t),function(t){be.element(t).on("$md.pressdown",function(e){"t"===e.pointer.type&&(e.$materialScrollFixed||(e.$materialScrollFixed=!0,0===t.scrollTop?t.scrollTop=1:t.scrollHeight===t.scrollTop+t.offsetHeight&&(t.scrollTop-=1)))})}(t[0])}}}function pe(e,t){var d=e('<md-icon md-svg-src="'+t.mdTabsArrow+'"></md-icon>')({})[0];return{require:["^^mdCalendar","^^mdCalendarMonth","mdCalendarMonthBody"],scope:{offset:"=mdMonthOffset"},controller:he,controllerAs:"mdMonthBodyCtrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1],a=o[2];a.calendarCtrl=r,a.monthCtrl=i,a.arrowIcon=d.cloneNode(!0),e.$watch(function(){return a.offset},function(e){be.isNumber(e)&&a.generateContent()})}}}function he(e,t,n){this.$element=e,this.dateUtil=t,this.dateLocale=n,this.monthCtrl=null,this.calendarCtrl=null,this.offset=null,this.focusAfterAppend=null}function fe(e,t,n){this.$element=e,this.dateUtil=t,this.dateLocale=n,this.calendarCtrl=null,this.yearCtrl=null,this.offset=null,this.focusAfterAppend=null}function ve(e,t,i){return{restrict:"E",link:function(o,r){r.addClass("_md"),t(r),e(function(){var e,t=r[0].querySelector("md-dialog-content");function n(){r.toggleClass("md-content-overflow",t.scrollHeight>t.clientHeight)}t&&(e=t.getElementsByTagName("img"),n(),be.element(e).on("load",n)),o.$on("$destroy",function(){i.destroy(r)})})}}}function Ee(e){var g,v,E;return n.$inject=["$mdDialog","$mdConstant"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement","$log","$injector","$mdTheming","$interpolate","$mdInteraction"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","closeTo","openFrom","parent","fullscreen","multiple"],options:o}).addPreset("alert",{methods:["title","htmlContent","textContent","ariaLabel","ok","theme","css"],options:t}).addPreset("confirm",{methods:["title","htmlContent","textContent","ariaLabel","ok","cancel","theme","css"],options:t}).addPreset("prompt",{methods:["title","htmlContent","textContent","initialValue","placeholder","ariaLabel","ok","cancel","theme","css","required"],options:t});function t(){return{template:['<md-dialog md-theme="{{ dialog.theme || dialog.defaultTheme }}" aria-label="{{ dialog.ariaLabel }}" ng-class="dialog.css">',' <md-dialog-content class="md-dialog-content" role="document" tabIndex="-1">',' <h2 class="md-title">{{ dialog.title }}</h2>',' <div ng-if="::dialog.mdHtmlContent" class="md-dialog-content-body" ',' ng-bind-html="::dialog.mdHtmlContent"></div>',' <div ng-if="::!dialog.mdHtmlContent" class="md-dialog-content-body">'," <p>{{::dialog.mdTextContent}}</p>"," </div>",' <md-input-container md-no-float ng-if="::dialog.$type == \'prompt\'" class="md-prompt-input-container">',' <input ng-keypress="dialog.keypress($event)" md-autofocus ng-model="dialog.result" placeholder="{{::dialog.placeholder}}" ng-required="dialog.required">'," </md-input-container>"," </md-dialog-content>"," <md-dialog-actions>",' <md-button ng-if="dialog.$type === \'confirm\' || dialog.$type === \'prompt\'" ng-click="dialog.abort()" class="md-primary md-cancel-button">'," {{ dialog.cancel }}"," </md-button>",' <md-button ng-click="dialog.hide()" class="md-primary md-confirm-button" md-autofocus="dialog.$type===\'alert\'" ng-disabled="dialog.required && !dialog.result">'," {{ dialog.ok }}"," </md-button>"," </md-dialog-actions>","</md-dialog>"].join("").replace(/\s\s+/g,""),controller:n,controllerAs:"dialog",bindToController:!0}}function n(o,r){this.$onInit=function(){var n="prompt"===this.$type;n&&this.initialValue&&(this.result=this.initialValue),this.hide=function(){o.hide(!n||this.result)},this.abort=function(){o.cancel()},this.keypress=function(e){var t=n&&this.required&&!be.isDefined(this.result);e.keyCode!==r.KEY_CODE.ENTER||t||o.hide(this.result)}}}function o(u,d,p,h,r,s,f,i,a,l,t,c,m){return{hasBackdrop:!0,isolateScope:!0,onCompiling:function(e){e.defaultTheme=t.defaultTheme(),function(t){var e;t.targetEvent&&t.targetEvent.target&&(e=be.element(t.targetEvent.target));var n=e&&e.controller("mdTheme");if(t.hasTheme=!!n,!t.hasTheme)return;t.themeWatch=n.$shouldWatch;var o=t.theme||n.$mdTheme;o&&(t.scope.theme=o);var r=n.registerChanges(function(e){t.scope.theme=e,t.themeWatch||r()})}(e)},onShow:function(e,t,n){be.element(s[0].body).addClass("md-dialog-is-showing");var o=t.find("md-dialog");if(o.hasClass("ng-cloak")){a.warn("$mdDialog: using `<md-dialog ng-cloak>` will affect the dialog opening animations.",t[0])}return function(e){e.origin=be.extend({element:null,bounds:null,focus:be.noop},e.origin||{}),e.parent=n(e.parent,i),e.closeTo=t(n(e.closeTo)),e.openFrom=t(n(e.openFrom)),e.targetEvent&&(e.origin=t(e.targetEvent.target,e.origin),e.originInteraction=m.getLastInteractionType());function t(e,t){var n=be.element(e||{});if(n&&n.length){var o=be.isFunction(n[0].getBoundingClientRect);return be.extend(t||{},{element:o?n:ge,bounds:o?n[0].getBoundingClientRect():be.extend({},{top:0,left:0,height:0,width:0},n[0]),focus:be.bind(n,n.focus)})}}function n(e,t){return be.isString(e)&&(e=s[0].querySelector(e)),be.element(e||t)}}(n),function(e,t){var n="alert"===t.$type?"alertdialog":"dialog",o=e.find("md-dialog-content"),r=e.attr("id"),i="dialogContent_"+(r||p.nextUid());e.attr({role:n,tabIndex:"-1"}),0===o.length&&(o=e,r&&(i=r));o.attr("id",i),e.attr("aria-describedby",i),t.ariaLabel?d.expect(e,"aria-label",t.ariaLabel):d.expectAsync(e,"aria-label",function(){if(t.title)return t.title;var e=o.text().split(/\s+/);return 3<e.length&&(e=e.slice(0,3).concat("...")),e.join(" ")});(g=document.createElement("div")).classList.add("md-dialog-focus-trap"),g.tabIndex=0,v=g.cloneNode(!1);function a(){e.focus()}g.addEventListener("focus",a),v.addEventListener("focus",a),E=function(){g.removeEventListener("focus",a),v.removeEventListener("focus",a),g&&g.parentNode&&g.parentNode.removeChild(g),v&&v.parentNode&&v.parentNode.removeChild(v)},e[0].parentNode.insertBefore(g,e[0]),e.after(v)}(o,n),function(e,t,n){n.disableParentScroll&&(n.restoreScroll=p.disableScrollAround(t,n.parent));n.hasBackdrop&&(n.backdrop=p.createBackdrop(e,"md-dialog-backdrop md-opaque"),r.enter(n.backdrop,n.parent));n.hideBackdrop=function(e){n.backdrop&&(e?n.backdrop.remove():r.leave(n.backdrop)),n.disableParentScroll&&(n.restoreScroll&&n.restoreScroll(),delete n.restoreScroll),n.hideBackdrop=null}}(e,t,n),function(e,t){function n(){var e="alert"===t.$type?u.hide:u.cancel;p.nextTick(e,!0)}var o=be.element(f),r=p.debounce(function(){b(e,t)},60),i=[];if(t.escapeToClose){var a=t.parent,d=function(e){e.keyCode===h.KEY_CODE.ESCAPE&&(e.stopImmediatePropagation(),e.preventDefault(),n())};e.on("keydown",d),a.on("keydown",d),i.push(function(){e.off("keydown",d),a.off("keydown",d)})}if(o.on("resize",r),i.push(function(){o.off("resize",r)}),t.clickOutsideToClose){var s,l=e,c=function(e){s=e.target},m=function(e){s===l[0]&&e.target===l[0]&&(e.stopPropagation(),e.preventDefault(),n())};l.on("mousedown",c),l.on("mouseup",m),i.push(function(){l.off("mousedown",c),l.off("mouseup",m)})}t.deactivateListeners=function(){i.forEach(function(e){e()}),t.deactivateListeners=null}}(t,n),function(e,t){t.parent.append(e),t.reverseContainerStretch=b(e,t);var n=e.find("md-dialog"),o=p.dom.animator,r=o.calculateZoomToOrigin,i={transitionInClass:"md-transition-in",transitionOutClass:"md-transition-out"},a=o.toTransformCss(r(n,t.openFrom||t.origin)),d=o.toTransformCss("");return n.toggleClass("md-dialog-fullscreen",!!t.fullscreen),o.translate3d(n,a,d,i).then(function(e){return t.reverseAnimate=function(){return delete t.reverseAnimate,t.closeTo?(i={transitionInClass:"md-transition-out",transitionOutClass:"md-transition-in"},a=d,d=o.toTransformCss(r(n,t.closeTo)),o.translate3d(n,a,d,i)):e(d=o.toTransformCss(r(n,t.origin)))},t.clearAnimate=function(){return delete t.clearAnimate,n.removeClass([i.transitionOutClass,i.transitionInClass].join(" ")),o.translate3d(n,d,o.toTransformCss(""),{})},!0})}(t,n).then(function(){!function(e,t){var o=!0;function n(e){for(var t=function(e){for(var t,n=[];e.parentNode;){if(e===document.body)return n;for(var o=e.parentNode.children,r=0;r<o.length;r++)e===o[r]||(t=o[r],-1!==["SCRIPT","STYLE"].indexOf(t.nodeName))||o[r].hasAttribute("aria-live")||n.push(o[r]);e=e.parentNode}return n}(e),n=0;n<t.length;n++)t[n].setAttribute("aria-hidden",o)}n(e[0]),t.unlockScreenReader=function(){o=!1,n(e[0]),t.unlockScreenReader=null}}(t,n),function(){if(n.focusOnOpen){(p.findFocusTarget(t)||t[0].querySelector(".dialog-close, md-dialog-actions button:last-child")||o).focus()}}()})},onShowing:function(e,t,n,o){if(o){var r=o.htmlContent||n.htmlContent||"",i=o.textContent||n.textContent||"";if(r&&!l.has("$sanitize"))throw Error("The ngSanitize module must be loaded in order to use htmlContent.");if(r&&i)throw Error("md-dialog cannot have both `htmlContent` and `textContent`");o.mdHtmlContent=r,o.mdTextContent=i}},onRemove:function(e,t,n){n.deactivateListeners(),n.unlockScreenReader(),n.hideBackdrop(n.$destroy),E&&(E(),E=null);return n.$destroy?o():function(e,t){return t.reverseAnimate().then(function(){t.contentElement&&t.clearAnimate()})}(0,n).then(o);function o(){be.element(s[0].body).removeClass("md-dialog-is-showing"),n.contentElement&&n.reverseContainerStretch(),n.cleanupElement(),n.$destroy||"keyboard"!==n.originInteraction||n.origin.focus()}},clickOutsideToClose:!1,escapeToClose:!0,targetEvent:null,closeTo:null,openFrom:null,focusOnOpen:!0,disableParentScroll:!0,autoWrap:!0,fullscreen:!1,transformTemplate:function(e,t){var n,o=c.startSymbol(),r=c.endSymbol(),i=o+(t.themeWatch?"":"::")+"theme"+r;return'<div class="md-dialog-container" tabindex="-1" '+(t.hasTheme?'md-theme="'+i+'"':"")+">"+(n=e,t.autoWrap&&!/<\/md-dialog>/g.test(n)?"<md-dialog>"+(n||"")+"</md-dialog>":n||"")+"</div>"}};function b(e,t){var n="fixed"===f.getComputedStyle(s[0].body).position,o=t.backdrop?f.getComputedStyle(t.backdrop[0]):null,r=o?Math.min(s[0].body.clientHeight,Math.ceil(Math.abs(parseInt(o.height,10)))):0,i={top:e.css("top"),height:e.css("height")},a=Math.abs(t.parent[0].getBoundingClientRect().top);return e.css({top:(n?a:0)+"px",height:r?r+"px":"100%"}),function(){e.css(i)}}}}function $e(e){return{restrict:"E",link:e}}function ye(o){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,t){var n=e.children();o.prefixer().hasAttribute(n,"ng-repeat")?n.addClass("md-fab-action-item"):n.wrap('<div class="md-fab-action-item">')}}}function Me(t,i,a,d,n,o){var r,s=this,e=0;function l(e){"click"==e.type&&function(e){!function(e){return d.getClosest(e,"md-fab-trigger")}(e.target)||s.toggle();!function(e){return d.getClosest(e,"md-fab-actions")}(e.target)||s.close()}(e),"focusout"!=e.type||r||(r=o(function(){s.close()},100,!1)),"focusin"==e.type&&r&&(o.cancel(r),r=null)}function c(){s.currentActionIndex=-1}function m(){0<i[0].scrollHeight?a.addClass(i,"_md-animations-ready").then(function(){i.removeClass("md-animations-waiting")}):e<10&&(o(m,100),e+=1)}function u(){i.off("keydown",h),be.element(document).off("click touchend",p)}function p(e){if(e.target){var t=d.getClosest(e.target,"md-fab-trigger"),n=d.getClosest(e.target,"md-fab-actions");t||n||s.close()}}function h(e){switch(e.which){case n.KEY_CODE.ESCAPE:return s.close(),e.preventDefault(),!1;case n.KEY_CODE.LEFT_ARROW:return function(e){"left"===s.direction?b(e):f(e)}(e),!1;case n.KEY_CODE.UP_ARROW:return function(e){"down"===s.direction?f(e):b(e)}(e),!1;case n.KEY_CODE.RIGHT_ARROW:return function(e){"left"===s.direction?f(e):b(e)}(e),!1;case n.KEY_CODE.DOWN_ARROW:return function(e){"up"===s.direction?f(e):b(e)}(e),!1}}function f(e){g(e,-1)}function b(e){g(e,1)}function g(e,t){var n=function(){var e=v()[0].querySelectorAll(".md-fab-action-item");return be.forEach(e,function(e){be.element(be.element(e).children()[0]).attr("tabindex",-1)}),e}();s.currentActionIndex=s.currentActionIndex+t,s.currentActionIndex=Math.min(n.length-1,s.currentActionIndex),s.currentActionIndex=Math.max(0,s.currentActionIndex);var o=be.element(n[s.currentActionIndex]).children()[0];be.element(o).attr("tabindex",0),o.focus(),e.preventDefault(),e.stopImmediatePropagation()}function v(){return i.find("md-fab-actions")}s.open=function(){t.$evalAsync("vm.isOpen = true")},s.close=function(){t.$evalAsync("vm.isOpen = false"),i.find("md-fab-trigger")[0].focus()},s.toggle=function(){t.$evalAsync("vm.isOpen = !vm.isOpen")},s.$onInit=function(){s.direction=s.direction||"down",s.isOpen=s.isOpen||!1,c(),i.addClass("md-animations-waiting"),function(){var e=["click","focusin","focusout"];be.forEach(e,function(e){i.on(e,l)}),t.$on("$destroy",function(){be.forEach(e,function(e){i.off(e,l)}),u()})}(),function(){var o,r;t.$watch("vm.direction",function(e,t){a.removeClass(i,"md-"+t),a.addClass(i,"md-"+e),c()}),t.$watch("vm.isOpen",function(e){c(),o&&r||(o=i.find("md-fab-trigger"),r=v()),e?(i.on("keydown",h),d.nextTick(function(){be.element(document).on("click touchend",p)})):u();var t=e?"md-is-open":"",n=e?"":"md-is-open";o.attr("aria-haspopup",!0),o.attr("aria-expanded",e),r.attr("aria-hidden",!e),a.setClass(i,t,n)})}(),m()},1===be.version.major&&be.version.minor<=4&&this.$onInit()}function Ce(){function o(e,t){if(t){var n=e[0],o=e.controller("mdFabToolbar"),r=n.querySelector(".md-fab-toolbar-background"),i=n.querySelector("md-fab-trigger button"),a=n.querySelector("md-toolbar"),d=n.querySelector("md-fab-trigger button md-icon"),s=e.find("md-fab-actions").children();if(i&&r){var l=L.getComputedStyle(i).getPropertyValue("background-color"),c=n.offsetWidth,m=(n.offsetHeight,c/i.offsetWidth*2);r.style.backgroundColor=l,r.style.borderRadius=c+"px",o.isOpen?(a.style.pointerEvents="inherit",r.style.width=i.offsetWidth+"px",r.style.height=i.offsetHeight+"px",r.style.transform="scale("+m+")",r.style.transitionDelay="0ms",d&&(d.style.transitionDelay=".3s"),be.forEach(s,function(e,t){e.style.transitionDelay=25*(s.length-t)+"ms"})):(a.style.pointerEvents="none",r.style.transform="scale(1)",r.style.top="0",e.hasClass("md-right")&&(r.style.left="0",r.style.right=null),e.hasClass("md-left")&&(r.style.right="0",r.style.left=null),r.style.transitionDelay="200ms",d&&(d.style.transitionDelay="0ms"),be.forEach(s,function(e,t){e.style.transitionDelay=200+25*t+"ms"}))}}}return{addClass:function(e,t,n){o(e,t),n()},removeClass:function(e,t,n){o(e,t),n()}}}function Te(u,g,v,E,$){return{restrict:"E",controller:Ae,scope:{mdOnLayout:"&"},link:function(n,i,p,t){i.addClass("_md"),i.attr("role","list"),t.layoutDelegate=function(e){var o=[].filter.call(i.children(),function(e){return"MD-GRID-TILE"==e.tagName&&!e.$$mdDestroyed}),r={tileSpans:function(e){return[].map.call(e,function(e){var t=be.element(e).controller("mdGridTile");return{row:parseInt(E.getResponsiveAttribute(t.$attrs,"md-rowspan"),10)||1,col:parseInt(E.getResponsiveAttribute(t.$attrs,"md-colspan"),10)||1}})}(o),colCount:function(){var e=parseInt(E.getResponsiveAttribute(p,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}(),rowMode:c(),rowHeight:function(){var e=E.getResponsiveAttribute(p,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";switch(c()){case"fixed":return m(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}(),gutter:m(E.getResponsiveAttribute(p,"md-gutter")||1)};if(!e&&be.equals(r,a))return;var t=v(r.colCount,r.tileSpans,o).map(function(e,n){return{grid:{element:i,style:function(e,t,n,o,r){var i={};switch(o){case"fixed":i.height=b({unit:r,span:t,gutter:n}),i.paddingBottom="";break;case"ratio":var a=h({share:1/r*(1/e*100),gutterShare:1===e?0:(e-1)/e,gutter:n});i.height="",i.paddingBottom=b({unit:a,span:t,gutter:n})}return i}(r.colCount,n,r.gutter,r.rowMode,r.rowHeight)},tiles:e.map(function(e,t){return{element:be.element(o[t]),style:function(e,t,n,o,r,i,a){var d=1/n*100,s=(n-1)/n,l=h({share:d,gutterShare:s,gutter:r}),c=$.isRtl(p)?{right:f({unit:l,offset:e.col,gutter:r}),width:b({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""}:{left:f({unit:l,offset:e.col,gutter:r}),width:b({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":c.top=f({unit:a,offset:e.row,gutter:r}),c.height=b({unit:a,span:t.row,gutter:r});break;case"ratio":var m=d/a,u=h({share:m,gutterShare:s,gutter:r});c.paddingTop=b({unit:u,span:t.row,gutter:r}),c.marginTop=f({unit:u,offset:e.row,gutter:r});break;case"fit":u=h({share:m=1/o*100,gutterShare:(o-1)/o,gutter:r}),c.top=f({unit:u,offset:e.row,gutter:r}),c.height=b({unit:u,span:t.row,gutter:r})}return c}(e.position,e.spans,r.colCount,n,r.gutter,r.rowMode,r.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:t}}),a=r};var a,o=be.bind(t,t.invalidateLayout),r=function(){for(var e in g.MEDIA)E(e),E.getQuery(g.MEDIA[e]).addListener(o);return E.watchResponsiveAttributes(["md-cols","md-row-height","md-gutter"],p,d)}();function d(e){null==e?t.invalidateLayout():E(e)&&t.invalidateLayout()}n.$on("$destroy",function(){for(var e in t.layoutDelegate=be.noop,r(),g.MEDIA)E.getQuery(g.MEDIA[e]).removeListener(o)});var s=u.startSymbol(),l=u.endSymbol();function e(e){return s+e+l}var h=u(e("share")+"% - ("+e("gutter")+" * "+e("gutterShare")+")"),f=u("calc(("+e("unit")+" + "+e("gutter")+") * "+e("offset")+")"),b=u("calc(("+e("unit")+") * "+e("span")+" + ("+e("span")+" - 1) * "+e("gutter")+")");function c(){var e=E.getResponsiveAttribute(p,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function m(e){return/\D$/.test(e)?e:e+"px"}}}}function Ae(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=be.noop}function we(s){var l=t;return e.animateWith=function(e){l=be.isFunction(e)?e:t},e;function e(e,t){var n,o,r,i,a,d;return i=s.time(function(){o=function(r,e){var i=0,a=0,d=function(){for(var e=[],t=0;t<r;t++)e.push(0);return e}();return{positioning:e.map(function(e,t){return{spans:e,position:function(e,t){if(e.col>r)throw"md-grid-list: Tile at position "+t+" has a colspan ("+e.col+") that exceeds the column count ("+r+")";var n=0,o=0;for(;o-n<e.col;)r<=i?s():-1!==(n=d.indexOf(0,i))&&-1!==(o=c(n+1))?i=o+1:(n=o=0,s());return l(n,e.col,e.row),i=n+e.col,{col:n,row:a}}(e,t)}}),rowCount:a+Math.max.apply(Math,d)};function s(){a++,l(i=0,r,-1)}function l(e,t,n){for(var o=e;o<e+t;o++)d[o]=Math.max(d[o]+n,0)}function c(e){var t;for(t=e;t<d.length;t++)if(0!==d[t])return t;if(t===d.length)return t}}(e,t)}),n={layoutInfo:function(){return o},map:function(t){return a=s.time(function(){var e=n.layoutInfo();r=t(e.positioning,e.rowCount)}),n},reflow:function(e){return d=s.time(function(){(e||l)(r.grid,r.tiles)}),n},performance:function(){return{tileCount:t.length,layoutTime:i,mapTime:a,reflowTime:d,totalTime:i+a+d}}}}function t(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}}function _e(i){return{restrict:"E",require:"^mdGridList",template:"<figure ng-transclude></figure>",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:function(e,t,n,o){t.attr("role","listitem");var r=i.watchResponsiveAttributes(["md-colspan","md-rowspan"],n,be.bind(o,o.invalidateLayout));o.invalidateTiles(),e.$on("$destroy",function(){t[0].$$mdDestroyed=!0,r(),o.invalidateLayout()}),be.isDefined(e.$parent.$index)&&e.$watch(function(){return e.$parent.$index},function(e,t){e!==t&&o.invalidateTiles()})}}}function ke(){return{template:"<figcaption ng-transclude></figcaption>",transclude:!0}}function xe(t){return{restrict:"E",compile:function(e){return e[0].setAttribute("role","list"),t}}}function Ne(m,u,p,h){var f=["md-checkbox","md-switch","md-menu"];return{restrict:"E",controller:"MdListController",compile:function(r,o){var e,i,t,n=r[0].querySelectorAll(".md-secondary"),a=r;if(r[0].setAttribute("role","listitem"),o.ngClick||o.ngDblclick||o.ngHref||o.href||o.uiSref||o.ngAttrUiSref)s("button");else if(!r.hasClass("md-no-proxy")){for(var d=0;d<f.length;++d)if(null!==(i=r[0].querySelector(f[d]))){e=!0;break}e?s("div"):r.addClass("md-no-proxy")}function s(e){if("div"===e)(a=be.element('<div class="md-no-style md-list-item-inner">')).append(r.contents()),r.addClass("md-proxy-focus");else{a=be.element('<div class="md-button md-no-style"> <div class="md-list-item-inner"></div></div>');var t=be.element('<md-button class="md-no-style"></md-button>');if(l(r[0],t[0]),!t.attr("aria-label")){t.attr("aria-label",m.getText(r));var n=a[0].querySelector(".md-list-item-inner");n&&n.setAttribute("aria-hidden","true")}r.hasClass("md-no-focus")&&t.addClass("md-no-focus"),a.prepend(t),a.children().eq(1).append(r.contents()),r.addClass("_md-button-wrap")}r[0].setAttribute("tabindex","-1"),r.append(a)}function l(t,n,e){var o=p.prefixer(["ng-if","ng-click","ng-dblclick","aria-label","n