- When
requestDebounceDelay
is set to 0, a request is sent immediately only when input length reachesrequestMinInputLength
, but not on further typing beyond the minimum.
- Added new function to enable sending a request on initialising the select.
- New update option to trigger msg on keydown event on input.
- Menu is now slightly more biased towards opening below the input rather than above.
- Change to
view
/toElement
. The attributes and config record are now provided intoElement
rather thanview
. - Changed how requests work in updateWith. The
onRequestResponse
msg is no longer exposed. Instead the function/Effect passed toSelect.request
is provided a tagger with which to tag the response.
- OptionState constructors are now exposed, meaning it's now actually possible to provide a custom option element.
- Fixed bug where selecting an item on tab key, then focusing back and pressing tab again would select the first item.
- Fixed a potential issue related to previous filtering optimisations where filtering could run more than necessary if items were set in view instead of init.
- After pressing the clear button if any, focus will go to the input.
- More filtering optimisations. Prevented case where filtering would still run on DOM updates if the input or items were changed programatically, such as when updated by a request.
- Optimised filtering. Previously filtering ran every time the virtual DOM re-rendered the select. This caused performance issues with large lists of items. Now the filter only runs when the input or options are changed.
- Filter startsWithThenContains now uses a faster implementation.
- Added withMinInputLength to only show items if a minimum number of characters is typed into the input.
- Changed updateWithRequest to updateWith to allow more configuration of update.
- New update options:
onSelectedChanged
,onInput
,onFocus
andonLoseFocus
allow triggering your messages from update functions. withSelectOnTab
enables configuring whether the currently highlighted option is selected on pressing tab.defaultOptionElement
provides a simpler way to change how the text label shows for an option if you want to keep the default option styling.
- The currently selected item should scroll into view when the input if focused.
- Slightly darkened the selected colour of the default option element.
- Added Select.isFocused