InputTag
Um campo cujo valor é uma lista de strings curtas, cada uma mostrada como uma tag removível, adicionadas com Enter, um separador ou uma colagem.
Importação
import { InputTag } from '@vitral/vue';Básico
Digite e pressione Enter, ou digite uma vírgula. Backspace numa caixa vazia remove a última tag.
Verificadas ao serem adicionadas
`validate` recusa uma tag e deixa o texto na caixa para ser corrigido; `reject` diz o que aconteceu, para que o campo possa se explicar. Vários separadores são permitidos: este aceita vírgula, ponto e vírgula ou espaço.
Um máximo
`max` para a lista onde ela deve parar; o que é recusado é informado, em vez de descartado em silêncio.
Tamanhos e estados
A moldura do campo é a compartilhada: os mesmos tamanhos, variantes e estados inválido e desabilitado de qualquer outro input.
API
Lido de packages/vue/src/components/InputTag/types.ts, então diz o que o componente aceita de fato.
Props
| Nome | Tipo | Descrição |
|---|---|---|
| separator | string | readonly string[] | O que encerra uma tag durante a digitação, além do Enter. O padrão é uma vírgula. |
| max | number | Quantas tags o campo aceita. |
| allowDuplicate | boolean | Mantém uma tag que a lista já tem. Desligado por padrão. |
| addOnBlur | boolean | Adiciona o que estiver na caixa quando o foco sai do campo. Ligado por padrão. |
| validate | (tag: string) => boolean | Recusa uma tag: o texto fica na caixa para o leitor corrigir. |
| placeholder | string | — |
| removeIcon | IconProp | — |
| size | Size | — |
| variant | InputVariant | O padrão é o `inputVariant` do plugin. |
| invalid | boolean | — |
| disabled | boolean | — |
| readonly | boolean | — |
| fluid | boolean | — |
| name | string | O nome com que o campo é enviado; as tags vão uma a uma. |
Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.
Emits
| Evento | Payload | Descrição |
|---|---|---|
| add | event: { originalEvent: Event; value: string; tags: string[] } | Uma tag foi adicionada, com Enter, um separador, uma colagem ou no blur. |
| remove | event: { originalEvent: Event; value: string; index: number; tags: string[] } | Uma tag foi retirada, pelo seu botão ou por uma tecla. |
| reject | event: { originalEvent: Event; value: string; reason: 'duplicate' | 'max' | 'invalid' } | Algo foi recusado: a lista estava cheia, a tag já existia, ou `validate` disse não. |
| focus | event: FocusEvent | — |
| blur | event: FocusEvent | — |
Slots
| Nome | Props do slot | Descrição |
|---|---|---|
| tag | (props: { value: string; index: number; remove: (event: Event) => void }) | Substitui o conteúdo de uma tag, dentro da própria caixa da tag. |
| removeicon | (props: { value: string; index: number }) | — |