/**
 * @file play-progress-bar.js
 */
從 '../../component.js' 導入組件;
從 '../../utils/browser.js' 導入 {IS_IOS, IS_ANDROID};
從 '../../utils/fn.js' 導入 * 作為 Fn;

導入'./time-tooltip';

/**
 * 由 {@link SeekBar} 用於顯示媒體播放進度,作為
 * {@link ProgressControl}。
 *
 * @extends 組件
 */
類 PlayProgressBar 擴展組件 {

  /**
   * 創建此類的一個實例。
   *
   * @param {Player} 播放器
   * 此類應附加到的 {@link Player}。
   *
   * @param {對象} [選項]
   * 播放器選項的鍵/值存儲。
   */
  構造函數(播放器,選項){
    超級(播放器,選項);
    this.update = Fn.throttle(Fn.bind(this, this.update), Fn.UPDATE_REFRESH_INTERVAL);
  }

  /**
   * 為這個類創建DOM元素。
   *
   * @return {元素}
   * 創建的元素。
   */
  創建El() {
    返回 super.createEl('div', {
      className: 'vjs-play-progress vjs-slider-bar'
    },{
      'aria-hidden': 'true'
    });
  }

  /**
   * 排隊更新到它自己的 DOM 以及它的 DOM
   * {@link TimeTooltip} 孩子。
   *
   * @param {Object} seekBarRect
   * {@link SeekBar} 元素的 `ClientRect`。
   *
   * @param {number} seekBarPoint
   * 0到1之間的數字,代表水平參考點
   * 從 {@link SeekBar} 的左邊緣
   */
  更新(seekBarRect,seekBarPoint){
    const timeTooltip = this.getChild('timeTooltip');

    如果(!timeTooltip){
      返回;
    }

    const time = (this.player_.scrubbing()) ?
      this.player_.getCache().currentTime :
      this.player_.currentTime();

    timeTooltip.updateTime(seekBarRect, seekBarPoint, 時間);
  }
}

/**
 * {@link PlayProgressBar} 的默認選項。
 *
 * @type {對象}
 * @私人的
 */
PlayProgressBar.prototype.options_ = {
  孩子們: []
};

// 時間工具提示不應添加到移動設備上的播放器
如果(!IS_IOS &&!IS_ANDROID){
  PlayProgressBar.prototype.options_.children.push('timeTooltip');
}

Component.registerComponent('PlayProgressBar', PlayProgressBar);
導出默認播放進度條;