@nextelco/common-ui 2.1.67 → 2.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ import React from 'react';
2
+ /**
3
+ * Painel lateral de filtros facetados.
4
+ *
5
+ * O que o torna útil é a CONTAGEM ao lado de cada opção: diz quantos registos
6
+ * ficariam se a opção fosse escolhida, com os restantes filtros mantidos. Quem
7
+ * monta o painel é que calcula essas contagens — o componente não sabe o que
8
+ * está a contar, e tem de ser assim: a conta certa exige tirar a própria
9
+ * dimensão do filtro, e isso só o servidor sabe fazer.
10
+ *
11
+ * Genérico de propósito: recebe secções e opções, devolve escolhas.
12
+ */
13
+ export interface OpcaoFiltro {
14
+ valor: string;
15
+ rotulo: string;
16
+ /** Quantos registos esta opção daria. `undefined` não desenha contagem. */
17
+ total?: number;
18
+ }
19
+ export type TipoCampoFiltro = 'opcoes' | 'atalhos' | 'livre';
20
+ export interface CampoFiltro {
21
+ /** Identifica o campo nos valores devolvidos. */
22
+ chave: string;
23
+ rotulo: string;
24
+ tipo?: TipoCampoFiltro;
25
+ opcoes?: OpcaoFiltro[];
26
+ /**
27
+ * Escolha única. Por omissão o campo é múltiplo — é o que a maioria das
28
+ * dimensões quer, e forçar única obrigaria a limpar antes de trocar.
29
+ */
30
+ unico?: boolean;
31
+ /** A partir de quantas opções aparece a caixa de pesquisa. */
32
+ pesquisarACimaDe?: number;
33
+ /** Conteúdo próprio (datas, interruptores…), quando `tipo` é `livre`. */
34
+ conteudo?: React.ReactNode;
35
+ }
36
+ export interface SeccaoFiltros {
37
+ chave: string;
38
+ titulo: string;
39
+ campos: CampoFiltro[];
40
+ /** Aberta na primeira vez. Depois manda o que o utilizador fizer. */
41
+ aberta?: boolean;
42
+ }
43
+ export interface PainelFiltrosLabels {
44
+ titulo: string;
45
+ limpar: string;
46
+ pesquisar: string;
47
+ semOpcoes: string;
48
+ ocultar: string;
49
+ mostrar: string;
50
+ verTodas: string;
51
+ verMenos: string;
52
+ }
53
+ export interface PainelFiltrosProps {
54
+ seccoes: SeccaoFiltros[];
55
+ /** Valores actuais: chave do campo → valores escolhidos. */
56
+ valores: Record<string, string[]>;
57
+ onChange: (chave: string, valores: string[]) => void;
58
+ onLimpar?: () => void;
59
+ labels?: Partial<PainelFiltrosLabels>;
60
+ className?: string;
61
+ }
62
+ export default function PainelFiltros({ seccoes, valores, onChange, onLimpar, labels, className, }: PainelFiltrosProps): React.JSX.Element;
@@ -1,2 +1,2 @@
1
- export { PALETA, cor, BarrasEmpilhadas, BarrasHorizontais, Anel, Linha, Bolhas, } from '../components/charts/Charts';
1
+ export { PALETA, cor, BarrasEmpilhadas, BarrasHorizontais, Anel, Linha, Linhas, Bolhas, } from '../components/charts/Charts';
2
2
  export type { SerieEmpilhada, Distribuicao, PontoRisco } from '../components/charts/Charts';
@@ -6,6 +6,8 @@ export type { GanttRow, GanttLegendItem, GanttChartProps } from '../components/o
6
6
  export { default as StatusMatrix } from '../components/organisms/StatusMatrix/StatusMatrix';
7
7
  export type { StatusMatrixProps, StatusMatrixRow, StatusMatrixColumn, StatusMatrixStatus, StatusMatrixCell } from '../components/organisms/StatusMatrix/StatusMatrix';
8
8
  export { default as MapaPontos } from '../components/organisms/MapaPontos/MapaPontos';
9
- export type { MapaPontosProps, MapaPontosLabels, PontoMapa } from '../components/organisms/MapaPontos/MapaPontos';
9
+ export type { MapaPontosProps, MapaPontosLabels, PontoMapa, FatiaMapa } from '../components/organisms/MapaPontos/MapaPontos';
10
10
  export { default as RoleGuard, lerRolesDoToken } from '../components/organisms/RoleGuard/RoleGuard';
11
11
  export type { RoleGuardProps } from '../components/organisms/RoleGuard/RoleGuard';
12
+ export { default as PainelFiltros } from '../components/organisms/PainelFiltros/PainelFiltros';
13
+ export type { PainelFiltrosProps, PainelFiltrosLabels, SeccaoFiltros, CampoFiltro, OpcaoFiltro, TipoCampoFiltro, } from '../components/organisms/PainelFiltros/PainelFiltros';
@@ -9,4 +9,5 @@ export * from './exports/ui';
9
9
  export * from './exports/types';
10
10
  export * from './exports/styles';
11
11
  export * from './exports/utils';
12
+ export * from './exports/charts';
12
13
  export { default as Sidebar } from './components/layout/Sidebar/Sidebar';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextelco/common-ui",
3
- "version": "2.1.67",
3
+ "version": "2.1.69",
4
4
  "description": "",
5
5
  "main": "dist/bundle.js",
6
6
  "types": "dist/types/index.d.ts",