Ir para o conteúdo principal
WBC - GovBR-DS
Copiar página como Markdown para IA

Select List

Componente estável e recomendada para novos projetos.
Anatomia, uso, comportamento visual e recomendações conceituais são mantidos pelo Padrão Digital de Governo. Esta página documenta a implementação Web Components e sua API executável.
Subcomponente de Composição

O br-select-list é o subcomponente responsável pela renderização da lista suspensa virtualizada de opções. É orquestrado internamente pelo componente principal <br-select>.

Visão Geral​

Painel suspenso com lista virtualizada do br-select.

É gerenciado internamente pelo br-select para exibir as opções com alta performance, mesmo em listas grandes. Não é necessário utilizá-lo de forma avulsa.

Propriedades​

activeOptionIndex​

Atributoactive-option-index
DescriçãoÍndice da opção atualmente ativa para navegação por teclado.
Deve ser um inteiro maior ou igual a -1; valores inválidos usam -1.
ObservaçõesEsse valor é usado para refletir visualmente o foco lógico da lista.
Tiponumber
Valor padrão-1

density​

Atributodensity
DescriçãoDefine a densidade visual da lista, das opções regulares e do indicador de carregamento.
A opção sintética de selecionar todos permanece com densidade small.
Aceita small, medium ou large. Valores inválidos usam medium.
Tipo"large" | "medium" | "small"
Valor padrão'medium'

hideDividers​

Atributohide-dividers
DescriçãoOculta os divisores entre opções consecutivas, sem alterar a altura das linhas.
Tipoboolean
Valor padrãofalse

itemHeight​

Atributoitem-height
DescriçãoInforma a altura base usada no cálculo de posicionamento das opções.
Deve ser um número finito positivo; valores inválidos usam 56.
Tiponumber
Valor padrão56

loading​

Atributoloading
DescriçãoIndica que os resultados remotos estão sendo carregados.
Tipoboolean
Valor padrãofalse

options​

Atributo---
DescriçãoColeção de opções exibidas pela lista.
TipoSelectOptionData[]
Valor padrão[]

overscan​

Atributooverscan
DescriçãoDefine quantas opções extras são renderizadas fora da viewport quando o virtual scroll está ativo.
Deve ser um inteiro não negativo; valores inválidos usam 0.
Tiponumber
Valor padrão0

searchMode​

Atributosearch-mode
DescriçãoDefine se searchTerm filtra as opções (local) ou se as opções já chegam
filtradas pelo servidor (remote). Nos dois modos, um termo sem resultados
exibe a mensagem de lista vazia. Valores inválidos usam local.
Tipo"local" | "remote"
Valor padrão'local'

searchTerm​

Atributosearch-term
DescriçãoTermo usado para filtrar opções por rótulo ou valor.
Tipostring
Valor padrão''

selectAllLabel​

Atributoselect-all-label
DescriçãoRótulo apresentado para a ação de selecionar todos no modo múltiplo.
Tipostring
Valor padrãoSelectList.SELECT_ALL_LABEL

unselectAllLabel​

Atributounselect-all-label
DescriçãoRótulo apresentado quando todas as opções já estão selecionadas no modo múltiplo.
Tipostring
Valor padrãoSelectList.DESELECT_ALL_LABEL

visibleItems​

Atributovisible-items
DescriçãoDefine quantas linhas visuais permanecem visíveis na viewport da lista.
Cabeçalhos de grupo também ocupam uma linha quando existem.
Deve ser um inteiro positivo; valores inválidos usam 6.
Tiponumber
Valor padrão6

Slots​

NomeDescrição
"loading"Indicador exibido enquanto resultados remotos são carregados. Padrão: spinner com o texto "Pesquisando…".

Métodos​

close​

DescriçãoFecha a lista de opções.
Assinaturaclose() => Promise<void>
Parâmetros---

focusOption​

DescriçãoGarante visibilidade e foco para uma opção específica.
AssinaturafocusOption(index: number) => Promise<boolean>
Parâmetrosindex: Índice lógico da opção alvo.

