/**
 * @file fullscreen-toggle.js
 */
從 '../button.js' 導入按鈕;
從 '../component.js' 導入組件;
從“全局/文檔”導入文檔;

/**
 * 切換全屏視頻
 *
 * @extends 按鈕
 */
類 FullscreenToggle 擴展按鈕 {

  /**
   * 創建此類的一個實例。
   *
   * @param {Player} 播放器
   * 此類應附加到的 `Player`。
   *
   * @param {對象} [選項]
   * 播放器選項的鍵/值存儲。
   */
  構造函數(播放器,選項){
    超級(播放器,選項);
    this.on(player, 'fullscreenchange', (e) => this.handleFullscreenChange(e));

    如果(文檔[player.fsApi_.fullscreenEnabled] === false){
      這個。禁用();
    }
  }

  /**
   * 構建默認的 DOM `className`。
   *
   * @return {字符串}
   * 此對象的 DOM `className`。
   */
  buildCSSClass() {
    返回`vjs-fullscreen-control ${super.buildCSSClass()}`;
  }

  /**
   * 處理播放器上的全屏更改並相應地更改控製文本。
   *
   * @param {EventTarget~Event} [事件]
   * {@link Player#fullscreenchange} 事件導致這個函數被
   * 打電話。
   *
   * @listens Player#fullscreenchange
   */
  handleFullscreenChange(事件){
    如果 (this.player_.isFullscreen()) {
      this.controlText('非全屏');
    }其他{
      this.controlText('全屏');
    }
  }

  /**
   * 當 `FullscreenToggle` 被“點擊”時調用。看
   * {@link ClickableComponent} 以獲取有關點擊的更多詳細信息。
   *
   * @param {EventTarget~Event} [事件]
   * 導致此功能被執行的 `keydown`、`tap` 或 `click` 事件
   * 打電話。
   *
   * @listens 水龍頭
   * @listens 點擊
   */
  handleClick(事件){
    如果(!this.player_.isFullscreen()){
      this.player_.requestFullscreen();
    }其他{
      this.player_.exitFullscreen();
    }
  }

}

/**
 * 應顯示在 `FullscreenToggle` 控件上的文本。添加本地化。
 *
 * @type {字符串}
 * @私人的
 */
FullscreenToggle.prototype.controlText_ = '全屏';

Component.registerComponent('FullscreenToggle', FullscreenToggle);
導出默認全屏切換;