About the indeterminate-checkbox category

indeterminate-checkbox: overrides addValueChangeListener method to extend the given listener with custom logic to handle the indeterminate state.

There can only be 1 active valueChangeListener at any time. Please never remove() a listener Registration, instead you can call indeterminateCheckbox.addValueChangeListener(null). This makes sure the custom listener logic that handles indeterminate state is never lost.

When adding your own ValueChangeListener, one should always keep in mind to first check indeterminateCheckbox.isIndeterminate() before event.getValue(), because when the checkbox appears indeterminate, the underlying value is not null but rather false (because null value is not supported)