/**
 * @file text-track-list.js
 * /
importar TrackList desde './track-list';

/**
 * La lista actual de {@link TextTrack} para un archivo multimedia.
 *
 * @ver [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}
 * @extiende TrackList
 * /
clase TextTrackList extiende TrackList {

  /**
   * Agregue un {@link TextTrack} a `TextTrackList`
   *
   * @param {TextTrack} pista
   * La pista de texto para agregar a la lista.
   *
   * @fires TrackList#addtrack
   * /
  addTrack(pista) {
    super.addTrack(pista);

    if (!this.queueChange_) {
      this.queueChange_ = () => this.queueTrigger('cambiar');
    }
    if (!this.triggerSelectedlanguagechange) {
      this.triggerSelectedlanguagechange_ = () => this.trigger('cambio de idioma seleccionado');
    }

    /**
     * @escucha TextTrack#cambio de modo
     * @fires TrackList#cambiar
     * /
    track.addEventListener('cambio de modo', this.queueChange_);
    const nonLanguageTextTrackKind = ['metadatos', 'capítulos'];

    if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {
      track.addEventListener('cambio de modo', this.triggerSelectedlanguagechange_);
    }
  }

  removeTrack(rtrack) {
    super.removeTrack(rtrack);

    // eliminar manualmente los controladores de eventos que agregamos
    si (rtrack.removeEventListener) {
      if (this.queueChange_) {
        rtrack.removeEventListener('cambio de modo', this.queueChange_);
      }
      if (this.selectedlanguagechange_) {
        rtrack.removeEventListener('cambio de modo', this.triggerSelectedlanguagechange_);
      }
    }
  }
}
exportar TextTrackList predeterminado;