/**
* @file live-display.js
*/
import Component from '../component' ;
import * as Dom from '../utils/dom.js' ;
import document from 'global/document' ;
// TODO - Future make it click to snap to live
/**
* Affiche l'indicateur en direct lorsque la durée est Infini.
*
* @extends Component
*/
class LiveDisplay extends Component {
/**
* Crée une instance de cette classe.
*
* @param {Player} player
* Le `Player` auquel cette classe doit être attachée.
*
* @param {Objet} [options]
* La mémoire clé/valeur des options du lecteur.
*/
constructor(player, options) {
super(player, options) ;
this.updateShowing() ;
this.on(this.player(), 'durationchange', (e) => this.updateShowing(e)) ;
}
/**
* Créer l'élément DOM du `Composant`
*
* @return {Element}
* L'élément qui a été créé.
*/
createEl() {
const el = super.createEl('div', {
className : 'vjs-live-control vjs-control'
}) ;
this.contentEl_ = Dom.createEl('div', {
className : 'vjs-live-display'
}, {
aria-live" : "off" (désactivé)
}) ;
this.contentEl_.appendChild(Dom.createEl('span', {
className : 'vjs-control-text',
textContent : `${this.localize('Stream Type')}\u00a0`
})) ;
this.contentEl_.appendChild(document.createTextNode(this.localize('LIVE'))) ;
el.appendChild(this.contentEl_) ;
return el ;
}
dispose() {
this.contentEl_ = null ;
super.dispose() ;
}
/**
* Vérifier la durée pour voir si l'écran LiveDisplay doit s'afficher ou non. Puis afficher/masquer
* en conséquence
*
* @param {EventTarget~Event} [event]
* L'événement {@link Player#durationchange} qui a provoqué l'exécution de cette fonction.
*
* @listens Player#durationchange
*/
updateShowing(event) {
if (this.player().duration() === Infinity) {
this.show() ;
} else {
this.hide() ;
}
}
}
Component.registerComponent('LiveDisplay', LiveDisplay) ;
exporter le LiveDisplay par défaut ;