This commit is contained in:
Luiz Silva 2026-02-15 15:17:08 -03:00
parent 8a5596e860
commit 57325f6744
100 changed files with 16153 additions and 4623 deletions

View file

@ -1,40 +1,55 @@
export type EliTabelaColunasConfig = {
/** Rotulos das colunas visiveis (em ordem). */
visiveis: string[];
visiveis: string[]
/** Rotulos das colunas invisiveis. */
invisiveis: string[];
};
invisiveis: string[]
}
const STORAGE_PREFIX = "eli:tabela";
const STORAGE_PREFIX = "eli:tabela"
export function storageKeyColunas(nomeTabela: string) {
return `${STORAGE_PREFIX}:${nomeTabela}:colunas`;
return `${STORAGE_PREFIX}:${nomeTabela}:colunas`
}
function normalizarConfig(valor: unknown): EliTabelaColunasConfig {
if (!valor || typeof valor !== "object") {
return { visiveis: [], invisiveis: [] };
return { visiveis: [], invisiveis: [] }
}
const v = valor as any;
const visiveis = Array.isArray(v.visiveis) ? v.visiveis.filter((x: any) => typeof x === "string") : [];
const invisiveis = Array.isArray(v.invisiveis) ? v.invisiveis.filter((x: any) => typeof x === "string") : [];
return { visiveis, invisiveis };
// biome-ignore lint/suspicious/noExplicitAny: dynamic config
const v = valor as any
const visiveis = Array.isArray(v.visiveis)
? // biome-ignore lint/suspicious/noExplicitAny: dynamic array item
v.visiveis.filter((x: any) => typeof x === "string")
: []
const invisiveis = Array.isArray(v.invisiveis)
? // biome-ignore lint/suspicious/noExplicitAny: dynamic array item
v.invisiveis.filter((x: any) => typeof x === "string")
: []
return { visiveis, invisiveis }
}
export function carregarConfigColunas(nomeTabela: string): EliTabelaColunasConfig {
export function carregarConfigColunas(
nomeTabela: string,
): EliTabelaColunasConfig {
try {
const raw = window.localStorage.getItem(storageKeyColunas(nomeTabela));
if (!raw) return { visiveis: [], invisiveis: [] };
return normalizarConfig(JSON.parse(raw));
const raw = window.localStorage.getItem(storageKeyColunas(nomeTabela))
if (!raw) return { visiveis: [], invisiveis: [] }
return normalizarConfig(JSON.parse(raw))
} catch {
return { visiveis: [], invisiveis: [] };
return { visiveis: [], invisiveis: [] }
}
}
export function salvarConfigColunas(nomeTabela: string, config: EliTabelaColunasConfig) {
export function salvarConfigColunas(
nomeTabela: string,
config: EliTabelaColunasConfig,
) {
try {
window.localStorage.setItem(storageKeyColunas(nomeTabela), JSON.stringify(normalizarConfig(config)));
window.localStorage.setItem(
storageKeyColunas(nomeTabela),
JSON.stringify(normalizarConfig(config)),
)
} catch {
// ignore
}
@ -42,7 +57,7 @@ export function salvarConfigColunas(nomeTabela: string, config: EliTabelaColunas
export function limparConfigColunas(nomeTabela: string) {
try {
window.localStorage.removeItem(storageKeyColunas(nomeTabela));
window.localStorage.removeItem(storageKeyColunas(nomeTabela))
} catch {
// ignore
}