{"version":3,"file":"308.min.js?t=1743173738202","mappings":"2KAEe,MAAMA,EACnBC,iBAAmB,CACjBC,QAAS,yCACTC,OAAQ,wCACRC,MAAO,SAGTH,eAAiB,CACfI,OAAQ,qCAGVJ,cAAgB,CACdK,KAAM,YACNC,MAAO,aACPC,KAAM,aAGRC,WAAAA,CAAYC,GACVC,KAAKD,QAAUA,EACfC,KAAKC,SAAWC,EAAAA,EAASC,cACzBH,KAAKI,oBAAsBJ,KAAKC,SAASG,oBAEzCJ,KAAKK,QAAS,EAEdL,KAAKM,WACLN,KAAKO,MACP,CAKAD,QAAAA,GACEN,KAAKQ,SAAWR,KAAKD,QAAQU,cAAcpB,EAAYqB,UAAUlB,QACjEQ,KAAKW,UAAYX,KAAKD,QAAQU,cAAcpB,EAAYqB,UAAUnB,SAClES,KAAKY,MAAQZ,KAAKD,QAAQU,cAAcpB,EAAYqB,UAAUjB,MAChE,CAKAc,IAAAA,GACEP,KAAKK,OAA0C,SAAjCL,KAAKQ,SAASK,QAAQR,OAEhCL,KAAKK,QACPL,KAAKc,cAET,CAKAA,YAAAA,GACEd,KAAKI,oBAAoBW,GAAG1B,EAAY2B,OAAOrB,KAAMK,KAAKiB,aAC1DjB,KAAKI,oBAAoBW,GAAG1B,EAAY2B,OAAOpB,MAAOI,KAAKkB,aAC3DlB,KAAKI,oBAAoBW,GAAG1B,EAAY2B,OAAOnB,KAAMG,KAAKkB,YAC5D,CAKAC,YAAAA,GACEnB,KAAKI,oBAAoBgB,IAAI/B,EAAY2B,OAAOrB,KAAMK,KAAKiB,aAC3DjB,KAAKI,oBAAoBgB,IAAI/B,EAAY2B,OAAOpB,MAAOI,KAAKkB,aAC5DlB,KAAKI,oBAAoBgB,IAAI/B,EAAY2B,OAAOnB,KAAMG,KAAKkB,YAC7D,CAKAG,OAAAA,GACMrB,KAAKK,QACPL,KAAKmB,cAET,CAKAF,YAAeK,IACb,MAAM,QAAEC,GAAYD,GAAS,CAAC,EAE1BC,GAAWA,IAAYvB,KAAKY,MAAMY,IACpCxB,KAAKW,UAAUc,UAAUC,IAAIrC,EAAYsC,QAAQjC,OACnD,EAMFwB,YAAeI,IACb,MAAM,QAAEC,GAAYD,GAAS,CAAC,EAE1BC,GAAWA,IAAYvB,KAAKY,MAAMY,IACpCxB,KAAKW,UAAUc,UAAUG,OAAOvC,EAAYsC,QAAQjC,OACtD,E","sources":["webpack://@hero-digital/masonite/./src/components/modules/VideoPoster/VideoPoster.js"],"sourcesContent":["import Services from 'services'\n\nexport default class VideoPoster {\n  static SELECTORS = {\n    CAPTION: '[data-cmp-hook=\"video-poster-caption\"]',\n    FIGURE: '[data-cmp-hook=\"video-poster-figure\"]',\n    VIDEO: 'video'\n  }\n\n  static CLASSES = {\n    HIDDEN: 'mod-video-poster__caption--hidden'\n  }\n\n  static EVENTS = {\n    PLAY: 'videoPlay',\n    PAUSE: 'videoPause',\n    STOP: 'videoStop'\n  }\n\n  constructor(element) {\n    this.element = element\n    this.services = Services.getInstance()\n    this.EventEmitterService = this.services.EventEmitterService\n\n    this.inline = false\n\n    this.cacheDom()\n    this.init()\n  }\n\n  /**\n   * Cache DOM elements\n   */\n  cacheDom() {\n    this.figureEl = this.element.querySelector(VideoPoster.SELECTORS.FIGURE)\n    this.captionEl = this.element.querySelector(VideoPoster.SELECTORS.CAPTION)\n    this.video = this.element.querySelector(VideoPoster.SELECTORS.VIDEO)\n  }\n\n  /**\n   * Initialize the component\n   */\n  init() {\n    this.inline = this.figureEl.dataset.inline === 'true'\n\n    if (this.inline) {\n      this.attachEvents()\n    }\n  }\n\n  /**\n   * Add event listeners\n   */\n  attachEvents() {\n    this.EventEmitterService.on(VideoPoster.EVENTS.PLAY, this.hideCaption)\n    this.EventEmitterService.on(VideoPoster.EVENTS.PAUSE, this.showCaption)\n    this.EventEmitterService.on(VideoPoster.EVENTS.STOP, this.showCaption)\n  }\n\n  /**\n   * Remove events\n   */\n  removeEvents() {\n    this.EventEmitterService.off(VideoPoster.EVENTS.PLAY, this.hideCaption)\n    this.EventEmitterService.off(VideoPoster.EVENTS.PAUSE, this.showCaption)\n    this.EventEmitterService.off(VideoPoster.EVENTS.STOP, this.showCaption)\n  }\n\n  /**\n   * Destroy the component\n   */\n  destroy() {\n    if (this.inline) {\n      this.removeEvents()\n    }\n  }\n\n  /**\n   * Hide the caption\n   */\n  hideCaption = (event) => {\n    const { videoId } = event || {}\n\n    if (videoId && videoId === this.video.id) {\n      this.captionEl.classList.add(VideoPoster.CLASSES.HIDDEN)\n    }\n  }\n\n  /**\n   * Show the caption\n   */\n  showCaption = (event) => {\n    const { videoId } = event || {}\n\n    if (videoId && videoId === this.video.id) {\n      this.captionEl.classList.remove(VideoPoster.CLASSES.HIDDEN)\n    }\n  }\n}\n"],"names":["VideoPoster","static","CAPTION","FIGURE","VIDEO","HIDDEN","PLAY","PAUSE","STOP","constructor","element","this","services","Services","getInstance","EventEmitterService","inline","cacheDom","init","figureEl","querySelector","SELECTORS","captionEl","video","dataset","attachEvents","on","EVENTS","hideCaption","showCaption","removeEvents","off","destroy","event","videoId","id","classList","add","CLASSES","remove"],"sourceRoot":""}