sapenlinea-components 0.10.85 → 0.10.87
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/README.md +54 -11
- package/fesm2022/sapenlinea-components.mjs +87 -45
- package/fesm2022/sapenlinea-components.mjs.map +1 -1
- package/index.d.ts +15 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,35 +14,36 @@ Componente para gestionar **filtros de fecha y fecha/hora** a partir de una list
|
|
|
14
14
|
|
|
15
15
|
**Inputs:**
|
|
16
16
|
|
|
17
|
-
- `filters: FilterItem[]` (requerido)
|
|
18
|
-
- Cada `FilterItem` define un filtro disponible:
|
|
17
|
+
- `filters: FilterItem[]` (requerido) – Filtros disponibles. Cada `FilterItem`:
|
|
19
18
|
- `label: string` – Texto visible en el chip/botón.
|
|
20
19
|
- `value: string` – Identificador interno del filtro.
|
|
21
20
|
- `type: 'date' | 'datetime'` – Tipo de filtro.
|
|
22
21
|
- `placeholder?: string` – Placeholder específico.
|
|
23
22
|
- `minDate?: Date` / `maxDate?: Date` – Rango permitido.
|
|
23
|
+
- `clearTrigger: number = 0` – Al incrementar este valor desde el padre se limpia el filtro.
|
|
24
|
+
- `initialValue: Date | string | null = null` – Fecha a restaurar al inicializar (útil para volver a una pantalla con filtros previos). Al hacer clic en el botón de limpiar del chip, el valor inicial queda descartado y no se restaura automáticamente.
|
|
25
|
+
- `initialFilterType: string | null = null` – Key (`FilterItem.value`) del filtro activo a restaurar junto con `initialValue`.
|
|
24
26
|
|
|
25
27
|
**Outputs:**
|
|
26
28
|
|
|
27
29
|
- `dateSelected: EventEmitter<DateFilterSelection>` – Emite `{ filter: string; value: Date }` con el filtro activo y la fecha seleccionada.
|
|
28
30
|
- `dateChange: EventEmitter<Date | null>` – Emite la fecha seleccionada al cambiar (o `null` si se limpia).
|
|
31
|
+
- `enterPressed: EventEmitter<void>` – Emite al presionar Enter.
|
|
29
32
|
|
|
30
33
|
**Uso con formularios reactivos:**
|
|
31
34
|
|
|
32
35
|
```html
|
|
33
36
|
<lib-date-time-filter
|
|
34
37
|
[filters]="dateFilters"
|
|
38
|
+
[clearTrigger]="clearVersion"
|
|
39
|
+
[initialValue]="savedFilters.date"
|
|
40
|
+
[initialFilterType]="'date'"
|
|
35
41
|
(dateSelected)="onDateSelected($event)"
|
|
36
42
|
(dateChange)="onDateChange($event)"
|
|
37
|
-
formControlName="fechaFiltro"
|
|
38
43
|
></lib-date-time-filter>
|
|
39
44
|
```
|
|
40
45
|
|
|
41
46
|
```ts
|
|
42
|
-
const form = this.fb.group({
|
|
43
|
-
fechaFiltro: [null],
|
|
44
|
-
});
|
|
45
|
-
|
|
46
47
|
dateFilters: FilterItem[] = [
|
|
47
48
|
{ label: 'Fecha inicio', value: 'startDate', type: 'date', placeholder: 'Seleccionar fecha inicio' },
|
|
48
49
|
{ label: 'Fecha fin', value: 'endDate', type: 'date', placeholder: 'Seleccionar fecha fin' },
|
|
@@ -293,11 +294,13 @@ Componente de **filtro por texto** con chips de filtros configurables (por ejemp
|
|
|
293
294
|
|
|
294
295
|
- `filters: FilterItem[]` (requerido) – Filtros disponibles de texto.
|
|
295
296
|
- `clearTrigger: number = 0` – Al incrementar este valor desde el padre se limpian todos los filtros.
|
|
297
|
+
- `initialValues: Record<string, string> = {}` – Valores a restaurar al inicializar, donde la clave es el `FilterItem.value` y el valor es el texto. Al limpiar un chip individualmente el valor inicial queda descartado y no se restaura automáticamente.
|
|
296
298
|
|
|
297
299
|
**Outputs:**
|
|
298
300
|
|
|
299
301
|
- `filterSelected: EventEmitter<{ filter: string; value: string }>` – Emite el filtro y el valor aplicado.
|
|
300
302
|
- `valueChange: EventEmitter<string | null>` – Emite el valor actual del filtro de texto.
|
|
303
|
+
- `enterPressed: EventEmitter<void>` – Emite al presionar Enter.
|
|
301
304
|
|
|
302
305
|
**Ejemplo de uso:**
|
|
303
306
|
|
|
@@ -305,6 +308,7 @@ Componente de **filtro por texto** con chips de filtros configurables (por ejemp
|
|
|
305
308
|
<lib-input-text-filter
|
|
306
309
|
[filters]="textFilters"
|
|
307
310
|
[clearTrigger]="clearVersion"
|
|
311
|
+
[initialValues]="{ name: 'Juan', email: 'juan@example.com' }"
|
|
308
312
|
(filterSelected)="onTextFilter($event)"
|
|
309
313
|
(valueChange)="onTextValueChange($event)"
|
|
310
314
|
></lib-input-text-filter>
|
|
@@ -322,18 +326,22 @@ Componente de **filtro numérico** con múltiples chips (ej. "monto mínimo", "m
|
|
|
322
326
|
**Inputs:**
|
|
323
327
|
|
|
324
328
|
- `filters: FilterItem[]` (requerido) – Filtros numéricos.
|
|
325
|
-
- `clearTrigger: number = 0` – Limpia filtros al
|
|
329
|
+
- `clearTrigger: number = 0` – Limpia todos los filtros al incrementar.
|
|
330
|
+
- `initialValues: Record<string, string> = {}` – Valores numéricos a restaurar al inicializar, donde la clave es el `FilterItem.value`. Al limpiar un chip individualmente el valor inicial queda descartado y no se restaura automáticamente.
|
|
326
331
|
|
|
327
332
|
**Outputs:**
|
|
328
333
|
|
|
329
334
|
- `filterSelected: EventEmitter<{ filter: string; value: string }>` – Filtro seleccionado y valor.
|
|
330
335
|
- `valueChange: EventEmitter<string | null>` – Valor numérico aplicado.
|
|
336
|
+
- `enterPressed: EventEmitter<void>` – Emite al presionar Enter.
|
|
331
337
|
|
|
332
338
|
**Ejemplo de uso:**
|
|
333
339
|
|
|
334
340
|
```html
|
|
335
341
|
<lib-input-number-filter
|
|
336
342
|
[filters]="numberFilters"
|
|
343
|
+
[clearTrigger]="clearVersion"
|
|
344
|
+
[initialValues]="{ id: '42' }"
|
|
337
345
|
(filterSelected)="onNumberFilter($event)"
|
|
338
346
|
></lib-input-number-filter>
|
|
339
347
|
```
|
|
@@ -350,22 +358,28 @@ Componente de **filtro basado en select** con chips. Permite seleccionar una opc
|
|
|
350
358
|
**Inputs:**
|
|
351
359
|
|
|
352
360
|
- `filters: FilterItem[]` (requerido) – Deben incluir `options` con `{ label, value }`.
|
|
353
|
-
- `clearTrigger: number = 0` – Limpia filtros.
|
|
361
|
+
- `clearTrigger: number = 0` – Limpia todos los filtros al incrementar.
|
|
362
|
+
- `initialValues: Record<string, string> = {}` – Valores a restaurar al inicializar, donde la clave es el `FilterItem.value` y el valor es el **value** de la opción (no el label). El componente busca automáticamente el label correspondiente para mostrarlo en el chip. Al limpiar un chip individualmente el valor inicial queda descartado y no se restaura automáticamente.
|
|
354
363
|
|
|
355
364
|
**Outputs:**
|
|
356
365
|
|
|
357
366
|
- `filterSelected: EventEmitter<{ filter: string; value: string }>` – Filtro e identificador de opción seleccionada.
|
|
358
367
|
- `valueChange: EventEmitter<string | null>` – Valor del select actual.
|
|
368
|
+
- `enterPressed: EventEmitter<void>` – Emite al presionar Enter.
|
|
359
369
|
|
|
360
370
|
**Ejemplo de uso:**
|
|
361
371
|
|
|
362
372
|
```html
|
|
363
373
|
<lib-input-select-filter
|
|
364
374
|
[filters]="statusFilters"
|
|
375
|
+
[clearTrigger]="clearVersion"
|
|
376
|
+
[initialValues]="{ status: 'ACTIVE' }"
|
|
365
377
|
(filterSelected)="onStatusFilter($event)"
|
|
366
378
|
></lib-input-select-filter>
|
|
367
379
|
```
|
|
368
380
|
|
|
381
|
+
> `initialValues` recibe el value de la opción (ej. `'ACTIVE'`), no el label (`'Activo'`). El componente resuelve el label buscando en las `options` del filtro correspondiente.
|
|
382
|
+
|
|
369
383
|
---
|
|
370
384
|
|
|
371
385
|
### 8. `lib-select-custom-search` (SelectCustomSearch)
|
|
@@ -838,9 +852,36 @@ Encabezado de sección con título, botones de acción configurables y grupo de
|
|
|
838
852
|
- `exportButtonLabel: string = 'Exportar CSV'`
|
|
839
853
|
- `exportButtonIcon: string = 'icon-export'`
|
|
840
854
|
- `showButtonBack: boolean = false`
|
|
855
|
+
- `initialFilters: Record<string, string | number | Date | null> = {}` — estado previo de filtros para restaurar al volver a la pantalla. La estructura es la misma que emite `filtersChange`. Soporta todos los tipos de filtro: texto, número, select (por value) y fecha.
|
|
841
856
|
|
|
842
857
|
> Los botones secundario y de exportación se agrupan automáticamente al final de la fila del título.
|
|
843
858
|
|
|
859
|
+
**Restaurar filtros previos (`initialFilters`):**
|
|
860
|
+
|
|
861
|
+
Patrón típico para preservar filtros al navegar entre pantallas:
|
|
862
|
+
|
|
863
|
+
```ts
|
|
864
|
+
// En el componente padre
|
|
865
|
+
savedFilters = signal<Record<string, string | number | Date | null>>({});
|
|
866
|
+
|
|
867
|
+
onFiltersChange(filters: Record<string, string | number | Date | null>) {
|
|
868
|
+
this.savedFilters.set(filters);
|
|
869
|
+
}
|
|
870
|
+
```
|
|
871
|
+
|
|
872
|
+
```html
|
|
873
|
+
<lib-title-filters
|
|
874
|
+
title="Comparendos"
|
|
875
|
+
[filtersConfig]="filtersConfig"
|
|
876
|
+
[initialFilters]="savedFilters()"
|
|
877
|
+
(filtersChange)="onFiltersChange($event)"
|
|
878
|
+
(applyFilters)="onApply()"
|
|
879
|
+
(clearFilters)="savedFilters.set({})"
|
|
880
|
+
/>
|
|
881
|
+
```
|
|
882
|
+
|
|
883
|
+
> Al hacer clic en "Borrar Filtros" todos los filtros se limpian, incluyendo los valores iniciales. Al limpiar un chip individual el valor inicial de ese filtro también queda descartado.
|
|
884
|
+
|
|
844
885
|
**Outputs:**
|
|
845
886
|
|
|
846
887
|
- `filtersChange: Record<string, string | number | Date | null>`
|
|
@@ -1446,6 +1487,7 @@ Componente de **filtro de hora** con chips configurables y selector AM/PM desple
|
|
|
1446
1487
|
|
|
1447
1488
|
- `filters: FilterItem[]` (requerido) – Filtros de hora disponibles.
|
|
1448
1489
|
- `clearTrigger: number = 0` – Al incrementar este valor desde el padre se limpian todos los filtros.
|
|
1490
|
+
- `initialValues: Record<string, string> = {}` – Horas a restaurar al inicializar en formato `HH:mm` (24 h), donde la clave es el `FilterItem.value`. Al limpiar un chip individualmente el valor inicial queda descartado y no se restaura automáticamente.
|
|
1449
1491
|
|
|
1450
1492
|
**Outputs:**
|
|
1451
1493
|
|
|
@@ -1459,6 +1501,7 @@ Componente de **filtro de hora** con chips configurables y selector AM/PM desple
|
|
|
1459
1501
|
<lib-input-time-filter
|
|
1460
1502
|
[filters]="timeFilters"
|
|
1461
1503
|
[clearTrigger]="clearVersion"
|
|
1504
|
+
[initialValues]="{ startTime: '08:00', endTime: '17:00' }"
|
|
1462
1505
|
(filterSelected)="onTimeFilter($event)"
|
|
1463
1506
|
(valueChange)="onTimeChange($event)"
|
|
1464
1507
|
></lib-input-time-filter>
|
|
@@ -1466,8 +1509,8 @@ Componente de **filtro de hora** con chips configurables y selector AM/PM desple
|
|
|
1466
1509
|
|
|
1467
1510
|
```ts
|
|
1468
1511
|
timeFilters: FilterItem[] = [
|
|
1469
|
-
{ label: 'Hora inicio', value: 'startTime', type: 'time' },
|
|
1470
|
-
{ label: 'Hora fin', value: 'endTime', type: 'time' },
|
|
1512
|
+
{ label: 'Hora inicio', value: 'startTime', type: 'time', placeholder: 'Hora inicio' },
|
|
1513
|
+
{ label: 'Hora fin', value: 'endTime', type: 'time', placeholder: 'Hora fin' },
|
|
1471
1514
|
];
|
|
1472
1515
|
```
|
|
1473
1516
|
|