{"version":3,"file":"static/js/3200.6a63c2fa.chunk.js","mappings":"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","sources":["shared/impression-hero-block/impression-hero-block-component.jsx","shared/impression-hero-block/impression-hero-block-module.jsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from \"react\"\nimport ReactHtmlParser from \"react-html-parser\"\nimport * as SelectionFactoryHelper from \"../helpers/SelectionFactoryHelper\"\nimport Svg from \"../_svgs/svg\"\n\nexport default function ImpressionHeroBlockComponent({ icon, video, image, title, introText, label, bottomPadding, topPadding, background }) {\n const iconSrc = SelectionFactoryHelper.getFromSelectionFactory(icon)\n const backgroundColor = SelectionFactoryHelper.getFromSelectionFactory(background)\n\n const videoExists = video ? true : false\n //if we dont end up using a hook, just remove it.\n const [showBackgroundVideo, setShowBackgroundVideo] = useState(true)\n const bgVideoRef = useRef(null)\n const isFirstRender = useRef(true)\n const tp = SelectionFactoryHelper.getFromSelectionFactory(topPadding)\n const bp = SelectionFactoryHelper.getFromSelectionFactory(bottomPadding)\n\n useEffect(() => {\n if (videoExists) {\n const bgVideo = bgVideoRef.current\n\n const playBgVideo = () => {\n bgVideo.currentTime = 0\n bgVideo\n .play()\n .then(() => {})\n .catch((error) => {\n console.error(\"Playback failed: \", error)\n })\n }\n\n const handleCanPlay = () => {\n if (bgVideo.readyState >= 4) {\n playBgVideo()\n bgVideo.removeEventListener(\"canplaythrough\", handleCanPlay)\n }\n }\n\n bgVideo.addEventListener(\"canplaythrough\", handleCanPlay)\n\n bgVideo.load()\n\n // Cleanup function to remove event listener\n return () => {\n bgVideo.removeEventListener(\"canplaythrough\", handleCanPlay)\n }\n }\n }, [])\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false\n return\n }\n if (videoExists) {\n const bgVideo = bgVideoRef.current\n\n const resetAndPlayBgVideo = () => {\n bgVideo.pause()\n bgVideo.currentTime = 0\n bgVideo\n .play()\n .then(() => {})\n .catch((error) => {\n console.error(\"Playback failed: \", error)\n })\n bgVideo.removeEventListener(\"canplaythrough\", resetAndPlayBgVideo)\n }\n\n if (bgVideo) {\n if (bgVideo.readyState >= 4) {\n resetAndPlayBgVideo()\n } else {\n bgVideo.addEventListener(\"canplaythrough\", resetAndPlayBgVideo)\n }\n }\n\n // Cleanup function to remove event listener\n return () => {\n if (bgVideo) {\n bgVideo.removeEventListener(\"canplaythrough\", resetAndPlayBgVideo)\n }\n }\n }\n }, [showBackgroundVideo])\n\n return (\n <div className={`impression-hero-block-container ${tp ? tp : \"\"} ${bp ? bp : \"\"} ${background && background[0] ? background[0]?.value : \"\"}`}>\n <div className={\"w--wider\"}>\n {videoExists ? (\n <div className=\"video-wrapper\">\n <video\n className=\"background-video\"\n ref={bgVideoRef}\n data-epi-property=\"Video\"\n loop\n muted\n playsInline\n preload={\"auto\"}\n loading=\"eager\"\n fetchPriority=\"high\"\n id={\"videoHero\"}\n src={video}\n >\n <source media=\"(max-width:767px)\" src={video} />\n </video>\n </div>\n ) : (\n <picture className=\"background-pic\">\n <source media=\"(max-width:767px)\" srcSet={image} />\n <img src={image} data-epi-property=\"Image\" id={\"imgHero\"} />\n </picture>\n )}\n <div className=\"text-layer\">\n <div className=\"content\">\n <Svg iconName={iconSrc} fillColor={\"none\"} stroke={\"#071143\"} />\n <div className=\"category\">{label}</div>\n <div data-epi-property=\"Title\" className=\"rich-text\">\n {ReactHtmlParser(title)}\n {ReactHtmlParser(introText)}\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport ImpressionHeroBlockComponent from \"./impression-hero-block-component\"\n\nexport default class ImpressionHeroBlock {\n constructor(elem) {\n const self = this\n self.elem = elem\n self.modelJson = elem.dataset.modelJson && JSON.parse(elem.dataset.modelJson)\n self.init()\n return self\n }\n\n init() {\n const self = this\n ReactDOM.unmountComponentAtNode(self.elem)\n ReactDOM.render(<ImpressionHeroBlockComponent {...this.modelJson} />, self.elem)\n }\n}\n"],"names":["ImpressionHeroBlockComponent","_ref","_background$","icon","video","image","title","introText","label","bottomPadding","topPadding","background","iconSrc","SelectionFactoryHelper","videoExists","_useState","useState","_useState2","_slicedToArray","showBackgroundVideo","bgVideoRef","useRef","isFirstRender","tp","bp","useEffect","bgVideo","current","handleCanPlay","readyState","currentTime","play","then","catch","error","console","removeEventListener","addEventListener","load","resetAndPlayBgVideo","pause","_jsx","className","concat","value","children","_jsxs","ref","loop","muted","playsInline","preload","loading","fetchPriority","id","src","media","srcSet","Svg","iconName","fillColor","stroke","ReactHtmlParser","ImpressionHeroBlock","_createClass","elem","_classCallCheck","self","this","modelJson","dataset","JSON","parse","init","key","ReactDOM","_objectSpread"],"sourceRoot":""}