/**
* @file html-track-element.js
*/
import EventTarget from '../event-target' ;
import TextTrack from '../tracks/text-track' ;
/**
* @memberof HTMLTrackElement
* @typedef {HTMLTrackElement~ReadyState}
* @enum {number}
*/
const NONE = 0 ;
const LOADING = 1 ;
const LOADED = 2 ;
const ERROR = 3 ;
/**
* Une seule piste représentée dans le DOM.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}
* @extends EventTarget
*/
class HTMLTrackElement extends EventTarget {
/**
* Créer une instance de cette classe.
*
* @param {Objet} options={}
* Objet de noms et de valeurs d'options
*
* @param {Tech} options.tech
* Une référence au tech qui possède cet élément HTMLTrackElement.
*
* @param {TextTrack~Kind} [options.kind='subtitles']
* Un type de texte valide.
*
* @param {TextTrack~Mode} [options.mode='disabled']
* Un mode de suivi de texte valide.
*
* @param {string} [options.id='vjs_track_' + Guid.newGUID()]
* Un identifiant unique pour ce TextTrack.
*
* @param {string} [options.label='']
* L'étiquette du menu pour cette piste.
*
* @param {string} [options.language='']
* Un code linguistique valide à deux caractères.
*
* @param {string} [options.srclang='']
* Un code linguistique valide à deux caractères. Une alternative, mais dépourvue de priorité
* version de `options.language`
*
* @param {string} [options.src]
* Une url vers les indices TextTrack.
*
* @param {boolean} [options.default]
* Si cette piste doit être activée ou désactivée par défaut.
*/
constructor(options = {}) {
super() ;
let readyState ;
const track = new TextTrack(options) ;
this.kind = track.kind ;
this.src = track.src ;
this.srclang = track.language ;
this.label = track.label ;
this.default = track.default ;
Object.defineProperties(this, {
/**
* @memberof HTMLTrackElement
* @member {HTMLTrackElement~ReadyState} readyState
* L'état de préparation actuel de l'élément de piste.
* @instance
*/
readyState : {
get() {
return readyState ;
}
},
/**
* @memberof HTMLTrackElement
* @member {TextTrack} track
* L'objet TextTrack sous-jacent.
* @instance
*
*/
la piste : {
get() {
piste de retour ;
}
}
}) ;
readyState = NONE ;
/**
* @listens TextTrack#loadeddata
* @fires HTMLTrackElement#load
*/
track.addEventListener('loadeddata', () => {
readyState = LOADED ;
this.trigger({
type : "load",
cible : ceci
}) ;
}) ;
}
}
HTMLTrackElement.prototype.allowedEvents_ = {
charge : 'load'
};
HTMLTrackElement.NONE = NONE ;
HTMLTrackElement.LOADING = LOADING ;
HTMLTrackElement.LOADED = LOADED ;
HTMLTrackElement.ERROR = ERROR ;
exporter l'élément HTMLTrackElement par défaut ;