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