/**
 * @file 닫기 버튼.js
 */
'./버튼'에서 버튼 가져오기;
'./component'에서 컴포넌트 가져오기;
'키코드'에서 키코드 가져오기;

/**
 * `CloseButton`은 다음과 같은 경우 `close` 이벤트를 발생시키는 `{@link Button}`입니다.
 * 클릭됩니다.
 *
 * @extends 버튼
 */
클래스 CloseButton 확장 버튼 {

  /**
  * 이 클래스의 인스턴스를 만듭니다.
  *
  * @param {플레이어} 플레이어
  * 이 클래스가 연결되어야 하는 `Player`.
  *
  * @param {객체} [옵션]
  * 플레이어 옵션의 키/값 저장소.
  */
  생성자(플레이어, 옵션) {
    super(플레이어, 옵션);
    this.controlText(옵션 && options.controlText || this.localize('닫기'));
  }

  /**
  * 기본 DOM `className`을 빌드합니다.
  *
  * @return {문자열}
  * 이 개체의 DOM `className`입니다.
  */
  buildCSSClass() {
    `vjs-close-button ${super.buildCSSClass()}` 반환;
  }

  /**
   * 이것은 `CloseButton`이 클릭될 때 호출됩니다. 보다
   * {@link ClickableComponent#handleClick}에 대한 자세한 정보는
   * 이것이 발동됩니다
   *
   * @param {EventTarget~Event} 이벤트
   * 이 함수를 실행하게 만든 `keydown`, `tap` 또는 `click` 이벤트
   * 라고 불리는.
   *
   * @listens 탭
   * @듣기 클릭
   * @fires 닫기버튼#닫기
   */
  handleClick(이벤트) {

    /**
     * 'CloseButton'을 클릭하면 트리거됩니다.
     *
     * @event 닫기버튼#닫기
     * @type {이벤트대상~이벤트}
     *
     * @property {부울} [버블=거짓]
     * 닫기 이벤트가 발생하지 않도록 false로 설정
     * 듣는 사람이 없으면 부모에게 버블 업
     */
    this.trigger({유형: '닫기', 거품: 거짓});
  }
  /**
   * `CloseButton`이
   * `키다운` 이벤트.
   *
   * 기본적으로 키가 Esc이면 '클릭' 이벤트가 트리거됩니다.
   *
   * @param {EventTarget~Event} 이벤트
   * 이 함수를 호출한 `keydown` 이벤트.
   *
   * @listens 키다운
   */
  handleKeyDown(이벤트) {
    // Esc 버튼은 `click` 이벤트를 트리거합니다.
    if (keycode.isEventKey(event, 'Esc')) {
      event.preventDefault();
      event.stopPropagation();
      this.trigger('클릭');
    } else {
      // 지원되지 않는 키에 대한 키 누르기 처리를 전달합니다.
      super.handleKeyDown(이벤트);
    }
  }
}

Component.registerComponent('닫기버튼', 닫기버튼);
기본 CloseButton 내보내기;