class TagSelectController { constructor() { this.div = document.getElementById('tagSelectDiv'); this.initHtml(); this.expanded = false; } initHtml () { this.div.style.display = 'grid'; this.div.style.gridTemplateColumns = 'auto auto auto auto'; this.div.style.gridTemplateRows = 'auto auto auto auto'; this.headerDiv = document.createElement('div'); this.headerDiv.innerHTML = 'Type Select '; this.headerDiv.style.display = 'grid'; this.headerDiv.style.gridColumn = '1 / span 4'; this.div.appendChild(this.headerDiv); this.div.style.gap = '5px'; for (const type in typesMap) { typesMap[type]['div'] = document.createElement('div'); let typeColor = '#11FF11'; if (!typesMap[type]['enabled']) { typeColor = '#FF1111'; } typesMap[type]['div'].innerHTML = ''; this.div.appendChild(typesMap[type]['div']); } this.buttonDiv = document.createElement('div'); this.buttonDiv.style.display = 'none'; this.buttonDiv.style.gridColumn = '1 / span 2'; this.buttonDiv.innerHTML += ' All   '; this.buttonDiv.innerHTML += ' None '; this.div.appendChild(this.buttonDiv); } selectAll () { for (const type in typesMap) { typesMap[type]['enabled'] = true; } tsc.updateHtml(); saveSettings(); } deselectAll () { for (const type in typesMap) { typesMap[type]['enabled'] = false; } tsc.updateHtml(); saveSettings(); } updateHtml () { for (const type in typesMap) { let typeColor = '#11FF11'; if (!typesMap[type]['enabled']) { typeColor = '#FF1111'; } document.getElementById('typeSelectSpan-' + type).style.color = typeColor; } abc.update(); } toggleExpand () { if (this.expanded) { this.collapse(); this.expanded = false; } else { this.expand(); this.expanded = true; } } expand () { for (const type in typesMap) { document.getElementById('typeSelectSpan-' + type).style.display = 'block' } this.buttonDiv.style.display = 'block'; } collapse () { for (const type in typesMap) { document.getElementById('typeSelectSpan-' + type).style.display = 'none' } this.buttonDiv.style.display = 'none'; } toggleType (type) { if (ctrlPressedDuringLastClick) { for (const t in typesMap) { if (t != type) { typesMap[t]['enabled'] = false} else { typesMap[t]['enabled'] = true} } } else { typesMap[type]['enabled'] = !typesMap[type]['enabled']; } this.updateHtml(); saveSettings(); } }