/**
 * @file 剩餘時間-display.js
 */
從 './time-display' 導入 TimeDisplay;
從 '../../component.js' 導入組件;
import * as Dom from '../../utils/dom.js';

/**
 * 顯示視頻剩餘時間
 *
 * @extends 組件
 */
類 RemainingTimeDisplay 擴展 TimeDisplay {

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

  /**
   * 構建默認的 DOM `className`。
   *
   * @return {字符串}
   * 此對象的 DOM `className`。
   */
  buildCSSClass() {
    返回“vjs-剩餘時間”;
  }

  /**
   * 創建 `Component` 的 DOM 元素,並在時間前加上“減號”字符
   *
   * @return {元素}
   * 創建的元素。
   */
  創建El() {
    const el = super.createEl();

    if (this.options_.displayNegative !== false) {
      el.insertBefore(Dom.createEl('span', {}, {'aria-hidden': true}, '-'), this.contentEl_);
    }
    返回 el;
  }

  /**
   *更新剩餘時間顯示。
   *
   * @param {EventTarget~Event} [事件]
   * 導致此運行的 `timeupdate` 或 `durationchange` 事件。
   *
   * @listens Player#timeupdate
   * @listens Player#durationchange
   */
  更新內容(事件){
    if (typeof this.player_.duration() !== 'number') {
      返回;
    }

    讓時間;

    // @deprecated 我們應該只使用 remainingTimeDisplay
    // 從 video.js 7 開始
    如果(this.player_.ended()){
      時間 = 0;
    } else if (this.player_.remainingTimeDisplay) {
      time = this.player_.remainingTimeDisplay();
    }其他{
      time = this.player_.remainingTime();
    }

    this.updateTextNode_(時間);
  }
}

/**
 * 為屏幕閱讀器用戶添加到 `RemainingTimeDisplay` 的文本。
 *
 * @type {字符串}
 * @私人的
 */
RemainingTimeDisplay.prototype.labelText_ = '剩餘時間';

/**
 * 應顯示在 `RemainingTimeDisplay` 控件上的文本。添加到本地化。
 *
 * @type {字符串}
 * @私人的
 *
 * @在 v7 中已棄用; controlText_ 不用於非活動顯示組件
 */
RemainingTimeDisplay.prototype.controlText_ = '剩餘時間';

Component.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
導出默認剩餘時間顯示;