You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have written an extension to IronMultiSelectableBehavior that implements a more general and traditional form of multi-select, similar to how multi-select works in most desktop applications. The behavior is as follows:
Tapping an unselected element with no modifier selects it and deselects all other elements.
Tapping a selected element with no modifier deselects all other elements.
Tapping an element while holding shift selects all elements between it and the most recently selected other element, inclusive, and leaves all other selected elements alone.
Tapping an unselected element while holding control or command selects it and leaves all other selected elements alone.
Tapping a selected element while holding control of command deselects it and leaves all other selected elements alone.
My implementation is small (43 source lines) and works by extending IronMultiSelectableBehavior and overriding two functions, _activateHandler and _toggleSelected. The _activateHandler implementation just records the keyboard modifiers and then calls IronMultiSelectableBehavior's version. _toggleSelected is where the actual logic is implemented.
My implementation does not support a "mixed" mode where an unmodified tap will toggle the selection state like IronMultiSelectableBehavior, but a shift-click will extend the selection. Such a thing would be relatively easy to add if it were desired, but it would increase the complexity somewhat.
I think this would be really awesome! We might have to go with the "mixed" mode you mentioned as the default since we'd be introducing a breaking change otherwise, but allowing the regular <select multiple> style wouldn't be a problem if it was behind a property.
I have written an extension to
IronMultiSelectableBehavior
that implements a more general and traditional form of multi-select, similar to how multi-select works in most desktop applications. The behavior is as follows:My implementation is small (43 source lines) and works by extending
IronMultiSelectableBehavior
and overriding two functions,_activateHandler
and_toggleSelected
. The_activateHandler
implementation just records the keyboard modifiers and then callsIronMultiSelectableBehavior
's version._toggleSelected
is where the actual logic is implemented.My implementation does not support a "mixed" mode where an unmodified tap will toggle the selection state like
IronMultiSelectableBehavior
, but a shift-click will extend the selection. Such a thing would be relatively easy to add if it were desired, but it would increase the complexity somewhat.This PR would fix #38.
Thoughts?
The text was updated successfully, but these errors were encountered: