{"version":3,"file":"db9b3760.js","sources":["../../../src/components/globals/navigation/NavigationDrawer.client.tsx"],"sourcesContent":["import {useMemo, useEffect, useState} from 'react';\nimport {Image, Link, useLocalization} from '@shopify/hydrogen';\n\nimport {handleize} from 'Js/lib/handleize';\nimport {sanityImage} from 'Js/lib/sanity-image';\nimport useMediaQuery from 'Js/hooks/useMediaQuery';\nimport Cookies from 'js-cookie';\n\n/**\n * A client component that defines the navigation for a web storefront\n */\nexport default function NavigationDrawer({\n enableSimpleMenu,\n headerSolid,\n navigation,\n openTab,\n setOpenTab,\n showPromoBanner,\n}: {\n enableSimpleMenu: boolean;\n headerSolid: boolean;\n navigation: any;\n openTab: string;\n setOpenTab: any;\n showPromoBanner: boolean;\n}): JSX.Element {\n const isMobile = useMediaQuery('(max-width: 767px)');\n const {\n country: {isoCode: countryCode},\n } = useLocalization();\n const [drawerLeftPos, setDrawerLeftPos] = useState(0);\n\n const navDataIndex = navigation?.links.findIndex(\n (link: any) => openTab === (link.title || link.text),\n );\n const navData = navigation?.links[navDataIndex];\n const hasTouts = navData && navData.touts && navData.touts.length;\n const navDataTouts = hasTouts && (navData.touts[0].touts || navData.touts);\n const hasNestedLinkGroup =\n navData &&\n navData.links &&\n navData.links.filter((link: any) => link._type === 'linkGroup').length;\n const shouldUseSimpleMenu =\n enableSimpleMenu && !hasTouts && !hasNestedLinkGroup;\n const drawerWidth = shouldUseSimpleMenu ? 'w-[212px]' : 'w-full';\n const isDomestic = countryCode === 'US';\n const show2Hr = Cookies.get('show_2_hour_delivery_nav');\n\n useEffect(() => {\n if (!document || !openTab) return;\n\n // reset drawer positioning for large width drawer\n if (!shouldUseSimpleMenu) {\n setDrawerLeftPos(0);\n return;\n }\n\n // get nav item from main header\n const $navItem = document.body.querySelector(\n `li[data-nav-item=${handleize(openTab)}]`,\n );\n if (!$navItem) return;\n\n // calculate and set left positioning for drawer\n const computedStyle = window.getComputedStyle($navItem);\n const leftPos = $navItem?.getBoundingClientRect().left;\n const leftMargin = parseInt(computedStyle.marginTop, 10);\n const leftPosWithMargin =\n leftPos - leftMargin >= 0 ? leftPos - leftMargin : 0;\n setDrawerLeftPos(leftPosWithMargin);\n }, [openTab, shouldUseSimpleMenu]);\n\n return navData && navData.links && headerSolid ? (\n