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.
Peça de Lego Interna

O br-select-list é um subcomponente interno do ecossistema Select, responsável pela lista suspensa virtualizada. O br-select injeta nele uma coleção de dados pela prop options; a lista cria internamente apenas a janela visível de br-select-option. Essa prop da lista é um contrato de composição e não é a API de opções do br-select.

Na quase totalidade das aplicações, utilize diretamente o componente principal <br-select>, que já orquestra a lista, o campo de acionamento, a seleção, o foco, o ARIA e o formulário. Para fornecer opções, use br-select-option no slot para conteúdo fixo ou setOptions() para dados dinâmicos/remotos.

Consulte O Conceito Lego no Select para entender os papéis e quando montar componentes separadamente.

Visão Geral​

Subcomponente de lista virtualizada de opções, projetado para renderizar o conjunto de escolhas do br-select.

Papel na composição​

  • Atua como o painel suspenso (popup listbox) que exibe os itens br-select-option.
  • Implementa virtualização de itens para oferecer alta performance mesmo em listas extensas com centenas ou milhares de opções.
  • Mantém o posicionamento flutuante e controla a rolagem de visualização do item ativo em navegação por teclado.

Regra de uso e relacionamento​

Gerenciado exclusivamente pelo componente pai br-select, que injeta a coleção normalizada em options, controla o estado de exibição (aberto/fechado), a seleção múltipla e o índice ativo. A prop options desta lista é um contrato interno de composição e não substitui a API de opções do br-select. A lista cria internamente elementos br-select-option para a janela virtualizada, em vez de exibir diretamente os filhos declarados no slot do pai. Não utilize br-select-list como controle autônomo de formulário, pois ele não possui associação nativa com formulários (formAssociated) nem campo de acionamento próprio.

Para a documentação completa de design, consulte o Design System do GovBR.

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 e do indicador de carregamento.
Aceita small, medium ou large. Valores inválidos usam medium.
Tipo"large" | "medium" | "small"
Valor padrão'medium'

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

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.

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---

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-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