@@ -113,6 +113,8 @@ export default function TagsInputDirective($timeout, $document, $window, $q, tag
113113 self . clearSelection ( ) ;
114114 events . trigger ( 'tag-removed' , { $tag : tag } ) ;
115115 return tag ;
116+ } ) . catch ( ( ) => {
117+ //can't remove tag
116118 } ) ;
117119 } ;
118120
@@ -314,6 +316,9 @@ export default function TagsInputDirective($timeout, $document, $window, $q, tag
314316
315317 scope . eventHandlers = {
316318 input : {
319+ textInput : function ( $event ) {
320+ events . trigger ( 'text-input' , $event ) ;
321+ } ,
317322 keydown ( $event ) {
318323 events . trigger ( 'input-keydown' , $event ) ;
319324 } ,
@@ -399,6 +404,24 @@ export default function TagsInputDirective($timeout, $document, $window, $q, tag
399404 element . triggerHandler ( 'blur' ) ;
400405 setElementValidity ( ) ;
401406 } )
407+ . on ( 'text-input' , function ( event ) {
408+ // on mobile keydown doesn't provide keyCodes for space or comma (most keys really),
409+ // this will translate it so proper handling is triggered if those are pressed
410+
411+ let originalKey = event . originalEvent . data ;
412+ let keyCode = null ;
413+
414+ if ( originalKey === " " ) {
415+ keyCode = tiConstants . KEYS . space ;
416+ } else if ( originalKey === "," ) {
417+ keyCode = tiConstants . KEYS . comma ;
418+ }
419+
420+ if ( keyCode ) {
421+ event . keyCode = keyCode ;
422+ events . trigger ( 'input-keydown' , event ) ;
423+ }
424+ } )
402425 . on ( 'input-keydown' , event => {
403426 let key = event . keyCode ;
404427
0 commit comments