@softros/agulhao-charts-react 1.0.8 → 1.0.9

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.
Files changed (79) hide show
  1. package/README.md +12 -0
  2. package/dist/bancos.d.ts +6 -0
  3. package/dist/bancos.d.ts.map +1 -0
  4. package/dist/bancos.js +169 -0
  5. package/dist/bancos.js.map +1 -0
  6. package/dist/base.css +3 -0
  7. package/dist/chart.d.ts +98 -0
  8. package/dist/chart.d.ts.map +1 -0
  9. package/dist/{AgulhaoChart.js → chart.js} +1 -1
  10. package/dist/chart.js.map +1 -0
  11. package/dist/dashboard/context.d.ts +7 -0
  12. package/dist/dashboard/context.d.ts.map +1 -0
  13. package/dist/dashboard/context.js +9 -0
  14. package/dist/dashboard/context.js.map +1 -0
  15. package/dist/dashboard/dashboard.css +37 -0
  16. package/dist/dashboard/estrutura.d.ts +13 -0
  17. package/dist/dashboard/estrutura.d.ts.map +1 -0
  18. package/dist/dashboard/estrutura.js +26 -0
  19. package/dist/dashboard/estrutura.js.map +1 -0
  20. package/dist/dashboard/index.d.ts +36 -0
  21. package/dist/dashboard/index.d.ts.map +1 -0
  22. package/dist/dashboard/index.js +46 -0
  23. package/dist/dashboard/index.js.map +1 -0
  24. package/dist/dashboard/types.d.ts +37 -0
  25. package/dist/dashboard/types.d.ts.map +1 -0
  26. package/dist/dashboard/types.js +2 -0
  27. package/dist/dashboard/types.js.map +1 -0
  28. package/dist/dashboard/widgets/acompanhamentoPedidos.d.ts +5 -0
  29. package/dist/dashboard/widgets/acompanhamentoPedidos.d.ts.map +1 -0
  30. package/dist/dashboard/widgets/acompanhamentoPedidos.js +94 -0
  31. package/dist/dashboard/widgets/acompanhamentoPedidos.js.map +1 -0
  32. package/dist/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.d.ts +5 -0
  33. package/dist/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.d.ts.map +1 -0
  34. package/dist/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.js +94 -0
  35. package/dist/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.js.map +1 -0
  36. package/dist/dashboard/widgets/graficoReceitasMesPlanoContas.d.ts +5 -0
  37. package/dist/dashboard/widgets/graficoReceitasMesPlanoContas.d.ts.map +1 -0
  38. package/dist/dashboard/widgets/graficoReceitasMesPlanoContas.js +94 -0
  39. package/dist/dashboard/widgets/graficoReceitasMesPlanoContas.js.map +1 -0
  40. package/dist/dashboard/widgets/graficoVendasMesTipoLancamento.d.ts +5 -0
  41. package/dist/dashboard/widgets/graficoVendasMesTipoLancamento.d.ts.map +1 -0
  42. package/dist/dashboard/widgets/graficoVendasMesTipoLancamento.js +89 -0
  43. package/dist/dashboard/widgets/graficoVendasMesTipoLancamento.js.map +1 -0
  44. package/dist/dashboard/widgets/graficoVendasUltimos12meses.d.ts +5 -0
  45. package/dist/dashboard/widgets/graficoVendasUltimos12meses.d.ts.map +1 -0
  46. package/dist/dashboard/widgets/graficoVendasUltimos12meses.js +98 -0
  47. package/dist/dashboard/widgets/graficoVendasUltimos12meses.js.map +1 -0
  48. package/dist/dashboard/widgets/index.d.ts +7 -0
  49. package/dist/dashboard/widgets/index.d.ts.map +1 -0
  50. package/dist/dashboard/widgets/index.js +67 -0
  51. package/dist/dashboard/widgets/index.js.map +1 -0
  52. package/dist/dashboard/widgets/indicadoresOrcamentosAprovadosFaturadosEntregues.d.ts +5 -0
  53. package/dist/dashboard/widgets/indicadoresOrcamentosAprovadosFaturadosEntregues.d.ts.map +1 -0
  54. package/dist/dashboard/widgets/indicadoresOrcamentosAprovadosFaturadosEntregues.js +85 -0
  55. package/dist/dashboard/widgets/indicadoresOrcamentosAprovadosFaturadosEntregues.js.map +1 -0
  56. package/dist/dashboard/widgets/indicadoresReceberPagar.d.ts +5 -0
  57. package/dist/dashboard/widgets/indicadoresReceberPagar.d.ts.map +1 -0
  58. package/dist/dashboard/widgets/indicadoresReceberPagar.js +137 -0
  59. package/dist/dashboard/widgets/indicadoresReceberPagar.js.map +1 -0
  60. package/dist/dashboard/widgets/indicadoresSaldoContas.d.ts +5 -0
  61. package/dist/dashboard/widgets/indicadoresSaldoContas.d.ts.map +1 -0
  62. package/dist/dashboard/widgets/indicadoresSaldoContas.js +118 -0
  63. package/dist/dashboard/widgets/indicadoresSaldoContas.js.map +1 -0
  64. package/dist/formatacoes.d.ts +5 -0
  65. package/dist/formatacoes.d.ts.map +1 -0
  66. package/dist/formatacoes.js +33 -0
  67. package/dist/formatacoes.js.map +1 -0
  68. package/dist/index.d.ts +4 -2
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +3 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/utils.d.ts +9 -0
  73. package/dist/utils.d.ts.map +1 -0
  74. package/dist/utils.js +101 -0
  75. package/dist/utils.js.map +1 -0
  76. package/package.json +7 -4
  77. package/dist/AgulhaoChart.d.ts +0 -18
  78. package/dist/AgulhaoChart.d.ts.map +0 -1
  79. package/dist/AgulhaoChart.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dashboard/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare function AcompanhamentoPedidos(w: AgulhaoDashboardWidget): import("react").JSX.Element;
