Skip to content

Commit

Permalink
expose and document AutocompleteInput.search_strategy (#5832)
Browse files Browse the repository at this point in the history
  • Loading branch information
maximlt authored Nov 7, 2023
1 parent 0169933 commit f4a51e1
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 16 deletions.
44 changes: 28 additions & 16 deletions examples/reference/widgets/AutocompleteInput.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import panel as pn\n",
Expand All @@ -14,7 +16,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The ``AutocompleteInput`` widget allows selecting a ``value`` from a list or dictionary of ``options`` by entering the value into an auto-completing text field. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [``RadioBoxGroup``](RadioBoxGroup.ipynb), [``Select``](Select.ipynb) and [``DiscreteSlider``](DiscreteSlider.ipynb) widgets.\n",
"The `AutocompleteInput` widget allows selecting a `value` from a list or dictionary of `options` by entering the value into an auto-completing text field. It falls into the broad category of single-value, option-selection widgets that provide a compatible API and include the [`RadioBoxGroup`](RadioBoxGroup.ipynb), [`Select`](Select.ipynb) and [`DiscreteSlider`](DiscreteSlider.ipynb) widgets.\n",
"\n",
"Discover more on using widgets to add interactivity to your applications in the [how-to guides on interactivity](../how_to/interactivity/index.md). Alternatively, learn [how to set up callbacks and (JS-)links between parameters](../../how_to/links/index.md) or [how to use them as part of declarative UIs with Param](../../how_to/param/index.html).\n",
"\n",
Expand All @@ -24,30 +26,34 @@
"\n",
"##### Core\n",
"\n",
"* **``options``** (list): A list of options to select from\n",
"* **``restrict``** (boolean): Set to False in order to allow users to enter text that is not present in the options list.\n",
"* **``value``** (str): The current value updated when pressing <enter> key; must be one of the option values if restrict=True.\n",
"* **``value_input``** (str): The current value updated on every key press.\n",
"* **``case_sensitive``** (boolean): Enable or disable case sensitivity for matching completions.\n",
"* **`options`** (list): A list of options to select from\n",
"* **`restrict`** (boolean, `default=True`): Set to False in order to allow users to enter text that is not present in the options list.\n",
"* **`search_strategy`** (str): Define how to search the list of completion strings. The default option `\"starts_with\"` means that the user's text must match the start of a completion string. Using `\"includes\"` means that the user's text can match any substring of a completion string.\n",
"* **`value`** (str): The current value updated when pressing <enter> key; must be one of the option values if restrict=True.\n",
"* **`value_input`** (str): The current value updated on every key press.\n",
"* **`case_sensitive`** (boolean, `default=True`): Enable or disable case sensitivity for matching completions.\n",
"\n",
"##### Display\n",
"\n",
"* **``disabled``** (boolean): Whether the widget is editable\n",
"* **``name``** (str): The title of the widget\n",
"* **``placeholder``** (str): A placeholder string displayed when no option is selected\n",
"* **``min_characters``** (int): The number of characters a user must type before completions are presented.\n",
"* **`disabled`** (boolean): Whether the widget is editable\n",
"* **`name`** (str): The title of the widget\n",
"* **`placeholder`** (str): A placeholder string displayed when no option is selected\n",
"* **`min_characters`** (int, `default=2`): The number of characters a user must type before completions are presented.\n",
"\n",
"___"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"autocomplete = pn.widgets.AutocompleteInput(\n",
" name='Autocomplete Input', options=['Biology', 'Chemistry', 'Physics'],\n",
" case_sensitive=False, search_strategy='includes',\n",
" placeholder='Write something here')\n",
"\n",
"pn.Row(autocomplete, height=100)"
Expand All @@ -57,13 +63,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Like most other widgets, ``AutocompleteInput`` has a value parameter that can be accessed or set:"
"Like most other widgets, `AutocompleteInput` has a value parameter that can be accessed or set:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"autocomplete.value"
Expand All @@ -79,7 +87,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"not_restricted = autocomplete.clone(value='Mathematics', restrict=False)\n",
Expand All @@ -89,7 +99,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"not_restricted.value"
Expand Down
7 changes: 7 additions & 0 deletions panel/widgets/select.py
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,13 @@ class AutocompleteInput(Widget):
Set to False in order to allow users to enter text that is not
present in the list of completion strings.""")

search_strategy = param.Selector(default='starts_with',
objects=['starts_with', 'includes'], doc="""
Define how to search the list of completion strings. The default option
`"starts_with"` means that the user's text must match the start of a
completion string. Using `"includes"` means that the user's text can
match any substring of a completion string.""")

value = param.String(default='', allow_None=True, doc="""
Initial or entered text value updated when <enter> key is pressed.""")

Expand Down

0 comments on commit f4a51e1

Please sign in to comment.