diff --git a/dist-import/pilao-de-dados/index.d.ts b/dist-import/pilao-de-dados/index.d.ts index 946c0bd..4e2ab13 100644 --- a/dist-import/pilao-de-dados/index.d.ts +++ b/dist-import/pilao-de-dados/index.d.ts @@ -163,6 +163,66 @@ export declare const pPilao: { }; }; }; + z_soma_em_barra_vertical: { + visao: "z_soma_em_barra_vertical"; + rotulo: string; + tabela: (_: { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }) => string; + descricao: (_: { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }) => string; + campos: { + tabela: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colanuEixoX: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colunaSoma: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colunaAgrupamento: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + filtros: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + descricao_pelo_usuario: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + }; + }; }; z_contagem_em_barra_vertical: import("zod").ZodObject<{ tabela: import("zod").ZodString; @@ -281,6 +341,48 @@ export declare const pPilao: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: import("zod").ZodObject<{ + tabela: import("zod").ZodString; + colanuEixoX: import("zod").ZodString; + colunaSoma: import("zod").ZodString; + colunaAgrupamento: import("zod").ZodOptional>; + filtros: import("zod").ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", import("zod").ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: import("zod").ZodOptional; + }, "strip", import("zod").ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; zp_deletar_registros: import("zod").ZodObject<{ tabela: import("zod").ZodString; codigos: import("zod").ZodArray; @@ -501,5 +603,47 @@ export declare const pPilao: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: import("zod").ZodObject<{ + tabela: import("zod").ZodString; + colanuEixoX: import("zod").ZodString; + colunaSoma: import("zod").ZodString; + colunaAgrupamento: import("zod").ZodOptional>; + filtros: import("zod").ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", import("zod").ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: import("zod").ZodOptional; + }, "strip", import("zod").ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; }; }; diff --git a/dist-import/pilao-de-dados/visoes/index.d.ts b/dist-import/pilao-de-dados/visoes/index.d.ts index 7ff03ea..c6b4e06 100644 --- a/dist-import/pilao-de-dados/visoes/index.d.ts +++ b/dist-import/pilao-de-dados/visoes/index.d.ts @@ -39,6 +39,48 @@ export declare const z_contagem_em_barra_vertical: z.ZodObject<{ }[] | undefined; descricao_pelo_usuario?: string | undefined; }>; +export declare const z_soma_em_barra_vertical: z.ZodObject<{ + tabela: z.ZodString; + colanuEixoX: z.ZodString; + colunaSoma: z.ZodString; + colunaAgrupamento: z.ZodOptional>; + filtros: z.ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", z.ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; +}, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; +}>; export declare const z_contagem_em_pizza: z.ZodObject<{ tabela: z.ZodString; classes: z.ZodString; @@ -235,6 +277,48 @@ export declare const visoes: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: z.ZodObject<{ + tabela: z.ZodString; + colanuEixoX: z.ZodString; + colunaSoma: z.ZodString; + colunaAgrupamento: z.ZodOptional>; + filtros: z.ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", z.ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; }; /** Cria a estrutura de campos para insersão de dados */ export declare const extruturas_de_campos: { diff --git a/dist-import/pilao-de-dados/visoes/index.js b/dist-import/pilao-de-dados/visoes/index.js index ca35eaa..cec532a 100644 --- a/dist-import/pilao-de-dados/visoes/index.js +++ b/dist-import/pilao-de-dados/visoes/index.js @@ -16,6 +16,14 @@ export const z_contagem_em_barra_vertical = z.object({ filtros: z_filtro.array().optional(), descricao_pelo_usuario: z.string().optional(), }); +export const z_soma_em_barra_vertical = z.object({ + tabela: z.string(), + colanuEixoX: z.string(), + colunaSoma: z.string(), + colunaAgrupamento: z.string().array().optional(), + filtros: z_filtro.array().optional(), + descricao_pelo_usuario: z.string().optional(), +}); export const z_contagem_em_pizza = z.object({ tabela: z.string(), classes: z.string(), @@ -34,6 +42,7 @@ export const visoes = { z_contagem_em_barra_vertical, z_contagem_em_pizza, z_tabela, + z_soma_em_barra_vertical, }; /** Cria a estrutura de campos para insersão de dados */ export const extruturas_de_campos = { @@ -72,6 +81,46 @@ export const extruturas_de_campos = { 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 do Eixo X", + 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", diff --git a/dist-require/pilao-de-dados/index.d.ts b/dist-require/pilao-de-dados/index.d.ts index 946c0bd..4e2ab13 100644 --- a/dist-require/pilao-de-dados/index.d.ts +++ b/dist-require/pilao-de-dados/index.d.ts @@ -163,6 +163,66 @@ export declare const pPilao: { }; }; }; + z_soma_em_barra_vertical: { + visao: "z_soma_em_barra_vertical"; + rotulo: string; + tabela: (_: { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }) => string; + descricao: (_: { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }) => string; + campos: { + tabela: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colanuEixoX: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colunaSoma: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + colunaAgrupamento: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + filtros: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + descricao_pelo_usuario: { + rotulo: string; + tipo_campo: import("zod").TypeOf>; + order: number; + }; + }; + }; }; z_contagem_em_barra_vertical: import("zod").ZodObject<{ tabela: import("zod").ZodString; @@ -281,6 +341,48 @@ export declare const pPilao: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: import("zod").ZodObject<{ + tabela: import("zod").ZodString; + colanuEixoX: import("zod").ZodString; + colunaSoma: import("zod").ZodString; + colunaAgrupamento: import("zod").ZodOptional>; + filtros: import("zod").ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", import("zod").ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: import("zod").ZodOptional; + }, "strip", import("zod").ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; zp_deletar_registros: import("zod").ZodObject<{ tabela: import("zod").ZodString; codigos: import("zod").ZodArray; @@ -501,5 +603,47 @@ export declare const pPilao: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: import("zod").ZodObject<{ + tabela: import("zod").ZodString; + colanuEixoX: import("zod").ZodString; + colunaSoma: import("zod").ZodString; + colunaAgrupamento: import("zod").ZodOptional>; + filtros: import("zod").ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", import("zod").ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: import("zod").ZodOptional; + }, "strip", import("zod").ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; }; }; diff --git a/dist-require/pilao-de-dados/visoes/index.d.ts b/dist-require/pilao-de-dados/visoes/index.d.ts index 7ff03ea..c6b4e06 100644 --- a/dist-require/pilao-de-dados/visoes/index.d.ts +++ b/dist-require/pilao-de-dados/visoes/index.d.ts @@ -39,6 +39,48 @@ export declare const z_contagem_em_barra_vertical: z.ZodObject<{ }[] | undefined; descricao_pelo_usuario?: string | undefined; }>; +export declare const z_soma_em_barra_vertical: z.ZodObject<{ + tabela: z.ZodString; + colanuEixoX: z.ZodString; + colunaSoma: z.ZodString; + colunaAgrupamento: z.ZodOptional>; + filtros: z.ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", z.ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: z.ZodOptional; +}, "strip", z.ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; +}, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; +}>; export declare const z_contagem_em_pizza: z.ZodObject<{ tabela: z.ZodString; classes: z.ZodString; @@ -235,6 +277,48 @@ export declare const visoes: { coluna_ordem?: string | undefined; direcao_ordem?: "1" | "asc" | "desc" | "-1" | undefined; }>; + z_soma_em_barra_vertical: z.ZodObject<{ + tabela: z.ZodString; + colanuEixoX: z.ZodString; + colunaSoma: z.ZodString; + colunaAgrupamento: z.ZodOptional>; + filtros: z.ZodOptional", "<", ">=", "<=", "∩"]>; + }, "strip", z.ZodTypeAny, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }, { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }>, "many">>; + descricao_pelo_usuario: z.ZodOptional; + }, "strip", z.ZodTypeAny, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }, { + tabela: string; + colanuEixoX: string; + colunaSoma: string; + colunaAgrupamento?: string[] | undefined; + filtros?: { + coluna: string; + operador: "=" | "!=" | ">" | "<" | ">=" | "<=" | "∩"; + valor?: any; + }[] | undefined; + descricao_pelo_usuario?: string | undefined; + }>; }; /** Cria a estrutura de campos para insersão de dados */ export declare const extruturas_de_campos: { diff --git a/dist-require/pilao-de-dados/visoes/index.js b/dist-require/pilao-de-dados/visoes/index.js index f63bae8..e1e426a 100644 --- a/dist-require/pilao-de-dados/visoes/index.js +++ b/dist-require/pilao-de-dados/visoes/index.js @@ -1,6 +1,6 @@ "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; +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 @@ -19,6 +19,14 @@ exports.z_contagem_em_barra_vertical = zod_1.z.object({ 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(), @@ -37,6 +45,7 @@ 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 = { @@ -75,6 +84,46 @@ exports.extruturas_de_campos = { 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 do Eixo X", + 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", diff --git a/package.json b/package.json index 4184215..8156e78 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p-drives", - "version": "0.163.0", + "version": "0.164.0", "description": "", "main": "src/index.ts", "exports": { diff --git a/src/pilao-de-dados/visoes/index.ts b/src/pilao-de-dados/visoes/index.ts index ec59528..aaa1d63 100644 --- a/src/pilao-de-dados/visoes/index.ts +++ b/src/pilao-de-dados/visoes/index.ts @@ -19,6 +19,15 @@ export const z_contagem_em_barra_vertical = z.object({ descricao_pelo_usuario: z.string().optional(), }) +export const z_soma_em_barra_vertical = z.object({ + tabela: z.string(), + colanuEixoX: z.string(), + colunaSoma: z.string(), + colunaAgrupamento: z.string().array().optional(), + filtros: z_filtro.array().optional(), + descricao_pelo_usuario: z.string().optional(), +}) + export const z_contagem_em_pizza = z.object({ tabela: z.string(), classes: z.string(), @@ -39,6 +48,7 @@ export const visoes = { z_contagem_em_barra_vertical, z_contagem_em_pizza, z_tabela, + z_soma_em_barra_vertical, } /** Cria a estrutura de campos para insersão de dados */ @@ -112,6 +122,62 @@ export const extruturas_de_campos: { 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 do Eixo X", + 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",