/**
 * @file live-display.js
 */
從 '../component' 導入組件;
import * as Dom from '../utils/dom.js';
從“全局/文檔”導入文檔;

// TODO - Future 讓它點擊捕捉到生活

/**
 * 持續時間為 Infinity 時顯示實時指示器。
 *
 * @extends 組件
 */
類 LiveDisplay 擴展組件 {

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

    這個.updateShowing();
    this.on(this.player(), 'durationchange', (e) => this.updateShowing(e));
  }

  /**
   * 創建 `Component` 的 DOM 元素
   *
   * @return {元素}
   * 創建的元素。
   */
  創建El() {
    const el = super.createEl('div', {
      className: 'vjs-live-control vjs-control'
    });

    this.contentEl_ = Dom.createEl('div', {
      className: 'vjs-live-display'
    },{
      'aria-live':'關閉'
    });

    this.contentEl_.appendChild(Dom.createEl('span', {
      className: 'vjs-control-text',
      文本內容:`$ {這個。本地化('流類型')}\ u00a0`
    }));
    this.contentEl_.appendChild(document.createTextNode(this.localize('LIVE')));

    el.appendChild(this.contentEl_);
    返回 el;
  }

  處置(){
    this.contentEl_ = null;

    super.dispose();
  }

  /**
   * 檢查持續時間以查看 LiveDisplay 是否應該顯示。然後顯示/隱藏
   *相應地
   *
   * @param {EventTarget~Event} [事件]
   * 導致此功能運行的 {@link Player#durationchange} 事件。
   *
   * @listens Player#durationchange
   */
  更新顯示(事件){
    如果 (this.player().duration() === Infinity) {
      這個。顯示();
    }其他{
      這個。隱藏();
    }
  }

}

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