{"version":3,"sources":["reportWebVitals.ts","constants/searchForm.constants.ts","reducers/index.ts","reducers/searchForm.reducer.ts","helpers/store.ts","api/initial.js","context/InitialContext.tsx","context/initialReducer.ts","components/heading/Heading.tsx","components/shelf/shelf.component.js","components/hero/Hero.tsx","components/Header.tsx","context/ProductContext.tsx","context/productReducer.ts","api/product.js","api/user.js","components/loadingSkeleton/loadingSkeleton.component.tsx","components/container/Container.tsx","components/visuallyHidden/VisuallyHidden.tsx","components/counter/Counter.tsx","components/copy/Copy.tsx","components/button/Button.tsx","api/GetFieldSuggest.ts","components/typeahead/typeahead.tsx","components/formControl/FormControl.tsx","components/formLabel/FormLabel.tsx","components/errorMessage/ErrorMessage.tsx","components/searchForm/SearchForm.tsx","components/pricingAvailability/PricingAvailability.tsx","components/InventorySearchForm.tsx","components/nonbreakingSpace/NonBreakingSpace.tsx","components/Message/Message.tsx","components/InventoryNoResults.tsx","helpers/legacy.ts","components/loginLink/LoginLink.tsx","components/AddToCartModal/CartItem.tsx","components/modal/Modal.js","components/AddToCartModal/CartNavigation.tsx","components/AddToCartModal/AddToCartModal.tsx","components/PricingSection/PricingSection.tsx","components/AvailabilitySection/AvailabilitySection.tsx","components/productStatus/ProductStatusText.tsx","components/link/Link.tsx","components/pdpLink/PdpLink.tsx","components/InventoryResultsPricingAndAvailibility.tsx","components/SignIn/SignIn.tsx","components/Inventory.tsx","components/Page.tsx","App.tsx","components/wrapper/wrapper.component.js","index.tsx"],"names":["reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","searchFormConstants","rootReducer","combineReducers","searchForm","state","action","type","price","composeEnhancer","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","applyMiddleware","thunkMiddleware","GetInventoryUIData","a","fetch","response","json","data","InventoryUIDetails","console","log","InitialContext","createContext","InitialProvider","Provider","Consumer","initialInventoryUIDetails","Subheader","Headline","HeroImage","Url","isLoaded","initialReducer","payload","Error","StyledHeading","styled","span","Heading","element","children","props","as","StyledShelf","div","mobile","css","tablet","desktop","Shelf","Hero","useContext","initialState","className","style","backgroundImage","Header","ProductContext","ProductProvider","initProductData","SAPLeadTime","SAPDelivaryDate","SAPStatusCode","Icon","IconColor","OutlineColor","Message","IsAddToCartHidden","IsAddToQuoteHidden","PriceReplacementMessage","SAPPricingInfo","ProductId","FormattedPrice","FormattedMSRP","RawPrice","RawMSRP","CurrencyCode","LeadTime","AvailableInventoryList","ProductNumber","ProductStatus","TempProductNumber","Quantity","InventoryStatusCode","InventoryStatusMessage","PricingStatusMessage","IsUserLoggedIn","calculatedPricing","isProductDiscontinued","ReplacementProductText","ReplacementProductUrl","MainImage","isSubmitted","User","discontinuedCheck","productReducer","getProduct","skuItemName","qty","params","getUser","LoadingSkeleton","Container","VisuallyHidden","Counter","min","max","onKeyPress","context","productDispatch","productState","useState","count","setStateCount","parsedCountInt","parseInt","minCheck","val","maxCheck","setCountStringHandler","toString","useEffect","onClick","decrement","updatedCount","id","value","onChange","numberChangeInput","event","valueAsString","target","valueAsInt","isNotInteger","RegExp","test","increment","StyledCopy","p","Copy","Link","href","Button","GetFieldSuggest","keyword","source","process","header","Headers","Authorization","requestOptions","method","headers","organizationId","constantQueryOverride","pattern","text","JSON","parse","index","values","map","v","regex","highlightedValue","replace","name","TypeAhead","placeholder","productNumberContext","onInputChange","initialValue","isInvalid","useKeyPress","targetKey","ref","keyPressed","setKeyPressed","downHandler","key","upHandler","React","current","addEventListener","removeEventListener","items","setItems","ListItem","item","active","setSelected","onMouseDown","e","dangerouslySetInnerHTML","__html","searchBoxInput","createRef","searchBox","undefined","selected","enterPress","downPressInput","upPressInput","enterPressInput","cursor","setCursor","forceChange","setForceChange","searchItem","setSearchItem","showSuggestions","setShowSuggestions","initial","setInitial","suggestionClicked","setClicked","handleClickOutside","evt","HTMLElement","contains","document","handelSuggestionClick","passProductToParent","prevState","setCursorPosition","focus","selectionEnd","length","handelInputChange","currentTarget","onFocus","handleOnFocus","onBlur","handleOnBlur","handleOnClick","fontSize","visibility","i","FormControl","role","FormLabel","labelIdentifier","isRequired","htmlFor","aria-hidden","ErrorMessage","SearchForm","AvailabilityOption","productNumberParent","initialContext","productContext","BodyHeadline","BodyCopy","invalid","setInvalid","isFirstRun","setIsFirstRun","onSubmitHandler","product","getProductFromQueryString","urlSearchParams","URLSearchParams","location","search","Object","fromEntries","entries","sku","handleInputChange","productNumber","valueWithSpacesTrimmed","trim","onCountChanged","handleCounterChange","onSearchBoxKeyPress","InventorySearchForm","NonBreakingSpace","PricingAvailability","availabilityOption","Pricing","Availability","NoResult","Discontinued","NoCatalogs","localProductNumber","setProductNumber","beforeProductNumberMsg","toUpperCase","afterProductNumberMsg","additionalClass","messageClasses","InventoryNoResults","legacyAddToCart","itemNumber","quantity","scID","legacyGetWeco","fn","useStrict","check","__weco","setTimeout","w","quoteType","wecoQuoteType","orderType","wecoOrderType","prType","wecoAddToCart","LoginLink","customMessage","linkText","openSignInMenu","desktopStickyHeader","querySelectorAll","mobileHeader","isElementVisible","getComputedStyle","display","click","CartItem","ProductTitle","totalPriceStr","setTotalPriceStr","totalMSRPStr","setTotalMSRPStr","currencyConverter","formatted","Currency","toLocaleString","minimumFractionDigits","totalCalculator","quantityHandler","totalPrice","totalMSRP","src","alt","Title","TriggersState","ModalWrapper","ModalTrigger","useTriggerState","isActive","setActive","Store","useRef","useMemo","Modal","useModalState","ModalBackdrop","CSSTransition","timeout","in","classNames","unmountOnExit","ModalClose","CartNavigation","StayHereButton","AddToCartModal","ItemDisplayHandler","TableCell","Label","Value","AdditionalInfo","PricingSection","unitPrice","setUnitPrice","unitMSRP","setUnitMSRP","localQty","setLocalQty","TriggerModal","handleAddToCartBtnOnClick","showPriceMessage","ShowAddToCart","IsUserLimited","AvailabilityTableRow","Location","CommittedQty","UOM","Math","round","AvailabilityList","shouldShowInventoryStatusMessage","inventoryTotalQty","reduce","total","inventoryItem","Number","scope","_","orderBy","AvailableInventory","margin","LeadTimeSection","borderColor","color","delivaryDateHandler","AvailabilitySection","ProductStatusText","mainText","mainTextColor","altText","altTextColor","link","PdpLink","ProductUrl","width","height","viewBox","xmlns","focusable","fill","fill-rule","d","InventoryResultsPricingAndAvailibility","renderReplacementProductLinkText","wordsArray","split","lastWord","pop","join","SignIn","UnAuthBodyCopy","Inventory","setLocalProductNumber","isLoading","setLoading","scrollToResultsMobile","screenWidth","screen","heroPxlHeight","getElementsByClassName","clientHeight","boxPxlHeight","finalOffSet","parent","scrollTo","top","behavior","setQuery","qtyAsInt","history","pushState","newUrl","protocol","host","pathname","path","getProductHandler","skuParameterUrl","qtyParameterUrl","nonUrlProductSku","productSku","nonUrlQty","productQty","removeQuery","result","ifQueryStringUpdateState","urlParams","get","qtyAsString","stringify","getCurrentUser","InventoryProvider","useReducer","Page","App","initialDispatch","GetInventoryUIDataHandler","Wrapper","Index","render","getElementById"],"mappings":"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","file":"static/js/main.7cb5027b.chunk.js","sourcesContent":["import { ReportHandler } from \"web-vitals\";\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","export const searchFormConstants = {\r\n SET_PRICING: \"SET_PRICING\",\r\n FETCH_PRICE_REQUEST: \"FETCH_PRICE_REQUEST\",\r\n FETCH_PRICE_SUCCESS: \"FETCH_PRICE_SUCCESS\",\r\n FETCH_PRICE_FAILURE: \"FETCH_PRICE_FAILURE\",\r\n};\r\n","import { combineReducers } from \"redux\";\r\n\r\nimport searchForm from \"./searchForm.reducer\";\r\n\r\nconst rootReducer = combineReducers({\r\n searchForm,\r\n});\r\n\r\nexport default rootReducer;\r\n","import { searchFormConstants } from \"../constants\";\r\n\r\nexport default function searchForm(state = {}, action: any) {\r\n switch (action.type) {\r\n case searchFormConstants.SET_PRICING:\r\n return {\r\n ...state,\r\n price: action.price,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { createStore, applyMiddleware, compose } from \"redux\";\r\nimport thunkMiddleware from \"redux-thunk\";\r\nimport rootReducer from \"../reducers\";\r\n// this is what allows the redux dev tools to work\r\nconst composeEnhancer =\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\nexport const store = createStore(\r\n rootReducer,\r\n composeEnhancer(applyMiddleware(thunkMiddleware)),\r\n);\r\n","const GetInventoryUIData = async () => {\r\n try {\r\n const response = await fetch(\r\n process.env.NODE_ENV === \"production\"\r\n ? \"/ignitionapi/inventorytool/GetInventoryUIDetails\"\r\n : \"https://devfeature.legrandav.com/ignitionapi/inventorytool/GetInventoryUIDetails\",\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data.InventoryUIDetails;\r\n } catch (error) {\r\n console.log(`GetInventoryUIData error: ${error}`);\r\n }\r\n};\r\n\r\nexport default GetInventoryUIData;\r\n","import { createContext } from \"react\";\r\n\r\nconst InitialContext = createContext({});\r\n\r\nexport const InitialProvider = InitialContext.Provider;\r\nexport const InitialConsumer = InitialContext.Consumer;\r\n\r\nexport default InitialContext;\r\n","interface InventoryUIDetailsProps {\r\n data: {\r\n Subheader: string;\r\n Headline: string;\r\n HeroImage: {\r\n Url: string;\r\n };\r\n };\r\n isLoaded: boolean;\r\n}\r\n\r\nexport const initialInventoryUIDetails: InventoryUIDetailsProps = {\r\n data: {\r\n Subheader: \"\",\r\n Headline: \"\",\r\n HeroImage: {\r\n Url: \"\",\r\n },\r\n },\r\n isLoaded: false,\r\n};\r\n\r\nexport const initialReducer = (\r\n state = initialInventoryUIDetails,\r\n { type, payload }: { type: string; payload: any },\r\n) => {\r\n switch (type) {\r\n case \"SET_INITIAL_DATA\":\r\n return {\r\n ...state,\r\n data: payload,\r\n };\r\n case \"TOGGLE_LOADING\":\r\n return {\r\n ...state,\r\n isLoaded: payload,\r\n };\r\n default:\r\n throw new Error(`Unhandled action type: ${type}`);\r\n }\r\n};\r\n","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport \"./heading.styles.scss\";\r\n\r\ninterface HeadingProps {\r\n element: any;\r\n children: any;\r\n className: any;\r\n props?: any;\r\n}\r\n\r\nconst StyledHeading = styled.span``;\r\n\r\nexport const Heading = ({\r\n element = \"h1\",\r\n children,\r\n ...props\r\n}: HeadingProps) => (\r\n \r\n {children}\r\n \r\n);\r\n","import React from \"react\";\r\n\r\nimport styled, { css } from \"styled-components\";\r\n\r\nconst StyledShelf = styled.div`\r\n ${({ mobile }) =>\r\n mobile &&\r\n css`\r\n @media screen and (max-width: 480px) {\r\n margin-bottom: ${mobile}px;\r\n }\r\n `}\r\n\r\n ${({ tablet }) =>\r\n tablet &&\r\n css`\r\n @media screen and (min-width: 481px) and (max-width: 1024px) {\r\n margin-bottom: ${tablet}px;\r\n }\r\n `}\r\n\r\n ${({ desktop }) =>\r\n desktop &&\r\n css`\r\n @media screen and (min-width: 1025px) {\r\n margin-bottom: ${desktop}px;\r\n }\r\n `}\r\n`;\r\n\r\nconst Shelf = ({ children, ...props }) => (\r\n {children}\r\n);\r\n\r\nexport default Shelf;\r\n","// react\r\nimport { useContext } from \"react\";\r\n\r\n// context\r\nimport InitialContext from \"../../context/InitialContext\";\r\n\r\n// components\r\nimport { Heading } from \"../heading/Heading\";\r\nimport Shelf from \"../shelf/shelf.component\";\r\n\r\n// styles\r\nimport \"./hero.styles.scss\";\r\n\r\nconst Hero = () => {\r\n const context: any = useContext(InitialContext);\r\n\r\n const {\r\n initialState: {\r\n data: {\r\n Subheader,\r\n Headline,\r\n HeroImage: { Url },\r\n },\r\n },\r\n }: {\r\n initialState: {\r\n data: { Subheader: any; Headline: any; HeroImage: { Url: any } };\r\n };\r\n } = context;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {Subheader}\r\n \r\n \r\n \r\n \r\n {Headline}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Hero;\r\n","// component\r\nimport Hero from \"./hero/Hero\";\r\n\r\nconst Header = () => ;\r\n\r\nexport default Header;\r\n","import { createContext } from \"react\";\r\n\r\nconst ProductContext = createContext({});\r\n\r\nexport const ProductProvider = ProductContext.Provider;\r\nexport const ProductConsumer = ProductContext.Consumer;\r\n\r\nexport default ProductContext;\r\n","interface ProductProps {\r\n SAPLeadTime: SAPLeadTimeProps;\r\n SAPPricingInfo: SAPPricingInfoProps;\r\n AvailableInventoryList: any[];\r\n IsUserLoggedIn: boolean;\r\n ProductNumber: string;\r\n ProductStatus: any[];\r\n TempProductNumber: string;\r\n Quantity: string;\r\n InventoryStatusCode: number;\r\n InventoryStatusMessage: string;\r\n PricingStatusMessage: string;\r\n calculatedPricing: any;\r\n isProductDiscontinued: boolean;\r\n ReplacementProductText: string | null;\r\n ReplacementProductUrl: string | null;\r\n MainImage: string | null;\r\n isSubmitted: boolean;\r\n User: any;\r\n}\r\n\r\ninterface SAPPricingInfoProps {\r\n ProductId: string;\r\n FormattedPrice: string;\r\n FormattedMSRP: string;\r\n RawPrice: number;\r\n RawMSRP: number;\r\n CurrencyCode: string;\r\n LeadTime: number;\r\n}\r\n\r\ninterface SAPLeadTimeProps {\r\n SAPDelivaryDate: string;\r\n SAPStatusCode: string;\r\n Icon: string;\r\n IconColor: string;\r\n OutlineColor: string;\r\n Message: string;\r\n IsAddToCartHidden: boolean;\r\n IsAddToQuoteHidden: boolean;\r\n PriceReplacementMessage: string;\r\n}\r\n\r\nexport const initProductData: ProductProps = {\r\n SAPLeadTime: {\r\n SAPDelivaryDate: \"\",\r\n SAPStatusCode: \"\",\r\n Icon: \"\",\r\n IconColor: \"\",\r\n OutlineColor: \"\",\r\n Message: \"\",\r\n IsAddToCartHidden: false,\r\n IsAddToQuoteHidden: false,\r\n PriceReplacementMessage: \"\",\r\n },\r\n SAPPricingInfo: {\r\n ProductId: \"\",\r\n FormattedPrice: \"\",\r\n FormattedMSRP: \"\",\r\n RawPrice: 0,\r\n RawMSRP: 0,\r\n CurrencyCode: \"\",\r\n LeadTime: 0,\r\n },\r\n AvailableInventoryList: [],\r\n ProductNumber: \"\",\r\n ProductStatus: [],\r\n TempProductNumber: \"\",\r\n Quantity: \"1\",\r\n InventoryStatusCode: 0,\r\n InventoryStatusMessage: \"\",\r\n PricingStatusMessage: \"\",\r\n IsUserLoggedIn: false,\r\n calculatedPricing: {},\r\n isProductDiscontinued: false,\r\n ReplacementProductText: null,\r\n ReplacementProductUrl: null,\r\n MainImage: null,\r\n isSubmitted: false,\r\n User: {},\r\n};\r\n\r\n// if reducer logic becomes more complex, consider moving to service\r\nconst discontinuedCheck = (payload: any) => {\r\n const discontinuedStatusCode = 3;\r\n return discontinuedStatusCode === payload?.InventoryStatusCode;\r\n};\r\n\r\nexport const productReducer = (\r\n state = initProductData,\r\n { type, payload }: { type: string; payload: any },\r\n) => {\r\n switch (type) {\r\n case \"SET_PRODUCT\":\r\n discontinuedCheck(payload);\r\n return {\r\n ...payload,\r\n isProductDiscontinued: discontinuedCheck(payload),\r\n };\r\n case \"SET_PRODUCT_NUMBER\":\r\n return {\r\n ...state,\r\n ProductNumber: payload,\r\n };\r\n case \"SET_TEMP_PRODUCT_NUMBER\":\r\n console.log(payload);\r\n return {\r\n ...state,\r\n TempProductNumber: payload,\r\n };\r\n case \"SET_COUNTER_QUANTITY\":\r\n return {\r\n ...state,\r\n Quantity: payload,\r\n };\r\n case \"SET_CALCULATED_PRICING\":\r\n return {\r\n ...state,\r\n calculatedPricing: payload,\r\n };\r\n case \"SET_SUBMITTED\":\r\n return {\r\n ...state,\r\n isSubmitted: payload,\r\n };\r\n case \"SET_USER\":\r\n return {\r\n ...state,\r\n User: payload,\r\n };\r\n default:\r\n throw new Error(`Unhandled action type: ${type}`);\r\n }\r\n};\r\n","const getProduct = async ({ skuItemName, qty }) => {\r\n try {\r\n const target = \"InventoryTool/GetInventoryDetailsAndSAPLeadTime?\";\r\n const params = `&skuItemName=${skuItemName}&skuQuantity=${qty}`;\r\n\r\n const response = await fetch(\r\n process.env.NODE_ENV === \"production\"\r\n ? `/ignitionapi/${target}${params}`\r\n : `http://local.legrandav.com/ignitionapi/${target}customerNumber=0000140823${params}`,\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data;\r\n } catch (error) {\r\n console.log(`getProduct error: ${error}`);\r\n }\r\n};\r\n\r\nexport default getProduct;\r\n","const getUser = async () => {\r\n try {\r\n const response = await fetch(\r\n process.env.NODE_ENV === \"production\"\r\n ? `/ignitionapi/ProductService/ProductUser`\r\n : `http://local.legrandav.com/ignitionapi/ignitionapi/ProductService/ProductUser`,\r\n );\r\n\r\n const data = await response.json();\r\n\r\n return data;\r\n } catch (error) {\r\n console.log(`getProduct error: ${error}`);\r\n }\r\n};\r\n\r\nexport default getUser;\r\n","import React from \"react\";\r\n\r\nimport \"./loadingSkeleton.styles.scss\";\r\n\r\nconst LoadingSkeleton = (props: any) => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default LoadingSkeleton;\r\n","import React from \"react\";\r\n\r\nimport \"./container.styles.scss\";\r\ninterface ContainerProps {\r\n children: any;\r\n}\r\n\r\nconst Container = ({ children }: ContainerProps) => (\r\n
{children}
\r\n);\r\n\r\nexport default Container;\r\n","import React from \"react\";\r\n\r\nimport \"./visuallyHidden.styles.scss\";\r\n\r\ninterface VisuallyHiddenProps {\r\n children: any;\r\n}\r\n\r\nconst VisuallyHidden = ({ children }: VisuallyHiddenProps) => (\r\n
{children}
\r\n);\r\n\r\nexport default VisuallyHidden;\r\n","// react\r\nimport React, { useEffect, useState, useContext } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// components\r\nimport VisuallyHidden from \"../visuallyHidden/VisuallyHidden\";\r\n\r\n// styles\r\nimport \"./counter.styles.scss\";\r\n\r\ninterface CounterProps {\r\n min?: number;\r\n max?: number;\r\n onCountChanged?: (count: string) => void;\r\n onKeyPress?: (e: any) => void;\r\n}\r\n\r\nconst Counter = ({ min, max, onKeyPress }: CounterProps) => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productDispatch,\r\n productState: { Quantity },\r\n }: {\r\n productDispatch: any;\r\n productState: {\r\n Quantity: string;\r\n };\r\n } = context;\r\n\r\n const [count, setStateCount]: [count: string, setStateCount: any] =\r\n useState(Quantity);\r\n\r\n const parsedCountInt = parseInt(count);\r\n const minCheck = (val: number) => (min ? val >= min : true);\r\n const maxCheck = (val: number) => (max ? val <= max : true);\r\n const setCountStringHandler = (count: any) => setStateCount(count.toString());\r\n\r\n const increment = () => {\r\n const updatedCount = parsedCountInt + 1;\r\n\r\n if (maxCheck(updatedCount)) setCountStringHandler(updatedCount);\r\n };\r\n\r\n const decrement = () => {\r\n const updatedCount = parsedCountInt - 1;\r\n\r\n if (minCheck(updatedCount)) return setCountStringHandler(updatedCount);\r\n };\r\n\r\n const numberChangeInput = (event: React.ChangeEvent) => {\r\n const valueAsString = event.target.value;\r\n const valueAsInt = parseInt(valueAsString);\r\n const isIntegerRegex = new RegExp(/^[0-9]+$/);\r\n const isNotInteger = !isIntegerRegex.test(valueAsString);\r\n\r\n // handle empty string, which is valid\r\n if (\"\" === valueAsString) return setStateCount(\"\");\r\n\r\n // if string is not a number\r\n if (isNotInteger) return;\r\n\r\n // sets to min if they try to go under\r\n if (min && !minCheck(valueAsInt)) return setCountStringHandler(min);\r\n\r\n // sets to max if they try to go over\r\n if (max && !maxCheck(valueAsInt)) return setCountStringHandler(max);\r\n\r\n return setStateCount(valueAsString);\r\n };\r\n\r\n useEffect(() => {\r\n productDispatch({\r\n type: \"SET_COUNTER_QUANTITY\",\r\n payload: count,\r\n });\r\n // eslint-disable-next-line\r\n }, [count]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Counter;\r\n","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport \"./copy.styles.scss\";\r\n\r\ninterface CopyProps {\r\n element: any;\r\n children: any;\r\n props: any;\r\n}\r\n\r\nconst StyledCopy = styled.p``;\r\n\r\nexport const Copy = ({ element = \"p\", children, ...props }: CopyProps) => (\r\n \r\n {children}\r\n \r\n);\r\n","import React from \"react\";\r\n\r\nimport \"./button.styles.scss\";\r\n\r\ninterface ButtonProps {\r\n children?: any;\r\n onClick?: any;\r\n className?: string;\r\n}\r\n\r\nconst Button = ({ children, onClick, className }: ButtonProps, props: any) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\ninterface LinkProps {\r\n children?: any;\r\n href?: any;\r\n className?: string;\r\n}\r\n\r\nexport const Link = ({ children, href, className }: LinkProps, props: any) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default Button;\r\n","const GetFieldSuggest = async (keyword: string) => {\r\n try {\r\n const source =\r\n process.env.REACT_APP_COVEO_INDEX ?? \"Coveo_web_index - devFeature\";\r\n\r\n const header = new Headers({\r\n Authorization: `Bearer ${\r\n process.env.REACT_APP_COVEO_API_TOKEN ??\r\n \"xx010cf958-c4ab-4d64-8ad8-5e074257d494\"\r\n }`,\r\n });\r\n\r\n // accessToken: 'xx87526554-97c4-4381-95e1-d33052f52ff4',// 'xx010cf958-c4ab-4d64-8ad8-5e074257d494',\r\n const requestOptions = {\r\n method: \"GET\",\r\n headers: header,\r\n };\r\n const showAllBrandsQueryParam = `(\"Middle Atlantic Products\", \"C2G\", \"Chief\")`;\r\n const organizationId =\r\n process.env.REACT_APP_COVEO_ORG ??\r\n \"legrandavbrandsnonproduction1aqj5fqf4\";\r\n const field = \"@computedproductnumber\";\r\n const constantQueryOverride = `(@brandfacet==${showAllBrandsQueryParam}) AND (@z95xtemplatename==\"Product Sku\") AND (NOT @isz32xthirdz32xpartyz32xproduct==1) AND (@source==\"${source}\")`;\r\n const pattern = \"*\" + keyword + \"*\";\r\n const patternType = \"wildcard\"; // wildcard | regularexpression | editdistance | phonetic\r\n const searchHub = \"General Product Search Hub\";\r\n //const pipeline = 'General Product Search Hub'\r\n const sortCriteria = \"nosort\"; //occurrences | nosort\r\n const maximumNumberOfValues = 5;\r\n //const recommendation = 'RecommendedProducts'\r\n //const logicalIndex = 'RecommendedProducts'\r\n const params = `organizationId=${organizationId}&field=${field}&constantQueryOverride=${constantQueryOverride}&pattern=${pattern}&patternType=${patternType}&searchHub=${searchHub}&sortCriteria=${sortCriteria}&maximumNumberOfValues=${maximumNumberOfValues}`;\r\n\r\n const response = await fetch(\r\n `https://platform.cloud.coveo.com/rest/search/v2/values?${params}`,\r\n requestOptions,\r\n );\r\n\r\n const data = await response.text().then((text: any) => {\r\n const data = text && JSON.parse(text);\r\n //console.log('data', data)\r\n let index = 0;\r\n return (\r\n data.values &&\r\n data.values.map((v: { value: any }) => {\r\n index++;\r\n\r\n const regex = new RegExp(`(${keyword})`, \"i\");\r\n\r\n const replaced = v.value.replace(regex, \"$&\");\r\n\r\n return {\r\n highlightedValue: replaced,\r\n name: v.value,\r\n index: index,\r\n };\r\n })\r\n );\r\n });\r\n\r\n return data;\r\n } catch (error) {\r\n console.log(`getProduct error: ${error}`);\r\n }\r\n};\r\n\r\nexport default GetFieldSuggest;\r\n","import React, {\r\n useState,\r\n useEffect,\r\n Dispatch,\r\n SetStateAction,\r\n createRef,\r\n RefObject,\r\n useContext,\r\n} from \"react\";\r\n\r\nimport { FaTimesCircle } from \"react-icons/fa\";\r\n\r\nimport \"./typeahead.styles.scss\";\r\nimport GetFieldSuggest from \"../../api/GetFieldSuggest\";\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\ninterface TypeAheadProps {\r\n placeholder: string;\r\n initialValue?: string;\r\n onInputChange: (value?: string) => void;\r\n productNumberContext: (value: string) => void;\r\n isInvalid: boolean;\r\n}\r\n\r\nconst TypeAhead = ({\r\n placeholder,\r\n productNumberContext,\r\n onInputChange,\r\n initialValue,\r\n isInvalid,\r\n}: TypeAheadProps) => {\r\n const productContext: any = useContext(ProductContext);\r\n\r\n const {\r\n productDispatch,\r\n }: {\r\n productDispatch: any;\r\n } = productContext;\r\n\r\n const useKeyPress = function (\r\n targetKey: string,\r\n ref: RefObject,\r\n ) {\r\n const [keyPressed, setKeyPressed] = useState(false);\r\n\r\n function downHandler({ key }: { key: string }) {\r\n if (key === targetKey) {\r\n setKeyPressed(true);\r\n }\r\n }\r\n\r\n const upHandler = ({ key }: { key: string }) => {\r\n if (key === targetKey) {\r\n setKeyPressed(false);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n ref.current?.addEventListener(\"keydown\", downHandler);\r\n ref.current?.addEventListener(\"keyup\", upHandler);\r\n\r\n return () => {\r\n ref.current?.removeEventListener(\"keydown\", downHandler);\r\n ref.current?.removeEventListener(\"keyup\", upHandler);\r\n };\r\n });\r\n\r\n return keyPressed;\r\n };\r\n\r\n const [items, setItems] = useState([]);\r\n //const i = items[0];\r\n type itemType = {\r\n id: number;\r\n index: number;\r\n name: string;\r\n highlightedValue: string;\r\n };\r\n type ListItemType = {\r\n item: itemType;\r\n active: boolean;\r\n setSelected: Dispatch>;\r\n };\r\n const ListItem = ({ item, active, setSelected }: ListItemType) => (\r\n setSelected(item)}\r\n dangerouslySetInnerHTML={{ __html: item.highlightedValue }}\r\n />\r\n );\r\n\r\n const searchBoxInput = createRef();\r\n const searchBox = createRef();\r\n const [selected, setSelected] =\r\n useState>(undefined);\r\n // const downPress = useKeyPress(\"ArrowDown\", searchBox);\r\n // const upPress = useKeyPress(\"ArrowUp\", searchBox);\r\n const enterPress = useKeyPress(\"Enter\", searchBox);\r\n const downPressInput = useKeyPress(\"ArrowDown\", searchBoxInput);\r\n const upPressInput = useKeyPress(\"ArrowUp\", searchBoxInput);\r\n const enterPressInput = useKeyPress(\"Enter\", searchBoxInput);\r\n const [cursor, setCursor] = useState(0);\r\n const [forceChange, setForceChange] = useState(true);\r\n const [searchItem, setSearchItem] = useState(initialValue ?? \"\");\r\n const [showSuggestions, setShowSuggestions] = useState(false);\r\n const [initial, setInitial] = useState(true);\r\n\r\n const passProductToParent = (selected: any) => productNumberContext(selected);\r\n const [suggestionClicked, setClicked] = useState(false);\r\n\r\n const handleClickOutside = (evt: Event) => {\r\n if (\r\n evt.target instanceof HTMLElement &&\r\n searchBox.current?.contains(evt.target)\r\n ) {\r\n setShowSuggestions(true);\r\n } else {\r\n setShowSuggestions(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (searchItem) {\r\n onInputChange && onInputChange(searchItem);\r\n GetFieldSuggest(searchItem).then((data) => {\r\n // const values = data.values.map((d: any[]) => {\r\n // return d.value;\r\n // });\r\n //console.log(data);\r\n setItems(data);\r\n });\r\n }\r\n }, [searchItem]);\r\n\r\n useEffect(() => {\r\n // add when mounted\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n // return function to be called when unmounted\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [searchBox]);\r\n\r\n const handelInputChange = (e: React.SyntheticEvent) => {\r\n setSelected(undefined);\r\n setSearchItem(e.currentTarget.value);\r\n setShowSuggestions(true);\r\n };\r\n // const handelInputKeyPress = (e: React.SyntheticEvent) => {\r\n // setSelected(undefined);\r\n // setSearchItem(e.currentTarget.value);\r\n // setShowSuggestions(true);\r\n // };\r\n const handelSuggestionClick = (\r\n selected: SetStateAction,\r\n ) => {\r\n if (selected) {\r\n setSelected(selected);\r\n setSearchItem(selected.name);\r\n passProductToParent(selected.name);\r\n setShowSuggestions(false);\r\n setClicked((prevState) => (prevState = true));\r\n }\r\n };\r\n const handleOnClick = (e: React.SyntheticEvent) => {\r\n setShowSuggestions(true);\r\n };\r\n const handleOnFocus = () => {\r\n setClicked((prevState) => (prevState = false));\r\n setShowSuggestions(true);\r\n };\r\n const handleOnBlur = () => {\r\n setShowSuggestions(false);\r\n };\r\n\r\n useEffect(() => {\r\n if (initial && initialValue) {\r\n setSearchItem(initialValue);\r\n setInitial(false);\r\n }\r\n }, [initialValue]);\r\n\r\n useEffect(() => {\r\n if (downPressInput) {\r\n if (items.length === 1) {\r\n setCursor(0);\r\n setForceChange(!forceChange);\r\n }\r\n setCursor((prevState) =>\r\n prevState < items.length - 1 ? prevState + 1 : prevState,\r\n );\r\n\r\n setShowSuggestions(true);\r\n }\r\n }, [downPressInput]);\r\n\r\n useEffect(() => {\r\n if (upPressInput) {\r\n if (items.length === 1) {\r\n setCursor(0);\r\n setForceChange(!forceChange);\r\n }\r\n setCursor((prevState) => (prevState > 0 ? prevState - 1 : prevState));\r\n setShowSuggestions(true);\r\n }\r\n }, [upPressInput]);\r\n\r\n useEffect(() => {\r\n if (cursor > -1 && items.length >= cursor) {\r\n setSelected(items[cursor]);\r\n }\r\n }, [cursor]);\r\n\r\n useEffect(() => {\r\n selected && onInputChange && onInputChange(selected.name);\r\n //selected && setSearchItem(selected.name);\r\n }, [selected]);\r\n\r\n useEffect(() => {\r\n setCursor(-1);\r\n }, [items]);\r\n\r\n useEffect(() => {\r\n if (enterPressInput || enterPress) {\r\n productDispatch({\r\n type: \"SET_SUBMITTED\",\r\n payload: true,\r\n });\r\n if (searchBoxInput.current) {\r\n setCursorPosition(searchBoxInput);\r\n }\r\n setShowSuggestions(false);\r\n }\r\n }, [enterPress, enterPressInput]);\r\n\r\n useEffect(() => {\r\n if (selected && suggestionClicked) {\r\n if (searchBoxInput.current) {\r\n setCursorPosition(searchBoxInput);\r\n setShowSuggestions(false);\r\n }\r\n }\r\n });\r\n\r\n function setCursorPosition(searchBoxInput: any) {\r\n if (searchBoxInput.current) {\r\n searchBoxInput.current?.focus();\r\n searchBoxInput.current.selectionEnd = searchBoxInput.current.value.length;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {isInvalid === true && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n {items &&\r\n items.map((item, i) => (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TypeAhead;\r\n\r\n//https://stackoverflow.com/questions/42036865/react-how-to-navigate-through-list-by-arrow-keys\r\n","import React from \"react\";\r\n\r\nimport \"./formControl.styles.scss\";\r\n\r\ninterface FormControlProps {\r\n children: any;\r\n isInvalid?: any;\r\n}\r\n\r\nconst FormControl = ({ children, isInvalid }: FormControlProps) => (\r\n \r\n {children}\r\n
\r\n);\r\n\r\nexport default FormControl;\r\n","import React from \"react\";\r\n\r\nimport \"./formLabel.styles.scss\";\r\n\r\ninterface FormLabelProps {\r\n children: any;\r\n labelIdentifier: string;\r\n isRequired?: boolean;\r\n isInvalid?: boolean;\r\n}\r\n\r\nconst FormLabel = ({\r\n children,\r\n labelIdentifier,\r\n isRequired,\r\n isInvalid,\r\n}: FormLabelProps) => (\r\n \r\n {children}\r\n {isRequired && (\r\n \r\n *\r\n \r\n )}\r\n \r\n);\r\n\r\nexport default FormLabel;\r\n","import React from \"react\";\r\n\r\nimport \"./errorMessage.styles.scss\";\r\n\r\ninterface ErrorMessageProps {\r\n text?: string;\r\n}\r\n\r\nconst ErrorMessage = ({ text }: ErrorMessageProps) => (\r\n <>\r\n {text ? (\r\n

