ngx-dsxlibrary 1.0.52 → 1.0.54
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/ngx-dsxlibrary-src-lib-components.mjs +15 -3
- package/fesm2022/ngx-dsxlibrary-src-lib-components.mjs.map +1 -1
- package/fesm2022/ngx-dsxlibrary.mjs +191 -4
- package/fesm2022/ngx-dsxlibrary.mjs.map +1 -1
- package/lib/components/kpicard/kpicard.component.d.ts +2 -2
- package/lib/directives/only-rango-pattern.directive.d.ts +39 -0
- package/lib/services/utility-add.service.d.ts +56 -0
- package/ngx-dsxlibrary-1.0.54.tgz +0 -0
- package/package.json +13 -13
- package/public-api.d.ts +1 -0
- package/src/lib/components/kpicard/kpicard.component.d.ts +2 -2
- package/ngx-dsxlibrary-1.0.52.tgz +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class KpicardComponent {
|
|
3
|
-
option: import("@angular/core").InputSignal<"currency" | "integer">;
|
|
3
|
+
option: import("@angular/core").InputSignal<"currency" | "integer" | "percent">;
|
|
4
4
|
label: import("@angular/core").InputSignal<string>;
|
|
5
5
|
iconType: import("@angular/core").InputSignal<string>;
|
|
6
6
|
color: import("@angular/core").InputSignal<string | undefined>;
|
|
7
7
|
valor: import("@angular/core").InputSignal<number>;
|
|
8
8
|
theme: import("@angular/core").InputSignal<"light" | "dark" | "aqua" | "sunset" | "mint" | "peach" | "plasma" | "nebula">;
|
|
9
|
-
options: Record<'currency' | 'integer', any>;
|
|
9
|
+
options: Record<'currency' | 'integer' | 'percent', any>;
|
|
10
10
|
getSelectedOption(): any;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<KpicardComponent, never>;
|
|
12
12
|
static ɵcmp: i0.ɵɵComponentDeclaration<KpicardComponent, "app-kpicard", never, { "option": { "alias": "option"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "iconType": { "alias": "iconType"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "valor": { "alias": "valor"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Directiva que permite solo la entrada de:
|
|
5
|
+
* - Dígitos (0-9)
|
|
6
|
+
* - Separadores punto (.)
|
|
7
|
+
* - Rango con guión (-)
|
|
8
|
+
*
|
|
9
|
+
* Ejemplos válidos:
|
|
10
|
+
* - 1.2.3
|
|
11
|
+
* - 4-6
|
|
12
|
+
* - 1.3.5-9
|
|
13
|
+
*
|
|
14
|
+
* Restringe:
|
|
15
|
+
* - Letras
|
|
16
|
+
* - Espacios
|
|
17
|
+
* - Caracteres especiales
|
|
18
|
+
* - Doble punto (..), doble guión (--), o combinaciones como (.-)
|
|
19
|
+
*/
|
|
20
|
+
export declare class OnlyRangoPatternDirective {
|
|
21
|
+
private el;
|
|
22
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
23
|
+
/**
|
|
24
|
+
* Expresión regular para permitir caracteres válidos individualmente (tecla por tecla).
|
|
25
|
+
*/
|
|
26
|
+
private keyRegex;
|
|
27
|
+
/**
|
|
28
|
+
* Escucha el evento de teclado y permite únicamente teclas válidas.
|
|
29
|
+
* También evita combinaciones inválidas como `..`, `--`, `.1`, etc.
|
|
30
|
+
*/
|
|
31
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
32
|
+
/**
|
|
33
|
+
* Previene el pegado de cadenas que no cumplan con la estructura válida.
|
|
34
|
+
* Solo permite: número o número separados por punto o guión correctamente.
|
|
35
|
+
*/
|
|
36
|
+
onPaste(event: ClipboardEvent): void;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<OnlyRangoPatternDirective, never>;
|
|
38
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<OnlyRangoPatternDirective, "[appOnlyRangoPattern]", never, {}, {}, never, never, true, never>;
|
|
39
|
+
}
|
|
@@ -107,6 +107,62 @@ export declare class UtilityAddService {
|
|
|
107
107
|
* @returns FilterOption[] Listado filtrado, tipado y ordenado alfabéticamente
|
|
108
108
|
*/
|
|
109
109
|
getUniqueValues<T>(data: T[], field: keyof T): FilterOption[];
|
|
110
|
+
/**
|
|
111
|
+
* Función pura que procesa una cadena de texto conteniendo números individuales y/o rangos numéricos,
|
|
112
|
+
* devolviendo un array con todos los números expandidos.
|
|
113
|
+
*
|
|
114
|
+
* @param input - Cadena de texto con el formato: número[.número][.inicio-fin][...]
|
|
115
|
+
* @returns Array de números con todos los valores individuales y rangos expandidos
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* // Uso básico
|
|
119
|
+
* const result = parseNumericRanges('1.5.7.10-12');
|
|
120
|
+
* // Retorna: [1, 5, 7, 10, 11, 12]
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* // Con espacios y caracteres especiales
|
|
124
|
+
* const result = parseNumericRanges(' 3. 5-7 .10-12abc');
|
|
125
|
+
* // Retorna: [3, 5, 6, 7, 10, 11, 12]
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* // Rangos invertidos (serán ignorados)
|
|
129
|
+
* const result = parseNumericRanges('10-8');
|
|
130
|
+
* // Retorna: [] (array vacío)
|
|
131
|
+
*
|
|
132
|
+
* @note
|
|
133
|
+
* Características especiales:
|
|
134
|
+
* - Elimina automáticamente espacios y caracteres no numéricos
|
|
135
|
+
* - Los números deben estar separados por puntos (.)
|
|
136
|
+
* - Los rangos deben usar guión (-) sin espacios entre números
|
|
137
|
+
* - Es tolerante a formatos inconsistentes
|
|
138
|
+
* - Omite elementos inválidos sin generar errores
|
|
139
|
+
*/
|
|
140
|
+
parseNumericRanges(input: string): number[];
|
|
141
|
+
/**
|
|
142
|
+
* Adaptador para procesar eventos de input y extraer rangos numéricos.
|
|
143
|
+
*
|
|
144
|
+
* @param event - Objeto Event del DOM, preferiblemente de un elemento input
|
|
145
|
+
* @returns Array de números generado a partir del valor del input
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* // Uso en template Angular
|
|
149
|
+
* <input (input)="processNumericRangesFromEvent($event)">
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* // Uso directo
|
|
153
|
+
* const result = processNumericRangesFromEvent(inputEvent);
|
|
154
|
+
*
|
|
155
|
+
* @note
|
|
156
|
+
* Esta función es un wrapper que:
|
|
157
|
+
* - Extrae el valor del input del evento
|
|
158
|
+
* - Delega el procesamiento a parseNumericRanges()
|
|
159
|
+
* - Mantiene compatibilidad con eventos de diferentes frameworks
|
|
160
|
+
*
|
|
161
|
+
* @dependencies
|
|
162
|
+
* Requiere que el evento tenga la propiedad target.value (standard DOM)
|
|
163
|
+
* Para otros tipos de eventos (ej. Angular Material) puede necesitar ajustes
|
|
164
|
+
*/
|
|
165
|
+
processNumericRangesFromEvent(event: Event): number[];
|
|
110
166
|
static ɵfac: i0.ɵɵFactoryDeclaration<UtilityAddService, never>;
|
|
111
167
|
static ɵprov: i0.ɵɵInjectableDeclaration<UtilityAddService>;
|
|
112
168
|
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngx-dsxlibrary",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.54",
|
|
4
4
|
"description": "Libreria para control de código automatizado.",
|
|
5
5
|
"author": "DevSoftXela",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -21,34 +21,34 @@
|
|
|
21
21
|
"types": "./index.d.ts",
|
|
22
22
|
"default": "./fesm2022/ngx-dsxlibrary.mjs"
|
|
23
23
|
},
|
|
24
|
-
"./src/lib/directives": {
|
|
25
|
-
"types": "./src/lib/directives/index.d.ts",
|
|
26
|
-
"default": "./fesm2022/ngx-dsxlibrary-src-lib-directives.mjs"
|
|
27
|
-
},
|
|
28
24
|
"./src/lib/components": {
|
|
29
25
|
"types": "./src/lib/components/index.d.ts",
|
|
30
26
|
"default": "./fesm2022/ngx-dsxlibrary-src-lib-components.mjs"
|
|
31
27
|
},
|
|
28
|
+
"./src/lib/directives": {
|
|
29
|
+
"types": "./src/lib/directives/index.d.ts",
|
|
30
|
+
"default": "./fesm2022/ngx-dsxlibrary-src-lib-directives.mjs"
|
|
31
|
+
},
|
|
32
32
|
"./src/lib/injections": {
|
|
33
33
|
"types": "./src/lib/injections/index.d.ts",
|
|
34
34
|
"default": "./fesm2022/ngx-dsxlibrary-src-lib-injections.mjs"
|
|
35
35
|
},
|
|
36
|
-
"./src/lib/interceptors": {
|
|
37
|
-
"types": "./src/lib/interceptors/index.d.ts",
|
|
38
|
-
"default": "./fesm2022/ngx-dsxlibrary-src-lib-interceptors.mjs"
|
|
39
|
-
},
|
|
40
|
-
"./src/lib/models": {
|
|
41
|
-
"types": "./src/lib/models/index.d.ts",
|
|
42
|
-
"default": "./fesm2022/ngx-dsxlibrary-src-lib-models.mjs"
|
|
43
|
-
},
|
|
44
36
|
"./src/lib/pipe": {
|
|
45
37
|
"types": "./src/lib/pipe/index.d.ts",
|
|
46
38
|
"default": "./fesm2022/ngx-dsxlibrary-src-lib-pipe.mjs"
|
|
47
39
|
},
|
|
40
|
+
"./src/lib/interceptors": {
|
|
41
|
+
"types": "./src/lib/interceptors/index.d.ts",
|
|
42
|
+
"default": "./fesm2022/ngx-dsxlibrary-src-lib-interceptors.mjs"
|
|
43
|
+
},
|
|
48
44
|
"./src/lib/services": {
|
|
49
45
|
"types": "./src/lib/services/index.d.ts",
|
|
50
46
|
"default": "./fesm2022/ngx-dsxlibrary-src-lib-services.mjs"
|
|
51
47
|
},
|
|
48
|
+
"./src/lib/models": {
|
|
49
|
+
"types": "./src/lib/models/index.d.ts",
|
|
50
|
+
"default": "./fesm2022/ngx-dsxlibrary-src-lib-models.mjs"
|
|
51
|
+
},
|
|
52
52
|
"./src/lib/validations": {
|
|
53
53
|
"types": "./src/lib/validations/index.d.ts",
|
|
54
54
|
"default": "./fesm2022/ngx-dsxlibrary-src-lib-validations.mjs"
|
package/public-api.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './lib/components';
|
|
|
2
2
|
export * from './lib/components/json-values-debuj/json-values-debuj.component';
|
|
3
3
|
export * from './lib/components/loading/loading.component';
|
|
4
4
|
export * from './lib/components/navbar-dsx/navbar-dsx.component';
|
|
5
|
+
export * from './lib/directives/only-rango-pattern.directive';
|
|
5
6
|
export * from './lib/directives/select-all-on-focus.directive';
|
|
6
7
|
export * from './lib/injections/cache.token';
|
|
7
8
|
export * from './lib/injections/environment.token';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class KpicardComponent {
|
|
3
|
-
option: import("@angular/core").InputSignal<"currency" | "integer">;
|
|
3
|
+
option: import("@angular/core").InputSignal<"currency" | "integer" | "percent">;
|
|
4
4
|
label: import("@angular/core").InputSignal<string>;
|
|
5
5
|
iconType: import("@angular/core").InputSignal<string>;
|
|
6
6
|
color: import("@angular/core").InputSignal<string | undefined>;
|
|
7
7
|
valor: import("@angular/core").InputSignal<number>;
|
|
8
8
|
theme: import("@angular/core").InputSignal<"light" | "dark" | "aqua" | "sunset" | "mint" | "peach" | "plasma" | "nebula">;
|
|
9
|
-
options: Record<'currency' | 'integer', any>;
|
|
9
|
+
options: Record<'currency' | 'integer' | 'percent', any>;
|
|
10
10
|
getSelectedOption(): any;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<KpicardComponent, never>;
|
|
12
12
|
static ɵcmp: i0.ɵɵComponentDeclaration<KpicardComponent, "app-kpicard", never, { "option": { "alias": "option"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "iconType": { "alias": "iconType"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "valor": { "alias": "valor"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
Binary file
|