{"version":3,"file":"tabs_controller-CsKY6L1C.js","sources":["../../../app/javascript/entrypoints/controllers/tabs_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"tab\", \"panel\"];\n\n connect() {\n this.activeTabClasses = (this.data.get(\"activeTab\") || \"active\").split(\" \");\n this.inactiveTabClasses = (\n this.data.get(\"inactiveTab\") || \"inactive\"\n ).split(\" \");\n if (this.anchor)\n this.index = this.tabTargets.findIndex((tab) => tab.id === this.anchor);\n this.showTab();\n }\n\n change(event) {\n event.preventDefault();\n\n // If target specifies an index, use that\n if (event.currentTarget.dataset.index) {\n this.index = event.currentTarget.dataset.index;\n\n // If target specifies an id, use that\n } else if (event.currentTarget.dataset.id) {\n this.index = this.tabTargets.findIndex(\n (tab) => tab.id == event.currentTarget.dataset.id\n );\n\n // Otherwise, use the index of the current target\n } else {\n this.index = this.tabTargets.indexOf(event.currentTarget);\n }\n\n window.dispatchEvent(new CustomEvent(\"tsc:tab-change\"));\n }\n\n showTab() {\n this.tabTargets.forEach((tab, index) => {\n const panel = this.panelTargets[index];\n\n if (index === this.index) {\n panel.classList.remove(\"hidden\");\n tab.classList.remove(...this.inactiveTabClasses);\n tab.classList.add(...this.activeTabClasses);\n\n // Update URL with the tab ID if it has one\n // This will be automatically selected on page load\n if (tab.id) {\n location.hash = tab.id;\n }\n } else {\n panel.classList.add(\"hidden\");\n tab.classList.remove(...this.activeTabClasses);\n tab.classList.add(...this.inactiveTabClasses);\n }\n });\n }\n\n get index() {\n return parseInt(this.data.get(\"index\") || 0);\n }\n\n set index(value) {\n this.data.set(\"index\", value >= 0 ? value : 0);\n this.showTab();\n }\n\n get anchor() {\n return document.URL.split(\"#\").length > 1\n ? document.URL.split(\"#\")[1]\n : null;\n }\n}\n"],"names":["tabs_controller","Controller","tab","event","index","panel","value","__publicField"],"mappings":"mNAEe,MAAKA,UAASC,CAAW,CAGtC,SAAU,CACR,KAAK,kBAAoB,KAAK,KAAK,IAAI,WAAW,GAAK,UAAU,MAAM,GAAG,EAC1E,KAAK,oBACH,KAAK,KAAK,IAAI,aAAa,GAAK,YAChC,MAAM,GAAG,EACP,KAAK,SACP,KAAK,MAAQ,KAAK,WAAW,UAAWC,GAAQA,EAAI,KAAO,KAAK,MAAM,GACxE,KAAK,QAAO,CACb,CAED,OAAOC,EAAO,CACZA,EAAM,eAAc,EAGhBA,EAAM,cAAc,QAAQ,MAC9B,KAAK,MAAQA,EAAM,cAAc,QAAQ,MAGhCA,EAAM,cAAc,QAAQ,GACrC,KAAK,MAAQ,KAAK,WAAW,UAC1BD,GAAQA,EAAI,IAAMC,EAAM,cAAc,QAAQ,EACvD,EAIM,KAAK,MAAQ,KAAK,WAAW,QAAQA,EAAM,aAAa,EAG1D,OAAO,cAAc,IAAI,YAAY,gBAAgB,CAAC,CACvD,CAED,SAAU,CACR,KAAK,WAAW,QAAQ,CAACD,EAAKE,IAAU,CACtC,MAAMC,EAAQ,KAAK,aAAaD,CAAK,EAEjCA,IAAU,KAAK,OACjBC,EAAM,UAAU,OAAO,QAAQ,EAC/BH,EAAI,UAAU,OAAO,GAAG,KAAK,kBAAkB,EAC/CA,EAAI,UAAU,IAAI,GAAG,KAAK,gBAAgB,EAItCA,EAAI,KACN,SAAS,KAAOA,EAAI,MAGtBG,EAAM,UAAU,IAAI,QAAQ,EAC5BH,EAAI,UAAU,OAAO,GAAG,KAAK,gBAAgB,EAC7CA,EAAI,UAAU,IAAI,GAAG,KAAK,kBAAkB,EAEpD,CAAK,CACF,CAED,IAAI,OAAQ,CACV,OAAO,SAAS,KAAK,KAAK,IAAI,OAAO,GAAK,CAAC,CAC5C,CAED,IAAI,MAAMI,EAAO,CACf,KAAK,KAAK,IAAI,QAASA,GAAS,EAAIA,EAAQ,CAAC,EAC7C,KAAK,QAAO,CACb,CAED,IAAI,QAAS,CACX,OAAO,SAAS,IAAI,MAAM,GAAG,EAAE,OAAS,EACpC,SAAS,IAAI,MAAM,GAAG,EAAE,CAAC,EACzB,IACL,CACH,CArEEC,EADkBP,EACX,UAAU,CAAC,MAAO,OAAO"}