{"version":3,"file":"navigation-btf-navigationDesktop.chunk.1aa0b7312d6f5caeb0a8.js","mappings":"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","sources":["webpack:///./html/wp-content/themes/ls/src/js/main/components/navigation/btf/keyboardNavigation.ts","webpack:///./html/wp-content/themes/ls/src/js/main/components/navigation/btf/navigationDesktop.js","webpack:///./html/wp-content/themes/ls/src/js/main/components/navigation/btf/toggleSubMenu.ts","webpack:///./html/wp-content/themes/ls/src/js/utils/tracking/GA4/navigation/navTracking.ts"],"sourcesContent":["import {\n openSubMenu,\n closeSubMenu,\n} from 'root/main/components/navigation/btf/toggleSubMenu';\n\ntype AxisToTraverse = 'menubar' | 'child' | 'grandchild';\nclass BtfNavBar {\n #menubar: HTMLElement;\n #menubarItems: HTMLElement[];\n #menuItemQuerySelector = '[role=menuitem]';\n\n constructor(el: HTMLElement) {\n if (el) {\n this.#menubar = el;\n this.#menubarItems = Array.from(\n this.#menubar.querySelectorAll(this.#menuItemQuerySelector)\n ).filter(menubarItem => {\n return (\n this.#isMenubarItem(menubarItem) &&\n menubarItem.getBoundingClientRect().height > 0 &&\n menubarItem.getBoundingClientRect().width > 0\n );\n });\n }\n }\n\n #isMenubarItem(menuItem: HTMLElement) {\n return !menuItem.closest('[role=menu]');\n }\n\n #isParentItem(element: HTMLElement) {\n return element.getAttribute('aria-haspopup') === 'true';\n }\n\n #getAdjacentGrandChildElements(currentElement: HTMLElement) {\n const adjacentItems = [];\n const childLevelElement = currentElement.closest('[data-navigation-level=child]');\n if (childLevelElement !== null) {\n adjacentItems.push(\n ...Array.from(\n childLevelElement.querySelectorAll(\n this.#menuItemQuerySelector\n )\n )\n );\n } else {\n adjacentItems.push(\n ...Array.from(\n currentElement\n .closest('[role=menu]')\n ?.querySelectorAll(this.#menuItemQuerySelector) ?? []\n )\n );\n }\n return adjacentItems;\n }\n\n #getChildLevelItems(element: HTMLElement) {\n return Array.from(\n element\n .closest('[data-navigation-level=parent]')\n ?.querySelectorAll(\n '[data-navigation-level=child] > [role=menuitem]'\n ) ?? []\n );\n }\n\n #hasChildLevelItems(element: HTMLElement) {\n return element.closest('[data-navigation-level=child]') ? true : false;\n }\n\n #getTraversalObject(element: HTMLElement, axisToTraverse: AxisToTraverse) {\n if (element) {\n const traversalMap = {\n menubar: {\n arrayToTraverse: () => {\n return this.#menubarItems;\n },\n elementInAxis: () =>\n element\n .closest('[data-navigation-level=parent]')\n ?.querySelector(this.#menuItemQuerySelector),\n },\n child: {\n arrayToTraverse: () => this.#getChildLevelItems(element),\n elementInAxis: () =>\n element\n .closest('[data-navigation-level=child]')\n ?.querySelector(this.#menuItemQuerySelector),\n },\n grandchild: {\n arrayToTraverse: () => this.#getAdjacentGrandChildElements(element),\n elementInAxis: () => element,\n },\n };\n return {\n arrayToTraverse: traversalMap[axisToTraverse].arrayToTraverse(),\n elementInAxis: traversalMap[axisToTraverse].elementInAxis(),\n };\n } else {\n return {};\n }\n }\n\n #getParentAxis(\n element: HTMLElement,\n axisToTraverse: AxisToTraverse\n ): AxisToTraverse | undefined {\n const axesToTraverse: AxisToTraverse[] = ['grandchild', 'child', 'menubar'];\n let parentAxis: AxisToTraverse | undefined =\n axesToTraverse[axesToTraverse.indexOf(axisToTraverse) + 1];\n if (parentAxis === 'child' && !this.#hasChildLevelItems(element)) {\n parentAxis = this.#getParentAxis(element, parentAxis);\n }\n return parentAxis;\n }\n\n #traverseNavigationAxis(\n element: HTMLElement,\n direction: 'next' | 'previous' | 'first' | 'last',\n axisToTraverse: AxisToTraverse,\n traverseParentAxisAtLimits = false\n ): boolean {\n const { arrayToTraverse, elementInAxis } = this.#getTraversalObject(\n element,\n axisToTraverse\n );\n if (arrayToTraverse && elementInAxis) {\n const indexOfItem = arrayToTraverse.indexOf(elementInAxis);\n switch (direction) {\n case 'next':\n if (indexOfItem < arrayToTraverse.length - 1) {\n arrayToTraverse[indexOfItem + 1].focus();\n if (axisToTraverse === 'menubar') {\n closeSubMenu(element);\n }\n return true;\n } else if (axisToTraverse === 'child') {\n return this.#traverseNavigationAxis(\n element,\n direction,\n 'menubar'\n );\n } else if (\n indexOfItem === arrayToTraverse.indexOf(elementInAxis) &&\n traverseParentAxisAtLimits\n ) {\n const parentAxis = this.#getParentAxis(element, axisToTraverse);\n if (parentAxis) {\n return this.#traverseNavigationAxis(\n element,\n direction,\n parentAxis\n );\n }\n }\n break;\n case 'previous':\n if (indexOfItem > 0) {\n arrayToTraverse[indexOfItem - 1].focus();\n if (axisToTraverse === 'menubar') {\n closeSubMenu(element);\n }\n return true;\n } else {\n if (axisToTraverse === 'grandchild') {\n closeSubMenu(element, true);\n } else if (axisToTraverse === 'child') {\n return this.#traverseNavigationAxis(\n element,\n direction,\n 'menubar'\n );\n }\n }\n break;\n case 'first':\n arrayToTraverse[0].focus();\n return true;\n case 'last':\n arrayToTraverse[arrayToTraverse.length - 1].focus();\n return true;\n }\n }\n return false;\n }\n\n #handleKeydown(event: KeyboardEvent) {\n const currentElement = document.activeElement;\n if (\n currentElement instanceof HTMLElement &&\n currentElement.getAttribute('role') === 'menuitem' &&\n this.#menubar.contains(currentElement)\n ) {\n switch (event.code) {\n case 'ArrowLeft': {\n event.preventDefault();\n const axisToTraverse = this.#hasChildLevelItems(currentElement)\n ? 'child'\n : 'menubar';\n this.#traverseNavigationAxis(\n currentElement,\n 'previous',\n axisToTraverse\n );\n break;\n }\n case 'ArrowRight': {\n event.preventDefault();\n const axisToTraverse = this.#hasChildLevelItems(currentElement)\n ? 'child'\n : 'menubar';\n this.#traverseNavigationAxis(currentElement, 'next', axisToTraverse);\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n if (!this.#isMenubarItem(currentElement)) {\n this.#traverseNavigationAxis(\n currentElement,\n 'previous',\n 'grandchild'\n );\n }\n break;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (this.#isParentItem(currentElement)) {\n openSubMenu(currentElement, true);\n } else {\n if (!this.#isMenubarItem(currentElement)) {\n this.#traverseNavigationAxis(\n currentElement,\n 'next',\n 'grandchild'\n );\n }\n }\n break;\n case 'Home': {\n event.preventDefault();\n const axisToTraverse = this.#isMenubarItem(currentElement)\n ? 'menubar'\n : 'grandchild';\n this.#traverseNavigationAxis(currentElement, 'first', axisToTraverse);\n break;\n }\n case 'End': {\n event.preventDefault();\n const axisToTraverse = this.#isMenubarItem(currentElement)\n ? 'menubar'\n : 'grandchild';\n this.#traverseNavigationAxis(currentElement, 'last', axisToTraverse);\n break;\n }\n case 'Space':\n if (this.#isParentItem(currentElement)) {\n event.preventDefault();\n openSubMenu(currentElement, true);\n }\n break;\n case 'Enter':\n if (this.#isParentItem(currentElement)) {\n event.preventDefault();\n openSubMenu(currentElement, true);\n }\n break;\n case 'Escape':\n event.preventDefault();\n closeSubMenu(currentElement, true);\n break;\n case 'Tab': {\n const direction = event.shiftKey === true ? 'previous' : 'next';\n const axisToTraverse = this.#isMenubarItem(currentElement)\n ? 'menubar'\n : 'grandchild';\n const hasTraversalHappened = this.#traverseNavigationAxis(\n currentElement,\n direction,\n axisToTraverse,\n true\n );\n if (hasTraversalHappened) {\n event.preventDefault();\n }\n break;\n }\n }\n }\n }\n\n listenToKeyDown() {\n document.addEventListener('keydown', e => {\n this.#handleKeydown(e);\n });\n }\n}\n\nexport default function btfNavBar(btfNavBars: HTMLElement[]) {\n btfNavBars.forEach(btfNavBar => {\n const nb = new BtfNavBar(btfNavBar);\n nb.listenToKeyDown();\n });\n}\n","import { gtm } from 'root/utils/tracking/googleTagManagerDeprecated';\nimport config from 'root/main/components/navigation/navigation_config';\nimport { CookieMonster } from 'root/utils/cookies/cookieMonster';\nimport btfNavBar from 'root/main/components/navigation/btf/keyboardNavigation';\nimport {\n openSubMenu,\n closeSubMenu,\n} from 'root/main/components/navigation/btf/toggleSubMenu';\nimport { GoogleTagManager } from 'root/utils/tracking/GA4/googleTagManager';\nimport navTracking from 'root/utils/tracking/GA4/navigation/navTracking';\n\nexport default function NavigationDesktop(els) {\n const cm = new CookieMonster();\n const bodyEl = document.body;\n const verticalSlug = bodyEl.dataset.verticalSlug;\n const navs = els;\n const btCookieName = 'ls_vertical_bt';\n const navHeader = document.querySelector('header.main-site-header-btf');\n const btCookieValue = cm.getCookie(btCookieName);\n /*\n * The local storage BT contains the value of the precedent ls_vertical_bt cookie\n * Ex: if you went from the Apparel page to Bikes, the btLocalStorageValue will be \"apparel\"\n * and the new ls_vertical_bt cookie value will be \"bikes\". Now, if you go to Electronics\n * the btLocalStorageValue will be \"bikes\", the ls_vertical_bt will be \"electronics\" and so on.\n * */\n\n const btLocalStorageValue = navigator.cookieEnabled\n ? window.localStorage?.getItem(\n 'btf.businessType'\n ) /* we are checking for local storage in case an Android phone loaded the desktop site */\n : null;\n\n const isCookieDifferentThanLocalStorage =\n btCookieValue && btCookieValue !== btLocalStorageValue;\n\n if (verticalSlug) {\n /* Send business type cookie setting event when\n the ls_vertical_bt cookie is undefined/null (so is about to get set),\n OR the local storage value is different than the ls_vertical_bt value */\n if (!btCookieValue || isCookieDifferentThanLocalStorage) {\n gtm.businessTypeCookieSet(verticalSlug).sendEvent('business-type');\n }\n }\n\n if (navs.length > 0) {\n navs.forEach(nav => {\n nav.addEventListener('click', e => {\n if (nav.classList.contains('navigation-btf-desktop--main')) {\n if (e.target.hasAttribute(config.navigation_link_attribute)) {\n gtm.menu(e.target).sendEvent('click');\n\n const GTMObject = navTracking(e.target);\n GTMObject && GoogleTagManager.sendEvent(GTMObject);\n }\n }\n if (nav.classList.contains('navigation-btf-desktop--secondary')) {\n if (e.target.hasAttribute(config.navigation_link_attribute)) {\n gtm.secondaryMenu(e.target).sendEvent('click');\n const GTMObject = navTracking(e.target);\n GTMObject && GoogleTagManager.sendEvent(GTMObject);\n }\n }\n });\n if (nav.classList.contains('navigation-btf-desktop--secondary')) {\n /* Setting the cookie and populating the nav values is being handled by a script inserted at the end of the\n * html/wp-content/themes/ls/views/Section/navigation/btf/layout/desktop_secondary.html.twig\n * slugMatch: rather then calling the btfNavSecondaryLexic global variable we set a data attribute on the\n * header container of the nav and we check its value here\n * */\n const slugMatch = navHeader.dataset.slugMatch;\n if (slugMatch) {\n /*@todo\n *remove repetition and use only one common selector for the \"clear cookie\" links */\n const secondaryNavClearButtons = nav.querySelectorAll(\n '[data-secondary-nav-clear-bt]'\n );\n const btfNavClearBtCookieEls = document.querySelectorAll(\n '[data-btf-nav-clear-cookie]'\n );\n if (secondaryNavClearButtons) {\n secondaryNavClearButtons.forEach(secondaryNavClearButton => {\n secondaryNavClearButton.addEventListener('click', () => {\n cm.unsetCookie(btCookieName);\n navigator.cookieEnabled &&\n window.localStorage?.removeItem('btf.businessType');\n });\n });\n }\n if (btfNavClearBtCookieEls) {\n btfNavClearBtCookieEls.forEach(btfNavClearBtCookieEl => {\n btfNavClearBtCookieEl.addEventListener('click', () => {\n cm.unsetCookie(btCookieName);\n navigator.cookieEnabled &&\n window.localStorage?.removeItem('btf.businessType');\n });\n });\n }\n } else {\n cm.unsetCookie(btCookieName);\n navigator.cookieEnabled &&\n window.localStorage?.removeItem('btf.businessType');\n }\n }\n\n const navParentSelector = '[data-navigation-level=\"parent\"]';\n const navParentsWithChildren = Array.from(\n nav.querySelectorAll(navParentSelector)\n ).filter(parentElement => {\n return parentElement.querySelector('ul') != null;\n });\n\n navParentsWithChildren.forEach(parentElement => {\n if (parentElement.children.length > 0) {\n parentElement.addEventListener('mouseenter', () => {\n openSubMenu(parentElement);\n });\n parentElement.addEventListener('mouseleave', () => {\n closeSubMenu(parentElement);\n });\n }\n });\n });\n btfNavBar(navs);\n }\n}\n","const menuItemQuerySelector = '[role=menuitem]';\nconst toggleSubMenu = (\n element: HTMLElement,\n action: 'open' | 'close',\n changeFocus = false\n) => {\n const menubarItemContainer = element.closest('[data-navigation-level=parent]');\n const associatedSubMenu = menubarItemContainer?.querySelector(\n '[data-navigation-sublinks]'\n );\n if (associatedSubMenu) {\n const ariaValue = action === 'open' ? 'true' : 'false';\n const menubarItem =\n menubarItemContainer?.querySelector(menuItemQuerySelector);\n if (menubarItem) {\n menubarItem.setAttribute('aria-expanded', ariaValue);\n }\n associatedSubMenu.dataset.navigationSublinks = action;\n if (changeFocus) {\n const itemToFocusOn =\n action === 'open'\n ? associatedSubMenu.querySelector(menuItemQuerySelector)\n : menubarItem;\n if (itemToFocusOn) itemToFocusOn.focus();\n }\n }\n};\n\nconst openSubMenu = (element: HTMLElement, changeFocus?: boolean) => {\n toggleSubMenu(element, 'open', changeFocus);\n};\n\nconst closeSubMenu = (element: HTMLElement, changeFocus?: boolean) => {\n toggleSubMenu(element, 'close', changeFocus);\n};\n\nexport { openSubMenu, closeSubMenu };\n","import { capitalize } from 'lodash';\nimport type { GTMEvent } from 'root/utils/tracking/GA4/googleTagManager';\nimport { PlacementEnums, PlacementType } from 'root/utils/tracking/GA4/types';\nimport { getDecodedValueFromSessionStorage } from 'root/utils/dom/sessionStorage';\nimport {\n sessionStartTimeKey,\n sessionScrolledKey,\n} from 'root/core/tracking/sessionTracking/sessionTracking';\n\nenum EventActionEnums {\n menuAction = 'click_menu',\n submenuAction = 'click_sub_menu',\n secondaryAction = 'click_secondary_menu',\n secondarySubmenuAction = 'click_secondary_sub_menu',\n}\n\nenum NavigationCategoryEnums {\n menuCat = 'menu_category',\n submenuCat = 'sub_menu_category',\n labelCat = 'label',\n}\n\nenum NavigationGroupEnums {\n main = 'main',\n secondary = 'secondary',\n}\nenum NavigationLevelEnums {\n parent = 'parent',\n child = 'child',\n grandchild = 'grandchild',\n}\nenum NavigationPlatformEnums {\n mobile = 'mobile',\n desktop = 'desktop',\n}\n\ntype EventActionType =\n | EventActionEnums.menuAction\n | EventActionEnums.submenuAction\n | EventActionEnums.secondaryAction\n | EventActionEnums.secondarySubmenuAction;\n\ntype NavigationGroupType =\n | NavigationGroupEnums.main\n | NavigationGroupEnums.secondary\n | undefined;\ntype NavigationLevelType =\n | NavigationLevelEnums.parent\n | NavigationLevelEnums.child\n | NavigationLevelEnums.grandchild\n | undefined;\ntype NavigationPlatformType =\n | NavigationPlatformEnums.mobile\n | NavigationPlatformEnums.desktop\n | undefined;\ninterface GTMNavigationEventInterface extends GTMEvent {\n event_action: EventActionType;\n placement: PlacementType;\n menu_category?: string;\n sub_menu_category?: string;\n label?: string;\n session_start_time?: string;\n scrolled_75?: string;\n}\n\nexport default function navTracking(el: HTMLElement) {\n const navigationLevelEl = el?.closest('[data-navigation-level]');\n const navigationPlatformEl = el?.closest('[data-navigation-platform]');\n const navigationGroupEl = el?.closest('[data-navigation-group]');\n\n const navigationLevel =\n navigationLevelEl &&\n (navigationLevelEl?.dataset.navigationLevel as NavigationLevelType);\n\n const navigationPlatform =\n navigationPlatformEl &&\n (navigationPlatformEl?.dataset.navigationPlatform as NavigationPlatformType);\n\n const navigationGroup =\n navigationGroupEl &&\n (navigationGroupEl?.dataset.navigationGroup as NavigationGroupType);\n\n const { parent, child, grandchild } = NavigationLevelEnums;\n const { main, secondary } = NavigationGroupEnums;\n const { mobile, desktop } = NavigationPlatformEnums;\n\n const navigationLevelAssertionMap: Record> = {\n parent: {\n isMainNavigation: navigationLevel === parent && navigationGroup === main,\n isSecondaryNavigation:\n (navigationLevel === parent &&\n navigationGroup === secondary &&\n navigationPlatform === desktop) ??\n false,\n isSecondaryNavigationMobile:\n (navigationLevel === parent &&\n navigationGroup === secondary &&\n navigationPlatform === mobile) ??\n false,\n isFooterNavigation:\n (el.closest('[data-footer-nav-column]') && navigationLevel === parent) ??\n false,\n isTabsNavigation: navigationLevel === parent ?? false,\n },\n child: {\n isSubNavigation:\n (navigationLevel === child && navigationGroup === main) ?? false,\n isSecondarySubNavigationMobile:\n (navigationLevel === child &&\n navigationGroup === secondary &&\n navigationPlatform === mobile) ??\n false,\n },\n grandchild: {\n isSubNavigationLabel:\n (navigationLevel === grandchild && navigationGroup === main) ?? false,\n\n isSecondaryLabelNavigation:\n (navigationLevel === grandchild &&\n navigationGroup === secondary &&\n navigationPlatform === desktop) ??\n false,\n\n isSecondaryLabelNavigationMobile:\n (navigationLevel === grandchild &&\n navigationGroup === secondary &&\n navigationPlatform === mobile) ??\n false,\n\n isFooterLabelNavigation:\n (el.closest('[data-footer-nav-column]') &&\n navigationLevel === grandchild) ??\n false,\n },\n };\n\n const getTabPlacement = (): PlacementType | null => {\n const { nav, hero, footer, body } = PlacementEnums;\n return [nav, hero, footer, body].includes(el?.dataset.placement as PlacementEnums)\n ? (el.dataset.placement as PlacementType)\n : null;\n };\n const getEventAction = (): EventActionType => {\n const { isSecondaryNavigation, isSecondaryNavigationMobile } =\n navigationLevelAssertionMap.parent;\n const { isSubNavigation, isSecondarySubNavigationMobile } =\n navigationLevelAssertionMap.child;\n const {\n isSubNavigationLabel,\n isSecondaryLabelNavigation,\n isSecondaryLabelNavigationMobile,\n } = navigationLevelAssertionMap.grandchild;\n if (isSubNavigation || isSubNavigationLabel) {\n return EventActionEnums.submenuAction;\n } else if (\n isSecondaryNavigation ||\n isSecondaryLabelNavigation ||\n isSecondaryNavigationMobile\n ) {\n return EventActionEnums.secondaryAction;\n } else if (isSecondarySubNavigationMobile || isSecondaryLabelNavigationMobile) {\n return EventActionEnums.secondarySubmenuAction;\n } else {\n return EventActionEnums.menuAction;\n }\n };\n const getEventPlacement = (): PlacementType => {\n const {\n isSecondaryNavigation,\n isSecondaryNavigationMobile,\n isFooterNavigation,\n isTabsNavigation,\n } = navigationLevelAssertionMap.parent;\n const { isSecondarySubNavigationMobile } = navigationLevelAssertionMap.child;\n const {\n isFooterLabelNavigation,\n isSecondaryLabelNavigation,\n isSecondaryLabelNavigationMobile,\n } = navigationLevelAssertionMap.grandchild;\n if (\n isSecondaryNavigation ||\n isSecondaryLabelNavigation ||\n isSecondaryNavigationMobile ||\n isSecondarySubNavigationMobile ||\n isSecondaryLabelNavigationMobile\n ) {\n return PlacementEnums.hero;\n } else if (isFooterNavigation || isFooterLabelNavigation) {\n return PlacementEnums.footer;\n } else if (isTabsNavigation && getTabPlacement()) {\n return getTabPlacement() as PlacementType;\n } else {\n return PlacementEnums.nav;\n }\n };\n\n const getNavigationCategories = (GTMObject: GTMNavigationEventInterface) => {\n const footerNavEl = el\n .closest('[data-footer-nav-column]')\n ?.querySelector('[data-navigation-level=parent]');\n\n const footerLabelEl = el.closest('[data-navigation-level=child]');\n\n const tabEl =\n (el.closest('[role=tab]')?.firstElementChild as HTMLElement | undefined) ||\n el.closest('[role=tab]');\n\n const navEl =\n (el.closest('[data-navigation-level=parent]')\n ?.firstElementChild as HTMLElement) ||\n el.closest('[data-navigation-level=parent]') ||\n tabEl ||\n footerNavEl;\n\n const subnavEl =\n (el.closest('[data-navigation-level=child]')\n ?.firstElementChild as HTMLElement) ||\n el.closest('[data-navigation-level=child]');\n const labelEl =\n (el.closest('[data-navigation-level=grandchild]')\n ?.firstElementChild as HTMLElement) ||\n el.closest('[data-navigation-level=grandchild]') ||\n footerLabelEl;\n\n const getCapitalizedInnerText = (element: HTMLElement) => {\n return capitalize(element?.innerText ?? '');\n };\n\n /*\n * this is a necessary exception in order to get the root text of the breadcrumb\n * when we have the following breadcrumb structure for the secondary mobile nav\n * root name > last selected item name (Example Retail > Payments)\n * Without this exception, if the user clicked on the \"last selected item name\" of the breadcrumb\n * the last selected item text will be sent instead of the root parent element text.\n * */\n const getSecondaryNavigationMobileBreadcrumbsRootText = (el: HTMLElement) => {\n const secondaryNavFirstChildMobile = el.closest(\n '.navigation-btf-mobile__menu__list[data-secondary-nav-header]'\n )?.firstElementChild;\n if (\n secondaryNavFirstChildMobile?.classList.contains(\n 'navigation-btf-mobile__item--breadcrumb-first'\n )\n ) {\n return (\n capitalize(secondaryNavFirstChildMobile?.textContent?.trim()) ?? ''\n );\n }\n };\n\n const getMenuCategory =\n getSecondaryNavigationMobileBreadcrumbsRootText(navEl) ||\n getCapitalizedInnerText(navEl);\n const getSubMenuCategory = getCapitalizedInnerText(subnavEl);\n const getLabel = getCapitalizedInnerText(labelEl);\n\n const isNav = Object.values(navigationLevelAssertionMap.parent).includes(true);\n const isSubnav = Object.values(navigationLevelAssertionMap.child).includes(true);\n const isLabel = Object.values(navigationLevelAssertionMap.grandchild).includes(\n true\n );\n\n const { menuCat, submenuCat, labelCat } = NavigationCategoryEnums;\n if (isNav) {\n getMenuCategory && (GTMObject[menuCat] = getMenuCategory);\n } else if (isSubnav) {\n getMenuCategory && (GTMObject[menuCat] = getMenuCategory);\n getSubMenuCategory && (GTMObject[submenuCat] = getSubMenuCategory);\n } else if (isLabel) {\n getMenuCategory && (GTMObject[menuCat] = getMenuCategory);\n getSubMenuCategory && (GTMObject[submenuCat] = getSubMenuCategory);\n getLabel && (GTMObject[labelCat] = getLabel);\n }\n\n return GTMObject;\n };\n\n const getGTMObject = (): GTMNavigationEventInterface => {\n const GTMObject: GTMNavigationEventInterface = {\n event_action: getEventAction(),\n placement: getEventPlacement(),\n scrolled_75: getDecodedValueFromSessionStorage(sessionScrolledKey) ?? 'false',\n session_start_time:\n getDecodedValueFromSessionStorage(sessionStartTimeKey) ?? '0',\n };\n getNavigationCategories(GTMObject);\n return GTMObject;\n };\n\n if (\n Object.values({\n ...navigationLevelAssertionMap.grandchild,\n ...navigationLevelAssertionMap.child,\n ...navigationLevelAssertionMap.parent,\n }).includes(true)\n ) {\n return getGTMObject();\n }\n}\n"],"names":["_menubar","WeakMap","_menubarItems","_menuItemQuerySelector","_BtfNavBar_brand","WeakSet","BtfNavBar","_createClass","el","_this","_classCallCheck","_classPrivateFieldInitSpec","_classPrivateFieldSet","this","Array","from","_classPrivateFieldGet","querySelectorAll","filter","menubarItem","_assertClassBrand","_isMenubarItem","call","getBoundingClientRect","height","width","key","value","_this2","document","addEventListener","e","_handleKeydown","menuItem","closest","_isParentItem","element","getAttribute","_getAdjacentGrandChildElements","currentElement","_currentElement$close","_currentElement$close2","adjacentItems","childLevelElement","push","apply","_toConsumableArray","_getChildLevelItems","_element$closest$quer","_element$closest","_hasChildLevelItems","_getTraversalObject","axisToTraverse","_this3","traversalMap","menubar","arrayToTraverse","elementInAxis","_element$closest2","querySelector","child","_element$closest3","grandchild","_getParentAxis","axesToTraverse","parentAxis","indexOf","_traverseNavigationAxis","direction","traverseParentAxisAtLimits","arguments","length","undefined","_assertClassBrand$cal","indexOfItem","focus","closeSubMenu","event","activeElement","HTMLElement","contains","code","preventDefault","openSubMenu","shiftKey","btfNavBar","btfNavBars","forEach","listenToKeyDown","NavigationDesktop","els","_window$localStorage","cm","CookieMonster","verticalSlug","body","dataset","navs","btCookieName","navHeader","btCookieValue","getCookie","btLocalStorageValue","navigator","cookieEnabled","window","localStorage","getItem","gtm","sendEvent","nav","classList","target","hasAttribute","config","GTMObject","navTracking","GoogleTagManager","slugMatch","secondaryNavClearButtons","btfNavClearBtCookieEls","secondaryNavClearButton","_window$localStorage2","unsetCookie","removeItem","btfNavClearBtCookieEl","_window$localStorage3","_window$localStorage4","parentElement","children","menuItemQuerySelector","toggleSubMenu","action","changeFocus","menubarItemContainer","associatedSubMenu","ariaValue","setAttribute","navigationSublinks","itemToFocusOn","EventActionEnums","NavigationCategoryEnums","NavigationGroupEnums","NavigationLevelEnums","NavigationPlatformEnums","_ref","_ref2","_ref3","_ref4","_ref5","_ref6","_ref7","_ref8","_ref9","_ref10","_getDecodedValueFromS","_getDecodedValueFromS2","_navigationLevelAsser","isSecondaryNavigation","isSecondaryNavigationMobile","_navigationLevelAsser2","isSubNavigation","isSecondarySubNavigationMobile","_navigationLevelAsser3","isSubNavigationLabel","isSecondaryLabelNavigation","isSecondaryLabelNavigationMobile","navigationLevelEl","navigationPlatformEl","navigationGroupEl","navigationLevel","navigationPlatform","navigationGroup","parent","main","secondary","mobile","desktop","navigationLevelAssertionMap","isMainNavigation","isFooterNavigation","isTabsNavigation","isFooterLabelNavigation","getTabPlacement","PlacementEnums","includes","placement","Object","values","_objectSpread","_el$closest","_el$closest2","_el$closest3","_el$closest4","_el$closest5","footerNavEl","footerLabelEl","tabEl","firstElementChild","navEl","subnavEl","labelEl","getCapitalizedInnerText","_element$innerText","capitalize","innerText","getMenuCategory","_el$closest6","_capitalize","_secondaryNavFirstChi","secondaryNavFirstChildMobile","textContent","trim","getSecondaryNavigationMobileBreadcrumbsRootText","getSubMenuCategory","getLabel","isNav","isSubnav","isLabel","menuCat","submenuCat","labelCat","getNavigationCategories","event_action","submenuAction","secondaryAction","secondarySubmenuAction","menuAction","_navigationLevelAsser4","_navigationLevelAsser5","getEventPlacement","scrolled_75","getDecodedValueFromSessionStorage","sessionScrolledKey","session_start_time","sessionStartTimeKey"],"sourceRoot":""}