import { append } from '../utils'; export default class Quality { constructor(option) { this.option = option; this.playIndex = -1; } apply(art, $control) { const { option, events: { proxy, hover }, player, } = art; const defaultQuality = option.quality.find(item => item.default) || option.quality[0]; this.playIndex = option.quality.indexOf(defaultQuality); const $qualityName = append($control, `
${defaultQuality.name}
`); const qualityList = option.quality .map((item, index) => `
${item.name}
`) .join(''); const $qualitys = append($control, `
${qualityList}
`); hover( $control, () => { $control.classList.add('art-quality-hover'); }, () => { $control.classList.remove('art-quality-hover'); }, ); proxy($qualitys, 'click', event => { const index = Number(event.target.dataset.index); const { url, name } = option.quality[index]; if (url && name && this.playIndex !== index) { player.switch(url, name); $qualityName.innerHTML = name; this.playIndex = index; } }); } }