/**
 * @file verbleibende-zeit-anzeige.js
 * /
import TimeDisplay from './time-display';
importiere Komponente aus '../../component.js';
import * as Dom from '../../utils/dom.js';

/**
 * Zeigt die verbleibende Zeit im Video an
 *
 * @erweitert Komponente
 * /
class RemainingTimeDisplay extends TimeDisplay {

  /**
   * Erzeugt eine Instanz dieser Klasse.
   *
   * @param {Player} Spieler
   *        Der `Player`, dem diese Klasse zugeordnet werden soll.
   *
   * @param {Object} [Optionen]
   *        Der Schlüssel/Wertspeicher der Playeroptionen.
   * /
  constructor(spieler, optionen) {
    super(Spieler, Optionen);
    this.on(player, 'durationchange', (e) => this.updateContent(e));
  }

  /**
   * Erzeugt den Standard-DOM "Klassenname".
   *
   * @return {string}
   *         Der DOM `className` für dieses Objekt.
   * /
  buildCSSClass() {
    return 'vjs-Restlaufzeit';
  }

  /**
   * Erstellen Sie das DOM-Element der Komponente mit dem Minus-Zeichen vor der Zeit
   *
   * @return {Element}
   *         Das Element, das erstellt wurde.
   * /
  createEl() {
    const el = super.createEl();

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

  /**
   * Aktualisieren der Restzeitanzeige.
   *
   * @param {EventTarget~Event} [event]
   *        Das "timeupdate"- oder "durationchange"-Ereignis, das diese Aktion ausgelöst hat.
   *
   * @listens Player#timeupdate
   * @listens Player#durationchange
   * /
  updateContent(event) {
    if (typeof this.player_.duration() !== 'Zahl') {
      rückkehr;
    }

    zeit lassen;

    // @deprecated Wir sollten nur remainingTimeDisplay verwenden
    // ab video.js 7
    if (this.player_.ended()) {
      zeit = 0;
    } else if (this.player_.remainingTimeDisplay) {
      time = this.player_.remainingTimeDisplay();
    } else {
      time = this.player_.remainingTime();
    }

    this.updateTextNode_(time);
  }
}

/**
 * Der Text, der für Benutzer von Bildschirmlesegeräten zur Restzeitanzeige hinzugefügt wird.
 *
 * @Typ {String}
 * @privat
 * /
RemainingTimeDisplay.prototype.labelText_ = 'Verbleibende Zeit';

/**
 * Der Text, der über den Steuerelementen von `RemainingTimeDisplay` angezeigt werden soll. Zugefügt für die Lokalisierung.
 *
 * @Typ {String}
 * @privat
 *
 * @veraltet in v7; controlText_ wird in nicht aktiven Anzeigekomponenten nicht verwendet
 * /
RemainingTimeDisplay.prototype.controlText_ = 'Verbleibende Zeit';

Component.registerComponent('RestZeitAnzeige', RestZeitAnzeige);
exportieren Standard Restzeitanzeige;