{"version":3,"file":"static/js/f3bae8696451d6a0dca0.bundle.js","mappings":"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","sources":["webpack://mattressfirm/./src/Utilities/get-zipcode.ts?4f03","webpack://mattressfirm/./src/actions/bedhub-header.action.ts?b6f2","webpack://mattressfirm/./src/actions/get-soci-data.action.ts?ce73","webpack://mattressfirm/./src/data-actions/store-selector-state-data-action.ts?6df6","webpack://mattressfirm/./src/modules/mfrm-header/mfrm-header.tsx?bb76","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/CompanyLogo.tsx?8d03","webpack://mattressfirm/./src/mfrm-components/mfrm-header/util/char-count.ts?236a","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L1/badge.tsx?2cd5","webpack://mattressfirm/./src/mfrm-components/mfrm-header/context/MenuLevelContext.tsx?08d3","webpack://mattressfirm/./src/mfrm-components/mfrm-header/context/MainLinkContext.tsx?4ce6","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/BackToMainMenu.tsx?cb3b","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/ProductCategoryMenu/CategoryHeader.tsx?f298","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/ProductCategoryMenu/PrimarySubcategoryMenu.tsx?f8fc","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/ProductCategoryMenu/SecondarySubcategoryMenu.tsx?26c2","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/ProductCategoryMenu/ProductCategoryMenuWrapper.tsx?0397","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/PromotionalBanner.tsx?0d08","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L2/L2Wrapper.tsx?f0b0","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L1/MenuLogin.tsx?acf5","webpack://mattressfirm/./src/mfrm-components/mfrm-header/util/trap-focus.ts?378e","webpack://mattressfirm/./src/mfrm-components/mfrm-header/context/HamburgerBtnContext.tsx?9f53","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L1/L1Wrapper.tsx?9315","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/L1/MenuHeader.tsx?1187","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/menu/menu-components/MenuWrapper.tsx?a81c","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/HamburgerMenuBtn.tsx?40b2","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/MenuBar.tsx?21f8","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/SearchBar.tsx?9962","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/utility-bar/CartIcon.tsx?130f","webpack://mattressfirm/./src/mfrm-components/mfrm-header/context/MyAccountDrawerContext.tsx?497c","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/my-account/AccountForm.tsx?f2a7","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/my-account/MyAccountDrawer.tsx?86e3","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/utility-bar/UserProfile.tsx?96a5","webpack://mattressfirm/./src/mfrm-components/icons/LocationIcon.tsx?296b","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/store-selector/components/Search.tsx?62f3","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/store-selector/components/StoreLineItem.tsx?4239","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/store-selector/components/Stores.tsx?5ea9","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/store-selector/components/showAllStores.tsx?1162","webpack://mattressfirm/./src/mfrm-components/mfrm-header/util/store-locator.ts?84a1","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/store-selector/index.tsx?e712","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/utility-bar/StoreLocator.tsx?c109","webpack://mattressfirm/./src/mfrm-components/mfrm-header/components/head/head-components/utility-bar/UtilityIcon.tsx?8294","webpack://mattressfirm/./src/mfrm-components/mfrm-header/MFRMHeader.tsx?954e","webpack://mattressfirm/./src/modules/mfrm-header/mfrm-header.view.tsx?d753","webpack://mattressfirm/./lib/mfrm-header/module-registration.js?7c13","webpack://mattressfirm/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://mattressfirm/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://mattressfirm/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://mattressfirm/external var \"React\"?0d3b","webpack://mattressfirm/external var \"ReactDOM\"?853b"],"sourcesContent":["import { IActionContext } from '@msdyn365-commerce/core';\r\nimport Cookies from 'universal-cookie';\r\nexport const getZipCode = (ctx: IActionContext): string | undefined => {\r\n //@ts-ignore\r\n const geolocationZipCode = ctx.requestContext.geoLocation?.zipCode ? ctx.requestContext.geoLocation.zipCode : ctx.requestContext.geoLocation?.res?.zipCode;\r\n const cookie = new Cookies();\r\n const zipcode = cookie.get('zip_code') ? cookie.get('zip_code') : geolocationZipCode;\r\n return zipcode ?? undefined;\r\n};\r\nexport const getGeoLocationZipCode = (ctx: IActionContext): string | undefined => {\r\n //@ts-ignore\r\n const zipCode = ctx.requestContext.geoLocation?.zipCode ? ctx.requestContext.geoLocation.zipCode : ctx.requestContext.geoLocation?.res?.zipCode;\r\n return zipCode ?? null;\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport axios from 'axios';\r\n/**\r\n * BedhubHeaderDataAction Input Action\r\n */\r\nexport class BedhubHeaderInput implements Msdyn365.IActionInput {\r\n constructor() { }\r\n public getCacheKey = () => 'BedhubHeader';\r\n public getCacheObjectType = () => 'BedhubHeader';\r\n public dataCacheType = (): Msdyn365.CacheType => 'application';\r\n}\r\n\r\nconst createInput = (args: Msdyn365.ICreateActionContext>): Msdyn365.IActionInput => {\r\n // Ensure Bedhub API is Enable\r\n if (args.config && !args.config.bedhubDataSource) {\r\n throw new Error('Cant call BEDHUB API, as its turn off');\r\n } else {\r\n return new BedhubHeaderInput();\r\n }\r\n};\r\n\r\nasync function getAccessToken(baseURL: string, ctx: Msdyn365.IRequestContext) {\r\n const clientId: Msdyn365.ISecretValue | undefined = await Msdyn365.msdyn365Commerce.secretManager?.getSecretValue(\r\n 'bh-client-id',\r\n ctx.apiSettings.baseUrl\r\n );\r\n const clientSecret: Msdyn365.ISecretValue | undefined = await Msdyn365.msdyn365Commerce.secretManager?.getSecretValue(\r\n 'bh-client-secret',\r\n ctx.apiSettings.baseUrl\r\n );\r\n const tenant: Msdyn365.ISecretValue | undefined = await Msdyn365.msdyn365Commerce.secretManager?.getSecretValue(\r\n 'bh-tenant-id',\r\n ctx.apiSettings.baseUrl\r\n );\r\n\r\n if (process.env.CURRENT_ENVIRONMENT === 'node') {\r\n const msalConfig = {\r\n auth: {\r\n authority: new URL(tenant?.value ?? '', 'https://login.microsoftonline.com').href,\r\n clientId: clientId?.value ?? '',\r\n clientSecret: clientSecret?.value ?? '',\r\n tenantId: tenant?.value ?? ''\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n const ConfidentialClientApplication = require('@azure/msal-node').ConfidentialClientApplication;\r\n\r\n const msalInstance = new ConfidentialClientApplication(msalConfig);\r\n const token = await msalInstance.acquireTokenByClientCredential({ scopes: [new URL('.default', baseURL).href] });\r\n return token?.accessToken;\r\n }\r\n return '';\r\n}\r\nasync function getBedhubHeaderData(input: BedhubHeaderInput, ctx: Msdyn365.IActionContext): Promise {\r\n const baseURL = ctx?.requestContext?.app?.config?.bedhubBaseUrl;\r\n let token = '';\r\n try {\r\n token = await getAccessToken(baseURL, ctx.requestContext);\r\n } catch (error) {\r\n console.error('error for getting bedhub authorization token [getAccessToken]', error);\r\n }\r\n const graphqlURL = new URL('graphql', baseURL).href;\r\n\r\n try {\r\n // Query to get the GRAPHQL Data\r\n const query = `\r\n {\r\n ui {\r\n header {\r\n account {\r\n myAccount {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n signIn {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n signOut {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n signUp {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n }\r\n accountMenu {\r\n url\r\n type\r\n signedIn\r\n label\r\n ariaLabel\r\n callout\r\n }\r\n search {\r\n icon {\r\n url\r\n }\r\n placeholder\r\n url\r\n }\r\n actions {\r\n image {\r\n url\r\n }\r\n label\r\n mobile\r\n desktop\r\n type\r\n url\r\n beforeLogo\r\n ariaLabel\r\n }\r\n }\r\n navbar {\r\n products {\r\n ... on UIProductMenu {\r\n __typename\r\n action {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n badge {\r\n label\r\n type\r\n }\r\n callout\r\n categories {\r\n label\r\n items {\r\n ariaLabel\r\n image {\r\n url\r\n }\r\n label\r\n type\r\n url\r\n }\r\n accordion {\r\n less {\r\n ariaLabel\r\n label\r\n }\r\n maximum\r\n more {\r\n ariaLabel\r\n label\r\n }\r\n }\r\n }\r\n label\r\n promotion {\r\n ariaLabel\r\n image {\r\n url\r\n }\r\n label\r\n type\r\n url\r\n }\r\n subcategories {\r\n items {\r\n ariaLabel\r\n badge {\r\n label\r\n type\r\n }\r\n image {\r\n url\r\n }\r\n label\r\n type\r\n url\r\n }\r\n label\r\n }\r\n }\r\n ... on UIProductMenuLink {\r\n __typename\r\n ariaLabel\r\n type\r\n badge {\r\n label\r\n type\r\n }\r\n callout\r\n html\r\n label\r\n url\r\n }\r\n }\r\n utilities {\r\n ariaLabel\r\n label\r\n type\r\n url\r\n }\r\n }\r\n pencilBanner {\r\n interval\r\n items {\r\n ariaLabel\r\n countdown {\r\n end\r\n start\r\n }\r\n html\r\n label\r\n schedule {\r\n end\r\n start\r\n }\r\n type\r\n url\r\n }\r\n next {\r\n ariaLabel\r\n image {\r\n url\r\n }\r\n label\r\n }\r\n previous {\r\n ariaLabel\r\n image {\r\n url\r\n }\r\n label\r\n }\r\n }\r\n }\r\n }\r\n `;\r\n const response = await axios.post(\r\n graphqlURL,\r\n JSON.stringify({\r\n query: query\r\n }),\r\n {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n Authorization: `Bearer ${token}`\r\n }\r\n }\r\n );\r\n if (response?.data) {\r\n return response.data;\r\n }\r\n return {};\r\n } catch (error) {\r\n console.error('error for bedhub header [getBedhubHeaderData]', error);\r\n return {};\r\n }\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getBedhubHeaderData,\r\n id: 'BedhubHeader',\r\n input: createInput\r\n});\r\n","import { IGeneric, IAny } from '@msdyn365-commerce/core';\r\n/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport axios from 'axios';\r\nimport { getZipCode } from '../Utilities/get-zipcode';\r\n\r\n/**\r\n * GetSociData Input Action\r\n */\r\nexport class GetSociDataInput implements Msdyn365.IActionInput {\r\n public searchradius?: number | undefined;\r\n public searchLimit?: number | undefined;\r\n public zipCode?: string | undefined;\r\n constructor(searchradius?: number | undefined, searchLimit?: number | undefined, zipCode?: string | undefined) {\r\n this.searchradius = searchradius;\r\n this.searchLimit = searchLimit;\r\n this.zipCode = zipCode;\r\n }\r\n\r\n public getCacheKey = () => `SociLocations-${this.zipCode}`;\r\n public getCacheObjectType = () => 'SociLocations';\r\n public dataCacheType = (): Msdyn365.CacheType => 'request';\r\n}\r\n\r\n/**\r\n * Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: Msdyn365.ICreateActionContext>): Msdyn365.IActionInput => {\r\n return new GetSociDataInput(args?.config?.lookupRadius, args?.config?.maxNoOfFranchise ?? 4);\r\n};\r\n\r\n/**\r\n * Use this function to call your action and process the results as needed\r\n */\r\nasync function getSociData(input: GetSociDataInput, ctx: Msdyn365.IActionContext): Promise {\r\n try {\r\n const zipCode = input?.zipCode ? input.zipCode : getZipCode(ctx);\r\n if (!zipCode) {\r\n return null;\r\n }\r\n let geoLoc = [];\r\n if(/^[0-9]+$/.test(zipCode)){\r\n geoLoc = [\r\n {\r\n \"postalcode\": zipCode\r\n }\r\n ];\r\n } else{\r\n geoLoc = [\r\n {\r\n \"state\": zipCode,\r\n \"city\": zipCode\r\n }\r\n ];\r\n }\r\n const response = await axios.post(`https://api.slippymap.com/rest/locatorsearch`, {\r\n \"request\": {\r\n \"appkey\": \"F147ADC0-8099-11EC-AC1B-273DC403F339\",\r\n \"formdata\": {\r\n \"dataview\": \"store_default\",\r\n \"limit\": input.searchLimit ?? 4,\r\n \"geolocs\": {\r\n \"geoloc\": geoLoc\r\n },\r\n \"searchradius\": input.searchradius?.toString() ?? \"50\"\r\n }\r\n }\r\n }\r\n , {\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n });\r\n if (response.data) {\r\n return response.data;\r\n }\r\n else { return null; }\r\n } catch (e) {\r\n // will be removed after unit test and deployment on lower environment\r\n console.log('error for soci api', e);\r\n return null;\r\n }\r\n}\r\n\r\nexport default Msdyn365.createObservableDataAction({\r\n action: >getSociData,\r\n id: 'GetSociData',\r\n input: createInput\r\n // Uncomment the below line if this is a meant to be a batched data action\r\n // isBatched: true\r\n});\r\n","import MsDyn365, {\r\n CacheType,\r\n createObservableDataAction,\r\n IAction,\r\n IActionContext,\r\n IActionInput,\r\n IAny,\r\n ICreateActionContext,\r\n IGeneric\r\n} from '@msdyn365-commerce/core';\r\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport { IStoreSelectorState } from './store-selector-state';\r\n/**\r\n * storeSelectorState - action input\r\n */\r\nexport class StoreSelectorStateInput implements IActionInput {\r\n public getCacheKey = () => `storeSelectorState`;\r\n public getCacheObjectType = () => 'storeSelectorState';\r\n public dataCacheType = (): CacheType => 'application';\r\n}\r\n\r\n/**\r\n * StoreSelectorStateInput - action\r\n */\r\nexport async function storeSelectorStateAction(input: StoreSelectorStateInput, ctx: IActionContext): Promise {\r\n const prefferedStore: OrgUnitLocation =\r\n MsDyn365.isBrowser && localStorage.getItem('_mfrm__prefferedStore_')\r\n ? JSON.parse(localStorage.getItem('_mfrm__prefferedStore_') || '')\r\n : {};\r\n return { isModalOpen: false, prefferedStore: prefferedStore };\r\n}\r\n\r\n/**\r\n * StoreSelectorStateInput - create new input for create action\r\n */\r\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\r\n return new StoreSelectorStateInput();\r\n};\r\n\r\n/**\r\n * StoreSelectorStateInput - create action\r\n */\r\nexport default createObservableDataAction({\r\n id: 'StoreSelectorState',\r\n action: >storeSelectorStateAction,\r\n input: createInput\r\n});\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IMfrmHeaderData } from './mfrm-header.data';\r\nimport { IMfrmHeaderProps } from './mfrm-header.props.autogenerated';\r\n\r\nexport interface IMfrmHeaderViewProps extends IMfrmHeaderProps { }\r\n\r\n/**\r\n *\r\n * MfrmHeader component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass MfrmHeader extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default MfrmHeader;\r\n","import React, { useContext } from 'react';\r\nimport { NavDataContext } from '../../../MFRMHeader';\r\n\r\nexport const CompanyLogo: React.FC = () => {\r\n\r\n const { logoImage, logoLink } = useContext(NavDataContext);\r\n\r\n if (logoLink.linkUrl.destinationUrl) {\r\n return (\r\n
{\r\n if (e.key === 'Enter') {\r\n document.getElementById(\"mfrm-logo\")?.click();\r\n }\r\n }}\r\n >\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n {logoImage.altText}\r\n
\r\n );\r\n};\r\n\r\n","const charCount = (str: string, charsLimit: number) => {\r\n const specialChars = /[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n if (specialChars.test(str)) {\r\n return str;\r\n }\r\n if (str?.length > charsLimit) {\r\n return str.substring(0, charsLimit);\r\n }\r\n return str;\r\n};\r\n\r\nexport default charCount;\r\n","import React from 'react';\r\nimport Badge from 'mfcl/Badge';\r\nimport charCount from '../../../../util/char-count';\r\n\r\nexport const MfrmBadge: React.FC = (props) => {\r\n const { label, type } = props.badgeData;\r\n const badgeLabel = charCount(label, 15);\r\n const getBadgeBgColor = (type: string): string => {\r\n switch (type) {\r\n case 'NEW':\r\n case 'NEW_CAT':\r\n case 'NEW_SUBCAT':\r\n return 'rgba(224, 250, 242, 0.5)';\r\n case 'SALE':\r\n case 'SALE_CAT':\r\n case 'SALE_SUBCAT':\r\n return 'rgba(253, 229, 230, 0.5)';\r\n case 'URGENCY':\r\n case 'URGENCY_CAT':\r\n case 'URGENCY_SUBCAT':\r\n return 'rgba(252, 204, 11, 0.25)';\r\n case 'CONVERSATIONAL':\r\n case 'CONVERSATIONAL_CAT':\r\n case 'CONVERSATIONAL_SUBCAT':\r\n return '#F2F5FF';\r\n default:\r\n return 'transparent';\r\n\r\n }\r\n };\r\n\r\n return (\r\n \r\n {badgeLabel}\r\n \r\n );\r\n};","import React, { useState, createContext, useEffect } from \"react\";\r\n\r\n//Level State Context\r\n\r\nexport type ILevel = [\r\n string,\r\n React.Dispatch>\r\n ];\r\n\r\n //hook to handle level state\r\n export const MenuLevelState = (newLevelValue: string): ILevel => {\r\n const [selectedLevel, setSelectedLevel] = useState('L1');\r\n\r\n useEffect(() => {\r\n setSelectedLevel(newLevelValue);\r\n }, [newLevelValue]);\r\n\r\n return [selectedLevel, setSelectedLevel];\r\n };\r\n\r\n //context for level state\r\n export const MenuLevelContext = createContext(undefined!);\r\n\r\n //providing context to rest of app\r\ninterface Props{\r\n children: React.ReactNode;\r\n }\r\n\r\n const MenuLevelProvider = ({children}: Props) => {\r\n const [selectedLevel, setSelectedLevel] = useState('L1');\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n };\r\n\r\n//enabling the use of this context provider throughout the app\r\n const useMenuLevelContext = () => {\r\n return React.useContext(MenuLevelContext);\r\n };\r\n\r\n export { MenuLevelProvider, useMenuLevelContext };","import React, { useState, createContext, useEffect } from \"react\";\r\n\r\n//Link State Context\r\n\r\nexport type ILink = [\r\n string,\r\n React.Dispatch>,\r\n ];\r\n\r\n //hook to handle level state\r\n export const MainLinkState = (newLinkValue: string): ILink => {\r\n const [selectedLink, setSelectedLink] = useState('');\r\n\r\n useEffect(() => {\r\n setSelectedLink(newLinkValue);\r\n }, [newLinkValue]);\r\n\r\n return [selectedLink, setSelectedLink];\r\n };\r\n\r\n //context for level state\r\n export const MainLinkContext = createContext(undefined!);\r\n\r\n //providing context to rest of app\r\ninterface Props{\r\n children: React.ReactNode;\r\n }\r\n\r\n const MainLinkProvider = ({children}: Props) => {\r\n const [selectedLink, setSelectedLink] = useState('');\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n };\r\n\r\n//enabling the use of this context provider throughout the app\r\n const useMainLinkContext = () => {\r\n return React.useContext(MainLinkContext);\r\n };\r\n\r\n export { MainLinkProvider, useMainLinkContext };","import React from 'react';\r\nimport { useMainLinkContext } from '../../../../context/MainLinkContext';\r\n\r\nexport const BackToMainMenu = (changeSelectedLevel: any) => {\r\n const [selectedLink, setSelectedLink] = useMainLinkContext();\r\n return (\r\n <>\r\n
\r\n
\r\n {\r\n changeSelectedLevel.changeSelectedLevel('L1');\r\n setSelectedLink(`${selectedLink}_div`);\r\n }}\r\n onKeyDown={(e: {key: string}) => {\r\n if (e.key === 'Enter') {\r\n changeSelectedLevel.changeSelectedLevel('L1');\r\n setSelectedLink(`${selectedLink}_a`);\r\n }\r\n }}\r\n tabIndex={0}\r\n data-testid='ArrowBackIcon'\r\n />\r\n {/* */}\r\n
\r\n
\r\n\r\n {\r\n changeSelectedLevel.changeSelectedLevel('L1');\r\n setSelectedLink(`${selectedLink}_div`);\r\n }}\r\n onKeyDown={(e: {key: string}) => {\r\n if (e.key === 'Enter') {\r\n changeSelectedLevel.changeSelectedLevel('L1');\r\n setSelectedLink(`${selectedLink}_a`);\r\n }\r\n }}\r\n >\r\n
\r\n \r\n
\r\n

\r\n Back to Main Menu\r\n

\r\n \r\n \r\n );\r\n};","import React, { useContext } from 'react';\r\nimport { NavDataContext } from '../../../../../MFRMHeader';\r\ninterface ICategoryHeaderProps {\r\n categoryTitle: string;\r\n}\r\n\r\nexport const CategoryHeader: React.FC = ({ categoryTitle }) => {\r\n const { products, bedhubDataSource } = useContext(NavDataContext);\r\n\r\n const shopAllButton = products.filter((label:any) => categoryTitle === label.label).map((btn:any) => {\r\n\r\n\r\n if (btn && btn.action) {\r\n return(\r\n \r\n \r\n {btn.action?.label}\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n });\r\n\r\n return (\r\n
20 ? 'category-header category-header-column': 'category-header'}`}>\r\n

\r\n {categoryTitle}\r\n

\r\n
{\r\n if (e.key === 'Enter') {\r\n const activeSubMenu = document.querySelector('.submenu-wrapper.active');\r\n const activeShopAllButton = activeSubMenu?.getElementsByClassName('shop-all-btn')[0];\r\n if(activeShopAllButton) {\r\n (activeShopAllButton as HTMLElement).click();\r\n }\r\n }\r\n }}\r\n >\r\n {shopAllButton}\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext, useState } from 'react';\r\nimport { NavDataContext } from '../../../../../MFRMHeader';\r\nimport { MfrmBadge } from '../../L1/badge';\r\nimport charCount from '../../../../../util/char-count';\r\n\r\ninterface IPrimaryCategoryProps {\r\n categories: {\r\n productMenuCategory: any;\r\n };\r\n}\r\n\r\nexport const PrimarySubcategoryMenu: React.FC = ({\r\n categories\r\n}) => {\r\n const { bedhubDataSource } = useContext(NavDataContext);\r\n const productMenuCategoryData = bedhubDataSource ? categories : categories.productMenuCategory;\r\n\r\n return (\r\n <>\r\n {/*
PrimarySubcategoryMenu
*/}\r\n {\r\n productMenuCategoryData && productMenuCategoryData.map((category: any) => {\r\n const [isShowMore, setIsShowMore] = useState(true);\r\n const onHandleMaximum = (): void => {\r\n setIsShowMore(!isShowMore);\r\n };\r\n\r\n // const categoryMaximum = bedhubDataSource ? : category.maximum\r\n const maximumCount = bedhubDataSource ? category?.accordion?.maximum : category?.maximum ? category?.maximum : 0;\r\n const categoryListCount = category?.items.length;\r\n const categoryItems = (maximumCount <= categoryListCount && isShowMore && maximumCount !== 0) ? category?.items.slice(0, maximumCount) : category.items;\r\n\r\n return (\r\n
\r\n {category.label &&
\r\n

{category.label}

\r\n
}\r\n {\r\n category && categoryItems.map((item: any) => (\r\n \r\n \r\n

{item.badge && item.badge.label ? charCount(item.label, 22) : item.label } {item.badge && item.badge.label && || null}

\r\n \r\n ))\r\n }\r\n {categoryListCount >= maximumCount && maximumCount !== 0 &&\r\n onHandleMaximum()}\r\n onKeyDown={(e: any) => {\r\n if (e.key === 'Enter') {\r\n onHandleMaximum();\r\n }\r\n }}\r\n >\r\n {isShowMore ? 'More' : 'Less'}\r\n

\r\n }\r\n
\r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { NavDataContext } from '../../../../../MFRMHeader';\r\nimport { MfrmBadge } from '../../L1/badge';\r\n\r\nexport const SecondarySubcategoryMenu: React.FC = ({ subcategories }) => {\r\n\r\n const { bedhubDataSource } = useContext(NavDataContext);\r\n\r\n // const subcategoryData = bedhubDataSource ? subcategories : subcategories.productMenuSubCategory;\r\n\r\n return (\r\n <>\r\n {/*
SecondarySubcategoryMenu
*/}\r\n {\r\n subcategories && (bedhubDataSource ? subcategories : subcategories.productMenuSubCategory)?.map((subcategory: any) => {\r\n return (\r\n
\r\n
\r\n

{subcategory.label}

\r\n
\r\n {\r\n subcategory.items && subcategory.items.map((item: any) => (\r\n
\r\n \r\n {\r\n subcategory.label.toLowerCase() === 'shopping guides'\r\n ?\r\n \r\n : null\r\n }\r\n {item.label}\r\n \r\n {item.badge && item.badge.label &&
|| null}\r\n
\r\n ))\r\n }\r\n
\r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { useMenuLevelContext } from '../../../../../context/MenuLevelContext';\r\nimport { BackToMainMenu } from '../BackToMainMenu';\r\nimport { CategoryHeader } from './CategoryHeader';\r\nimport { PrimarySubcategoryMenu } from './PrimarySubcategoryMenu';\r\nimport { SecondarySubcategoryMenu } from './SecondarySubcategoryMenu';\r\n\r\ninterface IProductCategoryMenuProps {\r\n categoryTitle: string;\r\n data: any;\r\n changeSelectedLevel: any\r\n}\r\n\r\nexport const ProductCategoryMenu: React.FC = ({\r\n categoryTitle,\r\n data,\r\n changeSelectedLevel\r\n}) => {\r\n const [selectedLevel] = useMenuLevelContext();\r\n\r\n return (\r\n
\r\n
\r\n {selectedLevel !== 'L1' && }\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\n\r\nexport const PromotionalBanner = (props: any) => {\r\n const { promotionalBannerImage, promotionalBannerImageUrl } = props.bannerData;\r\n if (promotionalBannerImage || props.bannerData.image) {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n","import React from 'react';\r\nimport { useMenuLevelContext } from '../../../../context/MenuLevelContext';\r\nimport { ProductCategoryMenu } from './ProductCategoryMenu/ProductCategoryMenuWrapper';\r\nimport { PromotionalBanner } from './PromotionalBanner';\r\n\r\ninterface IL2Props {\r\n changeSelectedLevel: any,\r\n subMenuData: any\r\n promotionalBanner?: {}\r\n}\r\n\r\nexport const L2Wrapper: React.FC = ({ subMenuData, changeSelectedLevel }) => {\r\n const [selectedLevel] = useMenuLevelContext();\r\n\r\n // Product Cat menu is all info pertaining to subcats in a category\r\n // L3s are the subcategories and their cards\r\n\r\n return (\r\n <>\r\n {/*
L2Wrapper
*/}\r\n {\r\n subMenuData.map((subCat: any, i: number) => {\r\n return (\r\n
\r\n \r\n {subCat.promotionalbannerData !== null && }\r\n
\r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { NavDataContext } from '../../../../MFRMHeader';\r\n\r\nexport const MenuLogin = () => {\r\n\r\n const { customer, myAccountIconUrl, signInUrl, signUpUrl, signOutUrl, myAccountLinkUrl, bedhubDataSource, bedhubHeader } = useContext(NavDataContext);\r\n const bedhubAccount = bedhubDataSource && bedhubHeader?.data?.ui?.header?.account || [];\r\n const { myAccount, signIn, signOut, signUp } = bedhubAccount;\r\n\r\n const currentURL = window && window.location.href || undefined;\r\n const signInLink = bedhubDataSource && bedhubAccount.length !== 0 ? {signIn?.label} : {signInUrl?.linkText};\r\n const signUpLink = bedhubDataSource && bedhubAccount.length !== 0 ? {signUp?.label} : {signUpUrl?.linkText};\r\n const signOutLink = bedhubDataSource && bedhubAccount.length !== 0 ? {signOut?.label} : {signOutUrl?.linkText};\r\n const myAccountLink = bedhubDataSource && bedhubAccount.length !== 0 ? {myAccount?.label} : {myAccountLinkUrl?.linkText};\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n

Hello! {signInLink} or {signUpLink}

\r\n

{myAccountLink}{signOutLink}

\r\n
\r\n \r\n );\r\n};\r\n\r\n","export function trapFocus(\r\n firstQuerySelector: string,\r\n secondQuerySelector: string,\r\n thirdQuerySelector?: string\r\n) {\r\n const firstFocusableElement = document.querySelector(firstQuerySelector);\r\n const focusableElements = 'a';\r\n const drawer = document.querySelector(secondQuerySelector)\r\n ? document.querySelector(secondQuerySelector)\r\n : (thirdQuerySelector !== undefined ? document.querySelector(thirdQuerySelector) : null);\r\n\r\n if(drawer !== null) {\r\n const focusableContent = drawer?.querySelectorAll(focusableElements);\r\n const lastFocusableElement = focusableContent[focusableContent.length - 1]; // get last element to be focused inside modal\r\n\r\n document.addEventListener('keydown', function(e) {\r\n const isTabPressed = e.key === 'Tab';\r\n\r\n if (!isTabPressed) {\r\n return;\r\n }\r\n\r\n if (e.shiftKey) { // if shift key pressed for shift + tab combination\r\n if (document.activeElement === firstFocusableElement) {\r\n (lastFocusableElement as HTMLElement).focus(); // add focus for the last focusable element\r\n e.preventDefault();\r\n }\r\n } else { // if tab key is pressed\r\n if (document.activeElement === lastFocusableElement) { // if focused has reached to last focusable element then focus first focusable element after pressing tab\r\n (firstFocusableElement as HTMLElement).focus(); // add focus for the first focusable element\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n }\r\n\r\n if(firstFocusableElement !== null){\r\n (firstFocusableElement as HTMLElement).focus();\r\n }\r\n }\r\n","import React, { useState, createContext, useEffect } from \"react\";\r\n\r\n//Drawer state context\r\n\r\nexport type IDrawer = [\r\n boolean,\r\n React.Dispatch>\r\n];\r\n\r\n//custom hook to handle hamburger menu state\r\nexport const HamburgerDrawerState = (newOpenValue: boolean): IDrawer => {\r\n const [navDrawerOpen, setNavDrawerOpen]=useState(false);\r\n\r\n useEffect(() => {\r\n setNavDrawerOpen(newOpenValue);\r\n }, [newOpenValue]);\r\n\r\n return [navDrawerOpen, setNavDrawerOpen];\r\n };\r\n\r\n//context for the hamburger menu state\r\nexport const HamburgerBtnContext= createContext(undefined!);\r\n\r\n\r\n//providing context to rest of app\r\ninterface Props{\r\n children: React.ReactNode;\r\n}\r\n\r\nconst HamburgerBtnProvider = ({children}: Props) => {\r\n const [navDrawerOpen, setNavDrawerOpen]=HamburgerDrawerState(false);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\n//enabling the use of this context provider throughout the app\r\nconst useHamburgerBtnContext = () => {\r\n return React.useContext(HamburgerBtnContext);\r\n};\r\n\r\nexport { HamburgerBtnProvider, useHamburgerBtnContext };\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { MfrmBadge } from './badge';\r\n// import { UtilityMenu } from './UtilityMenu';\r\nimport { L2Wrapper } from '../L2/L2Wrapper';\r\nimport { useMenuLevelContext } from '../../../../context/MenuLevelContext';\r\nimport { useMainLinkContext } from '../../../../context/MainLinkContext';\r\nimport { NavDataContext } from '../../../../MFRMHeader';\r\nimport { MenuLogin } from './MenuLogin';\r\nimport { trapFocus } from '../../../../util/trap-focus';\r\nimport charCount from '../../../../util/char-count';\r\nimport { useHamburgerBtnContext } from '../../../../context/HamburgerBtnContext';\r\n\r\nconst L1Wrapper: React.FC = () => {\r\n const [selectedLevel, setSelectedLevel] = useMenuLevelContext();\r\n const [, setNavDrawerOpen] = useHamburgerBtnContext();\r\n const [, setSelectedLink] = useMainLinkContext();\r\n const { products, utilities, bedhubDataSource } = useContext(NavDataContext);\r\n const subCategories = bedhubDataSource ? products.subcategories : products.subCategories;\r\n const changeSelectedLevel = (level: string) => {\r\n return setSelectedLevel(level);\r\n };\r\n\r\n const handleL1ItemClick = (level: string, e: { preventDefault: () => void }) => {\r\n if (level !== 'L1') {\r\n e.preventDefault();\r\n }\r\n products\r\n .filter((product: any) => product.label === level, subCategories)\r\n .map((item: any) => {\r\n //logic if calling bedhub api\r\n if (bedhubDataSource) {\r\n //logic for path to url in bedhub data\r\n if (item.__typename === 'UIProductMenuLink') {\r\n if (item.action) {\r\n window.location.href = item.action.url;\r\n } else {\r\n window.location.href = item.url;\r\n }\r\n } else {\r\n //if has sub category opens L2 drawer with this logic\r\n setSelectedLevel(level);\r\n setSelectedLink(level);\r\n }\r\n //logic if calling d365 api\r\n } else {\r\n if (item.productMenuLink) {\r\n window.location.href = item.url.destinationUrl;\r\n } else {\r\n setSelectedLevel(level);\r\n setSelectedLink(level);\r\n }\r\n }\r\n });\r\n };\r\n\r\n const subMenuData = products\r\n .map((category: any) => {\r\n if (!category.callout) {\r\n return {\r\n category: category.label,\r\n promotionalbannerData: category.promotionalBanner || category.promotion || null,\r\n L2Data: {\r\n categories: category.categories,\r\n subCategories: bedhubDataSource ? category.subcategories : category.subCategories\r\n }\r\n };\r\n }\r\n return null;\r\n })\r\n .filter((category: any) => category !== null); // flatten categories and subcategories\r\n\r\n const mattressMatcher =\r\n products &&\r\n products\r\n .filter((item: any) => item.callout === true)\r\n .map((item: any, id: number) => {\r\n const label = bedhubDataSource ? charCount(item?.html ?? item?.label, 22) : charCount(item?.richTextLabel ?? item?.label, 22);\r\n return (\r\n
\r\n handleL1ItemClick(item.label, e)}\r\n onKeyDown={(e: { key: string; preventDefault: () => void }) => {\r\n if (e.key === 'Enter') {\r\n handleL1ItemClick(item.label, e);\r\n }\r\n }}\r\n >\r\n {}\r\n \r\n {(item.badge && item.badge.label && ) || null}\r\n
\r\n );\r\n });\r\n\r\n const mainLinks: any =\r\n products &&\r\n products\r\n .filter((item: any) => !item.callout)\r\n .map((item: any, id: number) => {\r\n const removedSpacesAndSpecialText = item.label.replace(/[^A-Z0-9]/gi, '_');\r\n const label = bedhubDataSource ? charCount(item?.html ?? item?.label, 22) : charCount(item?.richTextLabel ?? item?.label, 22);\r\n return (\r\n handleL1ItemClick(item.label, e)}\r\n onKeyDown={(e: { key: string; preventDefault: () => void }) => {\r\n if (e.key === 'Enter') {\r\n handleL1ItemClick(item.label, e);\r\n }\r\n }}\r\n >\r\n \r\n { }\r\n \r\n {(item.badge && item.badge.label && ) || null}\r\n \r\n );\r\n });\r\n\r\n //call back to cancel utag click on chatwidget\r\n const handleClick = (\r\n event: React.MouseEvent | React.MouseEvent,\r\n item: any\r\n ) => {\r\n event.preventDefault();\r\n var callBacks = {\r\n CHAT: () => simulateChatClick(item)\r\n };\r\n if (item.type in callBacks) {\r\n callBacks[item.type]();\r\n } else {\r\n window.location.href = bedhubDataSource ? item.url : item.url.destinationUrl;\r\n callUsAnalytics(item);\r\n }\r\n setNavDrawerOpen(false);\r\n };\r\n\r\n // simulates a click on chat to open chat widget and utag\r\n const chatWidget = document.querySelector('button.uiButton.helpButtonEnabled');\r\n\r\n function simulateChatClick(item: any) {\r\n if (item.type === 'CHAT' && chatWidget) {\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'chat-widget-initiated',\r\n event_category: 'chat',\r\n event_noninteraction: 'false',\r\n event_type: 'chat_click',\r\n event_action: 'click from Top Nav Menu',\r\n event_label: 'chat engagement'\r\n });\r\n }\r\n chatWidget.dispatchEvent(new Event('click'));\r\n } else {\r\n console.error('nav click chat widget not working');\r\n }\r\n }\r\n\r\n function callUsAnalytics(item: any) {\r\n if (bedhubDataSource ? item.url.includes('tel') : item.url.destinationUrl.includes('tel')) {\r\n if ('utag' in window) {\r\n //@ts-ignore\r\n utag.link({\r\n event: 'call-engagement',\r\n event_category: 'call',\r\n event_noninteraction: 'false',\r\n event_type: 'call_engagement',\r\n event_action: 'header click',\r\n event_label: 'call engagement'\r\n });\r\n window.location.href = bedhubDataSource ? item.url : item.url.destinationUrl;\r\n }\r\n }\r\n window.location.href = bedhubDataSource ? item.url : item.url.destinationUrl;\r\n }\r\n\r\n const helperLinks =\r\n utilities &&\r\n utilities\r\n .filter((item: any) => item.label !== '')\r\n .map((item: any) => (\r\n handleClick(e, item)}\r\n className='navbar-drawer_body_link_helper'\r\n tabIndex={0}\r\n data-testid={item.label}\r\n onKeyDown={(e: any) => {\r\n if (e.key === 'Enter') {\r\n handleClick(e, item);\r\n }\r\n }}\r\n >\r\n {item.label}\r\n \r\n ));\r\n\r\n useEffect(() => {\r\n trapFocus('.navbar-drawer_header_close', '.submenu-wrapper.active');\r\n }, [selectedLevel]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default L1Wrapper;\r\n","import React from 'react';\r\nimport { useHamburgerBtnContext } from '../../../../context/HamburgerBtnContext';\r\nimport { useMenuLevelContext } from '../../../../context/MenuLevelContext';\r\nimport { CompanyLogo } from '../../../head/head-components/CompanyLogo';\r\n\r\nexport const MenuHeader = () => {\r\n const [, setNavDrawerOpen] = useHamburgerBtnContext();\r\n const [, setSelectedLevel] = useMenuLevelContext();\r\n const closeDrawer = () => {\r\n setNavDrawerOpen(false);\r\n setSelectedLevel('L1');\r\n };\r\n const handleKeyDown = (e: {key: string, preventDefault: () => void}) => {\r\n if (e.key === 'Enter') {\r\n closeDrawer();\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport Drawer from \"mfcl/Drawer\";\r\nimport L1Wrapper from './L1/L1Wrapper';\r\nimport { useHamburgerBtnContext } from '../../../context/HamburgerBtnContext';\r\nimport { MenuHeader } from './L1/MenuHeader';\r\nimport { useMenuLevelContext } from '../../../context/MenuLevelContext';\r\n\r\nconst MenuWrapper: React.FC = () => {\r\n //drawer state from context\r\n const [navDrawerOpen, setNavDrawerOpen] = useHamburgerBtnContext();\r\n const [, setSelectedLevel] = useMenuLevelContext();\r\n\r\n const closeNavDrawer = () => {\r\n setNavDrawerOpen(false);\r\n setSelectedLevel('L1');\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
\r\n {/* logic here for which wrapper is rendered */}\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MenuWrapper;","import React, { useEffect } from 'react';\r\nimport HamburgerMenu from 'mfcl/Icons/HamburgerMenu';\r\nimport MenuWrapper from '../../menu/menu-components/MenuWrapper';\r\nimport { useHamburgerBtnContext } from '../../../context/HamburgerBtnContext';\r\nimport { useMenuLevelContext } from '../../../context/MenuLevelContext';\r\nimport { useMainLinkContext } from '../../../context/MainLinkContext';\r\nimport { trapFocus } from '../../../util/trap-focus';\r\n\r\nexport default function HamburgerMenuBtn() {\r\n //drawer state from context\r\n const [navDrawerOpen, setNavDrawerOpen] = useHamburgerBtnContext();\r\n const [selectedLevel] = useMenuLevelContext();\r\n const [selectedLink, setSelectedLink] = useMainLinkContext();\r\n const openNavDrawer = () => {\r\n setNavDrawerOpen(true);\r\n };\r\n\r\n const handleKeyDown = (e: { key: string, preventDefault: () => void }) => {\r\n if (e.key === 'Enter') {\r\n openNavDrawer();\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n trapFocus('.navbar-drawer_header_close', '.navbar-drawer_body_link_secondary_container', '.navbar-drawer_body_link_main_container');\r\n const removedSpacesAndSpecialText = selectedLink.replace(/[^A-Z0-9]/ig, \"_\");\r\n const selectedL1MainLink = document.querySelector(`#navbar-drawer_body_link_main_item-${removedSpacesAndSpecialText}`) ?\r\n document.querySelector(`#navbar-drawer_body_link_main_item-${removedSpacesAndSpecialText}`) : undefined;\r\n if (selectedLevel === 'L1' && navDrawerOpen && selectedLink !== '' && selectedL1MainLink) {\r\n (selectedL1MainLink as HTMLElement).focus();\r\n setSelectedLink('');\r\n }\r\n }, [navDrawerOpen, selectedLevel]);\r\n\r\n return (\r\n
\r\n
\r\n

Menu

\r\n
\r\n \r\n
\r\n );\r\n}","import React, { useContext } from 'react';\r\nimport { useHamburgerBtnContext } from '../../../context/HamburgerBtnContext';\r\nimport { useMenuLevelContext } from '../../../context/MenuLevelContext';\r\nimport { useMainLinkContext } from '../../../context/MainLinkContext';\r\nimport { NavDataContext } from '../../../MFRMHeader';\r\n\r\nconst MenuBar: React.FC = () => {\r\n\r\n const [, setSelectedLevel] = useMenuLevelContext();\r\n const [, setSelectedLink] = useMainLinkContext();\r\n const [, setNavDrawerOpen] = useHamburgerBtnContext();\r\n const { products, bedhubDataSource } = useContext(NavDataContext);\r\n\r\n //opens L2 if subcategory exists, otherwise directs to url onclick\r\n const handleItemClick = (level: string) => {\r\n products.filter((product: any) => product.label === level)\r\n .map((item:any) => {\r\n //logic if calling bedhub api\r\n if (bedhubDataSource){\r\n //logic for path to url in bedhub data\r\n if (item.__typename === 'UIProductMenuLink'){\r\n if (item.action){\r\n window.location.href = item.action.url;\r\n } else {\r\n window.location.href =item.url;\r\n }\r\n } else {\r\n //if has sub category opens L2 drawer with this logic\r\n setNavDrawerOpen(true);\r\n setSelectedLevel(level);\r\n setSelectedLink(level);\r\n }\r\n //logic if calling d365 api- using config\r\n } else {\r\n if(item.productMenuLink){\r\n window.location.href = item.url.destinationUrl;\r\n } else {\r\n setNavDrawerOpen(true);\r\n setSelectedLevel(level);\r\n setSelectedLink(level);\r\n }\r\n }\r\n });\r\n };\r\n\r\n\r\n//mapping through products that are not callout links and returning titles and data for menu bar\r\n const productTitles = products\r\n .filter((navitem:any) => !navitem.callout)\r\n .map((navitem:any) => {\r\n const label = bedhubDataSource ? \r\n : navitem?.richTextLabel ? : navitem?.label ;\r\n return (\r\n handleItemClick(navitem.label)}\r\n key={navitem.label}\r\n aria-label={navitem.label}\r\n tabIndex={0}\r\n data-testid={navitem.label}\r\n onKeyDown={(e: {key: string, preventDefault: () => void}) => {\r\n if (e.key === 'Enter') {\r\n handleItemClick(navitem.label);\r\n e.preventDefault();\r\n }\r\n }}\r\n >\r\n {label}\r\n \r\n );\r\n});\r\n\r\n //mapping through projects and returning callout links\r\n const calloutLinks = products\r\n .filter((navitem:any) => navitem.callout === true)\r\n .map((navitem:any) => {\r\n const label = bedhubDataSource ? \r\n : navitem?.richTextLabel ? : navitem?.label ;\r\n return (\r\n handleItemClick(navitem.label)}\r\n key={navitem.label}\r\n aria-label={navitem.label}\r\n tabIndex={0}\r\n data-testid={navitem.label}\r\n onKeyDown={(e: {key: string, preventDefault: () => void}) => {\r\n if (e.key === 'Enter') {\r\n handleItemClick(navitem.label);\r\n e.preventDefault();\r\n }\r\n }}\r\n >\r\n {label}\r\n \r\n );\r\n});\r\n\r\n return (\r\n <>\r\n
\r\n {products ? productTitles : null}\r\n
\r\n
\r\n
\r\n {products ? calloutLinks : null}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default MenuBar;\r\n","import React from 'react';\r\n\r\nexport const SearchBar: React.FC = (props) => {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n};","import React from 'react';\r\n\r\nconst CartIcon: React.FC = (props) => {\r\n\r\n const handleKeyDown = (e: {key: string}) => {\r\n if (e.key === 'Enter') {\r\n window.location.href= '/cart';\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n};\r\n\r\nexport default CartIcon;","import React, { useState, createContext, useEffect } from \"react\";\r\n\r\n//Drawer state context\r\n\r\nexport type IDrawer = [\r\n boolean,\r\n React.Dispatch>\r\n];\r\n\r\n//custom hook to handle MyAccount menu state\r\nexport const MyAccountDrawerState = (newOpenValue: boolean): IDrawer => {\r\n const [myAccountDrawerOpen, setMyAccountDrawerOpen] = useState(false);\r\n\r\n useEffect(() => {\r\n setMyAccountDrawerOpen(newOpenValue);\r\n }, [newOpenValue]);\r\n\r\n return [myAccountDrawerOpen, setMyAccountDrawerOpen];\r\n };\r\n\r\n//context for the MyAccount menu state\r\nexport const MyAccountBtnContext= createContext(undefined!);\r\n\r\n\r\n//providing context to rest of app\r\ninterface Props{\r\n children: React.ReactNode;\r\n}\r\n\r\nconst MyAccountBtnProvider = ({children}: Props) => {\r\n const [myAccountDrawerOpen, setMyAccountDrawerOpen]=MyAccountDrawerState(false);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\n//enabling the use of this context provider throughout the app\r\nconst useMyAccountBtnContext = () => {\r\n return React.useContext(MyAccountBtnContext);\r\n};\r\n\r\nexport { MyAccountBtnProvider, useMyAccountBtnContext };\r\n","import React, { useContext } from 'react';\r\nimport { NavDataContext } from '../../../../MFRMHeader';\r\nimport { useMyAccountBtnContext } from '../../../../context/MyAccountDrawerContext';\r\n\r\nconst AccountForm = () => {\r\n const { myAccountLinks, customer, signInLinks } = useContext(NavDataContext);\r\n const [, setMyAccountDrawerOpen] = useMyAccountBtnContext();\r\n const closeDrawer = () => {\r\n setMyAccountDrawerOpen(false);\r\n };\r\n const handleKeyDown = (e: {key: string}) => {\r\n if (e.key === 'Enter') {\r\n closeDrawer();\r\n }\r\n };\r\n const mapAndFilterLinks = (label:string) => myAccountLinks\r\n .filter((item: { label: string; }) => item.label === label)\r\n .map((accountItem: any) => (\r\n \r\n {accountItem.linkText}\r\n \r\n ));\r\n\r\n const goToAccountLink = mapAndFilterLinks('my account');\r\n const orderHistoryLink = mapAndFilterLinks('My Order History');\r\n const signInLink = Sign In;\r\n const signOutLink =Sign Out;\r\n const signUpLink = Create Account;\r\n\r\n if (myAccountLinks) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {signInLink}\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n {signUpLink}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {signOutLink}\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {goToAccountLink}\r\n
\r\n
\r\n {orderHistoryLink}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default AccountForm;","import React, { useContext } from 'react';\r\nimport Drawer from \"mfcl/Drawer\";\r\nimport { NavDataContext } from '../../../../MFRMHeader';\r\nimport { useMyAccountBtnContext } from '../../../../context/MyAccountDrawerContext';\r\nimport AccountForm from './AccountForm';\r\n\r\nconst MyAccountDrawer = () => {\r\n const [myAccountDrawerOpen, setMyAccountDrawerOpen] = useMyAccountBtnContext();\r\n const { myAccountLinks } = useContext(NavDataContext);\r\n const closeAccountDrawer = () => {\r\n setMyAccountDrawerOpen(false);\r\n };\r\n\r\n if (myAccountLinks) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nexport default MyAccountDrawer;","import React, { useEffect } from 'react';\r\nimport classnames from 'classnames';\r\nimport { useMyAccountBtnContext } from '../../../../context/MyAccountDrawerContext';\r\nimport MyAccountDrawer from '../my-account/MyAccountDrawer';\r\nimport { trapFocus } from '../../../../util/trap-focus';\r\n\r\nexport const UserProfile: React.FC = (props) => {\r\n const [myAccountDrawerOpen, setMyAccountDrawerOpen] = useMyAccountBtnContext();\r\n const { ariaLabel, iconUrl, mobile, type, url } = props.icon;\r\n\r\n\r\n const openAccountDrawer = () => {\r\n setMyAccountDrawerOpen(true);\r\n };\r\n\r\n const handleKeyDown = (e: { key: string }) => {\r\n if (e.key === 'Enter') {\r\n openAccountDrawer();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n trapFocus('.navbar-account_link-container', '.navbar-account_body');\r\n }, [myAccountDrawerOpen]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {iconUrl && url && \r\n {ariaLabel}\r\n }\r\n
\r\n
\r\n\r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nconst LocationIcon = ({ size = 16, color = '#d63426' }) => (\r\n // eslint-disable-next-line react/react-in-jsx-scope\r\n \r\n \r\n \r\n);\r\n\r\nexport default LocationIcon;\r\n","import React, { useRef } from 'react';\r\nimport Input from 'mfcl/Input';\r\nimport Button from 'mfcl/Button';\r\nimport LocationIcon from '../../../../icons/LocationIcon';\r\n\r\nconst Search: React.FC = (props) => {\r\n const textInput = useRef(null);\r\n const onHandleSearchTermChange = (e: React.ChangeEvent): void => {\r\n const inputValue: string = e.target.value;\r\n props.setSearchTerm(inputValue);\r\n };\r\n\r\n const onHandleSearchSubmit = (e: React.SyntheticEvent): void => {\r\n e.preventDefault();\r\n const re = /^[0-9]{5}(?:-[0-9]{4})?$/;\r\n const { searchTerm } = props;\r\n if (searchTerm === '' || !re.test(searchTerm)) {\r\n props.setIsError(true);\r\n } else {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n const pageURL = window && window.location.pathname;\r\n // @ts-ignore\r\n utag.link({\r\n event: \"store-locator-slideout-search\",\r\n event_category: \"store locator slideout\",\r\n event_action: \"search click\",\r\n event_label: `from: ${pageURL}`,\r\n event_noninteraction: \"false\"\r\n });\r\n }\r\n textInput?.current?.focus();\r\n props.onGetSociLocations(props.lookupRadius, props.maxNoOfLocations, searchTerm);\r\n props.setIsError(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n Use current location\r\n
\r\n\r\n
\r\n \r\n \r\n Search\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Search;\r\n","\r\nimport React from 'react';\r\nimport Button from 'mfcl/Button';\r\nimport dayjs from 'dayjs';\r\n\r\nconst StoreLineItem: React.FC = (props) => {\r\n const { name, project_meta, bho, _distance, address1, address2, city, state, postalcode, website_url } = props.location;\r\n\r\n\r\n const isFranchise = JSON.parse(project_meta).Division === 'Franchise' || false;\r\n const projectMetaSoci = project_meta ? JSON.parse(project_meta) : '';\r\n const sociStore = projectMetaSoci ? projectMetaSoci['Corporate ID'] : '';\r\n const sociStoreID = sociStore && (sociStore?.length > 6 ? sociStore : `000000${sociStore}`?.slice(-6)) || '';\r\n const isPreferredStore = props.preferredStoreId === sociStoreID || false;\r\n const storeHours = JSON.parse(bho)?.[dayjs().day()];\r\n const opensAt = dayjs(`1/1/1 ${storeHours[0].slice(0, 2)}:${storeHours[0].slice(2)}`).format('hh:mm A');\r\n const closedAt = dayjs(`1/1/1 ${storeHours[1].slice(0, 2)}:${storeHours[1].slice(2)}`).format('hh:mm A');\r\n const isStoreOpen = (storeHours[0].slice(0, 2) < dayjs().hour() && storeHours[1].slice(0, 2) > dayjs().hour()) ? true : false;\r\n const pageURL = window && window.location.pathname;\r\n const onClickStoreDetails = (e: React.MouseEvent) => {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: \"store-locator-slideout-store-details\",\r\n event_category: \"store locator slideout\",\r\n event_action: \"store details link click\",\r\n event_label: `from: ${pageURL}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n {isFranchise ? Franchise : <>}\r\n {name} \r\n
\r\n\r\n
\r\n {bho && {isStoreOpen ? `Open until ${closedAt}` : `Open at ${opensAt}`}}\r\n {_distance && {_distance} mi}\r\n
\r\n
\r\n
\r\n {address1}
\r\n {address2}\r\n

{city && `${city},`} {state} {postalcode}

\r\n
\r\n
\r\n
\r\n {/* Todo: make my store functionalityis partial need to fix and need to add franchise check */}\r\n {!isFranchise &&\r\n isPreferredStore ? (\r\n props.onHandleRemovePreferredStore()}\r\n >\r\n My Store\r\n )\r\n : !isFranchise && !isPreferredStore ?\r\n props.onHandleSetPreferredStore(props.location)}\r\n >\r\n Make my store\r\n \r\n : <>}\r\n \r\n Store details\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default StoreLineItem;\r\n","import React from 'react';\r\nimport StoreLineItem from './StoreLineItem';\r\nimport Loading from 'mfcl/Loading';\r\n\r\nconst Stores: React.FC = (props) => {\r\n const { isLoading, locations, errorLocationsText } = props;\r\n const preferredStoreId = props.preferredStoreId();\r\n\r\n return (\r\n
\r\n {isLoading &&\r\n
\r\n \r\n
\r\n }\r\n {locations?.map((location: any) => (\r\n \r\n ))}\r\n {locations.length === 0 && !isLoading &&\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n};\r\n\r\nexport default Stores;","import React from 'react';\r\nimport Button from 'mfcl/Button';\r\n\r\nconst ShowAllStores: React.FC = (props: any) => {\r\n const { enableShowAllStores, showAllStoresExternalLink } = props;\r\n if (enableShowAllStores){\r\n return (\r\n
\r\n \r\n {showAllStoresExternalLink?.linkText || 'See All Stores'}\r\n \r\n
\r\n\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default ShowAllStores;\r\n","import { IActionContext } from '@msdyn365-commerce/core';\r\nimport Cookies from 'universal-cookie';\r\nexport const getZipCode = (ctx: IActionContext): string | undefined => {\r\n //@ts-ignore\r\n const geolocationZipCode = ctx.requestContext.geoLocation?.zipCode ? ctx.requestContext.geoLocation.zipCode : ctx.requestContext.geoLocation?.res?.zipCode;\r\n const cookie = new Cookies();\r\n const zipcode = cookie.get('zip_code') ? cookie.get('zip_code') : geolocationZipCode;\r\n return zipcode ?? undefined;\r\n};\r\nexport const getGeoLocationZipCode = (ctx: IActionContext): string | undefined => {\r\n //@ts-ignore\r\n const zipCode = ctx.requestContext.geoLocation?.zipCode ? ctx.requestContext.geoLocation.zipCode : ctx.requestContext.geoLocation?.res?.zipCode;\r\n return zipCode ?? null;\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n// import Cookies from 'universal-cookie';\r\nimport getSociData, { GetSociDataInput } from '../../../../actions/get-soci-data.action';\r\nimport Search from './components/Search';\r\nimport Stores from './components/Stores';\r\nimport ShowAllStores from './components/showAllStores';\r\nimport Close from 'mfcl/Icons/Close';\r\nimport Cookies from 'universal-cookie';\r\nimport { getZipCode, getGeoLocationZipCode } from '../../util/store-locator';\r\nimport { StoreSelectorStateInput } from '../../../../data-actions/store-selector-state-data-action';\r\n\r\nexport type storeLocatorCookie = {\r\n name: string;\r\n value: string | undefined;\r\n};\r\n\r\nconst StoreSelector: React.FC = (props) => {\r\n const cookies = new Cookies();\r\n const zipCode = cookies.get('zip_code');\r\n const [locations, setLocations] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [searchTerm, setSearchTerm] = useState(zipCode || '');\r\n const [isError, setIsError] = useState(false);\r\n const [defaultStore, setDefaultStore] = useState({});\r\n const { storeLocatorTitle, lookupRadius, maxNoOfLocations, enableShowAllStores, showAllStoresExternalLink, errorLocationsText } = props.headerProps?.config;\r\n useEffect(() => {\r\n sociLocationsWithDefault(lookupRadius, maxNoOfLocations);\r\n }, []);\r\n\r\n useEffect(() => {\r\n getSociLocations(lookupRadius, maxNoOfLocations, zipCode);\r\n }, [defaultStore]);\r\n\r\n const getSociLocations = (searchRadius: number, noOfLocations: number, searchTerm: string) => {\r\n try {\r\n setIsLoading(true);\r\n void getSociData(new GetSociDataInput(searchRadius, noOfLocations, searchTerm), props.headerProps.context.actionContext).then((data: any) => {\r\n if (data) {\r\n const sociAvailableStores = data.response.collection && data.response.collection.filter((store: { opening_status: string; }) => store?.opening_status !== 'permanently_closed') || [];\r\n const sortedLocations = sortSociLocations(sociAvailableStores);\r\n setLocations(sortedLocations);\r\n _setCookie({ name: 'zip_code', value: searchTerm }, 24 * 365);\r\n setIsLoading(false);\r\n setIsError(false);\r\n }\r\n });\r\n } catch (error) {\r\n setIsLoading(false);\r\n console.error('Soci API error', Error);\r\n }\r\n };\r\n\r\n const sociLocationsWithDefault = (searchRadius: number, noOfLocations: number) => {\r\n const { context: { actionContext } } = props.headerProps;\r\n const zipCode = getZipCode(actionContext) || '';\r\n setSearchTerm(zipCode);\r\n const selectedStore = localStorage.getItem('_mfrm__prefferedStore_') ?? undefined;\r\n try {\r\n setIsLoading(true);\r\n void getSociData(new GetSociDataInput(searchRadius, noOfLocations, searchTerm), props.headerProps.context.actionContext).then((data: any) => {\r\n if (data) {\r\n const sociAvailableStores = data.response.collection && data.response.collection.filter((store: { opening_status: string; }) => store?.opening_status !== 'permanently_closed') || [];\r\n const sortedLocations = sortSociLocations(sociAvailableStores);\r\n setLocations(sortedLocations);\r\n _setCookie({ name: 'zip_code', value: searchTerm }, 24 * 365);\r\n setIsLoading(false);\r\n setIsError(false);\r\n if (!selectedStore) {\r\n setPreferredStore(sociAvailableStores[0]);\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n setIsLoading(false);\r\n console.error('Soci API error', Error);\r\n }\r\n };\r\n\r\n const onGetCurrentLocations = () => {\r\n const { context: { actionContext } } = props.headerProps;\r\n const zipCode = getGeoLocationZipCode(actionContext) || '';\r\n setSearchTerm(zipCode);\r\n getSociLocations(lookupRadius, maxNoOfLocations, zipCode);\r\n };\r\n\r\n const _setCookie = (cookie: storeLocatorCookie, deltaHoursFromToday: number): void => {\r\n const { cookies } = props.headerProps.context.request;\r\n const now = new Date(Date.now());\r\n now.setHours(now.getHours() + deltaHoursFromToday);\r\n\r\n cookies.set(cookie.name, cookie.value, {\r\n expires: deltaHoursFromToday === 0 || deltaHoursFromToday === undefined ? 0 : now,\r\n isEssential: true\r\n } as {});\r\n };\r\n\r\n const setPreferredStore = (store: any) => {\r\n if (!store) {\r\n return;\r\n }\r\n _setCookie({ name: 'preferredStoreState', value: store?.state || '' }, 24 * 365);\r\n const { context: { actionContext } } = props.headerProps;\r\n const zip_Code = searchTerm ? searchTerm : getZipCode(actionContext);\r\n // On setting preferred store, current search zipCode will be used as delivery zipCode\r\n _setCookie({ name: 'zip_code', value: zip_Code || '' }, 24 * 365);\r\n // update the state to trigger zipcode change in product-compare\r\n const projectMetaSoci = store?.project_meta ? JSON.parse(store?.project_meta) : '';\r\n const sociStore = projectMetaSoci ? projectMetaSoci['Corporate ID'] : '';\r\n const sociStoreID = sociStore && (sociStore?.length > 6 ? sociStore : `000000${sociStore}`?.slice(-6)) || '';\r\n // @ts-ignore\r\n const selectedStore = localStorage.getItem('_mfrm__prefferedStore_') ? JSON.parse(localStorage.getItem('_mfrm__prefferedStore_')) : null;\r\n localStorage.setItem('_mfrm__prefferedStore_', JSON.stringify({ ...store, OrgUnitNumber: sociStoreID, Zip: store.postalcode }));\r\n actionContext.update(new StoreSelectorStateInput(), {\r\n sociPreferredStore: { ...store, OrgUnitNumber: sociStoreID, Zip: store.postalcode }\r\n });\r\n setDefaultStore(JSON.stringify({ ...store, OrgUnitNumber: sociStoreID, Zip: store.postalcode }));\r\n const pageURL = window && window.location.pathname;\r\n if (selectedStore && sociStoreID !== selectedStore?.StoreId) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'store-locator-slideout-change-my-store',\r\n event_category: 'store locator slideout',\r\n event_action: 'change my store',\r\n event_label: `from: ${pageURL}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n }\r\n if (sociStoreID && selectedStore === null) {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: 'store-locator-slideout-make-my-store',\r\n event_category: 'store locator slideout',\r\n event_action: 'make my store',\r\n event_label: `from: ${pageURL}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n }\r\n\r\n };\r\n\r\n const onHandleSetPreferredStore = (store: any) => {\r\n if (!store) {\r\n return;\r\n }\r\n const isFranchise = JSON.parse(store?.project_meta).Division === 'Franchise' || false;\r\n if (isFranchise) {\r\n return;\r\n }\r\n setPreferredStore(store);\r\n props.onHandleCloseDrawer();\r\n };\r\n\r\n const removePreferredStore = async () => {\r\n const {\r\n context: {\r\n actionContext: {\r\n requestContext: { cookies }\r\n }\r\n },\r\n data: {\r\n storeSelectorStateManager: { result: storeSelectorStateManager }\r\n // storeSelectorState: { result: storeSelectorState }\r\n }\r\n } = props?.headerProps;\r\n const { context: { actionContext } } = props?.headerProps;\r\n actionContext?.update(new StoreSelectorStateInput(), {\r\n sociPreferredStore: {}\r\n });\r\n\r\n localStorage.removeItem('_mfrm__prefferedStore_');\r\n localStorage.removeItem('_msdyn365__preferredStore_');\r\n await storeSelectorStateManager.clearPreferredStore(cookies?.isConsentGiven());\r\n const zip_Code = searchTerm ? searchTerm : getZipCode(actionContext);\r\n getSociLocations(lookupRadius, maxNoOfLocations, zip_Code);\r\n\r\n };\r\n\r\n const getPreferredStoreId = () => {\r\n const preferredStore = localStorage.getItem('_mfrm__prefferedStore_') || null;\r\n const parsedPreferredStore = JSON.parse(preferredStore!);\r\n return parsedPreferredStore?.OrgUnitNumber;\r\n };\r\n\r\n const sortSociLocations = (stores: any) => {\r\n const sociStores = stores.reduce((acc: string, store: { name: string; }) => {\r\n const preferredStore = localStorage?.getItem('_mfrm__prefferedStore_') || null;\r\n const parsedPreferredStore = JSON.parse(preferredStore!);\r\n if (parsedPreferredStore?.name === store.name) {\r\n return [store, ...acc];\r\n }\r\n return [...acc, store];\r\n }, []);\r\n return sociStores;\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {storeLocatorTitle &&

{storeLocatorTitle}

}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default StoreSelector;\r\n","import React, { useEffect, useState } from 'react';\r\nimport classnames from 'classnames';\r\nimport Drawer from \"mfcl/Drawer\";\r\nimport StoreSelector from './../../../store-selector';\r\nimport { trapFocus } from '../../../../util/trap-focus';\r\n\r\nexport const StoreLocator: React.FC = (props) => {\r\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\r\n const { ariaLabel, iconUrl, mobile, type } = props.icon;\r\n\r\n const onHandleCloseDrawer = () => {\r\n setIsDrawerOpen(false);\r\n };\r\n const onHandleToggleDrawer = (isDrawerOpen: boolean) => {\r\n setIsDrawerOpen(!isDrawerOpen);\r\n };\r\n\r\n const handleKeyDown = (e: { key: string }) => {\r\n if (e.key === 'Enter' && !isDrawerOpen) {\r\n onHandleToggleDrawer(isDrawerOpen);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n trapFocus('.store-selector-drawer__title', '.store-selector-drawer__body');\r\n }, [isDrawerOpen]);\r\n\r\n return (\r\n <>\r\n
\r\n { iconUrl && }\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport CartIcon from './CartIcon';\r\nimport { UserProfile } from './UserProfile';\r\nimport { StoreLocator } from './StoreLocator';\r\n\r\n\r\nexport const UtilityIcon: React.FC = (props) => {\r\n\r\n //dynamics data variables\r\n const { ariaLabel, iconUrl, mobile, type, desktop, url } = props.iconData;\r\n const { cartIcon } = props.headerData.slots;\r\n\r\n const handleKeyDown = (e: { key: string }) => {\r\n if (e.key === 'Enter') {\r\n window.location.href = url;\r\n }\r\n };\r\n\r\n //!TODO make these all have different types rather than labels that can be changed\r\n const analyticsEventFire = (href: string) => {\r\n if (href?.includes('tel')) {\r\n if ('utag' in window) {\r\n // @ts-ignore\r\n utag.link({\r\n event: \"call-engagement\",\r\n event_category: \"call\",\r\n event_noninteraction: \"false\",\r\n event_type: \"call_engagement\",\r\n event_action: \"header click\",\r\n event_label: \"call engagement\"\r\n });\r\n }\r\n }\r\n };\r\n\r\n const hideIconOrNumber = (mobile: boolean, desktop: boolean) => {\r\n if (mobile) {\r\n return 'utility-icon icon-desktop-hide';\r\n }\r\n\r\n if (desktop) {\r\n return 'icon-mobile-hide';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n const hideIcon = (mobile: boolean, desktop: boolean) => {\r\n if(!mobile && !desktop){\r\n return 'utility-icon mobile-hide desktop-hide ';\r\n }\r\n if (!mobile && desktop) {\r\n return 'utility-icon mobile-hide desktop-show ';\r\n }\r\n\r\n if (!desktop && mobile) {\r\n return ' utility-icon desktop-hide mobile-show ';\r\n }\r\n\r\n return 'mobile-show desktop-show';\r\n };\r\n\r\n const getUtilityIcon = (type: string): JSX.Element => {\r\n switch (type) {\r\n case '':\r\n if (url?.includes('tel:')) {\r\n return (\r\n analyticsEventFire(url)}\r\n >\r\n \r\n {\r\n mobile\r\n ? iconUrl && {ariaLabel}\r\n :
{ariaLabel}
\r\n }\r\n \r\n
\r\n );\r\n }\r\n return (\r\n analyticsEventFire(url)}\r\n >\r\n {iconUrl && url &&\r\n \r\n {ariaLabel}\r\n }\r\n );\r\n case 'ACCOUNT':\r\n return ;\r\n case 'CART':\r\n return {cartIcon};\r\n case 'STORES':\r\n return ;\r\n default:\r\n return <>;\r\n\r\n }\r\n };\r\n\r\n return getUtilityIcon(type ?? '');\r\n};\r\n","import React, { createContext } from 'react';\r\nimport { IMfrmHeaderViewProps } from '../../modules/mfrm-header/mfrm-header';\r\nimport { CompanyLogo } from './components/head/head-components/CompanyLogo';\r\nimport HamburgerMenuBtn from './components/head/head-components/HamburgerMenuBtn';\r\nimport MenuBar from './components/head/head-components/MenuBar';\r\nimport { SearchBar } from './components/head/head-components/SearchBar';\r\nimport { UtilityIcon } from './components/head/head-components/utility-bar/UtilityIcon';\r\nimport { HamburgerBtnProvider } from './context/HamburgerBtnContext';\r\nimport { MenuLevelProvider } from './context/MenuLevelContext';\r\nimport { MainLinkProvider } from './context/MainLinkContext';\r\nimport { MyAccountBtnProvider } from './context/MyAccountDrawerContext';\r\n\r\n//context API for data\r\nexport const NavDataContext = createContext(undefined);\r\n\r\nexport interface IUtilityIconData {\r\n ariaLabel: string,\r\n iconUrl: string,\r\n url: string,\r\n label: string,\r\n type: string,\r\n beforeLogo: boolean,\r\n mobile: boolean,\r\n desktop: boolean,\r\n}\r\n\r\nconst MFRMHeader = (props: IMfrmHeaderViewProps) => {\r\n\r\n const { myAccountLinks, logoImage, logoLink, icons, myAccountIconUrl, signInUrl, signOutUrl, signUpUrl, myAccountLinkUrl } = props.config;\r\n let bedhubDataSource = props?.config?.bedhubDataSource;\r\n const customer = props.data.accountInformation?.result;\r\n const signInLinks = props.context.app.config;\r\n const {\r\n data: {\r\n bedhubHeader: { result: bedhubHeader }\r\n }\r\n } = props;\r\n\r\n if (bedhubHeader?.data?.ui === undefined) {\r\n bedhubDataSource = false;\r\n }\r\n\r\n //defining data for products, utilities and subcategories depending on if we are calling the bedhub or D365 API\r\n const products = bedhubDataSource ? (bedhubHeader?.data?.ui?.navbar?.products || []) : props.config.products;\r\n const utilities = bedhubDataSource ? (bedhubHeader?.data?.ui?.navbar?.utilities || []) : props.config.utilities;\r\n const bedhubIcons = bedhubDataSource && bedhubHeader?.data?.ui?.header?.actions || [];\r\n\r\n const d365IconData = (d365data: any): IUtilityIconData[] => {\r\n return d365data.map((icon: any) => {\r\n const iconData: IUtilityIconData = {\r\n ariaLabel: icon.ariaLabel ?? '',\r\n iconUrl: icon.iconUrl ?? '',\r\n url: icon.url.destinationUrl ?? '',\r\n label: icon.label ?? '',\r\n type: icon.type ?? '',\r\n beforeLogo: icon.beforeLogo,\r\n mobile: icon.mobile,\r\n desktop: icon.desktop\r\n };\r\n return iconData;\r\n });\r\n };\r\n\r\n const bedhubIconData = (bedhubIcons: any): IUtilityIconData[] => {\r\n return bedhubIcons.map((icon: any) => {\r\n const iconData: IUtilityIconData = {\r\n ariaLabel: icon.ariaLabel ?? '',\r\n iconUrl: icon.image.url ?? '',\r\n url: icon.url ?? '',\r\n label: icon.label ?? '',\r\n type: icon.type ?? '',\r\n beforeLogo: icon.beforeLogo,\r\n mobile: icon.mobile,\r\n desktop: icon.desktop\r\n };\r\n return iconData;\r\n });\r\n };\r\n const utilityIconData: IUtilityIconData[] = bedhubDataSource ? bedhubIconData(bedhubIcons) : d365IconData(icons);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {utilityIconData &&\r\n
\r\n {utilityIconData?.filter((icon: IUtilityIconData) => icon?.beforeLogo)?.map((icon: IUtilityIconData) => {\r\n return (\r\n \r\n );\r\n })}\r\n
}\r\n \r\n {props.slots.search}\r\n {utilityIconData &&\r\n
\r\n {utilityIconData?.map((icon: IUtilityIconData) => {\r\n return (\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 MFRMHeader;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport MFRMHeader from '../../mfrm-components/mfrm-header/MFRMHeader';\r\nimport { IMfrmHeaderViewProps } from './mfrm-header';\r\n\r\nexport default (props: IMfrmHeaderViewProps) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['mfrm-header'] = {\n c: () => require('partner/modules/mfrm-header/mfrm-header.tsx'),\n $type: 'containerModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'bedhubHeader', path:'actions/bedhub-header.action', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1}],\n \n iNM: false,\n ns: '__local__',\n n: 'mfrm-header',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/mfrm-header'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = 'actions/bedhub-header.action';\n let dataAction = require('partner/actions/bedhub-header.action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|mfrm-header|mfrm-header'] = {\n c: () => require('partner/modules/mfrm-header/mfrm-header.view.tsx'),\n cn: '__local__-__local__-mfrm-header'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n if (window) {\n const currentWindowAPI = window.mapAPIReady;\n window.mapAPIReady = () => {\n if (currentWindowAPI) {\n currentWindowAPI();\n }\n this.isMapApiLoaded = true;\n };\n }\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["getZipCode","ctx","_ctx$requestContext$g","_ctx$requestContext$g2","geolocationZipCode","requestContext","geoLocation","zipCode","res","cookie","Cookies","zipcode","get","undefined","getGeoLocationZipCode","_ctx$requestContext$g3","_ctx$requestContext$g4","BedhubHeaderInput","constructor","getCacheKey","getCacheObjectType","dataCacheType","Msdyn365","action","async","input","_ctx$requestContext","baseURL","app","config","bedhubBaseUrl","token","_Msdyn365$msdyn365Com","_Msdyn365$msdyn365Com2","_Msdyn365$msdyn365Com3","secretManager","getSecretValue","apiSettings","baseUrl","getAccessToken","error","console","graphqlURL","URL","href","query","response","axios","JSON","stringify","headers","Authorization","data","id","args","bedhubDataSource","Error","GetSociDataInput","searchradius","searchLimit","this","_input$searchLimit","_input$searchradius$t","_input$searchradius","geoLoc","test","toString","e","log","_args$config","_args$config$maxNoOfF","_args$config2","lookupRadius","maxNoOfFranchise","StoreSelectorStateInput","storeSelectorStateAction","isModalOpen","prefferedStore","MsDyn365","isBrowser","localStorage","getItem","parse","createObservableDataAction","inputData","MfrmHeader","React","render","props","renderView","CompanyLogo","logoImage","logoLink","useContext","NavDataContext","linkUrl","destinationUrl","className","tabIndex","onKeyDown","_document$getElementB","key","document","getElementById","click","ariaLabel","target","openInNewTab","src","alt","altText","height","width","charCount","str","charsLimit","length","substring","MfrmBadge","label","type","badgeData","badgeLabel","Badge","style","backgroundColor","getBadgeBgColor","color","border","borderRadius","padding","textTransform","fontWeight","minWidth","alignSelf","lineHeight","whiteSpace","MenuLevelContext","createContext","MenuLevelProvider","_ref","children","selectedLevel","setSelectedLevel","useState","Provider","value","useMenuLevelContext","MainLinkContext","MainLinkProvider","selectedLink","setSelectedLink","useMainLinkContext","BackToMainMenu","changeSelectedLevel","onClick","CategoryHeader","categoryTitle","products","shopAllButton","filter","map","btn","_btn$action","_btn$action2","_btn$action3","url","activeSubMenu","querySelector","activeShopAllButton","getElementsByClassName","PrimarySubcategoryMenu","categories","productMenuCategoryData","productMenuCategory","category","_category$accordion","isShowMore","setIsShowMore","onHandleMaximum","maximumCount","accordion","maximum","categoryListCount","items","categoryItems","slice","item","_item$image","image","badge","SecondarySubcategoryMenu","_ref2","subcategories","productMenuSubCategory","subcategory","toLowerCase","ProductCategoryMenu","_data$L2Data","_data$L2Data2","L2Data","subCategories","PromotionalBanner","promotionalBannerImage","promotionalBannerImageUrl","bannerData","_props$bannerData","L2Wrapper","subMenuData","subCat","i","promotionalbannerData","MenuLogin","_bedhubHeader$data","_signInUrl$linkUrl","_signUpUrl$linkUrl","_signOutUrl$linkUrl","_signOutUrl$linkUrl2","_myAccountLinkUrl$lin","customer","myAccountIconUrl","signInUrl","signUpUrl","signOutUrl","myAccountLinkUrl","bedhubHeader","bedhubAccount","ui","header","account","myAccount","signIn","signOut","signUp","currentURL","window","location","signInLink","linkText","signUpLink","signOutLink","myAccountLink","trapFocus","firstQuerySelector","secondQuerySelector","thirdQuerySelector","firstFocusableElement","drawer","focusableContent","querySelectorAll","lastFocusableElement","addEventListener","shiftKey","activeElement","focus","preventDefault","HamburgerBtnContext","HamburgerBtnProvider","navDrawerOpen","setNavDrawerOpen","newOpenValue","useEffect","HamburgerDrawerState","useHamburgerBtnContext","L1Wrapper","utilities","handleL1ItemClick","level","product","__typename","productMenuLink","callout","promotionalBanner","promotion","mattressMatcher","_item$html","_item$richTextLabel","html","richTextLabel","dangerouslySetInnerHTML","__html","mainLinks","_item$html2","_item$richTextLabel2","removedSpacesAndSpecialText","replace","handleClick","event","callBacks","CHAT","chatWidget","utag","link","event_category","event_noninteraction","event_type","event_action","event_label","dispatchEvent","Event","simulateChatClick","includes","callUsAnalytics","helperLinks","MenuHeader","closeDrawer","onKeyPress","MenuWrapper","Drawer","isOpen","onClose","closeNavDrawer","position","close","headerClassName","HamburgerMenuBtn","openNavDrawer","selectedL1MainLink","HamburgerMenu","MenuBar","handleItemClick","productTitles","navitem","_navitem$html","calloutLinks","_navitem$html2","SearchBar","MyAccountBtnContext","MyAccountBtnProvider","myAccountDrawerOpen","setMyAccountDrawerOpen","MyAccountDrawerState","useMyAccountBtnContext","AccountForm","myAccountLinks","signInLinks","handleKeyDown","mapAndFilterLinks","accountItem","_accountItem$linkUrl","goToAccountLink","orderHistoryLink","MyAccountDrawer","closeAccountDrawer","UserProfile","iconUrl","mobile","icon","classnames","size","xmlns","viewBox","shapeRendering","fill","d","textInput","useRef","onSubmit","searchTerm","_textInput$current","pageURL","pathname","current","onGetSociLocations","maxNoOfLocations","setIsError","LocationIcon","onHandleCurrentLocations","Input","wrapperClass","isError","maxLength","ref","onChange","inputValue","setSearchTerm","Button","_JSON$parse","name","project_meta","bho","_distance","address1","address2","city","state","postalcode","website_url","isFranchise","Division","projectMetaSoci","sociStore","sociStoreID","isPreferredStore","preferredStoreId","storeHours","dayjs","day","opensAt","format","closedAt","isStoreOpen","hour","onHandleRemovePreferredStore","btnType","onHandleSetPreferredStore","isLoading","locations","errorLocationsText","Loading","StoreLineItem","setPreferredStore","removePreferredStore","enableShowAllStores","showAllStoresExternalLink","_showAllStoresExterna","_props$headerProps","setLocations","setIsLoading","defaultStore","setDefaultStore","storeLocatorTitle","headerProps","sociLocationsWithDefault","getSociLocations","searchRadius","noOfLocations","getSociData","context","actionContext","then","sociAvailableStores","collection","store","opening_status","sortedLocations","sortSociLocations","_setCookie","_localStorage$getItem","selectedStore","deltaHoursFromToday","cookies","request","now","Date","setHours","getHours","set","expires","isEssential","zip_Code","setItem","_objectSpread","OrgUnitNumber","Zip","update","sociPreferredStore","StoreId","stores","reduce","acc","_localStorage","preferredStore","parsedPreferredStore","onHandleCloseDrawer","Close","stroke","strokeWidth","Search","onGetCurrentLocations","Stores","storeSelectorStateManager","result","removeItem","clearPreferredStore","isConsentGiven","getPreferredStoreId","ShowAllStores","StoreLocator","isDrawerOpen","setIsDrawerOpen","onHandleToggleDrawer","bodyClassName","closeButtonClass","backdropClassName","StoreSelector","UtilityIcon","desktop","iconData","cartIcon","headerData","slots","analyticsEventFire","hideIconOrNumber","hideIcon","CartIcon","getUtilityIcon","_props$config","_props$data$accountIn","_bedhubHeader$data2","_bedhubHeader$data3","_bedhubHeader$data4","_utilityIconData$filt","icons","accountInformation","navbar","bedhubIcons","actions","utilityIconData","_icon$ariaLabel2","_icon$image$url","_icon$url","_icon$label2","_icon$type2","beforeLogo","bedhubIconData","_icon$ariaLabel","_icon$iconUrl","_icon$url$destination","_icon$label","_icon$type","search","MFRMHeader","Object","assign","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","prototype","RegistrationId","c","require","$type","da","path","runOn","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","BaseStoreSelectorStateManager","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","isMapModuleLoaded","_readFromToCookie","storeInfo","_unused","_context","storeId","selectedStoreLocationId","storeName","writeToCookie","arguments","StoreName","Latitude","Longitude","_writeToCookie","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","cookieValue","__decorate","computed","observable","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","encodeURI","geolocationApiUrl","requestUrl","Promise","resolve","script","createElement","setAttribute","remove","resourceSets","resources","point","coordinates","body","appendChild","_document","StringExtensions","isNullOrEmpty","currentWindowAPI","mapAPIReady","isMapApiLoaded","lang","market","reject","_document2","_document3","defer","createStoreSelectorStateInput","GenericInput","getGenericActionDataAction","getGenericAction","module","exports","ReactDOM"],"sourceRoot":""}