{"version":3,"file":"header-CrtV4_2j.js","sources":["../../src/scripts/modules/header.ts"],"sourcesContent":["import { Component } from '@verndale/core';\r\nimport { gsap } from 'gsap';\r\nimport { isDesktop, isTabletLandscape, prefersReducedMotion } from '../helpers';\r\nimport Accordion from './accordion';\r\n\r\nclass Header extends Component {\r\n  mainAccordion: Accordion | undefined;\r\n  clickMegaMenuTimeline: gsap.core.Timeline | null = null;\r\n\r\n  constructor(el: HTMLElement) {\r\n    super(el);\r\n\r\n    if (!isDesktop()) {\r\n      this.mainAccordion = new Accordion(this.dom.resourcesAccordion as HTMLElement, 'grid');\r\n    }\r\n  }\r\n\r\n  setupDefaults() {\r\n    this.dom = {\r\n      el: this.el,\r\n      resourcesTriggerBtn: this.el.querySelector<HTMLElement>('.header__resources-btn'),\r\n      mobileResourcesTriggerBtn: this.el.querySelector<HTMLElement>(\r\n        '.mega-menu__resources-btn-container'\r\n      ),\r\n      resourcesMenu: this.el.querySelector<HTMLElement>('.resources-menu'),\r\n      resourcesCloseBtn: this.el.querySelector<HTMLElement>('.resources-menu__close'),\r\n      resourcesMenuItems: this.el.querySelectorAll<HTMLElement>('.btn-resources-menu-trigger'),\r\n      resourcesMenuPanels: this.el.querySelectorAll<HTMLElement>('.resources-menu__item-panel'),\r\n      resourcesAccordion: this.el.querySelector<HTMLElement>('.resources-menu__item-container'),\r\n      megaMenu: this.el.querySelector<HTMLElement>('.mega-menu'),\r\n      megaMenuTriggerBtn: this.el.querySelector<HTMLElement>('.header__mega-menu-btn'),\r\n      megaMenuCloseBtn: this.el.querySelector<HTMLElement>('.mega-menu__close'),\r\n      megamenuItems: this.el.querySelectorAll<HTMLElement>('.btn-mega-menu-trigger'),\r\n      megamenuPanels: this.el.querySelectorAll<HTMLElement>('.mega-menu__item-panel'),\r\n      megamenuBackTo: this.el.querySelectorAll<HTMLElement>('.mega-menu__back-to-btn'),\r\n      searchTriggerBtn: this.el.querySelector<HTMLElement>('.header__search-btn'),\r\n      searchMenu: this.el.querySelector<HTMLElement>('.search-menu'),\r\n      searchMenuBtn: this.el.querySelector<HTMLElement>('.search-menu__search-btn'),\r\n      searchMenuCloseBtn: this.el.querySelector<HTMLElement>('.search-menu__close'),\r\n      searchInput: this.el.querySelector<HTMLElement>('.search-menu__search-input'),\r\n      megaMenuSearchInput: this.el.querySelector<HTMLElement>('.mega-menu__search-input'),\r\n      megaMenuSearchBtn: this.el.querySelector<HTMLElement>('.mega-menu__search-btn'),\r\n      megaMenuSearchForm: this.el.querySelector<HTMLElement>('.mega-menu__search-container form'),\r\n      searchMenuForm: this.el.querySelector<HTMLElement>('.search-menu__search-container form'),\r\n      megamenuContent: this.el.querySelector<HTMLElement>('.mega-menu__content'),\r\n      resourcesMenuContent: this.el.querySelector<HTMLElement>('.resources-menu__content'),\r\n      megamenuDecorator: this.el.querySelector<HTMLElement>('.mega-menu__item-indicator-decorator'),\r\n      resourcesMenuDecorator: this.el.querySelector<HTMLElement>(\r\n        '.resources-menu__item-indicator-decorator'\r\n      ),\r\n      resourcesRightPanel: this.el.querySelector<HTMLElement>('.resources-menu__news-container'),\r\n      megaMenuRightPanel: this.el.querySelector<HTMLElement>('.mega-menu__about-container')\r\n    };\r\n\r\n    if (this.dom.searchMenuBtn) {\r\n      (this.dom.searchMenuBtn as HTMLButtonElement).disabled = true;\r\n    }\r\n  }\r\n\r\n  addListeners() {\r\n    if (this.dom.resourcesTriggerBtn) {\r\n      (this.dom.resourcesTriggerBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleResources.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.mobileResourcesTriggerBtn) {\r\n      (this.dom.mobileResourcesTriggerBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleResources.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.resourcesCloseBtn) {\r\n      (this.dom.resourcesCloseBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleResources.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.megaMenuTriggerBtn) {\r\n      (this.dom.megaMenuTriggerBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleMegaMenu.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.megaMenuCloseBtn) {\r\n      (this.dom.megaMenuCloseBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleMegaMenu.bind(this)\r\n      );\r\n    }\r\n    (this.dom.megamenuBackTo as NodeList).forEach(item => {\r\n      item.addEventListener('click', this.backToSection.bind(this));\r\n    });\r\n\r\n    (this.dom.megamenuItems as NodeList).forEach(item => {\r\n      item.addEventListener('click', this.openItemSection.bind(this));\r\n    });\r\n\r\n    if (this.dom.searchTriggerBtn) {\r\n      (this.dom.searchTriggerBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleSearch.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.searchMenuCloseBtn) {\r\n      (this.dom.searchMenuCloseBtn as HTMLElement).addEventListener(\r\n        'click',\r\n        this.toggleSearch.bind(this)\r\n      );\r\n    }\r\n\r\n    if (this.dom.searchMenuBtn) {\r\n      (this.dom.searchMenuBtn as HTMLElement).addEventListener('click', () => {\r\n        (this.dom.searchMenuForm as HTMLFormElement).submit();\r\n      });\r\n    }\r\n\r\n    if (this.dom.searchMenuForm) {\r\n      (this.dom.searchMenuForm as HTMLFormElement).addEventListener('submit', e => {\r\n        e.preventDefault();\r\n        if ((this.dom.searchMenuBtn as HTMLButtonElement).disabled === true) return;\r\n        const searchInput = (this.dom.searchInput as HTMLInputElement).value;\r\n        const formAction = (this.dom.searchMenuForm as HTMLFormElement).action;\r\n        window.location.href = `${formAction}?searchTerm=\"${searchInput}\"&_from=\"_Search\"`;\r\n      });\r\n    }\r\n\r\n    const handleSearch = (e: Event) => {\r\n      const searchBtn = this.dom.megaMenuSearchBtn as HTMLButtonElement;\r\n      const searchInput = this.dom.megaMenuSearchInput as HTMLInputElement;\r\n      const searchForm = this.dom.megaMenuSearchForm as HTMLFormElement;\r\n\r\n      e.preventDefault();\r\n      if (searchBtn.disabled) return;\r\n      const searchValue = searchInput.value;\r\n      const formAction = searchForm.action;\r\n      window.location.href = `${formAction}?searchTerm=\"${searchValue}\"&_from=\"_Search\"`;\r\n    };\r\n\r\n    if (this.dom.megaMenuSearchForm) {\r\n      const searchForm = this.dom.megaMenuSearchForm as HTMLFormElement;\r\n\r\n      searchForm.addEventListener('submit', handleSearch);\r\n    }\r\n\r\n    if (this.dom.searchInput) {\r\n      const updateButtonState = () => {\r\n        const inputValue = (this.dom.searchInput as HTMLInputElement).value;\r\n        (this.dom.searchMenuBtn as HTMLButtonElement).disabled = inputValue.length === 0;\r\n      };\r\n\r\n      (this.dom.searchInput as HTMLInputElement).addEventListener('input', updateButtonState);\r\n\r\n      (this.dom.searchInput as HTMLInputElement).addEventListener('keydown', e => {\r\n        if (e.key === 'Enter') {\r\n          e.preventDefault();\r\n          if (!(this.dom.searchMenuBtn as HTMLButtonElement).disabled) {\r\n            (this.dom.searchMenuForm as HTMLFormElement).submit();\r\n          }\r\n        }\r\n      });\r\n    }\r\n\r\n    if (this.dom.megaMenuSearchInput) {\r\n      const megaMenuUpdateButtonState = () => {\r\n        const inputValue = (this.dom.megaMenuSearchInput as HTMLInputElement).value;\r\n        (this.dom.megaMenuSearchBtn as HTMLButtonElement).disabled = inputValue.length === 0;\r\n      };\r\n      (this.dom.megaMenuSearchInput as HTMLInputElement).addEventListener(\r\n        'input',\r\n        megaMenuUpdateButtonState\r\n      );\r\n      (this.dom.megaMenuSearchInput as HTMLInputElement).addEventListener('keydown', e => {\r\n        if (e.key === 'Enter') {\r\n          e.preventDefault();\r\n          if (!(this.dom.megaMenuSearchBtn as HTMLButtonElement).disabled) {\r\n            handleSearch(e);\r\n          }\r\n        }\r\n      });\r\n      megaMenuUpdateButtonState();\r\n    }\r\n\r\n    if (isTabletLandscape() || isDesktop()) {\r\n      (this.dom.resourcesMenuItems as NodeList).forEach(item => {\r\n        item.addEventListener('click', this.openItemSection.bind(this));\r\n      });\r\n      document.addEventListener('keydown', this.handleKeyDown.bind(this));\r\n    }\r\n  }\r\n\r\n  backToSection(e: Event) {\r\n    const target = e.currentTarget as HTMLElement;\r\n    target.parentElement?.classList.remove('is-active');\r\n  }\r\n\r\n  openItemSection(e: Event) {\r\n    const target = e.currentTarget as HTMLElement;\r\n    const targetPanel = target.getAttribute('aria-controls');\r\n\r\n    (this.dom.resourcesMenuPanels as NodeList).forEach(panel => {\r\n      if ((panel as HTMLElement).id === targetPanel) {\r\n        gsap.set(panel, { x: window.innerWidth / 2 });\r\n        gsap\r\n          .timeline({\r\n            onStart: () => {\r\n              (panel as HTMLElement).classList.add('is-active');\r\n            }\r\n          })\r\n          .fromTo(\r\n            panel,\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0\r\n            },\r\n            {\r\n              x: 0,\r\n              opacity: 1,\r\n              duration: prefersReducedMotion() ? 0 : 0.8,\r\n              ease: 'power1.inOut'\r\n            }\r\n          );\r\n        gsap\r\n          .timeline()\r\n          .fromTo(\r\n            this.dom.resourcesRightPanel,\r\n            {\r\n              opacity: 1,\r\n              x: 0\r\n            },\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0,\r\n              duration: prefersReducedMotion() ? 0 : 0.8,\r\n              ease: 'power1.inOut'\r\n            }\r\n          )\r\n          .set(this.dom.resourcesRightPanel, { display: 'none' });\r\n        if (this.dom.resourcesMenuDecorator) {\r\n          (this.dom.resourcesMenuDecorator as HTMLElement).style.opacity = '1';\r\n          (this.dom.resourcesMenuDecorator as HTMLElement).style.setProperty(\r\n            '--inset-block-start',\r\n            `${target.offsetTop}px`\r\n          );\r\n        }\r\n      } else {\r\n        gsap\r\n          .timeline({\r\n            onComplete: () => {\r\n              (panel as HTMLElement).classList.remove('is-active');\r\n            }\r\n          })\r\n          .fromTo(\r\n            panel,\r\n            {\r\n              x: 0,\r\n              opacity: 1\r\n            },\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0,\r\n              duration: prefersReducedMotion() ? 0 : 0.8,\r\n              ease: 'power1.inOut'\r\n            }\r\n          );\r\n      }\r\n    });\r\n\r\n    (this.dom.megamenuPanels as NodeList).forEach(panel => {\r\n      if ((panel as HTMLElement).id === targetPanel) {\r\n        // if panel has a class of 'is-active' then we dont need to animate it\r\n        if ((panel as HTMLElement).classList.contains('is-active')) {\r\n          return;\r\n        }\r\n\r\n        gsap.set(panel, { x: window.innerWidth / 2 });\r\n        gsap\r\n          .timeline({\r\n            onStart: () => {\r\n              (panel as HTMLElement).classList.add('is-active');\r\n            }\r\n          })\r\n          .fromTo(\r\n            panel,\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0\r\n            },\r\n            {\r\n              x: 0,\r\n              opacity: 1,\r\n              duration: prefersReducedMotion() ? 0 : 0.7,\r\n              ease: 'power1.inOut'\r\n            }\r\n          );\r\n        gsap\r\n          .timeline()\r\n          .fromTo(\r\n            this.dom.megaMenuRightPanel,\r\n            {\r\n              opacity: 1,\r\n              x: 0\r\n            },\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0,\r\n              duration: prefersReducedMotion() ? 0 : 0.7,\r\n              ease: 'power1.inOut'\r\n            }\r\n          )\r\n          .set(this.dom.megaMenuRightPanel, { display: 'none' });\r\n        if (this.dom.megamenuDecorator) {\r\n          (this.dom.megamenuDecorator as HTMLElement).style.opacity = '1';\r\n          (this.dom.megamenuDecorator as HTMLElement).style.setProperty(\r\n            '--inset-block-start',\r\n            `${target.offsetTop}px`\r\n          );\r\n        }\r\n      } else {\r\n        gsap\r\n          .timeline({\r\n            onComplete: () => {\r\n              (panel as HTMLElement).classList.remove('is-active');\r\n            }\r\n          })\r\n          .fromTo(\r\n            panel,\r\n            {\r\n              x: 0,\r\n              opacity: 1\r\n            },\r\n            {\r\n              x: window.innerWidth / 2,\r\n              opacity: 0,\r\n              duration: prefersReducedMotion() ? 0 : 0.7,\r\n              ease: 'power1.inOut'\r\n            }\r\n          );\r\n      }\r\n    });\r\n  }\r\n\r\n  toggleResources() {\r\n    gsap.set(this.dom.resourcesMenu, { y: window.innerHeight * -1 });\r\n\r\n    const isOpen = (this.dom.resourcesMenu as HTMLElement).classList.toggle('open');\r\n    if (isTabletLandscape()) {\r\n      document.body.classList.toggle('no-scroll', isOpen);\r\n    }\r\n    if (isOpen) {\r\n      (this.dom.resourcesMenuPanels as NodeList).forEach(panel => {\r\n        (panel as HTMLElement).classList.remove('is-active');\r\n      });\r\n      (this.dom.resourcesMenu as HTMLElement).style.display = 'block';\r\n    }\r\n    requestAnimationFrame(() => {\r\n      this.setupClickResourcesTimeline(isOpen);\r\n    });\r\n    (this.dom.resourcesTriggerBtn as HTMLElement).setAttribute('aria-expanded', String(isOpen));\r\n    this.manageFocus(this.dom.resourcesMenu as HTMLElement, isOpen);\r\n  }\r\n\r\n  manageFocus(menu: HTMLElement, isOpen: boolean) {\r\n    if (isOpen) {\r\n      const firstFocusableElement = menu.querySelector<HTMLElement>(\r\n        'button, a, [tabindex]:not([tabindex=\"-1\"])'\r\n      );\r\n      firstFocusableElement?.focus();\r\n    } else {\r\n      const triggerButton = (this.dom.el as HTMLElement).querySelector<HTMLElement>(\r\n        `[aria-controls=\"${menu.id}\"]`\r\n      );\r\n      triggerButton?.focus();\r\n    }\r\n  }\r\n\r\n  handleKeyDown(e: KeyboardEvent) {\r\n    if (e.key === 'Escape') {\r\n      if ((this.dom.megaMenu as HTMLElement).classList.contains('open')) {\r\n        this.toggleMegaMenu();\r\n      }\r\n      if ((this.dom.resourcesMenu as HTMLElement).classList.contains('open')) {\r\n        this.toggleResources();\r\n      }\r\n      if ((this.dom.searchMenu as HTMLElement).classList.contains('open')) {\r\n        this.toggleSearch();\r\n      }\r\n    }\r\n    e.stopPropagation();\r\n  }\r\n\r\n  toggleMegaMenu() {\r\n    gsap.set(this.dom.megaMenu, { y: window.innerHeight * -1 });\r\n    const isOpen = (this.dom.megaMenu as HTMLElement).classList.toggle('open');\r\n\r\n    document.body.classList.toggle('no-scroll', isOpen);\r\n    if (isOpen) {\r\n      (this.dom.megamenuPanels as NodeList).forEach(panel => {\r\n        (panel as HTMLElement).classList.remove('is-active');\r\n      });\r\n      (this.dom.megaMenu as HTMLElement).style.display = 'block';\r\n    }\r\n    requestAnimationFrame(() => {\r\n      this.setupClickMegaMenuTimeline(isOpen);\r\n    });\r\n    (this.dom.megaMenuTriggerBtn as HTMLElement).setAttribute('aria-expanded', String(isOpen));\r\n    this.manageFocus(this.dom.megaMenu as HTMLElement, isOpen);\r\n  }\r\n\r\n  toggleSearch() {\r\n    const isOpen = (this.dom.searchMenu as HTMLElement).classList.toggle('open');\r\n    (this.dom.searchTriggerBtn as HTMLElement).setAttribute('aria-expanded', String(isOpen));\r\n    this.dom.searchMenuForm = this.el.querySelector<HTMLElement>(\r\n      '.search-menu__search-container form'\r\n    );\r\n\r\n    this.manageFocus(this.dom.searchMenu as HTMLElement, isOpen);\r\n  }\r\n\r\n  setupClickResourcesTimeline(isOpen: boolean) {\r\n    const resourcesTimeline = gsap.timeline();\r\n\r\n    if (isOpen) {\r\n      resourcesTimeline\r\n        .fromTo(\r\n          this.dom.resourcesMenu,\r\n          { y: isTabletLandscape() ? window.innerHeight * -1 : window.innerHeight },\r\n          { y: 0, duration: prefersReducedMotion() ? 0 : 0.7, ease: 'power1.inOut' }\r\n        )\r\n        .fromTo(\r\n          this.dom.resourcesMenuContent,\r\n          { opacity: 0 },\r\n          { opacity: 1, duration: prefersReducedMotion() ? 0 : 0.4, ease: 'power1.inOut' },\r\n          '-=0.3'\r\n        );\r\n    } else {\r\n      resourcesTimeline\r\n        .fromTo(\r\n          this.dom.resourcesMenu,\r\n          { y: 0 },\r\n          {\r\n            y: isTabletLandscape() ? window.innerHeight * -1 : window.innerHeight,\r\n            duration: prefersReducedMotion() ? 0 : 0.7,\r\n            ease: 'power1.inOut',\r\n            onComplete: () => {\r\n              (this.dom.resourcesMenu as HTMLElement).style.display = 'none';\r\n            }\r\n          }\r\n        )\r\n        .fromTo(\r\n          this.dom.resourcesMenuContent,\r\n          { opacity: 1 },\r\n          { opacity: 0, duration: prefersReducedMotion() ? 0 : 0.4, ease: 'power1.inOut' },\r\n          '-=0.4'\r\n        );\r\n    }\r\n  }\r\n\r\n  setupClickMegaMenuTimeline(isOpen: boolean) {\r\n    const megaMenuTimeline = gsap.timeline({\r\n      onComplete: () => {\r\n        if (!isOpen) {\r\n          (this.dom.megamenuDecorator as HTMLElement)?.removeAttribute('style');\r\n          (this.dom.megaMenuRightPanel as HTMLElement)?.removeAttribute('style');\r\n        }\r\n      }\r\n    });\r\n\r\n    if (isOpen) {\r\n      megaMenuTimeline\r\n        .fromTo(\r\n          this.dom.megaMenu,\r\n          { y: window.innerHeight * -1 },\r\n          { y: 0, duration: prefersReducedMotion() ? 0 : 0.7, ease: 'power1.inOut' }\r\n        )\r\n        .fromTo(\r\n          this.dom.megamenuContent,\r\n          { opacity: 0 },\r\n          { opacity: 1, duration: prefersReducedMotion() ? 0 : 0.4, ease: 'power1.inOut' },\r\n          '-=0.3'\r\n        );\r\n    } else {\r\n      megaMenuTimeline\r\n        .fromTo(\r\n          this.dom.megamenuContent,\r\n          { opacity: 1 },\r\n          { opacity: 0, duration: prefersReducedMotion() ? 0 : 0.4, ease: 'power1.inOut' }\r\n        )\r\n        .fromTo(\r\n          this.dom.megaMenu,\r\n          { y: 0 },\r\n          {\r\n            y: window.innerHeight * -1,\r\n            duration: prefersReducedMotion() ? 0 : 0.7,\r\n            ease: 'power1.inOut',\r\n            onComplete: () => {\r\n              (this.dom.megaMenu as HTMLElement).style.display = 'none';\r\n            }\r\n          },\r\n          '-=0.4'\r\n        );\r\n    }\r\n  }\r\n}\r\n\r\nexport default Header;\r\n"],"names":["Header","Component","el","__publicField","isDesktop","Accordion","item","e","searchInput","formAction","handleSearch","searchBtn","searchForm","searchValue","updateButtonState","inputValue","megaMenuUpdateButtonState","isTabletLandscape","_a","target","targetPanel","panel","gsap","prefersReducedMotion","isOpen","menu","firstFocusableElement","triggerButton","resourcesTimeline","megaMenuTimeline","_b"],"mappings":"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"}