{"version":3,"file":"mainNav.a8f77444ad5198682d51.js","mappings":"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","sources":["webpack://jcb.com/./src/js/components/mainNav.js"],"sourcesContent":["const hoverIntent = require('hoverintent');\r\n\r\nexport default class MainNav {\r\n constructor(el) {\r\n this.el = el;\r\n this.productsLi = this.el.querySelector('.masthead-nav li.products');\r\n this.menuBackLink = this.el.querySelector('button.back');\r\n this.allProductsLink = this.el.querySelector('[data-default-industry]');\r\n this.popularProductLinks = [\r\n ...this.el.querySelectorAll('.products.has-mega-nav .second li:not(.heading)'),\r\n ];\r\n this.productLinks = [\r\n ...this.el.querySelectorAll('.products.has-mega-nav .third li:not(.heading)'),\r\n ];\r\n this.industryLinks = [...this.el.querySelectorAll('[data-industry]')];\r\n this.menuContent = this.el.querySelector('.masthead-nav__mega__content');\r\n this.stateChanging = false;\r\n this.resizeTimeoutID = null;\r\n\r\n if (!this.el.querySelector('[data-industry].active')) {\r\n if (this.allProductsLink) {\r\n this.allProductsLink.classList.add('active');\r\n }\r\n }\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.attachEvents();\r\n this.initOverlays();\r\n this.filterProducts(this.selectedIndustry);\r\n this.preFilterIndustry();\r\n this.setThirdLevelColumnStyle();\r\n }\r\n\r\n attachEvents() {\r\n const topLevelMegaNavLinks = this.el.querySelectorAll(\r\n '.masthead-nav__primary > li.has-mega-nav > button, .masthead-nav__primary > li.has-mega-nav > a',\r\n );\r\n const topLevelNavLinks = this.el.querySelectorAll(\r\n '.masthead-nav__primary > li:not(.has-mega-nav) > button, .masthead-nav__primary > li:not(.has-mega-nav) > a',\r\n );\r\n\r\n if (topLevelMegaNavLinks.length) {\r\n [...topLevelMegaNavLinks].forEach((link) => {\r\n link.addEventListener('click', (event) => this.openMegaNav(event));\r\n\r\n hoverIntent(\r\n link,\r\n (event) => {\r\n if (window.innerWidth >= 992) {\r\n this.openMegaNav(event);\r\n }\r\n },\r\n () => {},\r\n ).options({\r\n interval: 150,\r\n sensitivity: 30,\r\n });\r\n });\r\n }\r\n\r\n if (topLevelNavLinks.length) {\r\n [...topLevelNavLinks].forEach((link) => {\r\n link.addEventListener('click', (event) => this.resetAllMegaNavs());\r\n\r\n hoverIntent(\r\n link,\r\n (event) => {\r\n if (window.innerWidth >= 992) {\r\n this.resetAllMegaNavs();\r\n }\r\n },\r\n () => {},\r\n ).options({\r\n interval: 150,\r\n sensitivity: 30,\r\n });\r\n });\r\n }\r\n\r\n this.menuBackLink.addEventListener('click', (event) => this.handleBackButon(event));\r\n\r\n this.industryLinks.forEach((el) => {\r\n el.addEventListener('click', (event) => this.showIndustry(event));\r\n hoverIntent(\r\n el,\r\n (e) => {\r\n if (e.target.closest('ul').querySelector('a.active, button.active'))\r\n e.target\r\n .closest('ul')\r\n .querySelector('a.active, button.active')\r\n .classList.remove('active');\r\n e.target.classList.add('active');\r\n this.filterProducts(el.getAttribute('data-industry'));\r\n },\r\n (e) => {},\r\n ).options({\r\n interval: 150,\r\n sensitivity: 30,\r\n });\r\n });\r\n\r\n [\r\n ...this.el.querySelectorAll(\r\n 'li:not(.products) ul.first > li > a, li:not(.products) ul.first > li > button',\r\n ),\r\n ].forEach((el) => {\r\n el.addEventListener('click', (event) => {\r\n if (el.getAttribute('data-link-id')) {\r\n if (this.isMobile) this.openThirdLevel(event, event.target);\r\n } else {\r\n this.resetThirdLevelMenu();\r\n }\r\n });\r\n\r\n hoverIntent(\r\n el,\r\n (e) => {\r\n if (el.getAttribute('data-link-id')) {\r\n this.openThirdLevel(e, el);\r\n } else {\r\n this.resetThirdLevelMenu();\r\n }\r\n },\r\n (e) => {},\r\n ).options({\r\n interval: 150,\r\n sensitivity: 30,\r\n });\r\n });\r\n\r\n const closeButtons = this.el.querySelectorAll('.masthead-nav__mega button.close');\r\n if (closeButtons.length) {\r\n [...closeButtons].forEach((button) => {\r\n button.addEventListener('click', (e) => this.closeMegaNav(e));\r\n });\r\n }\r\n\r\n window.addEventListener('resize', () => {\r\n if (this.resizeTimeoutID) {\r\n window.clearTimeout(this.resizeTimeoutID);\r\n }\r\n\r\n this.resizeTimeoutID = setTimeout(() => {\r\n if (!this.isMobile) {\r\n this.resetAllMegaNavs();\r\n }\r\n }, 250);\r\n });\r\n\r\n document.addEventListener('menuclosed', () => {\r\n this.resetAllMegaNavs();\r\n });\r\n }\r\n\r\n openThirdLevel(e, ele) {\r\n if (!ele) return;\r\n\r\n e.preventDefault();\r\n\r\n //Reset second level active class\r\n if (ele.closest('ul').querySelector('a.active, button.active'))\r\n ele.closest('ul').querySelector('a.active, button.active').classList.remove('active');\r\n\r\n //Reset third level ul class\r\n if (ele.closest('.masthead-nav__mega__content').querySelector('.third.active'))\r\n ele\r\n .closest('.masthead-nav__mega__content')\r\n .querySelector('.third.active')\r\n .classList.remove('active');\r\n\r\n const groupID = ele.getAttribute('data-link-id').toString();\r\n const thirdLevel = ele\r\n .closest('.masthead-nav__mega__content')\r\n .querySelector(`[data-group-id=\"${groupID}\"]`);\r\n\r\n if (thirdLevel) {\r\n ele.classList.add('active');\r\n thirdLevel.classList.add('active');\r\n ele.closest('.has-mega-nav.active').classList.add('third-level');\r\n\r\n if (this.isMobile) {\r\n this.createParentTitle({ el: ele, target: e.target });\r\n }\r\n\r\n this.setNavState('third-level');\r\n this.setBackButtonText();\r\n }\r\n\r\n window.addEventListener('resize', () => {\r\n if (!this.isMobile) {\r\n this.setDesktopProductsGridRows();\r\n }\r\n });\r\n }\r\n\r\n resetThirdLevelMenu() {\r\n [...this.el.querySelectorAll('li.has-mega-nav:not(.products) .third')].forEach((menu) => {\r\n if (menu.classList.contains('active')) menu.classList.remove('active');\r\n });\r\n if (document.querySelector('a[data-link-id].active, button[data-link-id].active'))\r\n document\r\n .querySelector('a[data-link-id].active, button[data-link-id].active')\r\n .classList.remove('active');\r\n\r\n //Reset view all link url\r\n this.el.querySelector('.mega-nav-column-product-title-link').href = '#';\r\n }\r\n\r\n openMegaNav(e) {\r\n if (!e) return;\r\n if (this.stateChanging) return;\r\n\r\n if (this.isMobile && e) {\r\n e.preventDefault();\r\n }\r\n\r\n //Check if any other meganavs are open\r\n [\r\n ...this.el.querySelectorAll(\r\n '.masthead-nav__primary .has-mega-nav > a, .masthead-nav__primary .has-mega-nav > button',\r\n ),\r\n ].forEach((link) => {\r\n if (link.closest('.has-mega-nav').classList.contains('active')) this.closeMegaNav(link);\r\n });\r\n\r\n if (\r\n this.isMobile &&\r\n (this.getNavState() === 'second-level' || this.getNavState() === 'third-level')\r\n ) {\r\n this.closeMegaNav(e);\r\n } else {\r\n this.setNavState('second-level');\r\n e.target.closest('.has-mega-nav').classList.add('active');\r\n e.target.setAttribute('aria-expanded', 'true');\r\n }\r\n\r\n this.stateChanging = true;\r\n setTimeout(() => {\r\n this.stateChanging = false;\r\n }, 100);\r\n document.activeElement.blur();\r\n this.setBackButtonText(e.target.textContent);\r\n }\r\n\r\n closeMegaNav(e) {\r\n if (!e) return;\r\n const ele = e.target ? e.target : e;\r\n\r\n this.el.querySelector('li.has-mega-nav.active').classList.remove('third-level');\r\n this.createParentTitle({ el: this.el, back: true });\r\n\r\n if (this.el.querySelector('a[data-industry].active'))\r\n this.el.querySelector('a[data-industry].active').classList.remove('active');\r\n\r\n ele.closest('.has-mega-nav').classList.remove('active');\r\n ele\r\n .closest('.has-mega-nav')\r\n .querySelector('button[aria-expanded]')\r\n .setAttribute('aria-expanded', 'false');\r\n\r\n this.filterProducts('all');\r\n\r\n this.resetThirdLevelMenu();\r\n this.setBackButtonText();\r\n this.setNavState('top');\r\n document.activeElement.blur();\r\n }\r\n\r\n resetAllMegaNavs() {\r\n if (!document.querySelectorAll('.masthead-nav li.has-mega-nav.active').length) return;\r\n\r\n [...document.querySelectorAll('.masthead-nav li.has-mega-nav.active')].forEach((li) => {\r\n li.classList.remove('third-level');\r\n li.classList.remove('active');\r\n li.querySelector('button').setAttribute('aria-expanded', 'false');\r\n\r\n if (document.querySelector('.masthead-nav a[data-industry].active'))\r\n document.querySelector('.masthead-nav a[data-industry].active').classList.remove('active');\r\n });\r\n\r\n this.filterProducts('all');\r\n this.resetThirdLevelMenu();\r\n this.setNavState('top');\r\n this.setBackButtonText();\r\n }\r\n\r\n handleBackButon(e) {\r\n if (this.getNavState() === 'second-level') {\r\n [\r\n ...this.el.querySelectorAll(\r\n '.masthead-nav__primary .has-mega-nav > a, .masthead-nav__primary .has-mega-nav > button',\r\n ),\r\n ].forEach((link) => {\r\n if (link.closest('.has-mega-nav').classList.contains('active')) this.closeMegaNav(link);\r\n });\r\n this.setNavState('top');\r\n }\r\n\r\n if (this.getNavState() === 'third-level') {\r\n if (this.el.querySelector('.has-mega-nav.active.third-level'))\r\n this.el.querySelector('.has-mega-nav.active.third-level').classList.remove('third-level');\r\n if (this.el.querySelector('a[data-industry].active'))\r\n this.el.querySelector('a[data-industry].active').classList.remove('active');\r\n this.resetThirdLevelMenu();\r\n this.setNavState('second-level');\r\n\r\n this.createParentTitle({ el: this.el, back: true });\r\n }\r\n\r\n this.setBackButtonText();\r\n document.activeElement.blur();\r\n }\r\n\r\n /**\r\n *\r\n * @param {string} text\r\n */\r\n setBackButtonText(text) {\r\n switch (this.getNavState()) {\r\n case 'third-level':\r\n this.menuBackLink.textContent = this.menuBackLink.getAttribute('data-second-level-text');\r\n break;\r\n default:\r\n if (text) this.menuBackLink.setAttribute('data-second-level-text', text);\r\n this.menuBackLink.textContent = this.menuBackLink.getAttribute('data-first-level-text');\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param {String} state\r\n */\r\n setNavState(state) {\r\n if (!state) return;\r\n this.menuBackLink.setAttribute('data-nav-state', state);\r\n }\r\n\r\n getNavState() {\r\n return this.menuBackLink ? this.menuBackLink.getAttribute('data-nav-state') : '';\r\n }\r\n\r\n showIndustry(e) {\r\n const industry = e.target.getAttribute('data-industry');\r\n this.filterProducts(industry);\r\n\r\n if (this.isMobile) {\r\n e.preventDefault();\r\n this.setNavState('third-level');\r\n this.productsLi.classList.add('third-level');\r\n\r\n this.createParentTitle({ el: this.el, target: e.target });\r\n this.setBackButtonText();\r\n\r\n //Populate view all link url\r\n if (e.target.getAttribute('href') && e.target.getAttribute('href') != '#') {\r\n this.el\r\n .querySelector('.mega-nav-column-product-title-link')\r\n .classList.remove('hidden-lg-down');\r\n this.el.querySelector('.mega-nav-column-product-title-link').href =\r\n e.target.getAttribute('href');\r\n } else {\r\n this.el\r\n .querySelector('.mega-nav-column-product-title-link')\r\n .classList.add('hidden-lg-down');\r\n }\r\n }\r\n }\r\n\r\n preFilterIndustry() {\r\n if (this.el.querySelector('a[data-industry].active')) {\r\n const industryID = this.el\r\n .querySelector('a[data-industry].active')\r\n .getAttribute('data-industry');\r\n this.filterProducts(industryID);\r\n }\r\n }\r\n\r\n filterProducts(industry) {\r\n this.popularProductLinks.forEach((link) => {\r\n const linkIndustries = link.getAttribute('data-industries');\r\n if (linkIndustries && linkIndustries.split(',').includes(industry)) {\r\n link.classList.remove('hidden');\r\n } else {\r\n link.classList.add('hidden');\r\n }\r\n });\r\n\r\n if (industry === 'all') {\r\n this.productLinks.forEach((link) => link.classList.remove('hidden'));\r\n } else {\r\n this.productLinks.forEach((link) => {\r\n const linkIndustries = link.getAttribute('data-industries');\r\n if (linkIndustries && linkIndustries.split(',').includes(industry)) {\r\n link.classList.remove('hidden');\r\n } else {\r\n link.classList.add('hidden');\r\n }\r\n });\r\n }\r\n\r\n if (!this.isMobile) {\r\n this.setDesktopProductsGridRows();\r\n }\r\n }\r\n\r\n setDesktopProductsGridRows() {\r\n // Change layout when no popular products\r\n const popularProducts = [\r\n ...this.popularProductLinks.filter((item) => !item.classList.contains('hidden')),\r\n ];\r\n if (!popularProducts.length) {\r\n this.menuContent.classList.add('no-popular-products');\r\n } else {\r\n this.menuContent.classList.remove('no-popular-products');\r\n }\r\n\r\n // Set # of rows to prevent extra cols being inserted\r\n const currentProductLinks = this.productLinks.filter(\r\n (item) => !item.classList.contains('hidden'),\r\n );\r\n const allProductsHolder = this.el.querySelector('.third');\r\n const productCols = popularProducts.length ? 2 : 3;\r\n const rowsReq = Math.ceil(currentProductLinks.length / productCols) + 1;\r\n allProductsHolder.setAttribute(\r\n 'style',\r\n `grid-template-rows: repeat(${rowsReq}, minmax(6.3rem, auto));`,\r\n );\r\n }\r\n\r\n setThirdLevelColumnStyle() {\r\n if (this.el.querySelectorAll('li.has-mega-nav:not(.products) .third').length) {\r\n [...this.el.querySelectorAll('li.has-mega-nav:not(.products) .third')].forEach((ul) => {\r\n const menuLinks = ul.querySelectorAll('li:not(.heading)');\r\n const rowsReq = Math.ceil(menuLinks.length / 3) + 1;\r\n\r\n ul.setAttribute('style', `grid-template-rows: repeat(${rowsReq}, minmax(6.3rem, auto));`);\r\n });\r\n }\r\n }\r\n\r\n initOverlays() {\r\n const dealerToggle = [...this.el.querySelectorAll(\"[data-target='#find-dealer']\")],\r\n dealerInput = document.getElementById('dealer-input'),\r\n searchToggle = this.el.querySelector(\"[data-target='#search-overlay']\"),\r\n searchInput = document.getElementById('search-input'),\r\n countryToggle = this.el.querySelector(\"[data-target='#country-selector']\"),\r\n closeButtons = this.closeButtons,\r\n that = this;\r\n\r\n // dealer locator, search\r\n if (dealerToggle.length) {\r\n dealerToggle.forEach((item) => {\r\n item.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n const trigger = event.target.closest('[data-target]');\r\n that.openTargetOverlay(trigger);\r\n });\r\n });\r\n }\r\n if (searchToggle != null) {\r\n searchToggle.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n that.openTargetOverlay(event.target);\r\n });\r\n }\r\n if (dealerInput != null) {\r\n dealerInput.addEventListener('keyup', (event) => {\r\n that.toggleFormSubmittable(event.target);\r\n });\r\n }\r\n if (searchInput != null) {\r\n searchInput.addEventListener('keyup', (event) => {\r\n that.toggleFormSubmittable(event.target);\r\n });\r\n }\r\n\r\n // country selector\r\n if (countryToggle != null) {\r\n countryToggle.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n that.openTargetOverlay(event.target);\r\n });\r\n }\r\n\r\n // close buttons\r\n if (closeButtons != null) {\r\n closeButtons.forEach((link, index) => {\r\n link.addEventListener('click', (event) => {\r\n that.closeTargetOverlay(event.target);\r\n });\r\n });\r\n }\r\n }\r\n\r\n openTargetOverlay(el) {\r\n const targetId = el.getAttribute('data-target'),\r\n targetEl = document.querySelector(targetId),\r\n targetInput = targetEl.querySelector('input');\r\n\r\n targetEl.classList.add('open');\r\n if (window.dataLayer) {\r\n dataLayer.push({\r\n event: 'open-' + targetId.replace('#', ''),\r\n });\r\n }\r\n if (targetInput !== null) {\r\n targetInput.focus();\r\n } else {\r\n document.documentElement.classList.add('overlay-hidden-html');\r\n }\r\n }\r\n\r\n closeTargetOverlay(el) {\r\n const targetId = el.getAttribute('data-target'),\r\n targetEl = document.querySelector(targetId),\r\n targetInput = targetEl.querySelector('input');\r\n\r\n targetEl.classList.remove('open');\r\n if (targetInput !== null) {\r\n targetInput.blur();\r\n } else {\r\n document.documentElement.classList.remove('overlay-hidden-html');\r\n }\r\n }\r\n\r\n toggleFormSubmittable(el) {\r\n const field = el,\r\n form = field.parentNode,\r\n button = form.querySelector('button');\r\n\r\n if (field.value.length !== 0) {\r\n button.removeAttribute('disabled');\r\n } else {\r\n button.setAttribute('disabled', 'true');\r\n }\r\n }\r\n\r\n get selectedIndustry() {\r\n return this.el.querySelector('[data-industry].active').getAttribute('data-industry');\r\n }\r\n\r\n get closeButtons() {\r\n return Array.prototype.slice.call(\r\n document.querySelectorAll(\r\n '#find-dealer .icon-close, #search-overlay .icon-close, #country-selector .icon-close',\r\n ),\r\n );\r\n }\r\n\r\n get isMobile() {\r\n return window.innerWidth < 992;\r\n }\r\n\r\n createParentTitle({ el, target, back }) {\r\n let parent;\r\n let title;\r\n let href;\r\n\r\n if (back) {\r\n parent = this.closestParent().closestParentEl;\r\n title = this.closestParent().closestParentTitle;\r\n href = this.closestParent().closestParentHref;\r\n } else {\r\n const hasValidHref =\r\n target?.getAttribute('href') &&\r\n target?.getAttribute('href') !== '#' &&\r\n target?.getAttribute('href');\r\n const hasDataHref = target?.dataset?.link;\r\n\r\n href = target && (hasValidHref || hasDataHref);\r\n title = target?.dataset?.title || this.closestParent(el).closestParentTitle;\r\n\r\n parent = this.closestParent(el).closestParentEl;\r\n }\r\n\r\n if (href) {\r\n parent.innerHTML = title.link(href);\r\n } else {\r\n parent.innerHTML = title;\r\n }\r\n }\r\n\r\n closestParent() {\r\n const closestParent = document\r\n .querySelector('.has-mega-nav.active')\r\n .querySelector('.js-menu-parent');\r\n\r\n return {\r\n closestParentEl: closestParent,\r\n closestParentTitle: closestParent.dataset?.title,\r\n closestParentHref: closestParent.dataset?.link,\r\n };\r\n }\r\n}\r\n"],"names":["hoverIntent","require","MainNav","el","this","productsLi","querySelector","menuBackLink","allProductsLink","popularProductLinks","querySelectorAll","productLinks","industryLinks","menuContent","stateChanging","resizeTimeoutID","classList","add","init","attachEvents","initOverlays","filterProducts","selectedIndustry","preFilterIndustry","setThirdLevelColumnStyle","topLevelMegaNavLinks","topLevelNavLinks","length","forEach","link","addEventListener","event","openMegaNav","window","innerWidth","options","interval","sensitivity","resetAllMegaNavs","handleBackButon","showIndustry","e","target","closest","remove","getAttribute","isMobile","openThirdLevel","resetThirdLevelMenu","closeButtons","button","closeMegaNav","clearTimeout","setTimeout","document","ele","preventDefault","groupID","toString","thirdLevel","createParentTitle","setNavState","setBackButtonText","setDesktopProductsGridRows","menu","contains","href","getNavState","setAttribute","activeElement","blur","textContent","back","li","text","state","industry","industryID","linkIndustries","split","includes","popularProducts","filter","item","currentProductLinks","allProductsHolder","productCols","rowsReq","Math","ceil","ul","menuLinks","dealerToggle","dealerInput","getElementById","searchToggle","searchInput","countryToggle","that","trigger","openTargetOverlay","toggleFormSubmittable","index","closeTargetOverlay","targetId","targetEl","targetInput","dataLayer","push","replace","focus","documentElement","field","parentNode","value","removeAttribute","Array","prototype","slice","call","parent","title","closestParent","closestParentEl","closestParentTitle","closestParentHref","hasValidHref","hasDataHref","dataset","innerHTML"],"sourceRoot":""}