/**
 * @file 재생 속도-메뉴-item.js
 */
'../../menu/menu-item.js'에서 MenuItem 가져오기;
'../../component.js'에서 컴포넌트 가져오기;

/**
 * 재생 속도를 선택하기 위한 특정 메뉴 항목 유형입니다.
 *
 * @extends 메뉴 항목
 */
클래스 PlaybackRateMenuItem은 MenuItem {를 확장합니다.

  /**
   * 이 클래스의 인스턴스를 만듭니다.
   *
   * @param {플레이어} 플레이어
   * 이 클래스가 연결되어야 하는 `Player`.
   *
   * @param {객체} [옵션]
   * 플레이어 옵션의 키/값 저장소.
   */
  생성자(플레이어, 옵션) {
    const 레이블 = options.rate;
    const rate = parseFloat(label, 10);

    // 상위 MenuItem 클래스의 init에 대한 옵션을 수정합니다.
    options.label = 라벨;
    options.selected = 속도 === player.playbackRate();
    options.selectable = 참;
    options.multiSelectable = 거짓;

    super(플레이어, 옵션);

    this.label = 라벨;
    this.rate = 비율;

    this.on(플레이어, 'ratechange', (e) => this.update(e));
  }

  /**
   * `PlaybackRateMenuItem`이 "클릭"될 때 호출됩니다. 보다
   * {@link ClickableComponent}에서 클릭이 무엇인지 자세히 알아보세요.
   *
   * @param {이벤트대상~이벤트} [이벤트]
   * 이 함수를 실행하게 만든 `keydown`, `tap` 또는 `click` 이벤트
   * 라고 불리는.
   *
   * @listens 탭
   * @듣기 클릭
   */
  handleClick(이벤트) {
    super.handleClick();
    this.player().playbackRate(this.rate);
  }

  /**
   * 재생 속도가 변경되면 PlaybackRateMenuItem을 업데이트합니다.
   *
   * @param {이벤트대상~이벤트} [이벤트]
   * 이 함수를 실행하게 만든 `ratechange` 이벤트.
   *
   * @listens Player#ratechange
   */
  업데이트(이벤트) {
    this.selected(this.player().playbackRate() === this.rate);
  }

}

/**
 * `PlaybackRateMenuItem` 컨트롤 위에 표시되어야 하는 텍스트입니다. 현지화를 위해 추가되었습니다.
 *
 * @유형 {문자열}
 * @사적인
 */
PlaybackRateMenuItem.prototype.contentElType = '버튼';

Component.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
기본 PlaybackRateMenuItem 내보내기;