/**
 * @archivo cerrar-boton.js
 * /
importar botón desde './botón';
importar componente desde './componente';
importar código clave desde 'código clave';

/**
 * El `CloseButton` es un `{@link Button}` que dispara un evento `close` cuando
 * se hace clic.
 *
 * Botón @extiende
 * /
clase Cerrar Botón 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.controlText(opciones && opciones.controlText || this.localize('Cerrar'));
  }

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

  /**
   * Esto se llama cuando se hace clic en `CloseButton`. Ver
   * {@link ClickableComponent#handleClick} para obtener más información sobre cuándo
   * esto se activará
   *
   * @param {EventTarget~Evento} evento
   * El evento `keydown`, `top` o `click` que hizo que esta función se desactivara
   * llamado.
   *
   * @escucha toca
   * @escucha clic
   * @botón de cierre de incendios#cerrar
   * /
  handleClick(evento) {

    /**
     * Se activa cuando se hace clic en un `CloseButton`.
     *
     * @event Cerrar Botón#cerrar
     * @type {Objetivo del evento~Evento}
     *
     * @propiedad {booleano} [burbujas=falso]
     * establecido en falso para que el evento de cierre no
     * burbujear a los padres si no hay un oyente
     * /
    this.trigger({tipo: 'cerrar', burbujas: falso});
  }
  /**
   * Controlador de eventos que se llama cuando un `CloseButton` recibe un
   * Evento `keydown`.
   *
   * De forma predeterminada, si la tecla es Esc, activará un evento de "clic".
   *
   * @param {EventTarget~Evento} evento
   * El evento `keydown` que hizo que se llamara a esta función.
   *
   * @escucha tecla abajo
   * /
  handleKeyDown(evento) {
    // El botón Esc activará el evento `click`
    if (keycode.isEventKey(evento, 'Esc')) {
      event.preventDefault();
      event.stopPropagation();
      this.trigger('clic');
    } else {
      // Pasar el manejo de pulsaciones de teclas para teclas no compatibles
      super.handleKeyDown(evento);
    }
  }
}

Component.registerComponent('CerrarBoton', CerrarBoton);
exportar botón de cierre predeterminado;