getOptions​

DescriçãoRetorna uma cópia das opções atualmente controladas pela lista.
AssinaturagetOptions() => Promise<SelectOptionData[]>
Parâmetros---

open​

DescriçãoAbre a lista e agenda a medição das opções quando necessário.
Assinaturaopen() => Promise<void>
Parâmetros---

revealOption​

DescriçãoTorna o item ativo visível sem retirar o foco do campo.
AssinaturarevealOption(index: number) => Promise<boolean>
Parâmetrosindex:

scrollFirstSelectedOptionToTop​

DescriçãoPosiciona no topo a primeira opção selecionada na ordem visual da lista.
A opção auxiliar de selecionar tudo não participa dessa escolha.
AssinaturascrollFirstSelectedOptionToTop() => Promise<boolean>
Parâmetros---

scrollOptionToTop​

DescriçãoPosiciona uma opção no topo da viewport virtual, respeitando o limite final da lista.
AssinaturascrollOptionToTop(index: number) => Promise<boolean>
Parâmetrosindex: Índice lógico da opção alvo.

setMultiple​

DescriçãoAlterna a lista entre modo simples e múltiplo.
AssinaturasetMultiple(isMultiple: boolean) => Promise<void>
ParâmetrosisMultiple: Define se a lista deve operar em seleção múltipla.

setOption​

DescriçãoAdiciona ou atualiza uma única opção na coleção atual.
AssinaturasetOption(option: SelectOptionData) => Promise<void>
Parâmetrosoption: Opção que deve ser persistida na lista.

setOptionSelected​

DescriçãoAciona a seleção programática de uma opção específica.
AssinaturasetOptionSelected(index: number, selected?: boolean) => Promise<boolean>
Parâmetrosindex: Índice lógico da opção alvo.
selected: Estado desejado para a opção. Quando omitido, a própria opção alterna o valor atual.

setOptions​

DescriçãoSubstitui todas as opções renderizadas pela lista.
AssinaturasetOptions(options: SelectOptionData[]) => Promise<void>
Parâmetrosoptions: Nova coleção de opções normalizadas.

setSearchTerm​

DescriçãoAtualiza o termo de busca e reinicia a janela virtual no topo.
AssinaturasetSearchTerm(term: string) => Promise<void>
Parâmetrosterm: Termo que deve filtrar a coleção. String vazia restaura todas as opções.

CSS Shadow Parts​

NomeDescrição
"empty-option"
"list"Contêiner visual da lista virtualizada.
"loading"Área do indicador de carregamento.
"option-divider"
"option-group"Cabeçalho visual de um grupo de opções.

Dependências​

Componente pai​

Usado por​

Depende de​

Gráfico​

Migração para <br-select-list>​

Na 1.x, listas simples e múltiplas eram implementadas separadamente por br-select-simple-list e br-select-multiple-list. Na 2.x, br-select-list reúne os dois modos e é coordenado por br-select.

Não troque os elementos antigos diretamente pelo novo subcomponente. Migre a configuração para o pai:

<br-select label="Serviços" multiple>
<br-select-option value="um" label="Serviço um"></br-select-option>
<br-select-option value="dois" label="Serviço dois"></br-select-option>
</br-select>

Em composições avançadas, a prop options do br-select-list define a coleção normalizada, setMultiple() alterna o modo, searchTerm filtra a lista e visibleItems, itemHeight e overscan ajustam a janela virtual. Essa prop é um contrato interno da lista e não deve ser confundida com a prop options do br-select. No uso normal, informe opções fixas com br-select-option no slot do pai ou use setOptions() no br-select para dados dinâmicos/remotos. A aplicação só deve coordenar abertura, foco e seleção manualmente quando realmente montar uma composição própria.

Comece aquiComponentesQuickstartsSobre o projetoRepositório GitLabVersõesDiscordGovBR-DSFAQWikiRedefinir cookies