{"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":""}