Filtrar

Filtragem estruturada no ME usa dois componentes com papéis opostos: a Filter Bar exibe os critérios ativos na barra entre toolbar e tabela; o Filter Search guia a criação de novos critérios em um overlay.

O Filter Search cria filtros; a Filter Bar exibe e gerencia os filtros ativos. Os dois sempre trabalham juntos.

Boas Práticas

A filtragem reduz o esforço de busca ao limitar os resultados a critérios relevantes. O estado dos filtros deve ser transparente e permanecer visível durante toda a navegação.

Quando usar
Em telas com grids ou listas com muitos registros (transações, catálogos, usuários)
Quando o usuário precisa isolar um subconjunto específico por critério, operador e valor
Para salvar e reutilizar combinações de filtros frequentes no sidebar
Quando a busca textual sozinha não é suficiente para a condição desejada
Quando não usar
Em listas com menos de ~10 itens — busca direta resolve
Como substituto de navegação contextual — filtros não são abas
Quando o usuário busca uma resposta semântica — redirecione para o Genius

Filter Bar

Barra persistente entre a toolbar e o conteúdo. Nunca abre overlay — é sempre visível e reflete em tempo real os critérios ativos. Tem CRUD inline sobre os critérios: clicar num critério edita-o direto na barra; o Filter Search só adiciona novos.

Slots

LeadingSlot

Dois DropdownMenu fixos à esquerda. Restringem o escopo da busca (processo, período) sem criar critérios no Filter Bar.

CriterionArea

Área de scroll horizontal com os MeCriterionInput ativos. Cada critério exibe campo + operador + valor com botão × para remoção individual.

ActionButtonsArea

Fixo à direita: i-lucide-plus abre o Filter Search, i-lucide-save salva a combinação como favorito, i-lucide-trash limpa todos os critérios (ButtonError), e i-lucide-ellipsis-vertical abre as configurações da tabela.

É das configurações que sai Editar colunas: um seletor de duas listas (disponíveis ↔ exibidas) para escolher e reordenar quais colunas aparecem. A pessoa molda a tabela à decisão que está tomando — vê só o que importa pra tarefa, sem coluna sobrando.

Filter Search

CommandPalette

Overlay implementado com o CommandPalette do Nuxt UI. Unifica três intenções: busca direta em qualquer registro, aplicação de filtros salvos e construção de filtros em 3 passos (Critério → Operador → Valor).

Zonas

Header

Campo de busca livre + FieldGroup com ações de contexto (⏎ aplicar · × fechar). Aceita texto para busca direta ou para localizar um critério pelo nome.

Slot Filters

Faixa de DropdownMenu para filtrar os próprios critérios disponíveis (por processo, período, módulo) antes de selecionar.

Body

Área principal scrollável. Busca unificada: valor direto de documento, item ou usuário (por ID, nome ou número); filtro salvo; critério para iniciar o fluxo de 3 passos (CommandPaletteItem por linha).


Formas de filtrar

Filtrar no ME não acontece num lugar só. Cada superfície atende uma intenção diferente, e elas são camadas independentes que se somam: o resultado é a lista que satisfaz a sidebar e a Filter Bar e a busca ativos ao mesmo tempo. A Filter Bar e o Filter Search (abaixo) são a forma estruturada; as demais convivem com elas.

Filter Bar

persistente

Critérios estruturados (campo · operador · valor) visíveis e editáveis na barra entre toolbar e tabela. Ficam até serem removidos.

Filter Search

overlay

A entrada que adiciona um critério em 3 passos, busca um registro direto ou aplica um filtro salvo. Fecha ao confirmar.

Facetas da sidebar

recorte

Dimensões prontas num clique: checkbox com contagem, faixas (sliders), pastas em árvore (País/Estado/Cidade — a pasta abre numa lista de checkboxes com contagem) e por status. Listas longas truncam com «Ver mais». Recortam o conjunto sem montar critério.

Favoritos & filtros salvos

pessoal

Recortes que o usuário fixa na sidebar — combinações reaplicáveis num clique, persistentes entre sessões.

Busca rápida

efêmera

Campo textual da toolbar para localizar um registro pelo termo. Não cria critério e é descartada ao sair.

Busca no menu

navegação

Campo "Busque neste menu" no topo da sidebar — filtra os itens do próprio menu (favoritos, gráficos, painéis, filtros salvos), não a lista. Escopo: só o menu lateral.

Escopo de contexto

universo

