This commit is contained in:
Jorge Manrubia
2025-09-28 13:32:23 +02:00
parent 7209c4ced7
commit b5dd91f4a4
@@ -5,8 +5,8 @@ export default class extends Controller {
static targets = [ "column", "button" ]
toggle({ target }) {
const clickedColumn = target.closest('[data-collapsible-columns-target="column"]')
this.#expandOnly(clickedColumn);
const column = target.closest('[data-collapsible-columns-target="column"]')
this.#toggleColumn(column);
}
preventToggle(event) {
@@ -15,9 +15,14 @@ export default class extends Controller {
}
}
#expandOnly(clickedColumn) {
this.#collapseAllExcept(clickedColumn);
this.#expand(clickedColumn)
#toggleColumn(column) {
this.#collapseAllExcept(column)
if (this.#isCollapsed(column)) {
this.#expand(column)
} else {
this.#collapse(column)
}
}
#collapseAllExcept(clickedColumn) {
@@ -28,6 +33,10 @@ export default class extends Controller {
})
}
#isCollapsed(column) {
return column.classList.contains(this.collapsedClass)
}
#collapse(column) {
this.#buttonFor(column).setAttribute("aria-expanded", "false")
column.classList.add(this.collapsedClass)