@jvsoft/utils 0.0.13-alpha.3 → 0.0.13-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.
@@ -1,21 +1,51 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
- export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): string;
3
- export declare function changeSelectData(objThis: any, dataFiltro: {
2
+ /**
3
+ * Devuelve un valor de visualización para un elemento buscado.
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 }: {
4
11
  formControl: AbstractControl;
5
12
  data: any[];
6
13
  campoBuscar: string | string[];
7
14
  variableResultado: string;
8
15
  }): 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: {
16
+ /**
17
+ * Vincula un FormControl a datos locales obtenidos de dataServidor o dataServidorSuscripcion.
18
+ */
19
+ export declare function changeSelect(control: any, formControl: AbstractControl, tipo: string, campoBuscar: string | string[], campoFiltro?: string | null): void;
20
+ /**
21
+ * Configuración para changeSelectReformateado.
22
+ */
23
+ interface ChangeSelectConfig {
24
+ objThis: any;
11
25
  tipoReq: string;
26
+ formControl: AbstractControl;
27
+ queryService: any;
12
28
  campoId?: string;
13
29
  minLength?: number;
14
30
  dataExtra?: any;
15
- dataExtraVariable?: any;
31
+ dataExtraVariable?: {
32
+ campo: string;
33
+ ctrlValue: AbstractControl;
34
+ }[];
16
35
  anonimo?: boolean;
17
- queryService: any;
18
- formControl: AbstractControl;
19
36
  variableResultado?: string;
20
- }): void;
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
+ */
21
50
  export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
51
+ export {};
@@ -1,8 +1,23 @@
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
+ */
1
9
  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
+ */
2
16
  export declare function deepClone(obj: any): any;
3
17
  /**
4
18
  * Busca un elemento en un array o jerarquía de objetos según un campo y valor especificado.
5
19
  *
20
+ * @param datosFn - Objeto con los parámetros de búsqueda: items, campo, valor y opcionalmente campoHijo.
6
21
  * @returns El elemento encontrado o undefined si no existe.
7
22
  */
8
23
  export declare function buscarPorCampo<T>(datosFn: {
@@ -11,20 +26,90 @@ export declare function buscarPorCampo<T>(datosFn: {
11
26
  valor: any;
12
27
  campoHijo?: string;
13
28
  }): 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
+ */
14
36
  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
+ */
15
43
  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
+ */
16
51
  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
+ */
17
58
  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
+ */
18
66
  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
+ */
19
75
  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
+ */
20
84
  export declare function ordenarPorPropiedad(objData: any, propiedad: string, /**@deprecated*/ numeros?: boolean): {
21
85
  [x: string]: {};
22
86
  }[];
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
+ */
23
94
  export declare function ordenarPorPropiedades<T>(arr: T[], options: {
24
95
  propiedades: (keyof T)[];
25
96
  direcciones?: ('asc' | 'desc' | '')[];
26
97
  }): 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
+ */
27
105
  export declare function groupBy<T extends Record<string, any>, K extends keyof T>(array: T[], key: K | ((obj: T) => string)): Record<string, T[]>;
106
+ /**
107
+ * Agrupa y anida los elementos de un array según una lista de propiedades.
108
+ *
109
+ * @param arr - Array de objetos a agrupar.
110
+ * @param properties - Propiedades para agrupar de forma anidada.
111
+ * @returns Objeto anidado por los grupos de propiedades.
112
+ */
28
113
  export declare function nestGroupsBy(arr: any, properties: any): any;
29
114
  /**
30
115
  * Retorna el valor máximo del campo especificado (incluso anidado) en un arreglo de objetos.
@@ -43,5 +128,20 @@ export declare function obtenerUltimoOrden(data: any[], campo: string, increment
43
128
  * @returns Nuevo array con las columnas eliminadas.
44
129
  */
45
130
  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
+ */
46
138
  export declare function eliminarDuplicados<T extends object>(array: T[], claves?: (keyof T)[]): T[];
139
+ /**
140
+ * Elimina elementos de un array origen que estén presentes en otro array, según claves específicas.
141
+ *
142
+ * @param origen - Array original.
143
+ * @param elementosAEliminar - Elementos a eliminar del array origen.
144
+ * @param claves - Claves para comparar los objetos. Si no se especifica, compara todo el objeto.
145
+ * @returns Array filtrado sin los elementos eliminados.
146
+ */
47
147
  export declare function eliminarElementos<T extends object>(origen: T[], elementosAEliminar: T[], claves?: (keyof T)[]): T[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jvsoft/utils",
3
- "version": "0.0.13-alpha.3",
3
+ "version": "0.0.13-alpha.5",
4
4
  "description": "JVSOFT Angular Utils",
5
5
  "publishConfig": {
6
6
  "tag": "alpha",
@@ -1,21 +1,51 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
- export declare function mostrarValorEnBusqueda(campos: any, idxSel: any): string;
3
- export declare function changeSelectData(objThis: any, dataFiltro: {
2
+ /**
3
+ * Devuelve un valor de visualización para un elemento buscado.
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 }: {
4
11
  formControl: AbstractControl;
5
12
  data: any[];
6
13
  campoBuscar: string | string[];
7
14
  variableResultado: string;
8
15
  }): 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: {
16
+ /**
17
+ * Vincula un FormControl a datos locales obtenidos de dataServidor o dataServidorSuscripcion.
18
+ */
19
+ export declare function changeSelect(control: any, formControl: AbstractControl, tipo: string, campoBuscar: string | string[], campoFiltro?: string | null): void;
20
+ /**
21
+ * Configuración para changeSelectReformateado.
22
+ */
23
+ interface ChangeSelectConfig {
24
+ objThis: any;
11
25
  tipoReq: string;
26
+ formControl: AbstractControl;
27
+ queryService: any;
12
28
  campoId?: string;
13
29
  minLength?: number;
14
30
  dataExtra?: any;
15
- dataExtraVariable?: any;
31
+ dataExtraVariable?: {
32
+ campo: string;
33
+ ctrlValue: AbstractControl;
34
+ }[];
16
35
  anonimo?: boolean;
17
- queryService: any;
18
- formControl: AbstractControl;
19
36
  variableResultado?: string;
20
- }): void;
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
+ */
21
50
  export declare function changeSelectApi(control: any, queryService: any, formControl: AbstractControl, tipo: any, dataExtra?: {}, dataExtraVariable?: any[] | null, minLength?: number, anonimo?: boolean): void;
51
+ export {};
@@ -1,8 +1,23 @@
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
+ */
1
9
  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
+ */
2
16
  export declare function deepClone(obj: any): any;
3
17
  /**
4
18
  * Busca un elemento en un array o jerarquía de objetos según un campo y valor especificado.
5
19
  *
20
+ * @param datosFn - Objeto con los parámetros de búsqueda: items, campo, valor y opcionalmente campoHijo.
6
21
  * @returns El elemento encontrado o undefined si no existe.
7
22
  */
8
23
  export declare function buscarPorCampo<T>(datosFn: {
@@ -11,20 +26,90 @@ export declare function buscarPorCampo<T>(datosFn: {
11
26
  valor: any;
12
27
  campoHijo?: string;
13
28
  }): 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
+ */
14
36
  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
+ */
15
43
  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
+ */
16
51
  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
+ */
17
58
  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
+ */
18
66
  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
+ */
19
75
  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
+ */
20
84
  export declare function ordenarPorPropiedad(objData: any, propiedad: string, /**@deprecated*/ numeros?: boolean): {
21
85
  [x: string]: {};
22
86
  }[];
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
+ */
23
94
  export declare function ordenarPorPropiedades<T>(arr: T[], options: {
24
95
  propiedades: (keyof T)[];
25
96
  direcciones?: ('asc' | 'desc' | '')[];
26
97
  }): 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
+ */
27
105
  export declare function groupBy<T extends Record<string, any>, K extends keyof T>(array: T[], key: K | ((obj: T) => string)): Record<string, T[]>;
106
+ /**
107
+ * Agrupa y anida los elementos de un array según una lista de propiedades.
108
+ *
109
+ * @param arr - Array de objetos a agrupar.
110
+ * @param properties - Propiedades para agrupar de forma anidada.
111
+ * @returns Objeto anidado por los grupos de propiedades.
112
+ */
28
113
  export declare function nestGroupsBy(arr: any, properties: any): any;
29
114
  /**
30
115
  * Retorna el valor máximo del campo especificado (incluso anidado) en un arreglo de objetos.
@@ -43,5 +128,20 @@ export declare function obtenerUltimoOrden(data: any[], campo: string, increment
43
128
  * @returns Nuevo array con las columnas eliminadas.
44
129
  */
45
130
  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
+ */
46
138
  export declare function eliminarDuplicados<T extends object>(array: T[], claves?: (keyof T)[]): T[];
139
+ /**
140
+ * Elimina elementos de un array origen que estén presentes en otro array, según claves específicas.
141
+ *
142
+ * @param origen - Array original.
143
+ * @param elementosAEliminar - Elementos a eliminar del array origen.
144
+ * @param claves - Claves para comparar los objetos. Si no se especifica, compara todo el objeto.
145
+ * @returns Array filtrado sin los elementos eliminados.
146
+ */
47
147
  export declare function eliminarElementos<T extends object>(origen: T[], elementosAEliminar: T[], claves?: (keyof T)[]): T[];