export class Channels { constructor() { this.channels = []; } setChannels(channels) { this.channels = [...channels]; this.sort(); return this; } addChannel(id, name) { this.channels = [...this.channels, { id, name }]; this.sort(); return this; } deleteChannel(id) { const channelIndex = this.channels.map((e) => e.id).indexOf(id); if (channelIndex !== -1) { this.channels.splice(channelIndex, 1); } return this; } sort() { this.channels.sort((a, b) => { if (a.name < b.name) { return -1; } else if (a.name > b.name) { return 1; } return 0; }); } } export class ActiveChannel { constructor() { this.channel = null; } isSet() { return this.channel !== null; } get() { return this.channel; } is(id) { return this.channel === id; } set(id) { this.channel = id; return this; } deleteChannel(id) { if (this.is(id)) { return this.clear(); } return this; } clear() { this.channel = null; return this; } }