Skip to main content

Your opinion matters! Together with you, we want to continuously improve KoliBri. Share your ideas, wishes, or suggestions—quickly and easily.

Select

Synonyms: Datalist, Dropdown

The Select component creates a selection list from which one or more predefined options can be selected.

Construction

Code

<kol-select _options="[{'label':'Herr','value':'Mr.'},{'label':'Frau','value':'Mrs.'},{'label':'Firma','value':'Company'}]" _value="Mrs."> Auswahlfeld </kol-select>
<kol-select _options="[{'label':'Herr','value':'Mr.'},{'label':'Frau','value':'Mrs.'},{'label':'Firma','value':'Company'}]" _multiple _value="['Mr.','Company']">
Auswahlfeld (Mehrfachauswahl)
</kol-select>
<kol-select
_options="[{'label':'Herr','value':'Mr.'},{'label':'Frau','value':'Mrs.'},{'label':'Firma','value':'Company'},{'label':'Herr','value':'Mr2'},{'label':'Frau','value':'Mrs2'},{'label':'Firma','value':'Company2'}]"
_rows="4"
_value="Mrs."
>
Auswahlfeld mit _rows
</kol-select>

Events

For the handling of events or callbacks, see .

EventtriggerValue
clickInput field is clicked-
focusInput field is focused-
blurInput field loses focus-
inputOption is selectedvalue attribute of option
changeOption is selectedvalue attribute of option

Example

Auswahlfeld

Selection field (multiple selection)

Auswahlfeld mit rows

Usage

The choices are passed to the component as an object or JSON string via the _options attribute. The values ​​**label** and value must be specified for each option.

Example of the construction of the JSON object:

[
{ "label": "Herr", "value": "Mr." },
{ "label": "Frau", "value": "Mrs." },
{ "label": "Firma", "value": "Company" }
]

Specify individual height

Using the _rows attribute you can switch from a selection menu to a selection field (like _multiple) and set its height.

Best practices

  • Do not deactivate options of a select using disabled. Screen readers (tested with NVDA) count deactivated options and thus display a higher number of choices.
  • Often the first option is created as “Please select an option” and then deactivated to force a selection. This approach should be avoided.
  • Hiding a disabled option using aria-hidden is now blocked by modern browsers. If a wildcard option is needed, use a selectable option with an empty value instead.
  • Use validators to check whether a valid option has been chosen instead of disabling options without giving reasons.

Keyboard controls

buttonFunction
TabFocuses the selection field.
EnterOpens or closes the selection list.
Arrow keys (up/down)Changes the activated element in the selection list. This function is also active when the selection list is collapsed. With multiple selection, you must also hold down the shift key to select several entries.

Single-Select-Filter for Select component

When a value is selected, the Select component returns a list (array) with exactly one Return value (in single mode). This can lead to unnecessary effort during further processing. It is easier here to filter the value of the Select component using a SingeSelectFormatter. To do this, insert the following class into the form:

class SingleSelectFormatter extends AbstractFormatter { public format(value: unknown): unknown { return [value]; } public parse(value: unknown): unknown { if
(Array.isArray(value) && value.length > 0) { return value[0]; } return value; } }

Then add the formatter to the Select component:

const singleSelectFormatHandler = new FormatHandler(); singleSelectFormatHandler.formatters.add([new SingleSelectFormatter()]); (this.getInput('kategorie') as
InputControl).setFormatHandler(singleSelectFormatHandler);

Note that the FormatHandler is first imported into the form.

import { xxx..., xxx..., FormatHandler, } from '@leanup/form';

Properties

PropertyAttributeDescriptionTypeDefault
_accessKey_access-keyDefines the key combination that can be used to trigger or focus the component’s interactive element.string | undefinedundefined
_disabled_disabledMakes the element not focusable and ignore all events.boolean | undefinedfalse
_hideLabel_hide-labelHides the caption by default and displays the caption text with a tooltip when the interactive element is focused or the mouse is over it.boolean | undefinedfalse
_hideMsg_hide-msgHides the error message but leaves it in the DOM for the input's aria-describedby.boolean | undefinedfalse
_hint_hintDefines the hint text.string | undefined''
_icons_iconsDefines the icon classnames (e.g. _icons="fa-solid fa-user").string | undefined | { right?: IconOrIconClass | undefined; left?: IconOrIconClass | undefined; }undefined
_id_id[DEPRECATED] Will be removed in the next major version.

Defines the internal ID of the primary component element.
string | undefinedundefined
_label (required)_labelDefines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to false to enable the expert slot.stringundefined
_msg_msgDefines the properties for a message rendered as Alert component.Omit<AlertProps, "_on" | "_hasCloser" | "_label" | "_level" | "_variant"> & { _description: string; } | string | undefinedundefined
_multiple_multipleMakes the input accept multiple inputs.boolean | undefinedfalse
_name_nameDefines the technical name of an input field.string | undefinedundefined
_on--Gibt die EventCallback-Funktionen für das Input-Event an.InputTypeOnBlur & InputTypeOnClick & InputTypeOnChange & InputTypeOnFocus & InputTypeOnInput & InputTypeOnKeyDown | undefinedundefined
_options (required)_optionsOptions the user can choose from, also supporting Optgroup.(Option<StencilUnknown> | Optgroup<StencilUnknown>)[] | stringundefined
_required_requiredMakes the input element required.boolean | undefinedfalse
_rows_rowsDefines how many rows of options should be visible at the same time.number | undefinedundefined
_shortKey_short-keyAdds a visual shortcut hint after the label and instructs the screen reader to read the shortcut aloud.string | undefinedundefined
_tabIndex_tab-indexDefines which tab-index the primary element of the component has. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)number | undefinedundefined
_tooltipAlign_tooltip-alignDefines where to show the Tooltip preferably: top, right, bottom or left."bottom" | "left" | "right" | "top" | undefined'top'
_touched_touchedShows if the input was touched by a user.boolean | undefinedfalse
_value_valueDefines the value of the input.StencilUnknown[] | boolean | null | number | object | string | undefinedundefined

Methods

focus

focus() => Promise<void | undefined>

Sets focus on the internal element.

Returns

Type: Promise<void | undefined>

getValue() => Promise<StencilUnknown[] | StencilUnknown>

Returns the current value.

Returns

Type: Promise<StencilUnknown | StencilUnknown[]>

Slots

SlotDescription
Die Beschriftung des Eingabefeldes.

Live editor

Examples