{"version":3,"file":"contactable_controller-kyb__sMC.js","sources":["../../../app/javascript/controllers/contactables/contactable_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\nimport { get } from \"@rails/request.js\"\n\nimport { useRemove } from \"../mixins/useRemove\";\n\nexport default class extends Controller {\n static values = {url: String, updateUrl: Boolean }\n static targets = [\"link\", \"radio\"]\n\n initialize() {\n this.popStateListener = this.popStateListener.bind(this)\n }\n\n connect() {\n window.addEventListener(\"popstate\", this.popStateListener)\n\n if(this.updateUrlValue) {\n const url = new URL(this.urlValue)\n history.pushState({}, null, url.toString())\n\n this.radioTarget.checked = true\n this.dispatch(\"uncheck\", { detail: this.element.dataset.id })\n }\n\n useRemove(this)\n }\n\n disconnect() {\n window.removeEventListener(\"popstate\", this.popStateListener)\n }\n\n popStateListener() {\n const parts = window.location.href.split(\"/\")\n const id = parts[parts.length - 1]\n\n if(id === this.element.dataset.id) {\n this.linkTarget.click()\n } else if(this.hasRadioTarget) {\n this.radioTarget.checked = false\n }\n }\n\n changeBrowserUrl() {\n if(window.location.href === this.urlValue) return\n\n const url = new URL(this.urlValue)\n history.pushState({}, null, url.toString())\n }\n\n async getSegmentForm(e) {\n await get(e.currentTarget.dataset.url, {\n responseKind: \"turbo-stream\",\n })\n\n let event = new CustomEvent(e.currentTarget.dataset.event, {\n bubbles: true,\n cancelable: true,\n })\n\n window.dispatchEvent(event)\n }\n\n removeFromPageWithFadeOutTransition({ dataset }) {\n if(dataset.id !== this.element.dataset.id) return\n\n this.element.classList.add(\"opacity-0\")\n\n setTimeout(() => {\n history.back()\n this.remove()\n }, 550)\n }\n\n uncheck() {\n this.radioTarget.checked = false\n }\n\n uncheckSelf({ dataset }) {\n if(dataset.id !== this.element.dataset.id) {\n this.uncheck()\n }\n }\n}\n"],"names":["contactable_controller","Controller","url","useRemove","parts","e","get","event","dataset","__publicField"],"mappings":"2SAKe,MAAKA,UAASC,CAAW,CAItC,YAAa,CACX,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,CAC3D,CAEE,SAAU,CAGR,GAFA,OAAO,iBAAiB,WAAY,KAAK,gBAAgB,EAEtD,KAAK,eAAgB,CACtB,MAAMC,EAAM,IAAI,IAAI,KAAK,QAAQ,EACjC,QAAQ,UAAU,CAAA,EAAI,KAAMA,EAAI,SAAU,CAAA,EAE1C,KAAK,YAAY,QAAU,GAC3B,KAAK,SAAS,UAAW,CAAE,OAAQ,KAAK,QAAQ,QAAQ,EAAI,CAAA,CAClE,CAEIC,EAAU,IAAI,CAClB,CAEE,YAAa,CACX,OAAO,oBAAoB,WAAY,KAAK,gBAAgB,CAChE,CAEE,kBAAmB,CACjB,MAAMC,EAAQ,OAAO,SAAS,KAAK,MAAM,GAAG,EACjCA,EAAMA,EAAM,OAAS,CAAC,IAEvB,KAAK,QAAQ,QAAQ,GAC7B,KAAK,WAAW,MAAK,EACb,KAAK,iBACb,KAAK,YAAY,QAAU,GAEjC,CAEE,kBAAmB,CACjB,GAAG,OAAO,SAAS,OAAS,KAAK,SAAU,OAE3C,MAAMF,EAAM,IAAI,IAAI,KAAK,QAAQ,EACjC,QAAQ,UAAU,CAAA,EAAI,KAAMA,EAAI,SAAU,CAAA,CAC9C,CAEE,MAAM,eAAeG,EAAG,CACtB,MAAMC,EAAID,EAAE,cAAc,QAAQ,IAAK,CACrC,aAAc,cACf,CAAA,EAED,IAAIE,EAAQ,IAAI,YAAYF,EAAE,cAAc,QAAQ,MAAO,CACzD,QAAS,GACT,WAAY,EACb,CAAA,EAED,OAAO,cAAcE,CAAK,CAC9B,CAEE,oCAAoC,CAAE,QAAAC,GAAW,CAC5CA,EAAQ,KAAO,KAAK,QAAQ,QAAQ,KAEvC,KAAK,QAAQ,UAAU,IAAI,WAAW,EAEtC,WAAW,IAAM,CACf,QAAQ,KAAI,EACZ,KAAK,OAAM,CACjB,EAAO,GAAG,EACV,CAEE,SAAU,CACR,KAAK,YAAY,QAAU,EAC/B,CAEE,YAAY,CAAE,QAAAA,GAAW,CACpBA,EAAQ,KAAO,KAAK,QAAQ,QAAQ,IACrC,KAAK,QAAO,CAElB,CACA,CA5EEC,EADkBT,EACX,SAAS,CAAC,IAAK,OAAQ,UAAW,OAAO,GAChDS,EAFkBT,EAEX,UAAU,CAAC,OAAQ,OAAO"}