4
+ export declare const AcompanhamentoPedidosLayout: LayoutItem;
5
+ //# sourceMappingURL=acompanhamentoPedidos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acompanhamentoPedidos.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/acompanhamentoPedidos.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAQjD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,sBAAsB,+BA+E9D;AAWD,eAAO,MAAM,2BAA2B,EAAE,UAUzC,CAAA"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { statusPedidoAgulhao, zodStringToJson } from '../../utils';
5
+ import { AgulhaoChart } from '../../chart';
6
+ import { Estrutura } from '../estrutura';
7
+ import { inteiro, milhares } from '../../formatacoes';
8
+ import { useDashboard } from '../context';
9
+ export function AcompanhamentoPedidos(w) {
10
+ const { atualizaWidget } = useDashboard();
11
+ const [carregando, setCarregando] = useState(false);
12
+ const [dados, setDados] = useState(zodStringToJson(w.conteudo || '{}', schema).data || null);
13
+ const intervalo = useRef(null);
14
+ useEffect(() => {
15
+ if (w.atualizaEmSegundos && w.atualizaEmSegundos > 0) {
16
+ intervalo.current = window.setInterval(() => {
17
+ atualizar();
18
+ }, w.atualizaEmSegundos * 1000);
19
+ }
20
+ return () => {
21
+ if (intervalo.current) {
22
+ clearInterval(intervalo.current);
23
+ }
24
+ };
25
+ }, []);
26
+ const atualizar = async () => {
27
+ setCarregando(true);
28
+ const resultado = await atualizaWidget(w.widgetId, w.id);
29
+ setCarregando(false);
30
+ if (resultado) {
31
+ const dadosAtualizados = zodStringToJson(resultado, schema).data || null;
32
+ setDados(dadosAtualizados);
33
+ }
34
+ };
35
+ return (_jsx(Estrutura, { id: w.id, titulo: w.titulo, descricao: w.descricao, ultimaSincronizacao: w.ultimaSincronizacao, carregando: carregando, children: _jsxs("div", { style: { height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }, children: [_jsx(AgulhaoChart, { style: { flexGrow: 1 }, grafico: {
36
+ tipo: 'pizza',
37
+ dataset: {
38
+ linhas: (dados?.lista || []).map((l) => {
39
+ const status = statusPedidoAgulhao.find((s) => s.sigla === l.status);
40
+ return { status: status?.descricao || l.status, quantidade: l.quantidade, cor: status?.cor || '' };
41
+ }),
42
+ },
43
+ mapeamento: { rotulo: 'status', valor: 'quantidade', cor: 'cor' },
44
+ opcoes: {
45
+ serie: { nome: 'Status do pedido' },
46
+ pizza: { raio: '50%' },
47
+ rotulo: {
48
+ formato: (p) => `${p.name}\n ${inteiro(p.value)} (${milhares(p.percent)}%)`,
49
+ tamanhoFonte: 18,
50
+ alturaLinha: 20,
51
+ espacamento: 10,
52
+ linha: { comprimento: 40, comprimento2: 40, suave: false },
53
+ },
54
+ },
55
+ } }), _jsxs("div", { style: {
56
+ display: 'flex',
57
+ justifyContent: 'space-between',
58
+ alignItems: 'center',
59
+ borderTop: '1px solid var(--ag-dashboard-cor)',
60
+ textAlign: 'center',
61
+ padding: '10px',
62
+ }, children: [renderizaValor('Peças', inteiro(dados?.pecas || 0)), renderizaValor('Pedidos', inteiro(dados?.registros || 0)), renderizaValor('Bruto', `R$ ${milhares(dados?.bruto || 0)}`), renderizaValor('Descontos (-)', `R$ ${milhares(dados?.descontos || 0)}`), renderizaValor('Outros (+)', `R$ ${milhares(dados?.outros || 0)}`), renderizaValor('Líquido', `R$ ${milhares(dados?.liquido || 0)}`)] })] }) }));
63
+ }
64
+ function renderizaValor(descricao, valor) {
65
+ return (_jsxs("div", { children: [_jsx("p", { style: { margin: 0, fontWeight: 'bold', fontSize: '0.875rem' }, children: descricao }), _jsx("p", { style: { margin: 0, marginTop: '2px', color: descricao === 'Líquido' ? '#00a91f' : '' }, children: valor })] }));
66
+ }
67
+ export const AcompanhamentoPedidosLayout = {
68
+ i: 'acompanhamentoPedidos',
69
+ x: 0,
70
+ y: 0,
71
+ w: 4,
72
+ h: 4,
73
+ minW: 1,
74
+ minH: 1,
75
+ isResizable: true,
76
+ isDraggable: true,
77
+ };
78
+ const schema = z.object({
79
+ pecasFaturadas: z.number(),
80
+ pecas: z.number(),
81
+ registros: z.number(),
82
+ bruto: z.number(),
83
+ outros: z.number(),
84
+ liquido: z.number(),
85
+ descontos: z.number(),
86
+ lista: z
87
+ .array(z.object({
88
+ status: z.string(),
89
+ quantidade: z.number(),
90
+ valor: z.number(),
91
+ }))
92
+ .optional(),
93
+ });
94
+ //# sourceMappingURL=acompanhamentoPedidos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acompanhamentoPedidos.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/acompanhamentoPedidos.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare function GraficoDespesasMesGrupoPlanoContas(w: AgulhaoDashboardWidget): import("react").JSX.Element;
4
+ export declare const GraficoDespesasMesGrupoPlanoContasLayout: LayoutItem;
5
+ //# sourceMappingURL=graficoDespesasMesGrupoPlanoContas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoDespesasMesGrupoPlanoContas.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAUjD,wBAAgB,kCAAkC,CAAC,CAAC,EAAE,sBAAsB,+BAsF3E;AAWD,eAAO,MAAM,wCAAwC,EAAE,UAUtD,CAAA"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { zodStringToJson } from '../../utils';
5
+ import { AgulhaoChart } from '../../chart';
6
+ import { Estrutura } from '../estrutura';
7
+ import { milhares } from '../../formatacoes';
8
+ import { useDashboard } from '../context';
9
+ const nomesMes = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
10
+ export function GraficoDespesasMesGrupoPlanoContas(w) {
11
+ const { atualizaWidget } = useDashboard();
12
+ const [carregando, setCarregando] = useState(false);
13
+ const [dados, setDados] = useState(zodStringToJson(w.conteudo || '[]', schema).data || []);
14
+ const intervalo = useRef(null);
15
+ useEffect(() => {
16
+ if (w.atualizaEmSegundos && w.atualizaEmSegundos > 0) {
17
+ intervalo.current = window.setInterval(() => {
18
+ atualizar();
19
+ }, w.atualizaEmSegundos * 1000);
20
+ }
21
+ return () => {
22
+ if (intervalo.current) {
23
+ clearInterval(intervalo.current);
24
+ }
25
+ };
26
+ }, []);
27
+ const atualizar = async () => {
28
+ setCarregando(true);
29
+ const resultado = await atualizaWidget(w.widgetId, w.id);
30
+ setCarregando(false);
31
+ if (resultado) {
32
+ const dadosAtualizados = zodStringToJson(resultado, schema).data || [];
33
+ setDados(dadosAtualizados);
34
+ }
35
+ };
36
+ const mesVigente = dados.reduce((maior, d) => Math.max(maior, d.ano * 100 + d.mes), 0);
37
+ const doMesVigente = dados.filter((d) => d.ano * 100 + d.mes === mesVigente);
38
+ const porGrupo = new Map();
39
+ for (const d of doMesVigente) {
40
+ porGrupo.set(d.grupoPlanoContas, (porGrupo.get(d.grupoPlanoContas) || 0) + d.valor);
41
+ }
42
+ const linhas = [...porGrupo.entries()].sort((a, b) => b[1] - a[1]).map(([grupoPlanoContas, valor]) => ({ grupoPlanoContas, valor }));
43
+ const total = linhas.reduce((soma, l) => soma + l.valor, 0);
44
+ return (_jsx(Estrutura, { id: w.id, titulo: w.titulo, descricao: w.descricao, ultimaSincronizacao: w.ultimaSincronizacao, carregando: carregando, children: _jsxs("div", { style: { height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }, children: [_jsx(AgulhaoChart, { style: { flexGrow: 1 }, grafico: {
45
+ tipo: 'pizza',
46
+ dataset: { linhas },
47
+ mapeamento: { rotulo: 'grupoPlanoContas', valor: 'valor' },
48
+ opcoes: {
49
+ pizza: {
50
+ raio: '50%',
51
+ },
52
+ legenda: {
53
+ orientacao: 'horizontal',
54
+ },
55
+ formatadorValor: (v) => milhares(v, 'R$'),
56
+ rotulo: {
57
+ formato: (p) => `${p.name}\n ${milhares(p.value, 'R$')} (${milhares(p.percent)}%)`,
58
+ tamanhoFonte: 18,
59
+ alturaLinha: 20,
60
+ espacamento: 10,
61
+ linha: { comprimento: 40, comprimento2: 40, suave: false },
62
+ },
63
+ },
64
+ } }), _jsxs("div", { style: {
65
+ display: 'flex',
66
+ justifyContent: 'space-between',
67
+ alignItems: 'center',
68
+ borderTop: '1px solid var(--ag-dashboard-cor)',
69
+ textAlign: 'center',
70
+ padding: '10px',
71
+ }, children: [renderizaValor('Mês', mesVigente ? `${nomesMes[(mesVigente % 100) - 1]}/${Math.floor(mesVigente / 100)}` : '-'), renderizaValor('Total', `R$ ${milhares(total)}`)] })] }) }));
72
+ }
73
+ function renderizaValor(descricao, valor) {
74
+ return (_jsxs("div", { children: [_jsx("p", { style: { margin: 0, fontWeight: 'bold', fontSize: '0.875rem' }, children: descricao }), _jsx("p", { style: { margin: 0, marginTop: '2px' }, children: valor })] }));
75
+ }
76
+ export const GraficoDespesasMesGrupoPlanoContasLayout = {
77
+ i: 'graficoDespesasMesGrupoPlanoContas',
78
+ x: 0,
79
+ y: 0,
80
+ w: 4,
81
+ h: 4,
82
+ minW: 1,
83
+ minH: 1,
84
+ isResizable: true,
85
+ isDraggable: true,
86
+ };
87
+ const linhaSchema = z.object({
88
+ mes: z.coerce.number(),
89
+ ano: z.coerce.number(),
90
+ grupoPlanoContas: z.string(),
91
+ valor: z.coerce.number(),
92
+ });
93
+ const schema = z.array(linhaSchema);
94
+ //# sourceMappingURL=graficoDespesasMesGrupoPlanoContas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoDespesasMesGrupoPlanoContas.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoDespesasMesGrupoPlanoContas.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare function GraficoReceitasMesPlanoContas(w: AgulhaoDashboardWidget): import("react").JSX.Element;
4
+ export declare const GraficoReceitasMesPlanoContasLayout: LayoutItem;
5
+ //# sourceMappingURL=graficoReceitasMesPlanoContas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoReceitasMesPlanoContas.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoReceitasMesPlanoContas.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAUjD,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,sBAAsB,+BAsFtE;AAWD,eAAO,MAAM,mCAAmC,EAAE,UAUjD,CAAA"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { zodStringToJson } from '../../utils';
5
+ import { AgulhaoChart } from '../../chart';
6
+ import { Estrutura } from '../estrutura';
7
+ import { milhares } from '../../formatacoes';
8
+ import { useDashboard } from '../context';
9
+ const nomesMes = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
10
+ export function GraficoReceitasMesPlanoContas(w) {
11
+ const { atualizaWidget } = useDashboard();
12
+ const [carregando, setCarregando] = useState(false);
13
+ const [dados, setDados] = useState(zodStringToJson(w.conteudo || '[]', schema).data || []);
14
+ const intervalo = useRef(null);
15
+ useEffect(() => {
16
+ if (w.atualizaEmSegundos && w.atualizaEmSegundos > 0) {
17
+ intervalo.current = window.setInterval(() => {
18
+ atualizar();
19
+ }, w.atualizaEmSegundos * 1000);
20
+ }
21
+ return () => {
22
+ if (intervalo.current) {
23
+ clearInterval(intervalo.current);
24
+ }
25
+ };
26
+ }, []);
27
+ const atualizar = async () => {
28
+ setCarregando(true);
29
+ const resultado = await atualizaWidget(w.widgetId, w.id);
30
+ setCarregando(false);
31
+ if (resultado) {
32
+ const dadosAtualizados = zodStringToJson(resultado, schema).data || [];
33
+ setDados(dadosAtualizados);
34
+ }
35
+ };
36
+ const mesVigente = dados.reduce((maior, d) => Math.max(maior, d.ano * 100 + d.mes), 0);
37
+ const doMesVigente = dados.filter((d) => d.ano * 100 + d.mes === mesVigente);
38
+ const porPlanoContas = new Map();
39
+ for (const d of doMesVigente) {
40
+ porPlanoContas.set(d.planoContas, (porPlanoContas.get(d.planoContas) || 0) + d.valor);
41
+ }
42
+ const linhas = [...porPlanoContas.entries()].sort((a, b) => b[1] - a[1]).map(([planoContas, valor]) => ({ planoContas, valor }));
43
+ const total = linhas.reduce((soma, l) => soma + l.valor, 0);
44
+ return (_jsx(Estrutura, { id: w.id, titulo: w.titulo, descricao: w.descricao, ultimaSincronizacao: w.ultimaSincronizacao, carregando: carregando, children: _jsxs("div", { style: { height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }, children: [_jsx(AgulhaoChart, { style: { flexGrow: 1 }, grafico: {
45
+ tipo: 'pizza',
46
+ dataset: { linhas },
47
+ mapeamento: { rotulo: 'planoContas', valor: 'valor' },
48
+ opcoes: {
49
+ pizza: {
50
+ raio: '50%',
51
+ },
52
+ legenda: {
53
+ orientacao: 'horizontal',
54
+ },
55
+ formatadorValor: (v) => milhares(v, 'R$'),
56
+ rotulo: {
57
+ formato: (p) => `${p.name}\n ${milhares(p.value, 'R$')} (${milhares(p.percent)}%)`,
58
+ tamanhoFonte: 18,
59
+ alturaLinha: 20,
60
+ espacamento: 10,
61
+ linha: { comprimento: 40, comprimento2: 40, suave: false },
62
+ },
63
+ },
64
+ } }), _jsxs("div", { style: {
65
+ display: 'flex',
66
+ justifyContent: 'space-between',
67
+ alignItems: 'center',
68
+ borderTop: '1px solid var(--ag-dashboard-cor)',
69
+ textAlign: 'center',
70
+ padding: '10px',
71
+ }, children: [renderizaValor('Mês', mesVigente ? `${nomesMes[(mesVigente % 100) - 1]}/${Math.floor(mesVigente / 100)}` : '-'), renderizaValor('Total', `R$ ${milhares(total)}`)] })] }) }));
72
+ }
73
+ function renderizaValor(descricao, valor) {
74
+ return (_jsxs("div", { children: [_jsx("p", { style: { margin: 0, fontWeight: 'bold', fontSize: '0.875rem' }, children: descricao }), _jsx("p", { style: { margin: 0, marginTop: '2px' }, children: valor })] }));
75
+ }
76
+ export const GraficoReceitasMesPlanoContasLayout = {
77
+ i: 'graficoReceitasMesPlanoContas',
78
+ x: 0,
79
+ y: 0,
80
+ w: 4,
81
+ h: 4,
82
+ minW: 1,
83
+ minH: 1,
84
+ isResizable: true,
85
+ isDraggable: true,
86
+ };
87
+ const linhaSchema = z.object({
88
+ mes: z.coerce.number(),
89
+ ano: z.coerce.number(),
90
+ planoContas: z.string(),
91
+ valor: z.coerce.number(),
92
+ });
93
+ const schema = z.array(linhaSchema);
94
+ //# sourceMappingURL=graficoReceitasMesPlanoContas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoReceitasMesPlanoContas.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoReceitasMesPlanoContas.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare function GraficoVendasMesTipoLancamento(w: AgulhaoDashboardWidget): import("react").JSX.Element;
4
+ export declare const GraficoVendasMesTipoLancamentoLayout: LayoutItem;
5
+ //# sourceMappingURL=graficoVendasMesTipoLancamento.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoVendasMesTipoLancamento.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoVendasMesTipoLancamento.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAQjD,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,sBAAsB,+BAkFvE;AAWD,eAAO,MAAM,oCAAoC,EAAE,UAUlD,CAAA"}
@@ -0,0 +1,89 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { zodStringToJson } from '../../utils';
5
+ import { AgulhaoChart } from '../../chart';
6
+ import { Estrutura } from '../estrutura';
7
+ import { milhares } from '../../formatacoes';
8
+ import { useDashboard } from '../context';
9
+ export function GraficoVendasMesTipoLancamento(w) {
10
+ const { atualizaWidget } = useDashboard();
11
+ const [carregando, setCarregando] = useState(false);
12
+ const [dados, setDados] = useState(zodStringToJson(w.conteudo || '[]', schema).data || []);
13
+ const intervalo = useRef(null);
14
+ useEffect(() => {
15
+ if (w.atualizaEmSegundos && w.atualizaEmSegundos > 0) {
16
+ intervalo.current = window.setInterval(() => {
17
+ atualizar();
18
+ }, w.atualizaEmSegundos * 1000);
19
+ }
20
+ return () => {
21
+ if (intervalo.current) {
22
+ clearInterval(intervalo.current);
23
+ }
24
+ };
25
+ }, []);
26
+ const atualizar = async () => {
27
+ setCarregando(true);
28
+ const resultado = await atualizaWidget(w.widgetId, w.id);
29
+ setCarregando(false);
30
+ if (resultado) {
31
+ const dadosAtualizados = zodStringToJson(resultado, schema).data || [];
32
+ setDados(dadosAtualizados);
33
+ }
34
+ };
35
+ const porLancamento = new Map();
36
+ for (const d of dados) {
37
+ porLancamento.set(d.lancamento, (porLancamento.get(d.lancamento) || 0) + d.valor);
38
+ }
39
+ const linhas = [...porLancamento.entries()].sort((a, b) => b[1] - a[1]).map(([lancamento, valor]) => ({ lancamento, valor }));
40
+ const total = linhas.reduce((soma, l) => soma + l.valor, 0);
41
+ return (_jsx(Estrutura, { id: w.id, titulo: w.titulo, descricao: w.descricao, ultimaSincronizacao: w.ultimaSincronizacao, carregando: carregando, children: _jsxs("div", { style: { height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }, children: [_jsx(AgulhaoChart, { style: { flexGrow: 1 }, grafico: {
42
+ tipo: 'pizza',
43
+ dataset: { linhas },
44
+ mapeamento: { rotulo: 'lancamento', valor: 'valor' },
45
+ opcoes: {
46
+ pizza: {
47
+ raio: '50%',
48
+ },
49
+ legenda: {
50
+ orientacao: 'horizontal',
51
+ },
52
+ formatadorValor: (v) => milhares(v, 'R$'),
53
+ rotulo: {
54
+ formato: (p) => `${p.name}\n ${milhares(p.value, 'R$')} (${milhares(p.percent)}%)`,
55
+ tamanhoFonte: 18,
56
+ alturaLinha: 20,
57
+ espacamento: 10,
58
+ linha: { comprimento: 40, comprimento2: 40, suave: false },
59
+ },
60
+ },
61
+ } }), _jsx("div", { style: {
62
+ display: 'flex',
63
+ justifyContent: 'space-between',
64
+ alignItems: 'center',
65
+ borderTop: '1px solid var(--ag-dashboard-cor)',
66
+ textAlign: 'center',
67
+ padding: '10px',
68
+ }, children: renderizaValor('Total', `R$ ${milhares(total)}`) })] }) }));
69
+ }
70
+ function renderizaValor(descricao, valor) {
71
+ return (_jsxs("div", { children: [_jsx("p", { style: { margin: 0, fontWeight: 'bold', fontSize: '0.875rem' }, children: descricao }), _jsx("p", { style: { margin: 0, marginTop: '2px' }, children: valor })] }));
72
+ }
73
+ export const GraficoVendasMesTipoLancamentoLayout = {
74
+ i: 'graficoVendasMesTipoLancamento',
75
+ x: 0,
76
+ y: 0,
77
+ w: 4,
78
+ h: 4,
79
+ minW: 1,
80
+ minH: 1,
81
+ isResizable: true,
82
+ isDraggable: true,
83
+ };
84
+ const linhaSchema = z.object({
85
+ lancamento: z.string(),
86
+ valor: z.coerce.number(),
87
+ });
88
+ const schema = z.array(linhaSchema);
89
+ //# sourceMappingURL=graficoVendasMesTipoLancamento.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoVendasMesTipoLancamento.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoVendasMesTipoLancamento.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare function GraficoVendasUltimos12Meses(w: AgulhaoDashboardWidget): import("react").JSX.Element;
4
+ export declare const GraficoVendasUltimos12MesesLayout: LayoutItem;
5
+ //# sourceMappingURL=graficoVendasUltimos12meses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoVendasUltimos12meses.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoVendasUltimos12meses.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAUjD,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,sBAAsB,+BA6FpE;AAWD,eAAO,MAAM,iCAAiC,EAAE,UAU/C,CAAA"}
@@ -0,0 +1,98 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { useEffect, useRef, useState } from 'react';
4
+ import { zodStringToJson } from '../../utils';
5
+ import { AgulhaoChart } from '../../chart';
6
+ import { Estrutura } from '../estrutura';
7
+ import { milhares } from '../../formatacoes';
8
+ import { useDashboard } from '../context';
9
+ const nomesMes = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];
10
+ export function GraficoVendasUltimos12Meses(w) {
11
+ const { atualizaWidget } = useDashboard();
12
+ const [carregando, setCarregando] = useState(false);
13
+ const [dados, setDados] = useState(zodStringToJson(w.conteudo || '[]', schema).data || []);
14
+ const intervalo = useRef(null);
15
+ useEffect(() => {
16
+ if (w.atualizaEmSegundos && w.atualizaEmSegundos > 0) {
17
+ intervalo.current = window.setInterval(() => {
18
+ atualizar();
19
+ }, w.atualizaEmSegundos * 1000);
20
+ }
21
+ return () => {
22
+ if (intervalo.current) {
23
+ clearInterval(intervalo.current);
24
+ }
25
+ };
26
+ }, []);
27
+ const atualizar = async () => {
28
+ setCarregando(true);
29
+ const resultado = await atualizaWidget(w.widgetId, w.id);
30
+ setCarregando(false);
31
+ if (resultado) {
32
+ const dadosAtualizados = zodStringToJson(resultado, schema).data || [];
33
+ setDados(dadosAtualizados);
34
+ }
35
+ };
36
+ const meses = [...dados].sort((a, b) => a.anoAtual * 100 + a.mes - (b.anoAtual * 100 + b.mes));
37
+ const totalAtual = meses.reduce((soma, m) => soma + m.valorAtual, 0);
38
+ const totalAnterior = meses.reduce((soma, m) => soma + m.valorAnterior, 0);
39
+ const variacao = totalAnterior ? ((totalAtual - totalAnterior) / totalAnterior) * 100 : null;
40
+ return (_jsx(Estrutura, { id: w.id, titulo: w.titulo, descricao: w.descricao, ultimaSincronizacao: w.ultimaSincronizacao, carregando: carregando, children: _jsxs("div", { style: { height: '100%', display: 'flex', flexDirection: 'column', flex: 1 }, children: [_jsx(AgulhaoChart, { style: { flexGrow: 1 }, grafico: {
41
+ tipo: 'barra',
42
+ dataset: {
43
+ colunas: [
44
+ { nome: 'atual', tipo: 'numero', rotulo: 'Ano atual' },
45
+ { nome: 'anterior', tipo: 'numero', rotulo: 'Ano anterior' },
46
+ ],
47
+ linhas: meses.map((m) => ({
48
+ mesAno: `${nomesMes[m.mes - 1]}/${String(m.anoAtual).slice(-2)}`,
49
+ atual: m.valorAtual,
50
+ anterior: m.valorAnterior,
51
+ })),
52
+ },
53
+ mapeamento: { eixoX: 'mesAno', eixoY: ['atual', 'anterior'] },
54
+ opcoes: {
55
+ mostrarLegenda: true,
56
+ formatadorValor: (valor) => milhares(valor, 'R$'),
57
+ eixoValor: {
58
+ tamanhoFonte: 16,
59
+ },
60
+ serie: {
61
+ cor: [
62
+ { nome: 'Ano atual', cor: '#235DD9' },
63
+ { nome: 'Ano anterior', cor: '#B9C2D0' },
64
+ ],
65
+ },
66
+ },
67
+ } }), _jsxs("div", { style: {
68
+ display: 'flex',
69
+ justifyContent: 'space-between',
70
+ alignItems: 'center',
71
+ borderTop: '1px solid var(--ag-dashboard-cor)',
72
+ textAlign: 'center',
73
+ padding: '10px',
74
+ }, children: [renderizaValor('Ano atual', `R$ ${milhares(totalAtual)}`), renderizaValor('Ano anterior', `R$ ${milhares(totalAnterior)}`), renderizaValor('Variação', variacao === null ? '-' : `${variacao >= 0 ? '+' : ''}${milhares(variacao)}%`, variacao === null ? undefined : variacao >= 0 ? '#00a91f' : '#db4444')] })] }) }));
75
+ }
76
+ function renderizaValor(descricao, valor, cor) {
77
+ return (_jsxs("div", { children: [_jsx("p", { style: { margin: 0, fontWeight: 'bold', fontSize: '0.875rem' }, children: descricao }), _jsx("p", { style: { margin: 0, marginTop: '2px', color: cor || '' }, children: valor })] }));
78
+ }
79
+ export const GraficoVendasUltimos12MesesLayout = {
80
+ i: 'graficoVendasUltimos12meses',
81
+ x: 0,
82
+ y: 0,
83
+ w: 6,
84
+ h: 4,
85
+ minW: 4,
86
+ minH: 4,
87
+ isResizable: true,
88
+ isDraggable: true,
89
+ };
90
+ const linhaSchema = z.object({
91
+ mes: z.coerce.number(),
92
+ anoAtual: z.coerce.number(),
93
+ anoAnterior: z.coerce.number(),
94
+ valorAtual: z.coerce.number(),
95
+ valorAnterior: z.coerce.number().optional().default(0),
96
+ });
97
+ const schema = z.array(linhaSchema);
98
+ //# sourceMappingURL=graficoVendasUltimos12meses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graficoVendasUltimos12meses.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/graficoVendasUltimos12meses.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { LayoutItem } from 'react-grid-layout';
2
+ import { AgulhaoDashboardWidget } from '../types';
3
+ export declare const dashboardWidgets: Map<string, {
4
+ Componente: (p: AgulhaoDashboardWidget) => React.JSX.Element;
5
+ layout: LayoutItem;
6
+ }>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAajD,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAC9B,MAAM,EACN;IACI,UAAU,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAA;IAC5D,MAAM,EAAE,UAAU,CAAA;CACrB,CA0DH,CAAA"}