Sha256: 134c136123289e670b3b7ab18b770f2e8c0f9eee37bb5723ea9139c90346b9cd
Contents?: true
Size: 935 Bytes
Versions: 4
Compression:
Stored size: 935 Bytes
Contents
import { Controller } from "@hotwired/stimulus"; export default class extends Controller { static classes = ["active"]; static targets = ["button", "tab"]; static values = { defaultTab: String }; connect() { this.tabTargets.map((tab) => { if (tab.id != this.defaultTabValue) { tab.hidden = true; } }); this.buttonTargets.find((button) => { if (button.id === this.defaultTabValue) { button.classList.add(...this.activeClasses); } }); } select(event) { let selectedTab = this.tabTargets.find( (element) => element.id === event.currentTarget.id ); if (selectedTab.hidden) { this.tabTargets.map((tab) => (tab.hidden = true)); this.buttonTargets.map((button) => button.classList.remove(...this.activeClasses) ); selectedTab.hidden = false; event.currentTarget.classList.add(...this.activeClasses); } } }
Version data entries
4 entries across 4 versions & 1 rubygems