/**
* @file text-track-cue-list.js
*/
/**
* @typedef {Objet} TextTrackCueList~TextTrackCue
*
* @property {string} id
* L'identifiant unique de ce repère de texte
*
* @property {number} startTime
* L'heure de début de ce repère de texte
*
* @property {number} endTime
* L'heure de fin de ce repère de texte
*
* @property {boolean} pauseOnExit
* Pause lorsque l'heure de fin est atteinte si elle est vraie.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}
*/
/**
* Une liste de TextTrackCues.
*
* @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}
*/
class TextTrackCueList {
/**
* Créer une instance de cette classe...
*
* @param {Array} cues
* Une liste d'indices à initialiser avec
*/
constructor(cues) {
TextTrackCueList.prototype.setCues_.call(this, cues) ;
/**
* @memberof TextTrackCueList
* @member {number} length
* Le nombre actuel de `TextTrackCue`s dans la TextTrackCueList.
* @instance
*/
Object.defineProperty(this, 'length', {
get() {
return this.length_ ;
}
}) ;
}
/**
* Un setter pour les cues de cette liste. Crée des getters
* un index pour les indices.
*
* @param {Array} cues
* Une série d'indices pour définir
*
* @private
*/
setCues_(cues) {
const oldLength = this.length || 0 ;
laissez i = 0 ;
const l = cues.length ;
this.cues_ = cues ;
this.length_ = cues.length ;
const defineProp = function(index) {
if ( !(' + index in this)) {
Object.defineProperty(this, '' + index, {
get() {
return this.cues_[index] ;
}
}) ;
}
};
if (oldLength < l) {
i = oldLength ;
for ( ; i < l ; i++) {
defineProp.call(this, i) ;
}
}
}
/**
* Obtenir un `TextTrackCue` qui est actuellement dans la `TextTrackCueList` par son identifiant.
*
* @param {string} id
* L'identifiant de l'indice à rechercher.
*
* @return {TextTrackCueList~TextTrackCue|null}
* Un seul indice ou zéro si aucun indice n'a été trouvé.
*/
getCueById(id) {
let result = null ;
for (let i = 0, l = this.length ; i < l ; i++) {
const cue = this[i] ;
if (cue.id === id) {
résultat = cue ;
pause ;
}
}
retourner le résultat ;
}
}
export default TextTrackCueList ;