1234567 |
- /*!
- * Angular Material Design
- * https://github.com/angular/material
- * @license MIT
- * v0.11.3-master-3fe7d76
- */
- function mdInputContainerDirective(e,t){function n(t,n,i){e(n)}function i(e,n,i){var r=this;r.isErrorGetter=i.mdIsError&&t(i.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setHasMessages=function(e){n.toggleClass("md-input-has-messages",!!e)},r.setHasPlaceholder=function(e){n.toggleClass("md-input-has-placeholder",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return i.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:i}}function labelDirective(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,i){i&&!n.mdNoFloat&&(i.label=t,e.$on("$destroy",function(){i.label=null}))}}}function inputTextareaDirective(e,t,n){function i(i,r,a,l){function o(e){return c.setHasValue(!g.$isEmpty(e)),e}function s(){c.setHasValue(r.val().length>0||(r[0].validity||{}).badInput)}function u(){function n(e){return f(),e}function a(){if(u.style.height=u.offsetHeight+"px",r.addClass("md-no-flex"),isNaN(d)){s.style.height="auto",s.scrollTop=0;var e=l();e&&(s.style.height=e+"px")}else{s.setAttribute("rows",1),m||(s.style.minHeight="0",m=r.prop("clientHeight"),s.style.minHeight=null);var t=Math.max(d,Math.round(s.scrollHeight/m));s.setAttribute("rows",t)}r.removeClass("md-no-flex"),u.style.height="auto"}function l(){var e=s.scrollHeight-s.offsetHeight;return s.offsetHeight+(e>0?e:0)}function o(e){s.scrollTop=0;var t=s.scrollHeight-s.offsetHeight,n=s.offsetHeight+t;s.style.height=n+"px"}if(!angular.isDefined(r.attr("md-no-autogrow"))){var s=r[0],u=c.element[0],d=NaN,m=null;s.hasAttribute("rows")&&(d=parseInt(s.getAttribute("rows")));var f=e.debounce(a,1);if(g?(g.$formatters.push(n),g.$viewChangeListeners.push(n)):f(),r.on("keydown input",f),isNaN(d)&&(r.attr("rows","1"),r.on("scroll",o)),angular.element(t).on("resize",f),i.$on("$destroy",function(){angular.element(t).off("resize",f)}),angular.isDefined(r.attr("md-detect-hidden"))){var p=function(){var e=!1;return function(){var t=0===s.offsetHeight;t===!1&&e===!0&&a(),e=t}}();i.$watch(function(){return e.nextTick(p,!1),!0})}}}var c=l[0],d=!!l[1],g=l[1]||e.fakeNgModel(),m=angular.isDefined(a.readonly);if(c){if(c.input)throw new Error("<md-input-container> can only have *one* <input>, <textarea> or <md-select> child element!");c.input=r,c.label||n.expect(r,"aria-label",r.attr("placeholder")),r.addClass("md-input"),r.attr("id")||r.attr("id","input_"+e.nextUid()),"textarea"===r[0].tagName.toLowerCase()&&u(),d||s();var f=c.isErrorGetter||function(){return g.$invalid&&g.$touched};i.$watch(f,c.setInvalid),g.$parsers.push(o),g.$formatters.push(o),r.on("input",s),m||r.on("focus",function(e){c.setFocused(!0)}).on("blur",function(e){c.setFocused(!1),s()}),i.$on("$destroy",function(){c.setFocused(!1),c.setHasValue(!1),c.input=null})}}return{restrict:"E",require:["^?mdInputContainer","?ngModel"],link:i}}function mdMaxlengthDirective(e){function t(t,n,i,r){function a(e){return u.text(String(n.val()||e||"").length+"/"+l),e}var l,o=r[0],s=r[1],u=angular.element('<div class="md-char-counter">'),c=angular.element(s.element[0].querySelector("[md-maxlength]"));i.$set("ngTrim","false");var d=["ng-messages","data-ng-messages","x-ng-messages","[ng-messages]","[data-ng-messages]","[x-ng-messages]"],g=s.element[0].querySelector(d.join(","));g?angular.element(g).prepend(u):c.after(u),o.$formatters.push(a),o.$viewChangeListeners.push(a),n.on("input keydown keyup",function(){a()}),t.$watch(i.mdMaxlength,function(t){l=t,angular.isNumber(t)&&t>0?(u.parent().length||e.enter(u,s.element,c),a()):e.leave(u)}),o.$validators["md-maxlength"]=function(e,t){return!angular.isNumber(l)||0>l?!0:(e||n.val()||t||"").length<=l}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:t}}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 l=n.placeholder;if(t.removeAttr("placeholder"),i.input&&"MD-SELECT"!=i.input[0].nodeName){var o='<label ng-click="delegateClick()">'+l+"</label>";i.element.addClass("md-icon-float"),i.element.prepend(o)}}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:t}}function ngMessagesDirective(){function e(e,t,n,i){i&&(i.setHasMessages(!0),e.$on("$destroy",function(){i.setHasMessages(!1)}))}return{restrict:"EA",link:e,require:"^^?mdInputContainer"}}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),mdInputContainerDirective.$inject=["$mdTheming","$parse"],inputTextareaDirective.$inject=["$mdUtil","$window","$mdAria"],mdMaxlengthDirective.$inject=["$animate"],placeholderDirective.$inject=["$log"],ng.material.components.input=angular.module("material.components.input");
|