docs_vue2/one/docs/en-US/components/dropdown.md
2022-01-24 18:53:52 +08:00

6.6 KiB

Dropdown

:::tip Dropdown can be used with embedded Option or OptionGroup. :::

Demos

Style variants

Available style variants for the ui prop: primary / text.

Size variants

Available size values for the ui prop: xs / s / m / l.

Embedded options

Can be used with embedded OptionGroups & Options.

Searchable dropdown

Usingsearchable prop to make the component support search functionality.

Disabled dropdown

Use the disabled property in options items to disable single option.

Trigger and split

Use the trigger prop to specify when to open the dropdown menu. Use the split prop to separate command button and dropdown button.

API

Props

Name Type Default Description
ui string= - [^ui]
options Array<Object>= [] [^options]
label string - The descriptive label of the dropdown button.
trigger string= 'click' When to trigger the dropdown to open. Available values are 'click' / 'hover'.
split boolean= false Whether to split the dropdown button into a command button and a toggle button for the dropdown layer.
expanded boolean= false [^expanded]
disabled boolean= false Whether the dropdown is disabled.
overlay-class `string Array Object=`
overlay-style `string Array Object=`

^^^ui Style variants.

+++Enum values

Value Description
primary Primary style.
text Text style.
xs Extra small.
s Small.
m Medium.
l Large.
^^^

^^^options The list of options with the option type being {label, value, dropdown, disabled, ...}.

+++Properties

Name Type Description
label string The descriptive label of the option.
value * The value of the option.
options Array<Object>= The child options of current option. The item type is the same as the items of the options prop.
disabled boolean= Whether the option is disabled.
+++
^^^

^^^expanded :::badges .sync :::

Whether the dropdown menu is expanded. ^^^

Slots

Name Description
default The content of the options dropdown layer. Can be used to place Options or OptionGroupss when the options prop is not specified.
before The content before the options in the dropdown layer.
after The content after the options in the dropdown layer.
label [^slot-label]
group-label [^slot-group-label]
option-label [^slot-option-label]
option [^slot-option]
trigger [^slot-trigger]

^^^slot-label The content of the select button. Displays the label prop by default.

+++Slot props

Name Type Description
label string The descriptive label of the dropdown option.
+++
^^^

^^^slot-group-label The label text of each option group (option with child options). Displays the label of the option by default.

+++Slot props

Name Type Description
label string The descriptive label of the option group.
disabled boolean= Whether the option group is disabled.
+++

Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via v-bind. ^^^

^^^slot-option-label The label text of each option (option without child options). Displays the label of the option by default.

+++Slot props

Name Type Description
label string The descriptive label of the option.
value * The value of the option.
selected boolean Whether the the option is selected.
disabled boolean= Whether the option is disabled.
+++

Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via v-bind. ^^^

^^^slot-option The entire content area of each option (option without child options). Displays the default content of Options component by default.

+++Slot props

Name Type Description
label string The descriptive label of the option.
value * The value of the option.
selected boolean Whether the the option is selected.
disabled boolean= Whether the option is disabled.
+++

Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via v-bind. ^^^

^^^slot-trigger The entire drop-down trigger area. Displays the dropdown button by default.

+++Slot props

Name Type Description
attrs Object Attributes that need to be output to the trigger element, including aria-* / disabled, etc., can be output using v-bind="attrs".
handlers Object [^handlers-desc]
expanded boolean Whether the dropdown menu is expanded or not.
toggle function(force?: boolean): void Used to toggle the expanded state of the dropdown menu.
+++
^^^

^^^handlers-desc Event listeners that need to be bound to the trigger element, can be output using v-on="handlers".

:::tip The element used to bind handlers needs to support focus acquisition so that various keyboard interactions can still be triggered properly. ::: ^^^

Events

Name Description
click Triggered when an option is clicked. The callback parameter list is (value: *=). value is the value property of the option being clicked. Also triggered when split is true and the command button is clicked, in this case there won't be a value argument.
toggle Triggered when the expanded state is going to change. The callback parameter list is (expanded: boolean). expanded denotes whether the dropdown menu is to be expanded or collapsed.

Icons

Name Description
expand Expand the dropdown layer.
collapse Collapse the dropdown layer.