{"version":3,"file":"header.mjs","sources":["../../../../../../src/moj/components/domain-specific/probation/header/header.mjs"],"sourcesContent":["import { Component } from 'govuk-frontend'\n\nexport class PdsHeader extends Component {\n  /**\n   * @param {Element | null} $root - HTML element to use for PDS header\n   */\n  constructor($root) {\n    super($root)\n    this.initHeader()\n  }\n\n  initHeader() {\n    this.$tabOpenClass = 'probation-common-header__toggle-open'\n    const $userToggle = this.$root.querySelector(\n      '.probation-common-header__user-menu-toggle'\n    )\n    const $userMenu = this.$root.querySelector(\n      '#probation-common-header-user-menu'\n    )\n\n    const $servicesToggle = this.$root.querySelector(\n      '.probation-common-header__services-menu-toggle'\n    )\n\n    const $servicesMenu = this.$root.querySelector(\n      '#probation-common-header-services-menu'\n    )\n\n    if (\n      !$userToggle ||\n      !$userMenu ||\n      !$servicesToggle ||\n      !$servicesMenu ||\n      !($userToggle instanceof HTMLElement) ||\n      !($userMenu instanceof HTMLElement) ||\n      !($servicesToggle instanceof HTMLElement) ||\n      !($servicesMenu instanceof HTMLElement)\n    ) {\n      return 0\n    }\n\n    this.hideFallbackLinks()\n    $userToggle.removeAttribute('hidden')\n    $servicesToggle.removeAttribute('hidden')\n\n    this.closeTabs([\n      [$userToggle, $userMenu],\n      [$servicesToggle, $servicesMenu]\n    ])\n\n    $userToggle.addEventListener('click', (_event) => {\n      this.closeTabs([[$servicesToggle, $servicesMenu]])\n      this.toggleMenu($userToggle, $userMenu)\n    })\n\n    $servicesToggle.addEventListener('click', (_event) => {\n      this.closeTabs([[$userToggle, $userMenu]])\n      this.toggleMenu($servicesToggle, $servicesMenu)\n    })\n  }\n\n  /**\n   * @param {[any, any][]} tabTuples\n   */\n  closeTabs(tabTuples) {\n    tabTuples.forEach(([toggle, menu]) => {\n      if (menu && toggle) {\n        menu.setAttribute('hidden', 'hidden')\n        toggle.classList.remove(this.$tabOpenClass)\n        toggle.parentElement.classList.remove('item-open')\n        toggle.setAttribute('aria-expanded', 'false')\n        if (toggle.dataset.textForShow)\n          toggle.setAttribute('aria-label', toggle.dataset.textForShow)\n      }\n    })\n  }\n\n  /**\n   * @param {HTMLElement} toggle\n   * @param {HTMLElement} menu\n   */\n  toggleMenu(toggle, menu) {\n    const isOpen = !menu.getAttribute('hidden')\n\n    if (isOpen) {\n      this.closeTabs([[toggle, menu]])\n    } else if (menu && toggle) {\n      menu.removeAttribute('hidden')\n      toggle.classList.add(this.$tabOpenClass)\n      toggle.parentElement.classList.add('item-open')\n      toggle.setAttribute('aria-expanded', 'true')\n      if (toggle.dataset.textForHide)\n        toggle.setAttribute('aria-label', toggle.dataset.textForHide)\n    }\n  }\n\n  hideFallbackLinks() {\n    const $userLink = this.$root.querySelector(\n      '.probation-common-header__user-menu-link'\n    )\n    const $servicesLink = this.$root.querySelector(\n      '.probation-common-header__services-menu-link'\n    )\n    if ($userLink) $userLink.setAttribute('hidden', 'hidden')\n    if ($servicesLink) $servicesLink.setAttribute('hidden', 'hidden')\n  }\n\n  /**\n   * Name for the component used when initialising using data-module attributes.\n   */\n  static moduleName = 'pds-header'\n}\n"],"names":["PdsHeader","Component","constructor","$root","initHeader","$tabOpenClass","$userToggle","querySelector","$userMenu","$servicesToggle","$servicesMenu","HTMLElement","hideFallbackLinks","removeAttribute","closeTabs","addEventListener","_event","toggleMenu","tabTuples","forEach","toggle","menu","setAttribute","classList","remove","parentElement","dataset","textForShow","isOpen","getAttribute","add","textForHide","$userLink","$servicesLink","moduleName"],"mappings":"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"}