/**
* @file remaining-time-display.js
*/
import TimeDisplay from './time-display' ;
import Component from '../../component.js' ;
import * as Dom from '../../utils/dom.js' ;
/**
* Affiche le temps restant dans la vidéo
*
* @extends Component
*/
class RemainingTimeDisplay extends TimeDisplay {
/**
* 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.on(player, 'durationchange', (e) => this.updateContent(e)) ;
}
/**
* Construit le DOM par défaut `className`.
*
* @return {string}
* Le `nom de classe` du DOM pour cet objet.
*/
buildCSSClass() {
return 'vjs-remaining-time' ;
}
/**
* Créer l'élément DOM du `Composant` avec le caractère "moins" en préambule à l'heure
*
* @return {Element}
* L'élément qui a été créé.
*/
createEl() {
const el = super.createEl() ;
if (this.options_.displayNegative !== false) {
el.insertBefore(Dom.createEl('span', {}, {'aria-hidden' : true}, '-'), this.contentEl_) ;
}
return el ;
}
/**
* Mise à jour de l'affichage du temps restant.
*
* @param {EventTarget~Event} [event]
* L'événement `timeupdate` ou `durationchange` qui a provoqué l'exécution.
*
* @listens Player#timeupdate
* @listens Player#durationchange
*/
updateContent(event) {
if (typeof this.player_.duration() !== 'number') {
retour ;
}
temps d'attente ;
// @deprecated Nous ne devrions utiliser que remainingTimeDisplay
// à partir de video.js 7
if (this.player_.ended()) {
temps = 0 ;
} else if (this.player_.remainingTimeDisplay) {
time = this.player_.remainingTimeDisplay() ;
} else {
time = this.player_.remainingTime() ;
}
this.updateTextNode_(time) ;
}
}
/**
* Texte ajouté à l'affichage du `RemainingTimeDisplay` pour les utilisateurs de lecteurs d'écran.
*
* @type {string}
* @private
*/
RemainingTimeDisplay.prototype.labelText_ = 'Temps restant' ;
/**
* Le texte qui doit s'afficher au-dessus des contrôles `RemainingTimeDisplay`. Ajouté pour la localisation.
*
* @type {string}
* @private
*
* @deprecated in v7 ; controlText_ n'est pas utilisé dans les composants d'affichage non actifs
*/
RemainingTimeDisplay.prototype.controlText_ = 'Temps restant' ;
Component.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay) ;
exporter l'affichage par défaut de la durée restante ;