@jvsoft/utils 0.0.13-alpha.6 → 1.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/jvsoft-utils-src-functions.mjs +445 -188
- package/fesm2022/jvsoft-utils-src-functions.mjs.map +1 -1
- package/fesm2022/jvsoft-utils-src-pipes.mjs +24 -24
- package/fesm2022/jvsoft-utils-src-pipes.mjs.map +1 -1
- package/fesm2022/jvsoft-utils.mjs +469 -212
- package/fesm2022/jvsoft-utils.mjs.map +1 -1
- package/functions/base64.d.ts +63 -0
- package/functions/dev-log.d.ts +97 -0
- package/functions/mat-form-controls/autocomplete.d.ts +29 -32
- package/functions/objects-arrays.d.ts +13 -97
- package/functions/public-api.d.ts +1 -0
- package/package.json +9 -2
- package/src/functions/base64.d.ts +63 -0
- package/src/functions/dev-log.d.ts +97 -0
- package/src/functions/mat-form-controls/autocomplete.d.ts +29 -32
- package/src/functions/objects-arrays.d.ts +13 -97
- package/src/functions/public-api.d.ts +1 -0
package/functions/base64.d.ts
CHANGED
|
@@ -1,26 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codifica un string a base64 (método legacy)
|
|
3
|
+
* @param val - String a codificar
|
|
4
|
+
* @returns String codificado en base64
|
|
5
|
+
* @deprecated Use encodeBase64String() en su lugar
|
|
6
|
+
*/
|
|
1
7
|
export declare function b64Encode(val: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Decodifica un string desde base64 (método legacy)
|
|
10
|
+
* @param val - String en base64 a decodificar
|
|
11
|
+
* @returns String decodificado
|
|
12
|
+
* @deprecated Use decodeBase64String() en su lugar
|
|
13
|
+
*/
|
|
2
14
|
export declare function b64Decode(val: string): string;
|
|
3
15
|
/**
|
|
4
16
|
* Codificar string a Base64 (UTF-8 seguro)
|
|
17
|
+
* @param str - String a codificar
|
|
18
|
+
* @returns String codificado en base64
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const encoded = encodeBase64String('Hola Mundo ñ');
|
|
23
|
+
* // encoded: "SG9sYSBNdW5kbyDDsQ=="
|
|
24
|
+
* ```
|
|
5
25
|
*/
|
|
6
26
|
export declare function encodeBase64String(str: string): string;
|
|
7
27
|
/**
|
|
8
28
|
* Decodificar Base64 a string (UTF-8 seguro)
|
|
29
|
+
* @param b64 - String en base64 a decodificar
|
|
30
|
+
* @returns String decodificado
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const decoded = decodeBase64String('SG9sYSBNdW5kbyDDsQ==');
|
|
35
|
+
* // decoded: "Hola Mundo ñ"
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export declare function decodeBase64String(b64: string): string;
|
|
11
39
|
/**
|
|
12
40
|
* Codificar un objeto a base64 (UTF-8 seguro)
|
|
41
|
+
* @param obj - Objeto a codificar
|
|
42
|
+
* @returns String codificado en base64
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const obj = { nombre: 'Juan', edad: 25 };
|
|
47
|
+
* const encoded = encodeBase64Object(obj);
|
|
48
|
+
* ```
|
|
13
49
|
*/
|
|
14
50
|
export declare function encodeBase64Object(obj: any): string;
|
|
15
51
|
/**
|
|
16
52
|
* Decodificar un base64 y obtener el objeto original
|
|
53
|
+
* @param b64 - String en base64 a decodificar
|
|
54
|
+
* @returns Objeto decodificado
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const obj = decodeBase64Object<{ nombre: string, edad: number }>(encoded);
|
|
59
|
+
* // obj: { nombre: 'Juan', edad: 25 }
|
|
60
|
+
* ```
|
|
17
61
|
*/
|
|
18
62
|
export declare function decodeBase64Object<T = any>(b64: string): T;
|
|
19
63
|
/**
|
|
20
64
|
* Codificar archivo a Base64 (retorna solo el contenido, sin "data:...")
|
|
65
|
+
* @param file - Archivo o Blob a codificar
|
|
66
|
+
* @returns Promise con el string en base64
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const file = event.target.files[0];
|
|
71
|
+
* const base64 = await encodeBase64File(file);
|
|
72
|
+
* // base64: "iVBORw0KGgoAAAANSUhEUgAA..."
|
|
73
|
+
* ```
|
|
21
74
|
*/
|
|
22
75
|
export declare function encodeBase64File(file: File | Blob): Promise<string>;
|
|
23
76
|
/**
|
|
24
77
|
* Decodificar Base64 a Blob (para reconstruir archivos en Angular)
|
|
78
|
+
* @param b64 - String en base64
|
|
79
|
+
* @param mimeType - Tipo MIME del archivo (opcional)
|
|
80
|
+
* @returns Blob con el contenido decodificado
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const blob = decodeBase64ToBlob(base64String, 'image/png');
|
|
85
|
+
* const url = URL.createObjectURL(blob);
|
|
86
|
+
* // Usar url para mostrar imagen o descargar
|
|
87
|
+
* ```
|
|
25
88
|
*/
|
|
26
89
|
export declare function decodeBase64ToBlob(b64: string, mimeType?: string): Blob;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configura el modo de producción para las utilidades de logging
|
|
3
|
+
* @param production - true si está en modo producción, false para desarrollo
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { setProductionMode } from '@jvsoft/utils';
|
|
8
|
+
* import { environment } from './environments/environment';
|
|
9
|
+
*
|
|
10
|
+
* setProductionMode(environment.production);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function setProductionMode(production: boolean): void;
|
|
14
|
+
/**
|
|
15
|
+
* Obtiene el estado actual del modo de producción
|
|
16
|
+
* @returns true si está en modo producción, false en desarrollo
|
|
17
|
+
*/
|
|
18
|
+
export declare function isProduction(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Muestra mensajes de log solo en modo desarrollo
|
|
21
|
+
* @param args - Argumentos a mostrar en consola
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* devLog('Usuario cargado:', usuario);
|
|
26
|
+
* devLog('Estado:', { activo: true, rol: 'admin' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function devLog(...args: any[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Muestra advertencias solo en modo desarrollo
|
|
32
|
+
* @param args - Argumentos a mostrar como advertencia
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* devWarn('Función deprecada, usar nuevaFuncion() en su lugar');
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function devWarn(...args: any[]): void;
|
|
40
|
+
/**
|
|
41
|
+
* Muestra errores en consola (siempre, incluso en producción)
|
|
42
|
+
* @param args - Argumentos a mostrar como error
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* devError('Error al cargar datos:', error);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function devError(...args: any[]): void;
|
|
50
|
+
/**
|
|
51
|
+
* Crea un grupo de logs solo en modo desarrollo
|
|
52
|
+
* @param label - Etiqueta del grupo
|
|
53
|
+
* @param collapsed - Si el grupo debe estar colapsado por defecto
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* devGroup('Datos del usuario');
|
|
58
|
+
* devLog('Nombre:', usuario.nombre);
|
|
59
|
+
* devLog('Email:', usuario.email);
|
|
60
|
+
* devGroupEnd();
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function devGroup(label: string, collapsed?: boolean): void;
|
|
64
|
+
/**
|
|
65
|
+
* Cierra el grupo de logs actual
|
|
66
|
+
*/
|
|
67
|
+
export declare function devGroupEnd(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Muestra una tabla en consola solo en modo desarrollo
|
|
70
|
+
* @param data - Datos a mostrar en formato tabla
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* devTable([
|
|
75
|
+
* { nombre: 'Juan', edad: 25 },
|
|
76
|
+
* { nombre: 'María', edad: 30 }
|
|
77
|
+
* ]);
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function devTable(data: any): void;
|
|
81
|
+
/**
|
|
82
|
+
* Inicia un temporizador solo en modo desarrollo
|
|
83
|
+
* @param label - Etiqueta del temporizador
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* devTime('carga-datos');
|
|
88
|
+
* // ... código a medir
|
|
89
|
+
* devTimeEnd('carga-datos'); // Muestra: carga-datos: 123.45ms
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function devTime(label: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Finaliza un temporizador y muestra el tiempo transcurrido
|
|
95
|
+
* @param label - Etiqueta del temporizador
|
|
96
|
+
*/
|
|
97
|
+
export declare function devTimeEnd(label: string): void;
|
|
@@ -1,26 +1,40 @@
|
|
|
1
1
|
import { AbstractControl } from '@angular/forms';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* Compatible con listas simples, objetos y campos múltiples.
|
|
5
|
-
*/
|
|
6
|
-
export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): any;
|
|
7
|
-
/**
|
|
8
|
-
* Vincula un FormControl a datos locales para autocompletado.
|
|
9
|
-
*/
|
|
10
|
-
export declare function changeSelectData(objThis: any, { formControl, data, campoBuscar, variableResultado }: {
|
|
2
|
+
export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): string;
|
|
3
|
+
export declare function changeSelectData(objThis: any, dataFiltro: {
|
|
11
4
|
formControl: AbstractControl;
|
|
12
5
|
data: any[];
|
|
13
6
|
campoBuscar: string | string[];
|
|
14
7
|
variableResultado: string;
|
|
15
8
|
}): void;
|
|
9
|
+
export declare function changeSelect(control: any, formControl: AbstractControl, tipo: any, campoBuscar: any, campoFiltro?: null): void;
|
|
10
|
+
export declare function changeSelectDataApi(objThis: any, dataFiltro: {
|
|
11
|
+
tipoReq: string;
|
|
12
|
+
campoId?: string;
|
|
13
|
+
minLength?: number;
|
|
14
|
+
dataExtra?: any;
|
|
15
|
+
dataExtraVariable?: any;
|
|
16
|
+
anonimo?: boolean;
|
|
17
|
+
queryService: any;
|
|
18
|
+
formControl: AbstractControl;
|
|
19
|
+
variableResultado?: string;
|
|
20
|
+
}): void;
|
|
21
|
+
export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
|
|
16
22
|
/**
|
|
17
|
-
*
|
|
23
|
+
* Comprueba si un valor es una Promesa
|
|
24
|
+
* @param valor - Valor a verificar
|
|
25
|
+
* @returns true si es una Promise
|
|
18
26
|
*/
|
|
19
|
-
export declare function
|
|
27
|
+
export declare function esPromise(valor: any): boolean;
|
|
20
28
|
/**
|
|
21
|
-
*
|
|
29
|
+
* Selecciona todo el texto de un input
|
|
30
|
+
* @param event - Evento del input
|
|
22
31
|
*/
|
|
23
|
-
|
|
32
|
+
export declare function seleccionarTextoInput(event: any): void;
|
|
33
|
+
/**
|
|
34
|
+
* Función genérica para vincular un FormControl con datos desde API o Promise.
|
|
35
|
+
* Preparada para migrar a signals en el futuro.
|
|
36
|
+
*/
|
|
37
|
+
export declare function changeSelectReformateado(config: {
|
|
24
38
|
objThis: any;
|
|
25
39
|
tipoReq: string;
|
|
26
40
|
formControl: AbstractControl;
|
|
@@ -28,24 +42,7 @@ interface ChangeSelectConfig {
|
|
|
28
42
|
campoId?: string;
|
|
29
43
|
minLength?: number;
|
|
30
44
|
dataExtra?: any;
|
|
31
|
-
dataExtraVariable?:
|
|
32
|
-
campo: string;
|
|
33
|
-
ctrlValue: AbstractControl;
|
|
34
|
-
}[];
|
|
45
|
+
dataExtraVariable?: any[];
|
|
35
46
|
anonimo?: boolean;
|
|
36
47
|
variableResultado?: string;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Función genérica para vincular un FormControl con datos desde API o Promise.
|
|
40
|
-
* Preparada para migrar a signals en el futuro.
|
|
41
|
-
*/
|
|
42
|
-
export declare function changeSelectReformateado(config: ChangeSelectConfig): void;
|
|
43
|
-
/**
|
|
44
|
-
* Alias para compatibilidad.
|
|
45
|
-
*/
|
|
46
|
-
export declare function changeSelectDataApi(objThis: any, dataFiltro: any): void;
|
|
47
|
-
/**
|
|
48
|
-
* Alias para compatibilidad.
|
|
49
|
-
*/
|
|
50
|
-
export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
|
|
51
|
-
export {};
|
|
48
|
+
}): void;
|
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Realiza una fusión profunda entre dos objetos, sin modificar el original.
|
|
3
|
-
* Si el valor en target no es un objeto, lo reemplaza directamente.
|
|
4
|
-
*
|
|
5
|
-
* @param source - Objeto fuente que se clonará y fusionará.
|
|
6
|
-
* @param target - Objeto destino cuyos valores se fusionarán.
|
|
7
|
-
* @returns Un nuevo objeto con la fusión profunda.
|
|
8
|
-
*/
|
|
9
1
|
export declare function deepMerge(source: any, target: any): any;
|
|
10
|
-
/**
|
|
11
|
-
* Realiza una clonación profunda de un objeto, manejando funciones, fechas y arrays.
|
|
12
|
-
*
|
|
13
|
-
* @param obj - Objeto a clonar.
|
|
14
|
-
* @returns Una copia profunda del objeto.
|
|
15
|
-
*/
|
|
16
2
|
export declare function deepClone(obj: any): any;
|
|
17
3
|
/**
|
|
18
4
|
* Busca un elemento en un array o jerarquía de objetos según un campo y valor especificado.
|
|
19
5
|
*
|
|
20
|
-
* @param datosFn - Objeto con los parámetros de búsqueda: items, campo, valor y opcionalmente campoHijo.
|
|
21
6
|
* @returns El elemento encontrado o undefined si no existe.
|
|
22
7
|
*/
|
|
23
8
|
export declare function buscarPorCampo<T>(datosFn: {
|
|
@@ -26,91 +11,29 @@ export declare function buscarPorCampo<T>(datosFn: {
|
|
|
26
11
|
valor: any;
|
|
27
12
|
campoHijo?: string;
|
|
28
13
|
}): T | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Suma los valores de las propiedades especificadas de un objeto.
|
|
31
|
-
*
|
|
32
|
-
* @param item - Objeto con las propiedades a sumar.
|
|
33
|
-
* @param campos - Array de nombres de las propiedades a sumar.
|
|
34
|
-
* @returns La suma de los valores de las propiedades.
|
|
35
|
-
*/
|
|
36
14
|
export declare function sumarPropiedades(item: Record<string, any>, campos: string[]): number;
|
|
37
|
-
/**
|
|
38
|
-
* Verifica si el valor proporcionado es un número válido.
|
|
39
|
-
*
|
|
40
|
-
* @param value - Valor a verificar.
|
|
41
|
-
* @returns true si es un número, false en caso contrario.
|
|
42
|
-
*/
|
|
43
15
|
export declare function esNumero(value: any): boolean;
|
|
44
|
-
/**
|
|
45
|
-
* Suma los valores de las propiedades especificadas en un array de objetos.
|
|
46
|
-
*
|
|
47
|
-
* @param arrayObjetos - Array de objetos a procesar.
|
|
48
|
-
* @param campos - Array de nombres de las propiedades a sumar.
|
|
49
|
-
* @returns Objeto con la suma de cada propiedad.
|
|
50
|
-
*/
|
|
51
16
|
export declare function sumarObjetos(arrayObjetos: any[], campos: string[]): Record<string, number>;
|
|
52
|
-
/**
|
|
53
|
-
* Obtiene los valores únicos de un array.
|
|
54
|
-
*
|
|
55
|
-
* @param array - Array de valores.
|
|
56
|
-
* @returns Array con los valores únicos.
|
|
57
|
-
*/
|
|
58
17
|
export declare function getUniqueValues(array: any[]): any[];
|
|
59
|
-
/**
|
|
60
|
-
* Obtiene los objetos únicos de un array según una propiedad específica.
|
|
61
|
-
*
|
|
62
|
-
* @param objetos - Array de objetos.
|
|
63
|
-
* @param campo - Nombre de la propiedad para determinar unicidad.
|
|
64
|
-
* @returns Array de objetos únicos por la propiedad.
|
|
65
|
-
*/
|
|
66
18
|
export declare function getUniqueValuesByProperty<T>(objetos: T[], campo: string): T[];
|
|
67
|
-
/**
|
|
68
|
-
* Ordena un array de valores numéricos o alfabéticos.
|
|
69
|
-
*
|
|
70
|
-
* @param array - Array a ordenar.
|
|
71
|
-
* @param numeros - Si es true, ordena como números.
|
|
72
|
-
* @param sentido - 'ASC' para ascendente, 'DESC' para descendente.
|
|
73
|
-
* @returns Array ordenado.
|
|
74
|
-
*/
|
|
75
19
|
export declare function ordenarArray(array: any[], numeros?: boolean, sentido?: 'ASC' | 'DESC'): any[];
|
|
76
|
-
/**
|
|
77
|
-
* Ordena un array de objetos por una propiedad específica.
|
|
78
|
-
*
|
|
79
|
-
* @param objData - Array de objetos a ordenar.
|
|
80
|
-
* @param propiedad - Propiedad por la que se ordena.
|
|
81
|
-
* @param numeros - (Obsoleto) Si es true, ordena como números.
|
|
82
|
-
* @returns Array ordenado.
|
|
83
|
-
*/
|
|
84
20
|
export declare function ordenarPorPropiedad(objData: any, propiedad: string, /**@deprecated*/ numeros?: boolean): {
|
|
85
21
|
[x: string]: {};
|
|
86
22
|
}[];
|
|
87
|
-
/**
|
|
88
|
-
* Ordena un array de objetos por varias propiedades y direcciones.
|
|
89
|
-
*
|
|
90
|
-
* @param arr - Array de objetos a ordenar.
|
|
91
|
-
* @param options - Opciones con propiedades y direcciones de orden.
|
|
92
|
-
* @returns Array ordenado.
|
|
93
|
-
*/
|
|
94
23
|
export declare function ordenarPorPropiedades<T>(arr: T[], options: {
|
|
95
24
|
propiedades: (keyof T)[];
|
|
96
25
|
direcciones?: ('asc' | 'desc' | '')[];
|
|
97
26
|
}): T[];
|
|
98
|
-
/**
|
|
99
|
-
* Agrupa los elementos de un array según una clave o función de clave.
|
|
100
|
-
*
|
|
101
|
-
* @param array - Array de objetos a agrupar.
|
|
102
|
-
* @param key - Propiedad o función para agrupar.
|
|
103
|
-
* @returns Objeto con los grupos por clave.
|
|
104
|
-
*/
|
|
105
27
|
export declare function groupBy<T extends Record<string, any>, K extends keyof T>(array: T[], key: K | ((obj: T) => string)): Record<string, T[]>;
|
|
28
|
+
export declare function nestGroupsBy(arr: any, properties: any): any;
|
|
106
29
|
/**
|
|
107
|
-
*
|
|
30
|
+
* Obtiene un valor de un objeto usando una ruta de propiedad anidada.
|
|
108
31
|
*
|
|
109
|
-
* @param
|
|
110
|
-
* @param
|
|
111
|
-
* @returns
|
|
32
|
+
* @param obj - Objeto de entrada.
|
|
33
|
+
* @param path - Ruta en formato punto (ej: "cliente.orden").
|
|
34
|
+
* @returns El valor encontrado o undefined si no existe.
|
|
112
35
|
*/
|
|
113
|
-
export declare function
|
|
36
|
+
export declare function getValueByPath(obj: any, path: string): any;
|
|
114
37
|
/**
|
|
115
38
|
* Retorna el valor máximo del campo especificado (incluso anidado) en un arreglo de objetos.
|
|
116
39
|
*
|
|
@@ -128,20 +51,13 @@ export declare function obtenerUltimoOrden(data: any[], campo: string, increment
|
|
|
128
51
|
* @returns Nuevo array con las columnas eliminadas.
|
|
129
52
|
*/
|
|
130
53
|
export declare function eliminarColumnaPorIndex<T extends unknown[][]>(data: T, columnIndex: number | number[]): T;
|
|
131
|
-
/**
|
|
132
|
-
* Elimina elementos duplicados de un array de objetos según claves específicas.
|
|
133
|
-
*
|
|
134
|
-
* @param array - Array de objetos.
|
|
135
|
-
* @param claves - Claves para determinar unicidad. Si no se especifica, compara todo el objeto.
|
|
136
|
-
* @returns Array sin duplicados.
|
|
137
|
-
*/
|
|
138
54
|
export declare function eliminarDuplicados<T extends object>(array: T[], claves?: (keyof T)[]): T[];
|
|
55
|
+
export declare function eliminarElementos<T extends object>(origen: T[], elementosAEliminar: T[], claves?: (keyof T)[]): T[];
|
|
139
56
|
/**
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* @param
|
|
143
|
-
* @param
|
|
144
|
-
* @
|
|
145
|
-
* @returns Array filtrado sin los elementos eliminados.
|
|
57
|
+
* Filtra datos localmente según un valor de búsqueda
|
|
58
|
+
* @param data - Array de datos a filtrar
|
|
59
|
+
* @param value - Valor de búsqueda
|
|
60
|
+
* @param campoBuscar - Campo(s) por el cual buscar
|
|
61
|
+
* @returns Array filtrado
|
|
146
62
|
*/
|
|
147
|
-
export declare function
|
|
63
|
+
export declare function filtrarDatosLocal(data: any[], value: any, campoBuscar: string | string[]): any[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jvsoft/utils",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0-alpha.5",
|
|
4
4
|
"description": "JVSOFT Angular Utils",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"tag": "alpha",
|
|
@@ -11,7 +11,14 @@
|
|
|
11
11
|
"@angular/core": ">=16.0.0",
|
|
12
12
|
"@angular/forms": ">=16.0.0",
|
|
13
13
|
"@angular/material": ">=16.0.0",
|
|
14
|
-
"@rxweb/reactive-form-validators": ">=13.0.0"
|
|
14
|
+
"@rxweb/reactive-form-validators": ">=13.0.0",
|
|
15
|
+
"crypto-js": "^4.2.0",
|
|
16
|
+
"file-saver": "^2.0.5",
|
|
17
|
+
"jwt-decode": "^4.0.0",
|
|
18
|
+
"moment": "^2.30.1",
|
|
19
|
+
"ngx-toastr": "^19.0.0",
|
|
20
|
+
"sweetalert2": "^11.17.2",
|
|
21
|
+
"xlsx": "^0.18.5"
|
|
15
22
|
},
|
|
16
23
|
"sideEffects": false,
|
|
17
24
|
"module": "fesm2022/jvsoft-utils.mjs",
|
|
@@ -1,26 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Codifica un string a base64 (método legacy)
|
|
3
|
+
* @param val - String a codificar
|
|
4
|
+
* @returns String codificado en base64
|
|
5
|
+
* @deprecated Use encodeBase64String() en su lugar
|
|
6
|
+
*/
|
|
1
7
|
export declare function b64Encode(val: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Decodifica un string desde base64 (método legacy)
|
|
10
|
+
* @param val - String en base64 a decodificar
|
|
11
|
+
* @returns String decodificado
|
|
12
|
+
* @deprecated Use decodeBase64String() en su lugar
|
|
13
|
+
*/
|
|
2
14
|
export declare function b64Decode(val: string): string;
|
|
3
15
|
/**
|
|
4
16
|
* Codificar string a Base64 (UTF-8 seguro)
|
|
17
|
+
* @param str - String a codificar
|
|
18
|
+
* @returns String codificado en base64
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const encoded = encodeBase64String('Hola Mundo ñ');
|
|
23
|
+
* // encoded: "SG9sYSBNdW5kbyDDsQ=="
|
|
24
|
+
* ```
|
|
5
25
|
*/
|
|
6
26
|
export declare function encodeBase64String(str: string): string;
|
|
7
27
|
/**
|
|
8
28
|
* Decodificar Base64 a string (UTF-8 seguro)
|
|
29
|
+
* @param b64 - String en base64 a decodificar
|
|
30
|
+
* @returns String decodificado
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const decoded = decodeBase64String('SG9sYSBNdW5kbyDDsQ==');
|
|
35
|
+
* // decoded: "Hola Mundo ñ"
|
|
36
|
+
* ```
|
|
9
37
|
*/
|
|
10
38
|
export declare function decodeBase64String(b64: string): string;
|
|
11
39
|
/**
|
|
12
40
|
* Codificar un objeto a base64 (UTF-8 seguro)
|
|
41
|
+
* @param obj - Objeto a codificar
|
|
42
|
+
* @returns String codificado en base64
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const obj = { nombre: 'Juan', edad: 25 };
|
|
47
|
+
* const encoded = encodeBase64Object(obj);
|
|
48
|
+
* ```
|
|
13
49
|
*/
|
|
14
50
|
export declare function encodeBase64Object(obj: any): string;
|
|
15
51
|
/**
|
|
16
52
|
* Decodificar un base64 y obtener el objeto original
|
|
53
|
+
* @param b64 - String en base64 a decodificar
|
|
54
|
+
* @returns Objeto decodificado
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const obj = decodeBase64Object<{ nombre: string, edad: number }>(encoded);
|
|
59
|
+
* // obj: { nombre: 'Juan', edad: 25 }
|
|
60
|
+
* ```
|
|
17
61
|
*/
|
|
18
62
|
export declare function decodeBase64Object<T = any>(b64: string): T;
|
|
19
63
|
/**
|
|
20
64
|
* Codificar archivo a Base64 (retorna solo el contenido, sin "data:...")
|
|
65
|
+
* @param file - Archivo o Blob a codificar
|
|
66
|
+
* @returns Promise con el string en base64
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const file = event.target.files[0];
|
|
71
|
+
* const base64 = await encodeBase64File(file);
|
|
72
|
+
* // base64: "iVBORw0KGgoAAAANSUhEUgAA..."
|
|
73
|
+
* ```
|
|
21
74
|
*/
|
|
22
75
|
export declare function encodeBase64File(file: File | Blob): Promise<string>;
|
|
23
76
|
/**
|
|
24
77
|
* Decodificar Base64 a Blob (para reconstruir archivos en Angular)
|
|
78
|
+
* @param b64 - String en base64
|
|
79
|
+
* @param mimeType - Tipo MIME del archivo (opcional)
|
|
80
|
+
* @returns Blob con el contenido decodificado
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const blob = decodeBase64ToBlob(base64String, 'image/png');
|
|
85
|
+
* const url = URL.createObjectURL(blob);
|
|
86
|
+
* // Usar url para mostrar imagen o descargar
|
|
87
|
+
* ```
|
|
25
88
|
*/
|
|
26
89
|
export declare function decodeBase64ToBlob(b64: string, mimeType?: string): Blob;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configura el modo de producción para las utilidades de logging
|
|
3
|
+
* @param production - true si está en modo producción, false para desarrollo
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* import { setProductionMode } from '@jvsoft/utils';
|
|
8
|
+
* import { environment } from './environments/environment';
|
|
9
|
+
*
|
|
10
|
+
* setProductionMode(environment.production);
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function setProductionMode(production: boolean): void;
|
|
14
|
+
/**
|
|
15
|
+
* Obtiene el estado actual del modo de producción
|
|
16
|
+
* @returns true si está en modo producción, false en desarrollo
|
|
17
|
+
*/
|
|
18
|
+
export declare function isProduction(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Muestra mensajes de log solo en modo desarrollo
|
|
21
|
+
* @param args - Argumentos a mostrar en consola
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* devLog('Usuario cargado:', usuario);
|
|
26
|
+
* devLog('Estado:', { activo: true, rol: 'admin' });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function devLog(...args: any[]): void;
|
|
30
|
+
/**
|
|
31
|
+
* Muestra advertencias solo en modo desarrollo
|
|
32
|
+
* @param args - Argumentos a mostrar como advertencia
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* devWarn('Función deprecada, usar nuevaFuncion() en su lugar');
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function devWarn(...args: any[]): void;
|
|
40
|
+
/**
|
|
41
|
+
* Muestra errores en consola (siempre, incluso en producción)
|
|
42
|
+
* @param args - Argumentos a mostrar como error
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* devError('Error al cargar datos:', error);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function devError(...args: any[]): void;
|
|
50
|
+
/**
|
|
51
|
+
* Crea un grupo de logs solo en modo desarrollo
|
|
52
|
+
* @param label - Etiqueta del grupo
|
|
53
|
+
* @param collapsed - Si el grupo debe estar colapsado por defecto
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* devGroup('Datos del usuario');
|
|
58
|
+
* devLog('Nombre:', usuario.nombre);
|
|
59
|
+
* devLog('Email:', usuario.email);
|
|
60
|
+
* devGroupEnd();
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
export declare function devGroup(label: string, collapsed?: boolean): void;
|
|
64
|
+
/**
|
|
65
|
+
* Cierra el grupo de logs actual
|
|
66
|
+
*/
|
|
67
|
+
export declare function devGroupEnd(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Muestra una tabla en consola solo en modo desarrollo
|
|
70
|
+
* @param data - Datos a mostrar en formato tabla
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* devTable([
|
|
75
|
+
* { nombre: 'Juan', edad: 25 },
|
|
76
|
+
* { nombre: 'María', edad: 30 }
|
|
77
|
+
* ]);
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function devTable(data: any): void;
|
|
81
|
+
/**
|
|
82
|
+
* Inicia un temporizador solo en modo desarrollo
|
|
83
|
+
* @param label - Etiqueta del temporizador
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* devTime('carga-datos');
|
|
88
|
+
* // ... código a medir
|
|
89
|
+
* devTimeEnd('carga-datos'); // Muestra: carga-datos: 123.45ms
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function devTime(label: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* Finaliza un temporizador y muestra el tiempo transcurrido
|
|
95
|
+
* @param label - Etiqueta del temporizador
|
|
96
|
+
*/
|
|
97
|
+
export declare function devTimeEnd(label: string): void;
|