@@ -330,6 +330,19 @@ var Input = function (_Component) {
330330 valueMask : _this2 . props . valueMask || undefined
331331 } ;
332332
333+ _this2 . classFactory = function ( element ) {
334+ if ( element instanceof Array ) {
335+ var result = [ ] ;
336+ element . forEach ( function ( element ) {
337+ result . push ( element + " " + element + "-container " + element + "-" + _this2 . props . type + " " + ( _this2 . state . hasChanged ? element + "-touched" : element + "-untouched" ) + " " + ( _this2 . state . hasFocus ? element + "-focus" : element + "-nofocus" ) + " " + ( _this2 . props . validation ? _this2 . state . isValid ? element + "-validation " + element + "-valid" : element + "-validation " + element + "-invalid" : element + "-novalidation" ) ) ;
338+ } ) ;
339+
340+ return result . join ( ' ' ) ;
341+ }
342+
343+ return element + " " + element + "-container " + element + "-" + _this2 . props . type + " " + ( _this2 . state . hasChanged ? element + "-touched" : element + "-untouched" ) + " " + ( _this2 . state . hasFocus ? element + "-focus" : element + "-nofocus" ) + " " + ( _this2 . props . validation ? _this2 . state . isValid ? element + "-validation " + element + "-valid" : element + "-validation " + element + "-invalid" : element + "-novalidation" ) ;
344+ } ;
345+
333346 // onBlur
334347 _this2 . handleBlur = _this2 . handleBlur . bind ( _this2 ) ;
335348 _this2 . handleOnBlurCallback = _this2 . props . onBlur ? _this2 . handleOnBlurCallback . bind ( _this2 ) : function ( ) {
@@ -765,110 +778,19 @@ var Input = function (_Component) {
765778 } , {
766779 key : "render" ,
767780 value : function render ( ) {
768- var containerClassNames = "" ;
769- var inputClassNames = "" ;
770- var labelClassNames = "" ;
771- var validationClassNames = "" ;
772-
773- if ( this . props . containerClassNames ) {
774- if ( this . props . containerClassNames instanceof Array ) {
775- containerClassNames += "" + this . props . containerClassNames . join ( " " ) ;
776- } else {
777- containerClassNames += "" + this . props . containerClassNames ;
778- }
779- } else {
780- containerClassNames += "input input-container input-" + this . props . type ;
781- }
782-
783- if ( this . props . inputClassNames ) {
784- if ( this . props . inputClassNames instanceof Array ) {
785- inputClassNames += "" + this . props . inputClassNames . join ( " " ) ;
786- } else {
787- inputClassNames += "" + this . props . inputClassNames ;
788- }
789- } else {
790- inputClassNames += this . props . type + " " + this . props . type + "-container" ;
791- }
792-
793- if ( this . props . labelClassNames ) {
794- if ( this . props . labelClassNames instanceof Array ) {
795- labelClassNames += "" + this . props . labelClassNames . join ( " " ) ;
796- } else {
797- labelClassNames += "" + this . props . labelClassNames ;
798- }
799- } else {
800- labelClassNames += "label label-container label-" + this . props . type ;
801- }
802-
803- if ( this . props . validationClassNames ) {
804- if ( this . props . validationClassNames instanceof Array ) {
805- validationClassNames += "" + this . props . validationClassNames . join ( " " ) ;
806- } else {
807- validationClassNames += "" + this . props . validationClassNames ;
808- }
809- } else {
810- validationClassNames += "validation validation-container validation-" + this . props . type ;
811- }
812-
813- if ( this . state . hasChanged ) {
814- containerClassNames += " container-touched" ;
815- inputClassNames += " input-touched" ;
816- labelClassNames += " label-touched" ;
817- validationClassNames += " validation-touched" ;
818- } else {
819- containerClassNames += " container-untouched" ;
820- inputClassNames += " input-untouched" ;
821- labelClassNames += " label-untouched" ;
822- validationClassNames += " validation-untouched" ;
823- }
824-
825- if ( this . state . justChanged ) {
826- containerClassNames += " container-justchanged" ;
827- inputClassNames += " input-justchanged" ;
828- labelClassNames += " label-justchanged" ;
829- validationClassNames += " validation-justchanged" ;
830- }
831-
832- if ( this . state . hasFocus ) {
833- containerClassNames += " container-focus" ;
834- inputClassNames += " input-focus" ;
835- labelClassNames += " label-focus" ;
836- validationClassNames += " validation-focus" ;
837- } else {
838- containerClassNames += " container-nofocus" ;
839- inputClassNames += " input-nofocus" ;
840- labelClassNames += " label-nofocus" ;
841- validationClassNames += " validation-nofocus" ;
842- }
843-
844- if ( this . props . validation ) {
845- if ( this . state . isValid ) {
846- containerClassNames += " container-valid" ;
847- inputClassNames += " input-valid" ;
848- labelClassNames += " label-valid" ;
849- validationClassNames += " validation-valid" ;
850- } else {
851- containerClassNames += " container-invalid" ;
852- inputClassNames += " input-invalid" ;
853- labelClassNames += " label-invalid" ;
854- validationClassNames += " validation-invalid" ;
855- }
856- }
857-
858- var thisValidation = null ;
859- if ( this . props . validation ) {
860- thisValidation = _react2 . default . createElement (
861- "p" ,
862- { className : validationClassNames } ,
863- this . state . validationErrorMessage || "invalid"
864- ) ;
865- }
866-
867781 var thisInput = _react2 . default . createElement (
868782 "p" ,
869783 null ,
870784 "Unsupported Input"
871785 ) ;
786+ var containerClassNames = this . props . containerClassNames ? this . classFactory ( this . props . containerClassNames ) : this . classFactory ( this . props . type ) ;
787+
788+ var labelClassNames = this . props . labelClassNames ? this . classFactory ( this . props . labelClassNames ) : this . classFactory ( 'label' ) ;
789+
790+ var inputClassNames = this . props . inputClassNames ? this . classFactory ( this . props . inputClassNames ) : this . classFactory ( 'input' ) ;
791+
792+ var validationClassNames = this . props . validationClassNames ? this . classFactory ( this . props . validationClassNames ) : this . classFactory ( 'validation' ) ;
793+
872794 switch ( this . props . type ) {
873795 case "button" :
874796 thisInput = _react2 . default . createElement ( "input" , {
@@ -945,6 +867,15 @@ var Input = function (_Component) {
945867 break ;
946868 }
947869
870+ var thisValidation = null ;
871+ if ( this . props . validation ) {
872+ thisValidation = _react2 . default . createElement (
873+ "p" ,
874+ { className : validationClassNames } ,
875+ this . state . validationErrorMessage || "invalid"
876+ ) ;
877+ }
878+
948879 return _react2 . default . createElement (
949880 "div" ,
950881 { className : containerClassNames } ,
0 commit comments