{"version":3,"sources":["modules.infoBlocksGrid.js"],"names":["app","infoBlocksGrid","setFocus","firstLink","focus","querySelector","dataLayer","pushEvent","trigger","pageUrl","location","popout","setAttribute","textContent","closeAll","block","pathname","title","items","querySelectorAll","replace","init","infoBlocks","document","forEach","item","closeButton","addEventListener","KEY_SPACE","openItem","event","code","preventDefault","closeItem","triggers","popouts","remove","classList"],"mappings":"AAIAA,IACEC,eAAA,wBA0CA,SASMC,EAAYC,EAAAA,EAAWA,EAAUC,GAErCF,EAAWA,IAAQG,EAGnBL,EAAIM,UAAUC,IAAAA,eAVdC,EAWEC,aAAgBC,iBAD6B,GAT/CC,EAWOC,aAAQC,eAAoB,GARnC,MAAMV,EAAYQ,EAAON,cAAc,KAcvCG,GAFFN,GAAAC,GAAyBK,EAASG,QAExBC,EAAAA,cAAa,gCARrBZ,IAAIM,UAAUC,UAAU,sBAAuB,CAYjDE,QAASK,OAASC,SAAOC,SACvBC,MAAMC,EAAQH,YAAMI,QAAAA,IAAiB,IAAAC,QAArC,IAAA,MAkBF,MAAO,CACLC,KAlFF,WAGEC,MAAAA,EAAmBC,SAAAJ,iBAAW,oBAA9BG,EAGQE,QAAQ,SAAAT,GAFd,MAGEG,EAAMV,EAAUiB,iBAAmB,yBADrCP,EAGEM,QAAY,SAAAC,GAEZ,MAAKjB,EAAWiB,EAACC,cAAgBf,4BAEjCH,EAAQmB,EAAiBtB,cAAW,0BAClCM,EAAac,EAAbpB,cAAA,2BAEEG,GAAKoB,GAALjB,IAHJH,EAKMqB,iBAAerB,UAAP,SAAAsB,GAJZ,OAAAA,EAAAC,MADF,IAhBY,QAyBZvB,IAxBU,QAyBRsB,EAAME,iBACNlB,EAASC,EAATP,EAAAG,GAAA,MAFFH,EAOQwB,iBAAN,QAAA,SAAAF,GACAG,EAAAA,iBAFFnB,CAiDH,MAFDI,GACSN,EAhDLG,GA+CJI,iBAAA,gBAKFe,EAAAnB,EAAAI,iBAAA,0BAfQgB,EAAUpB,EAAMI,iBAAiB,yBAgBzCD,EAAOM,QAAA,SAAAC,GACLJ,EAAMA,UAAAA,OAAAA,iBAXNa,EAASV,QAAQ,SAAChB,GAChBA,EAAQI,aAAa,iBAAiB,KAGxCuB,EAAQX,QAAQ,SAACb,GACfA,EAAOC,aAAa,eAAe,KAtEnCiB,EAAAJ,EAAAjB,EAAAG,KAsBEe,EAAYC,iBAAiB,QAAS,SAACG,GA4B7C,IAYItB,EAAsBG,EAhC1BmB,EAASD,iBAgCUO,EA/BNlC,EA+BTM,EA/BiBA,EA+BKG,EA/BxBA,EAgCCc,EAFDY,UAAAD,OAAA,eAIAF,EAAQtB,aAAS,iBAAa,GAZ9BD,EAaEH,aAAQI,eAAa,YA9EzB","file":"../modules.infoBlocksGrid.min.js","sourcesContent":["/* ========================================================================\r\n Info Blocks Grid\r\n ========================================================================== */\r\n\r\napp.infoBlocksGrid = (function () {\r\n 'use strict';\r\n\r\n const KEY_ENTER = 'Enter';\r\n const KEY_SPACE = 'Space';\r\n const KEY_ESCAPE = 'Escape';\r\n\r\n function init() {\r\n const infoBlocks = document.querySelectorAll('[data-info-grid]');\r\n\r\n infoBlocks.forEach((block) => {\r\n const items = block.querySelectorAll('[data-info-grid-item]');\r\n\r\n items.forEach((item) => {\r\n const trigger = item.querySelector('[data-info-grid-trigger]');\r\n const closeButton = item.querySelector('[data-info-grid-close]');\r\n const popout = item.querySelector('[data-info-grid-popout]');\r\n\r\n if (!trigger || !closeButton || !popout) return;\r\n\r\n trigger.addEventListener('keydown', (event) => {\r\n switch (event.code) {\r\n case KEY_ENTER:\r\n case KEY_SPACE:\r\n event.preventDefault();\r\n openItem(item, trigger, popout, true);\r\n }\r\n });\r\n\r\n trigger.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n closeAll(block);\r\n openItem(item, trigger, popout);\r\n });\r\n\r\n closeButton.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n closeItem(item, trigger, popout);\r\n });\r\n });\r\n });\r\n }\r\n\r\n function openItem(item, trigger, popout, setFocus) {\r\n setFocus = setFocus || false;\r\n\r\n item.classList.add('is-expanded');\r\n trigger.setAttribute('aria-expanded', true);\r\n popout.setAttribute('aria-hidden', false);\r\n\r\n // a11y: switch focus to first link\r\n const firstLink = popout.querySelector('a');\r\n if (setFocus && firstLink) firstLink.focus();\r\n\r\n const title = item.querySelector('[data-info-grid-item-title]');\r\n\r\n // DATALAYER\r\n app.dataLayer.pushEvent('infoBlockGridExpand', {\r\n pageUrl: window.location.pathname,\r\n title: title.textContent.replace('\"', '').replace(\"'\", ''),\r\n });\r\n }\r\n\r\n function closeItem(item, trigger, popout) {\r\n item.classList.remove('is-expanded');\r\n trigger.setAttribute('aria-expanded', false);\r\n popout.setAttribute('aria-hidden', true);\r\n }\r\n\r\n function closeAll(block) {\r\n const items = block.querySelectorAll('.is-expanded');\r\n const triggers = block.querySelectorAll('[aria-expanded=\"true\"]');\r\n const popouts = block.querySelectorAll('[aria-hidden=\"false\"]');\r\n\r\n items.forEach((item) => {\r\n item.classList.remove('is-expanded');\r\n });\r\n\r\n triggers.forEach((trigger) => {\r\n trigger.setAttribute('aria-expanded', false);\r\n });\r\n\r\n popouts.forEach((popout) => {\r\n popout.setAttribute('aria-hidden', true);\r\n });\r\n }\r\n\r\n // Expose public functions and variables\r\n return {\r\n init: init,\r\n };\r\n})();\r\n"]}