@ -179,21 +179,18 @@ 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  <!--  Admit  Pending  Members  Dialog  Component  -- >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  < AdmitPendingMembersDialog  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : visible = "showAdmitPendingDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : pending - members - data = "pendingMembersData"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ref = "admitPendingMembersDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : active - did = "activeDid"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : api - server = "apiServer"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : pending - members - data = "pendingMembersData"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @ close = "closeAdmitPendingDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @ success = "onAdmitPendingSuccess"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  <!--  Set  Visibility  Dialog  Component  -- >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  < SetBulkVisibilityDialog  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : visible = "showSetVisibilityDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : members - data = "visibilityDialogMembers"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : visible = "visibleBulkVisibilityDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : active - did = "activeDid"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : api - server = "apiServer"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @ close = "closeSetVisibilityDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    : members - data = "pendingMembersData"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    @ close = "closeSetBulkVisibilityDialog"  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					< / template >  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -217,8 +214,8 @@ import { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  NOTIFY_CONTINUE_WITHOUT_ADDING ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					}  from  "@/constants/notifications" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  {  SOMEONE_UNNAMED  }  from  "@/constants/entities" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  SetBulkVisibilityDialog  from  "./SetBulkVisibilityDialog.vue" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  AdmitPendingMembersDialog  from  "./AdmitPendingMembersDialog.vue" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					import  SetBulkVisibilityDialog  from  "./SetBulkVisibilityDialog.vue" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					interface  Member  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  admitted :  boolean ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -235,8 +232,8 @@ interface DecryptedMember { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					@ Component ( {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  components :  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    SetBulkVisibilityDialog ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    AdmitPendingMembersDialog ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    SetBulkVisibilityDialog ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  } ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  mixins :  [ PlatformServiceMixin ] ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					} )  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -255,6 +252,7 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  message ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  contacts :  Array < Contact >  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  decryptedMembers :  DecryptedMember [ ]  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  firstName  =  "" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  isLoading  =  true ;  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -266,32 +264,20 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  apiServer  =  "" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   A d m i t   P e n d i n g   M e m b e r s   D i a l o g   s t a t e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  showAdmitPendingDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  pendingMembersData :  Array < {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    did :  string ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    name :  string ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    isContact :  boolean ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    member :  {  memberId :  string  } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  } >  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  admitDialogDismissed  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  isManualRefresh  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   S e t   V i s i b i l i t y   D i a l o g   s t a t e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  showSetVisibilityDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  visibilityDialogMembers :  Array < {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    did :  string ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    name :  string ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    isContact :  boolean ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    member :  {  memberId :  string  } ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  } >  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  contacts :  Array < Contact >  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  visibleBulkVisibilityDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   A u t o - r e f r e s h   f u n c t i o n a l i t y  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  countdownTimer  =  10 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  autoRefreshInterval :  NodeJS . Timeout  |  null  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   T r a c k   p r e v i o u s   v i s i b i l i t y   m e m b e r s   t o   d e t e c t   c h a n g e s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  previousVisibilityMembers :  string [ ]  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  lastRefreshTime  =  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  previousMemberDidsIgnored :  string [ ]  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Get  the  unnamed  member  constant  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -312,33 +298,18 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . apiServer  =  settings . apiServer  ||  "" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . firstName  =  settings . firstName  ||  "" ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . fetchMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . loadContacts ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   S t a r t   a u t o - r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   C h e c k   i f   w e   s h o u l d   s h o w   t h e   a d m i t   p e n d i n g   m e m b e r s   d i a l o g   f i r s t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . checkAndShowAdmitPendingDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   n o   p e n d i n g   m e m b e r s ,   c h e c k   f o r   v i s i b i l i t y   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! this . showAdmitPendingDialog )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . checkAndShowVisibilityDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  refreshData ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  refreshData ( showPendingEvenIfAllWereIgnored  =  false )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   F o r c e   r e f r e s h   b o t h   c o n t a c t s   a n d   m e m b e r s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . loadContacts ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . contacts  =  await  this . $getAllContacts ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . fetchMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   C h e c k   i f   w e   s h o u l d   s h o w   t h e   a d m i t   p e n d i n g   m e m b e r s   d i a l o g   f i r s t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . checkAndShowAdmitPendingDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   n o   p e n d i n g   m e m b e r s ,   c h e c k   f o r   v i s i b i l i t y   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! this . showAdmitPendingDialog )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . checkAndShowVisibilityDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . checkAndShowAdmitPendingDialog ( showPendingEvenIfAllWereIgnored ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  fetchMembers ( )  {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -487,15 +458,11 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  loadContacts ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . contacts  =  await  this . $getAllContacts ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  getContactFor ( did :  string ) :  Contact  |  undefined  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  this . contacts . find ( ( contact )  =>  contact . did  ===  did ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  getPendingMembers ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  getPendingMembers ( ) :  {  did :  string ;  name :  string ;  isContact :  boolean ;  member :  {  memberId :  string ;  } ;  } [ ]   {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  this . decryptedMembers  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      . filter ( ( member )  =>  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   E x c l u d e   t h e   c u r r e n t   u s e r  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -515,132 +482,64 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      } ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  getMembersForVisibility ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  membersForVisibility  =  this . decryptedMembers  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      . filter ( ( member )  =>  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   E x c l u d e   t h e   c u r r e n t   u s e r  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        if  ( member . did  ===  this . activeDid )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          return  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        const  contact  =  this . getContactFor ( member . did ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   I n c l u d e   m e m b e r s   w h o :  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   1 .   H a v e n ' t   b e e n   a d d e d   a s   c o n t a c t s   y e t ,   O R  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   2 .   A r e   c o n t a c t s   b u t   d o n ' t   h a v e   v i s i b i l i t y   s e t   ( s e e s M e   p r o p e r t y )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return  ! contact  ||  ! contact . seesMe ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  getNonContactMembers ( ) :  {  did :  string ;  name :  string ;  isContact :  boolean ;  member :  {  memberId :  string ;  } ;  } [ ]  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  this . decryptedMembers  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      . filter ( ( member )  =>  ! this . getContactFor ( member . did ) )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      . map ( ( member )  =>  ( {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        did :  member . did ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        name :  member . name ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        isContact :  ! ! this . getContactFor ( member . did ) ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        isContact :  false ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        member :  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          memberId :  member . member . memberId . toString ( ) ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        } ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      } ) ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   D e d u p l i c a t e   m e m b e r s   b y   D I D   t o   p r e v e n t   d u p l i c a t e   e n t r i e s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  uniqueMembers  =  membersForVisibility . filter (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ( member ,  index ,  self )  =>  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        index  ===  self . findIndex ( ( m )  =>  m . did  ===  member . did ) ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  uniqueMembers ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Check  if  we  should  show  the  visibility  dialog  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Returns  true  if  there  are  members  for  visibility  and  either :  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  -  This  is  the  first  time  ( no  previous  members  tracked ) ,  OR  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  -  New  members  have  been  added  since  last  check  ( not  removed ) ,  OR  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  -  This  is  a  manual  refresh  ( isManualRefresh  flag  is  set )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Show  the  admit  pending  members  dialog  if  conditions  are  met  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  shouldShowVisibilityDialog ( ) :  boolean  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O n l y   s h o w   f o r   m e m b e r s   w h o   c a n   s e e   o t h e r   m e m b e r s   ( i . e . ,   t h e y   a r e   i n   t h e   d e c r y p t e d   m e m b e r s   l i s t )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  currentUserMember  =  this . decryptedMembers . find (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ( member )  =>  member . did  ===  this . activeDid ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   t h e   c u r r e n t   u s e r   i s   n o t   i n   t h e   d e c r y p t e d   m e m b e r s   l i s t ,   t h e y   c a n ' t   s e e   a n y o n e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! currentUserMember )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  currentMembers  =  this . getMembersForVisibility ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( currentMembers . length  ===  0 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  checkAndShowAdmitPendingDialog ( showPendingEvenIfAllWereIgnored  =  false )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  pendingMembers  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . isOrganizer  ?  this . getPendingMembers ( )  :  this . getNonContactMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( pendingMembers . length  ===  0 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   n o   p r e v i o u s   m e m b e r s   t r a c k e d ,   s h o w   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . previousVisibilityMembers . length  ===  0 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! showPendingEvenIfAllWereIgnored )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      / /   o n l y   s h o w   i f   t h e r e   a r e   p e n d i n g   m e m b e r s   t h a t   h a v e   n o t   b e e n   i g n o r e d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  pendingMembersNotIgnored  =  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        pendingMembers . filter (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					          ( member )  =>  ! this . previousMemberDidsIgnored . includes ( member . did )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      if  ( pendingMembersNotIgnored . length  ===  0 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   e v e r y o n e   w a i t i n g   h a s   b e e n   i g n o r e d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        return ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   t h i s   i s   a   m a n u a l   r e f r e s h ,   a l w a y s   s h o w   d i a l o g   i f   t h e r e   a r e   m e m b e r s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . isManualRefresh )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . stopAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . pendingMembersData  =  pendingMembers ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . isOrganizer )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ( this . $refs . admitPendingMembersDialog  as  AdmitPendingMembersDialog ) . open ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . visibleBulkVisibilityDialog  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   C h e c k   i f   n e w   m e m b e r s   h a v e   b e e n   a d d e d   ( n o t   j u s t   a n y   c h a n g e )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  currentMemberIds  =  currentMembers . map ( ( m )  =>  m . did ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  previousMemberIds  =  this . previousVisibilityMembers ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   F i n d   n e w   m e m b e r s   ( m e m b e r s   i n   c u r r e n t   b u t   n o t   i n   p r e v i o u s )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  newMembers  =  currentMemberIds . filter (  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      ( id )  =>  ! previousMemberIds . includes ( id ) ,  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O n l y   s h o w   d i a l o g   i f   t h e r e   a r e   n e w   m e m b e r s   a d d e d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  newMembers . length  >  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Update  the  tracking  of  previous  visibility  members  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  updatePreviousVisibilityMembers ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  currentMembers  =  this . getMembersForVisibility ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . previousVisibilityMembers  =  currentMembers . map ( ( m )  =>  m . did ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Check  if  we  should  show  the  admit  pending  members  dialog  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  shouldShowAdmitPendingDialog ( ) :  boolean  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   D o n ' t   s h o w   i f   a l r e a d y   d i s m i s s e d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . admitDialogDismissed )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O n l y   s h o w   f o r   t h e   o r g a n i z e r   o f   t h e   m e e t i n g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! this . isOrganizer )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   A d m i t   P e n d i n g   M e m b e r s   D i a l o g   m e t h o d s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  closeAdmitPendingDialog ( result :  {  notSelectedMemberDids :  string [ ]  }  |  undefined )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . pendingMembersData  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . previousMemberDidsIgnored  =  result ? . notSelectedMemberDids  ||  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  pendingMembers  =  this . getPendingMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    return  pendingMembers . length  >  0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Show  the  admit  pending  members  dialog  if  conditions  are  met  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  checkAndShowAdmitPendingDialog ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . shouldShowAdmitPendingDialog ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . showAdmitPendingDialogMethod ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      / /   E n s u r e   d i a l o g   s t a t e   i s   f a l s e   w h e n   n o   p e n d i n g   m e m b e r s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . showAdmitPendingDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  closeSetBulkVisibilityDialog ( result :  {  notSelectedMemberDids :  string [ ]  }  |  undefined )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . visibleBulkVisibilityDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . pendingMembersData  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . previousMemberDidsIgnored  =  result ? . notSelectedMemberDids  ||  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / * *  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   *  Show  the  visibility  dialog  if  conditions  are  met  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					   * /  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  checkAndShowVisibilityDialog ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . shouldShowVisibilityDialog ( ) )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . showSetBulkVisibilityDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . updatePreviousVisibilityMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  checkWhetherContactBeforeAdmitting ( decrMember :  DecryptedMember )  {  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				
					@ -781,51 +680,19 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  showAdmitPendingDialogMethod ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   F i l t e r   m e m b e r s   t o   s h o w   o n l y   p e n d i n g   ( n o n - a d m i t t e d )   m e m b e r s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  pendingMembers  =  this . getPendingMembers ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O n l y   s h o w   d i a l o g   i f   t h e r e   a r e   p e n d i n g   m e m b e r s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( pendingMembers . length  ===  0 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . showAdmitPendingDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      return ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   P a u s e   a u t o - r e f r e s h   w h e n   d i a l o g   o p e n s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . stopAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O p e n   t h e   d i a l o g   d i r e c t l y  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . pendingMembersData  =  pendingMembers ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . showAdmitPendingDialog  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  showSetBulkVisibilityDialog ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   F i l t e r   m e m b e r s   t o   s h o w   o n l y   t h o s e   w h o   n e e d   v i s i b i l i t y   s e t  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    const  membersForVisibility  =  this . getMembersForVisibility ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   P a u s e   a u t o - r e f r e s h   w h e n   d i a l o g   o p e n s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . stopAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O p e n   t h e   d i a l o g   d i r e c t l y  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . visibilityDialogMembers  =  membersForVisibility ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . showSetVisibilityDialog  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   R e s e t   m a n u a l   r e f r e s h   f l a g   a f t e r   d i a l o g   i s   s h o w n  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . isManualRefresh  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  startAutoRefresh ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    le t  lastRefreshTime  =  Date . now ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . lastRefreshTime  =  Date . now ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . countdownTimer  =  10 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . autoRefreshInterval  =  setInterval ( ( )  =>  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  now  =  Date . now ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  timeSinceLastRefresh  =  ( now  -  lastRefreshTime )  /  1000 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      const  timeSinceLastRefresh  =  ( now  -  this . lastRefreshTime )  /  1000 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      if  ( timeSinceLastRefresh  >=  10 )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   T i m e   t o   r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        lastRefreshTime  =  now ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . lastRefreshTime  =  now ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        this . countdownTimer  =  10 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					        / /   U p d a t e   c o u n t d o w n  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				
					@ -851,68 +718,8 @@ export default class MembersList extends Vue { 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . autoRefreshInterval  =  null ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   S e t   m a n u a l   r e f r e s h   f l a g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . isManualRefresh  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   R e s e t   t h e   d i s m i s s e d   f l a g   o n   m a n u a l   r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . admitDialogDismissed  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   T r i g g e r   i m m e d i a t e   r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   O n l y   s t a r t   a u t o - r e f r e s h   i f   n o   d i a l o g s   a r e   s h o w i n g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! this . showAdmitPendingDialog  &&  ! this . showSetVisibilityDialog )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   A d m i t   P e n d i n g   M e m b e r s   D i a l o g   m e t h o d s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  closeAdmitPendingDialog ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . showAdmitPendingDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . pendingMembersData  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . admitDialogDismissed  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   H a n d l e   m a n u a l   r e f r e s h   f l o w  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( this . isManualRefresh )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      await  this . handleManualRefreshFlow ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . isManualRefresh  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  else  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      / /   N o r m a l   f l o w :   r e f r e s h   d a t a   a n d   r e s u m e   a u t o - r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  handleManualRefreshFlow ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   R e f r e s h   d a t a   t o   r e f l e c t   a n y   c h a n g e s   m a d e   i n   t h e   a d m i t   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   U s e   t h e   s a m e   l o g i c   a s   n o r m a l   f l o w   t o   c h e c k   f o r   v i s i b i l i t y   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . checkAndShowVisibilityDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   I f   n o   v i s i b i l i t y   d i a l o g   w a s   s h o w n ,   r e s u m e   a u t o - r e f r e s h  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    if  ( ! this . showSetVisibilityDialog )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					      this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  async  onAdmitPendingSuccess ( _result :  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    admittedCount :  number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    contactAddedCount :  number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    visibilitySetCount :  number ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  } )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   A f t e r   a d m i t t i n g   p e n d i n g   m e m b e r s ,   c l o s e   t h e   a d m i t   d i a l o g  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   T h e   v i s i b i l i t y   d i a l o g   w i l l   b e   h a n d l e d   b y   t h e   c l o s e A d m i t P e n d i n g D i a l o g   f l o w  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . closeAdmitPendingDialog ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  / /   S e t   V i s i b i l i t y   D i a l o g   m e t h o d s  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  closeSetVisibilityDialog ( )  {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . showSetVisibilityDialog  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . visibilityDialogMembers  =  [ ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   R e f r e s h   d a t a   w h e n   d i a l o g   i s   c l o s e d   t o   r e f l e c t   a n y   c h a n g e s   m a d e  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . refreshData ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    / /   R e s u m e   a u t o - r e f r e s h   w h e n   d i a l o g   i s   c l o s e d  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    this . startAutoRefresh ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					    await  this . refreshData ( true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				
					  beforeDestroy ( )  {