@@ -263,8 +263,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
263263
264264 private defaultPeople : IDynamicPerson [ ] ;
265265
266- private selectionMade = false ;
267-
268266 // tracking of user arrow key input for selection
269267 private _arrowSelectionCount : number = 0 ;
270268 // List of people requested if group property is provided
@@ -291,6 +289,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
291289 */
292290 public connectedCallback ( ) {
293291 super . connectedCallback ( ) ;
292+ this . addEventListener ( 'click' , e => e . stopPropagation ( ) ) ;
294293 }
295294
296295 /**
@@ -317,14 +316,10 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
317316 }
318317
319318 if ( shouldShow ) {
320- if ( ! this . selectionMade ) {
321- window . requestAnimationFrame ( ( ) => {
322- // Mouse is focused on input
323- this . showFlyout ( ) ;
324- } ) ;
325- } else {
326- this . selectionMade = false ;
327- }
319+ window . requestAnimationFrame ( ( ) => {
320+ // Mouse is focused on input
321+ this . showFlyout ( ) ;
322+ } ) ;
328323 }
329324 }
330325
@@ -792,7 +787,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
792787
793788 this . loadState ( ) ;
794789 this . _foundPeople = [ ] ;
795- this . selectionMade = true ;
796790 }
797791 }
798792 }
@@ -809,7 +803,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
809803
810804 private lostFocus ( ) {
811805 this . _isFocused = false ;
812- this . requestUpdate ( ) ;
813806 }
814807
815808 private renderHighlightText ( person : IDynamicPerson ) : TemplateResult {
@@ -854,8 +847,8 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
854847 * Adds debounce method for set delay on user input
855848 */
856849 private onUserKeyUp ( event : KeyboardEvent ) : void {
857- if ( event . keyCode === 40 || event . keyCode === 39 || event . keyCode === 38 || event . keyCode === 37 ) {
858- // keyCodes capture: down arrow (40), right arrow (39), up arrow (38) and left arrow (37 )
850+ if ( event . keyCode === 40 || event . keyCode === 38 ) {
851+ // keyCodes capture: down arrow (40) and up arrow (38)
859852 return ;
860853 }
861854
@@ -872,7 +865,6 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
872865 this . userInput = '' ;
873866 // remove last person in selected list
874867 this . selectedPeople = this . selectedPeople . splice ( 0 , this . selectedPeople . length - 1 ) ;
875- this . loadState ( ) ;
876868 // reset flyout position
877869 this . hideFlyout ( ) ;
878870 this . showFlyout ( ) ;
@@ -881,9 +873,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
881873 return ;
882874 }
883875
884- if ( input . value ) {
885- this . handleUserSearch ( input ) ;
886- }
876+ this . handleUserSearch ( input ) ;
887877 }
888878
889879 private onPersonClick ( person : IDynamicPerson ) : void {
@@ -892,6 +882,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
892882 if ( this . selectionMode === 'single' ) {
893883 return ;
894884 }
885+ this . focus ( ) ;
895886 }
896887
897888 /**
@@ -942,9 +933,7 @@ export class MgtPeoplePicker extends MgtTemplatedComponent {
942933 event . preventDefault ( ) ;
943934 }
944935 }
945-
946- if ( event . keyCode === 9 || event . keyCode === 13 ) {
947- // keyCodes capture: tab (9) and enter (13)
936+ if ( event . code === 'Tab' || event . code === 'Enter' ) {
948937 if ( this . _foundPeople . length ) {
949938 event . preventDefault ( ) ;
950939 }
0 commit comments