{"version":3,"file":"Accordion-6334ba37.js","names":["define","Moduler","create","defaults","event","headers","panels","activeClass","slideDelay","expandFirst","selectedPanel","init","self","this","el","querySelectorAll","options","forEach","panel","style","transition","display","height","addEventListener","e","data","toggle","Array","from","filter","matches","dispatchEvent","Event","length","closePanel","pnl","classList","remove","getComputedStyle","offsetHeight","preventDefault","currentTarget","nextElementSibling","header","contains","setTimeout","scrollIntoView","behavior","block","prevHeight","endHeight","transitionEnd","propertyName","add","removeEventListener","openPanel"],"sources":["Accordion.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAEA,OAAOA,EAAQC,OAAO,CAClBC,SAAU,CACNC,MAAO,QACPC,QAAS,oBACTC,OAAQ,mBACRC,YAAa,YACbC,WAAY,IACZC,aAAa,EACbC,cAAe,MAGnBC,KAAM,WACF,IAAIC,EAAOC,KAEXD,EAAKE,GAAGC,iBAAiBH,EAAKI,QAAQV,QAAQW,SAAQC,IAClDA,EAAMC,MAAMC,WAAa,YAAcR,EAAKI,QAAQR,WAAY,gBAChEU,EAAMC,MAAME,QAAU,QACtBH,EAAMC,MAAMG,OAAS,GAAG,IAG5BV,EAAKP,QAAUO,EAAKE,GAAGC,iBAAiBH,EAAKI,QAAQX,SACrDO,EAAKP,QAAQY,SAAQH,IACjBA,EAAGS,iBAAiBX,EAAKI,QAAQZ,OAAO,SAAUoB,GAC9CA,EAAEC,KAAOb,EACTA,EAAKc,OAAOF,EAChB,GAAE,IAGFZ,EAAKI,QAAQN,cACbiB,MAAMC,KAAKhB,EAAKP,SAASwB,QAAOf,GAAMA,EAAGgB,QAAQ,cAAgBlB,EAAKI,QAAQN,cAAgB,OAAMO,SAAQH,GAAMA,EAAGiB,cAAc,IAAIC,MAAMpB,EAAKI,QAAQZ,UACnJQ,EAAKI,QAAQP,aAAeG,EAAKP,QAAQ4B,OAAS,GACzDrB,EAAKP,QAAQ,GAAG0B,cAAc,IAAIC,MAAMpB,EAAKI,QAAQZ,OAE7D,EAEAsB,OAAQ,SAAUtB,GACd,IAAIQ,EAAOR,EAAMqB,KAGbS,EAAa,SAAUC,GACvBA,EAAIC,UAAUC,OAAOzB,EAAKI,QAAQT,aAClC4B,EAAIhB,MAAMG,OAASgB,iBAAiBH,GAAKb,OACzCa,EAAII,aACJJ,EAAIhB,MAAMG,OAAS,GACvB,EAkBAlB,EAAMoC,iBAGNb,MAAMC,KAAKhB,EAAKP,SAASwB,QAAOf,GAAMA,EAAGgB,QAAQ,IAAMlB,EAAKI,QAAQT,eAAcU,SAAQH,IAClFA,GAAMV,EAAMqC,gBACZ3B,EAAGsB,UAAUC,OAAOzB,EAAKI,QAAQT,aACjC2B,EAAWpB,EAAG4B,oBAClB,IAIJ,IAAIC,EAASvC,EAAMqC,cACfvB,EAAQyB,EAAOD,mBACnBC,EAAOP,UAAUV,OAAOd,EAAKI,QAAQT,aACrCW,EAAMkB,UAAUV,OAAOd,EAAKI,QAAQT,aAChCoC,EAAOP,UAAUQ,SAAShC,EAAKI,QAAQT,cACvCsC,YAAW,WAAcF,EAAOG,eAAe,CAAEC,SAAU,SAAUC,MAAO,WAAa,GAAGpC,EAAKI,QAAQR,YAhC7F,SAAU2B,GACtB,IAAIc,EAAad,EAAIhB,MAAMG,OAC3Ba,EAAIhB,MAAMG,OAAS,OACnB,IAAI4B,EAAYZ,iBAAiBH,GAAKb,OACtCa,EAAIhB,MAAMG,OAAS2B,EACnBd,EAAII,aACJJ,EAAIhB,MAAMG,OAAS4B,EACnBf,EAAIZ,iBAAiB,iBAAiB,SAAS4B,EAAc/C,GAClC,UAAtBA,EAAMgD,eACTjB,EAAIhB,MAAMG,OAAS,OACba,EAAIC,UAAUiB,IAAIzC,EAAKI,QAAQT,aACrC4B,EAAImB,oBAAoB,gBAAiBH,GAAe,GAE1D,IAAG,EACP,CAmBII,CAAUrC,IAEVgB,EAAWhB,EAEnB,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n\r\n return Moduler.create({\r\n defaults: {\r\n event: 'click',\r\n headers: '.Accordion-header',\r\n panels: '.Accordion-panel',\r\n activeClass: 'is-active',\r\n slideDelay: 400,\r\n expandFirst: false,\r\n selectedPanel: null // Panel to show at page load\r\n },\r\n\r\n init: function () {\r\n var self = this;\r\n\r\n self.el.querySelectorAll(self.options.panels).forEach(panel => {\r\n panel.style.transition = 'height 0.' + self.options.slideDelay +'s ease-in-out';\r\n panel.style.display = 'block';\r\n panel.style.height = '0';\r\n });\r\n\r\n self.headers = self.el.querySelectorAll(self.options.headers);\r\n self.headers.forEach(el => {\r\n el.addEventListener(self.options.event, function (e) {\r\n e.data = self;\r\n self.toggle(e);\r\n });\r\n });\r\n\r\n if (self.options.selectedPanel) {\r\n Array.from(self.headers).filter(el => el.matches('[data-name=' + self.options.selectedPanel + ']')).forEach(el => el.dispatchEvent(new Event(self.options.event)));\r\n } else if (self.options.expandFirst && self.headers.length > 0) {\r\n self.headers[0].dispatchEvent(new Event(self.options.event));\r\n }\r\n },\r\n\r\n toggle: function (event) {\r\n let self = event.data;\r\n \r\n // mimics jquery .slideup\r\n let closePanel = function (pnl) {\r\n pnl.classList.remove(self.options.activeClass);\r\n pnl.style.height = getComputedStyle(pnl).height;\r\n pnl.offsetHeight; // force repaint\r\n pnl.style.height = '0';\r\n };\r\n // mimics jquery .slidedown\r\n let openPanel = function (pnl) {\r\n let prevHeight = pnl.style.height;\r\n pnl.style.height = 'auto';\r\n let endHeight = getComputedStyle(pnl).height;\r\n pnl.style.height = prevHeight;\r\n pnl.offsetHeight; // force repaint\r\n pnl.style.height = endHeight;\r\n pnl.addEventListener('transitionend', function transitionEnd(event) {\r\n\t if (event.propertyName == 'height') {\r\n\t\t pnl.style.height = 'auto';\r\n pnl.classList.add(self.options.activeClass);\r\n\t\t pnl.removeEventListener('transitionend', transitionEnd, false);\r\n\t }\r\n }, false);\r\n };\r\n\r\n event.preventDefault();\r\n\r\n // Hide active\r\n Array.from(self.headers).filter(el => el.matches('.' + self.options.activeClass)).forEach(el => {\r\n if (el != event.currentTarget) {\r\n el.classList.remove(self.options.activeClass);\r\n closePanel(el.nextElementSibling);\r\n }\r\n });\r\n\r\n // Toggle this\r\n let header = event.currentTarget;\r\n let panel = header.nextElementSibling;\r\n header.classList.toggle(self.options.activeClass);\r\n panel.classList.toggle(self.options.activeClass);\r\n if (header.classList.contains(self.options.activeClass)) {\r\n setTimeout(function () { header.scrollIntoView({ behavior: 'smooth', block: 'nearest' });}, self.options.slideDelay);\r\n openPanel(panel);\r\n } else {\r\n closePanel(panel);\r\n }\r\n }\r\n });\r\n});"]}