{"version":3,"file":"Toggler-77930a63.js","names":["define","Moduler","create","defaults","event","contentElement","cssClass","preventDefault","once","toggleSelf","removeOthers","removeContainer","preventBodyScroll","scrollTop","init","self","this","document","querySelector","options","el","addEventListener","toggleVisibility","bind","e","add","remove","classList","dispatchEvent","CustomEvent","toggled","toggle","querySelectorAll","forEach","element","body"],"sources":["Toggler.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAEA,OAAOA,EAAQC,OAAO,KAAM,CACxBC,SAAU,CACNC,MAAO,QACPC,eAAgB,KAChBC,SAAU,WACVC,gBAAgB,EAChBC,MAAM,EACNC,YAAY,EACZC,cAAc,EACdC,gBAAiB,OACjBC,mBAAmB,EACnBC,WAAW,GAGfC,KAAM,WACF,IAAIC,EAAOC,KAEXD,EAAKV,eAAiBY,SAASC,cAAcH,EAAKI,QAAQd,gBAE1DU,EAAKK,GAAGC,iBAAiBN,EAAKI,QAAQf,MAAOW,EAAKO,iBAAiBC,KAAK,KAAMR,IAE9EA,EAAKK,GAAGC,iBAAiB,eAAe,SAAUG,GAC9CT,EAAKU,IAAID,EAAGT,EAChB,IAEAA,EAAKK,GAAGC,iBAAiB,kBAAkB,SAAUG,GACjDT,EAAKW,OAAOF,EAAGT,EACnB,GACJ,EAEAW,OAAQ,SAAUF,EAAGT,GACbA,EAAKI,QAAQV,YACbM,EAAKK,GAAGO,UAAUD,OAAOX,EAAKI,QAAQb,UAG1CS,EAAKV,eAAesB,UAAUD,OAAOX,EAAKI,QAAQb,UAClDS,EAAKV,eAAeuB,cAAc,IAAIC,YAAY,mBACtD,EAEAJ,IAAK,SAAUD,EAAGT,GACVA,EAAKI,QAAQV,YACbM,EAAKK,GAAGO,UAAUF,IAAIV,EAAKI,QAAQb,UAGvCS,EAAKV,eAAesB,UAAUF,IAAIV,EAAKI,QAAQb,UAC/CS,EAAKV,eAAeuB,cAAc,IAAIC,YAAY,iBACtD,EAEAP,iBAAkB,SAAUP,EAAMS,GAE1BT,EAAKI,QAAQZ,gBACbiB,EAAEjB,iBAGFQ,EAAKI,QAAQX,MAAQO,EAAKe,UAEnBf,EAAKI,QAAQX,OACpBO,EAAKe,SAAU,GAGff,EAAKI,QAAQV,YACbM,EAAKK,GAAGO,UAAUI,OAAOhB,EAAKI,QAAQb,UAGtCS,EAAKI,QAAQT,cACbO,SAASC,cAAcH,EAAKI,QAAQR,iBAAiBqB,iBAAiB,0BAA0BC,SAAQC,IAChGA,IAAYnB,EAAKK,IACjBc,EAAQN,cAAc,IAAIC,YAAY,kBAC1C,IAIRd,EAAKV,eAAesB,UAAUI,OAAOhB,EAAKI,QAAQb,UAClDS,EAAKV,eAAeuB,cAAc,IAAIC,YAAY,qBAE9Cd,EAAKI,QAAQN,YACbE,EAAKV,eAAeQ,UAAY,GAGhCE,EAAKI,QAAQP,mBACbK,SAASkB,KAAKR,UAAUI,OAAO,aAEvC,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n 'use strict';\r\n \r\n return Moduler.create(null, {\r\n defaults: {\r\n event: 'click',\r\n contentElement: null,\r\n cssClass: 'u-hidden',\r\n preventDefault: true,\r\n once: false,\r\n toggleSelf: false,\r\n removeOthers: false,\r\n removeContainer: 'body',\r\n preventBodyScroll: false,\r\n scrollTop: false\r\n },\r\n \r\n init: function () {\r\n var self = this;\r\n\r\n self.contentElement = document.querySelector(self.options.contentElement);\r\n\r\n self.el.addEventListener(self.options.event, self.toggleVisibility.bind(null, self));\r\n\r\n self.el.addEventListener('toggler-add', function (e) {\r\n self.add(e, self);\r\n });\r\n\r\n self.el.addEventListener('toggler-remove', function (e) {\r\n self.remove(e, self);\r\n });\r\n },\r\n \r\n remove: function (e, self) {\r\n if (self.options.toggleSelf) {\r\n self.el.classList.remove(self.options.cssClass);\r\n }\r\n\r\n self.contentElement.classList.remove(self.options.cssClass);\r\n self.contentElement.dispatchEvent(new CustomEvent('toggler-removed'));\r\n },\r\n\r\n add: function (e, self) {\r\n if (self.options.toggleSelf) {\r\n self.el.classList.add(self.options.cssClass);\r\n }\r\n\r\n self.contentElement.classList.add(self.options.cssClass);\r\n self.contentElement.dispatchEvent(new CustomEvent('toggler-added'));\r\n },\r\n\r\n toggleVisibility: function (self, e) {\r\n\r\n if (self.options.preventDefault) {\r\n e.preventDefault();\r\n }\r\n\r\n if (self.options.once && self.toggled) {\r\n return;\r\n } else if (self.options.once) {\r\n self.toggled = true;\r\n }\r\n\r\n if (self.options.toggleSelf) {\r\n self.el.classList.toggle(self.options.cssClass);\r\n }\r\n\r\n if (self.options.removeOthers) {\r\n document.querySelector(self.options.removeContainer).querySelectorAll('[data-module*=toggler]').forEach(element => {\r\n if (element !== self.el) {\r\n element.dispatchEvent(new CustomEvent('toggler-remove'));\r\n }\r\n });\r\n }\r\n\r\n self.contentElement.classList.toggle(self.options.cssClass);\r\n self.contentElement.dispatchEvent(new CustomEvent('toggler-toggeled'));\r\n\r\n if (self.options.scrollTop) {\r\n self.contentElement.scrollTop = 0;\r\n }\r\n\r\n if (self.options.preventBodyScroll) {\r\n document.body.classList.toggle('no-scroll');\r\n }\r\n }\r\n });\r\n});\r\n\r\n"]}