{text}

\r\n ) : (\r\n

Please enter a valid product number.

\r\n )}\r\n \r\n);\r\n\r\nexport default ErrorMessage;\r\n","// react\r\nimport { useState, useEffect, useContext } from \"react\";\r\n\r\n// components\r\nimport Counter from \"../counter/Counter\";\r\nimport { Heading } from \"../heading/Heading\";\r\nimport { Copy } from \"../copy/Copy\";\r\nimport Shelf from \"../shelf/shelf.component\";\r\nimport Button from \"../button/Button\";\r\nimport TypeAhead from \"../typeahead/typeahead\";\r\nimport FormControl from \"../formControl/FormControl\";\r\nimport FormLabel from \"../formLabel/FormLabel\";\r\nimport ErrorMessage from \"../errorMessage/ErrorMessage\";\r\n\r\n// context\r\nimport InitialContext from \"../../context/InitialContext\";\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// styles\r\nimport \"./searchForm.styles.scss\";\r\n\r\n// Parent: InventorySearchForm.tsx\r\n// we aren't using invalid input state yet. commented out state and function would make them work\r\nfunction SearchForm(\r\n { productNumberParent }: { productNumberParent: any },\r\n props: any,\r\n) {\r\n // context\r\n const initialContext: any = useContext(InitialContext);\r\n const productContext: any = useContext(ProductContext);\r\n\r\n const {\r\n productDispatch,\r\n productState: { ProductNumber },\r\n }: {\r\n productDispatch: any;\r\n productState: {\r\n ProductNumber: string;\r\n Quantity: string;\r\n isSubmitted: boolean;\r\n };\r\n } = productContext;\r\n\r\n const {\r\n initialState: {\r\n data: { BodyHeadline, BodyCopy },\r\n },\r\n }: {\r\n initialState: {\r\n data: { BodyHeadline: string; BodyCopy: string };\r\n };\r\n } = initialContext;\r\n\r\n // locally scoped hooks\r\n const [invalid, setInvalid] = useState(false);\r\n const [isFirstRun, setIsFirstRun] = useState(true);\r\n\r\n const onSubmitHandler = () =>\r\n productDispatch({\r\n type: \"SET_SUBMITTED\",\r\n payload: true,\r\n });\r\n\r\n useEffect(() => {\r\n \"\" === ProductNumber && !isFirstRun ? setInvalid(true) : setInvalid(false);\r\n setIsFirstRun(false);\r\n }, [ProductNumber]);\r\n\r\n const handleCounterChange = (count: string) =>\r\n productDispatch({\r\n type: \"SET_COUNTER_QUANTITY\",\r\n payload: count,\r\n });\r\n\r\n const productNumberContext = (product: string) =>\r\n productNumberParent(product);\r\n\r\n const handleInputChange = (productNumber?: string) => {\r\n if (productNumber) {\r\n const valueWithSpacesTrimmed = productNumber.trim();\r\n productNumberContext(valueWithSpacesTrimmed);\r\n }\r\n };\r\n\r\n const onSearchBoxKeyPress = (e: any) => {\r\n if (e && e.key === \"Enter\") {\r\n onSubmitHandler();\r\n }\r\n };\r\n\r\n const getProductFromQueryString = () => {\r\n const urlSearchParams = new URLSearchParams(window.location.search);\r\n const params = Object.fromEntries(urlSearchParams.entries());\r\n\r\n productNumberContext(params.sku ?? \"\");\r\n };\r\n\r\n useEffect(() => {\r\n getProductFromQueryString();\r\n }, []);\r\n\r\n // useEffect(() => {\r\n // console.log('productNumber changed', productNumber)\r\n // }, [productNumber]);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n {BodyHeadline}\r\n \r\n \r\n\r\n \r\n \r\n {BodyCopy}\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n Product Number\r\n \r\n \r\n \r\n {invalid && }\r\n \r\n \r\n \r\n \r\n \r\n Quantity\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default SearchForm;\r\n","// react\r\nimport { useContext, useEffect, useState } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// components\r\nimport { Heading } from \"../heading/Heading\";\r\nimport NonBreakingSpace from \"../nonbreakingSpace/NonBreakingSpace\";\r\n\r\n// styles\r\nimport \"./pricingAvailability.styles.scss\";\r\n\r\nexport enum AvailabilityOption {\r\n Pricing,\r\n Availability,\r\n NoResult,\r\n Discontinued,\r\n NoCatalogs,\r\n ComingSoon,\r\n}\r\n\r\ninterface PriceAvailablityProps {\r\n children: any;\r\n availabilityOption: AvailabilityOption;\r\n}\r\n\r\nconst PricingAvailability = (\r\n { children, availabilityOption }: PriceAvailablityProps,\r\n props: any,\r\n) => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const { Pricing, Availability, NoResult, Discontinued, NoCatalogs } =\r\n AvailabilityOption;\r\n\r\n const {\r\n productState: { ProductNumber },\r\n }: {\r\n productState: {\r\n ProductNumber: string;\r\n };\r\n } = context;\r\n\r\n const [localProductNumber, setProductNumber] = useState(ProductNumber);\r\n\r\n const beforeProductNumberMsg = () => {\r\n switch (availabilityOption) {\r\n case Pricing:\r\n return `Pricing`;\r\n case Availability:\r\n return `Availability`;\r\n case NoResult:\r\n return `There are no results for`;\r\n case NoCatalogs:\r\n return `Sorry, we are unable to look up inventory details for`;\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n const afterProductNumberMsg = () => {\r\n switch (availabilityOption) {\r\n case Discontinued:\r\n return `has been discontinued.`;\r\n default:\r\n return ``;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setProductNumber(ProductNumber);\r\n }, [ProductNumber]);\r\n\r\n return (\r\n <>\r\n {localProductNumber && (\r\n \r\n \r\n \r\n {availabilityOption === NoResult && (\r\n info\r\n )}\r\n {availabilityOption === NoCatalogs && (\r\n info\r\n )}\r\n {availabilityOption === Discontinued && (\r\n report_problem\r\n )}\r\n {beforeProductNumberMsg()}\r\n {(availabilityOption === NoResult ||\r\n availabilityOption === NoCatalogs ||\r\n availabilityOption === Discontinued) && (\r\n \r\n {localProductNumber.toUpperCase()}\r\n \r\n )}\r\n {availabilityOption === Discontinued && }\r\n {afterProductNumberMsg()}\r\n \r\n \r\n {children}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PricingAvailability;\r\n","import Shelf from \"./shelf/shelf.component\";\r\nimport SearchForm from \"./searchForm/SearchForm\";\r\n\r\n// Parent Inventory.tsx\r\nconst InventorySearchForm = ({\r\n productNumberParent,\r\n}: {\r\n productNumberParent: any;\r\n}) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default InventorySearchForm;\r\n","const NonBreakingSpace = () =>  ;\r\n\r\nexport default NonBreakingSpace;\r\n","import React from \"react\";\r\n\r\nimport \"./Message.styles.scss\";\r\n\r\ninterface MessageProps {\r\n text?: string;\r\n additionalClass?: string;\r\n}\r\n\r\nconst ErrorMessage = ({ text, additionalClass }: MessageProps) => {\r\n const messageClasses = !additionalClass\r\n ? `pricing_message`\r\n : `pricing_message ${additionalClass}`;\r\n\r\n return (\r\n <>\r\n {text ? (\r\n

