{"version":3,"file":"625.min.js?t=1743173738202","mappings":"2KAKe,MAAMA,EACnBC,iBAAmB,CACjBC,YAAa,gCACbC,UAAW,8BACXC,WAAY,+BACZC,aAAc,qCACdC,iBAAkB,8CAGpBL,cAAgB,CACdM,WAAY,YACZC,YAAa,aACbC,eAAgB,gBAChBC,gBAAiB,kBAGnBT,kBAAoB,CAClBU,mBAAoB,iBACpBC,kBAAmB,kBACnBC,mBAAoB,oBAGtBC,WAAAA,CAAYC,GACVC,KAAKD,QAAUA,EACfC,KAAKC,wBAA0BD,KAAKD,QAAQG,QAAQD,wBACpDD,KAAKG,UAAYH,KAAKD,QAAQG,QAAQC,UACtCH,KAAKI,SAAWC,EAAAA,EAASC,cACzBN,KAAKO,oBAAsBP,KAAKI,SAASG,oBAEzCP,KAAKQ,WACLR,KAAKS,cACP,CAKAD,QAAAA,GACMR,KAAKC,0BACPD,KAAKU,aAAeV,KAAKD,QAAQY,cAC/B3B,EAAS4B,UAAU1B,aAErBc,KAAKa,WAAab,KAAKD,QAAQY,cAAc3B,EAAS4B,UAAUzB,WAChEa,KAAKc,YAAcd,KAAKD,QAAQY,cAC9B3B,EAAS4B,UAAUxB,YAErBY,KAAKe,OAASf,KAAKD,QAAQiB,iBACzBhC,EAAS4B,UAAUvB,cAErBW,KAAKiB,QAAUjB,KAAKD,QAAQiB,iBAC1BhC,EAAS4B,UAAUtB,kBAGzB,CAKAmB,YAAAA,GACMT,KAAKC,yBACPD,KAAKU,cAAcQ,iBAAiB,QAASlB,KAAKmB,sBAEtD,CAKAC,YAAAA,GACMpB,KAAKC,yBACPD,KAAKU,cAAcW,oBACjB,QACArB,KAAKmB,sBAGX,CAKAG,qBAAuBA,KACrBtB,KAAKe,OAAOQ,SAASC,IACnBxB,KAAKO,oBAAoBkB,KAAKzC,EAAS0C,OAAOlC,YAAa,CACzDmC,QAASH,EAAMI,IACf,IAGJ5B,KAAKiB,QAAQM,SAASM,IACpB7B,KAAKO,oBAAoBkB,KAAKzC,EAAS0C,OAAOhC,gBAAiB,CAC7DoC,SAAUD,EAAOD,IACjB,IAGJ5B,KAAKG,WAAY,EACjBH,KAAKD,QAAQG,QAAQC,WAAY,EACjCH,KAAKU,aAAaqB,aAAa/C,EAASgD,WAAWrC,oBAAoB,GAEvEK,KAAKU,aAAaqB,aAChB,aACA/B,KAAKU,aAAaR,QAAQ+B,WAE5BjC,KAAKc,YAAYoB,MAAMC,QAAU,OACjCnC,KAAKa,WAAWqB,MAAMC,QAAU,MAAM,EAMxCC,oBAAsBA,KAEpBpC,KAAKe,OAAOQ,SAASC,IACnBxB,KAAKO,oBAAoBkB,KAAKzC,EAAS0C,OAAOnC,WAAY,CACxDoC,QAASH,EAAMI,IACf,IAGJ5B,KAAKiB,QAAQM,SAASM,IACpB7B,KAAKO,oBAAoBkB,KAAKzC,EAAS0C,OAAOjC,eAAgB,CAC5DqC,SAAUD,EAAOD,IACjB,IAGJ5B,KAAKG,WAAY,EACjBH,KAAKD,QAAQG,QAAQC,WAAY,EACjCH,KAAKU,aAAaqB,aAChB/C,EAASgD,WAAWrC,oBACpB,GAEFK,KAAKU,aAAaqB,aAChB,aACA/B,KAAKU,aAAaR,QAAQmC,YAE5BrC,KAAKc,YAAYoB,MAAMC,QAAU,OACjCnC,KAAKa,WAAWqB,MAAMC,QAAU,MAAM,EAMxChB,sBAAwBA,KAClBnB,KAAKG,UACPH,KAAKsB,uBAELtB,KAAKoC,qBACP,E","sources":["webpack://@hero-digital/masonite/./src/components/modules/TileGrid/TileGrid.js"],"sourcesContent":["import Services from 'services'\n\n/**\n * TileGrid component\n */\nexport default class TileGrid {\n static SELECTORS = {\n PLAY_BUTTON: '[data-cmp-hook=\"play-button\"]',\n PLAY_ICON: '[data-cmp-hook=\"play-icon\"]',\n PAUSE_ICON: '[data-cmp-hook=\"pause-icon\"]',\n VIDEO_PLAYER: '[data-video-player=\"video-player\"]',\n LOTTIE_ANIMATION: '[data-lottie-animation=\"lottie-animation\"]'\n }\n\n static EVENTS = {\n PLAY_VIDEO: 'playVideo',\n PAUSE_VIDEO: 'pauseVideo',\n PLAY_ANIMATION: 'playAnimation',\n PAUSE_ANIMATION: 'pauseAnimation'\n }\n\n static ATTRIBUTES = {\n PLAY_BUTTON_STATUS: 'data-is-paused',\n PLAY_BUTTON_LABEL: 'data-play-label',\n PAUSE_BUTTON_LABEL: 'data-pause-label'\n }\n\n constructor(element) {\n this.element = element\n this.includesAnimatedContent = this.element.dataset.includesAnimatedContent\n this.isPlaying = this.element.dataset.isPlaying\n this.services = Services.getInstance()\n this.EventEmitterService = this.services.EventEmitterService\n\n this.cacheDom()\n this.attachEvents()\n }\n\n /**\n * Cache DOM elements\n */\n cacheDom() {\n if (this.includesAnimatedContent) {\n this.playButtonEl = this.element.querySelector(\n TileGrid.SELECTORS.PLAY_BUTTON\n )\n this.playIconEl = this.element.querySelector(TileGrid.SELECTORS.PLAY_ICON)\n this.pauseIconEl = this.element.querySelector(\n TileGrid.SELECTORS.PAUSE_ICON\n )\n this.videos = this.element.querySelectorAll(\n TileGrid.SELECTORS.VIDEO_PLAYER\n )\n this.lotties = this.element.querySelectorAll(\n TileGrid.SELECTORS.LOTTIE_ANIMATION\n )\n }\n }\n\n /**\n * Add event listeners\n */\n attachEvents() {\n if (this.includesAnimatedContent) {\n this.playButtonEl?.addEventListener('click', this.toggleAnimatedContent)\n }\n }\n\n /**\n * Remove event listeners\n */\n removeEvents() {\n if (this.includesAnimatedContent) {\n this.playButtonEl?.removeEventListener(\n 'click',\n this.toggleAnimatedContent\n )\n }\n }\n\n /**\n * Pause all animated content\n */\n pauseAnimatedContent = () => {\n this.videos.forEach((video) => {\n this.EventEmitterService.emit(TileGrid.EVENTS.PAUSE_VIDEO, {\n videoId: video.id\n })\n })\n\n this.lotties.forEach((lottie) => {\n this.EventEmitterService.emit(TileGrid.EVENTS.PAUSE_ANIMATION, {\n lottieId: lottie.id\n })\n })\n\n this.isPlaying = false\n this.element.dataset.isPlaying = false\n this.playButtonEl.setAttribute(TileGrid.ATTRIBUTES.PLAY_BUTTON_STATUS, true)\n\n this.playButtonEl.setAttribute(\n 'aria-label',\n this.playButtonEl.dataset.playLabel\n )\n this.pauseIconEl.style.display = 'none'\n this.playIconEl.style.display = 'flex'\n }\n\n /**\n * Play all animated content\n */\n playAnimatedContent = () => {\n // Play all element videos\n this.videos.forEach((video) => {\n this.EventEmitterService.emit(TileGrid.EVENTS.PLAY_VIDEO, {\n videoId: video.id\n })\n })\n\n this.lotties.forEach((lottie) => {\n this.EventEmitterService.emit(TileGrid.EVENTS.PLAY_ANIMATION, {\n lottieId: lottie.id\n })\n })\n\n this.isPlaying = true\n this.element.dataset.isPlaying = true\n this.playButtonEl.setAttribute(\n TileGrid.ATTRIBUTES.PLAY_BUTTON_STATUS,\n false\n )\n this.playButtonEl.setAttribute(\n 'aria-label',\n this.playButtonEl.dataset.pauseLabel\n )\n this.pauseIconEl.style.display = 'flex'\n this.playIconEl.style.display = 'none'\n }\n\n /**\n * Toggle animated content play/pause\n */\n toggleAnimatedContent = () => {\n if (this.isPlaying) {\n this.pauseAnimatedContent()\n } else {\n this.playAnimatedContent()\n }\n }\n}\n"],"names":["TileGrid","static","PLAY_BUTTON","PLAY_ICON","PAUSE_ICON","VIDEO_PLAYER","LOTTIE_ANIMATION","PLAY_VIDEO","PAUSE_VIDEO","PLAY_ANIMATION","PAUSE_ANIMATION","PLAY_BUTTON_STATUS","PLAY_BUTTON_LABEL","PAUSE_BUTTON_LABEL","constructor","element","this","includesAnimatedContent","dataset","isPlaying","services","Services","getInstance","EventEmitterService","cacheDom","attachEvents","playButtonEl","querySelector","SELECTORS","playIconEl","pauseIconEl","videos","querySelectorAll","lotties","addEventListener","toggleAnimatedContent","removeEvents","removeEventListener","pauseAnimatedContent","forEach","video","emit","EVENTS","videoId","id","lottie","lottieId","setAttribute","ATTRIBUTES","playLabel","style","display","playAnimatedContent","pauseLabel"],"sourceRoot":""}