JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 74
  • Score
    100M100P100Q62830F
  • License MIT

Provides two-way binding between a checkbox (or other (custom) DOM elements) and surrounding checkboxes (or other (custom) DOM elements).

Package Exports

  • be-consensual
  • be-consensual/be-consensual.js

Readme

be-consensual

Provides two-way binding between a checkbox (or other (custom) DOM elements) and surrounding checkboxes (or other (custom) DOM elements).

<input type=checkbox be-consensual='{
    "elementSelector": ".selector",
    "onStateSelector": ":checked",
    "offStateSelector": ":not(:checked)",
    "prop": "checked",
    "trueVal": true,
    "falseVal": false,
    "selfProp": "checked",
    "selfTrueVal": true,
    "selfFalseVal": false
}'>

Monitors all elements matching elementSelector within the shadow DOM realm.

Checks if each element matches the onStateSelector. If so, that element is considered "true". If offStateSelector is a match, the element is considered "false". All other matching elements are considered "indeterminate".

If all elements are true, then the element be-consensual adorns is checked. If all elements are false, the target element is unchecked. If a mixture of true / false / indeterminate, then the target element is made indeterminate.

If the element be-consensual is adorning is checked, then all the elements matching the element selector become checked. Likewise with unchecked.

The property to set is configurable (prop), as are the true and false values.