/**
 * @file chapters-track-menu-item.js
 */
import MenuItem from '../../menu/menu-item.js' ;
import Component from '../../component.js' ;

/**
 * L'élément de menu de la piste de chapitre
 *
 * @extends MenuItem
 */
class ChaptersTrackMenuItem extends MenuItem {

  /**
   * 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) {
    const track = options.track ;
    const cue = options.cue ;
    const currentTime = player.currentTime() ;

    // Modifier les options pour l'init de la classe MenuItem parente.
    options.selectable = true ;
    options.multiSelectable = false ;
    options.label = cue.text ;
    options.selected = (cue.startTime <= currentTime && currentTime < cue.endTime) ;
    super(player, options) ;

    this.track = track ;
    this.cue = cue ;
  }

  /**
   * Cette fonction est appelée lorsqu'un élément de menu `ChaptersTrackMenuItem` est "cliqué". Voir
   * {@link ClickableComponent} pour des informations plus détaillées sur ce que peut être un clic.
   *
   * @param {EventTarget~Event} [event]
   *        L'événement `keydown`, `tap` ou `click` qui a provoqué l'activation de cette fonction est le suivant
   *        appelé.
   *
   * @listens tap
   * @listens click
   */
  handleClick(event) {
    super.handleClick() ;
    this.player_.currentTime(this.cue.startTime) ;
  }

}

Component.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem) ;
export default ChaptersTrackMenuItem ;