/**
 * @Datei fullscreen-toggle.js
 * /
importiere Button aus '../button.js';
importiere Komponente aus '../component.js';
dokument aus 'global/document' importieren;

/**
 * Video im Vollbildmodus umschalten
 *
 * @erweitert Button
 * /
class FullscreenToggle extends Button {

  /**
   * 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, 'fullscreenchange', (e) => this.handleFullscreenChange(e));

    if (document[player.fsApi_.fullscreenEnabled] === false) {
      this.disable();
    }
  }

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

  /**
   * Behandelt den Vollbildwechsel im Player und ändert den Kontrolltext entsprechend.
   *
   * @param {EventTarget~Event} [event]
   *        Das Ereignis {@link Player#fullscreenchange}, das diese Funktion ausgelöst hat
   *        genannt.
   *
   * @listens Player#fullscreenchange
   * /
  handleFullscreenChange(event) {
    if (this.player_.isFullscreen()) {
      this.controlText('Nicht-Vollbild');
    } else {
      this.controlText('Fullscreen');
    }
  }

  /**
   * Diese Funktion wird aufgerufen, wenn ein `FullscreenToggle` "angeklickt" wird. Sehen
   * {@link ClickableComponent} für genauere Informationen darüber, was ein Klick sein kann.
   *
   * @param {EventTarget~Event} [event]
   *        Das `Keydown`-, `Tap`- oder `Click`-Ereignis, das diese Funktion ausgelöst hat
   *        genannt.
   *
   * @listens tap
   * @listens klicken
   * /
  handleClick(event) {
    if (!this.player_.isFullscreen()) {
      this.player_.requestFullscreen();
    } else {
      this.player_.exitFullscreen();
    }
  }

}

/**
 * Der Text, der über den `FullscreenToggle`-Steuerelementen angezeigt werden soll. Für die Lokalisierung hinzugefügt.
 *
 * @Typ {String}
 * @privat
 * /
FullscreenToggle.prototype.controlText_ = 'Fullscreen';

Component.registerComponent('FullscreenToggle', FullscreenToggle);
standardmäßig FullscreenToggle exportieren;