@@ -162,14 +162,22 @@ ionic.tap = {
162162 return ! ! ele &&
163163 ( ele . tagName == 'TEXTAREA' ||
164164 ele . contentEditable === 'true' ||
165- ( ele . tagName == 'INPUT' && ! ( / ^ ( r a d i o | c h e c k b o x | r a n g e | f i l e | s u b m i t | r e s e t ) $ / i) . test ( ele . type ) ) ) ;
165+ ( ele . tagName == 'INPUT' && ! ( / ^ ( r a d i o | c h e c k b o x | r a n g e | f i l e | s u b m i t | r e s e t | c o l o r | i m a g e | b u t t o n ) $ / i) . test ( ele . type ) ) ) ;
166166 } ,
167167
168168 isDateInput : function ( ele ) {
169169 return ! ! ele &&
170170 ( ele . tagName == 'INPUT' && ( / ^ ( d a t e | t i m e | d a t e t i m e - l o c a l | m o n t h | w e e k ) $ / i) . test ( ele . type ) ) ;
171171 } ,
172172
173+ isKeyboardElement : function ( ele ) {
174+ if ( ! ionic . Platform . isIOS ( ) ) {
175+ return ionic . tap . isTextInput ( ele ) && ! ionic . tap . isDateInput ( ele ) ;
176+ } else {
177+ return ionic . tap . isTextInput ( ele ) || ( ! ! ele && ele . tagName == "SELECT" ) ;
178+ }
179+ } ,
180+
173181 isLabelWithTextInput : function ( ele ) {
174182 var container = tapContainingElement ( ele , false ) ;
175183
@@ -181,15 +189,15 @@ ionic.tap = {
181189 return ionic . tap . isTextInput ( ele ) || ionic . tap . isLabelWithTextInput ( ele ) ;
182190 } ,
183191
184- cloneFocusedInput : function ( container , scrollIntance ) {
192+ cloneFocusedInput : function ( container ) {
185193 if ( ionic . tap . hasCheckedClone ) return ;
186194 ionic . tap . hasCheckedClone = true ;
187195
188196 ionic . requestAnimationFrame ( function ( ) {
189197 var focusInput = container . querySelector ( ':focus' ) ;
190198 if ( ionic . tap . isTextInput ( focusInput ) ) {
191199 var clonedInput = focusInput . cloneNode ( true ) ;
192-
200+
193201 clonedInput . value = focusInput . value ;
194202 clonedInput . classList . add ( 'cloned-text-input' ) ;
195203 clonedInput . readOnly = true ;
@@ -207,7 +215,7 @@ ionic.tap = {
207215
208216 hasCheckedClone : false ,
209217
210- removeClonedInputs : function ( container , scrollIntance ) {
218+ removeClonedInputs : function ( container ) {
211219 ionic . tap . hasCheckedClone = false ;
212220
213221 ionic . requestAnimationFrame ( function ( ) {
@@ -509,7 +517,7 @@ function tapFocusOutActive() {
509517
510518function tapFocusIn ( e ) {
511519 // Because a text input doesn't preventDefault (so the caret still works) there's a chance
512- // that it's mousedown event 300ms later will change the focus to another element after
520+ // that its mousedown event 300ms later will change the focus to another element after
513521 // the keyboard shows up.
514522
515523 if ( tapEnabledTouchEvents &&
0 commit comments