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