{"version":3,"file":"assets/js/787.3a49cc7b850f715fcda1.js","mappings":"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","sources":["webpack://ssen-distribution/./src/templates/02-components/_triage/mando-ui.triage-tab.js","webpack://ssen-distribution/./src/templates/02-components/_triage/mando-ui.triage-panel.js","webpack://ssen-distribution/./src/templates/02-components/_triage/mando-ui.triage.js"],"sourcesContent":["class TriageTab {\r\n  constructor(settings) {\r\n    this.container = settings.container;\r\n    this.item = settings.item;\r\n    this.selected = false;\r\n    this.mediaQuery = settings.mediaQuery;\r\n    this.tabChangeEvent = null;\r\n    this.trigger = settings.trigger;\r\n    this.observer = null;\r\n  }\r\n  bindEvents() {\r\n    this.trigger.addEventListener('click', this.toggleVisibility.bind(this));\r\n    this.mediaQuery.addEventListener('change', this.resetState.bind(this, true));\r\n    this.container.addEventListener('tabReset', this.resetState.bind(this, false));\r\n    this.container.addEventListener('tabChange', (event) => {\r\n      if (\r\n        event.detail.getAttribute('aria-controls') !== this.trigger.getAttribute('aria-controls')\r\n      ) {\r\n        this.resetState(false);\r\n      }\r\n    });\r\n  }\r\n  resetState(dispatch) {\r\n    if (this.selected) {\r\n      this.observer.observe(this.item, { attributes: true, childList: false, subtree: false });\r\n    }\r\n    this.selected = false;\r\n    this.setState(dispatch);\r\n  }\r\n  setState(dispatch = true) {\r\n    this.trigger.setAttribute('aria-selected', this.selected);\r\n    this.item.classList.toggle('is-active', this.selected);\r\n\r\n    if (dispatch === true) {\r\n      this.container.dispatchEvent(this.tabChangeEvent);\r\n    }\r\n  }\r\n  toggleVisibility() {\r\n    if (!this.selected) {\r\n      this.selected = !this.selected;\r\n      this.setState();\r\n    }\r\n  }\r\n  mutationCallback() {\r\n    this.trigger.focus();\r\n    this.trigger.scrollIntoView(true);\r\n    this.observer.disconnect();\r\n  }\r\n  init() {\r\n    this.tabChangeEvent = new CustomEvent('tabChange', {\r\n      detail: this.trigger,\r\n    });\r\n    this.bindEvents();\r\n    this.observer = new MutationObserver(this.mutationCallback.bind(this));\r\n  }\r\n}\r\n\r\nexport default TriageTab;\r\n","class TriagePanel {\r\n  constructor(settings) {\r\n    this.container = settings.container;\r\n    this.item = settings.item;\r\n    this.mediaQuery = settings.mediaQuery;\r\n    this.tabResetEvent = null;\r\n    this.trigger = settings.trigger;\r\n    this.observer = null;\r\n  }\r\n  bindEvents() {\r\n    this.trigger.addEventListener('click', this.resetState.bind(this));\r\n    this.mediaQuery.addEventListener('change', this.resetState.bind(this, true));\r\n  }\r\n  resetState() {\r\n    this.item.hidden = true;\r\n    this.container.dispatchEvent(this.tabResetEvent);\r\n  }\r\n  setState(event) {\r\n    this.observer.observe(this.item, { attributes: true, childList: false, subtree: false });\r\n    this.item.hidden = event.detail.getAttribute('aria-controls') !== this.item.id;\r\n  }\r\n  mutationCallback() {\r\n    if (!this.item.hidden) {\r\n      this.item.focus();\r\n      this.item.scrollIntoView(true);\r\n    }\r\n    this.observer.disconnect();\r\n  }\r\n  init() {\r\n    this.tabResetEvent = new CustomEvent('tabReset');\r\n    this.container.addEventListener('tabChange', this.setState.bind(this));\r\n    this.bindEvents();\r\n    this.observer = new MutationObserver(this.mutationCallback.bind(this));\r\n  }\r\n}\r\n\r\nexport default TriagePanel;\r\n","import TriageTab from './mando-ui.triage-tab';\r\nimport TriagePanel from './mando-ui.triage-panel';\r\n\r\nconst mediaQuery = window.matchMedia('(min-width: 61.25em)');\r\nconst triage = document.querySelector('.js-triage');\r\nconst triageIntro = triage.querySelector('.js-triage-intro');\r\nconst tabs = [];\r\nconst nav = triage.querySelector('.js-triage-toc');\r\nconst tablistItemNode = [...triage.getElementsByClassName('js-tablist-item')];\r\nconst tabPanelNode = [...triage.getElementsByClassName('js-triage-tabpanel')];\r\n\r\nfunction instantiateSemantics() {\r\n  // once js is loaded, remove nav semantics from no-js fallback\r\n  nav.setAttribute('role', 'presentation');\r\n  nav.removeAttribute('aria-label');\r\n}\r\n\r\nfunction instantiateTabs() {\r\n  tablistItemNode.forEach((node) => {\r\n    const tab = new TriageTab({\r\n      container: triage,\r\n      item: node,\r\n      mediaQuery,\r\n      trigger: node.querySelector('.js-triage-trigger'),\r\n    });\r\n    tab.init();\r\n    tabs.push(tab);\r\n  });\r\n\r\n  tabs.forEach((tab) => {\r\n    const btn = tab.trigger;\r\n    btn.addEventListener('keydown', triageKeyHandler);\r\n  });\r\n}\r\n\r\nfunction instantiatePanels() {\r\n  tabPanelNode.forEach((node) => {\r\n    const panel = new TriagePanel({\r\n      container: triage,\r\n      item: node,\r\n      mediaQuery,\r\n      trigger: node.querySelector('.js-triage-reset'),\r\n    });\r\n    panel.init();\r\n  });\r\n}\r\n\r\nfunction toggleIntroAndMobile(isHidden) {\r\n  triageIntro.classList.toggle('visually-hidden', isHidden);\r\n\r\n  if (isHidden && !mediaQuery.matches) {\r\n    nav.classList.add('visually-hidden');\r\n    nav.setAttribute('aria-hidden', true);\r\n  } else {\r\n    nav.classList.remove('visually-hidden');\r\n    nav.setAttribute('aria-hidden', false);\r\n  }\r\n}\r\n\r\n// Allow Arrow key focus of tab trigger-buttons\r\nfunction calcTriageIndex(index, keyCode) {\r\n  const calcIndex = {\r\n    38: index - 1,\r\n    40: index + 1,\r\n  };\r\n\r\n  return calcIndex[keyCode];\r\n}\r\n\r\nfunction triageKeyHandler(e) {\r\n  const index = parseInt(this.dataset.triageIndex, 10);\r\n\r\n  if (\r\n    (e.keyCode === 38 && index > 0) ||\r\n    (e.keyCode === 40 && index < parseInt(triage.dataset.triageCount - 1, 10))\r\n  ) {\r\n    e.preventDefault();\r\n    triage.querySelectorAll('.js-triage-trigger')[calcTriageIndex(index, e.keyCode)].focus();\r\n  }\r\n}\r\n\r\nfunction init() {\r\n  if (!triage) {\r\n    return;\r\n  }\r\n\r\n  if (tablistItemNode.length > 0 && tabPanelNode.length > 0 && nav) {\r\n    instantiateSemantics();\r\n    instantiateTabs();\r\n    instantiatePanels();\r\n  }\r\n\r\n  triage.addEventListener('tabChange', toggleIntroAndMobile.bind(this, true));\r\n  triage.addEventListener('tabReset', toggleIntroAndMobile.bind(this, false));\r\n}\r\n\r\nexport default init;\r\n"],"names":["constructor","settings","this","container","item","selected","mediaQuery","tabChangeEvent","trigger","observer","bindEvents","addEventListener","toggleVisibility","bind","resetState","event","detail","getAttribute","dispatch","observe","attributes","childList","subtree","setState","setAttribute","classList","toggle","dispatchEvent","mutationCallback","focus","scrollIntoView","disconnect","init","CustomEvent","MutationObserver","tabResetEvent","hidden","id","window","matchMedia","triage","document","querySelector","triageIntro","tabs","nav","tablistItemNode","getElementsByClassName","tabPanelNode","toggleIntroAndMobile","isHidden","matches","add","remove","triageKeyHandler","e","index","parseInt","dataset","triageIndex","keyCode","triageCount","preventDefault","querySelectorAll","calcTriageIndex","length","removeAttribute","forEach","node","tab","TriageTab","push","TriagePanel"],"sourceRoot":""}