{"version":3,"file":"assets/js/904.008ab352e4e942862cdd.js","mappings":"yKAGA,MAAMA,EAAW,CACfC,UAAWC,SAASC,KAAKC,iBAAiB,iBAC1CC,iBAAkBH,SAASC,KAAKC,iBAAiB,0BAYnD,SAASE,EAAWC,GAClB,MAAMN,EAAYO,KAAKC,QAAQ,iBAE/B,GAAkB,OAAdR,EAAoB,CACtB,MAAMS,EAAQC,SAASH,KAAKI,QAAQF,MAAO,KAG1B,KAAdH,EAAEM,SAAkBH,EAAQ,GACd,KAAdH,EAAEM,SAAkBH,EAAQC,SAASV,EAAUW,QAAQE,MAAQ,EAAG,OAEnEP,EAAEQ,iBACFd,EAAUG,iBAAiB,yBApBjC,SAAmBM,EAAOG,GAMxB,MALa,CACX,GAAIH,EAAQ,EACZ,GAAIA,EAAQ,GAGFG,EACb,CAayDG,CAAUN,EAAOH,EAAEM,UAAUI,QAEpF,CACF,CA6BD,SAASC,IACP,MAAMC,EAAWjB,SAASkB,eAAeZ,KAAKa,aAAa,kBACrDC,EAAO,SACPC,EAAS,YACTtB,EAAYO,KAAKC,QAAQ,iBACzBe,EAAShB,KAAKC,QAAQ,uBAhC9B,SAAqBgB,GACnB,MAAMC,EAAW,GACjB,IAAIC,EAAUF,EAAKG,WAAWC,WAC9B,KAAOF,EAASA,EAAUA,EAAQG,YACP,IAArBH,EAAQI,UAAkBJ,IAAYF,GACxCC,EAASM,KAAKL,GAGlB,OAAOD,CACR,EAwBwBO,CAAYT,GAEpBU,SAASC,IACtB,MAAMC,EAAiBD,EAAcE,cAAc,cACnD,IAAKD,EACH,OAGF,MAAME,EAAgBpC,SAASkB,eAAegB,EAAef,aAAa,kBAC1EiB,EAAchB,IAASgB,EAAchB,GACrCc,EAAeG,UAAUC,OAAOjB,GAChCY,EAAcI,UAAUC,OAAOjB,GAC/Ba,EAAeK,aAAa,gBAAiB,QAA7C,IAGFjC,KAAK+B,UAAUG,OAAOnB,GACtBC,EAAOe,UAAUG,OAAOnB,GACxBJ,EAASG,IAASH,EAASG,GAEgB,UAAvCd,KAAKa,aAAa,kBACpBb,KAAKiC,aAAa,gBAAiB,QACnCxC,EAAUsC,UAAUI,IAAIpB,KAExBf,KAAKiC,aAAa,gBAAiB,SACnCxC,EAAUsC,UAAUC,OAAOjB,GAE9B,CAmBD,QAjBA,WACE,GAAIvB,EAASC,UAAU2C,QAAU5C,EAASK,iBAAiBuC,OAAQ,CACjE,IAAK,IAAIC,EAAI,EAAGA,EAAI7C,EAASK,iBAAiBuC,OAAQC,GAAK,EACzD7C,EAASK,iBAAiBwC,GAAGC,gBAAgB,YAC7C9C,EAASK,iBAAiBwC,GAAGC,gBAAgB,SAC7C9C,EAASK,iBAAiBwC,GAAGE,iBAAiB,QAAS7B,GACvDlB,EAASK,iBAAiBwC,GAAGE,iBAAiB,UAAWzC,GAG3D,MACM0C,EADY,IAAIC,gBAAgBC,OAAOC,SAASC,QACzBC,IAAI,UAC7BL,GA7DR,SAAmBM,GACjB,MAAMC,EAAuBrD,SAASC,KAAKkC,cACxC,sCAAqCiB,OAGxC,GAAIC,EAAsB,CACxB,MAAMC,EAAWD,EAAqB3B,YACtC6B,EAAAA,EAAAA,GAAKD,EAAU,CACbE,MAAM,EACNC,SAAU,KACVC,OAAQ,IAEVL,EAAqBM,OACtB,CACF,CAgDKC,CAAUd,EAAWe,QAAQ,OAAQ,IAExC,CACF,C","sources":["webpack://ssen-distribution/./src/templates/02-components/accordion/mando-ui.accordion.js"],"sourcesContent":["import 'url-search-params-polyfill';\r\nimport jump from 'jump.js';\r\n\r\nconst elements = {\r\n  accordion: document.body.querySelectorAll('.js-accordion'),\r\n  accordionTrigger: document.body.querySelectorAll('.js-accordion-trigger'),\r\n};\r\n\r\nfunction calcIndex(index, keyCode) {\r\n  const calc = {\r\n    38: index - 1,\r\n    40: index + 1,\r\n  };\r\n\r\n  return calc[keyCode];\r\n}\r\n\r\nfunction keyHandler(e) {\r\n  const accordion = this.closest('.js-accordion');\r\n\r\n  if (accordion !== null) {\r\n    const index = parseInt(this.dataset.index, 10);\r\n\r\n    if (\r\n      (e.keyCode === 38 && index > 0) ||\r\n      (e.keyCode === 40 && index < parseInt(accordion.dataset.count - 1, 10))\r\n    ) {\r\n      e.preventDefault();\r\n      accordion.querySelectorAll('.js-accordion-trigger')[calcIndex(index, e.keyCode)].focus();\r\n    }\r\n  }\r\n}\r\n\r\nfunction getSiblings(elem) {\r\n  const siblings = [];\r\n  let sibling = elem.parentNode.firstChild;\r\n  for (; sibling; sibling = sibling.nextSibling) {\r\n    if (sibling.nodeType === 1 && sibling !== elem) {\r\n      siblings.push(sibling);\r\n    }\r\n  }\r\n  return siblings;\r\n}\r\n\r\nfunction matchAttr(trimTerm) {\r\n  const firstMatchingElement = document.body.querySelector(\r\n    `.js-accordion-trigger[data-search='${trimTerm}']`,\r\n  );\r\n\r\n  if (firstMatchingElement) {\r\n    const elParent = firstMatchingElement.parentNode;\r\n    jump(elParent, {\r\n      a11y: true,\r\n      duration: 1200,\r\n      offset: 0,\r\n    });\r\n    firstMatchingElement.click();\r\n  }\r\n}\r\n\r\nfunction toggleVisibility() {\r\n  const panelDiv = document.getElementById(this.getAttribute('aria-controls'));\r\n  const prop = 'hidden';\r\n  const active = 'is-active';\r\n  const accordion = this.closest('.js-accordion');\r\n  const parent = this.closest('.js-accordion-item');\r\n  const parentSiblings = getSiblings(parent);\r\n\r\n  parentSiblings.forEach((parentSibling) => {\r\n    const siblingTrigger = parentSibling.querySelector('.is-active');\r\n    if (!siblingTrigger) {\r\n      return;\r\n    }\r\n\r\n    const triggerTarget = document.getElementById(siblingTrigger.getAttribute('aria-controls'));\r\n    triggerTarget[prop] = !triggerTarget[prop];\r\n    siblingTrigger.classList.remove(active);\r\n    parentSibling.classList.remove(active);\r\n    siblingTrigger.setAttribute('aria-expanded', 'false');\r\n  });\r\n\r\n  this.classList.toggle(active);\r\n  parent.classList.toggle(active);\r\n  panelDiv[prop] = !panelDiv[prop];\r\n\r\n  if (this.getAttribute('aria-expanded') === 'false') {\r\n    this.setAttribute('aria-expanded', 'true');\r\n    accordion.classList.add(active);\r\n  } else {\r\n    this.setAttribute('aria-expanded', 'false');\r\n    accordion.classList.remove(active);\r\n  }\r\n}\r\n\r\nfunction init() {\r\n  if (elements.accordion.length && elements.accordionTrigger.length) {\r\n    for (let i = 0; i < elements.accordionTrigger.length; i += 1) {\r\n      elements.accordionTrigger[i].removeAttribute('disabled');\r\n      elements.accordionTrigger[i].removeAttribute('title');\r\n      elements.accordionTrigger[i].addEventListener('click', toggleVisibility);\r\n      elements.accordionTrigger[i].addEventListener('keydown', keyHandler);\r\n    }\r\n\r\n    const urlParams = new URLSearchParams(window.location.search);\r\n    const searchTerm = urlParams.get('search');\r\n    if (searchTerm) {\r\n      matchAttr(searchTerm.replace(/\\s+/g, ''));\r\n    }\r\n  }\r\n}\r\n\r\nexport default init;\r\n"],"names":["elements","accordion","document","body","querySelectorAll","accordionTrigger","keyHandler","e","this","closest","index","parseInt","dataset","keyCode","count","preventDefault","calcIndex","focus","toggleVisibility","panelDiv","getElementById","getAttribute","prop","active","parent","elem","siblings","sibling","parentNode","firstChild","nextSibling","nodeType","push","getSiblings","forEach","parentSibling","siblingTrigger","querySelector","triggerTarget","classList","remove","setAttribute","toggle","add","length","i","removeAttribute","addEventListener","searchTerm","URLSearchParams","window","location","search","get","trimTerm","firstMatchingElement","elParent","jump","a11y","duration","offset","click","matchAttr","replace"],"sourceRoot":""}