input.min.js 7.67 KB
Newer Older
Thitichaipun Wutthisak committed
1 2 3 4 5 6 7
/*!
 * Angular Material Design
 * https://github.com/angular/material
 * @license MIT
 * v1.0.5-master-f171fd2
 */
!function(e,t,n){"use strict";function i(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 r(){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 a(e,n,i){function r(r,a,o,s){function l(e){return f.setHasValue(!g.$isEmpty(e)),e}function u(){f.label&&o.$observe("required",function(e){f.label.toggleClass("md-required",e&&!h)})}function c(){f.setHasValue(a.val().length>0||(a[0].validity||{}).badInput)}function d(){function i(e){return p(),e}function o(){if(c.style.height=c.offsetHeight+"px",a.addClass("md-no-flex"),isNaN(d)){u.style.height="auto",u.scrollTop=0;var e=s();e&&(u.style.height=e+"px")}else{u.setAttribute("rows",1),m||(u.style.minHeight="0",m=a.prop("clientHeight"),u.style.minHeight=null);var t=Math.min(d,Math.round(u.scrollHeight/m));u.setAttribute("rows",t),u.style.height=m*t+"px"}a.removeClass("md-no-flex"),c.style.height="auto"}function s(){var e=u.scrollHeight-u.offsetHeight;return u.offsetHeight+(e>0?e:0)}function l(e){u.scrollTop=0;var t=u.scrollHeight-u.offsetHeight,n=u.offsetHeight+t;u.style.height=n+"px"}if(!t.isDefined(a.attr("md-no-autogrow"))){var u=a[0],c=f.element[0],d=NaN,m=null;u.hasAttribute("rows")&&(d=parseInt(u.getAttribute("rows")));var p=e.debounce(o,1);if(g?(g.$formatters.push(i),g.$viewChangeListeners.push(i)):p(),a.on("keydown input",p),isNaN(d)&&(a.attr("rows","1"),a.on("scroll",l)),t.element(n).on("resize",p),r.$on("$destroy",function(){t.element(n).off("resize",p)}),t.isDefined(a.attr("md-detect-hidden"))){var h=function(){var e=!1;return function(){var t=0===u.offsetHeight;t===!1&&e===!0&&o(),e=t}}();r.$watch(function(){return e.nextTick(h,!1),!0})}}}var f=s[0],m=!!s[1],g=s[1]||e.fakeNgModel(),p=t.isDefined(o.readonly),h=e.parseAttributeBoolean(o.mdNoAsterisk);if(f){if(f.input)throw new Error("<md-input-container> can only have *one* <input>, <textarea> or <md-select> child element!");f.input=a,u();var v=t.element('<div class="md-errors-spacer">');a.after(v),f.label||i.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(),m||c();var $=f.isErrorGetter||function(){return g.$invalid&&(g.$touched||C())},C=function(){var n=e.getClosest(a,"form"),i=n?t.element(n).controller("form"):null;return i?i.$submitted:!1};r.$watch($,f.setInvalid),g.$parsers.push(l),g.$formatters.push(l),a.on("input",c),p||a.on("focus",function(t){e.nextTick(function(){f.setFocused(!0)})}).on("blur",function(t){e.nextTick(function(){f.setFocused(!1),c()})}),r.$on("$destroy",function(){f.setFocused(!1),f.setHasValue(!1),f.input=null})}}return{restrict:"E",require:["^?mdInputContainer","?ngModel"],link:r}}function o(e,n){function i(i,r,a,o){function s(e){return u.parent?(u.text(String(r.val()||e||"").length+"/"+l),e):e}var l,u,c,d=o[0],f=o[1];n.nextTick(function(){c=t.element(f.element[0].querySelector(".md-errors-spacer")),u=t.element('<div class="md-char-counter">'),c.append(u),a.$set("ngTrim","false"),d.$formatters.push(s),d.$viewChangeListeners.push(s),r.on("input keydown keyup",function(){s()}),i.$watch(a.mdMaxlength,function(n){l=n,t.isNumber(n)&&n>0?(u.parent().length||e.enter(u,c),s()):e.leave(u)}),d.$validators["md-maxlength"]=function(e,n){return!t.isNumber(l)||0>l?!0:(e||r.val()||n||"").length<=l}})}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:i}}function s(e){function n(e,n,i,r){if(r){var a=r.element.find("label"),o=t.isDefined(r.element.attr("md-no-float"));if(a&&a.length||o)return void r.setHasPlaceholder(!0);var s=i.placeholder;if(n.removeAttr("placeholder"),r.input&&"MD-SELECT"!=r.input[0].nodeName){var l='<label ng-click="delegateClick()">'+s+"</label>";r.element.addClass("md-icon-float"),r.element.prepend(l)}}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}function l(){function e(e,t,n){function i(){t[0].select()}"INPUT"!==t[0].nodeName&&"TEXTAREA"!==t[0].nodeName||(t.on("focus",i),e.$on("$destroy",function(){t.off("focus",i)}))}return{restrict:"A",link:e}}function u(){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 y.some(function(t){return e[t]})}return{restrict:"EA",link:e,require:"^^?mdInputContainer"}}function c(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 d(e,t){return{addClass:function(n,i,r){var a=C(n);"md-input-invalid"==i&&a.hasClass("md-auto-hide")?g(n,t,e)["finally"](r):r()}}}function f(e,t){return{enter:function(n,i){g(n,t,e)["finally"](i)},leave:function(n,i){p(n,t,e)["finally"](i)},addClass:function(n,i,r){"ng-hide"==i?p(n,t,e)["finally"](r):r()},removeClass:function(n,i,r){"ng-hide"==i?g(n,t,e)["finally"](r):r()}}}function m(e){return{enter:function(t,n){var i=C(t);return i.hasClass("md-auto-hide")?void n():h(t,e)},leave:function(t,n){return v(t,e)}}}function g(e,n,i){var r,a=[],o=C(e);return t.forEach(o.children(),function(e){r=h(t.element(e),n),a.push(r.start())}),i.all(a)}function p(e,n,i){var r,a=[],o=C(e);return t.forEach(o.children(),function(e){r=v(t.element(e),n),a.push(r.start())}),i.all(a)}function h(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 v(t,n){var i=t[0].offsetHeight,r=e.getComputedStyle(t[0]);return 0==r.opacity?n(t,{}):n(t,{event:"leave",structural:!0,from:{opacity:1,"margin-top":0},to:{opacity:0,"margin-top":-i+"px"},duration:.3})}function $(e){var t=e.controller("mdInputContainer");return t.element}function C(e){var n=$(e),i="ng-messages,data-ng-messages,x-ng-messages,[ng-messages],[data-ng-messages],[x-ng-messages]";return t.element(n[0].querySelector(i))}t.module("material.components.input",["material.core"]).directive("mdInputContainer",i).directive("label",r).directive("input",a).directive("textarea",a).directive("mdMaxlength",o).directive("placeholder",s).directive("ngMessages",u).directive("ngMessage",c).directive("ngMessageExp",c).directive("mdSelectOnFocus",l).animation(".md-input-invalid",d).animation(".md-input-messages-animation",f).animation(".md-input-message-animation",m),i.$inject=["$mdTheming","$parse"],a.$inject=["$mdUtil","$window","$mdAria"],o.$inject=["$animate","$mdUtil"],s.$inject=["$log"];var y=["ngIf","ngShow","ngHide","ngSwitchWhen","ngSwitchDefault"];c.$inject=["$mdUtil"],d.$inject=["$q","$animateCss"],f.$inject=["$q","$animateCss"],m.$inject=["$animateCss"]}(window,window.angular);