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.
- limite — Top 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).
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.
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.