{"version":3,"sources":["block-faq.js"],"names":["BlockFaq","constructor","container","options","this","Object","assign","mode","itemsOpen","tabs","faqSection","document","querySelector","querySelectorAll","setEvents","onLoad","self","forEach","tab","addEventListener","clickTab","id","URL","location","searchParams","get","filterFaq","let","i","length","faqSectionFaqItems","classList","add","block","toggleAccordionBlock","clickedBlock","toggle","remove","showFirstTab","elem","contains"],"mappings":"qBAAqBA,SACjBC,YAAYC,EAAWC,GAQnBC,KAAKD,QAAUE,OAAOC,OAAO,GAPN,CACnBC,KAAM,WACNC,UAAW,EACXC,KAAM,uBACNC,WAAY,cAChB,EAEiDP,CAAO,EACxDC,KAAKF,UAAYS,SAASC,cAAcV,CAAS,EACjDE,KAAKK,KAAOL,KAAKF,UAAUW,iBAAiBT,KAAKD,QAAQM,IAAI,EAC7DL,KAAKM,WAAaN,KAAKF,UAAUW,iBAAiBT,KAAKD,QAAQO,UAAU,EACzEN,KAAKI,UAAYJ,KAAKD,QAAQK,UAE9BJ,KAAKU,UAAU,EACfV,KAAKW,OAAO,CAChB,CAEAD,YACI,IAAIE,EAAOZ,KACXA,KAAKK,KAAKQ,QAAQC,IACfA,EAAIC,iBAAiB,QAAS,WAAaH,EAAKI,SAAShB,IAAI,CAAG,CAAC,CACpE,CAAC,CACL,CAEAW,SACI,IACIM,EADS,IAAKC,IAAIX,SAASY,QAAS,EAAEC,aAC1BC,IAAI,MAAM,EAEf,OAAPJ,GACFjB,KAAKsB,UAAUL,CAAE,EAGnB,IAAKM,IAAIC,EAAI,EAAGA,EAAIxB,KAAKM,WAAWmB,OAAQD,CAAC,GAAI,CAC/C,IAAME,EAAqB1B,KAAKM,WAAWkB,GAAGf,iBAAiB,WAAW,EAE1E,IAAKc,IAAIC,EAAI,EAAGA,EAAIxB,KAAKI,WAAaoB,EAAIE,EAAmBD,OAAQD,CAAC,GACpEE,EAAmBF,GAAGG,UAAUC,IAAI,YAAY,CAEpD,CAEA5B,KAAKK,KAAKQ,QAAQgB,IAChBA,EAAMd,iBAAiB,QAAS,KAC9Bf,KAAK8B,qBAAqBD,CAAK,CACjC,CAAC,CACH,CAAC,CACL,CAEAC,qBAAqBC,GACnB/B,KAAKK,KAAKQ,QAAQgB,IACZA,IAAUE,EACZF,EAAMF,UAAUK,OAAO,YAAY,EAEnCH,EAAMF,UAAUM,OAAO,YAAY,CAEvC,CAAC,CACH,CAEAC,eACIlC,KAAKgB,SAAShB,KAAKK,KAAK,EAAE,CAC9B,CAEAW,SAASmB,GACLnC,KAAKsB,UAAU,CACnB,CAEAA,UAAUL,GACNjB,KAAKK,KAAKQ,QAAQC,IACVA,EAAIa,UAAUS,SAAS,MAAM,EAC7BtB,EAAIa,UAAUM,OAAO,MAAM,EAE3BnB,EAAIa,UAAUC,IAAI,MAAM,EAGxBd,EAAIa,UAAUS,SAASnB,CAAE,EACzBH,EAAIa,UAAUC,IAAI,QAAQ,EAE1Bd,EAAIa,UAAUM,OAAO,QAAQ,CAErC,CAAC,CACL,CACJ","file":"block-faq.min.js","sourcesContent":["export default class BlockFaq {\r\n constructor(container, options) {\r\n const defaultOptions = {\r\n mode: 'expanded',\r\n itemsOpen: 0,\r\n tabs: '.questions .faq-item',\r\n faqSection: '.faq-section'\r\n };\r\n\r\n this.options = Object.assign({}, defaultOptions, options);\r\n this.container = document.querySelector(container);\r\n this.tabs = this.container.querySelectorAll(this.options.tabs);\r\n this.faqSection = this.container.querySelectorAll(this.options.faqSection);\r\n this.itemsOpen = this.options.itemsOpen;\r\n\r\n this.setEvents();\r\n this.onLoad();\r\n }\r\n\r\n setEvents() {\r\n var self = this;\r\n this.tabs.forEach(tab => {\r\n tab.addEventListener('click', function() { self.clickTab(this); }); \r\n });\r\n }\r\n\r\n onLoad() {\r\n var params = (new URL(document.location)).searchParams\r\n var id = params.get(\"show\")\r\n \r\n if (id !== null) {\r\n this.filterFaq(id);\r\n }\r\n\r\n for (let i = 0; i < this.faqSection.length; i++) {\r\n const faqSectionFaqItems = this.faqSection[i].querySelectorAll('.faq-item')\r\n\r\n for (let i = 0; i < this.itemsOpen && i < faqSectionFaqItems.length; i++) {\r\n faqSectionFaqItems[i].classList.add('show-block');\r\n }\r\n }\r\n \r\n this.tabs.forEach(block => {\r\n block.addEventListener('click', () => {\r\n this.toggleAccordionBlock(block)\r\n })\r\n })\r\n }\r\n \r\n toggleAccordionBlock(clickedBlock) {\r\n this.tabs.forEach(block => {\r\n if (block === clickedBlock) {\r\n block.classList.toggle('show-block')\r\n } else {\r\n block.classList.remove('show-block')\r\n }\r\n })\r\n }\r\n \r\n showFirstTab() {\r\n this.clickTab(this.tabs[0]);\r\n }\r\n \r\n clickTab(elem) {\r\n this.filterFaq();\r\n }\r\n \r\n filterFaq(id) {\r\n this.tabs.forEach(tab => {\r\n if (tab.classList.contains('show')) {\r\n tab.classList.remove('show')\r\n } else {\r\n tab.classList.add('show')\r\n }\r\n \r\n if (tab.classList.contains(id)) {\r\n tab.classList.add('active')\r\n } else {\r\n tab.classList.remove('active')\r\n }\r\n })\r\n }\r\n}"]}