{"version":3,"file":"3247.803ce45b.js","mappings":"4lBAIe,MAAAA,UAAcC,EAAAA,GAYzBC,OAAAA,IACIC,EAAAA,EAAAA,IAAYC,KAAM,CAACC,KAAM,OACzBC,EAAAA,EAAAA,IAAgBF,OAChBG,EAAAA,EAAAA,IAAcH,KAAM,CAChBI,QAASJ,KAAKK,eAIdC,YAAa,kCACbC,UAAW,wBACXC,QAAS,uBAEjB,CAEAC,YAAAA,GACST,KAAKK,eAAeK,UAAUC,SAAS,cAAiBX,KAAKK,eAAeK,UAAUC,SAAS,WAChGX,KAAKY,OAEb,CAEAC,IAAAA,GACI,QAAqC,IAA1BC,OAAOC,eAAgC,CAC9C,MAAMC,EAAKhB,KAAKiB,YAAYC,qCAAqCJ,OAAOC,eAAgB,YACpFC,GACAA,EAAGJ,OAEX,CACAE,OAAOC,eAAiBf,KAAKI,QAEzBJ,KAAKmB,QACLnB,KAAKmB,OAAOC,aAAa,gBAAiB,QAE1CpB,KAAKqB,eACLrB,KAAKsB,SAAS,gBAElBtB,KAAKuB,OACT,CAEAX,KAAAA,GACQZ,KAAKmB,QACLnB,KAAKmB,OAAOC,aAAa,gBAAiB,SAE9CpB,KAAKwB,OACT,CAEAC,MAAAA,GACQzB,KAAK0B,aACL1B,KAAKY,QAELZ,KAAKa,MAEb,CAEAc,QAAAA,CAASC,GACLA,EAAEC,iBACFD,EAAEE,uBAC2B,IAAlBF,EAAEG,OAAOC,MAChBlB,OAAOmB,eAAeL,EAAEG,OAAOC,KAEvC,CAEA,UAAIb,GACA,OAAOnB,KAAKI,QAAQ8B,cAAc,SACtC,EACHC,EAAAvC,EAAA,UA3EoB,CAAC,aAAWuC,EAAAvC,EAAA,YAEV,CAAC,WAASuC,EAAAvC,EAAA,SAEb,CACZ0B,SAAU,CACNc,KAAMC,QACNC,SAAS,I","sources":["webpack://@bang/www/./assets/controllers/dropdown_controller.js"],"sourcesContent":["import {Controller} from '@hotwired/stimulus';\nimport {useDebounce, useClickOutside, useTransition} from 'stimulus-use';\n\n/* stimulusFetch: 'lazy' */\nexport default class extends Controller {\n static targets = ['dropdown'];\n\n static debounces = ['toggle'];\n\n static values = {\n dispatch: {\n type: Boolean,\n default: true,\n },\n };\n\n connect() {\n useDebounce(this, {wait: 100});\n useClickOutside(this);\n useTransition(this, {\n element: this.dropdownTarget,\n // enterActive: 'transition ease-out duration-300',\n // enterFrom: 'transform opacity-0',\n // enterTo: 'transform opacity-100',\n leaveActive: 'transition ease-in duration-100',\n leaveFrom: 'transform opacity-100',\n leaveTo: 'transform opacity-0',\n });\n }\n\n clickOutside() {\n if (!this.dropdownTarget.classList.contains('transform') && !this.dropdownTarget.classList.contains('hidden')) {\n this.close();\n }\n }\n\n open() {\n if (typeof window.openedDropdown !== 'undefined') {\n const ct = this.application.getControllerForElementAndIdentifier(window.openedDropdown, 'dropdown');\n if (ct) {\n ct.close();\n }\n }\n window.openedDropdown = this.element;\n\n if (this.button) {\n this.button.setAttribute('aria-expanded', 'true');\n }\n if (this.dispatchValue) {\n this.dispatch('dropdownOpen');\n }\n this.enter();\n }\n\n close() {\n if (this.button) {\n this.button.setAttribute('aria-expanded', 'false');\n }\n this.leave();\n }\n\n toggle() {\n if (this.transitioned) {\n this.close();\n } else {\n this.open();\n }\n }\n\n pickLang(e) {\n e.preventDefault();\n e.stopPropagation();\n if (typeof e.params.lang !== 'undefined') {\n window.changeLanguage(e.params.lang);\n }\n }\n\n get button() {\n return this.element.querySelector('button');\n }\n}\n"],"names":["_class","Controller","connect","useDebounce","this","wait","useClickOutside","useTransition","element","dropdownTarget","leaveActive","leaveFrom","leaveTo","clickOutside","classList","contains","close","open","window","openedDropdown","ct","application","getControllerForElementAndIdentifier","button","setAttribute","dispatchValue","dispatch","enter","leave","toggle","transitioned","pickLang","e","preventDefault","stopPropagation","params","lang","changeLanguage","querySelector","_defineProperty","type","Boolean","default"],"sourceRoot":""}