Files
Bridge-Multi/src-angular/app/core/services/selection.service.ts

42 lines
907 B
TypeScript

import { EventEmitter, Injectable } from '@angular/core'
import { SearchService } from './search.service'
@Injectable({
providedIn: 'root',
})
export class SelectionService {
private allSelected = false
private selectAllChangedEmitter = new EventEmitter<boolean>()
public selections: { [groupId: number]: boolean | undefined } = {}
constructor(private searchService: SearchService) {
searchService.newSearch.subscribe(() => {
this.selections = {}
this.deselectAll()
})
}
isAllSelected() {
return this.allSelected
}
deselectAll() {
this.allSelected = false
for (const groupId in this.selections) {
this.selections[groupId] = false
}
this.selectAllChangedEmitter.emit(false)
}
selectAll() {
this.allSelected = true
for (const song of this.searchService.groupedSongs) {
this.selections[song[0].groupId] = true
}
this.selectAllChangedEmitter.emit(true)
}
}