Sha256: da2f7ce1190ebded3f22557aa27cdf2dc40028e506deffc5fc5670e80d51f27e
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
import ApplicationController from './application_controller' export default class extends ApplicationController { static targets = ['checkbox', 'selectAll'] toggle () { this.updateSelectAllState() this.dispatch('change') } toggleAll () { const isChecked = this.selectAllTarget.checked this.checkboxTargets.forEach((checkbox) => { checkbox.checked = isChecked }) this.dispatch('change') } updateSelectAllState () { const checked = this.checked const checkboxes = this.checkboxTargets if (checked.length === checkboxes.length) { // All checked this.selectAllTarget.indeterminate = false this.selectAllTarget.checked = true } else if (checked.length == 0) { // None checked this.selectAllTarget.indeterminate = false this.selectAllTarget.checked = false } else { // Some checked this.selectAllTarget.indeterminate = true } } get checked () { return this.checkboxTargets.filter((checkbox) => checkbox.checked) } get unchecked () { return this.checkboxTargets.filter((checkbox) => !checkbox.checked) } }
Version data entries
3 entries across 3 versions & 1 rubygems