Formulário
MultiSelect
Um select para várias escolhas, mostradas como lista, contagem ou chips, com um filtro opcional.
Testado com WAI-ARIA
Importação
main.ts
import { MultiSelect } from '@vitral/vue';Básico
Value: SP
Chips e filtro
Grupos e um limite de seleção
Tamanhos e estados
API
Lido de packages/vue/src/components/MultiSelect/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| options | any[] | — |
| optionLabel | string | Campo (caminho com pontos) com o texto de uma opção. Sem ele, as opções são mostradas como estão. |
| optionValue | string | Campo com o valor que o v-model reúne. Sem ele, a opção inteira é o valor. |
| optionDisabled | string | — |
| optionGroupLabel | string | Transforma `options` em grupos: este campo é o rótulo de cada grupo… |
| optionGroupChildren | string | …e este, as suas opções. O padrão é `items`. |
| dataKey | string | Compara valores de objeto por este campo em vez de pela estrutura. |
| placeholder | string | — |
| display | 'comma' | 'chip' | Como a escolha é mostrada: uma lista separada por vírgulas (o padrão) ou chips. |
| maxSelectedLabels | number | Acima desse número, o campo diz quantos foram escolhidos em vez de nomeá-los. |
| selectedItemsLabel | string | O que ele diz nesse caso. `{count}`; o padrão é a mensagem de seleção do locale. |
| selectionLimit | number | No máximo esse número pode ser escolhido. |
| showToggleAll | boolean | Mostra a caixa de selecionar tudo no cabeçalho. O padrão é true. |
| filter | boolean | Adiciona uma caixa de busca ao painel. |
| filterPlaceholder | string | — |
| filterFields | string[] | Campos a buscar em vez do rótulo. |
| filterMatchMode | string | Qualquer modo de comparação registrado; por padrão, `contains` sem distinguir acentos nem maiúsculas. |
| resetFilterOnHide | boolean | Esvazia a caixa de busca quando o painel fecha. |
| showClear | boolean | — |
| loading | boolean | — |
| emptyMessage | string | — |
| emptyFilterMessage | string | — |
| disabled | boolean | — |
| invalid | boolean | — |
| size | Size | — |
| variant | InputVariant | — |
| fluid | boolean | — |
| placement | OverlayPlacement | — |
| appendTo | string | `'body'` (o padrão), `'self'` para renderizar no lugar, ou um seletor. |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| change | event: MultiSelectChangeEvent | — |
| selectall-change | event: { originalEvent: Event; checked: boolean } | — |
| show | — | — |
| hide | — | — |
| filter | query: string | — |
| focus | event: FocusEvent | — |
| blur | event: FocusEvent | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| value | (props: { value: unknown[]; options: unknown[]; placeholder?: string }) | O conteúdo do campo. |
| option | (props: { option: unknown; index: number; selected: boolean; focused: boolean }) | — |
| optiongroup | (props: { group: unknown }) | — |
| header | — | — |
| footer | — | — |
| empty | — | — |
| dropdownicon | (props: { open: boolean }) | — |