/**
 * @file restante-time-display.js
 * /
importar TimeDisplay desde './time-display';
importar componente desde '../../component.js';
importar * como Dom desde '../../utils/dom.js';

/**
 * Muestra el tiempo restante en el video
 *
 * Componente @extiende
 * /
class RemainingTimeDisplay extiende TimeDisplay {

  /**
   * 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.on(jugador, 'cambioduración', (e) => este.updateContent(e));
  }

  /**
   * Construye el DOM predeterminado `className`.
   *
   * @return {cadena}
   * El DOM `className` para este objeto.
   * /
  construirClaseCSS() {
    return 'vjs-tiempo-restante';
  }

  /**
   * Cree el elemento DOM del 'Componente' con el carácter "menos" antepuesto a la hora
   *
   * @return {Elemento}
   * El elemento que se creó.
   * /
  crearEl() {
    const el = super.createEl();

    if (this.options_.displayNegative!== falso) {
      el.insertBefore(Dom.createEl('span', {}, {'aria-hidden': true}, '-'), this.contentEl_);
    }
    volver el;
  }

  /**
   * Actualización de visualización de tiempo restante.
   *
   * @param {Objetivo de evento~Evento} [evento]
   * El evento `timeupdate` o `durationchange` que hizo que esto se ejecutara.
   *
   * @escucha Player#timeupdate
   * @escucha Player#durationchange
   * /
  actualizar contenido (evento) {
    if (tipodeeste.jugador_.duración() !== 'número') {
      devolver;
    }

    deja tiempo;

    // @deprecated Solo debemos usar la visualización de tiempo restante
    // a partir de video.js 7
    if (este.jugador_.terminado()) {
      tiempo = 0;
    } más si (this.player_.remainingTimeDisplay) {
      tiempo = this.player_.remainingTimeDisplay();
    } else {
      tiempo = this.player_.remainingTime();
    }

    this.updateTextNode_(hora);
  }
}

/**
 * El texto que se agrega a `RemainingTimeDisplay` para usuarios de lectores de pantalla.
 *
 * @tipo {cadena}
 * @privado
 * /
RemainingTimeDisplay.prototype.labelText_ = 'Tiempo restante';

/**
 * El texto que debería mostrarse sobre los controles `RemainingTimeDisplay`. Añadido a para la localización.
 *
 * @tipo {cadena}
 * @privado
 *
 * @obsoleto en v7; controlText_ no se usa en componentes de visualización no activos
 * /
RemainingTimeDisplay.prototype.controlText_ = 'Tiempo restante';

Component.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
exportar por defecto RemainingTimeDisplay;