<commit_before><ng-container *ngIf="isPlayable(); else placeholder">
  <span
    class="m-videoPlayer__notice--error"
    *ngIf="status === 'failed' && !(awaitingTranscode | async)"
  >
    There was an error transcoding this video.
  </span>
  <span
    class="m-videoPlayer__notice--created"
    *ngIf="awaitingTranscode | async"
  >
    This video is waiting to be transcoded.
  </span>
  <div class="m-videoPlayer__screen">
    <plyr
      style="display: block; width: 100%; height: 100%;"
      [plyrPoster]="service.poster$ | async"
      [plyrPlaysInline]="true"
      [plyrSources]="!service.playable ? emptySource : (sources$ | async)"
      [plyrOptions]="options"
      (plyrPlay)="onPlayed($event)"
      (plyrControlsShown)="onControlsShown.next()"
      (plyrControlsHidden)="onControlsHidden.next()"
      (plyrEnterFullScreen)="fullScreenChange.next($event)"
      (plyrExitFullScreen)="fullScreenChange.next($event)"
      (plyrLoadedMetadata)="emitDimensions($event)"
      (plyrPlaying)="onPlay()"
      (plyrReady)="onReady()"
      (plyrVolumeChange)="onVolumeChange()"
    >
    </plyr>
  </div>
</ng-container>

<ng-template #placeholder>
  <div
    class="m-videoPlayer__placeholder"
    [class.m-videoPlayer__placeholder--embedded]="embedded"
    [style.background-image]="'url(' + (service.poster$ | async) + ')'"
  >
    <i
      class="material-icons minds-video-play-icon"
      (click)="onPlaceholderClick($event)"
    >
      play_circle_outline
    </i>
  </div><commit_msg>Send $event in onControlsShown and onControlsHidden<commit_after><ng-container *ngIf="isPlayable(); else placeholder">
  <span
    class="m-videoPlayer__notice--error"
    *ngIf="status === 'failed' && !(awaitingTranscode | async)"
  >
    There was an error transcoding this video.
  </span>
  <span
    class="m-videoPlayer__notice--created"
    *ngIf="awaitingTranscode | async"
  >
    This video is waiting to be transcoded.
  </span>
  <div class="m-videoPlayer__screen">
    <plyr
      style="display: block; width: 100%; height: 100%;"
      [plyrPoster]="service.poster$ | async"
      [plyrPlaysInline]="true"
      [plyrSources]="!service.playable ? emptySource : (sources$ | async)"
      [plyrOptions]="options"
      (plyrPlay)="onPlayed($event)"
      (plyrControlsShown)="onControlsShown.next($event)"
      (plyrControlsHidden)="onControlsHidden.next($event)"
      (plyrEnterFullScreen)="fullScreenChange.next($event)"
      (plyrExitFullScreen)="fullScreenChange.next($event)"
      (plyrLoadedMetadata)="emitDimensions($event)"
      (plyrPlaying)="onPlay()"
      (plyrReady)="onReady()"
      (plyrVolumeChange)="onVolumeChange()"
    >
    </plyr>
  </div>
</ng-container>

<ng-template #placeholder>
  <div
    class="m-videoPlayer__placeholder"
    [class.m-videoPlayer__placeholder--embedded]="embedded"
    [style.background-image]="'url(' + (service.poster$ | async) + ')'"
  >
    <i
      class="material-icons minds-video-play-icon"
      (click)="onPlaceholderClick($event)"
    >
      play_circle_outline
    </i>
  </div>
{'fraction_non_alphanumeric': 0.1641644908616188, 'fraction_numerical': 0.0039164490861618795, 'mean_word_length': 3.865079365079365, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2892976', 'n_tokens_mistral': 1039, 'n_tokens_neox': 1020, 'n_words': 152}