melhorias em tabelas

This commit is contained in:
Luiz Silva 2026-02-16 10:17:07 -03:00
parent 57325f6744
commit 5438901670
7 changed files with 189 additions and 157 deletions

251
dist/eli-vue.es.js vendored

File diff suppressed because one or more lines are too long

6
dist/eli-vue.umd.js vendored

File diff suppressed because one or more lines are too long

View file

@ -2,7 +2,7 @@
import { type PropType } from "vue";
import { type EliTabelaColunasConfig } from "./colunasStorage";
/** Tipos da configuração/contrato da tabela */
import type { parametrosConsulta, tipoEliColuna, tipoEliTabelaConsulta } from "./types-eli-tabela";
import type { parametrosConsulta, tipoEliColuna, tipoEliTabelaConsulta, tipoFiltro } from "./types-eli-tabela";
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
@ -40,9 +40,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
icone?: import("lucide-vue-next").LucideIcon;
cor?: string;
rotulo: string;
acao: (parametrosConsulta?: parametrosConsulta<any> | undefined) => void;
atualizarConsulta?: () => Promise<void>;
editarLista?: ((lista: any[]) => Promise<any[]>) | undefined;
acao: (parametrosConsulta: parametrosConsulta<any> & {
atualizarConsulta: () => Promise<void>;
editarLista: (lista: any[]) => Promise<any[]>;
}) => void;
}[]>;
temAcoesSuperiores: import("vue").ComputedRef<boolean>;
acoesInferiores: import("vue").ComputedRef<{
@ -50,12 +51,22 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
icone?: import("lucide-vue-next").LucideIcon;
cor?: string;
rotulo: string;
acao: (parametrosConsulta?: parametrosConsulta<any> | undefined) => void;
atualizarConsulta?: () => Promise<void>;
editarLista?: ((lista: any[]) => Promise<any[]>) | undefined;
acao: (parametrosConsulta: parametrosConsulta<any> & {
atualizarConsulta: () => Promise<void>;
editarLista: (lista: any[]) => Promise<any[]>;
}) => void;
}[]>;
temAcoesInferiores: import("vue").ComputedRef<boolean>;
parametrosConsultaAtuais: import("vue").ComputedRef<parametrosConsulta<any>>;
parametrosConsultaAtuais: import("vue").ComputedRef<{
atualizarConsulta: () => Promise<void>;
editarLista: (novaLista: any[]) => Promise<any[]>;
filtros?: tipoFiltro[];
coluna_ordem?: string | number | symbol | undefined;
direcao_ordem?: "asc" | "desc";
offSet?: number;
limit?: number;
texto_busca?: string;
}>;
temAcoes: import("vue").ComputedRef<boolean>;
totalColunas: import("vue").ComputedRef<number>;
colunasEfetivas: import("vue").ComputedRef<any[]>;

View file

@ -101,17 +101,18 @@ export type tipoEliTabelaConsulta<T> = {
/** Texto descritivo da ação. */
rotulo: string;
/** Função executada ao clicar no botão. */
acao: (parametrosConsulta?: parametrosConsulta<T>) => void;
acao: (parametrosConsulta: parametrosConsulta<T> & {
/**
* Callback opcional para forçar atualização da consulta.
* Observação: o componente `EliTabela` pode ignorar isso dependendo do modo de uso.
*/
atualizarConsulta?: () => Promise<void>;
atualizarConsulta: () => Promise<void>;
/**
* Callback opcional para permitir editar a lista localmente (sem refazer consulta).
* Observação: o componente `EliTabela` pode ignorar isso dependendo do modo de uso.
*/
editarLista?: (lista: T[]) => Promise<T[]>;
editarLista: (lista: T[]) => Promise<T[]>;
}) => void;
}[];
filtroAvancado?: {
coluna: keyof T;

View file

@ -1,6 +1,6 @@
{
"name": "eli-vue",
"version": "0.1.94",
"version": "0.1.95",
"private": false,
"main": "./dist/eli-vue.umd.js",
"module": "./dist/eli-vue.es.js",

View file

@ -302,7 +302,17 @@ export default defineComponent({
params.direcao_ordem = direcaoOrdenacao.value
}
return params
return {
...params,
atualizarConsulta: async () => {
await carregar()
},
// biome-ignore lint/suspicious/noExplicitAny: dynamic list update
editarLista: async (novaLista: any[]) => {
linhas.value = novaLista
return novaLista
},
}
})
/** Colunas: visibilidade/ordem com persistência */

View file

@ -125,18 +125,21 @@ export type tipoEliTabelaConsulta<T> = {
/** Texto descritivo da ação. */
rotulo: string
/** Função executada ao clicar no botão. */
acao: (parametrosConsulta?: parametrosConsulta<T>) => void
acao: (
parametrosConsulta: parametrosConsulta<T> & {
/**
* Callback opcional para forçar atualização da consulta.
* Observação: o componente `EliTabela` pode ignorar isso dependendo do modo de uso.
*/
atualizarConsulta?: () => Promise<void>
atualizarConsulta: () => Promise<void>
/**
* Callback opcional para permitir editar a lista localmente (sem refazer consulta).
* Observação: o componente `EliTabela` pode ignorar isso dependendo do modo de uso.
*/
editarLista?: (lista: T[]) => Promise<T[]>
editarLista: (lista: T[]) => Promise<T[]>
},
) => void
}[]
filtroAvancado?: {