/**
* @file close-button.js
*/
import Button from './button' ;
import Component from './component' ;
import keycode from 'keycode' ;
/**
* Le `CloseButton` est un `{@link Button}` qui déclenche un événement `close` lorsque
* il est cliqué.
*
* bouton @extends
*/
class CloseButton extends Button {
/**
* Crée une instance de cette classe.
*
* @param {Player} player
* Le `Player` auquel cette classe doit être attachée.
*
* @param {Objet} [options]
* La mémoire clé/valeur des options du lecteur.
*/
constructor(player, options) {
super(player, options) ;
this.controlText(options && options.controlText || this.localize('Close')) ;
}
/**
* Construit le DOM par défaut `className`.
*
* @return {string}
* Le `nom de classe` du DOM pour cet objet.
*/
buildCSSClass() {
return `vjs-close-button ${super.buildCSSClass()}` ;
}
/**
* Cette fonction est appelée lorsqu'un `CloseButton` est cliqué. Voir
* {@link ClickableComponent#handleClick} pour plus d'informations sur l'utilisation de la fonction
* cela sera déclenché
*
* @param {EventTarget~Event} event
* L'événement `keydown`, `tap` ou `click` qui a provoqué l'activation de cette fonction est le suivant
* appelé.
*
* @listens tap
* @listens click
* @fires CloseButton#close
*/
handleClick(event) {
/**
* Déclenché lorsqu'un `CloseButton` est cliqué.
*
* @event CloseButton#close
* @type {EventTarget~Event}
*
* @property {boolean} [bubbles=false]
* est fixé à false pour que l'événement de fermeture ne soit pas
* s'adresser aux parents s'il n'y a pas d'auditeur
*/
this.trigger({type : 'close', bubbles : false}) ;
}
/**
* Gestionnaire d'événements appelé lorsqu'un `CloseButton` reçoit une commande
* événement `keydown`.
*
* Par défaut, si la touche est Esc, elle déclenche un événement `click`.
*
* @param {EventTarget~Event} event
* L'événement `keydown` qui a provoqué l'appel de cette fonction.
*
* @listens keydown
*/
handleKeyDown(event) {
// Le bouton Esc déclenchera l'événement `click`
if (keycode.isEventKey(event, 'Esc')) {
event.preventDefault() ;
event.stopPropagation() ;
this.trigger('click') ;
} else {
// Transmettre la gestion des pressions de touches pour les touches non prises en charge
super.handleKeyDown(event) ;
}
}
}
Component.registerComponent('CloseButton', CloseButton) ;
export default CloseButton ;