Provide a multi-select workflow using a select element as the input mechanism.

<multi-select name="select-many-things">
<optgroup label="Basic Options">
<option value="foo">Foo</option>
<option value="bar">Bar</option>
<option value="baz">Baz</option>
</optgroup>
<optgroup label="Advanced Options">
<option value="fizz">Fizz</option>
<option value="buzz">Buzz</option>
</optgroup>
</multi-select>

Hierarchy (View Summary)

Properties

_value: Set<any> = ...
_choices: Record<string, string> = {}

An object which maps option values to displayed labels.

_internals: ElementInternals

Attached ElementInternals which provides form handling functionality.

_options: (HTMLOptionElement | HTMLOptGroupElement)[] = []

Predefined elements which were defined in the original HTML.

_primaryInput: HTMLElement

The primary input (if any). Used to determine what element should receive focus when an associated label is clicked on.

formAssociated: boolean = true

Declare that this custom element provides form element functionality.

observedAttributes: string[] = ...

Attributes requiring change notifications

tagName: string = "multi-select"

Accessors

  • get disabled(): boolean

    Is this element disabled?

    Returns boolean

  • get editable(): boolean

    Is this field editable? The field can be neither disabled nor readonly.

    Returns boolean

  • get form(): HTMLFormElement

    The form this element belongs to.

    Returns HTMLFormElement

  • get name(): string

    The input element name.

    Returns string

Methods

  • Internal

    Apply key attributes on the containing custom HTML element to input elements contained within it.

    Parameters

    • input: HTMLElement

    Returns void

  • Fire a callback on change to an observed attribute.

    Parameters

    • attrName: string

      The name of the attribute

    • oldValue: null | string

      The old value: null indicates the attribute was not present.

    • newValue: null | string

      The new value: null indicates the attribute is removed.

    Returns void

  • Mark a choice as selected.

    Parameters

    • value: string

      The value to add to the chosen set

    Returns void

  • Mark a choice as un-selected.

    Parameters

    • value: string

      The value to delete from the chosen set

    Returns void

  • Protected

    Special handling when the custom element is clicked. This should be implemented to transfer focus to an appropriate internal element.

    Parameters

    • event: PointerEvent

    Returns void