Dropdowns do LeadingSlot (processo, período) e o switcher (Meu catálogo ↔ Marketplace) restringem o universo antes de qualquer filtro.

Que superfície para cada intenção

Recorte rápido por uma dimensão já prontaFaceta da sidebar
Critério ad-hoc, estruturado e editávelFilter Bar + Filter Search
Achar um registro específico pelo termoBusca rápida / Filter Search
Recorte pessoal recorrenteFavoritos & filtros salvos
Estreitar o universo (base, período)Escopo de contexto
As superfícies são planos distintos: uma faceta da sidebar não vira um critério na Filter Bar — cada uma recorta à sua maneira e o conjunto exibido é a interseção de todas as camadas ativas. Critérios estruturados (Filter Bar/Filter Search) e recortes prontos (sidebar) convivem sem se sobrescrever.

Filter Bar

Base dos filtros no EPROC. Aqui ela aparece no contexto da ação de filtrar; a ficha do componente — anatomia, slots, estados e responsividade — vive em Componentes › Filter Bar.

Filter Bar em contexto — entre toolbar e tabela
1LeadingSlot — dropdowns de contexto, não criam critérios
2CriterionArea — MeCriterionInputs ativos, scroll horizontal
3ActionButtonsArea — Adicionar · Salvar · Limpar (ButtonError)

Mesmo background da toolbar (guide-surface). Separada da tabela por border-b. Apenas a CriterionArea tem scroll horizontal quando excede a largura disponível.

LeadingSlot — dropdowns de contexto

Definição

  • Dois DropdownMenu fixos à esquerda da barra — sempre visíveis
  • Não são critérios — narrowam o escopo de busca sem criar MeCriterionInputs
  • Valor selecionado substitui o label padrão (ex: "Pré-Pedido" em vez de "Todos processos")

Os dois slots

  • Todos os processos — limita ao módulo/processo selecionado
  • Todo período — limita por janela temporal; aceita atalhos de data

Critério

Um critério é uma regra de filtragem composta por três partes obrigatórias. O Campo define qual atributo do registro será avaliado. O Operador define a condição lógica aplicada. O Valor define o parâmetro de comparação. O Filter Search guia a composição nessa ordem, em 3 passos sequenciais.

Status
Campo
Aprovado
Valor
Status = Aprovado
Critério
Exemplos
Status
Igual
Aprovado
Data de Criação
Antes de
31/03/2026
Criado por
Igual
Fagner G. +2
Emergencial
Está Preenchido

MeCriterionInput

Representa um critério ativo na Filter Bar. Cada instância exibe de forma legível o que está sendo filtrado: o campo (ex.: "Aprovado por"), o operador (ex.: "=") e o valor selecionado — com badge +N quando há múltiplas seleções. Qualquer segmento é clicável e abre a edição inline na própria barra (sem reabrir o Filter Search). O botão × remove o critério diretamente, sem confirmação.

Variantes (por tipo de valor), tamanhos e estados do componente: ver Componentes › MeCriterionInput.

1 Campo — abre passo Critério
2 Operador — abre passo Operador
3 Valor — abre passo Valor
4 Remove o critério

ActionButtonsArea — ações globais

Definição

  • FieldGroup de 3 botões fixo à direita da barra
  • Sempre visível, independente do número de critérios
  • O botão Limpar é ButtonError — borda vermelha por ser ação destrutiva

Os 3 botões

  • + — abre Filter Search para criar novo MeCriterionInput
  • i-lucide-save — salva a combinação atual como favorito no sidebar
  • i-lucide-trash — remove todos os critérios ativos (ButtonError)

Operadores disponíveis

OperadorDescriçãoTipos
Igual
Deve ser exatamente igual ao selecionado.Texto · Seleção · Data · Número
Diferente
Deve ser diferente do selecionado.Texto · Seleção · Data · Número
Está Preenchido
O campo deve conter qualquer informação.Todos
Está Vazio
O campo deve estar sem nenhuma informação.Todos
Contém (≥)
Contém pelo menos um dos valores selecionados.Texto · Seleção
Não Contém
Não deve conter os valores selecionados.Texto · Seleção
Maior que
O valor deve ser maior que o informado.Número · Data
Menor que
O valor deve ser menor que o informado.Número · Data
Antes de
Seleciona datas anteriores a um dia específico.Data


Variantes

O filtro não tem o mesmo formato em todo lugar. Na listagem principal de um módulo, a Filter Bar com Filter Search é o padrão completo — critérios persistentes que ficam visíveis durante toda a navegação — e a sidebar oferece, em paralelo, recortes prontos por faceta. Em outros contextos, como dentro de um documento ou num painel lateral, o filtro é mais simples: uma busca direta, sem criar critérios permanentes.

