/**
 * @file buscar-para-vivir.js
 * /
Importar botón desde '../botón';
importar componente desde '../componente';
importar * como Dom desde '../utils/dom.js';

/**
 * Muestra el indicador en vivo cuando la duración es Infinito.
 *
 * Componente @extiende
 * /
clase SeekToLive extiende Botón {

  /**
   * Crea una instancia de esta clase.
   *
   * @param {Jugador} jugador
   * El `Jugador` al que se debe adjuntar esta clase.
   *
   * @param {Objeto} [opciones]
   * El almacén de clave/valor de las opciones del jugador.
   * /
  constructor(jugador, opciones) {
    super(jugador, opciones);

    this.updateLiveEdgeStatus();

    si (this.player_.liveTracker) {
      this.updateLiveEdgeStatusHandler_ = (e) => this.updateLiveEdgeStatus(e);
      this.on(this.player_.liveTracker, 'liveedgechange', this.updateLiveEdgeStatusHandler_);
    }
  }

  /**
   * Crear el elemento DOM del 'Componente'
   *
   * @return {Elemento}
   * El elemento que se creó.
   * /
  crearEl() {
    const el = super.createEl('boton', {
      className: 'vjs-seek-to-live-control vjs-control'
    });

    this.textEl_ = Dom.createEl('span', {
      className: 'vjs-buscar-a-texto-en-vivo',
      contenido del texto: this.localize('LIVE')
    }, {
      'aria-oculto': 'verdadero'
    });

    el.appendChild(this.textEl_);
    volver el;
  }

  /**
   * Actualice el estado de este botón si estamos en el borde vivo
   * O no
   * /
  actualizarLiveEdgeStatus() {
    // por defecto en el borde vivo
    if (!this.player_.liveTracker || this.player_.liveTracker.atLiveEdge()) {
      this.setAttribute('aria-disabled', true);
      this.addClass('vjs-en-live-edge');
      this.controlText('Buscar vivir, actualmente reproduciendo en vivo');
    } else {
      this.setAttribute('aria-disabled', false);
      this.removeClass('vjs-en-live-edge');
      this.controlText('Buscar vivir, actualmente detrás de vivir');
    }
  }

  /**
   * Al hacer clic, acérquenos lo más posible al punto en vivo.
   * Esto requiere que esperemos al próximo `live-seekable-change`
   * evento que ocurrirá cada segundo de longitud de segmento.
   * /
  manejarClick() {
    this.player_.liveTracker.seekToLiveEdge();
  }

  /**
   * Deseche el elemento y deje de rastrear
   * /
  disponer () {
    si (this.player_.liveTracker) {
      this.off(this.player_.liveTracker, 'liveedgechange', this.updateLiveEdgeStatusHandler_);
    }
    this.textEl_ = null;

    super.dispose();
  }
}

SeekToLive.prototype.controlText_ = 'Buscar vivir, actualmente reproduciendo en vivo';

Component.registerComponent('SeekToLive', SeekToLive);
exportar SeekToLive predeterminado;