/*! * Angular Material Design * https://github.com/angular/material * @license MIT * v0.7.0-rc3 */ !function(){function t(t){function e(e,n){t(n)}function n(t,e){var n=this;n.element=e,n.setFocused=function(t){e.toggleClass("md-input-focused",!!t)},n.setHasValue=function(t){e.toggleClass("md-input-has-value",!!t)},n.setInvalid=function(t){e.toggleClass("md-input-invalid",!!t)},t.$watch(function(){return n.label&&n.input},function(t){t&&!n.label.attr("for")&&n.label.attr("for",n.input.attr("id"))})}return n.$inject=["$scope","$element","$mdUtil"],{restrict:"E",link:e,controller:n}}function e(){return{restrict:"E",require:"^?mdInputContainer",link:function(t,e,n,i){i&&(i.label=e,t.$on("$destroy",function(){i.label=null}))}}}function n(t,e){function n(t){return t.addClass("md-input"),i}function i(n,i,r,a){function o(t){return l.setHasValue(!c(t)||(i[0].validity||{}).badInput),t}function u(){function r(t){return l(),t}function a(){u.style.height="auto";var t=u.scrollHeight-u.offsetHeight;u.scrollTop=0;var e=u.offsetHeight+(t>0?t:0);u.style.height=e+"px"}function o(){u.scrollTop=0;var t=u.scrollHeight-u.offsetHeight,e=u.offsetHeight+t;u.style.height=e+"px"}var u=i[0],l=t.debounce(a,1);s?(s.$formatters.push(r),s.$viewChangeListeners.push(r)):l(),i.on("keydown input",l),i.on("scroll",o),angular.element(e).on("resize",l),n.$on("$destroy",function(){angular.element(e).off("resize",l)})}var l=a[0],s=a[1];if(l){if(l.input)throw new Error(" can only have *one* or