/**
 * @archivo texto-pista-cue-list.js
 * /

/**
 * @typedef {Objeto} TextTrackCueList~TextTrackCue
 *
 * @propiedad {cadena} id
 * La identificación única para esta señal de pista de texto
 *
 * @propiedad {número} hora de inicio
 * La hora de inicio de esta señal de pista de texto
 *
 * @propiedad {número} hora de finalización
 * La hora de finalización de esta señal de pista de texto
 *
 * @property {booleano} pauseOnExit
 * Haga una pausa cuando se alcance la hora de finalización si es cierto.
 *
 * @ver [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}
 * /

/**
 * Una lista de TextTrackCues.
 *
 * @ver [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}
 * /
clase TextTrackCueList {

  /**
   * Crear una instancia de esta clase..
   *
   * @param {Array} señales
   * Una lista de cues para ser inicializados con
   * /
  constructor (señales) {
    TextTrackCueList.prototype.setCues_.call(this, cues);

    /**
     * @miembro de TextTrackCueList
     * @miembro {número} longitud
     * El número actual de `TextTrackCue`s en TextTrackCueList.
     * @instancia
     * /
    Object.defineProperty(esto, 'longitud', {
      conseguir() {
        devuelve esto.longitud_;
      }
    });
  }

  /**
   * Un colocador de señales en esta lista. Crea captadores
   * un índice para las señales.
   *
   * @param {Array} señales
   * Una variedad de señales para establecer
   *
   * @privado
   * /
  setCues_(cues) {
    const oldLength = this.length || 0;
    sea i = 0;
    const l = cues.longitud;

    this.cues_ = señales;
    this.length_ = señales.longitud;

    const defineProp = función (índice) {
      if (!('' + índice en esto)) {
        Object.defineProperty(esto, '' + índice, {
          conseguir() {
            devuelve esto.cues_[índice];
          }
        });
      }
    };

    if (antiguoLongitud < l) {
      i = longitudAnterior;

      para (; yo < yo; i++) {
        defineProp.call(esto, yo);
      }
    }
  }

  /**
   * Obtenga un `TextTrackCue` que se encuentra actualmente en `TextTrackCueList` por id.
   *
   * @param {cadena} id
   * El id del cue que debe ser buscado.
   *
   * @return {TextTrackCueList~TextTrackCue|null}
   * Una sola señal o nula si no se encontró ninguna.
   * /
  getCueById(id) {
    dejar resultado = nulo;

    para (sea i = 0, l = esta.longitud; i < yo; i++) {
      const señal = esto[i];

      if (cue.id === id) {
        resultado = señal;
        romper;
      }
    }

    resultado devuelto;
  }
}

exportar TextTrackCueList predeterminado;