/**
 * @file fullscreen-toggle.js
 * /
importar botón desde '../button.js';
importar componente desde '../component.js';
importar documento desde 'global/document';

/**
 * Alternar video de pantalla completa
 *
 * Botón @extiende
 * /
class FullscreenToggle 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.on(jugador, 'cambio de pantalla completa', (e) => this.handleFullscreenChange(e));

    if (documento[player.fsApi_.fullscreenEnabled] === false) {
      esto.deshabilitar();
    }
  }

  /**
   * Construye el DOM predeterminado `className`.
   *
   * @return {cadena}
   * El DOM `className` para este objeto.
   * /
  construirClaseCSS() {
    devuelve `vjs-fullscreen-control ${super.buildCSSClass()}`;
  }

  /**
   * Maneja el cambio de pantalla completa en el reproductor y cambia el texto de control en consecuencia.
   *
   * @param {Objetivo de evento~Evento} [evento]
   * El evento {@link Player#fullscreenchange} que causó que esta función fuera
   * llamado.
   *
   * @escucha jugador#cambio de pantalla completa
   * /
  handleFullscreenChange(evento) {
    if (this.player_.isFullscreen()) {
      this.controlText('No pantalla completa');
    } else {
      this.controlText('Pantalla completa');
    }
  }

  /**
   * Esto se llama cuando se "hace clic" en `FullscreenToggle`. Ver
   * {@link ClickableComponent} para obtener información más detallada sobre lo que puede ser un clic.
   *
   * @param {Objetivo de evento~Evento} [evento]
   * El evento `keydown`, `top` o `click` que hizo que esta función se desactivara
   * llamado.
   *
   * @escucha toca
   * @escucha clic
   * /
  handleClick(evento) {
    if (!this.player_.isFullscreen()) {
      this.player_.requestFullscreen();
    } else {
      this.player_.exitFullscreen();
    }
  }

}

/**
 * El texto que debería mostrarse sobre los controles `FullscreenToggle`s. Añadido para la localización.
 *
 * @tipo {cadena}
 * @privado
 * /
FullscreenToggle.prototype.controlText_ = 'Pantalla completa';

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