\r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default ErrorMessage;\r\n","import Shelf from \"./shelf/shelf.component\";\r\nimport PricingAvailability, {\r\n AvailabilityOption,\r\n} from \"./pricingAvailability/PricingAvailability\";\r\nimport Message from \"./Message/Message\";\r\n\r\ninterface InventoryNoResultsProps {\r\n InventoryStatusMessage: string;\r\n InventoryStatusCode: number;\r\n}\r\n\r\nconst InventoryNoResults = ({\r\n InventoryStatusMessage,\r\n InventoryStatusCode,\r\n}: InventoryNoResultsProps) => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default InventoryNoResults;\r\n","declare global {\r\n interface Window {\r\n __weco: any;\r\n }\r\n}\r\n\r\nfunction legacyGetWeco(fn: any) {\r\n const useStrict = '\"use strict\";';\r\n const fnString = `require(['sitecoreweco'], function(w) { window.__weco = w })`;\r\n Function(useStrict + \"return (\" + fnString + \")\")();\r\n\r\n function check() {\r\n if (window.__weco === undefined) {\r\n setTimeout(check, 1); //wait 1 millisecnds then recheck\r\n return;\r\n }\r\n fn(window.__weco);\r\n //delete window.__weco;\r\n }\r\n check();\r\n}\r\n\r\nexport const legacyAddToCart = (\r\n itemNumber: string,\r\n quantity: number,\r\n scID: string,\r\n type: string,\r\n) =>\r\n legacyGetWeco((w: any) => {\r\n const quoteType = w.wecoQuoteType;\r\n const orderType = w.wecoOrderType;\r\n const prType = type === \"quote\" ? quoteType : orderType;\r\n return w.wecoAddToCart(\r\n itemNumber,\r\n itemNumber,\r\n quantity,\r\n scID,\r\n undefined,\r\n undefined,\r\n prType,\r\n undefined,\r\n undefined,\r\n );\r\n });\r\n","import \"./loginLink.styles.scss\";\r\ninterface LoginLinkProps {\r\n customMessage?: string;\r\n}\r\n\r\nconst LoginLink = ({ customMessage }: LoginLinkProps) => {\r\n const linkText = customMessage ? customMessage : \"pricing\";\r\n\r\n function isElementVisible(element: Element) {\r\n const style = window.getComputedStyle(element);\r\n\r\n if (style.display == \"none\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n function openSignInMenu() {\r\n const desktopStickyHeader = document.querySelectorAll(\r\n \"#header-desktop .header-sticky-nav\",\r\n );\r\n const mobileHeader = document.querySelectorAll(\"#header-mobile\");\r\n\r\n // Mob/tab logic\r\n if (mobileHeader.length > 0 && isElementVisible(mobileHeader[0])) {\r\n const mobileNavSignIn = document.querySelectorAll(\r\n \"#header-mobile .header-mobile-menu-bar .header-mobile-right-col .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const signInMobile: HTMLElement = mobileNavSignIn[0] as HTMLElement;\r\n signInMobile.click();\r\n } else {\r\n // Desktop logic\r\n // Desktop sticky nav logic\r\n if (desktopStickyHeader.length > 0) {\r\n const stickyNavSignIn = document.querySelectorAll(\r\n \"#header-desktop .header-sticky-nav #header-main-nav-container .fixed-header-actions-container.show-fixed-header-actions .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const stickySignInDesktop: HTMLElement =\r\n stickyNavSignIn[0] as HTMLElement;\r\n stickySignInDesktop.click();\r\n } else {\r\n const nonStickyNavSignIn = document.querySelectorAll(\r\n \"#header-desktop .header-utility-menu-desktop .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const nonStickySignInDesktop: HTMLElement =\r\n nonStickyNavSignIn[0] as HTMLElement;\r\n nonStickySignInDesktop.click();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n Sign in for {linkText}\r\n \r\n );\r\n};\r\n\r\nexport default LoginLink;\r\n","// react\r\nimport { useContext, useEffect, useState } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\nimport Shelf from \"../shelf/shelf.component\";\r\n\r\n// styles\r\nimport \"./cartItem.styles.scss\";\r\n\r\nconst CartItem = () => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productState: { SAPPricingInfo, ProductTitle, Quantity, MainImage },\r\n }: {\r\n productState: {\r\n SAPPricingInfo: any;\r\n ProductTitle: string;\r\n Quantity: number;\r\n MainImage: any;\r\n };\r\n } = context;\r\n\r\n const [totalPriceStr, setTotalPriceStr] = useState(\"\");\r\n const [totalMSRPStr, setTotalMSRPStr] = useState(\"\");\r\n\r\n const currencyConverter = (type: any, formatted: any) =>\r\n SAPPricingInfo?.RawPrice !== 0\r\n ? `${SAPPricingInfo?.Currency}${type?.toLocaleString(undefined, {\r\n minimumFractionDigits: 2,\r\n })}`\r\n : formatted ?? \"\";\r\n\r\n const totalCalculator = (type: any) => (type ? type * (Quantity ?? 1) : 0);\r\n\r\n const quantityHandler = () => {\r\n const totalPrice = totalCalculator(SAPPricingInfo?.RawPrice);\r\n const totalMSRP = totalCalculator(SAPPricingInfo?.RawMSRP);\r\n\r\n const totalPriceStr: any = currencyConverter(\r\n totalPrice,\r\n SAPPricingInfo?.FormattedPrice,\r\n );\r\n\r\n setTotalPriceStr(totalPriceStr);\r\n\r\n const totalMSRPStr: any = currencyConverter(\r\n totalMSRP,\r\n SAPPricingInfo?.FormattedMSRP,\r\n );\r\n\r\n setTotalMSRPStr(totalMSRPStr);\r\n };\r\n\r\n useEffect(() => {\r\n quantityHandler();\r\n // eslint-disable-next-line\r\n }, [Quantity]);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {`${MainImage?.Title}`}\r\n
\r\n
\r\n
\r\n \r\n {ProductTitle}\r\n \r\n \r\n {`SKU: ${SAPPricingInfo?.ProductId}`}\r\n \r\n \r\n {`Quantity: ${Quantity}`}\r\n \r\n \r\n {`${totalPriceStr} ${SAPPricingInfo?.CurrencyCode}`}\r\n \r\n \r\n {`MSRP: ${totalMSRPStr}`}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CartItem;\r\n","import { useContext, useState, createContext, useRef, useMemo } from \"react\";\r\n\r\nimport { CSSTransition } from \"react-transition-group\";\r\n\r\nimport \"./modal.styles.scss\";\r\n\r\nconst TriggersState = createContext();\r\n\r\nconst Store = (fn) => {\r\n const ref = useRef();\r\n let current = ref.current;\r\n\r\n if (!current) current = { v: fn() };\r\n\r\n return current.v;\r\n};\r\n\r\nexport const ModalWrapper = ({ children }) => {\r\n const state = useState(false);\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\nexport const ModalTrigger = ({ children, className = \"modal-trigger\" }) => {\r\n const { isActive, onClick } = useTriggerState();\r\n\r\n return (\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport const useTriggerState = () => {\r\n const [isActive, setActive] = useContext(TriggersState);\r\n const onClick = Store(() => () => setActive(!isActive));\r\n\r\n const state = useMemo(\r\n () => ({\r\n isActive,\r\n onClick,\r\n }),\r\n [isActive, onClick],\r\n );\r\n\r\n return state;\r\n};\r\n\r\nexport const Modal = ({ children }) => {\r\n const isActive = useModalState();\r\n\r\n return (\r\n <>\r\n {isActive && ModalBackdrop()}\r\n \r\n
\r\n {ModalClose()}\r\n {children}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst ModalBackdrop = () => (\r\n \r\n
\r\n \r\n);\r\nconst ModalClose = () => (\r\n \r\n
\r\n close\r\n
\r\n
\r\n);\r\n\r\nconst useModalState = () => {\r\n const [isActive] = useContext(TriggersState);\r\n\r\n return isActive;\r\n};\r\n","// components\r\nimport Button, { Link } from \"../button/Button\";\r\nimport { useTriggerState } from \"../modal/Modal\";\r\n\r\n// styles\r\nimport \"./cartNavigation.styles.scss\";\r\n\r\nconst CartNavigation = () => {\r\n const StayHereButton = () => {\r\n const { onClick } = useTriggerState();\r\n\r\n return (\r\n \r\n );\r\n };\r\n return (\r\n
\r\n \r\n \r\n View Cart\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CartNavigation;\r\n","// react\r\nimport { useContext } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// components\r\nimport CartItem from \"./CartItem\";\r\n// import CartTotal from \"./CartTotal\";\r\nimport CartNavigation from \"./CartNavigation\";\r\nimport Shelf from \"../shelf/shelf.component\";\r\nimport { Heading } from \"../heading/Heading\";\r\n\r\n// styles\r\nimport \"./addToCartModal.styles.scss\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst AddToCartModal = (...props: any) => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productState: { Quantity },\r\n }: {\r\n productState: {\r\n Quantity: number;\r\n };\r\n } = context;\r\n\r\n const ItemDisplayHandler = () => (Quantity == 1 ? \"item\" : \"items\");\r\n\r\n useEffect(() => {\r\n ItemDisplayHandler();\r\n }, [Quantity]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n ({Quantity}) {ItemDisplayHandler()} added to your cart\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {/* */}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddToCartModal;\r\n","// react\r\nimport { useContext, useState, useEffect } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// helpers\r\nimport { legacyAddToCart } from \"../../helpers\";\r\n\r\n// components\r\nimport Button from \"../button/Button\";\r\nimport LoginLink from \"../loginLink/LoginLink\";\r\nimport AddToCartModal from \"../AddToCartModal/AddToCartModal\";\r\nimport { ModalWrapper, Modal, useTriggerState } from \"../modal/Modal\";\r\n\r\n// styles\r\nimport \"./pricing.styles.scss\";\r\n\r\ninterface TableCellProps {\r\n Label?: string;\r\n Value?: any;\r\n AdditionalInfo?: string;\r\n className?: string | undefined;\r\n children?: any;\r\n}\r\n\r\nconst TableCell = ({\r\n Label,\r\n Value,\r\n AdditionalInfo,\r\n className,\r\n children,\r\n}: TableCellProps) => (\r\n
\r\n {Label ? (\r\n
{Label}
\r\n ) : null}\r\n\r\n {Value ? (\r\n
{Value}
\r\n ) : null}\r\n\r\n {AdditionalInfo ? (\r\n
\r\n {AdditionalInfo}\r\n
\r\n ) : null}\r\n {children}\r\n
\r\n);\r\n\r\nfunction PricingSection() {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productState: {\r\n SAPLeadTime,\r\n IsUserLoggedIn,\r\n SAPPricingInfo,\r\n Quantity,\r\n ProductNumber,\r\n ProductStatus,\r\n User,\r\n PricingStatusMessage,\r\n },\r\n }: {\r\n productState: {\r\n SAPLeadTime: any;\r\n IsUserLoggedIn: boolean;\r\n SAPPricingInfo: any;\r\n ProductNumber: string;\r\n ProductStatus: any[];\r\n Quantity: number;\r\n User: any;\r\n PricingStatusMessage: string;\r\n };\r\n } = context;\r\n\r\n const handleAddToCartBtnOnClick = () =>\r\n legacyAddToCart(ProductNumber, Quantity, \"\", \"order\");\r\n\r\n const [unitPrice, setUnitPrice] = useState(null);\r\n const [unitMSRP, setUnitMSRP] = useState(null);\r\n const [totalPriceStr, setTotalPriceStr] = useState(\"\");\r\n const [totalMSRPStr, setTotalMSRPStr] = useState(\"\");\r\n const [localQty, setLocalQty] = useState(Quantity);\r\n\r\n const currencyConverter = (type: any, formatted: any) =>\r\n SAPPricingInfo?.RawPrice !== 0\r\n ? `${SAPPricingInfo?.Currency}${type?.toLocaleString(undefined, {\r\n minimumFractionDigits: 2,\r\n })} ${SAPPricingInfo?.CurrencyCode}`\r\n : formatted ?? \"\";\r\n\r\n const totalCalculator = (type: any) => (type ? type * (localQty ?? 1) : 0);\r\n\r\n const quantityHandler = () => {\r\n const totalPrice = totalCalculator(SAPPricingInfo?.RawPrice);\r\n const totalMSRP = totalCalculator(SAPPricingInfo?.RawMSRP);\r\n\r\n const unitPrice: any = currencyConverter(\r\n SAPPricingInfo?.RawPrice,\r\n SAPPricingInfo?.FormattedPrice,\r\n );\r\n\r\n setUnitPrice(unitPrice);\r\n\r\n const unitMSRP: any = currencyConverter(\r\n SAPPricingInfo?.RawMSRP,\r\n SAPPricingInfo?.FormattedMSRP,\r\n );\r\n\r\n setUnitMSRP(unitMSRP);\r\n\r\n const totalPriceStr: any = currencyConverter(\r\n totalPrice,\r\n SAPPricingInfo?.FormattedPrice,\r\n );\r\n\r\n setTotalPriceStr(totalPriceStr);\r\n\r\n const totalMSRPStr: any = currencyConverter(\r\n totalMSRP,\r\n SAPPricingInfo?.FormattedMSRP,\r\n );\r\n\r\n setTotalMSRPStr(totalMSRPStr);\r\n };\r\n\r\n const showPriceMessage = () => {\r\n return (\r\n ProductStatus[0]?.ProductStatus === \"Coming Soon\" &&\r\n SAPPricingInfo?.RawPrice === 0\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n setLocalQty(Quantity);\r\n // eslint-disable-next-line\r\n }, [Quantity, ProductNumber]);\r\n\r\n useEffect(() => {\r\n quantityHandler();\r\n // eslint-disable-next-line\r\n }, [localQty, ProductNumber]);\r\n\r\n const TriggerModal = () => {\r\n const { isActive, onClick } = useTriggerState();\r\n\r\n return (\r\n {\r\n onClick();\r\n handleAddToCartBtnOnClick();\r\n }}\r\n >\r\n Add to Cart\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {SAPPricingInfo ? (\r\n <>\r\n
\r\n {showPriceMessage() ? (\r\n

\r\n ) : (\r\n <>\r\n
\r\n
\r\n \r\n \r\n {/* */}\r\n
\r\n
\r\n {SAPPricingInfo && IsUserLoggedIn ? (\r\n <>\r\n \r\n \r\n {/* //uncomment this when we have min qty*/}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n {!SAPLeadTime?.IsAddToCartHidden &&\r\n ProductStatus[0]?.ShowAddToCart && (\r\n
\r\n {SAPPricingInfo &&\r\n IsUserLoggedIn &&\r\n !User?.IsUserLimited ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nexport default PricingSection;\r\n","// react\r\nimport { useContext } from \"react\";\r\nimport _ from \"lodash\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// component\r\nimport LoginLink from \"../loginLink/LoginLink\";\r\n\r\n// styles\r\nimport \"./AvailabilitySection.styles.scss\";\r\n\r\nconst AvailabilityTableRow = ({\r\n Location,\r\n CommittedQty,\r\n UOM,\r\n}: {\r\n Location: any;\r\n CommittedQty: any;\r\n UOM: any;\r\n}) => (\r\n \r\n {Location}\r\n {CommittedQty && Math.round(CommittedQty)}\r\n {UOM === \"EA\" ? \"Each\" : UOM}\r\n \r\n);\r\n\r\nconst AvailabilityList = () => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productState: {\r\n IsUserLoggedIn,\r\n AvailableInventoryList,\r\n InventoryStatusMessage,\r\n InventoryStatusCode,\r\n },\r\n }: {\r\n productState: {\r\n IsUserLoggedIn: boolean;\r\n AvailableInventoryList: any[];\r\n InventoryStatusMessage: string;\r\n InventoryStatusCode: number;\r\n User: any;\r\n };\r\n } = context;\r\n\r\n const shouldShowInventoryStatusMessage = () => {\r\n if (!AvailableInventoryList?.length) {\r\n return true;\r\n }\r\n\r\n const inventoryTotalQty = AvailableInventoryList?.reduce(\r\n (total: number, inventoryItem: any) => {\r\n return (total += Number(inventoryItem.CommittedQty));\r\n },\r\n 0,\r\n );\r\n\r\n return InventoryStatusCode === 503 || inventoryTotalQty === 0;\r\n };\r\n\r\n return (\r\n <>\r\n {shouldShowInventoryStatusMessage() ? (\r\n

\r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {IsUserLoggedIn && (\r\n <>\r\n {_.orderBy(\r\n AvailableInventoryList,\r\n [\"CommittedQty\"],\r\n [\"desc\"],\r\n ).map((AvailableInventory: any, index: number) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n
Stock LocationQty AvailableUnit of Measure
\r\n {!IsUserLoggedIn && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\ninterface SAPLeadTimeProps {\r\n OutlineColor?: string;\r\n IconColor?: string;\r\n Icon?: string;\r\n SAPDelivaryDate?: string;\r\n SAPStatusCode?: string;\r\n Message?: string;\r\n}\r\n\r\nexport const LeadTimeSection = () => {\r\n const context: any = useContext(ProductContext);\r\n const {\r\n productState: { SAPLeadTime },\r\n }: {\r\n productState: {\r\n SAPLeadTime: SAPLeadTimeProps;\r\n };\r\n } = context;\r\n\r\n const delivaryDateHandler = () =>\r\n SAPLeadTime &&\r\n SAPLeadTime.SAPDelivaryDate &&\r\n SAPLeadTime.SAPStatusCode !== \"0\" &&\r\n SAPLeadTime.SAPStatusCode !== \"99\" &&\r\n SAPLeadTime.SAPStatusCode !== \"98\" &&\r\n SAPLeadTime.SAPStatusCode !== \"86\" ? (\r\n {` ${SAPLeadTime.SAPStatusCode} ${\r\n SAPLeadTime.SAPStatusCode === \"1\" ? \" Day - \" : \" Days - \"\r\n } ${SAPLeadTime.SAPDelivaryDate}`}\r\n ) : null;\r\n\r\n if (SAPLeadTime != null) {\r\n return (\r\n <>\r\n {SAPLeadTime ? (\r\n
\r\n
\r\n \r\n {SAPLeadTime.Icon}\r\n
\r\n
\r\n <>\r\n \r\n {delivaryDateHandler()}\r\n \r\n
\r\n
\r\n
\r\n ) : null}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst AvailabilitySection = () => (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n);\r\nexport default AvailabilitySection;\r\n","import React from \"react\";\r\n\r\nimport styled from \"styled-components\";\r\n\r\nimport \"./productStatusText.styles.scss\";\r\n\r\ninterface ProductStatusProps {\r\n mainText: string;\r\n mainTextColor: string;\r\n altText?: string;\r\n altTextColor?: string;\r\n}\r\n\r\nconst StyledHeading = styled.span``;\r\n\r\nexport const ProductStatusText = ({\r\n mainText,\r\n mainTextColor,\r\n altText = \"\",\r\n altTextColor = \"black\",\r\n}: ProductStatusProps) => (\r\n \r\n
\r\n {mainText}  \r\n {altText}\r\n
\r\n
\r\n);\r\n","import \"./link.styles.scss\";\r\n\r\ninterface LinkProps {\r\n className?: string;\r\n link: string;\r\n children: any;\r\n}\r\n\r\nconst Link = ({ className, link, children }: LinkProps) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default Link;\r\n","// react\r\nimport { useContext, useEffect, useState } from \"react\";\r\n\r\n// context\r\nimport ProductContext from \"../../context/ProductContext\";\r\n\r\n// components\r\nimport { Heading } from \"../heading/Heading\";\r\n\r\n// styles\r\nimport \"./pdpLink.styles.scss\";\r\n\r\nconst PdpLink = () => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productState: { ProductUrl, ProductNumber },\r\n }: {\r\n productState: {\r\n ProductUrl: string;\r\n ProductNumber: string;\r\n };\r\n } = context;\r\n\r\n const [localProductNumber, setProductNumber] = useState(ProductNumber);\r\n\r\n useEffect(() => {\r\n setProductNumber(ProductNumber);\r\n }, [ProductNumber]);\r\n\r\n return (\r\n <>\r\n {localProductNumber && (\r\n
\r\n \r\n {localProductNumber.toUpperCase()}\r\n \r\n {ProductUrl ? (\r\n \r\n GO TO PRODUCT\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n GO TO PRODUCT\r\n )}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PdpLink;\r\n","import Shelf from \"./shelf/shelf.component\";\r\nimport PricingAvailability, {\r\n AvailabilityOption,\r\n} from \"./pricingAvailability/PricingAvailability\";\r\nimport PricingSection from \"./PricingSection/PricingSection\";\r\nimport AvailabilitySection from \"./AvailabilitySection/AvailabilitySection\";\r\nimport Message from \"./Message/Message\";\r\nimport { ProductStatusText } from \"./productStatus/ProductStatusText\";\r\nimport Link from \"./link/Link\";\r\nimport PdpLink from \"./pdpLink/PdpLink\";\r\nimport { LeadTimeSection } from \"./AvailabilitySection/AvailabilitySection\";\r\n\r\ninterface InventoryResultsPricingAndAvailibilityProps {\r\n isProductDiscontinued: boolean;\r\n ProductNumber: string;\r\n ProductStatus: any[];\r\n ReplacementProductText: string | null;\r\n ReplacementProductUrl: string | null;\r\n InventoryStatusMessage: string;\r\n}\r\n\r\nconst InventoryResultsPricingAndAvailibility = ({\r\n ProductStatus,\r\n isProductDiscontinued,\r\n ReplacementProductUrl,\r\n ReplacementProductText,\r\n InventoryStatusMessage,\r\n}: InventoryResultsPricingAndAvailibilityProps) => {\r\n // to prevent the chevron icon from breaking onto a new line by itself on small screens\r\n // we're wrapping the chevron and the last word of the text in their own span so they\r\n // will break onto a new line together\r\n const renderReplacementProductLinkText = () => {\r\n const wordsArray = ReplacementProductText?.split(\" \") ?? [];\r\n const lastWord = wordsArray.pop();\r\n\r\n return (\r\n <>\r\n {wordsArray.join(\" \") + \" \"}\r\n \r\n {lastWord}\r\n chevron_right\r\n \r\n \r\n );\r\n };\r\n\r\n return isProductDiscontinued ? (\r\n \r\n {\" \"}\r\n
\r\n \r\n \r\n {ReplacementProductUrl && ReplacementProductText && (\r\n \r\n <>{renderReplacementProductLinkText()}\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n {ProductStatus[0]?.ProductStatus === \"Coming Soon\" && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InventoryResultsPricingAndAvailibility;\r\n","// react\r\nimport { useContext } from \"react\";\r\n\r\n// components\r\nimport { Heading } from \"../heading/Heading\";\r\nimport { Copy } from \"../copy/Copy\";\r\nimport Shelf from \"../shelf/shelf.component\";\r\nimport Button from \"../button/Button\";\r\nimport FormControl from \"../formControl/FormControl\";\r\n\r\n// context\r\nimport InitialContext from \"../../context/InitialContext\";\r\n\r\n// styles\r\nimport \"./signIn.styles.scss\";\r\n\r\nfunction SignIn(props: any) {\r\n // context\r\n const initialContext: any = useContext(InitialContext);\r\n\r\n const {\r\n initialState: {\r\n data: { BodyHeadline, UnAuthBodyCopy },\r\n },\r\n }: {\r\n initialState: {\r\n data: { BodyHeadline: string; UnAuthBodyCopy: string };\r\n };\r\n } = initialContext;\r\n\r\n function isElementVisible(element: Element) {\r\n const style = window.getComputedStyle(element);\r\n\r\n if (style.display == \"none\") {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n function openSignInMenu() {\r\n const desktopStickyHeader = document.querySelectorAll(\r\n \"#header-desktop .header-sticky-nav\",\r\n );\r\n const mobileHeader = document.querySelectorAll(\"#header-mobile\");\r\n\r\n // Mob/tab logic\r\n if (mobileHeader.length > 0 && isElementVisible(mobileHeader[0])) {\r\n const mobileNavSignIn = document.querySelectorAll(\r\n \"#header-mobile .header-mobile-menu-bar .header-mobile-right-col .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const signInMobile: HTMLElement = mobileNavSignIn[0] as HTMLElement;\r\n signInMobile.click();\r\n } else {\r\n // Desktop logic\r\n // Desktop sticky nav logic\r\n if (desktopStickyHeader.length > 0) {\r\n const stickyNavSignIn = document.querySelectorAll(\r\n \"#header-desktop .header-sticky-nav #header-main-nav-container .fixed-header-actions-container.show-fixed-header-actions .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const stickySignInDesktop: HTMLElement =\r\n stickyNavSignIn[0] as HTMLElement;\r\n stickySignInDesktop.click();\r\n } else {\r\n const nonStickyNavSignIn = document.querySelectorAll(\r\n \"#header-desktop .header-utility-menu-desktop .header-actions-container-desktop #NavigationActionSignIn #signin\",\r\n );\r\n const nonStickySignInDesktop: HTMLElement =\r\n nonStickyNavSignIn[0] as HTMLElement;\r\n nonStickySignInDesktop.click();\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n {BodyHeadline}\r\n \r\n \r\n\r\n \r\n \r\n {UnAuthBodyCopy}\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default SignIn;\r\n","// React\r\nimport { useState, useReducer, useEffect, useContext } from \"react\";\r\n\r\n// context\r\nimport ProductContext, { ProductProvider } from \"../context/ProductContext\";\r\nimport { initProductData, productReducer } from \"../context/productReducer\";\r\n\r\n// api\r\nimport getProduct from \"../api/product\";\r\nimport getUser from \"../api/user\";\r\n\r\n// Components\r\nimport LoadingSkeleton from \"./loadingSkeleton/loadingSkeleton.component\";\r\nimport Container from \"./container/Container\";\r\nimport InventorySearchForm from \"./InventorySearchForm\";\r\nimport InventoryNoResults from \"./InventoryNoResults\";\r\nimport InventoryResultsPricingAndAvailibility from \"./InventoryResultsPricingAndAvailibility\";\r\nimport SignIn from \"./SignIn/SignIn\";\r\n\r\nconst Inventory = () => {\r\n const context: any = useContext(ProductContext);\r\n\r\n const {\r\n productDispatch,\r\n productState: {\r\n IsUserLoggedIn,\r\n InventoryStatusCode,\r\n InventoryStatusMessage,\r\n isProductDiscontinued,\r\n ProductNumber,\r\n ProductStatus,\r\n Quantity,\r\n isSubmitted,\r\n ReplacementProductText,\r\n ReplacementProductUrl,\r\n },\r\n }: {\r\n productDispatch: any;\r\n productState: {\r\n IsUserLoggedIn: boolean;\r\n InventoryStatusCode: number;\r\n InventoryStatusMessage: string;\r\n isProductDiscontinued: boolean;\r\n ProductNumber: string;\r\n ProductStatus: any[];\r\n Quantity: string;\r\n isSubmitted: boolean;\r\n ReplacementProductText: string | null;\r\n ReplacementProductUrl: string | null;\r\n };\r\n } = context;\r\n\r\n const [localProductNumber, setLocalProductNumber] = useState(\"\");\r\n\r\n const [isLoading, setLoading] = useState(false);\r\n\r\n const scrollToResultsMobile = () => {\r\n const screenWidth: number = window.screen.width;\r\n const notMobileView = 481;\r\n if (ProductNumber && screenWidth < notMobileView) {\r\n const heroPxlHeight: number =\r\n document.getElementsByClassName(\"_hero\")[0].clientHeight;\r\n const boxPxlHeight: number =\r\n document.getElementsByClassName(\"box\")[0].clientHeight;\r\n const overlapDiff: number = boxPxlHeight - heroPxlHeight;\r\n const finalOffSet: number = boxPxlHeight + overlapDiff;\r\n window.parent.scrollTo({\r\n top: finalOffSet,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n };\r\n\r\n const setQuery = (skuItemName: string, qty: string) => {\r\n const qtyAsInt: number = parseInt(qty);\r\n if (window.history.pushState) {\r\n let newUrl =\r\n window.location.protocol +\r\n \"//\" +\r\n window.location.host +\r\n window.location.pathname;\r\n\r\n if (skuItemName) {\r\n newUrl += \"?sku=\" + skuItemName;\r\n\r\n if (qtyAsInt > 1) newUrl += \"&qty=\" + qtyAsInt;\r\n }\r\n\r\n window.history.pushState({ path: newUrl }, \"\", newUrl);\r\n }\r\n };\r\n\r\n // skuParameterUrl and qtyParameterUrl are only used on the inital load if there are no url parameters\r\n // this is where the logic for the url to maintain state on redirect and refresh\r\n const getProductHandler = (\r\n skuParameterUrl: any = null,\r\n qtyParameterUrl: any = null,\r\n ) => {\r\n setLoading(true);\r\n setTimeout(() => {\r\n scrollToResultsMobile();\r\n }, 100);\r\n\r\n // these variables are used to determine if we are querying the product based on url or state from user\r\n const nonUrlProductSku = localProductNumber ?? \"\";\r\n const productSku =\r\n null !== skuParameterUrl ? skuParameterUrl : nonUrlProductSku;\r\n const nonUrlQty = Quantity ?? \"1\";\r\n const productQty = qtyParameterUrl ? qtyParameterUrl : nonUrlQty;\r\n\r\n getProduct({\r\n skuItemName: productSku,\r\n qty: productQty,\r\n }).then((data) => {\r\n setLoading(false);\r\n\r\n productDispatch({\r\n type: \"SET_PRODUCT\",\r\n payload: data,\r\n });\r\n\r\n data.InventoryStatusCode === 0 && removeQuery();\r\n if (data && data.InventoryStatusCode !== 2) {\r\n setQuery(data.ProductNumber, data.Quantity);\r\n } else {\r\n removeQuery();\r\n }\r\n });\r\n };\r\n\r\n const removeQuery = () => {\r\n const url = window.location.href;\r\n return url.split(/[?#]/)[0];\r\n };\r\n\r\n const ifQueryStringUpdateState = () => {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const sku = urlParams.get(\"sku\");\r\n const qty = urlParams.get(\"qty\");\r\n // set qty in state\r\n if (qty) {\r\n const qtyAsString: string = JSON.stringify(qty);\r\n productDispatch({\r\n type: \"SET_COUNTER_QUANTITY\",\r\n payload: qtyAsString,\r\n });\r\n }\r\n // set product in state then submit\r\n if (sku) {\r\n productDispatch({\r\n type: \"SET_PRODUCT_NUMBER\",\r\n payload: sku,\r\n });\r\n const optionalQty = qty ? qty : \"1\";\r\n getProductHandler(sku, optionalQty);\r\n }\r\n };\r\n\r\n // stops skeleton showing on initial load,\r\n // empty array causes useEffect to only fire on load once\r\n useEffect(() => {\r\n setLoading(false);\r\n // eslint-disable-next-line\r\n ifQueryStringUpdateState();\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isSubmitted) {\r\n getProductHandler();\r\n\r\n productDispatch({\r\n type: \"SET_SUBMITTED\",\r\n payload: false,\r\n });\r\n }\r\n }, [isSubmitted]);\r\n\r\n async function getCurrentUser() {\r\n const result = await getUser();\r\n productDispatch({\r\n type: \"SET_USER\",\r\n payload: result,\r\n });\r\n if (result.User !== null) {\r\n productDispatch({\r\n type: \"SET_SUBMITTED\",\r\n payload: true,\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (IsUserLoggedIn === false) {\r\n getCurrentUser();\r\n }\r\n }, [IsUserLoggedIn]);\r\n\r\n return (\r\n \r\n {IsUserLoggedIn ? (\r\n \r\n ) : (\r\n <>{!isLoading && }\r\n )}\r\n {IsUserLoggedIn && (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : InventoryStatusCode === 2 || InventoryStatusCode === 6 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst InventoryProvider = () => {\r\n const [productState, productDispatch]: [\r\n initialState: any,\r\n initialDispatch: any,\r\n ] = useReducer(productReducer, initProductData);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InventoryProvider;\r\n","// components\r\nimport Header from \"./Header\";\r\nimport InventoryProvider from \"./Inventory\";\r\n\r\nconst Page = () => (\r\n <>\r\n
\r\n \r\n \r\n);\r\n\r\nexport default Page;\r\n","// react\r\nimport { useEffect, useReducer } from \"react\";\r\n\r\n// api\r\nimport GetInventoryUIData from \"./api/initial\";\r\n\r\n// context\r\nimport { InitialProvider } from \"./context/InitialContext\";\r\nimport {\r\n initialReducer,\r\n initialInventoryUIDetails,\r\n} from \"./context/initialReducer\";\r\n\r\n// components\r\nimport Page from \"./components/Page\";\r\n\r\nconst App = () => {\r\n const [initialState, initialDispatch]: [\r\n initialState: any,\r\n initialDispatch: any,\r\n ] = useReducer(initialReducer, initialInventoryUIDetails);\r\n\r\n const GetInventoryUIDataHandler = () =>\r\n GetInventoryUIData().then((data: any) =>\r\n initialDispatch({\r\n type: \"SET_INITIAL_DATA\",\r\n payload: data,\r\n }),\r\n );\r\n\r\n useEffect(() => {\r\n GetInventoryUIDataHandler();\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import React from \"react\";\r\n\r\nimport \"./wrapper.styles.scss\";\r\n\r\nconst Wrapper = ({ children }) => <>{children};\r\n\r\nexport default Wrapper;\r\n","import { render } from \"react-dom\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { store } from \"./helpers/store\";\r\nimport { Provider } from \"react-redux\";\r\nimport App from \"./App\";\r\n\r\n// components\r\nimport Wrapper from \"./components/wrapper/wrapper.component\";\r\n\r\nconst Index = () => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nrender(, document.getElementById(\"root\"));\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}