Sha256: 07f4330ecbad1f2d90395b5e722e3a24f8b619a671379757bc0223356c4fc67e
Contents?: true
Size: 798 Bytes
Versions: 30
Compression:
Stored size: 798 Bytes
Contents
import { Controller } from "@hotwired/stimulus" export default class extends Controller { static targets = [ "dependee", "dependant" ] connect() { this.#checkDependee() } check({ target }) { target === this.dependeeTarget ? this.#checkDependants() : this.#checkDependee() } #checkDependants() { this.dependantTargets.forEach(e => e.checked = this.dependeeTarget.checked) } #checkDependee() { this.dependeeTarget.checked = this.#allChecked this.dependeeTarget.indeterminate = this.#indeterminate } get #indeterminate() { return this.#atLeastOneChecked && !this.#allChecked } get #atLeastOneChecked() { return this.dependantTargets.some(e => e.checked) } get #allChecked() { return this.dependantTargets.every(e => e.checked) } }
Version data entries
30 entries across 30 versions & 1 rubygems