"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.extruturas_de_campos = exports.visoes = exports.z_tabela = exports.z_contagem_em_pizza = exports.z_soma_em_barra_vertical = 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", "ordem", ]); 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_soma_em_barra_vertical = zod_1.z.object({ tabela: zod_1.z.string(), colanuEixoX: zod_1.z.string(), colunaSoma: 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(), coluna_ordem: zod_1.z.string().optional(), direcao_ordem: zod_1.z.enum(["asc", "desc", "1", "-1"]).optional(), 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, z_soma_em_barra_vertical: exports.z_soma_em_barra_vertical, }; /** 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_soma_em_barra_vertical: { visao: "z_soma_em_barra_vertical", rotulo: "Soma 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 }, colunaSoma: { rotulo: "Coluna de Somatória", tipo_campo: "coluna", order: 2, }, colanuEixoX: { rotulo: "Coluna do Eixo X", tipo_campo: "coluna", order: 3, }, colunaAgrupamento: { rotulo: "Colunas de Agrupamento", tipo_campo: "lista_colunas", order: 4, }, descricao_pelo_usuario: { rotulo: "Descrição (opcional)", tipo_campo: "texto", order: 5, }, 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, }, coluna_ordem: { rotulo: "Coluna de Ordem", tipo_campo: "coluna", order: 4, }, direcao_ordem: { rotulo: "Direção de Ordem", tipo_campo: "ordem", order: 5, }, filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 6 }, }, }, };