{"version":3,"file":"/etc.clientlibs/corp-aem-sherwin/components/megamenu/clientlibs/site-megamenu/site-megamenu.5b91eb68d44a499ff0b9.js","mappings":"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","sources":["webpack://aem-maven-archetype/../ui.apps/src/main/content/jcr_root/apps/corp-aem-sherwin/components/megamenu/scripts/navScroll.ts","webpack://aem-maven-archetype/../ui.apps/src/main/content/jcr_root/apps/corp-aem-sherwin/components/megamenu/scripts/MegaMenu.ts","webpack://aem-maven-archetype/../ui.apps/src/main/content/jcr_root/apps/corp-aem-sherwin/components/megamenu/megamenu.site.ts"],"sourcesContent":["import throttle from 'lodash/throttle';\n\nfunction navScroll(navElement: HTMLElement): void {\n  const initialScrollPos = navElement.parentElement?.parentElement?.offsetTop;\n\n  const navParentElement: HTMLElement | null = navElement.parentElement;\n\n  function stickyOnScroll() {\n    const currentScrollPos = window.pageYOffset;\n    const navThreshold = 8;\n\n    if (initialScrollPos !== null && currentScrollPos > (initialScrollPos + navThreshold)) {\n      navParentElement?.classList.add('jsa-sticky');\n    } else {\n      navParentElement?.classList.remove('jsa-sticky');\n    }\n  }\n\n  window.addEventListener('scroll', throttle(stickyOnScroll, 500));\n}\n\nexport default navScroll;\n","import navScroll from './navScroll';\nimport {getElementList} from 'SCRIPT_UTILS/getElementList';\n\nclass MegaMenu {\n  // selector types\n  containerSelector = '';\n  mainSelector = '';\n  dropSelector = '';\n  sidebarSelector = '';\n  sidebarLinkSelector = '';\n  // contentSelector = '';\n  hamburgerSelector = '';\n  tabListSelector = '';\n  mobileDrawerHdgSelector = '';\n  utilityNavSelector = '';\n  flyoutWrapSelector = '';\n  // stored elements\n  copyrightElement: HTMLElement | null = null;\n  mainNavTabList: NodeListOf<Element> | null = null;\n  megaMenuWrapElement: HTMLElement | null = null;\n  dropdownElementList: NodeListOf<HTMLElement> | null = null;\n  // state identifiers\n  mainActive = '';\n  tabFocusedOn = '';\n  isPermaOpen = false;\n  // static properties\n  stateClass = {\n    show: 'jsa-is-visible',\n    hide: 'jsa-is-hidden',\n    mainActive: 'jsa-is-active',\n    mobileActive: 'jsa-is-mobile-active',\n    mobileOpen: 'jsa-is-mobile-open',\n    mobileInactive: 'jsa-is-mobile-inactive',\n  };\n\n  constructor(wrapSelector = '.js-nav') {\n    this.containerSelector = wrapSelector;\n    this.mainSelector = wrapSelector + '__main';\n    this.dropSelector = wrapSelector + '__drop';\n    this.sidebarSelector = wrapSelector + '__sidebar';\n    this.sidebarLinkSelector = wrapSelector + '__sidebar-link';\n    // this.contentSelector = wrapSelector + '__content';\n    this.hamburgerSelector = wrapSelector + '__hamburger-menu';\n    this.tabListSelector = wrapSelector + '__tab-list';\n    this.mobileDrawerHdgSelector = wrapSelector + '__mobile-drawer-hdg';\n    this.utilityNavSelector = wrapSelector + '__utility';\n    this.flyoutWrapSelector = wrapSelector + '__flyout';\n\n    this.init();\n  }\n\n  //\n  // INITIALIZATION\n  // ------------------------------\n\n  init(): void {\n    const hasElements = this.setupElements();\n\n    if (!hasElements) {\n      return;\n    }\n\n    this.setupEventHandlers();\n  }\n\n  setupElements(): boolean {\n    this.megaMenuWrapElement = document.querySelector(this.containerSelector);\n    this.copyrightElement = document.querySelector<HTMLElement>('.cmp-nav__tab-item--copyright');\n\n    if (this.megaMenuWrapElement === null) {\n      return false;\n    }\n\n    navScroll(this.megaMenuWrapElement);\n\n    this.dropdownElementList = this.megaMenuWrapElement.querySelectorAll<HTMLElement>(\n      this.dropSelector\n    );\n    this.mainNavTabList = this.megaMenuWrapElement.querySelectorAll(\n      this.mainSelector\n    );\n\n    if (this.dropdownElementList !== null) {\n      const flyoutElementList = getElementList<HTMLElement>(\n        this.flyoutWrapSelector,\n        this.megaMenuWrapElement\n      );\n      this.renderDropdownHeight(flyoutElementList, this.dropdownElementList);\n    }\n\n    // return true if the elements needed are all available\n    return true;\n  }\n\n  setupEventHandlers(): void {\n    // exit early if nav element is not available\n    if (this.megaMenuWrapElement === null) {\n      return;\n    }\n\n    this.megaMenuWrapElement\n      .querySelectorAll(this.sidebarSelector)\n      .forEach((domElement: Element) => {\n        domElement.addEventListener('click', this.clickSidebarHandler);\n      });\n\n    this.mainNavTabList?.forEach((mainNavElement: Element) => {\n      mainNavElement.addEventListener('click', this.clickMainHandler);\n    });\n\n    // Mobile Listeners\n    this.megaMenuWrapElement\n      .querySelectorAll(this.hamburgerSelector)\n      .forEach((domElement: Element) => {\n        domElement.addEventListener('click', this.clickHamburgerHandler);\n      });\n\n    this.megaMenuWrapElement\n      .querySelectorAll(this.mobileDrawerHdgSelector)\n      .forEach((drawerHdgElem: Element): void => {\n        drawerHdgElem.addEventListener(\n          'click',\n          this.clickMobileDrawerHdgHandler\n        );\n      });\n  }\n\n  // TEMPORARY EVENT LISTENERS\n\n  setupOutsideCloseListener(): void {\n    document.body.addEventListener('click', this.clickOutsideToCloseHandler);\n  }\n\n  tearDownOutsideCloseListener(): void {\n    document.body.removeEventListener('click', this.clickOutsideToCloseHandler);\n  }\n\n  //\n  // EVENT HANDLERS\n  // ------------------------------\n\n  clickOutsideToCloseHandler = (event: Event): void => {\n    const interactedElement = event.target as HTMLElement;\n\n    const menuWrapperElement = interactedElement.closest(\n      this.containerSelector\n    );\n\n    if (menuWrapperElement === null) {\n      this.closeDropdown();\n    }\n  };\n\n  clickSidebarHandler = (event: Event): void => {\n    const elemData = (event.target as HTMLElement).dataset;\n\n    if (elemData.text !== undefined) {\n      this.toggleFlyoutContent(elemData.text);\n    }\n  };\n\n  clickMainHandler = (event: Event): void => {\n    const elemData = (event.currentTarget as HTMLElement).dataset;\n\n    // create listener for clickOutsideToCloseHandler\n    this.setupOutsideCloseListener();\n\n    this.isPermaOpen = true;\n\n    if (elemData.main !== undefined) {\n      this.openDropdown(elemData.main);\n    }\n\n    this.mobileShowMainTabSubDrawer(event.currentTarget as HTMLElement);\n  };\n\n  // Mobile Event Handlers\n  clickHamburgerHandler = (): void => {\n    this.toggleMobileNav();\n  };\n\n  clickMobileDrawerHdgHandler = (event: Event): void => {\n    const elemCurrTarget = event.currentTarget as HTMLElement;\n    const elemHref = elemCurrTarget.getAttribute('href');\n\n    // exiting early if the element is a link\n    if (elemHref && elemHref !== '#') {\n      return;\n    }\n\n    if (elemCurrTarget !== null) {\n      this.toggleMobileNavDrawers(elemCurrTarget as HTMLElement);\n    }\n  };\n\n  //\n  // DOM MANIPULATION\n  // ------------------------------\n\n  /**\n   * Looks through all of the elements provided and finds the maximum height. Returning\n   * a number value for the max height\n   * @param elementList\n   * @returns number\n   */\n  calcMaxElementHeight(elementList: HTMLElement[]): number {\n    let maxHeight = 0;\n\n    elementList.forEach((element) => {\n      maxHeight =\n        element.offsetHeight > maxHeight ? element.offsetHeight : maxHeight;\n    });\n\n    return maxHeight;\n  }\n\n  renderDropdownHeight(\n    dropdownContentList: HTMLElement[],\n    dropdownContainerElems: NodeListOf<HTMLElement>\n  ): void {\n    const maxContentHeight = this.calcMaxElementHeight(dropdownContentList);\n\n    dropdownContainerElems.forEach((dropContainer) => {\n      dropContainer.style.height = `${maxContentHeight}px`;\n    });\n  }\n\n  toggleFlyoutContent(textIdent = ''): void {\n    const allContent = this.megaMenuWrapElement?.querySelectorAll(\n      this.flyoutWrapSelector\n    );\n\n    if (allContent === undefined) {\n      return;\n    }\n\n    allContent.forEach((item): void => {\n      const content = (item as HTMLElement).dataset.content;\n\n      if (content === textIdent) {\n        // isShown == False will trigger toggle to flip content to visible\n        const hasVisible = item.classList.contains(this.stateClass.show);\n        this.toggleShowElement(item, hasVisible);\n      } else {\n        // hide other flyout content\n        this.toggleShowElement(item, true);\n      }\n    });\n  }\n\n  openDropdown(tabIdent: string): void {\n    if (tabIdent === this.mainActive) {\n      this.closeDropdown();\n      return;\n    }\n\n    this.changeActiveTab(tabIdent);\n\n    if (this.dropdownElementList !== null) {\n      this.dropdownElementList.forEach((dropdownElement) => {\n        const matchTabData = dropdownElement.dataset.parentTab;\n\n        this.toggleShowElement(dropdownElement, !(matchTabData !== undefined && matchTabData === tabIdent));\n      });\n    }\n  }\n\n  closeDropdown(): void {\n    this.changeActiveTab('');\n    this.isPermaOpen = false;\n\n    // remove dropdown menu event listeners\n    this.tearDownOutsideCloseListener();\n\n    this.toggleFlyoutContent();\n\n    if (this.dropdownElementList !== null) {\n      this.dropdownElementList.forEach((dropdownElement) => {\n        this.toggleShowElement(dropdownElement, true);\n      });\n    }\n  }\n\n  toggleShowElement(domElement: Element, isShown: boolean): void {\n    if (isShown) {\n      domElement.classList.remove(this.stateClass.show);\n      domElement.classList.add(this.stateClass.hide);\n    } else {\n      domElement.classList.remove(this.stateClass.hide);\n      domElement.classList.add(this.stateClass.show);\n    }\n  }\n\n  changeActiveTab(ident: string): void {\n    this.mainActive = ident;\n\n    this.mainNavTabList?.forEach((item) => {\n      const mainTabIdent = (item as HTMLElement).dataset?.main;\n\n      if (!mainTabIdent) {\n        return;\n      }\n\n      if (mainTabIdent === this.mainActive) {\n        item.classList.add('jsa-is-active');\n      } else {\n        item.classList.remove('jsa-is-active');\n      }\n    });\n  }\n\n  // Mobile DOM Manipulation\n  toggleMobileNav(): void {\n    const tabList = document.querySelector<HTMLElement>(this.tabListSelector);\n\n    if (tabList) {\n      tabList.classList.toggle(this.stateClass.mobileOpen);\n    }\n  }\n\n  toggleCopyrightEl(hideEl: boolean): void {\n    if(this.copyrightElement === null){\n      return\n    }\n\n    this.copyrightElement.style.opacity = hideEl ? \"0\" : \"1\";\n  }\n  /**\n   * Toggling classes for sublinks of the main nav tabs to open and close sublinks.\n   *\n   * @param drawerHdg\n   */\n  toggleMobileNavDrawers(drawerHdg: HTMLElement): void {\n    const parentUl = drawerHdg.closest<HTMLUListElement>('ul');\n\n    // toggle state for drawer heading\n    drawerHdg.classList.toggle(this.stateClass.mobileActive);\n    const isDrawerHdgCurrentlyActive = drawerHdg.classList.contains(\n      this.stateClass.mobileActive\n    );\n\n    // add active class to parent UL if chide is active\n    if (isDrawerHdgCurrentlyActive) {\n      parentUl?.classList.add(this.stateClass.mobileActive);\n      //hide copyright text\n      this.toggleCopyrightEl(true);\n    } else {\n      parentUl?.classList.remove(this.stateClass.mobileActive);\n      //Display copyright text\n      this.toggleCopyrightEl(false);\n    }\n\n    // hide the sibling buttons if drawerHdg has been changed to active\n    const parentUlChildren = parentUl?.children;\n\n    if (parentUlChildren) {\n      for (let i = 0; i < parentUlChildren.length; i++) {\n        const liElement = parentUlChildren[i];\n        const sibDrawerHdg = liElement.querySelector(\n          this.mobileDrawerHdgSelector\n        );\n\n        if (\n          isDrawerHdgCurrentlyActive &&\n          sibDrawerHdg &&\n          !sibDrawerHdg.classList.contains(this.stateClass.mobileActive)\n        ) {\n          sibDrawerHdg.classList.add(this.stateClass.mobileInactive);\n        } else if (sibDrawerHdg) {\n          sibDrawerHdg.classList.remove(this.stateClass.mobileInactive);\n        }\n      }\n    }\n  }\n\n  /**\n   * When clicking on a main tab navigational element show all of the\n   * sub elements and make the other main tabs inactive.\n   *\n   * @param mainTabElement\n   */\n  mobileShowMainTabSubDrawer(mainTabElement: HTMLElement): void {\n    const dataMain = mainTabElement.dataset.main;\n    const hasActiveClass = mainTabElement.classList.contains(\n      this.stateClass.mobileActive\n    );\n\n    // hide utility nav when going into the main nav tab\n    this.megaMenuWrapElement\n      ?.querySelector(this.utilityNavSelector)\n      ?.classList.toggle(this.stateClass.mobileInactive);\n\n    // making sibling elements inactive\n    this.mainNavTabList?.forEach((indvMainTabElem) => {\n      const matchToDataMain = (indvMainTabElem as HTMLElement).dataset.main;\n\n      if (dataMain && dataMain !== matchToDataMain) {\n        indvMainTabElem.classList.remove(this.stateClass.mobileActive);\n\n        if (hasActiveClass) {\n          indvMainTabElem.classList.remove(this.stateClass.mobileInactive);\n        } else {\n          indvMainTabElem.classList.add(this.stateClass.mobileInactive);\n        }\n      }\n    });\n\n    mainTabElement.classList.toggle(this.stateClass.mobileActive);\n  }\n}\n\nexport default MegaMenu;\n","import MegaMenu from './scripts/MegaMenu';\n\nwindow.addEventListener('DOMContentLoaded', () => {\n  new MegaMenu('.js-nav');\n});\n"],"names":["navElement","initialScrollPos","parentElement","offsetTop","navParentElement","window","addEventListener","currentScrollPos","pageYOffset","classList","add","remove","constructor","wrapSelector","containerSelector","mainSelector","dropSelector","sidebarSelector","sidebarLinkSelector","hamburgerSelector","tabListSelector","mobileDrawerHdgSelector","utilityNavSelector","flyoutWrapSelector","copyrightElement","mainNavTabList","megaMenuWrapElement","dropdownElementList","mainActive","tabFocusedOn","isPermaOpen","stateClass","show","hide","mobileActive","mobileOpen","mobileInactive","clickOutsideToCloseHandler","event","target","closest","this","closeDropdown","clickSidebarHandler","elemData","dataset","undefined","text","toggleFlyoutContent","clickMainHandler","currentTarget","setupOutsideCloseListener","main","openDropdown","mobileShowMainTabSubDrawer","clickHamburgerHandler","toggleMobileNav","clickMobileDrawerHdgHandler","elemCurrTarget","elemHref","getAttribute","toggleMobileNavDrawers","init","setupElements","setupEventHandlers","document","querySelector","querySelectorAll","flyoutElementList","getElementList","renderDropdownHeight","forEach","domElement","mainNavElement","drawerHdgElem","body","tearDownOutsideCloseListener","removeEventListener","calcMaxElementHeight","elementList","maxHeight","element","offsetHeight","dropdownContentList","dropdownContainerElems","maxContentHeight","dropContainer","style","height","textIdent","allContent","item","content","hasVisible","contains","toggleShowElement","tabIdent","changeActiveTab","dropdownElement","matchTabData","parentTab","isShown","ident","mainTabIdent","tabList","toggle","toggleCopyrightEl","hideEl","opacity","drawerHdg","parentUl","isDrawerHdgCurrentlyActive","parentUlChildren","children","i","length","sibDrawerHdg","mainTabElement","dataMain","hasActiveClass","indvMainTabElem","matchToDataMain"],"sourceRoot":""}