reblocks-typeahead
2025-06-22
A Reblocks widget implementing typeahead search.
Upstream URL
Author
License
reblocks-typeahead - A Reblocks widget implementing typeahead search.
REBLOCKS-TYPEAHEAD ASDF System Details
- Description: A Reblocks widget implementing typeahead search.
 - Licence: Unlicense
 - Author: Alexander Artemenko svetlyak.40wt@gmail.com
 - Homepage: https://40ants.com/reblocks-typeahead/
 - Bug tracker: https://github.com/40ants/reblocks-typeahead/issues
 - Source control: GIT
 - Depends on: parenscript, reblocks, reblocks-lass, reblocks-parenscript, reblocks-ui
 
Installation
You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org:
(ql-dist:install-dist "http://dist.ultralisp.org/"
                      :prompt nil)
(ql:quickload :reblocks-typeahead)
Usage

To use this library, you need to inherit your widget from reblocks-typeahead:typeahead-widget
and to provide at least two methods:
reblocks-typeahead:execute-querywhich will respond with data for dropdownreblocks-typeahead:on-selectwhich will be executed when user has choosen an item from dropdown menu.
See this example application's code to learn how these methods can be implemented.
API
REBLOCKS-TYPEAHEAD
package reblocks-typeahead
Classes
TYPEAHEAD-RESULTS
class reblocks-typeahead:typeahead-results (ui-widget)
Readers
reader reblocks-typeahead:results-items (typeahead-results) (= nil)
Accessors
accessor reblocks-typeahead:results-items (typeahead-results) (= nil)
TYPEAHEAD-WIDGET
class reblocks-typeahead:typeahead-widget (ui-widget)
Base class for custom typeahead widgets.
Define you own widget class based on the typeahead-widget
and also define methods for following generic-functions.
Mandatory:
Optional:
Readers
reader reblocks-typeahead:input-value (typeahead-widget) (:value = nil)
reader reblocks-typeahead:placeholder (typeahead-widget) (:placeholder = nil)
reader reblocks-typeahead:typeahead-results (typeahead-widget) (= (make-instance 'typeahead-results))
Accessors
accessor reblocks-typeahead:input-value (typeahead-widget) (:value = nil)
accessor reblocks-typeahead:placeholder (typeahead-widget) (:placeholder = nil)
Generics
generic-function reblocks-typeahead:execute-query widget query
A method for this generic-function should return a list of widgets to be shown in reponse to the given text query.
This method should return a list of widgets.
To make simple widgets out of strings, you can use
reblocks/widgets/string-widget:make-string-widget function.
generic-function reblocks-typeahead:hide-results widget
Hides dropdown widget. Call this method from a custom on-select or on-empty-selection methods.
generic-function reblocks-typeahead:on-empty-selection widget query
Called when user entered some query but didn't selected any item, just pressed Enter.
generic-function reblocks-typeahead:on-select widget item
Called when user selected an item in the typeahead results.
generic-function reblocks-typeahead:process-typeahead-choice widget query selected-item-idx
Calls either on-select or on-empty-selection depending on if user has choosen an item from the dropdown.
generic-function reblocks-typeahead:update-results widget query
Calls execute-query generic-function and updates the dropdown widget.