shirkasoft-ui-components 1.1.1 → 1.1.2
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/package.json
CHANGED
|
@@ -509,8 +509,20 @@ declare class TableComponent {
|
|
|
509
509
|
private fb;
|
|
510
510
|
private cdr;
|
|
511
511
|
private transloco;
|
|
512
|
+
private destroyRef;
|
|
512
513
|
protected getIcon: typeof getIcon$5;
|
|
514
|
+
/**
|
|
515
|
+
* FIX responsive: ancho mínimo que toma cada columna (excepto 'actions',
|
|
516
|
+
* que ya tiene su propio ancho calculado) SOLO en pantallas angostas
|
|
517
|
+
* (ver el media query en `styles`). En pantallas anchas esta variable no
|
|
518
|
+
* se usa: las columnas se estiran normalmente al 100% del contenedor,
|
|
519
|
+
* igual que antes. Ajustable por columna vía `col.width` si alguna
|
|
520
|
+
* necesita más o menos espacio en mobile.
|
|
521
|
+
*/
|
|
522
|
+
protected readonly DEFAULT_COLUMN_WIDTH = "140px";
|
|
523
|
+
getColumnWidth(col: Column): string;
|
|
513
524
|
private actionsHeaderLabel;
|
|
525
|
+
private currentLang;
|
|
514
526
|
data: _angular_core.InputSignal<any[]>;
|
|
515
527
|
columns: _angular_core.InputSignal<Column[]>;
|
|
516
528
|
rowsPerPage: _angular_core.InputSignal<number>;
|
|
@@ -557,13 +569,23 @@ declare class TableComponent {
|
|
|
557
569
|
currentPage: _angular_core.Signal<number>;
|
|
558
570
|
columnFiltersForm: FormGroup;
|
|
559
571
|
private filterSubject;
|
|
572
|
+
private searchSubject;
|
|
573
|
+
private lastFilterFieldsSignature;
|
|
574
|
+
private columnFilterSubscriptions;
|
|
560
575
|
columnsWithActions: _angular_core.Signal<Column[]>;
|
|
561
576
|
effectiveTotalRecords: _angular_core.Signal<number>;
|
|
562
577
|
effectiveDisplayedData: _angular_core.Signal<any[]>;
|
|
563
|
-
|
|
564
|
-
[key: string]: any;
|
|
565
|
-
}>;
|
|
578
|
+
pageReport: _angular_core.Signal<string>;
|
|
566
579
|
constructor();
|
|
580
|
+
/**
|
|
581
|
+
* FIX crítico: antes se reconstruía el FormGroup completo (perdiendo el
|
|
582
|
+
* texto escrito por el usuario en los filtros y el estado de visibilidad
|
|
583
|
+
* de cada filtro) cada vez que `columns()` cambiaba de referencia, aunque
|
|
584
|
+
* el conjunto de campos filtrables fuera idéntico. Ahora comparamos una
|
|
585
|
+
* "firma" del set de campos+tipo de filtro y solo reconstruimos si
|
|
586
|
+
* realmente cambió. Además, las suscripciones previas se limpian antes de
|
|
587
|
+
* crear las nuevas para no acumular fugas de memoria.
|
|
588
|
+
*/
|
|
567
589
|
private setupColumnFilters;
|
|
568
590
|
private emitFilterChange;
|
|
569
591
|
private applySearch;
|
|
@@ -572,10 +594,24 @@ declare class TableComponent {
|
|
|
572
594
|
private updateDisplayedData;
|
|
573
595
|
onFilterClick(value: string): void;
|
|
574
596
|
toggleSort(field: string): void;
|
|
597
|
+
/**
|
|
598
|
+
* FIX: se documenta explícitamente el criterio de valores null/undefined.
|
|
599
|
+
* Se mantienen SIEMPRE al final de la lista, sin importar la dirección del
|
|
600
|
+
* orden (comportamiento común e intencional en tablas de datos). Si en tu
|
|
601
|
+
* caso de uso prefieres que "sigan" la dirección del sort, multiplica
|
|
602
|
+
* ambos returns por `order`.
|
|
603
|
+
*/
|
|
575
604
|
private applySort;
|
|
576
605
|
onSearchInput(value: string): void;
|
|
577
606
|
clearFilter(field: string): void;
|
|
578
607
|
toggleFilter(field: string): void;
|
|
608
|
+
/**
|
|
609
|
+
* FIX #5 (falsy zero): antes el template usaba `columnFiltersForm.get(field)?.value`
|
|
610
|
+
* directamente en un `@if`/`[class]`, lo cual falla cuando el valor es `0`
|
|
611
|
+
* (número), ya que `0` es falsy en JS. Este helper compara explícitamente
|
|
612
|
+
* contra null/undefined/''.
|
|
613
|
+
*/
|
|
614
|
+
hasFilterValue(field: string): boolean;
|
|
579
615
|
getPageReport(): string;
|
|
580
616
|
goToFirst(): void;
|
|
581
617
|
goToLast(): void;
|
|
@@ -595,6 +631,16 @@ declare class TableComponent {
|
|
|
595
631
|
isRowActionVisible(action: RowAction, rowData: any): boolean;
|
|
596
632
|
truncate(value: any, limit?: number): string;
|
|
597
633
|
getTagClass(severity?: string): string;
|
|
634
|
+
/**
|
|
635
|
+
* FIX #7 (medio): trackBy real por identidad de fila en vez de `$index`.
|
|
636
|
+
* Si tu dato no tiene `id`/`_id`, cae de vuelta al índice (comportamiento
|
|
637
|
+
* anterior), pero se recomienda pasar filas con un identificador único.
|
|
638
|
+
*/
|
|
639
|
+
trackByRow(row: any, index: number): any;
|
|
640
|
+
/** FIX accesibilidad: soporte de teclado (Enter/Espacio) para ordenar columnas. */
|
|
641
|
+
onHeaderKeydown(event: KeyboardEvent, col: Column): void;
|
|
642
|
+
/** FIX accesibilidad: valor aria-sort para el <th> correspondiente. */
|
|
643
|
+
getAriaSort(col: Column): 'ascending' | 'descending' | 'none';
|
|
598
644
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
|
|
599
645
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent, "shk-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rowsPerPage": { "alias": "rowsPerPage"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "showActionRow": { "alias": "showActionRow"; "required": false; "isSignal": true; }; "customTemplates": { "alias": "customTemplates"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "hasShadow": { "alias": "hasShadow"; "required": false; "isSignal": true; }; "defaultSortField": { "alias": "defaultSortField"; "required": false; "isSignal": true; }; "defaultSortOrder": { "alias": "defaultSortOrder"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "activeFilter": { "alias": "activeFilter"; "required": false; "isSignal": true; }; }, { "refresh": "refresh"; "pageChange": "pageChange"; "filterChange": "filterChange"; "searchChange": "searchChange"; "filterClick": "filterClick"; }, never, never, true, never>;
|
|
600
646
|
}
|