import { Controller } from '@hotwired/stimulus'; export default class extends Controller { static targets = ['hintType', 'awardSection', 'allAwards', 'awardType']; toggleAwardSection() { const awardChecked = this.hintTypeTargets.find( (el) => el.name === 'hint_award' )?.checked; this.awardSectionTarget.style.display = awardChecked ? '' : 'none'; } toggleAllAwards() { const checked = this.allAwardsTarget.checked; this.awardTypeTargets.forEach((el) => { el.checked = checked; }); } syncAllAwards() { const allChecked = this.awardTypeTargets.every((el) => el.checked); this.allAwardsTarget.checked = allChecked; } hintTypeTargetConnected() { this.#bindMinOneChecked(); } #bindMinOneChecked() { this.hintTypeTargets.forEach((el) => { el.addEventListener('change', () => { const checked = this.hintTypeTargets.filter((e) => e.checked); if (checked.length === 0) { el.checked = true; } this.toggleAwardSection(); }); }); } }