/**
 * @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);
導出默認關閉按鈕;