{"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}"]}