/**
 * @Datei play-progress-bar.js
 * /
importiere Komponente aus '../../component.js';
importiere {IS_IOS, IS_ANDROID} aus '../../utils/browser.js';
import * as Fn from '../../utils/fn.js';

importieren './time-tooltip';

/**
 * Wird von {@link SeekBar} verwendet, um den Fortschritt der Medienwiedergabe als Teil der
 * {@link ProgressControl}.
 *
 * @erweitert Komponente
 * /
class PlayProgressBar extends Component {

  /**
   * Erzeugt eine Instanz dieser Klasse.
   *
   * @param {Player} Spieler
   *        Der {@link Player}, dem diese Klasse zugeordnet werden soll.
   *
   * @param {Object} [Optionen]
   *        Der Schlüssel/Wertspeicher der Playeroptionen.
   * /
  constructor(spieler, optionen) {
    super(Spieler, Optionen);
    this.update = Fn.throttle(Fn.bind(this, this.update), Fn.UPDATE_REFRESH_INTERVAL);
  }

  /**
   * Erstellen Sie das DOM-Element für diese Klasse.
   *
   * @return {Element}
   *         Das Element, das erstellt wurde.
   * /
  createEl() {
    return super.createEl('div', {
      className: 'vjs-play-progress vjs-slider-bar'
    }, {
      aria-hidden": "true
    });
  }

  /**
   * Stellt Aktualisierungen seines eigenen DOM sowie des DOM seiner
   * {@link TimeTooltip} Kind.
   *
   * @param {Object} seekBarRect
   *        Der `ClientRect` für das Element {@link SeekBar}.
   *
   * @param {Nummer} seekBarPoint
   *        Eine Zahl von 0 bis 1, die einen horizontalen Bezugspunkt darstellt
   *        vom linken Rand der {@link SeekBar}
   * /
  update(seekBarRect, seekBarPoint) {
    const timeTooltip = this.getChild('timeTooltip');

    if (!timeTooltip) {
      rückkehr;
    }

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

    timeTooltip.updateTime(seekBarRect, seekBarPoint, time);
  }
}

/**
 * Standardoptionen für {@link PlayProgressBar}.
 *
 * @Typ {Objekt}
 * @privat
 * /
PlayProgressBar.prototype.options_ = {
  kinder: []
};

// Zeit-Tooltips sollten einem Player auf mobilen Geräten nicht hinzugefügt werden
if (!IS_IOS && !IS_ANDROID) {
  PlayProgressBar.prototype.options_.children.push('timeTooltip');
}

Component.registerComponent('PlayProgressBar', PlayProgressBar);
standard PlayProgressBar exportieren;