{"version":3,"file":"navigation-52c4defe.js","sources":["../../../../app/frontend/components/shared/moveFacetedFilters.js","../../../../app/frontend/components/shared/navigation.js"],"sourcesContent":["// used by navigation.js and facetedFilterController.js\n\nfunction moveFacetedFilters(nav) {\n const facetedHero = document.querySelector('section.directory-hero.directory-hero--faceted');\n const filtersForm = document.querySelector('.faceted-filters__container');\n const newHero = document.querySelector('[data-directory-new-header-hero]');\n const heroDescription = document.querySelector('[data-hero-description]');\n const subheading = document.querySelector('[data-directory-header-subheading]');\n if (facetedHero && filtersForm && newHero && nav) {\n const headerHeight = getComputedStyle(nav).getPropertyValue('--header-height');\n if (nav.classList.contains('is-sticking')) {\n nav.appendChild(filtersForm);\n } else {\n facetedHero.appendChild(newHero);\n if (subheading)\n facetedHero.appendChild(subheading);\n if (heroDescription)\n facetedHero.appendChild(heroDescription);\n facetedHero.appendChild(filtersForm);\n }\n document.body.style.setProperty('--header-height', headerHeight);\n }\n}\n\nexport {\n moveFacetedFilters\n}\n","import {moveFacetedFilters} from './moveFacetedFilters.js';\nimport {getElementProperties, trackSegmentEvent} from \"@/components/shared/tracking/segmentAnalytics\";\n\ndocument.addEventListener('DOMContentLoaded', function () {\n // make header sticky and attach faceted filters\n // activate_moveFacetedFilters = directory_page? && !hero_test && !disable_directory_filters_test\n let lastScrollPosition = 0;\n const generalNav = document.querySelector('[data-general-nav]');\n\n if (generalNav) {\n document.addEventListener('scroll', function () {\n\n // I am allowing pageYOffset to be less than 0 here because apparently on iphone 14 it can be less than 0\n if (window.pageYOffset > 0 && lastScrollPosition <= 0) {\n generalNav.classList.add('is-sticking');\n moveFacetedFilters(generalNav);\n } else if (window.pageYOffset <= 0 && lastScrollPosition > 0) {\n generalNav.classList.remove('is-sticking');\n moveFacetedFilters(generalNav);\n }\n\n if (window.pageYOffset > 0 && window.pageYOffset > lastScrollPosition) {\n generalNav.classList.add('hide-header');\n } else {\n generalNav.classList.remove('hide-header');\n }\n\n lastScrollPosition = window.pageYOffset;\n });\n }\n\n const closeAllAccordionSections = () => {\n const sectionButtons = document.querySelectorAll(\"[data-navigation-mobile-browse-section]\");\n const subsections = document.querySelectorAll(\"[data-navigation-mobile-browse-subsection]\");\n const subsectionButtons = document.querySelectorAll(\"[data-navigation-browse-subsection]\");\n const subsectionLinks = document.querySelectorAll(\"[data-navigation-browse-section-links]\");\n subsections.forEach(function (subsection) {\n subsection.classList.add('closed');\n })\n subsectionLinks.forEach(function (link) {\n link.classList.add('closed');\n })\n sectionButtons.forEach(function (link) {\n link.classList.remove(\"open\")\n });\n subsectionButtons.forEach(function (button) {\n button.classList.remove(\"open\")\n })\n }\n\n const toggleMegaMenu = () => {\n if (navigation.classList.contains('solv-header--open')) {\n closeAllAccordionSections();\n }\n navigation.classList.toggle('solv-header--open');\n }\n\n const openMegaMenu = () => {\n navigation.classList.add('solv-header--open');\n }\n const closeMegaMenu = () => {\n navigation.classList.remove('solv-header--open');\n closeAllAccordionSections();\n }\n\n\n const browseSection = document.querySelector(\"[data-navigation-browse]\");\n const browseButtons = document.querySelectorAll(\"[data-navigation-browse-button]\");\n const navigation = document.querySelector(\"[data-navigation]\");\n const mobileMenuToggleButtons = document.querySelectorAll(\"[data-navigation-mobile-toggle]\");\n const loginButton = document.querySelector(\"[data-login-button]\");\n\n // only show the login button on the opening of the menu on mobile\n mobileMenuToggleButtons.forEach((button) => {\n button.addEventListener('click', (e) => {\n loginButton.classList.toggle('hidden');\n toggleMegaMenu()\n if (loginButton.classList.contains('hidden')) {\n trackSegmentEvent('Directory Header Links - Show Mobile Link Menu', {...getElementProperties(button)});\n } else {\n trackSegmentEvent('Directory Header Links - Close Mobile Link Menu', {...getElementProperties(button)});\n }\n });\n });\n\n browseButtons.forEach(function (button) {\n button.addEventListener('mouseenter', function (e) {\n openMegaMenu();\n trackSegmentEvent('Directory Header Links - Show Desktop Link Menu', {...getElementProperties(button)});\n });\n button.addEventListener('mouseleave', function (e) {\n closeMegaMenu()\n trackSegmentEvent('Directory Header Links - Close Desktop Link Menu', {...getElementProperties(button)});\n });\n browseSection.addEventListener('mouseenter', function (e) {\n openMegaMenu();\n });\n browseSection.addEventListener('mouseleave', function (e) {\n closeMegaMenu()\n });\n })\n\n\n const subsectionButtons = document.querySelectorAll(\"[data-navigation-browse-subsection]\");\n\n subsectionButtons.forEach(function (button) {\n button.addEventListener('click', function (e) {\n\n const subsectionName = button.dataset.navigationBrowseSubsection;\n const subsectionLinks = document.querySelector(`[data-navigation-browse-subsection-links=\"${subsectionName}\"]`);\n const sectionName = button.dataset.navigationBrowseSection;\n const allSubsectionLinks = document.querySelectorAll(`[data-navigation-browse-subsection-links]`);\n\n if (!subsectionLinks.classList.contains('closed')) {\n subsectionLinks.classList.add('closed');\n button.classList.remove('open')\n subsectionButtons.forEach(function (button) {\n button.classList.remove(\"open\")\n })\n } else {\n allSubsectionLinks.forEach(function (link) {\n if (link.dataset.navigationBrowseSectionLinks === sectionName) {\n link.classList.add('closed');\n }\n });\n subsectionButtons.forEach(function (button) {\n button.classList.remove(\"open\")\n })\n subsectionLinks.classList.remove('closed');\n button.classList.add('open')\n }\n });\n })\n\n const mobileSectionButtons = document.querySelectorAll(\"[data-navigation-mobile-browse-section]\");\n\n mobileSectionButtons.forEach(function (button) {\n button.addEventListener('click', function (e) {\n\n const sectionName = button.dataset.navigationMobileBrowseSection;\n const subsections = document.querySelectorAll(`[data-navigation-mobile-browse-subsection=\"${sectionName}\"]`);\n const allSubsections = document.querySelectorAll(`[data-navigation-mobile-browse-subsection]`);\n\n const firstSubsection = subsections[0]\n\n if (!firstSubsection.classList.contains('closed')) {\n subsections.forEach(function (subsection) {\n subsection.classList.add('closed');\n })\n mobileSectionButtons.forEach(function (button) {\n button.classList.remove(\"open\")\n })\n button.classList.remove('open')\n } else {\n allSubsections.forEach(function (link) {\n link.classList.add('closed');\n });\n subsections.forEach(function (subsection) {\n subsection.classList.remove('closed');\n })\n mobileSectionButtons.forEach(function (button) {\n button.classList.remove(\"open\")\n })\n button.classList.add('open')\n }\n });\n })\n\n})\n"],"names":["moveFacetedFilters","nav","facetedHero","filtersForm","newHero","heroDescription","subheading","headerHeight","lastScrollPosition","generalNav","closeAllAccordionSections","sectionButtons","subsections","subsectionButtons","subsectionLinks","subsection","link","button","toggleMegaMenu","navigation","openMegaMenu","closeMegaMenu","browseSection","browseButtons","mobileMenuToggleButtons","loginButton","e","trackSegmentEvent","getElementProperties","subsectionName","sectionName","allSubsectionLinks","mobileSectionButtons","allSubsections"],"mappings":"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"}