sapenlinea-components 0.6.68 → 0.7.70
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 +103 -23
- package/fesm2022/sapenlinea-components.mjs +240 -70
- package/fesm2022/sapenlinea-components.mjs.map +1 -1
- package/index.d.ts +80 -17
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -448,10 +448,36 @@ Componente de **tabla dinámica** con soporte de ordenamiento, acciones por fila
|
|
|
448
448
|
- `statusToneMap: StatusToneMap` – Mapa de estado normalizado → tono visual (`success`, `error`, `warning`, `info`, `neutral`).
|
|
449
449
|
- `statusEnumMap: Record<string, string>` – Traduce el valor crudo del estado (ej. `'ACTIVE'`) a la etiqueta que se muestra (ej. `'Activo'`). La resolución del tono usa la etiqueta traducida.
|
|
450
450
|
|
|
451
|
+
**Tipos de columna (`type`):**
|
|
452
|
+
|
|
453
|
+
| Tipo | Descripción |
|
|
454
|
+
|---|---|
|
|
455
|
+
| `text` | Texto plano (default) |
|
|
456
|
+
| `number` | Número formateado |
|
|
457
|
+
| `money` | Valor monetario con formato |
|
|
458
|
+
| `date` | Fecha formateada |
|
|
459
|
+
| `datetime` | Fecha y hora |
|
|
460
|
+
| `percentage` | Porcentaje |
|
|
461
|
+
| `status` | Chip de estado con color basado en `statusToneMap` |
|
|
462
|
+
| `grade` | Chip de grado con color semáforo automático (verde ≤0.9, naranja ≤2.9, rojo ≤4, gris >4). Muestra el valor con sufijo `°` |
|
|
463
|
+
| `icon-button` | Botón con ícono clicable |
|
|
464
|
+
| `email` | Email en minúsculas |
|
|
465
|
+
|
|
451
466
|
**Outputs:**
|
|
452
467
|
|
|
453
468
|
- `optionSelected: EventEmitter<{ action: string; row: TableRow }>` – Emite la acción seleccionada y la fila.
|
|
454
469
|
|
|
470
|
+
**Ejemplo con columna `grade`:**
|
|
471
|
+
|
|
472
|
+
```ts
|
|
473
|
+
columns: TableColumn[] = [
|
|
474
|
+
{ key: 'numero', label: 'N° COMPARENDO', align: 'center' },
|
|
475
|
+
{ key: 'fecha', label: 'FECHA', align: 'center', type: 'date' },
|
|
476
|
+
{ key: 'grado', label: 'GRADO', align: 'center', type: 'grade' },
|
|
477
|
+
{ key: 'medicion', label: 'MEDICIÓN', align: 'center' }
|
|
478
|
+
];
|
|
479
|
+
```
|
|
480
|
+
|
|
455
481
|
**Uso con estados en inglés (enum):**
|
|
456
482
|
|
|
457
483
|
```ts
|
|
@@ -805,11 +831,16 @@ Encabezado de sección con título, botones de acción configurables y grupo de
|
|
|
805
831
|
- `clickButtonLabel: string = 'Acción'` — texto del botón en modo `click`
|
|
806
832
|
- `clickButtonIcon: string = ''` — clase CSS del ícono en modo `click`
|
|
807
833
|
- `alwaysShowFilters: boolean = false` — muestra los filtros permanentemente sin necesidad de toggle
|
|
808
|
-
- `showSecondaryButton: boolean = false` — muestra un botón secundario
|
|
809
|
-
- `secondaryButtonLabel: string = 'Exportar'`
|
|
810
|
-
- `secondaryButtonIcon: string = ''`
|
|
834
|
+
- `showSecondaryButton: boolean = false` — muestra un botón secundario (ej. "Exportar PDF")
|
|
835
|
+
- `secondaryButtonLabel: string = 'Exportar PDF'`
|
|
836
|
+
- `secondaryButtonIcon: string = 'icon-download'`
|
|
837
|
+
- `showButtonExport: boolean = false` — muestra un botón de exportación adicional (ej. "Exportar CSV")
|
|
838
|
+
- `exportButtonLabel: string = 'Exportar CSV'`
|
|
839
|
+
- `exportButtonIcon: string = 'icon-export'`
|
|
811
840
|
- `showButtonBack: boolean = false`
|
|
812
841
|
|
|
842
|
+
> Los botones secundario y de exportación se agrupan automáticamente al final de la fila del título.
|
|
843
|
+
|
|
813
844
|
**Outputs:**
|
|
814
845
|
|
|
815
846
|
- `filtersChange: Record<string, string | number | Date | null>`
|
|
@@ -817,6 +848,7 @@ Encabezado de sección con título, botones de acción configurables y grupo de
|
|
|
817
848
|
- `clearFilters: void`
|
|
818
849
|
- `filterButtonClicked: void` — emitido al hacer clic en el botón `click` o `action`
|
|
819
850
|
- `secondaryButtonClicked: void`
|
|
851
|
+
- `exportButtonClicked: void`
|
|
820
852
|
- `clickButtonBack: void`
|
|
821
853
|
|
|
822
854
|
**Íconos disponibles** (clase CSS, patrón `mask-image`):
|
|
@@ -827,21 +859,20 @@ Encabezado de sección con título, botones de acción configurables y grupo de
|
|
|
827
859
|
| `icon-upload` | Cargar / subir |
|
|
828
860
|
| `icon-export` | Exportar tabla |
|
|
829
861
|
|
|
830
|
-
**Ejemplo —
|
|
862
|
+
**Ejemplo — con botón secundario y botón de exportar:**
|
|
831
863
|
|
|
832
864
|
```html
|
|
833
865
|
<lib-title-filters
|
|
834
|
-
title="
|
|
835
|
-
buttonMode="click"
|
|
836
|
-
clickButtonLabel="Nueva Orden"
|
|
837
|
-
clickButtonIcon="icon-upload"
|
|
838
|
-
[alwaysShowFilters]="true"
|
|
839
|
-
[showSecondaryButton]="true"
|
|
840
|
-
secondaryButtonLabel="Exportar"
|
|
841
|
-
secondaryButtonIcon="icon-export"
|
|
866
|
+
title="Comparendos"
|
|
842
867
|
[filtersConfig]="filtersConfig"
|
|
843
|
-
|
|
844
|
-
|
|
868
|
+
[showSecondaryButton]="true"
|
|
869
|
+
secondaryButtonLabel="Exportar PDF"
|
|
870
|
+
secondaryButtonIcon="icon-download"
|
|
871
|
+
(secondaryButtonClicked)="onExportPDF()"
|
|
872
|
+
[showButtonExport]="true"
|
|
873
|
+
exportButtonLabel="Exportar CSV"
|
|
874
|
+
exportButtonIcon="icon-export"
|
|
875
|
+
(exportButtonClicked)="onExportCSV()"
|
|
845
876
|
(filtersChange)="onFiltersChange($event)"
|
|
846
877
|
(applyFilters)="onApply()"
|
|
847
878
|
/>
|
|
@@ -1257,15 +1288,64 @@ Zona de arrastrar y soltar (Drag & Drop) para la **recepción de imágenes** de
|
|
|
1257
1288
|
### 36. Gráficas y Visualización: ECharts (Charts)
|
|
1258
1289
|
|
|
1259
1290
|
**Qué hacen**
|
|
1260
|
-
Subsistema de envolturas especializadas (wrappers) cimentado sobre `apache/echarts` para habilitar representaciones informativas sólidas a tamaño responsivo y dinámico,
|
|
1291
|
+
Subsistema de envolturas especializadas (wrappers) cimentado sobre `apache/echarts` para habilitar representaciones informativas sólidas a tamaño responsivo y dinámico. Incluye soporte para interactividad, visualizaciones jerárquicas, tablas expandibles y una paleta de 20 colores.
|
|
1292
|
+
|
|
1293
|
+
**Componentes disponibles:**
|
|
1294
|
+
|
|
1295
|
+
#### `lib-bar-chart`
|
|
1296
|
+
Gráfica de barras estandarizada con soporte para una o múltiples series.
|
|
1297
|
+
- **Inputs:**
|
|
1298
|
+
- `data: ChartItem[]` – Datos para gráfica de barra simple.
|
|
1299
|
+
- `multiSeries: BarSeries[]` – (Opcional) Permite mostrar grupos de barras por cada sección.
|
|
1300
|
+
- **Interfaces:**
|
|
1301
|
+
```ts
|
|
1302
|
+
export interface BarSeries {
|
|
1303
|
+
name: string; // Nombre de la serie (aparece en la leyenda)
|
|
1304
|
+
data: number[]; // Valores numéricos
|
|
1305
|
+
color?: string; // Color personalizado opcional
|
|
1306
|
+
}
|
|
1307
|
+
```
|
|
1308
|
+
|
|
1309
|
+
#### `lib-donut-chart`
|
|
1310
|
+
Gráfica de anillo con capacidad de **Drill-down**, navegación interna y leyenda automática.
|
|
1311
|
+
- **Inputs:**
|
|
1312
|
+
- `data: ChartItem[]` – Datos granulares (ej. códigos de infracción `D01`, `D02`, `C01`).
|
|
1313
|
+
- `drillDown: boolean = false` – Activa el modo de exploración jerárquica.
|
|
1314
|
+
- `groupByPrefix: number = 0` – Agrupa los datos por los primeros N caracteres de la etiqueta (ej. `1` para agrupar por letras iniciales).
|
|
1315
|
+
- **Comportamiento:**
|
|
1316
|
+
- Al activar el drill-down, el componente muestra inicialmente los totales agrupados y permite al usuario pulsar una sección para "abrirla" y ver su desglose, con un botón de "Volver" integrado.
|
|
1317
|
+
- Cuando hay **más de 10 ítems**, los labels de las porciones se ocultan automáticamente y se muestra una **leyenda horizontal scrollable** en la parte inferior.
|
|
1318
|
+
|
|
1319
|
+
#### `lib-table-chart`
|
|
1320
|
+
Tabla expandible integrada en el dashboard de gráficas, con paginación y estado "sin datos".
|
|
1321
|
+
- **Inputs:**
|
|
1322
|
+
- `title: string = 'Table Chart'` – Título del encabezado.
|
|
1323
|
+
- `columns: TableColumn[]` – Definición de columnas (misma interfaz que `lib-table`).
|
|
1324
|
+
- `data: TableRow[]` – Datos de la tabla.
|
|
1325
|
+
- `totalItems: number = 0` – Total de registros (para la paginación).
|
|
1326
|
+
- `itemsPerPage: number = 10` – Registros por página en modo expandido.
|
|
1327
|
+
- **Comportamiento:**
|
|
1328
|
+
- **Colapsado**: Muestra los primeros **8 registros** sin paginación.
|
|
1329
|
+
- **Expandido**: Ocupa pantalla completa (90vw × 90vh) con overlay, muestra **10 registros** por página con `lib-pagination`.
|
|
1330
|
+
- Si `data` está vacío muestra `lib-not-found-section` centrado.
|
|
1261
1331
|
|
|
1262
|
-
**
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1332
|
+
**Ejemplo:**
|
|
1333
|
+
|
|
1334
|
+
```html
|
|
1335
|
+
<lib-table-chart
|
|
1336
|
+
title="Tabla de Comparendos"
|
|
1337
|
+
[columns]="columns"
|
|
1338
|
+
[data]="comparendosData"
|
|
1339
|
+
[totalItems]="comparendosData.length" />
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1342
|
+
#### Otros:
|
|
1343
|
+
- `lib-line-chart` – Líneas analíticas en evolución.
|
|
1266
1344
|
- `lib-heatmap` – Mapa de concentración de calor basado en coordenadas / categorías.
|
|
1267
|
-
- `lib-map-geo` –
|
|
1345
|
+
- `lib-map-geo` – Puntos de calor sobre mapa geofísico interactivo.
|
|
1268
1346
|
|
|
1269
|
-
**
|
|
1270
|
-
|
|
1271
|
-
|
|
1347
|
+
**Paleta de colores (20 colores):**
|
|
1348
|
+
La paleta compartida por todas las gráficas incluye: olive green, lime soft, burgundy, deep teal, sage, chartreuse, sky blue, light steel blue, warm amber, terracotta, dusty purple, jade green, coral clay, charcoal slate, sand gold, mint sage, rose mauve, navy steel, peach y spring green.
|
|
1349
|
+
|
|
1350
|
+
**Eventos Globales:**
|
|
1351
|
+
Todos los componentes de gráficas emiten el evento `chartClick`, permitiendo capturar clics en secciones específicas para lógicas personalizadas en el padre.
|