@@ -16,6 +16,7 @@ uis.controller('uiSelectCtrl',
16
16
ctrl . searchEnabled = uiSelectConfig . searchEnabled ;
17
17
ctrl . sortable = uiSelectConfig . sortable ;
18
18
ctrl . refreshDelay = uiSelectConfig . refreshDelay ;
19
+ ctrl . paste = uiSelectConfig . paste ;
19
20
20
21
ctrl . removeSelected = false ; //If selected item(s) should be removed from dropdown list
21
22
ctrl . closeOnSelect = true ; //Initialized inside uiSelect directive link function
@@ -491,18 +492,32 @@ uis.controller('uiSelectCtrl',
491
492
492
493
} ) ;
493
494
494
- // If tagging try to split by tokens and add items
495
495
ctrl . searchInput . on ( 'paste' , function ( e ) {
496
- var data = e . originalEvent . clipboardData . getData ( 'text/plain' ) ;
497
- if ( data && data . length > 0 && ctrl . taggingTokens . isActivated && ctrl . tagging . fct ) {
498
- var items = data . split ( ctrl . taggingTokens . tokens [ 0 ] ) ; // split by first token only
499
- if ( items && items . length > 0 ) {
500
- angular . forEach ( items , function ( item ) {
501
- var newItem = ctrl . tagging . fct ( item ) ;
502
- if ( newItem ) {
503
- ctrl . select ( newItem , true ) ;
504
- }
505
- } ) ;
496
+ var data ;
497
+
498
+ if ( window . clipboardData && window . clipboardData . getData ) { // IE
499
+ data = window . clipboardData . getData ( 'Text' ) ;
500
+ } else {
501
+ data = ( e . originalEvent || e ) . clipboardData . getData ( 'text/plain' ) ;
502
+ }
503
+
504
+ if ( data && data . length > 0 ) {
505
+ // If tagging try to split by tokens and add items
506
+ if ( ctrl . taggingTokens . isActivated ) {
507
+ var items = data . split ( ctrl . taggingTokens . tokens [ 0 ] ) ; // split by first token only
508
+ if ( items && items . length > 0 ) {
509
+ $timeout ( function ( ) {
510
+ angular . forEach ( items , function ( item ) {
511
+ var newItem = ctrl . tagging . fct ? ctrl . tagging . fct ( item ) : item ;
512
+ if ( newItem ) {
513
+ ctrl . select ( newItem , true ) ;
514
+ }
515
+ } ) ;
516
+ } ) ;
517
+ e . stopPropagation ( ) ;
518
+ }
519
+ } else if ( ctrl . paste ) {
520
+ ctrl . paste ( data ) ;
506
521
e . preventDefault ( ) ;
507
522
e . stopPropagation ( ) ;
508
523
}
0 commit comments