@actionexec/dashboards 0.17.0 → 0.18.0
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.
- package/README.md +20 -2
- package/dist/Statement.d.ts +13 -1
- package/dist/hooks/useCollapse.d.ts +22 -0
- package/dist/hooks/useCurrentPeriod.d.ts +9 -0
- package/dist/hooks/useNarrowPane.d.ts +9 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +900 -650
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ datas ajustavel e download em PDF.
|
|
|
56
56
|
| `token` | `string` | — | Token Bearer do demonstrativo (obrigatorio) |
|
|
57
57
|
| `palette` | `string[]` | paleta Action | Paleta de 15 cores, no formato do dashboard — para quem embute os dois lado a lado |
|
|
58
58
|
| `showDownload` | `boolean` | `true` | Exibe o botao de download do PDF |
|
|
59
|
+
| `layout` | `'auto' \| 'table' \| 'periods'` | `'auto'` | Como o documento se desenha: a folha de colunas (`table`), um periodo por vez com seletor (`periods`), ou a escolha pela largura do container raiz (`auto`: `periods` abaixo de 600 px, `table` acima; sem `ResizeObserver` fica em `table`) |
|
|
59
60
|
| `className` | `string` | — | Classe CSS adicional no container raiz |
|
|
60
61
|
|
|
61
62
|
Todos os valores sao computados no servidor: o componente nao agrega, nao
|
|
@@ -63,8 +64,25 @@ formata numero e nao avalia formula. E o que garante que o documento exibido aqu
|
|
|
63
64
|
seja identico ao do construtor da plataforma e ao PDF baixado.
|
|
64
65
|
|
|
65
66
|
A folha vive num viewport com scroll nos dois eixos (a barra horizontal fica na
|
|
66
|
-
borda visivel, nao no fundo da tabela) e uma faixa de periodos no topo
|
|
67
|
-
com recuo se recolhem na tela; o PDF continua com o
|
|
67
|
+
borda visivel, nao no fundo da tabela) e uma faixa de periodos no topo, que marca
|
|
68
|
+
a coluna mais a vista. Secoes com recuo se recolhem na tela; o PDF continua com o
|
|
69
|
+
documento inteiro.
|
|
70
|
+
|
|
71
|
+
**Abaixo de 600 px** (`layout="auto"` num celular, ou `layout="periods"`) a folha
|
|
72
|
+
da lugar a um periodo por vez: seletor com setas de 40 px e um `<select>` nativo
|
|
73
|
+
com todas as colunas (a de total por ultimo, quando o documento a tem), e uma
|
|
74
|
+
lista de duas colunas com o rotulo e o valor do periodo escolhido. Embaixo do
|
|
75
|
+
valor vai a variacao contra o periodo anterior (o percentual da analise
|
|
76
|
+
horizontal quando o documento a pede; senao, o valor anterior), que o toggle
|
|
77
|
+
"Comparar com o anterior" liga e desliga. Recolher e expandir secoes e o mesmo
|
|
78
|
+
estado nos dois modos: girar o celular nao desfaz o que o leitor abriu. O
|
|
79
|
+
container raiz recebe `stmt--table` ou `stmt--periods` conforme o modo em vigor.
|
|
80
|
+
O PDF nao muda com o modo.
|
|
81
|
+
|
|
82
|
+
Na folha em pane estreito (`layout="table"` abaixo de 600 px), a barra de
|
|
83
|
+
controles quebra linha, a legenda "Base" ganha uma linha propria e a coluna de
|
|
84
|
+
rotulos se limita a 40% do viewport da folha, quebrando o nome da conta. Quem
|
|
85
|
+
embute nao precisa mais de override proprio para isso.
|
|
68
86
|
|
|
69
87
|
### `ApiError`
|
|
70
88
|
|
package/dist/Statement.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Como o documento se desenha; ver `StatementProps.layout`. */
|
|
2
|
+
export type StatementLayoutMode = 'auto' | 'table' | 'periods';
|
|
1
3
|
export interface StatementProps {
|
|
2
4
|
/** Token Bearer de acesso ao demonstrativo. */
|
|
3
5
|
token: string;
|
|
@@ -11,7 +13,17 @@ export interface StatementProps {
|
|
|
11
13
|
palette?: string[];
|
|
12
14
|
/** Botao de download do PDF. Default true. */
|
|
13
15
|
showDownload?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Como o documento se desenha. `'table'` e a folha: linhas por colunas de
|
|
18
|
+
* periodo, com a faixa de atalhos no topo. `'periods'` mostra um periodo por
|
|
19
|
+
* vez, numa lista de duas colunas com seletor: e o que cabe num celular,
|
|
20
|
+
* onde uma folha de 22 colunas nao cabe. `'auto'` (default) mede a largura
|
|
21
|
+
* do container raiz e usa `'periods'` abaixo de 600px; sem ResizeObserver
|
|
22
|
+
* (SSR, testes) fica em `'table'`. Recolher e expandir secoes e o MESMO
|
|
23
|
+
* estado nos dois modos, e o PDF nao muda com o modo.
|
|
24
|
+
*/
|
|
25
|
+
layout?: StatementLayoutMode;
|
|
14
26
|
/** Classe CSS adicional no container raiz. */
|
|
15
27
|
className?: string;
|
|
16
28
|
}
|
|
17
|
-
export declare function Statement({ token, palette, showDownload, className }: StatementProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare function Statement({ token, palette, showDownload, layout, className, }: StatementProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { StatementComputedLine } from '../types/statement';
|
|
2
|
+
export interface CollapseState {
|
|
3
|
+
/** Ids das linhas que o leitor pode recolher: as que têm filhas. */
|
|
4
|
+
collapsible: ReadonlySet<string>;
|
|
5
|
+
/** Ids recolhidos agora. */
|
|
6
|
+
collapsed: ReadonlySet<string>;
|
|
7
|
+
/** Ids escondidos porque algum ancestral está recolhido. */
|
|
8
|
+
hidden: ReadonlySet<string>;
|
|
9
|
+
/** Contas que cada seção guarda: a pista que a linha fechada mostra. */
|
|
10
|
+
accountCounts: ReadonlyMap<string, number>;
|
|
11
|
+
/** Há seção para recolher? Decide se os botões da barra aparecem. */
|
|
12
|
+
hasSections: boolean;
|
|
13
|
+
toggle: (id: string) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Volta ao resumo de abertura, e não a "tudo recolhido": fechar também as
|
|
16
|
+
* seções que contêm outras esconderia os subtotais que o resumo existe
|
|
17
|
+
* para mostrar.
|
|
18
|
+
*/
|
|
19
|
+
collapseToSummary: () => void;
|
|
20
|
+
expandAll: () => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function useCollapse(lines: readonly StatementComputedLine[]): CollapseState;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Chave do período mais visível em `scrollRef`, ou null.
|
|
4
|
+
*
|
|
5
|
+
* `keys` dita a ordem de desempate e, mudando, reanexa o observador: as
|
|
6
|
+
* colunas são outras e os `th` também. Passe a lista memoizada; uma nova a
|
|
7
|
+
* cada render religaria o observador a cada render.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useCurrentPeriod(scrollRef: RefObject<HTMLElement | null>, keys: readonly string[]): string | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Abaixo disto o documento troca a folha pelo modo período. */
|
|
2
|
+
export declare const NARROW_PANE_PX = 600;
|
|
3
|
+
export interface UseNarrowPaneResult {
|
|
4
|
+
/** Ref callback para o elemento medido. */
|
|
5
|
+
ref: (element: HTMLDivElement | null) => void;
|
|
6
|
+
/** True quando `enabled` e a largura medida é menor que o limiar. */
|
|
7
|
+
narrow: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function useNarrowPane(enabled: boolean, threshold?: number): UseNarrowPaneResult;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export { Dashboard } from './Dashboard';
|
|
|
3
3
|
export type { DashboardProps } from './Dashboard';
|
|
4
4
|
export type { DashboardGeometry } from './utils/grid';
|
|
5
5
|
export { Statement } from './Statement';
|
|
6
|
-
export type { StatementProps } from './Statement';
|
|
6
|
+
export type { StatementProps, StatementLayoutMode } from './Statement';
|
|
7
7
|
export { ApiError } from './api/fetcher';
|