{"version":3,"file":"3859.5a5f2774.js","mappings":"qKAIe,MAAAA,UAAcC,EAAAA,GAGzBC,OAAAA,IACIC,EAAAA,EAAAA,IAAgBC,KAAM,CAClBC,QAASD,KAAKE,cACdC,eAAe,KAEnBC,EAAAA,EAAAA,IAAcJ,KAAM,CAChBC,QAASD,KAAKE,cAIdG,YAAa,kCACbC,UAAW,sCACXC,QAAS,yCAGbP,KAAKQ,cAAcC,SAASR,IACxBA,EAAQS,iBAAiB,SAAS,KAC9BV,KAAKW,eAAe,GACtB,IAGuB,YAAzBC,OAAOC,SAASC,MAChBd,KAAKW,eAEb,CAEAI,UAAAA,GACIf,KAAKQ,cAAcC,SAASR,IACxBA,EAAQe,oBAAoB,SAAS,KACjChB,KAAKW,eAAe,GACtB,GAEV,CAEAA,aAAAA,GACIX,KAAKiB,SAAS,eAAgB,CAACC,OAAQ,CAAC,GAC5C,CAEAC,YAAAA,GACSnB,KAAKE,cAAckB,UAAUC,SAAS,cAAiBrB,KAAKE,cAAckB,UAAUC,SAAS,WAC9FrB,KAAKsB,OAEb,CAEAC,IAAAA,GACIvB,KAAKwB,QACLxB,KAAKyB,iBAAiBC,OAC1B,CAEAJ,KAAAA,GACItB,KAAK2B,OACT,CAEAC,MAAAA,CAAOC,GACHA,EAAEC,iBACFD,EAAEE,kBACEF,EAAEG,OAAOC,MACY,oBAAVC,MAEPA,MAAMC,MAAMN,EAAEG,OAAOC,KAErBrB,OAAOC,SAASuB,KAAOP,EAAEG,OAAOC,IAG5C,CAEAI,YAAAA,CAAaR,GAIT,GAHAA,EAAEC,iBACFD,EAAEE,kBAEEF,EAAEG,OAAOM,MAAO,CAChB,IAAIL,EAAM,IAAIM,IAAI3B,OAAOC,SAASuB,MAElCH,EAAIO,aAAaC,OAAOZ,EAAEG,OAAOM,OACjCL,EAAIO,aAAaC,OAAO,QACG,KAAvBZ,EAAEa,WAAWC,OACbV,EAAIO,aAAaI,OAAOf,EAAEG,OAAOM,MAAOT,EAAEa,WAAWC,OAGpC,oBAAVT,MAEPA,MAAMC,MAAMF,EAAIY,YAEhBjC,OAAOC,SAASuB,KAAOH,EAAIY,WAG/B7C,KAAKW,eACT,CACJ,CAEAmC,SAAAA,GACQ9C,KAAK+C,gBACL/C,KAAKgD,WAAWL,MAAQ,GAEhC,CAEA,iBAAInC,GACA,OAAOR,KAAKC,QAAQgD,iBAAiB,YACzC,E,EACHrD,E,EArGoB,CAAC,UAAW,aAAc,S,sUAqG9C,c","sources":["webpack://@bang/www/./assets/controllers/search-sidebar_controller.js"],"sourcesContent":["import {Controller} from '@hotwired/stimulus';\nimport {useClickOutside, useTransition} from 'stimulus-use';\n\n/* stimulusFetch: 'lazy' */\nexport default class extends Controller {\n    static targets = ['sidebar', 'hideButton', 'term'];\n\n    connect() {\n        useClickOutside(this, {\n            element: this.sidebarTarget,\n            dispatchEvent: false,\n        });\n        useTransition(this, {\n            element: this.sidebarTarget,\n            // enterActive: 'transition ease-out duration-300',\n            // enterFrom: 'transform opacity-0 translate-x-full',\n            // enterTo: 'transform opacity-100 translate-x-0',\n            leaveActive: 'transition ease-in duration-300',\n            leaveFrom: 'transform opacity-100 translate-x-0',\n            leaveTo: 'transform opacity-0 translate-x-full',\n        });\n\n        this.scrollUpLinks.forEach((element) => {\n            element.addEventListener('click', () => {\n                this.filterChanged();\n            });\n        });\n\n        if (window.location.hash === '#search') {\n            this.filterChanged();\n        }\n    }\n\n    disconnect() {\n        this.scrollUpLinks.forEach((element) => {\n            element.removeEventListener('click', () => {\n                this.filterChanged();\n            });\n        });\n    }\n\n    filterChanged() {\n        this.dispatch('filterChange', {detail: {}});\n    }\n\n    clickOutside() {\n        if (!this.sidebarTarget.classList.contains('transform') && !this.sidebarTarget.classList.contains('hidden')) {\n            this.close();\n        }\n    }\n\n    open() {\n        this.enter();\n        this.hideButtonTarget.focus();\n    }\n\n    close() {\n        this.leave();\n    }\n\n    filter(e) {\n        e.preventDefault();\n        e.stopPropagation();\n        if (e.params.url) {\n            if (typeof Turbo !== 'undefined') {\n                // eslint-disable-line no-undef\n                Turbo.visit(e.params.url); // eslint-disable-line no-undef\n            } else {\n                window.location.href = e.params.url;\n            }\n        }\n    }\n\n    selectFilter(e) {\n        e.preventDefault();\n        e.stopPropagation();\n\n        if (e.params.param) {\n            let url = new URL(window.location.href);\n\n            url.searchParams.delete(e.params.param);\n            url.searchParams.delete('page');\n            if (e.srcElement.value !== '') {\n                url.searchParams.append(e.params.param, e.srcElement.value);\n            }\n\n            if (typeof Turbo !== 'undefined') {\n                // eslint-disable-line no-undef\n                Turbo.visit(url.toString()); // eslint-disable-line no-undef\n            } else {\n                window.location.href = url.toString();\n            }\n\n            this.filterChanged();\n        }\n    }\n\n    clearTerm() {\n        if (this.hasTermTarget) {\n            this.termTarget.value = '';\n        }\n    }\n\n    get scrollUpLinks() {\n        return this.element.querySelectorAll('.scrollup');\n    }\n}\n"],"names":["_class","Controller","connect","useClickOutside","this","element","sidebarTarget","dispatchEvent","useTransition","leaveActive","leaveFrom","leaveTo","scrollUpLinks","forEach","addEventListener","filterChanged","window","location","hash","disconnect","removeEventListener","dispatch","detail","clickOutside","classList","contains","close","open","enter","hideButtonTarget","focus","leave","filter","e","preventDefault","stopPropagation","params","url","Turbo","visit","href","selectFilter","param","URL","searchParams","delete","srcElement","value","append","toString","clearTerm","hasTermTarget","termTarget","querySelectorAll"],"sourceRoot":""}