ContextoOnde apareceComponentePersistência
Index / ListagemTela principal de módulo
Filter Bar + Filter Search
Persiste
Sidebar / FacetasColuna de filtros da index
Facetas (checkbox · faixa · pasta)
Persiste
Linhas de documentoDentro de um documento, na grid de itens
UInput com filtro inline
Temporário
Modal / PickerModal de seleção de registro
CommandPalette ou UInput
Temporário
Painel lateralDrawer ou sidebar relacionada
UInput compacto
Temporário
Index / Sidebar

Filtro pela sidebar (facetas)

Na index, a sidebar oferece recortes prontos por dimensão — checkbox com contagem, faixas (sliders), pastas em árvore (a pasta País/Estado/Cidade abre numa lista de checkboxes com contagem, com «Ver mais» quando há muitas opções) e por status — além de Favoritos e Filtros salvos, e o switcher de escopo no topo. Os filtros ativos aparecem na Filter Bar, acima da grid de cards, e o resultado exibido é a interseção do que está aplicado.

Ficha dos tipos de faceta e da sidebar em Estrutura de Index. O recorte persiste durante a navegação; Filtros salvos persistem entre sessões.

Documento

Filtro em linhas de documento

Em documentos com muitas linhas — como uma Ordem de Compra com dezenas de itens — o usuário precisa localizar rapidamente uma linha específica sem sair da tela. Aqui o filtro é local e temporário: funciona como uma busca direta dentro do documento.

UInput com i-lucide-search inline na toolbar, ao lado das ações da grid. Sem MeFilterBar — busca textual simples, local e descartada ao fechar o documento.

Modal / Picker

Filtro em modal de seleção

Quando o usuário precisa escolher um registro dentro de um modal — como selecionar um fornecedor, um produto ou um responsável — a busca acontece diretamente no campo do modal. Não há Filter Bar nem overlay adicional: o objetivo é localizar e confirmar a seleção com o mínimo de passos.

CommandPalette para listas longas com busca ativa. UInput com lista renderizada abaixo quando a seleção é simples. Prefira o CommandPalette quando a busca é o fluxo principal.

Painel lateral

Filtro em painel lateral

Painéis laterais — como drawers e sidebars — frequentemente listam registros relacionados: documentos vinculados, histórico de aprovações, itens de uma categoria. Quando essa lista cresce, um campo de busca compacto no topo do painel resolve a navegação sem empilhar um novo overlay sobre outro.

UInput com size="sm" e leading icon de busca. Sem Filter Bar. A filtragem é local ao painel e não persiste entre sessões.


Feedback

Estados de feedback

Filtro aplicadoCritério aparece na Filter Bar instantaneamente. Lista atualiza sem recarregar a página.
Filtro removido (×)Critério é removido da barra. Lista reverte para o estado sem aquele critério.
Limpar tudoTodos os critérios removidos. Lista volta ao estado sem filtros ativos.
Sem resultadosCommandPalette exibe empty state com 2 saídas: Limpar e alternativa de busca semântica.
Filtro salvoToast neutro confirma o salvamento. Atalho aparece no painel lateral para reuso.
Toast

Use para confirmar que o filtro foi salvo — curto, imediato e sem interromper o fluxo do usuário.

Ex: "Filtro salvo."

Alert

Use quando o filtro salvo deve ser imediatamente acessível — oferece atalho direto para o painel lateral sem navegar.

Ex: "Filtro salvo. Ver filtros →"

Filtro salvo.
CommandPalette

Quando a busca não encontra resultados, o CommandPalette exibe empty state contextual com 2 saídas obrigatórias.

Ex: "Não encontramos nenhuma correspondência exata"

EmptyState

Quando os critérios ativos não retornam nenhum registro, a listagem exibe um empty state com ação para limpar os filtros ou ajustar os critérios.

Diferente do empty state do overlay — aqui os filtros já foram aplicados e o problema está nos dados, não na busca.

Ícones do contexto

ÍconeTokenSignificado
filtrar — ação principal, abre o Filter Search
facetas da sidebar — recorte rápido por dimensão pronta (checkbox, faixa, pasta)
busca rápida — localizar um registro pelo termo, sem criar critério
favoritos & filtros salvos — reaplicar um recorte pessoal num clique
escopo de contexto — restringe o universo (base, período) antes dos filtros