@@ -219,49 +219,48 @@ export class CircularHeatmapComponent implements OnInit, OnDestroy {
219219 }
220220
221221 toggleTeamGroupFilter ( event : MatChipSelectionChange ) {
222- let chip = event . source ;
223- let teamGroup = chip . value . trim ( ) ;
224- if ( ! chip . selected ) {
225- chip . toggleSelected ( ) ;
226- console . log ( ` ${ perfNow ( ) } : Heat: Chip flip Group ' ${ teamGroup } : ${ chip . selected } ` ) ;
227-
228- // Update the team selections based on the team group selection
229- let selectedTeams : TeamName [ ] = [ ] ;
222+ if ( ! event ?. source || event . source . value == null ) return ;
223+ if ( ! event . selected ) return ;
224+
225+ const teamGroup = event . source . value . trim ( ) ;
226+
227+ setTimeout ( ( ) => {
228+ console . log ( ` ${ perfNow ( ) } : Heat: Chip flip Group ' ${ teamGroup } ` ) ;
229+ const selectedTeams : TeamName [ ] = [ ] ;
230230 Object . keys ( this . filtersTeams ) . forEach ( key => {
231231 this . filtersTeams [ key ] = this . teamGroups [ teamGroup ] ?. includes ( key ) || false ;
232- if ( this . filtersTeams [ key ] ) {
233- selectedTeams . push ( key ) ;
234- }
235- this . sectorService . setVisibleTeams ( selectedTeams ) ;
232+ if ( this . filtersTeams [ key ] ) selectedTeams . push ( key ) ;
236233 } ) ;
234+ this . sectorService . setVisibleTeams ( selectedTeams ) ;
237235 this . hasTeamsFilter = Object . values ( this . filtersTeams ) . some ( v => v === true ) ;
238236 this . reColorHeatmap ( ) ;
239- } else {
240- console . log ( `${ perfNow ( ) } : Heat: Chip flip Group '${ teamGroup } : already on` ) ;
241- }
237+ } ) ;
242238 }
243239
244240 toggleTeamFilter ( event : MatChipSelectionChange ) {
245- let chip = event . source ;
246- chip . toggleSelected ( ) ;
247- this . filtersTeams [ chip . value . trim ( ) ] = chip . selected ;
248- console . log ( `${ perfNow ( ) } : Heat: Chip flip Team '${ chip . value } : ${ chip . selected } ` ) ;
241+ if ( ! event ?. source || event . source . value == null ) return ;
249242
250- this . hasTeamsFilter = Object . values ( this . filtersTeams ) . some ( v => v === true ) ;
243+ const value = event . source . value . trim ( ) ;
244+ const selected = event . selected ;
251245
252- let selectedTeams : string [ ] = Object . keys ( this . filtersTeams ) . filter (
253- key => this . filtersTeams [ key ]
254- ) ;
255- this . sectorService . setVisibleTeams ( selectedTeams ) ;
246+ setTimeout ( ( ) => {
247+ this . filtersTeams [ value ] = selected ;
248+ console . log ( `${ perfNow ( ) } : Heat: Chip flip Team '${ value } : ${ selected } ` ) ;
256249
257- // Update team group filter, if one matches selection
258- Object . keys ( this . teamGroups || { } ) . forEach ( group => {
259- let match : boolean = equalArray ( selectedTeams , this . teamGroups [ group ] ) ;
260- this . filtersTeamGroups [ group ] = match ;
261- } ) ;
262- this . filtersTeamGroups = this . filtersTeamGroups ;
250+ this . hasTeamsFilter = Object . values ( this . filtersTeams ) . some ( v => v === true ) ;
263251
264- this . reColorHeatmap ( ) ;
252+ const selectedTeams : string [ ] = Object . keys ( this . filtersTeams ) . filter (
253+ key => this . filtersTeams [ key ]
254+ ) ;
255+ this . sectorService . setVisibleTeams ( selectedTeams ) ;
256+
257+ Object . keys ( this . teamGroups || { } ) . forEach ( group => {
258+ this . filtersTeamGroups [ group ] = equalArray ( selectedTeams , this . teamGroups [ group ] ) ;
259+ } ) ;
260+ this . filtersTeamGroups = { ...this . filtersTeamGroups } ;
261+
262+ this . reColorHeatmap ( ) ;
263+ } ) ;
265264 }
266265
267266 getTeamProgressState ( activityUuid : string , teamName : string ) : string {
0 commit comments