Raiz única

A fonte única que transforma configuração e dados em props de gráfico — o mesmo cálculo alimenta preview, index, sidebar e dashboard.

A raiz única é a função que pega a configuração de um gráfico (tipo + coluna + opções) somada aos dados e devolve as props reais que o componente de chart consome. É o ponto que garante coerência absoluta no produto.

Por que existe

O preview do Chart Wizard, a index, a sidebar de fixados e o dashboard mostram exatamente o mesmo gráfico porque todos derivam daqui. Qualquer comportamento configurado (estilo, ordenação, limite, split, rótulo, período…) reflete em todos os lugares sem reimplementar o mapeamento à mão.

Em analogia de design system, a raiz única é o token do gráfico. O Wizard, a index e o dashboard são apenas instâncias que consomem o mesmo valor — ninguém redesenha a peça, todos referenciam a mesma definição.

Da configuração às props

A raiz recebe o tipo do gráfico, a coluna do eixo X (dimensão de agrupamento), o título, as opções do wizard, os dados e o schema de colunas. A partir disso resolve, em ordem:

  • medida — como o valor é calculado: contagem (padrão), distintos, soma, média, máximo, mínimo ou percentual.
  • ordenação — nenhuma (padrão), crescente ou decrescente.
  • limiteTop 10 por padrão (regra do produto); "todos" só quando explícito.
  • colunas derivadas do schema — a numérica, a de data e a distinta. Quando o eixo X é uma data, a raiz cria um balde com o grão escolhido (dia/semana/mês/ano).
  • split ("Separar por") — no modo de visualização Simples o split é ignorado.

Quando o período entra

Tanto a montagem de props quanto os stats de cabeçalho filtram as linhas pelo período antes de qualquer agregação. A data de referência é a maior data do dataset (garante que o filtro relativo sempre mostre dados), e a janela varia por período (7d/30d = N dias; ytd = início do ano). Sem período ("todos") ou sem coluna de data, usa as linhas originais.

O que muda por tipo de gráfico

A mesma raiz devolve a forma que cada tipo precisa, sem que o consumidor saiba do cálculo:

  • Pizza/Donut empilhada (split) — vira sunburst: anel interno = coluna, externo = split.
  • Multi-série (split em xy/radar) — dados pivotados por dimensão, uma categoria por segmento.
  • KPI — rótulo + valor único agregado + ícone.
  • Tag cloud — lista de tags com peso.
  • Radial gauge — valor, máximo e valor central.
  • Radial multi-anel — uma série por anel.
  • Série única (pizza/donut/barra/linha/área/radar) — grupos diretos por dimensão.

Na série única de barra/linha/área a raiz ainda aplica regras finas de leitura: colore por categoria quando a barra liga a legenda, e usa um rótulo contextual na legenda (nunca o valor cru).

Ordenação e limite agem nas dimensões, não nas séries. No multi-série, o Top N corta as barras/linhas, mas todos os segmentos (séries) continuam aparecendo — mesmo em split granular (ex.: Data + Tamanho).

Tipo salvo vs. tipo de render

A orientação é só uma opção: uma barra configurada como horizontal renderiza horizontal, mas o tipo salvo continua "barra". Por isso a configuração permanece estável e portátil — alternar orientação não troca o tipo do widget.

Stats do cabeçalho de conteúdo

Quando o estilo Interativa liga o cabeçalho de conteúdo (o "2º header"), a raiz calcula os destaques exibidos ali. Cada stat traz valor no período, tendência vs. período anterior e o índice da categoria:

  • O índice reaproveita o resultado da raiz, então a posição bate com a ordem das barras/fatias/eixo X — é o que viabiliza o cross-highlight.
  • A tendência compara a janela atual com a anterior de mesmo tamanho. Sem coluna de data, não há comparação.
  • Os destaques são até 2 dados fixados ou, na ausência deles, o Top 2 por valor. O cabeçalho exibe 1 ou 2 conforme a largura.
Quando não usar uma raiz paralela. Não recalcule props de gráfico fora da raiz única (nem no preview, nem no dashboard) — isso quebra o cross-highlight e diverge índice/ordenação. Sempre derive da mesma fonte.

A tradução de cada controle do wizard para a prop final do componente também é fonte única, e a API completa de cada tipo de gráfico vive na doc técnica do EDS: API completa no EletroDS.