drivers/dist-require/pilao-de-dados/visoes/index.js
2024-07-06 22:31:59 -03:00

123 lines
5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.extruturas_de_campos = exports.visoes = exports.z_tabela = exports.z_contagem_em_pizza = exports.z_contagem_em_barra_vertical = void 0;
const zod_1 = require("zod");
const _serie_consultar_1 = require("../_serie_consultar");
// usar describe para definir o tipo de campo para render do componente
const z_tipos_campos = zod_1.z.enum([
"tabela",
"coluna",
"texto",
"lista_colunas",
"lista_filtros",
]);
exports.z_contagem_em_barra_vertical = zod_1.z.object({
tabela: zod_1.z.string(),
colanuEixoX: zod_1.z.string(),
colunaAgrupamento: zod_1.z.string().array().optional(),
filtros: _serie_consultar_1.z_filtro.array().optional(),
descricao_pelo_usuario: zod_1.z.string().optional(),
});
exports.z_contagem_em_pizza = zod_1.z.object({
tabela: zod_1.z.string(),
classes: zod_1.z.string(),
filtros: _serie_consultar_1.z_filtro.array().optional(),
descricao_pelo_usuario: zod_1.z.string().optional(),
});
exports.z_tabela = zod_1.z.object({
tabela: zod_1.z.string(),
colunas: zod_1.z.string().array(),
filtros: _serie_consultar_1.z_filtro.array().optional(),
descricao_pelo_usuario: zod_1.z.string().optional(),
});
exports.visoes = {
z_contagem_em_barra_vertical: exports.z_contagem_em_barra_vertical,
z_contagem_em_pizza: exports.z_contagem_em_pizza,
z_tabela: exports.z_tabela,
};
/** Cria a estrutura de campos para insersão de dados */
exports.extruturas_de_campos = {
z_contagem_em_barra_vertical: {
visao: "z_contagem_em_barra_vertical",
rotulo: "Contagem em Barra Vertical",
tabela: ({ tabela }) => tabela,
descricao: ({ tabela, descricao_pelo_usuario, colanuEixoX, filtros, colunaAgrupamento, }) => {
if (String(descricao_pelo_usuario || "").trim())
return String(descricao_pelo_usuario || "").trim();
return `Contagem de ${tabela} por ${colanuEixoX}${!filtros?.length
? ""
: `, quando ${filtros
.map(({ coluna, operador, valor }) => `${coluna} ${operador} ${valor}`)
.join(", ")}`}${!colunaAgrupamento?.length
? ""
: `, agrupado por ${colunaAgrupamento.join(", ")}`}.`;
},
campos: {
tabela: { rotulo: "Tabela", tipo_campo: "tabela", order: 1 },
colanuEixoX: {
rotulo: "Coluna do Eixo X",
tipo_campo: "coluna",
order: 2,
},
colunaAgrupamento: {
rotulo: "Colunas de Agrupamento",
tipo_campo: "lista_colunas",
order: 3,
},
descricao_pelo_usuario: {
rotulo: "Descrição (opcional)",
tipo_campo: "texto",
order: 4,
},
filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 5 },
},
},
z_contagem_em_pizza: {
visao: "z_contagem_em_pizza",
rotulo: "Contagem em Pizza",
tabela: ({ tabela }) => tabela,
descricao: ({ tabela, descricao_pelo_usuario, classes, filtros }) => {
if (String(descricao_pelo_usuario || "").trim())
return String(descricao_pelo_usuario || "").trim();
return `Contagem de ${tabela} por ${classes}${!filtros?.length
? ""
: `, quando ${filtros
.map(({ coluna, operador, valor }) => `${coluna} ${operador} ${valor}`)
.join(", ")}`}.`;
},
campos: {
tabela: { rotulo: "Tabela", tipo_campo: "tabela", order: 1 },
classes: { rotulo: "Classes", tipo_campo: "coluna", order: 2 },
descricao_pelo_usuario: {
rotulo: "Descrição (opcional)",
tipo_campo: "texto",
order: 3,
},
filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 4 },
},
},
z_tabela: {
visao: "z_tabela",
rotulo: "Tabela",
tabela: ({ tabela }) => tabela,
descricao: ({ tabela, descricao_pelo_usuario, filtros }) => {
if (String(descricao_pelo_usuario || "").trim())
return String(descricao_pelo_usuario || "").trim();
return `Consulta na ${tabela} ${!filtros?.length
? ""
: `, quando ${filtros
.map(({ coluna, operador, valor }) => `${coluna} ${operador} ${valor}`)
.join(", ")}`}.`;
},
campos: {
tabela: { rotulo: "Tabela", tipo_campo: "tabela", order: 1 },
colunas: { rotulo: "Colunas", tipo_campo: "lista_colunas", order: 2 },
descricao_pelo_usuario: {
rotulo: "Descrição (opcional)",
tipo_campo: "texto",
order: 3,
},
filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 4 },
},
},
};