{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/components/videoButton.ts"],"names":["VideoButton","Component","el","__publicField","background","_a","modal","__async","_b","_c","_d","_e","_f","_g","VidyardEmbed","isPlaying"],"mappings":"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","file":"scripts/2725.dab946e75b03ce3d25bf.js","sourcesContent":["import { Component } from '@verndale/core';\nimport VidyardEmbed from '@vidyard/embed-code';\n\ntype VidyardPlayer = {\n  on: (event: string, cb: () => void) => void;\n  showLightbox: () => void;\n  setVolume: (newVolume: number) => void;\n  play: () => void;\n  pause: () => void;\n};\n\nclass VideoButton extends Component {\n  private player: VidyardPlayer | null = null;\n  private isPlaying = false;\n  private isLoaded = false;\n  private lightbox = 'false';\n  private uuid = '';\n\n  constructor(el: HTMLElement) {\n    super(el);\n    const { background } = this.el.dataset;\n    this.lightbox = this.el.dataset.lightbox || 'false';\n    this.uuid = (this.dom.image as HTMLElement).dataset.uuid || '';\n\n    if (background === 'true') {\n      this.loadPlayer(background);\n    }\n    if (this.lightbox === 'true') {\n      (this.dom.image as HTMLElement).removeAttribute('data-uuid');\n      this.buildHTML();\n    }\n  }\n\n  setupDefaults() {\n    this.dom = {\n      body: document.querySelector<HTMLElement>('body'),\n      button: this.el.querySelector<HTMLElement>('.video-button__button'),\n      image: this.el.querySelector<HTMLElement>('.video-button__embed'),\n      title: this.el.querySelector<HTMLElement>('.video-button__title')\n    };\n  }\n\n  addListeners() {\n    if (this.dom.button) {\n      (this.dom.button as HTMLButtonElement).addEventListener(\n        'click',\n        this.handleButtonClick.bind(this)\n      );\n\n      if (this.dom.image) {\n        (this.dom.image as HTMLButtonElement).addEventListener(\n          'click',\n          this.handleButtonClick.bind(this)\n        );\n      }\n\n      if (this.dom.title) {\n        (this.dom.title as HTMLButtonElement).addEventListener(\n          'click',\n          this.handleButtonClick.bind(this)\n        );\n      }\n    }\n  }\n\n  buildHTML() {\n    document.querySelectorAll('.video-button__modal').forEach(modal => {\n      modal.remove();\n    });\n    this.dom.videoModal = document.createElement('div');\n    this.dom.videoModal.setAttribute('role', 'dialog');\n    this.dom.videoModal.setAttribute(\n      'aria-label',\n      (this.dom.title as HTMLElement)?.innerText || 'Video Modal'\n    );\n    this.dom.videoModal.classList.add('video-button__modal');\n    (this.dom.body as HTMLBodyElement).appendChild(this.dom.videoModal);\n  }\n\n  async loadPlayer(background?: string) {\n    if (this.lightbox === 'false')\n      this.player = await VidyardEmbed.api.renderPlayer(this.dom.image);\n    else if (this.lightbox === 'true') {\n      this.player = await VidyardEmbed.api.renderPlayer({\n        uuid: this.uuid,\n        container: this.dom.videoModal,\n        autoplay: '1',\n        type: 'lightbox'\n      });\n      this.player?.showLightbox();\n      this.player?.on('lightboxClose', () => {\n        this.handlePlayPause(false);\n      });\n    }\n    this.isLoaded = true;\n\n    if (background === 'true' || this.lightbox === 'true') {\n      if (background === 'true') this.player?.setVolume(0);\n      this.player?.on('play', () => {\n        this.handlePlayPause(true);\n      });\n      this.player?.on('pause', () => {\n        this.handlePlayPause(false);\n      });\n    } else {\n      this.el.dataset.inlineVideoLoaded = 'true';\n    }\n    this.player?.on('play', () => {\n      this.handlePlayPause(true);\n    });\n\n    this.player?.play();\n  }\n\n  handleButtonClick() {\n    if (!this.isLoaded) {\n      this.loadPlayer();\n    } else if (this.isPlaying) {\n      this.player?.pause();\n    } else {\n      if (this.lightbox === 'true') this.player?.showLightbox();\n      this.player?.play();\n    }\n  }\n\n  handlePlayPause(isPlaying: boolean) {\n    this.isPlaying = isPlaying;\n    this.el.dataset.isPlaying = `${isPlaying}`;\n  }\n}\n\nexport default VideoButton;\n"],"sourceRoot":""}