{"version":3,"file":"videogular-ngx-videogular-overlay-play.mjs","sources":["../../../../libs/ngx-videogular/overlay-play/src/lib/vg-overlay-play.component.ts","../../../../libs/ngx-videogular/overlay-play/src/lib/overlay-play.module.ts","../../../../libs/ngx-videogular/overlay-play/src/videogular-ngx-videogular-overlay-play.ts"],"sourcesContent":["import {\n  Component,\n  OnInit,\n  Input,\n  ElementRef,\n  HostListener,\n  ViewEncapsulation,\n  OnDestroy,\n  HostBinding,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { VgApiService, VgFullscreenApiService, VgControlsHiddenService, VgStates } from '@videogular/ngx-videogular/core';\n\n@Component({\n    selector: 'vg-overlay-play',\n    encapsulation: ViewEncapsulation.None,\n    template: `<div\n    class=\"vg-overlay-play\"\n    [class.native-fullscreen]=\"isNativeFullscreen\"\n    [class.controls-hidden]=\"areControlsHidden\"\n  >\n    <div\n      class=\"overlay-play-container\"\n      [class.vg-icon-play_arrow]=\"getState() !== 'playing'\"\n    ></div>\n  </div>`,\n    styles: [\n        `\n      vg-overlay-play {\n        z-index: 200;\n      }\n      vg-overlay-play.is-buffering {\n        display: none;\n      }\n      vg-overlay-play .vg-overlay-play {\n        transition: all 0.5s;\n        cursor: pointer;\n        position: absolute;\n        display: block;\n        color: white;\n        width: 100%;\n        height: 100%;\n        font-size: 80px;\n        filter: alpha(opacity=60);\n        opacity: 0.6;\n      }\n      vg-overlay-play .vg-overlay-play.native-fullscreen.controls-hidden {\n        cursor: none;\n      }\n      vg-overlay-play\n        .vg-overlay-play\n        .overlay-play-container.vg-icon-play_arrow {\n        pointer-events: none;\n        width: 100%;\n        height: 100%;\n        position: absolute;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 80px;\n      }\n      vg-overlay-play .vg-overlay-play:hover {\n        filter: alpha(opacity=100);\n        opacity: 1;\n      }\n      vg-overlay-play\n        .vg-overlay-play:hover\n        .overlay-play-container.vg-icon-play_arrow:before {\n        transform: scale(1.2);\n      }\n    `,\n    ],\n    standalone: false\n})\nexport class VgOverlayPlayComponent implements OnInit, OnDestroy {\n  @Input() vgFor: string;\n  @Input() vgSkipIfControlsHidden = false;\n  @Input() vgSkipIfControlsHiddenDelay = 0.5;\n  elem: HTMLElement;\n  target: any;\n\n  isNativeFullscreen = false;\n  areControlsHidden = false;\n  areControlsHiddenChangeTime: number = 0;\n\n  subscriptions: Subscription[] = [];\n\n  @HostBinding('class.is-buffering') isBuffering = false;\n\n  constructor(\n    ref: ElementRef,\n    public API: VgApiService,\n    public fsAPI: VgFullscreenApiService,\n    private controlsHidden: VgControlsHiddenService\n  ) {\n    this.elem = ref.nativeElement;\n  }\n\n  ngOnInit() {\n    if (this.API.isPlayerReady) {\n      this.onPlayerReady();\n    } else {\n      this.subscriptions.push(\n        this.API.playerReadyEvent.subscribe(() => this.onPlayerReady())\n      );\n    }\n  }\n\n  onPlayerReady() {\n    this.target = this.API.getMediaById(this.vgFor);\n    this.subscriptions.push(\n      this.fsAPI.onChangeFullscreen.subscribe(\n        this.onChangeFullscreen.bind(this)\n      )\n    );\n    this.subscriptions.push(\n      this.controlsHidden.isHidden.subscribe(this.onHideControls.bind(this))\n    );\n    this.subscriptions.push(\n      this.target.subscriptions.bufferDetected.subscribe((isBuffering) =>\n        this.onUpdateBuffer(isBuffering)\n      )\n    );\n  }\n\n  onUpdateBuffer(isBuffering) {\n    this.isBuffering = isBuffering;\n  }\n\n  onChangeFullscreen(fsState: boolean) {\n    if (this.fsAPI.nativeFullscreen) {\n      this.isNativeFullscreen = fsState;\n    }\n  }\n\n  onHideControls(hidden: boolean) {\n    if (this.vgSkipIfControlsHidden && this.areControlsHidden != hidden) {\n      this.areControlsHiddenChangeTime = Date.now();\n    }\n    this.areControlsHidden = hidden;\n\n  }\n\n  @HostListener('click')\n  onClick() {\n    if (this.vgSkipIfControlsHidden && (this.areControlsHidden || (Date.now() - this.areControlsHiddenChangeTime) < this.vgSkipIfControlsHiddenDelay * 1000)) {\n      return;\n    }\n\n    const state = this.getState();\n\n    switch (state) {\n      case VgStates.VG_PLAYING:\n        this.target.pause();\n        break;\n\n      case VgStates.VG_PAUSED:\n      case VgStates.VG_ENDED:\n        this.target.play();\n        break;\n    }\n  }\n\n  getState() {\n    let state = VgStates.VG_PAUSED;\n\n    if (this.target) {\n      if (this.target.state instanceof Array) {\n        for (let i = 0, l = this.target.state.length; i < l; i++) {\n          if (this.target.state[i] === VgStates.VG_PLAYING) {\n            state = VgStates.VG_PLAYING;\n            break;\n          }\n        }\n      } else {\n        state = this.target.state;\n      }\n    }\n\n    return state;\n  }\n\n  ngOnDestroy() {\n    this.subscriptions.forEach((s) => s.unsubscribe());\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VgOverlayPlayComponent } from './vg-overlay-play.component';\nimport { VgCoreModule } from '@videogular/ngx-videogular/core';\n\n@NgModule({\n  imports: [CommonModule, VgCoreModule],\n  declarations: [VgOverlayPlayComponent],\n  exports: [VgOverlayPlayComponent],\n})\nexport class VgOverlayPlayModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}