{"version":3,"file":"components-popover.a65c28ff0bb6726364eb.js","mappings":"qKAEA,MAAMA,EAAsBC,IAC1B,MAAMC,EAAUD,EAAEE,OAAOC,QAAQ,kBAC3BC,EAAQJ,EAAEE,OAAOC,QAAQ,wBAE3BC,QAAmDC,IAA1CD,EAAME,QAAQC,yBAItBN,GACHO,SAASC,iBAAiB,kBAAkBC,SAASC,GAAMC,EAAMD,IACnE,EAeIC,EAASX,IACb,MAAMG,EAAQH,EAAQY,WAAWC,cAAe,IAAGb,EAAQc,aAAa,oBAClEC,EAAOf,EAAQE,QAAQ,uBAE7BF,EAAQgB,aAAa,gBAAiB,SACtCb,EAAMc,UAAUC,OAAO,aAEnBH,GACFA,EAAKE,UAAUC,OAAO,YACxB,EAGIC,EAAgBpB,IACpB,MAAMC,EAAUD,EAAEE,OAAOC,QAAQ,kBAEjCkB,MAAMC,KAAKd,SAASC,iBAAiB,mBAClCc,QAAQZ,GAAMA,IAAMV,IACpBS,SAASC,GAAMC,EAAMD,KAEsB,UAA1CV,EAAQc,aAAa,iBA/Bbd,KACZ,MAAMG,EAAQH,EAAQY,WAAWC,cAAe,IAAGb,EAAQc,aAAa,oBAClEC,EAAOf,EAAQE,QAAQ,uBAE7BF,EAAQgB,aAAa,gBAAiB,QACtCb,EAAMc,UAAUM,IAAI,aAEhBR,GACFA,EAAKE,UAAUM,IAAI,YACrB,EAuBEC,CAAKxB,GAELW,EAAMX,EACR,EAGF,GACEyB,KAAMA,KACJ,MAAMC,EAAY,CAAC,QAAS,iBAAkBP,IAE9CQ,EAAAA,EAAAA,MAAOD,IAEPE,EAAAA,EAAAA,OAAMF,GAENG,OAAOC,oBAAoB,QAAShC,GACpC+B,OAAOE,iBAAiB,QAASjC,EAAmB,E,sDC5DxD,MAyBMkC,EAAajC,IACjBA,EAAEkC,iBAEF,MAAMjC,EAAUD,EAAEE,OAAOC,QAAQ,gBAEa,UAA1CF,EAAQc,aAAa,mBArBVd,KACf,MAAMG,EAAQI,SAAS2B,eAAelC,EAAQc,aAAa,kBAE3Dd,EAAQgB,aAAa,gBAAiB,QACtCb,EAAMa,aAAa,cAAe,UAElCmB,EAAAA,EAAAA,GAAK5B,SAAS6B,gBAAiB,kBAAmB,CAAEC,QAASlC,GAAQ,EAgBnEmC,CAAQtC,GA/BYuC,KACtB,MAAMC,EAAYD,EAAcrC,QAAQ,oBAClBkB,MAAMC,KAAKmB,EAAUhC,iBAAiB,uCAAuCc,QAChGZ,GAAMA,IAAM6B,IAGD9B,SAASC,GAYPV,KAChB,MAAMG,EAAQI,SAAS2B,eAAelC,EAAQc,aAAa,kBAE3Dd,EAAQgB,aAAa,gBAAiB,SACtCb,EAAMa,aAAa,cAAe,OAAO,EAhBZyB,CAAS/B,IAAG,EA0BvCgC,CAAe1C,GACjB,EAGF,GACEyB,KAAMA,KACJ,MAAMC,EAAY,CAAC,QAAS,8BAA+BM,IAE3DL,EAAAA,EAAAA,MAAOD,IACPE,EAAAA,EAAAA,OAAMF,EAAU,E","sources":["webpack://silverstripe-base/./themes/app/src/scripts/components/popover.js","webpack://silverstripe-base/./themes/app/src/scripts/components/tablist.js"],"sourcesContent":["import { on, off } from 'delegated-events'\n\nconst handleClickOutside = (e) => {\n const trigger = e.target.closest('[data-popover]')\n const panel = e.target.closest('[data-popover-panel]')\n\n if (panel && panel.dataset.popoverAllowClickInside !== undefined) {\n return\n }\n\n if (!trigger) {\n document.querySelectorAll('[data-popover]').forEach((x) => close(x))\n }\n}\n\nconst open = (trigger) => {\n const panel = trigger.parentNode.querySelector(`#${trigger.getAttribute('aria-controls')}`)\n const root = trigger.closest('[data-popover-root]')\n\n trigger.setAttribute('aria-expanded', 'true')\n panel.classList.add('is-active')\n\n if (root) {\n root.classList.add('is-active')\n }\n}\n\nconst close = (trigger) => {\n const panel = trigger.parentNode.querySelector(`#${trigger.getAttribute('aria-controls')}`)\n const root = trigger.closest('[data-popover-root]')\n\n trigger.setAttribute('aria-expanded', 'false')\n panel.classList.remove('is-active')\n\n if (root) {\n root.classList.remove('is-active')\n }\n}\n\nconst handleToggle = (e) => {\n const trigger = e.target.closest('[data-popover]')\n\n Array.from(document.querySelectorAll('[data-popover]'))\n .filter((x) => x !== trigger)\n .forEach((x) => close(x))\n\n if (trigger.getAttribute('aria-expanded') === 'false') {\n open(trigger)\n } else {\n close(trigger)\n }\n}\n\nexport default {\n init: () => {\n const clickArgs = ['click', '[data-popover]', handleToggle]\n\n off(...clickArgs)\n\n on(...clickArgs)\n\n window.removeEventListener('click', handleClickOutside)\n window.addEventListener('click', handleClickOutside)\n },\n}\n","import { on, off, fire } from 'delegated-events'\n\nconst closeOtherTabs = (activeTrigger) => {\n const container = activeTrigger.closest('[role=\"tablist\"]')\n const otherTriggers = Array.from(container.querySelectorAll('[role=\"tab\"][aria-selected=\"true\"]')).filter(\n (x) => x !== activeTrigger\n )\n\n otherTriggers.forEach((x) => closeTab(x))\n}\n\nconst openTab = (trigger) => {\n const panel = document.getElementById(trigger.getAttribute('aria-controls'))\n\n trigger.setAttribute('aria-selected', 'true')\n panel.setAttribute('aria-hidden', 'false')\n\n fire(document.documentElement, 'tablist:tabshow', { panelEl: panel })\n}\n\nconst closeTab = (trigger) => {\n const panel = document.getElementById(trigger.getAttribute('aria-controls'))\n\n trigger.setAttribute('aria-selected', 'false')\n panel.setAttribute('aria-hidden', 'true')\n}\n\nconst handleTab = (e) => {\n e.preventDefault()\n\n const trigger = e.target.closest('[role=\"tab\"]')\n\n if (trigger.getAttribute('aria-selected') === 'false') {\n openTab(trigger)\n closeOtherTabs(trigger)\n }\n}\n\nexport default {\n init: () => {\n const clickArgs = ['click', '[data-tablist] [role=\"tab\"]', handleTab]\n\n off(...clickArgs)\n on(...clickArgs)\n },\n}\n"],"names":["handleClickOutside","e","trigger","target","closest","panel","undefined","dataset","popoverAllowClickInside","document","querySelectorAll","forEach","x","close","parentNode","querySelector","getAttribute","root","setAttribute","classList","remove","handleToggle","Array","from","filter","add","open","init","clickArgs","off","on","window","removeEventListener","addEventListener","handleTab","preventDefault","getElementById","fire","documentElement","panelEl","openTab","activeTrigger","container","closeTab","closeOtherTabs"],"sourceRoot":""}