{"version":3,"file":"static/chunks/6790-458432d19e460228.js","mappings":"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","sources":["webpack://_N_E/./components/icons/IconDone.jsx","webpack://_N_E/./components/applications/plp/components/Pod/Pod.helpers.js","webpack://_N_E/./components/applications/pip/components/Options/PriceAdjustedValue.jsx","webpack://_N_E/./components/product/Swatch/SwatchElement/SwatchElement.module.scss","webpack://_N_E/./components/product/SwatchGroup/SwatchReducer.js","webpack://_N_E/./components/product/SwatchGroup/SwatchContext.js","webpack://_N_E/./components/product/Swatch/Swatch.module.scss","webpack://_N_E/./components/product/Swatch/SwatchElement/index.jsx","webpack://_N_E/./custom_hooks/useVisibilityChangeSupport.js","webpack://_N_E/./components/product/SwatchGroup/SwatchFocus.jsx","webpack://_N_E/./components/product/Swatch/index.jsx"],"sourcesContent":["\nexport function IconDone(props){\n return(\n \n \n \n )\n}","\nexport function getFileName(image, fallback){\n const filename = image ? image : fallback; \n const fileIndex = filename.lastIndexOf(\"/\") + 1;\n \n return filename ? filename.substr(fileIndex) : \"dummy-image-400x300.webp\";\n}","import formatPrice from \"lib/Utils/formatPrice\";\n\n// parsed priceAdjust object from an option. \n// Probably can just do this in the parseOptionLabel() when we create it\n\nfunction PriceAdjustedValue({ value, qty, isSet }){\n const price = value.includes(\"$\") ? value.split(\"$\")[1] : value;\n const priceNumeric = parseFloat(price);\n const formattedTotal = formatPrice(priceNumeric);\n\n return(\n <>\n {value.includes(\"-\") ? \"-\" : \"+\"}\n {formattedTotal} \n \n )\n}\n\n\nexport default PriceAdjustedValue;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"SwatchElement_block__Zla6b\",\"small\":\"SwatchElement_small__AzRF5\",\"name\":\"SwatchElement_name__3hhSr\",\"disabled\":\"SwatchElement_disabled__hkeKc\",\"price\":\"SwatchElement_price__X8Uxq\",\"soldOut\":\"SwatchElement_soldOut__vzO9b\",\"imgCntr\":\"SwatchElement_imgCntr__60Amn\",\"image\":\"SwatchElement_image__P0YbH\",\"control\":\"SwatchElement_control__yQL_N\",\"badgeRow\":\"SwatchElement_badgeRow__uvmoY\",\"badgeIcon\":\"SwatchElement_badgeIcon__EdQSz\",\"badgeCntr\":\"SwatchElement_badgeCntr__KTmoA\",\"badgeCntrBackground\":\"SwatchElement_badgeCntrBackground__6dv8U\",\"brandBadge\":\"SwatchElement_brandBadge__bhujN\",\"gradeBadge\":\"SwatchElement_gradeBadge__wjmnR\",\"badge\":\"SwatchElement_badge__iHFik\",\"specialOrder\":\"SwatchElement_specialOrder__8NMMH\"};","/**\n* Swatch Group State Manager:\n*/\n\n// use our initial state as a type of manifest for the Global State\nexport const initialState = {\n showPopover: null,\n show: false,\n arrowElement: null\n}\n\n\nexport const SwatchReducer = (state, action) => {\n switch(action.type){\n \n case \"setPopover\":\n return {\n ...state,\n showPopover: action.data\n }\n\n case \"isShown\":\n return {\n ...state,\n show: action.isShown\n }\n\n case \"setArrowElement\":\n return {\n ...state,\n arrowElement: action.data\n }\n\n\n default: return;\n }\n};\n","import { createContext, useReducer } from \"react\";\nimport { SwatchReducer, initialState } from \"./SwatchReducer\";\n\nexport const SwatchContext = createContext({});\n\n// Create our Provider with our Reducer as our state manager\nexport const SwatchContextProvider = props => {\n const [state, dispatch] = useReducer(SwatchReducer, initialState);\n\n return (\n \n {props.children}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"block\":\"Swatch_block__gxYVw\"};","import Style from './SwatchElement.module.scss';\nimport utils from 'styles/globals/utils.module.scss';\n\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport Image from \"next/image\";\nimport React, { useContext } from \"react\";\nimport parseOptionLabel from 'components/applications/pip/helpers/parseOptionLabel.helper';\nimport { cloudinarySwatchLoader } from \"thirdparty/Cloudinary/cloudinaryLoader\";\nimport PriceAdjustedValue from \"components/applications/pip/components/Options/PriceAdjustedValue\";\nimport { SwatchContext } from 'components/product/SwatchGroup/SwatchContext';\n\n\nconst SwatchElement = React.forwardRef(({\n onChange = () => null,\n option_id,\n label,\n image,\n name,\n selected,\n isCheckbox,\n noMargin = false,\n smallSwatch = false,\n hideSwatch = false,\n isStocked = false,\n isNewColor = false,\n isSpecialOrder = false,\n color = \"\",\n brandName,\n text,\n grade,\n priceAdjust,\n priceAdjustNumeric,\n fileName,\n disabled = false,\n hidePrice = false,\n swatch_type = \"\",\n qty = 1,\n isSet = false,\n\n}, ref) => {\n\n const parsedLabel = (color && brandName && grade) ? { color, brandName, text, grade, priceAdjust, priceAdjustNumeric } : parseOptionLabel(label);\n let timeout = null;\n\n const [ swatchContext, dispatch ] = useContext(SwatchContext)\n\n const shouldShow = () => {\n if( !label?.includes(\"No \") ){\n timeout = setTimeout(() => {\n dispatch({ type: \"setPopover\", data: option_id })\n }, 600)\n }\n\n }\n\n\n return(\n <>\n {\n clearTimeout(timeout)\n dispatch({ type: \"setPopover\", data: null })\n }}\n >\n\n onChange({\n image,\n swatch_type,\n value: option_id,\n name,\n ...parsedLabel\n })}\n checked={selected}\n title={text ?? parsedLabel.text}\n disabled={hideSwatch || disabled}\n />\n\n
\n {(fileName) && (\n \n )}\n\n {(\n !color.includes(\"No \") && \n (parsedLabel.brandName || parsedLabel.grade || isStocked || \n (typeof swatch_type === \"string\" && swatch_type.includes(\"full\"))) \n ) && (\n
\n\n {(parsedLabel.brandName || parsedLabel.grade) && (\n
\n {parsedLabel.brandName && (\n
\n {parsedLabel.brandName}\n
\n )}\n\n {parsedLabel.grade && (\n
\n Grade {parsedLabel.grade}\n
\n )}\n
\n )}\n\n\n {isStocked && (\n
\n \n \n \n \n \n
\n )}\n {isNewColor && (\n
\n \n \n \n \n \n \n \n \n \n \n
\n )}\n
\n )}\n\n {isSpecialOrder && (\n
\n \n \n \n \n \n \n
\n )}\n\n
\n\n \n {parsedLabel.color}\n\n {(parsedLabel?.priceAdjust && !hidePrice) && (\n \n ()\n \n )}\n \n \n \n )\n})\n\n\nSwatchElement.displayName = \"SwatchElement\";\n\n\nSwatchElement.propTypes = {\n toggleShow: PropTypes.func,\n onChange: PropTypes.func,\n option_id: PropTypes.number,\n label: PropTypes.string,\n image: PropTypes.string,\n name: PropTypes.string,\n selected: PropTypes.bool,\n noMargin: PropTypes.bool,\n smallSwatch: PropTypes.bool\n};\n\n\nexport default SwatchElement;","import { useEffect, useRef } from \"react\";\n\nfunction useVisibilityChangeSupport() {\n\tconst hasFocus = useRef(true)\n\n\tconst onFocus = () => {\n\t\thasFocus.current = true;\n\t};\n\n\n\tconst onBlur = () => {\n\t\thasFocus.current = false;\n\t};\n\n\n\tuseEffect(() => {\n\t\tonFocus();\n\n\t\twindow.addEventListener(\"focus\", onFocus);\n\t\twindow.addEventListener(\"blur\", onBlur);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"focus\", onFocus);\n\t\t\twindow.removeEventListener(\"blur\", onBlur);\n\t\t};\n\n\t}, []);\n\n\n\treturn hasFocus;\n}\n\n\nexport default useVisibilityChangeSupport;","import useVisibilityChangeSupport from 'custom_hooks/useVisibilityChangeSupport';\nimport { useContext, useEffect } from 'react';\nimport { SwatchContext } from './SwatchContext';\n\n\n\nfunction SwatchFocus({ swatchData, productImage, isSet, dispatch = () => null }) {\n const swatchGroupFocus = useVisibilityChangeSupport()\n const [ swatchContext, swatchDispatch ] = useContext(SwatchContext)\n\n useEffect(() => {\n if( !swatchGroupFocus ){\n dispatch({ type: \"setPopover\", data: null })\n }\n\n }, [ swatchGroupFocus ])\n\n\n\n useEffect(() => {\n const isShown = swatchData.option_id === swatchContext.showPopover\n\n if( swatchData.swatch_type === \"full_product\" && isShown && !isSet ){ \n dispatch({\n type: \"setHoverImage\",\n data: productImage\n })\n\n }else{\n swatchDispatch({\n type: \"isShown\",\n isShown\n })\n }\n \n }, [ \n swatchData.option_id, \n swatchContext.showPopover \n ])\n\n\n return null\n}\n\nexport default SwatchFocus;","/* eslint-disable react-hooks/exhaustive-deps */\nimport PropTypes from \"prop-types\";\nimport { memo, useEffect, useMemo, useRef, useState } from \"react\";\nimport SwatchElement from \"./SwatchElement\";\nimport dynamic from 'next/dynamic'\nimport { SwatchContextProvider } from \"../SwatchGroup/SwatchContext\";\nimport Style from './Swatch.module.scss';\nimport { getFileName } from \"components/applications/plp/components/Pod/Pod.helpers\";\nimport { cloudinarySwatchLoader } from \"thirdparty/Cloudinary/cloudinaryLoader\";\nimport SwatchFocus from \"../SwatchGroup/SwatchFocus\";\n\nconst SwatchPopover = dynamic(() => import('./SwatchPopover'))\n\n\nfunction Swatch({ \n id, \n swatchData, \n onChange, \n name, \n selected, \n isCheckbox = false, \n width, \n height,\n noMargin,\n smallSwatch = false,\n isMobile = false,\n hideSwatch,\n isStocked,\n isNewColor,\n isSpecialOrder,\n contextState,\n isFabric,\n totalSwatches,\n disabled = false,\n hidePrice = false,\n isSet = false,\n qty = 1,\n dispatch = () => null,\n}){\n const [ swatchElement, setSwatchElement ] = useState(null)\n\n const productImage = useMemo(() => {\n if( swatchElement?.fileName ){\n return cloudinarySwatchLoader({\n width: 500,\n height: 500,\n src: swatchElement?.fileName,\n })\n }\n\n }, [ swatchElement?.fileName ])\n \n\n \n useEffect(() => {\n const fileName = swatchData?.image ? getFileName(swatchData?.image) : null;\n setSwatchElement({ ...swatchData, fileName: fileName ?? null })\n \n }, [ swatchData ])\n\n\n const referenceElement = useRef(null)\n\n\n\n return(\n \n \n\n
\n \n \n\n onChange(e)}\n {...swatchElement}\n {...{ \n isSet,\n qty,\n hideSwatch, \n name, \n selected, \n isCheckbox, \n width, \n height, \n smallSwatch, \n noMargin, \n isStocked,\n isNewColor,\n isSpecialOrder,\n contextState,\n isFabric,\n disabled,\n hidePrice,\n swatch_type: swatchData.swatch_type\n }}\n />\n
\n
\n )\n}\n\n\nSwatch.propTypes = {\n id: PropTypes.string, \n swatchData: PropTypes.object, \n onChange: PropTypes.func, \n name: PropTypes.string, \n selected: PropTypes.bool, \n noMargin: PropTypes.bool,\n smallSwatch: PropTypes.bool\n}\n\n\nexport default memo(Swatch);"],"names":["IconDone","props","svg","xmlSpace","viewBox","aria-label","path","d","getFileName","image","fallback","filename","fileIndex","lastIndexOf","substr","value","qty","isSet","priceNumeric","parseFloat","PriceAdjustedValue","includes","split","formattedTotal","formatPrice","initialState","showPopover","show","arrowElement","SwatchReducer","state","action","type","data","isShown","createContext","dispatch","useReducer","SwatchContext","Provider","children","SwatchElement","React","ref","onChange","option_id","label","name","selected","isCheckbox","noMargin","smallSwatch","hideSwatch","isStocked","isNewColor","isSpecialOrder","color","brandName","text","grade","priceAdjust","priceAdjustNumeric","fileName","disabled","hidePrice","swatch_type","parsedLabel","parseOptionLabel","timeout","swatchContext","useContext","htmlFor","className","clsx","Style","utils","onMouseEnter","shouldShow","setTimeout","onMouseLeave","clearTimeout","input","id","checked","title","div","Image","alt","src","width","height","priority","loader","cloudinarySwatchLoader","circle","cx","cy","r","fill","g","data-name","transform","rect","rx","span","small","displayName","propTypes","toggleShow","PropTypes","useVisibilityChangeSupport","hasFocus","useRef","onFocus","current","onBlur","useEffect","window","addEventListener","removeEventListener","SwatchFocus","swatchData","productImage","swatchGroupFocus","swatchDispatch","SwatchPopover","dynamic","Swatch","isMobile","contextState","isFabric","totalSwatches","swatchElement","setSwatchElement","useState","useMemo","referenceElement","SwatchContextProvider","style","order","e","memo"],"sourceRoot":"","ignoreList":[]}