text: /*!
   * Angular Material Design
   * https://github.com/angular/material
   * @license MIT
   * v1.0.6-master-76310b1
   */
  function mdInputContainerDirective(e,t){function n(t,n){e(n);var i=n[0].querySelector(a),r=n[0].querySelector(o);i&&n.addClass("md-icon-left"),r&&n.addClass("md-icon-right")}function i(e,n,i,r){var a=this;a.isErrorGetter=i.mdIsError&&t(i.mdIsError),a.delegateClick=function(){a.input.focus()},a.element=n,a.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},a.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},a.setHasPlaceholder=function(e){n.toggleClass("md-input-has-placeholder",!!e)},a.setInvalid=function(e){e?r.addClass(n,"md-input-invalid"):r.removeClass(n,"md-input-invalid")},e.$watch(function(){return a.label&&a.input},function(e){e&&!a.label.attr("for")&&a.label.attr("for",a.input.attr("id"))})}var r=["INPUT","TEXTAREA","SELECT","MD-SELECT"],a=r.reduce(function(e,t){return e.concat(["md-icon ~ "+t,".md-icon ~ "+t])},[]).join(","),o=r.reduce(function(e,t){return e.concat([t+" ~ md-icon",t+" ~ .md-icon"])},[]).join(",");return i.$inject=["$scope","$element","$attrs","$animate"],{restrict:"E",link:n,controller:i}}function labelDirective(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,i){!i||n.mdNoFloat||t.hasClass("_md-container-ignore")||(i.label=t,e.$on("$destroy",function(){i.label=null}))}}}function inputTextareaDirective(e,t,n,i){function r(r,a,o,s){function l(e){return m.setHasValue(!f.$isEmpty(e)),e}function u(){m.label&&o.$observe("required",function(e){m.label.toggleClass("md-required",e&&!v)})}function c(){m.setHasValue(a.val().length>0||(a[0].validity||{}).badInput)}function d(){function n(){if(a.addClass("md-no-flex").attr("rows",1),c){d||(m.style.minHeight=0,d=a.prop("clientHeight"),m.style.minHeight=null);var e=Math.round(Math.round(s()/d)),t=Math.min(e,c);a.css("height",d*t+"px").attr("rows",t).toggleClass("_md-textarea-scrollable",e>=c)}else{a.css("height","auto"),m.scrollTop=0;var n=s();n&&a.css("height",n+"px")}a.removeClass("md-no-flex")}function s(){var e=m.offsetHeight,t=m.scrollHeight-e;return e+(t>0?t:0)}function l(e){m.scrollTop=0;var t=m.scrollHeight-m.offsetHeight,n=m.offsetHeight+t;m.style.height=n+"px"}function u(e){return n(),e}if(!o.hasOwnProperty("mdNoAutogrow")){var c=o.hasOwnProperty("rows")?parseInt(o.rows):NaN,d=null,m=a[0];if(i(function(){e.nextTick(n)},10,!1),g?(f.$formatters.unshift(u),f.$parsers.unshift(u)):a.on("input",n),c||a.attr("rows",1).on("scroll",l),angular.element(t).on("resize",n),r.$on("$destroy",function(){angular.element(t).off("resize",n)}),o.hasOwnProperty("mdDetectHidden")){var p=function(){var e=!1;return function(){var t=0===m.offsetHeight;t===!1&&e===!0&&n(),e=t}}();r.$watch(function(){return e.nextTick(p,!1),!0})}}}var m=s[0],g=!!s[1],f=s[1]||e.fakeNgModel(),p=angular.isDefined(o.readonly),v=e.parseAttributeBoolean(o.mdNoAsterisk);if(m){if("hidden"===o.type)return void a.attr("aria-hidden","true");if(m.input)throw new Error("<md-input-container> can only have *one* <input>, <textarea> or <md-select> child element!");m.input=a,u();var h=angular.element('<div class="md-errors-spacer">');a.after(h),m.label||n.expect(a,"aria-label",a.attr("placeholder")),a.addClass("md-input"),a.attr("id")||a.attr("id","input_"+e.nextUid()),"textarea"===a[0].tagName.toLowerCase()&&d(),g||c();var $=m.isErrorGetter||function(){return f.$invalid&&(f.$touched||M())},M=function(){var t=e.getClosest(a,"form"),n=t?angular.element(t).controller("form"):null;return n?n.$submitted:!1};r.$watch($,m.setInvalid),f.$parsers.push(l),f.$formatters.push(l),a.on("input",c),p||a.on("focus",function(t){e.nextTick(function(){m.setFocused(!0)})}).on("blur",function(t){e.nextTick(function(){m.setFocused(!1),c()})}),r.$on("$destroy",function(){m.setFocused(!1),m.setHasValue(!1),m.input=null})}}return{restrict:"E",require:["^?mdInputContainer","?ngModel"],link:r}}function mdMaxlengthDirective(e,t){function n(n,i,r,a){function o(e){return l.parent?(l.text(String(i.val()||e||"").length+"/"+s),e):e}var s,l,u,c=a[0],d=a[1];t.nextTick(function(){u=angular.element(d.element[0].querySelector(".md-errors-spacer")),l=angular.element('<div class="md-char-counter">'),u.append(l),r.$set("ngTrim","false"),c.$formatters.push(o),c.$viewChangeListeners.push(o),i.on("input keydown keyup",function(){o()}),n.$watch(r.mdMaxlength,function(t){s=t,angular.isNumber(t)&&t>0?(l.parent().length||e.enter(l,u),o()):e.leave(l)}),c.$validators["md-maxlength"]=function(e,t){return!angular.isNumber(s)||0>s?!0:(e||i.val()||t||"").length<=s}})}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function placeholderDirective(e){function t(e,t,n,i){if(i){var r=i.element.find("label"),a=angular.isDefined(i.element.attr("md-no-float"));if(r&&r.length||a)return void i.setHasPlaceholder(!0);var o=n.placeholder;if(t.removeAttr("placeholder"),i.input&&"MD-SELECT"!=i.input[0].nodeName){var s='<label ng-click="delegateClick()">'+o+"</label>";i.element.addClass("md-icon-float"),i.element.prepend(s)}}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:t}}function mdSelectOnFocusDirective(e){function t(t,n,i){function r(){o=!0,e(function(){n[0].select(),o=!1},1,!1)}function a(e){o&&e.preventDefault()}if("INPUT"===n[0].nodeName||"TEXTAREA"===n[0].nodeName){var o=!1;n.on("focus",r).on("mouseup",a),t.$on("$destroy",function(){n.off("focus",r).off("mouseup",a)})}}return{restrict:"A",link:t}}function ngMessagesDirective(){function e(e,n,i,r){r&&(n.toggleClass("md-input-messages-animation",!0),n.toggleClass("md-auto-hide",!0),("false"==i.mdAutoHide||t(i))&&n.toggleClass("md-auto-hide",!1))}function t(e){return visibilityDirectives.some(function(t){return e[t]})}return{restrict:"EA",link:e,require:"^^?mdInputContainer"}}function ngMessageDirective(e){function t(t){var n=e.getClosest(t,"md-input-container");if(n)return t.toggleClass("md-input-message-animation",!0),{}}return{restrict:"EA",compile:t,priority:100}}function mdInputInvalidMessagesAnimation(e,t){return{addClass:function(n,i,r){var a=getMessagesElement(n);"md-input-invalid"==i&&a.hasClass("md-auto-hide")?showInputMessages(n,t,e)["finally"](r):r()}}}function ngMessagesAnimation(e,t){return{enter:function(n,i){showInputMessages(n,t,e)["finally"](i)},leave:function(n,i){hideInputMessages(n,t,e)["finally"](i)},addClass:function(n,i,r){"ng-hide"==i?hideInputMessages(n,t,e)["finally"](r):r()},removeClass:function(n,i,r){"ng-hide"==i?showInputMessages(n,t,e)["finally"](r):r()}}}function ngMessageAnimation(e){return{enter:function(t,n){var i=getMessagesElement(t);return i.hasClass("md-auto-hide")?void n():showMessage(t,e)},leave:function(t,n){return hideMessage(t,e)}}}function showInputMessages(e,t,n){var i,r=[],a=getMessagesElement(e);return angular.forEach(a.children(),function(e){i=showMessage(angular.element(e),t),r.push(i.start())}),n.all(r)}function hideInputMessages(e,t,n){var i,r=[],a=getMessagesElement(e);return angular.forEach(a.children(),function(e){i=hideMessage(angular.element(e),t),r.push(i.start())}),n.all(r)}function showMessage(e,t){var n=e[0].offsetHeight;return t(e,{event:"enter",structural:!0,from:{opacity:0,"margin-top":-n+"px"},to:{opacity:1,"margin-top":"0"},duration:.3})}function hideMessage(e,t){var n=e[0].offsetHeight,i=window.getComputedStyle(e[0]);return 0==i.opacity?t(e,{}):t(e,{event:"leave",structural:!0,from:{opacity:1,"margin-top":0},to:{opacity:0,"margin-top":-n+"px"},duration:.3})}function getInputElement(e){var t=e.controller("mdInputContainer");return t.element}function getMessagesElement(e){var t=getInputElement(e);return angular.element(t[0].querySelector(".md-input-messages-animation"))}goog.provide("ng.material.components.input"),goog.require("ng.material.core"),angular.module("material.components.input",["material.core"]).directive("mdInputContainer",mdInputContainerDirective).directive("label",labelDirective).directive("input",inputTextareaDirective).directive("textarea",inputTextareaDirective).directive("mdMaxlength",mdMaxlengthDirective).directive("placeholder",placeholderDirective).directive("ngMessages",ngMessagesDirective).directive("ngMessage",ngMessageDirective).directive("ngMessageExp",ngMessageDirective).directive("mdSelectOnFocus",mdSelectOnFocusDirective).animation(".md-input-invalid",mdInputInvalidMessagesAnimation).animation(".md-input-messages-animation",ngMessagesAnimation).animation(".md-input-message-animation",ngMessageAnimation),mdInputContainerDirective.$inject=["$mdTheming","$parse"],inputTextareaDirective.$inject=["$mdUtil","$window","$mdAria","$timeout"],mdMaxlengthDirective.$inject=["$animate","$mdUtil"],placeholderDirective.$inject=["$log"],mdSelectOnFocusDirective.$inject=["$timeout"];var visibilityDirectives=["ngIf","ngShow","ngHide","ngSwitchWhen","ngSwitchDefault"];ngMessageDirective.$inject=["$mdUtil"],mdInputInvalidMessagesAnimation.$inject=["$q","$animateCss"],ngMessagesAnimation.$inject=["$q","$animateCss"],ngMessageAnimation.$inject=["$animateCss"],ng.material.components.input=angular.module("material.components.input");