{"version":3,"file":"index-11d65537.js","sources":["../../../../src/scripts/react-components/shingle-detail-masthead/image-swiper.tsx","../../../../src/scripts/react-components/shingle-detail-masthead/color-swiper.tsx","../../../../src/scripts/react-components/shingle-detail-masthead/index.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { Swiper as SwiperModule, SwiperSlide } from 'swiper/react';\nimport { FreeMode, Navigation } from 'swiper';\nimport 'swiper/css';\nimport 'swiper/css/navigation';\nimport 'swiper/css/free-mode';\nimport { createDataLayerString } from '../../helpers/helpers';\nimport { BREAKPOINTS } from '../../helpers/breakpoints';\n\ntype ImageSwiperProps = {\n images: {\n media_url: string;\n alt_text: string;\n }[];\n nextLabel: string;\n prevLabel: string;\n productHeading: string;\n fullScreen?: boolean;\n};\n\nexport const ImageSwiper = ({\n images,\n nextLabel,\n prevLabel,\n productHeading,\n fullScreen\n}: ImageSwiperProps) => {\n const nextButton = useRef(null);\n const backButton = useRef(null);\n\n return (\n
\n 0 && !fullScreen) ? 1.1 : 1}\n centeredSlides={true}\n spaceBetween={10}\n navigation={{\n nextEl: nextButton.current,\n prevEl: backButton.current\n }}\n modules={[FreeMode, Navigation]}\n >\n {images.map((image, index) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n \n\n \n
\n );\n};\n\nexport default ImageSwiper;\n","import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport { Swiper as SwiperModule, SwiperSlide } from 'swiper/react';\nimport { FreeMode, Navigation, Swiper } from 'swiper';\nimport 'swiper/css';\nimport 'swiper/css/navigation';\nimport 'swiper/css/free-mode';\nimport { BREAKPOINTS } from '../../helpers/breakpoints';\nimport { DataLayerObject, ExtendedWindowType } from '../../helpers/global-types';\n\ntype ColorSwiperProps = {\n images: {\n media_url: string;\n alt_text: string;\n color_name?: string;\n color_id?: string;\n }[];\n nextLabel: string;\n prevLabel: string;\n selected: string;\n defaultColor: string;\n handleSelected: (val: string) => void;\n fullScreen?: boolean;\n};\n\nexport const ColorSwiper = ({\n images,\n nextLabel,\n prevLabel,\n handleSelected,\n selected,\n defaultColor,\n fullScreen\n}: ColorSwiperProps) => {\n const [, setSwiper] = useState(null);\n const [touch, setTouch] = useState(false);\n const [shouldPushLayer, setShouldPushLayer] = useState(null);\n const nextButton = useRef(null);\n const backButton = useRef(null);\n const sortedImages = useMemo(() => {\n const remainingImages = images.filter(\n image => image.color_id !== defaultColor\n );\n const defaultImage = images.find(image => image.color_id === defaultColor);\n const sortedImages = remainingImages.sort((a, b) => {\n if (a.color_name && b.color_name) {\n return a.color_name.localeCompare(b.color_name);\n }\n return 0;\n });\n\n if (defaultImage) {\n sortedImages.unshift(defaultImage);\n }\n return sortedImages;\n }, [images]);\n\n const initialSlide =\n sortedImages.findIndex(image => image.color_id === selected) > 0\n ? images.findIndex(image => image.color_id === selected)\n : 0;\n\n const handleSwiperLayerEvent = (swiper: Swiper) => {\n setShouldPushLayer(swiper);\n };\n\n useEffect(() => {\n if (shouldPushLayer) {\n const interactLayer = `{\"event\":\"carousel_interaction\",\"event_action\":\"${\n touch ? 'swipe' : 'arrow click'\n }\",\"event_category\":\"content_interaction\",\"event_label\":\"${(\n shouldPushLayer.activeIndex + 1\n ).toString()} of ${shouldPushLayer.slides.length}\"}`;\n (window as ExtendedWindowType).dataLayer.push(\n JSON.parse(interactLayer) as DataLayerObject\n );\n setShouldPushLayer(null);\n }\n }, [shouldPushLayer, touch]);\n\n return (\n <>\n {selected && sortedImages && (\n
\n {}\n setSwiper(swiper)}\n onSlideChange={swiper => handleSwiperLayerEvent(swiper)}\n onTouchEnd={() => setTouch(true)}\n onMouseUp={() => setTouch(false)}\n >\n {sortedImages.map(image => (\n \n \n \n \n \n \n {\n handleSelected(image.color_id as string);\n }}\n >\n {image.color_name}\n \n
\n \n ))}\n \n \n \n \n )}\n \n );\n};\n\nexport default ColorSwiper;\n","import React, { useEffect, useState } from 'react';\nimport IconItem from '../product-masthead/icon-item';\nimport ImageSwiper from './image-swiper';\nimport ToggleSwitch from '../toggle-switch';\nimport Autocomplete from './autocomplete';\nimport ColorSwiper from './color-swiper';\nimport { getStoredGeolocationData } from '../../helpers/geolocation';\nimport { makeSuperScript } from '../../helpers/helpers';\nimport {\n ExtendedWindowType,\n MediaType,\n ProductMastheadResponseType,\n VariantOptionType\n} from '../../helpers/global-types';\n\ntype ShingleDetailMastheadProps = {\n endpointColors: string;\n bazaarReview: string;\n toggleOptions: string;\n formAddress: string;\n nextLabel: string;\n prevLabel: string;\n defaultImage: string;\n noResultsError: string;\n hideToggle?: boolean;\n};\n\nconst ShingleDetailMasthead = ({\n endpointColors,\n bazaarReview,\n toggleOptions,\n formAddress,\n nextLabel,\n prevLabel,\n defaultImage,\n noResultsError,\n hideToggle\n}: ShingleDetailMastheadProps) => {\n const [data, setData] = useState();\n const [error, setError] = useState(false);\n const [displayImages, setDisplayImages] = useState([]);\n const [displayColors, setDisplayColors] = useState([]);\n const [yourAreaColors, setYourAreaColors] = useState([]);\n const [availableColors, setAvailableColors] = useState([]);\n const [selectedColor, setSelectedColor] = useState('');\n const [defaultColor, setDefaultColor] = useState('');\n const [defaultSetup, setDefaultSetup] = useState(false);\n const [addressError, setAddressError] = useState(false);\n const toggleOptionsObj = JSON.parse(toggleOptions);\n const addressInput = JSON.parse(formAddress);\n const [personalizeButtons, setPersonalizeButtons] = useState('');\n const [address, setAddress] = useState<{\n address: string;\n zip: string;\n country: string;\n }>({\n address: '',\n zip: '',\n country: ''\n });\n const [selectedAttributes, setSelectedAttributes] = useState<\n VariantOptionType[]\n >([]);\n const [selectedArea, setSelectedArea] = useState(0);\n const bazarRef = React.createRef();\n\n const handleDefaultSelectedAttributes = () => {\n let _finalSelectedAttributes: VariantOptionType[] = [];\n let _finalSelectedColor = '';\n\n if (data?.defaultVariation !== '') {\n const selectedVariation = data?.pid_attribute_option_index.find(\n item => item.magento_product_id === data?.defaultVariation\n );\n\n if (selectedVariation) {\n const selectedOptions: VariantOptionType[] = [];\n data?.variants.forEach(variant => {\n const correspondingVariant =\n selectedVariation.attribute_option_items.find(\n attributeOption => attributeOption.attribute_id === variant.id\n );\n if (correspondingVariant) {\n const selectedOption = variant.options.find(\n opt => opt.id === correspondingVariant.option_id\n );\n if (selectedOption) {\n selectedOptions.push(selectedOption);\n }\n }\n });\n\n if (selectedOptions.length === 0) {\n data?.variants.forEach(variant => {\n selectedOptions.push(variant.options[0]);\n });\n }\n\n const selectedMediaVariant = data?.mediaVariants.find(\n variant =>\n variant.magento_product_id === selectedOptions[0].products[0]\n );\n\n const productDetails = selectedMediaVariant?.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n\n const colorId = productDetails?.attributes.find(\n attribute => attribute.attribute_code === 'colorid'\n )?.attribute_value;\n\n if (data?.colors.includes(colorId as string)) {\n _finalSelectedAttributes = selectedOptions;\n } else {\n data?.variants.forEach(variant => {\n selectedOptions.push(variant.options[0]);\n });\n }\n } else {\n const selectedOptions: VariantOptionType[] = [];\n data?.variants.forEach(variant => {\n selectedOptions.push(variant.options[0]);\n });\n _finalSelectedAttributes = selectedOptions;\n }\n\n const selectedVariant = data?.mediaVariants.find(\n variant => variant.magento_product_id === data?.defaultVariation\n );\n const productDetails = selectedVariant?.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n const colorId = productDetails?.attributes.find(\n attribute => attribute.attribute_code === 'colorid'\n )?.attribute_value;\n\n if (colorId) {\n _finalSelectedColor = colorId;\n setDefaultColor(colorId as string);\n } else if (data?.colors) {\n _finalSelectedColor = data?.colors[0];\n }\n }\n\n const _selectedColor = sessionStorage.getItem('selectedColor');\n sessionStorage.removeItem('selectedColor');\n\n if (_selectedColor) {\n const selectedMediaVariant = data?.mediaVariants.find(variant => {\n const productDetails = variant.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n if (\n productDetails?.attributes.find(\n attribute =>\n attribute.attribute_code === 'colorid' &&\n attribute.attribute_value === _selectedColor\n )\n )\n return variant;\n return false;\n });\n\n const _selectedAttribute = data?.variants.map(variant =>\n variant?.options.find(option =>\n option.products.includes(\n selectedMediaVariant?.magento_product_id as string\n )\n )\n );\n if (_selectedAttribute) {\n _finalSelectedAttributes = _selectedAttribute as VariantOptionType[];\n _finalSelectedColor = _selectedColor;\n }\n }\n\n setSelectedAttributes(_finalSelectedAttributes as VariantOptionType[]);\n setSelectedColor(_finalSelectedColor);\n setDefaultSetup(true);\n };\n\n const handleDisplayMedia = () => {\n const mapping = data?.pid_attribute_option_index;\n const id = mapping?.find(item => {\n return data?.variants.every((variant, index) => {\n const selProduct = item.attribute_option_items.find(\n option =>\n option.attribute_id === variant.id &&\n selectedAttributes[index].id === option.option_id\n );\n return selProduct;\n });\n });\n\n const mediaImage = data?.mediaVariants.find(mediaVariant => {\n if (mediaVariant.magento_product_id === id?.magento_product_id) {\n if (mediaVariant.media.length > 0) {\n return mediaVariant;\n }\n }\n return false;\n });\n if (!mediaImage && data?.productDescription?.defaultImages) {\n if (data?.productDescription?.defaultImages.length > 0) {\n setDisplayImages(data?.productDescription.defaultImages);\n } else {\n setDisplayImages(JSON.parse(defaultImage));\n }\n } else if (!mediaImage) {\n setDisplayImages(JSON.parse(defaultImage));\n } else {\n setDisplayImages(mediaImage.media);\n }\n };\n\n const handleDisplayColors = () => {\n const _displayColors = data?.productDescription.colorImages.filter(\n colorImage => availableColors?.includes(colorImage.color_id as string)\n );\n\n getVariantIsAvailable();\n\n if (_displayColors && _displayColors.length > 0) {\n setDisplayColors(_displayColors as MediaType[]);\n } else {\n setDisplayColors([]);\n }\n };\n\n const handleSelected = (value: string) => {\n (window as ExtendedWindowType).dataLayer.push({\n event: 'product_click',\n event_category: 'product',\n event_action: 'variant selection',\n event_label: 'shingle color',\n event_attributes: {\n product_name: data?.productDescription.heading,\n product_category: 'Shingle',\n average_rating: (\n document.querySelector(\n '.bv_avgRating_component_container'\n ) as HTMLElement\n )?.innerText\n }\n });\n setSelectedColor(value);\n const selectedMediaVariant = data?.mediaVariants.find(variant => {\n const productDetails = variant.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n if (\n productDetails?.attributes.find(\n attribute =>\n attribute.attribute_code === 'colorid' &&\n attribute.attribute_value === value\n )\n )\n return variant;\n\n return false;\n });\n const _selectedAttribute = data?.variants.map(variant =>\n variant?.options.find(option =>\n option.products.includes(\n selectedMediaVariant?.magento_product_id as string\n )\n )\n );\n if (_selectedAttribute)\n setSelectedAttributes(_selectedAttribute as VariantOptionType[]);\n };\n\n const handleSwitchChange = (value: string) => {\n const _selectedArea = toggleOptionsObj.findIndex(\n (option: { value: string }) => option.value === value\n );\n setSelectedArea(_selectedArea);\n\n if (_selectedArea === 0) {\n if (data?.colors && data?.colors.length > 0) {\n setAvailableColors(data?.colors);\n } else {\n setAvailableColors([]);\n }\n } else {\n setAvailableColors(yourAreaColors);\n }\n };\n\n const getVariantIsAvailable = () => {\n const selectedVariant = data?.mediaVariants.find(\n variant =>\n variant.magento_product_id === selectedAttributes[0].products[0]\n );\n const productDetails = selectedVariant?.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n const colorId = productDetails?.attributes.find(\n attribute => attribute.attribute_code === 'colorid'\n )?.attribute_value;\n\n if (!availableColors.includes(colorId as string)) {\n data?.mediaVariants.find(variant => {\n const details = variant.attribute_groups.find(\n group => group.attribute_group_name === 'Product Details'\n );\n const detailColor = details?.attributes.find(\n attribute => attribute.attribute_code === 'colorid'\n )?.attribute_value;\n\n if (detailColor && availableColors[0] === detailColor) {\n const newOptionType = data?.variants[0].options.find(option =>\n option?.products.includes(variant.magento_product_id)\n );\n if (newOptionType) {\n setSelectedAttributes([newOptionType]);\n setSelectedColor(detailColor);\n }\n }\n });\n }\n };\n\n useEffect(() => {\n if (data) {\n const savedData = getStoredGeolocationData();\n\n if (savedData && !hideToggle) {\n setSelectedArea(1);\n\n setAddress({\n address: savedData.address as string,\n zip: savedData.zip,\n country: savedData.country\n });\n }\n\n if (data.colors) {\n setAvailableColors(data?.colors);\n }\n handleDefaultSelectedAttributes();\n }\n }, [data]);\n\n useEffect(() => {\n handleDisplayMedia();\n }, [selectedAttributes]);\n\n useEffect(() => {\n handleDisplayColors();\n }, [availableColors]);\n\n useEffect(() => {\n const productId = data?.productDescription.product;\n\n if (address.zip && productId) {\n let _country = address.country;\n if (_country.toUpperCase() === 'US') {\n _country = 'USA';\n } else if (_country.toUpperCase() === 'CA') {\n _country = 'CAN';\n }\n\n fetch(\n endpointColors\n .replace('{zipCode}', address.zip)\n .replace(' ', '')\n .replace('{prod}', productId)\n .replace('{countryCode}', _country),\n {\n method: 'GET'\n }\n )\n .then(response => response.json())\n .then(data => {\n if (data?.availableColors) {\n setAvailableColors(data?.availableColors);\n setYourAreaColors(data?.availableColors);\n } else {\n setAvailableColors([]);\n setYourAreaColors([]);\n }\n })\n .catch(error => {\n console.error('Error:', error);\n });\n }\n }, [address, data]);\n\n if (error) {\n return

Error on loading

;\n }\n\n const handleBazarClick = () => {\n const reviewsSection = document.querySelector(\n '[data-module=\"review-embed\"]'\n ) as HTMLElement;\n const sectionName = reviewsSection.dataset?.section;\n const sectionId = reviewsSection.id;\n const navigationLinks = document.querySelectorAll(\n '.navigation-jumplinks__link'\n );\n const dropdown = document.querySelector(\n '.navigation-jumplinks .field__select'\n ) as HTMLSelectElement;\n\n window.dispatchEvent(new Event('pause-jumplinks'));\n\n if (navigationLinks) {\n navigationLinks.forEach(link => {\n if (link.ariaLabel !== sectionName) {\n link.classList.remove('active');\n } else {\n link.classList.add('active');\n }\n });\n }\n\n if (dropdown) {\n setTimeout(() => {\n dropdown.value = sectionId;\n }, 500);\n }\n };\n\n useEffect(() => {\n if (bazarRef.current) {\n const bazarContainer = bazarRef.current;\n let maxTries = 10;\n\n const interval = setInterval(() => {\n maxTries--;\n const button = bazarContainer.querySelector('.bv_ratings_summary');\n\n if (button) {\n clearInterval(interval);\n button.addEventListener('click', handleBazarClick.bind(this));\n\n window.addEventListener('click', e => {\n const target = e.target as HTMLElement;\n\n if (target.closest('.bv_modal_inner_content')) {\n handleBazarClick();\n }\n });\n }\n\n if (maxTries === 0) {\n clearInterval(interval);\n }\n }, 1000);\n }\n }, [bazarRef, data]);\n\n useEffect(() => {\n let observer: MutationObserver;\n\n const targetNode = document.querySelector('.personalize-buttons');\n\n if (targetNode) {\n const targetInnerHtml = targetNode.innerHTML;\n\n setPersonalizeButtons(targetInnerHtml);\n\n const config = { attributes: true, childList: true, subtree: true };\n\n const callback = (mutationList: MutationRecord[]) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList') {\n setPersonalizeButtons(targetNode.innerHTML);\n }\n }\n };\n\n observer = new MutationObserver(callback);\n observer.observe(targetNode, config);\n }\n\n const newData = (window as ExtendedWindowType).mastheadData;\n\n if (newData) {\n setData((window as ExtendedWindowType).mastheadData);\n } else {\n setError(true);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, []);\n\n return (\n
\n {defaultSetup && (\n
\n
\n {data?.productDescription.icon && (\n \n )}\n
\n \n \n
\n
\n {data?.productDescription?.product && (\n
\n )}\n {personalizeButtons && (\n
\n )}\n
\n
\n
\n \n
\n\n {!hideToggle && (\n
\n \n \n
\n {selectedArea === 1 && (\n
\n \n
\n )}\n \n )}\n\n {displayColors.length > 0 ? (\n \n ) : (\n
\n

\n {noResultsError?.replace('{zipCode}', address.zip)}\n

\n
\n )}\n \n )}\n \n );\n};\nexport default ShingleDetailMasthead;\n"],"names":["ImageSwiper","images","nextLabel","prevLabel","productHeading","fullScreen","nextButton","useRef","backButton","React","SwiperModule","FreeMode","Navigation","image","index","SwiperSlide","BREAKPOINTS","createDataLayerString","ColorSwiper","handleSelected","selected","defaultColor","setSwiper","useState","touch","setTouch","shouldPushLayer","setShouldPushLayer","sortedImages","useMemo","remainingImages","defaultImage","a","b","initialSlide","handleSwiperLayerEvent","swiper","useEffect","interactLayer","ShingleDetailMasthead","endpointColors","bazaarReview","toggleOptions","formAddress","noResultsError","hideToggle","data","setData","error","setError","displayImages","setDisplayImages","displayColors","setDisplayColors","yourAreaColors","setYourAreaColors","availableColors","setAvailableColors","selectedColor","setSelectedColor","setDefaultColor","defaultSetup","setDefaultSetup","addressError","setAddressError","toggleOptionsObj","addressInput","personalizeButtons","setPersonalizeButtons","address","setAddress","selectedAttributes","setSelectedAttributes","selectedArea","setSelectedArea","bazarRef","handleDefaultSelectedAttributes","_finalSelectedAttributes","_finalSelectedColor","selectedVariation","item","selectedOptions","variant","correspondingVariant","attributeOption","selectedOption","opt","selectedMediaVariant","productDetails","group","colorId","attribute","selectedVariant","_b","_selectedColor","_selectedAttribute","option","handleDisplayMedia","mapping","id","mediaImage","mediaVariant","_a","handleDisplayColors","_displayColors","colorImage","getVariantIsAvailable","value","handleSwitchChange","_selectedArea","details","detailColor","newOptionType","savedData","getStoredGeolocationData","productId","_country","response","handleBazarClick","reviewsSection","sectionName","sectionId","navigationLinks","dropdown","link","bazarContainer","maxTries","interval","button","e","observer","targetNode","targetInnerHtml","config","callback","mutationList","mutation","IconItem","makeSuperScript","_c","_d","_f","_e","ToggleSwitch","Autocomplete"],"mappings":"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"}