/**
 * @file off-text-track-menu-item.js
 */
'./text-track-menu-item.js'에서 TextTrackMenuItem 가져오기;
'../../component.js'에서 컴포넌트 가져오기;

/**
 * 특정 유형의 텍스트 트랙을 전환하기 위한 특수 메뉴 항목
 *
 * @extends TextTrackMenuItem
 */
클래스 OffTextTrackMenuItem은 TextTrackMenuItem {을 확장합니다.

  /**
   * 이 클래스의 인스턴스를 만듭니다.
   *
   * @param {플레이어} 플레이어
   * 이 클래스가 연결되어야 하는 `Player`.
   *
   * @param {객체} [옵션]
   * 플레이어 옵션의 키/값 저장소.
   */
  생성자(플레이어, 옵션) {
    // 유사 트랙 정보 생성
    // options['종류'] 필요
    옵션.트랙 = {
      플레이어,
      // 더 이상 트랙 자체에 `kind` 또는 `kinds`를 저장할 필요가 없습니다.
      // 이제 모든 인스턴스의 `kinds` 속성에 저장되기 때문입니다.
      // TextTrackMenuItem이지만 이전 버전과의 호환성을 위해 유지됩니다.
      종류: options.kind,
      종류: options.kinds,
      기본값: 거짓,
      모드: '비활성화'
    };

    if (!options.kinds) {
      options.kinds = [옵션.종류];
    }

    if (옵션.레이블) {
      options.track.label = 옵션.라벨;
    } else {
      options.track.label = options.kinds.join(' and ') + ' 꺼짐';
    }

    // MenuItem을 선택할 수 있습니다.
    options.selectable = 참;
    // MenuItem은 multiSelectable이 아닙니다(즉, 한 번에 하나만 "선택됨"으로 표시할 수 있음).
    options.multiSelectable = 거짓;

    super(플레이어, 옵션);
  }

  /**
   * 텍스트 트랙 변경 처리
   *
   * @param {EventTarget~Event} 이벤트
   * 이 기능을 실행하게 만든 이벤트
   */
  handleTracksChange(이벤트) {
    const 트랙 = this.player().textTracks();
    let shouldBeSelected = true;

    for (let i = 0, l = 트랙 길이; i < 엘; i++) {
      const 트랙 = 트랙[i];

      if ((this.options_.kinds.indexOf(track.kind) > -1) && track.mode === '표시') {
        shouldBeSelected = 거짓;
        부서지다;
      }
    }

    // 불필요한 selected() 호출을 방지합니다.
    // 추가된 제어 텍스트를 불필요하게 읽는 스크린 리더
    if (shouldBeSelected !== this.isSelected_) {
      this.selected(shouldBeSelected);
    }
  }

  handleSelectedLanguageChange(이벤트) {
    const 트랙 = this.player().textTracks();
    let allHidden = true;

    for (let i = 0, l = 트랙 길이; i < 엘; i++) {
      const 트랙 = 트랙[i];

      if ((['캡션', '설명', '자막'].indexOf(트랙.종류) > -1) && track.mode === '표시') {
        allHidden = 거짓;
        부서지다;
      }
    }

    if (allHidden) {
      this.player_.cache_.selectedLanguage = {
        활성화: 거짓
      };
    }
  }

}

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