/**
* @file close-button.js
*/
從'./button'導入按鈕;
從 './component' 導入組件;
從“鍵碼”導入鍵碼;
/**
* `CloseButton` 是一個 `{@link Button}`,它在以下情況下觸發 `close` 事件
* 它被點擊。
*
* @extends 按鈕
*/
類 CloseButton 擴展按鈕 {
/**
* 創建此類的一個實例。
*
* @param {Player} 播放器
* 此類應附加到的 `Player`。
*
* @param {對象} [選項]
* 播放器選項的鍵/值存儲。
*/
構造函數(播放器,選項){
超級(播放器,選項);
this.controlText(選項 && options.controlText || this.localize('關閉'));
}
/**
* 構建默認的 DOM `className`。
*
* @return {字符串}
* 此對象的 DOM `className`。
*/
buildCSSClass() {
返回`vjs-close-button ${super.buildCSSClass()}`;
}
/**
* 當點擊 `CloseButton` 時調用。看
* {@link ClickableComponent#handleClick} 有關何時的更多信息
* 這將被觸發
*
* @param {EventTarget~Event} 事件
* 導致此功能被執行的 `keydown`、`tap` 或 `click` 事件
* 打電話。
*
* @listens 水龍頭
* @listens 點擊
* @fires CloseButton#close
*/
handleClick(事件){
/**
* 當點擊 `CloseButton` 時觸發。
*
* @event 關閉按鈕#close
* @type {EventTarget~Event}
*
* @property {boolean} [氣泡=假]
* 設置為 false 這樣關閉事件就不會
*如果沒有聽眾,就會向父母冒泡
*/
this.trigger({type: 'close', bubbles: false});
}
/**
* 當 `CloseButton` 接收到一個時調用的事件處理程序
* `keydown` 事件。
*
* 默認情況下,如果按鍵是Esc,會觸發`click`事件。
*
* @param {EventTarget~Event} 事件
* 導致調用此函數的 `keydown` 事件。
*
* @listens 按鍵
*/
handleKeyDown(事件){
// Esc 按鈕會觸發 `click` 事件
如果 (keycode.isEventKey(event, 'Esc')) {
事件.preventDefault();
事件.stopPropagation();
this.trigger('點擊');
}其他{
// 為不支持的鍵傳遞按鍵處理
super.handleKeyDown(事件);
}
}
}
Component.registerComponent('CloseButton', CloseButton);
導出默認關閉按鈕;