{"version":3,"sources":["styles/Banner.module.scss","containers/helpers/Countdown.js","components/PromotionalBanner.tsx","utils/imageLoader.js","containers/helpers/ParallaxImage.js","containers/helpers/genericBanner.js","styles/Countdown.module.scss"],"names":["module","exports","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","Countdown","props","x","dispatch","useDispatch","prompt","saleTimeRemaining","_useState","useState","_useState2","_slicedToArray","days","setDays","_useState3","_useState4","hours","setHours","_useState5","_useState6","minutes","setMinutes","_useState7","_useState8","seconds","setSeconds","_useState9","_useState10","salePrompt","setSalePrompt","_onLoad","_asyncToGenerator","_callee","countDownDate","_context","Date","getTime","setInterval","now","distance","Math","floor","clearInterval","fetchSale","apply","arguments","useEffect","onLoad","React","createElement","Fragment","className","styles","saleText","countdownContainer","timerWrapper","countdownWrapper","countdownNumber","countdownLabel","href","target","rel","saleTerms","BannerAssetKeys","getAsString","val","defaultVal","getAsBool","undefined","isTrue","toLowerCase","isFalse","PromotionalBanner","_ref","router","placement","parallax","campaign","useSelector","getCurrentHouseAdCampaignSelector","fetchHouseAdCampaign","assetMap","assets","_step","map","_iterator","_createForOfIteratorHelper","asset","assetKey","content","err","mapAssets","desktopImageUrl","banner","mobileImageUrl","mobile_banner","clickUrl","url","mobileClickUrl","mobile_url","showCountdown","showSaleCountdown","saleCountdownPrompt","timerBreakpoints","saleCountdownEndDates","timer24HrMax","saleCountdown24HrMax","endDate","upcomingEndDate","csv","upcomingDates","split","filter","row","console","log","findUpcomingEndDateInCSV","timeRemaining","external","startsWith","Banner","desktopImage","mobileImage","redirectURL","mobileRedirectURL","mobileBreakpoint","bannerStyle","width","position","useProgressiveImg","lowQualitySrc","highQualitySrc","_React$useState","_React$useState2","src","setSrc","image","Image","onload","blur","ParallaxImage","lowResDesktopImage","responsiveImage","alt","_useProgressiveImg","_useProgressiveImg2","ref","useRef","handler","window","addEventListener","removeEventListener","useScrollHandler","current","style","transform","concat","pageYOffset","parallaxContainer","paddingTop","transition","noRedirect","innerWidth","windowWidth","setWindowWidth","isDesktop","deviceSpecificRedirectURL","link","document","as","head","appendChild","preloadAsset","handleWindowResize","bannerNoRedirect","onClick","preventDefault","dataLayer","open","history","isBrowser","assign","children"],"mappings":"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","file":"static/js/3.413cbbf3.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonShared\":\"Banner_buttonShared__WAXOF\",\"buttonVerticalGradientOrangeYellow\":\"Banner_buttonVerticalGradientOrangeYellow__18ScE\",\"buttonVerticalGradientOrange\":\"Banner_buttonVerticalGradientOrange__kpduW\",\"buttonReglarDarkGrey\":\"Banner_buttonReglarDarkGrey__1nHM6\",\"buttonReglarGrey\":\"Banner_buttonReglarGrey__1HDhL\",\"buttonGradientOrange\":\"Banner_buttonGradientOrange__1CPp8\",\"buttonRegularYellow\":\"Banner_buttonRegularYellow__1rQM9\",\"buttonRegularOrange\":\"Banner_buttonRegularOrange__3YPKs\",\"buttonGhost\":\"Banner_buttonGhost__17MA6\",\"buttonGhostDisabled\":\"Banner_buttonGhostDisabled__3Ra-g\",\"buttonGhostGreen\":\"Banner_buttonGhostGreen__1VDCn\",\"buttonGhostGradientOrange\":\"Banner_buttonGhostGradientOrange__1eTuT\",\"buttonGhostOrange\":\"Banner_buttonGhostOrange__2Lxs-\",\"buttonGhostDarkBlue\":\"Banner_buttonGhostDarkBlue__2EqmY\",\"buttonGhostBlue\":\"Banner_buttonGhostBlue__7L9Sv\",\"buttonGhostGrey\":\"Banner_buttonGhostGrey__6xJ3V\",\"buttonDisabled\":\"Banner_buttonDisabled__2kOz6\",\"clientLoginText\":\"Banner_clientLoginText__3QEgI\",\"returnToSignIn\":\"Banner_returnToSignIn__1LK3Q\",\"error\":\"Banner_error__1hSyC\",\"link\":\"Banner_link__24uPJ\",\"arrow\":\"Banner_arrow__3NEr4\",\"signOut\":\"Banner_signOut__1gOGC\",\"signOutText\":\"Banner_signOutText__2_Qp6\",\"banner\":\"Banner_banner__3EMFT\",\"bannerNoRedirect\":\"Banner_bannerNoRedirect__1z2EH\",\"parallaxContainer\":\"Banner_parallaxContainer__1GbZW\",\"parallax\":\"Banner_parallax__2DnxU\"};","import React, { useState, useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport styles from \"../../styles/Countdown.module.scss\";\nimport { fetchSale } from \"../../actions/sale\";\n\nexport default function Countdown(props) {\n const dispatch = useDispatch();\n const { prompt, saleTimeRemaining } = props;\n\n const [days, setDays] = useState(-1);\n const [hours, setHours] = useState(-1);\n const [minutes, setMinutes] = useState(-1);\n const [seconds, setSeconds] = useState(-1);\n // const [nextSaleCycle, setNextSaleCycle] = useState(couponData.futureSales.length > 0 ? couponData.futureSales[0].saleEnd : 0)\n const [salePrompt, setSalePrompt] = useState(\"\");\n let x;\n\n async function onLoad() {\n if (saleTimeRemaining !== 0) {\n const countDownDate = saleTimeRemaining + new Date().getTime();\n\n // Update the count down every 1 second\n x = setInterval(function () {\n // Get today's date and time\n const now = new Date().getTime();\n\n // Find the distance between now and the count down date\n const distance = countDownDate - now;\n\n // Time calculations for days, hours, minutes and seconds\n setDays(Math.floor(distance / (1000 * 60 * 60 * 24)));\n setHours(\n Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\n );\n setMinutes(Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)));\n setSeconds(Math.floor((distance % (1000 * 60)) / 1000));\n\n if (distance < 0) {\n // clears the previous interval, will set a new one if applicable.\n clearInterval(x);\n dispatch(fetchSale(true));\n\n // if(nextSaleCycle !== 0){\n // onLoad(nextSaleCycle)\n // setSalePrompt(couponData.futureSales[0].saleAssets.prompt)\n // checkForSales()\n // }else{\n // setShowSaleUI(false)\n // }\n }\n }, 1000);\n }\n }\n\n useEffect(() => {\n onLoad();\n return () => clearInterval(x); //eslint-disable-next-line\n }, [saleTimeRemaining]);\n\n useEffect(() => {\n setSalePrompt(prompt); //eslint-disable-next-line\n }, [prompt]);\n\n return (\n <>\n
{salePrompt}
\n
\n
\n
\n \n {days >= 0 ? days : \"-\"}\n \n \n {days === 1 ? \"Day\" : \"Days\"}\n \n
\n
\n \n {hours >= 0 ? hours : \"-\"}\n \n \n {hours === 1 ? \"Hour\" : \"Hours\"}\n \n
\n
\n \n {minutes >= 0 ? minutes : \"-\"}\n \n \n {minutes === 1 ? \"Minute\" : \"Minutes\"}\n \n
\n
\n \n {seconds >= 0 ? seconds : \"-\"}\n \n \n {seconds === 1 ? \"Second\" : \"Seconds\"}\n \n
\n
\n
\n \n Terms of service\n \n \n );\n}\n","import React, { ReactElement, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchHouseAdCampaign } from \"../actions/sale\";\nimport Banner from \"../containers/helpers/genericBanner\";\nimport Countdown from \"../containers/helpers/Countdown\";\nimport { getCurrentHouseAdCampaignSelector } from \"../selectors/currentSaleData\";\n\nexport type Props = {\n router: any,\n placement: keyof bb.state.ISale[\"houseAdCampaign\"],\n parallax?: boolean\n}\n\nexport enum BannerAssetKeys {\n banner=\"banner\",\n mobile_banner=\"mobile_banner\",\n url=\"url\",\n mobile_url=\"mobile_url\",\n showSaleCountdown=\"showSaleCountdown\",\n saleCountdownPrompt=\"saleCountdownPrompt\",\n saleCountdownEndDates=\"saleCountdownEndDates\",\n saleCountdown24HrMax=\"saleCountdown24HrMax\",\n}\n\nexport function getAsString(val:string|undefined|null, defaultVal?:string):string|undefined {\n if (typeof val === \"string\") {\n return val\n }\n else {\n return defaultVal\n }\n}\n\nexport function mapAssets(assets:bb.model.sale.IHouseAdAsset[]):Record {\n const map = {} as Record\n\n for (let asset of assets) {\n if (asset.assetKey in BannerAssetKeys) {\n map[asset.assetKey as BannerAssetKeys] = asset.content\n }\n }\n\n return map\n}\n\n\nexport function getAsBool(val:string|undefined|null, defaultVal:boolean=false):boolean {\n if (typeof val === \"string\") {\n const isTrue = val.toLowerCase() === \"true\"\n const isFalse = val.toLowerCase() === \"false\"\n\n if (isTrue) {\n return true\n }\n else if (isFalse) {\n return false\n }\n else {\n throw new Error(\"Unexpected boolean string value: \"+val)\n }\n }\n else {\n return defaultVal\n }\n}\n\nfunction findUpcomingEndDateInCSV(csv:string):Date|null {\n const now = new Date()\n const rows = csv.split(\",\")\n const upcomingDates = rows.filter(row => {\n const date = new Date(row)\n return date.getTime() > now.getTime()\n })\n if (upcomingDates.length === 0) {\n console.log(\"No upcoming dates found in CSV: \"+csv)\n return null\n }\n return new Date(upcomingDates[0])\n}\n\nexport default function PromotionalBanner ({router, placement, parallax}:Props):ReactElement|null {\n const dispatch = useDispatch();\n const campaign = useSelector(getCurrentHouseAdCampaignSelector(placement));\n\n useEffect(() => {\n if (!campaign) {\n dispatch(fetchHouseAdCampaign(placement));\n }\n }, [campaign, dispatch, placement]);\n\n if (campaign === null) {\n return null;\n }\n\n const assetMap = mapAssets(campaign.assets)\n\n const desktopImageUrl = getAsString(assetMap.banner)\n const mobileImageUrl = getAsString(assetMap.mobile_banner)\n const clickUrl = getAsString(assetMap.url)\n const mobileClickUrl = getAsString(assetMap.mobile_url, clickUrl)\n const showCountdown = getAsBool(assetMap.showSaleCountdown)\n const prompt = getAsString(assetMap.saleCountdownPrompt)\n const timerBreakpoints = getAsString(assetMap.saleCountdownEndDates)\n const timer24HrMax = getAsBool(assetMap.saleCountdown24HrMax)\n\n let endDate = campaign.endDate\n if(timerBreakpoints) {\n const upcomingEndDate = findUpcomingEndDateInCSV(timerBreakpoints)\n if (upcomingEndDate) {\n endDate = upcomingEndDate\n }\n }\n let timeRemaining = endDate.getTime() - (new Date()).getTime()\n\n // if timeRemaining is more than 24 hours and timer24HrMax is true, set the days remaining to 0, \n // while keeping the hours/minutes/seconds so it looks like the sale ends that day\n if(timeRemaining > 24*60*60*1000 && timer24HrMax) {\n while(timeRemaining > 24*60*60*1000) {\n timeRemaining -= 24*60*60*1000\n }\n }\n\n const external = clickUrl?.startsWith(\"http\")\n\n return (\n \n {showCountdown && (\n \n )}\n \n )\n}\n","import React from \"react\";\n\nconst useProgressiveImg = (lowQualitySrc, highQualitySrc) => {\n const [src, setSrc] = React.useState(lowQualitySrc);\n\n React.useEffect(() => {\n setSrc(lowQualitySrc);\n\n const image = new Image();\n\n image.src = highQualitySrc;\n\n image.onload = () => {\n console.log(\"setting high res image\");\n setSrc(highQualitySrc);\n };\n }, [lowQualitySrc, highQualitySrc]);\n\n return [src, { blur: src === lowQualitySrc }];\n};\n\nexport default useProgressiveImg;\n","import React, { useEffect, useRef } from \"react\";\nimport useProgressiveImg from \"../../utils/imageLoader\";\nimport styles from \"../../styles/Banner.module.scss\";\n\nexport const ParallaxImage = (props) => {\n const {\n bannerStyle,\n lowResDesktopImage,\n responsiveImage,\n alt\n } = props;\n const [src, { blur }] = useProgressiveImg(\n lowResDesktopImage,\n responsiveImage\n );\n\n const ref = useRef();\n\n const useScrollHandler = (handler) => {\n useEffect(() => {\n window.addEventListener(\"scroll\", handler);\n return () => {\n window.removeEventListener(\"scroll\", handler);\n };\n });\n };\n\n const handler = () => {\n ref.current.style.transform = `translateY(${window.pageYOffset * 0.5}px)`;\n };\n useScrollHandler(handler);\n\n return (\n
\n \n
\n );\n};\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"../../styles/Banner.module.scss\";\nimport { isBrowser } from \"react-device-detect\";\nimport { ParallaxImage } from \"./ParallaxImage\";\n\nconst preloadAsset = (url) => {\n const link = document.createElement('link');\n link.rel = 'preload';\n link.as = 'image';\n link.href = url;\n document.head.appendChild(link);\n};\n\nconst Banner = (props) => {\n const {\n desktopImage,\n mobileImage,\n alt,\n redirectURL,\n mobileRedirectURL,\n external,\n bannerStyle,\n mobileBreakpoint,\n noRedirect,\n parallax,\n } = props;\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n // const imageUrl = windowWidth >= 650 ? desktopImage : mobileImage;\n const breakpoint = mobileBreakpoint ? mobileBreakpoint : 900;\n const isDesktop = windowWidth >= breakpoint\n const responsiveImage = isDesktop? desktopImage : mobileImage;\n // use the mobile click url if screensize is mobile and mobile click url is defined - otherwise just use desktop (OK if both are undefined)\n const deviceSpecificRedirectURL = isDesktop || mobileRedirectURL === undefined? redirectURL : mobileRedirectURL\n\n useEffect(() => {\n preloadAsset(responsiveImage);\n }, [responsiveImage]);\n\n useEffect(() => {\n const handleWindowResize = () => {\n setWindowWidth(window.innerWidth);\n };\n\n window.addEventListener(\"resize\", handleWindowResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleWindowResize);\n };\n }, []);\n\n const handleBannerRedirect = (e) => {\n e.preventDefault();\n if (!noRedirect && deviceSpecificRedirectURL !== undefined) {\n window.dataLayer.push({\n 'event': 'bannerClick',\n 'destinationUrl': deviceSpecificRedirectURL\n }); \n if (external) {\n window.open(deviceSpecificRedirectURL, \"_blank\");\n } \n else {\n props.router.history.push(deviceSpecificRedirectURL);\n }\n }\n };\n\n return (\n \n {parallax && isBrowser ? (\n \n ) : (\n {alt\n )}\n {props.children}\n \n );\n};\n\nexport default Banner;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"countdownContainer\":\"Countdown_countdownContainer__38bDO\",\"timerWrapper\":\"Countdown_timerWrapper__206C6\",\"countdownWrapper\":\"Countdown_countdownWrapper__1vCks\",\"countdownLabel\":\"Countdown_countdownLabel__22oqv\",\"countdownNumber\":\"Countdown_countdownNumber__3JNYT\",\"saleText\":\"Countdown_saleText__3lFud\",\"saleTerms\":\"Countdown_saleTerms__HFJZS\"};"],"sourceRoot":""}