{ "version": 3, "sources": ["toggle_switch_controller-a25a9975.js"], "sourcesContent": ["import { Controller } from \"@hotwired/stimulus\"\nimport { getCsrfToken } from \"@concerto/utilities\"\n\nexport default class extends Controller {\n //static targets = [ \"checkbox\", \"toggler\", \"trueOption\", \"falseOption\" ]\n // static classes = [ \"hidden\", \"active\", \"true\", \"false\" ]\n\n static classes = [\n \"offActive\",\n \"onActive\",\n \"hidden\"\n ]\n\n static targets = [\n \"spinner\",\n \"srStatus\",\n \"offButton\",\n \"onButton\",\n \"statusLabel\",\n \"errorIcon\"\n ]\n \n static values = {\n onLabel: String,\n offLabel: String,\n loadingSrMessage: String,\n src: String\n }\n\n get checked() {\n const { checked } = this.element.dataset\n return checked == \"checked\"\n }\n\n set checked(newCheckedValue) {\n if (newCheckedValue) {\n this.element.dataset.checked = \"checked\"\n } else {\n this.element.dataset.checked = \"false\"\n }\n }\n\n setErrored() {\n this.errorIconTarget.classList.remove(this.hiddenClass)\n }\n\n startLoading() {\n this.errorIconTarget.classList.add(this.hiddenClass)\n this.spinnerTarget.classList.remove(this.hiddenClass)\n this.srStatusTarget.textContent = this.loadingSrMessageValue\n this.onButtonTarget.disabled = true\n this.offButtonTarget.disabled = true\n }\n\n stopLoading() {\n this.spinnerTarget.classList.add(this.hiddenClass)\n this.srStatusTarget.textContent = ''\n this.onButtonTarget.disabled = false\n this.offButtonTarget.disabled = false\n }\n\n getFormDataWithValue(value) {\n const formData = new FormData()\n\n formData.append(\n 'value',\n value ? 'true' : 'false'\n )\n\n return formData\n }\n\n turnOn() {\n this.startLoading()\n\n fetch(this.srcValue, {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n 'X-CSRF-Token': getCsrfToken()\n },\n body: this.getFormDataWithValue(true)\n }).then(({ status }) => {\n this.stopLoading()\n \n if (status < 200 || status > 299) {\n // failed\n this.setErrored()\n } else {\n // success\n this.markOn()\n }\n }).catch(() => {\n this.stopLoading()\n this.setErrored()\n })\n }\n\n turnOff() {\n this.startLoading()\n\n fetch(this.srcValue, {\n method: 'PUT',\n headers: {\n 'Accept': 'application/json',\n 'X-CSRF-Token': getCsrfToken()\n },\n body: this.getFormDataWithValue(false)\n }).then(({ status }) => {\n this.stopLoading()\n \n if (status < 200 || status > 299) {\n // failed\n this.setErrored()\n } else {\n // success\n this.markOff()\n }\n }).catch(() => {\n this.stopLoading()\n this.setErrored()\n })\n }\n\n markOn() {\n if (!this.checked) {\n this.offButtonTarget.classList.remove(this.offActiveClass)\n this.onButtonTarget.classList.add(this.onActiveClass)\n this.statusLabelTarget.textContent = this.onLabelValue\n this.checked = true\n }\n }\n\n markOff() {\n if (this.checked) {\n this.onButtonTarget.classList.remove(this.onActiveClass)\n this.offButtonTarget.classList.add(this.offActiveClass)\n this.statusLabelTarget.textContent = this.offLabelValue\n this.checked = false\n }\n }\n}"], "mappings": "wKAAA,gDACA,mDAEA,qBAAO,SAAsB,EAAW,IA0BlC,UAAU,CACZ,KAAM,CAAE,WAAY,KAAK,QAAQ,QACjC,MAAO,IAAW,SACpB,IAEI,SAAQ,EAAiB,CAC3B,AAAI,EACF,KAAK,QAAQ,QAAQ,QAAU,UAE/B,KAAK,QAAQ,QAAQ,QAAU,OAEnC,CAEA,YAAa,CACX,KAAK,gBAAgB,UAAU,OAAO,KAAK,WAAW,CACxD,CAEA,cAAe,CACb,KAAK,gBAAgB,UAAU,IAAI,KAAK,WAAW,EACnD,KAAK,cAAc,UAAU,OAAO,KAAK,WAAW,EACpD,KAAK,eAAe,YAAc,KAAK,sBACvC,KAAK,eAAe,SAAW,GAC/B,KAAK,gBAAgB,SAAW,EAClC,CAEA,aAAc,CACZ,KAAK,cAAc,UAAU,IAAI,KAAK,WAAW,EACjD,KAAK,eAAe,YAAc,GAClC,KAAK,eAAe,SAAW,GAC/B,KAAK,gBAAgB,SAAW,EAClC,CAEA,qBAAqB,EAAO,CAC1B,KAAM,GAAW,GAAI,UAErB,SAAS,OACP,QACA,EAAQ,OAAS,OACnB,EAEO,CACT,CAEA,QAAS,CACP,KAAK,aAAa,EAElB,MAAM,KAAK,SAAU,CACnB,OAAQ,MACR,QAAS,CACP,OAAU,mBACV,eAAgB,EAAa,CAC/B,EACA,KAAM,KAAK,qBAAqB,EAAI,CACtC,CAAC,EAAE,KAAK,CAAC,CAAE,YAAa,CACtB,KAAK,YAAY,EAEjB,AAAI,EAAS,KAAO,EAAS,IAE3B,KAAK,WAAW,EAGhB,KAAK,OAAO,CAEhB,CAAC,EAAE,MAAM,IAAM,CACb,KAAK,YAAY,EACjB,KAAK,WAAW,CAClB,CAAC,CACH,CAEA,SAAU,CACR,KAAK,aAAa,EAElB,MAAM,KAAK,SAAU,CACnB,OAAQ,MACR,QAAS,CACP,OAAU,mBACV,eAAgB,EAAa,CAC/B,EACA,KAAM,KAAK,qBAAqB,EAAK,CACvC,CAAC,EAAE,KAAK,CAAC,CAAE,YAAa,CACtB,KAAK,YAAY,EAEjB,AAAI,EAAS,KAAO,EAAS,IAE3B,KAAK,WAAW,EAGhB,KAAK,QAAQ,CAEjB,CAAC,EAAE,MAAM,IAAM,CACb,KAAK,YAAY,EACjB,KAAK,WAAW,CAClB,CAAC,CACH,CAEA,QAAS,CACP,AAAK,KAAK,SACR,MAAK,gBAAgB,UAAU,OAAO,KAAK,cAAc,EACzD,KAAK,eAAe,UAAU,IAAI,KAAK,aAAa,EACpD,KAAK,kBAAkB,YAAc,KAAK,aAC1C,KAAK,QAAU,GAEnB,CAEA,SAAU,CACR,AAAI,KAAK,SACP,MAAK,eAAe,UAAU,OAAO,KAAK,aAAa,EACvD,KAAK,gBAAgB,UAAU,IAAI,KAAK,cAAc,EACtD,KAAK,kBAAkB,YAAc,KAAK,cAC1C,KAAK,QAAU,GAEnB,CACF,CAtIS,EAJT,EAIS,UAAU,CACf,YACA,WACA,QACF,GAEO,EAVT,EAUS,UAAU,CACf,UACA,WACA,YACA,WACA,cACA,WACF,GAEO,EAnBT,EAmBS,SAAS,CACd,QAAS,OACT,SAAU,OACV,iBAAkB,OAClB,IAAK,MACP", "names": [] }