{"version":3,"file":"./modules/ImageContentPart.xxxxxxxx.js","mappings":"+HAAA,MAAMA,EAAiB,mCAER,MAAMC,EAIjB,YAAOC,CAAMC,EAAmBH,GAC5BI,MAAMC,KAAKC,SAASC,iBAAiBJ,IAAWK,QAAQC,IAAuBA,EAAKC,QAAQC,oBAAmBC,SAASC,IACpH,IAAIZ,EAAiBY,GACrBA,EAAQH,QAAQC,kBAAoB,MAAM,GAElD,CAEA,WAAAG,CAAmBD,GAAA,KAAAA,QAAAA,EACfE,KAAKC,YAEDD,KAAKE,oBAAoBF,KAAKG,kBACtC,CAEQ,gBAAAD,GACJ,MAAME,IAAmBJ,KAAKF,QAAQO,QAAQ,kCACxCC,IAAiBN,KAAKF,QAAQO,QAAQ,cAE5C,OAAOD,IAAqBE,CAChC,CAEQ,gBAAAH,G,MAC6B,QAAjC,EAAAH,KAAKF,QAAQS,cAAc,cAAM,SAAEC,UAAUC,IAAI,YACrD,CAEQ,SAAAR,G,QAEJ,GADAD,KAAKU,aAAeV,KAAKF,QAAQS,cAAc,UAC1CP,KAAKU,aAAc,OAExBV,KAAKU,aAAaC,iBAAiB,QAAQ,IAAMX,KAAKY,gBAEtDZ,KAAKa,aAAeb,KAAKF,QAAQS,cAAc,uBAE3CP,KAAKU,aAAaI,QAAUd,KAAKa,cAAcb,KAAKe,oBAEvC,QAAjB,EAAAf,KAAKa,oBAAY,SAAEF,iBAAiB,SAAS,IAAMX,KAAKU,aAAaM,SAE9CC,SAELjB,KAAKU,cAFkBQ,YAAc,IAAMD,EAAMH,SAAWG,EAAME,OAASF,EAAMG,WAAa,IAG3F,QAAjB,EAAApB,KAAKU,oBAAY,SAAEC,iBAAiB,SAAS,IAAMX,KAAKqB,cACxDrB,KAAKU,aAAaC,iBAAiB,SAAS,IAAMX,KAAKsB,gBAE/D,CAEQ,iBAAAP,G,MACa,QAAjB,EAAAf,KAAKU,oBAAY,SAAEC,iBAAiB,SAAS,IAAMX,KAAKqB,cACxDrB,KAAKU,aAAaC,iBAAiB,SAAS,IAAMX,KAAKsB,gBAEvDtB,KAAKsB,aACT,CAEQ,WAAAA,G,MACa,QAAjB,EAAAtB,KAAKa,oBAAY,SAAEL,UAAUC,IAAI,2BACrC,CAEQ,WAAAG,G,MACa,QAAjB,EAAAZ,KAAKa,oBAAY,SAAEL,UAAUe,OAAO,2BACxC,CAEQ,SAAAF,GACJrB,KAAKU,aAAaI,OAASd,KAAKwB,YAAcxB,KAAKyB,YACvD,CAEQ,UAAAA,GACJzB,KAAKU,aAAagB,QAClB1B,KAAKsB,aACT,CAEQ,SAAAE,GACJxB,KAAKU,aAAaM,MACtB,EAgBA9B,EAAiBC,MAAMF,E","sources":["webpack:///./modules/ImageContentPart.ts"],"sourcesContent":["const moduleSelector = '[data-module=\"ImageContentPart\"]';\r\n\r\nexport default class ImageContentPart {\r\n private videoPlayBtn: Element;\r\n private videoElement: HTMLVideoElement;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new ImageContentPart(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.initVideo();\r\n\r\n if (this.isVideoFullWidth()) this.hideImageElement();\r\n }\r\n\r\n private isVideoFullWidth(): boolean {\r\n const hasFullWidthConf = this.element.closest('.nx-u-full-content-media-width') ? true : false;\r\n const isInsideSlider = this.element.closest('.tns-inner') ? true : false;\r\n\r\n return hasFullWidthConf && !isInsideSlider;\r\n }\r\n\r\n private hideImageElement() {\r\n this.element.querySelector('img')?.classList.add(\"nx-hidden\");\r\n }\r\n\r\n private initVideo() {\r\n this.videoElement = this.element.querySelector('video') as HTMLVideoElement;\r\n if (!this.videoElement) return;\r\n\r\n this.videoElement.addEventListener('play', () => this.hidePlayBtn());\r\n\r\n this.videoPlayBtn = this.element.querySelector('.nx-video__btn-play');\r\n \r\n if (this.videoElement.paused && this.videoPlayBtn) this.initVideoControls();\r\n\r\n this.videoPlayBtn?.addEventListener(\"click\", () => this.videoElement.play());\r\n \r\n const isVideoPlaying = video => !!(video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2);\r\n \r\n if(isVideoPlaying(this.videoElement)){\r\n this.videoElement?.addEventListener('click', () => this.playPause());\r\n this.videoElement.addEventListener('pause', () => this.showPlayBtn());\r\n }\r\n }\r\n\r\n private initVideoControls() {\r\n this.videoElement?.addEventListener('click', () => this.playPause());\r\n this.videoElement.addEventListener('pause', () => this.showPlayBtn());\r\n\r\n this.showPlayBtn();\r\n }\r\n\r\n private showPlayBtn() {\r\n this.videoPlayBtn?.classList.add('nx-video__btn-play--show');\r\n }\r\n\r\n private hidePlayBtn() {\r\n this.videoPlayBtn?.classList.remove('nx-video__btn-play--show');\r\n }\r\n\r\n private playPause() {\r\n this.videoElement.paused ? this.playVideo() : this.pauseVideo();\r\n }\r\n\r\n private pauseVideo() {\r\n this.videoElement.pause();\r\n this.showPlayBtn();\r\n }\r\n\r\n private playVideo() {\r\n this.videoElement.play();\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n ImageContentPart.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n ImageContentPart.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n ImageContentPart.setup(moduleSelector);\r\n}"],"names":["moduleSelector","ImageContentPart","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","constructor","this","initVideo","isVideoFullWidth","hideImageElement","hasFullWidthConf","closest","isInsideSlider","querySelector","classList","add","videoElement","addEventListener","hidePlayBtn","videoPlayBtn","paused","initVideoControls","play","video","currentTime","ended","readyState","playPause","showPlayBtn","remove","playVideo","pauseVideo","pause"],"sourceRoot":""}