/**
 * @file playback-rate-menu-item.js
 */
從 '../../menu/menu-item.js' 導入 MenuItem;
從 '../../component.js' 導入組件;

/**
 * 用於選擇播放速率的特定菜單項類型。
 *
 * @extends 菜單項
 */
類 PlaybackRateMenuItem 擴展 MenuItem {

  /**
   * 創建此類的一個實例。
   *
   * @param {Player} 播放器
   * 此類應附加到的 `Player`。
   *
   * @param {對象} [選項]
   * 播放器選項的鍵/值存儲。
   */
  構造函數(播放器,選項){
    const label = options.rate;
    const rate = parseFloat(label, 10);

    // 修改父 MenuItem 類的 init 的選項。
    options.label = 標籤;
    options.selected = rate === player.playbackRate();
    options.selectable = true;
    options.multiSelectable = false;

    超級(播放器,選項);

    this.label = 標籤;
    this.rate = rate;

    this.on(player, 'ratechange', (e) => this.update(e));
  }

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

  /**
   * 當播放速率改變時更新 PlaybackRateMenuItem。
   *
   * @param {EventTarget~Event} [事件]
   * 導致此函數運行的 `ratechange` 事件。
   *
   * @listens Player#ratechange
   */
  更新(事件){
    this.selected(this.player().playbackRate() === this.rate);
  }

}

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

Component.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
導出默認 PlaybackRateMenuItem;