@c80/ui 1.0.57 → 1.0.62

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.
Files changed (166) hide show
  1. package/esm2022/index.js +13 -8
  2. package/esm2022/index.js.map +1 -1
  3. package/esm2022/lib/action-list/action-list.component.js +7 -0
  4. package/esm2022/lib/action-list/action-list.component.js.map +1 -1
  5. package/esm2022/lib/action-list/action-list.types.js.map +1 -1
  6. package/esm2022/lib/card-level/card-level.component.js +4 -3
  7. package/esm2022/lib/card-level/card-level.component.js.map +1 -1
  8. package/esm2022/lib/card-level/card-level.interface.js.map +1 -1
  9. package/esm2022/lib/card-level/index.js.map +1 -1
  10. package/esm2022/lib/error-notification/error-notification.component.js +41 -0
  11. package/esm2022/lib/error-notification/error-notification.component.js.map +1 -0
  12. package/esm2022/lib/error-notification/error-notification.types.js +2 -0
  13. package/esm2022/lib/error-notification/error-notification.types.js.map +1 -0
  14. package/esm2022/lib/error-notification/index.js +3 -0
  15. package/esm2022/lib/error-notification/index.js.map +1 -0
  16. package/esm2022/lib/header/header.component.js +8 -2
  17. package/esm2022/lib/header/header.component.js.map +1 -1
  18. package/esm2022/lib/header/header.types.js.map +1 -1
  19. package/esm2022/lib/icon/icon.component.js +11 -5
  20. package/esm2022/lib/icon/icon.component.js.map +1 -1
  21. package/esm2022/lib/icon/icon.definitions.js +108 -2
  22. package/esm2022/lib/icon/icon.definitions.js.map +1 -1
  23. package/esm2022/lib/icon/icon.types.js.map +1 -1
  24. package/esm2022/lib/icon/icon.utils.js +7 -0
  25. package/esm2022/lib/icon/icon.utils.js.map +1 -1
  26. package/esm2022/lib/icon/theme.service.js +20 -0
  27. package/esm2022/lib/icon/theme.service.js.map +1 -1
  28. package/esm2022/lib/info-list/info-list.component.js +3 -0
  29. package/esm2022/lib/info-list/info-list.component.js.map +1 -1
  30. package/esm2022/lib/input-field/input-field.component.js +19 -2
  31. package/esm2022/lib/input-field/input-field.component.js.map +1 -1
  32. package/esm2022/lib/input-search/c80-input-search.component.js +26 -0
  33. package/esm2022/lib/input-search/c80-input-search.component.js.map +1 -0
  34. package/esm2022/lib/input-search/index.js +2 -0
  35. package/esm2022/lib/input-search/index.js.map +1 -0
  36. package/esm2022/lib/modal/index.js.map +1 -1
  37. package/esm2022/lib/modal/modal.component.js +59 -2
  38. package/esm2022/lib/modal/modal.component.js.map +1 -1
  39. package/esm2022/lib/modal/modal.service.js +60 -3
  40. package/esm2022/lib/modal/modal.service.js.map +1 -1
  41. package/esm2022/lib/modal/modal.types.js +2 -0
  42. package/esm2022/lib/modal/modal.types.js.map +1 -0
  43. package/esm2022/lib/profile-stats/profile-stats.component.js +6 -2
  44. package/esm2022/lib/profile-stats/profile-stats.component.js.map +1 -1
  45. package/esm2022/lib/profile-stats/profile-stats.types.js.map +1 -1
  46. package/esm2022/lib/rating-display/index.js +2 -0
  47. package/esm2022/lib/rating-display/index.js.map +1 -0
  48. package/esm2022/lib/rating-display/rating-display.component.js +24 -0
  49. package/esm2022/lib/rating-display/rating-display.component.js.map +1 -0
  50. package/esm2022/lib/rating-stars/index.js +2 -0
  51. package/esm2022/lib/rating-stars/index.js.map +1 -0
  52. package/esm2022/lib/rating-stars/rating-stars.component.js +33 -0
  53. package/esm2022/lib/rating-stars/rating-stars.component.js.map +1 -0
  54. package/esm2022/lib/select/index.js +1 -1
  55. package/esm2022/lib/select/index.js.map +1 -1
  56. package/esm2022/lib/select/select.component.js +31 -1
  57. package/esm2022/lib/select/select.component.js.map +1 -1
  58. package/esm2022/lib/select/select.types.js +2 -0
  59. package/esm2022/lib/select/select.types.js.map +1 -0
  60. package/esm2022/lib/snackbar/index.js.map +1 -1
  61. package/esm2022/lib/snackbar/snackbar.component.js +19 -2
  62. package/esm2022/lib/snackbar/snackbar.component.js.map +1 -1
  63. package/esm2022/lib/snackbar/snackbar.service.js +9 -0
  64. package/esm2022/lib/snackbar/snackbar.service.js.map +1 -1
  65. package/esm2022/lib/snackbar/snackbar.types.js +2 -0
  66. package/esm2022/lib/snackbar/{snackbar.model.js.map → snackbar.types.js.map} +1 -1
  67. package/esm2022/lib/spinner/index.js +2 -0
  68. package/esm2022/lib/spinner/index.js.map +1 -0
  69. package/esm2022/lib/spinner/spinner.component.js +22 -0
  70. package/esm2022/lib/spinner/spinner.component.js.map +1 -0
  71. package/esm2022/lib/stat-card/index.js.map +1 -1
  72. package/esm2022/lib/stat-card/stat-card.component.js +3 -0
  73. package/esm2022/lib/stat-card/stat-card.component.js.map +1 -1
  74. package/esm2022/lib/stat-card/stat-card.types.js +2 -0
  75. package/esm2022/lib/stat-card/stat-card.types.js.map +1 -0
  76. package/esm2022/lib/tab/c80-tab.component.js +19 -2
  77. package/esm2022/lib/tab/c80-tab.component.js.map +1 -1
  78. package/esm2022/lib/tab/c80-tab.types.js +2 -0
  79. package/esm2022/lib/tab/c80-tab.types.js.map +1 -0
  80. package/esm2022/lib/tab/directives/c80-tab-item.directive.js +3 -0
  81. package/esm2022/lib/tab/directives/c80-tab-item.directive.js.map +1 -1
  82. package/esm2022/lib/tab/directives/c80-tab-label.directive.js +3 -0
  83. package/esm2022/lib/tab/directives/c80-tab-label.directive.js.map +1 -1
  84. package/esm2022/lib/tab/index.js.map +1 -1
  85. package/esm2022/lib/table/index.js +2 -0
  86. package/esm2022/lib/table/index.js.map +1 -1
  87. package/esm2022/lib/table/table-column-visibility.service.js +27 -34
  88. package/esm2022/lib/table/table-column-visibility.service.js.map +1 -1
  89. package/esm2022/lib/table/table-crud-state.service.js +7 -7
  90. package/esm2022/lib/table/table-crud-state.service.js.map +1 -1
  91. package/esm2022/lib/table/table-data-converter.service.js +18 -10
  92. package/esm2022/lib/table/table-data-converter.service.js.map +1 -1
  93. package/esm2022/lib/table/table-data-utils.service.js +18 -4
  94. package/esm2022/lib/table/table-data-utils.service.js.map +1 -1
  95. package/esm2022/lib/table/table-dto-mapper.service.js +98 -0
  96. package/esm2022/lib/table/table-dto-mapper.service.js.map +1 -0
  97. package/esm2022/lib/table/table-pagination.service.js +79 -0
  98. package/esm2022/lib/table/table-pagination.service.js.map +1 -0
  99. package/esm2022/lib/table/table-selection.service.js +14 -3
  100. package/esm2022/lib/table/table-selection.service.js.map +1 -1
  101. package/esm2022/lib/table/table.component.js +124 -22
  102. package/esm2022/lib/table/table.component.js.map +1 -1
  103. package/esm2022/lib/table/table.types.js.map +1 -1
  104. package/esm2022/lib/table/table.utils.js +10 -2
  105. package/esm2022/lib/table/table.utils.js.map +1 -1
  106. package/index.d.ts +13 -8
  107. package/lib/action-list/action-list.component.d.ts +7 -0
  108. package/lib/action-list/action-list.types.d.ts +2 -1
  109. package/lib/card-level/card-level.component.d.ts +4 -1
  110. package/lib/error-notification/error-notification.component.d.ts +20 -0
  111. package/lib/error-notification/error-notification.types.d.ts +4 -0
  112. package/lib/error-notification/index.d.ts +2 -0
  113. package/lib/header/header.component.d.ts +7 -1
  114. package/lib/header/header.types.d.ts +2 -0
  115. package/lib/icon/icon.component.d.ts +8 -0
  116. package/lib/icon/icon.types.d.ts +2 -0
  117. package/lib/icon/icon.utils.d.ts +7 -0
  118. package/lib/icon/theme.service.d.ts +17 -0
  119. package/lib/info-list/info-list.component.d.ts +3 -0
  120. package/lib/input-field/input-field.component.d.ts +17 -0
  121. package/lib/input-search/c80-input-search.component.d.ts +16 -0
  122. package/lib/input-search/index.d.ts +1 -0
  123. package/lib/modal/index.d.ts +1 -0
  124. package/lib/modal/modal.component.d.ts +58 -16
  125. package/lib/modal/modal.service.d.ts +73 -4
  126. package/lib/modal/modal.types.d.ts +15 -0
  127. package/lib/profile-stats/profile-stats.component.d.ts +4 -0
  128. package/lib/profile-stats/profile-stats.types.d.ts +6 -2
  129. package/lib/rating-display/index.d.ts +1 -0
  130. package/lib/rating-display/rating-display.component.d.ts +12 -0
  131. package/lib/rating-stars/index.d.ts +1 -0
  132. package/lib/rating-stars/rating-stars.component.d.ts +19 -0
  133. package/lib/select/index.d.ts +1 -1
  134. package/lib/select/select.component.d.ts +29 -1
  135. package/lib/snackbar/index.d.ts +1 -1
  136. package/lib/snackbar/snackbar.component.d.ts +18 -1
  137. package/lib/snackbar/snackbar.service.d.ts +10 -1
  138. package/lib/spinner/index.d.ts +1 -0
  139. package/lib/spinner/spinner.component.d.ts +12 -0
  140. package/lib/stat-card/index.d.ts +1 -0
  141. package/lib/stat-card/stat-card.component.d.ts +4 -7
  142. package/lib/stat-card/stat-card.types.d.ts +7 -0
  143. package/lib/tab/c80-tab.component.d.ts +17 -0
  144. package/lib/tab/directives/c80-tab-item.directive.d.ts +3 -0
  145. package/lib/tab/directives/c80-tab-label.directive.d.ts +3 -0
  146. package/lib/tab/index.d.ts +1 -1
  147. package/lib/table/index.d.ts +2 -0
  148. package/lib/table/table-column-visibility.service.d.ts +19 -6
  149. package/lib/table/table-crud-state.service.d.ts +23 -13
  150. package/lib/table/table-data-converter.service.d.ts +2 -0
  151. package/lib/table/table-data-utils.service.d.ts +7 -0
  152. package/lib/table/table-dto-mapper.service.d.ts +34 -0
  153. package/lib/table/table-pagination.service.d.ts +41 -0
  154. package/lib/table/table-selection.service.d.ts +14 -12
  155. package/lib/table/table.component.d.ts +27 -3
  156. package/lib/table/table.types.d.ts +17 -1
  157. package/lib/table/table.utils.d.ts +4 -1
  158. package/package.json +1 -1
  159. package/esm2022/lib/select/select.model.js +0 -2
  160. package/esm2022/lib/select/select.model.js.map +0 -1
  161. package/esm2022/lib/snackbar/snackbar.model.js +0 -2
  162. package/esm2022/lib/tab/c80-tab.model.js +0 -2
  163. package/esm2022/lib/tab/c80-tab.model.js.map +0 -1
  164. /package/lib/select/{select.model.d.ts → select.types.d.ts} +0 -0
  165. /package/lib/snackbar/{snackbar.model.d.ts → snackbar.types.d.ts} +0 -0
  166. /package/lib/tab/{c80-tab.model.d.ts → c80-tab.types.d.ts} +0 -0
@@ -0,0 +1,41 @@
1
+ import { type Signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export interface TablePaginationState {
4
+ currentPage: Signal<number>;
5
+ pageSize: Signal<number>;
6
+ totalItems: Signal<number>;
7
+ totalPages: Signal<number>;
8
+ hasNextPage: Signal<boolean>;
9
+ hasPrevPage: Signal<boolean>;
10
+ offset: Signal<number>;
11
+ setPage: (page: number) => void;
12
+ setPageSize: (size: number) => void;
13
+ setTotalItems: (total: number) => void;
14
+ nextPage: () => void;
15
+ prevPage: () => void;
16
+ reset: () => void;
17
+ }
18
+ /**
19
+ * Servicio para gestionar el estado de paginación en tablas C80
20
+ *
21
+ * Maneja:
22
+ * - Estado de paginación (página actual, tamaño, total)
23
+ * - Cálculo automático de offset para API (limit/offset)
24
+ * - Navegación (siguiente, anterior)
25
+ * - Validaciones de límites
26
+ */
27
+ export declare class TablePaginationService {
28
+ /**
29
+ * Inicializa el estado de paginación para una nueva tabla
30
+ * @param initialPageSize - Tamaño de página inicial (default: 10)
31
+ * @returns Objeto con signals y métodos de paginación
32
+ */
33
+ createPaginationState(initialPageSize?: number): TablePaginationState;
34
+ private setPage;
35
+ private setPageSize;
36
+ private nextPage;
37
+ private prevPage;
38
+ private reset;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<TablePaginationService, never>;
40
+ static ɵprov: i0.ɵɵInjectableDeclaration<TablePaginationService>;
41
+ }
@@ -1,5 +1,16 @@
1
- import { type OutputEmitterRef } from '@angular/core';
1
+ import { type OutputEmitterRef, type Signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ interface SelectionState<T extends Record<string, unknown>> {
4
+ selectedItems: Signal<Set<string>>;
5
+ selectAllChecked: Signal<boolean>;
6
+ selectAllIndeterminate: Signal<boolean>;
7
+ clearSelection: () => void;
8
+ toggleSelectAll: (allItems: T[]) => void;
9
+ toggleItemSelection: (item: T, multiple: boolean) => void;
10
+ isItemSelected: (item: T) => boolean;
11
+ preserveSelection: (newData: T[]) => void;
12
+ getSelectedItems: (allData: T[]) => T[];
13
+ }
3
14
  /**
4
15
  * Servicio para gestionar la selección de elementos en tablas C80
5
16
  *
@@ -14,17 +25,7 @@ export declare class TableSelectionService {
14
25
  * Inicializa el estado de selección para una nueva tabla
15
26
  * @returns Objeto con signals y métodos de selección
16
27
  */
17
- createSelectionState<T extends Record<string, unknown>>(): {
18
- selectedItems: import("@angular/core").Signal<Set<string>>;
19
- selectAllChecked: import("@angular/core").Signal<boolean>;
20
- selectAllIndeterminate: import("@angular/core").Signal<boolean>;
21
- clearSelection: () => void;
22
- toggleSelectAll: (allItems: T[]) => void;
23
- toggleItemSelection: (item: T, multiple: boolean) => void;
24
- isItemSelected: (item: T) => boolean;
25
- preserveSelection: (newData: T[]) => void;
26
- getSelectedItems: (allData: T[]) => T[];
27
- };
28
+ createSelectionState<T extends Record<string, unknown>>(): SelectionState<T>;
28
29
  private clearSelection;
29
30
  private toggleSelectAll;
30
31
  private toggleItemSelection;
@@ -44,3 +45,4 @@ export declare class TableSelectionService {
44
45
  static ɵfac: i0.ɵɵFactoryDeclaration<TableSelectionService, never>;
45
46
  static ɵprov: i0.ɵɵInjectableDeclaration<TableSelectionService>;
46
47
  }
48
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { type OnInit, type OnDestroy } from '@angular/core';
2
2
  import type { Observable } from 'rxjs';
3
- import type { TableColDef, CustomTableAction } from './table.types';
3
+ import type { TableColDef, CustomTableAction, PaginationChangeEvent, PaginationConfig } from './table.types';
4
4
  import { getActionTooltip } from './table.utils';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
@@ -132,6 +132,7 @@ import * as i0 from "@angular/core";
132
132
  private readonly dataConverter;
133
133
  private readonly selectionService;
134
134
  private readonly crudService;
135
+ private readonly paginationService;
135
136
  readonly data$: import("@angular/core").InputSignal<Observable<T[]>>;
136
137
  readonly columns: import("@angular/core").InputSignal<TableColDef[]>;
137
138
  readonly inputValues$: import("@angular/core").InputSignal<Observable<Partial<T>> | undefined>;
@@ -141,6 +142,8 @@ import * as i0 from "@angular/core";
141
142
  readonly searchable: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
142
143
  readonly allowSelection: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
143
144
  readonly noConfirm: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
145
+ readonly paginated: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
146
+ readonly paginationConfig: import("@angular/core").InputSignal<PaginationConfig>;
144
147
  readonly actionClick: import("@angular/core").OutputEmitterRef<{
145
148
  action: string;
146
149
  row: T;
@@ -148,6 +151,7 @@ import * as i0 from "@angular/core";
148
151
  readonly searchTerm: import("@angular/core").OutputEmitterRef<string>;
149
152
  readonly errorEvent: import("@angular/core").OutputEmitterRef<string>;
150
153
  readonly selectable: import("@angular/core").OutputEmitterRef<T[]>;
154
+ readonly paginationChange: import("@angular/core").OutputEmitterRef<PaginationChangeEvent>;
151
155
  readonly data: import("@angular/core").WritableSignal<T[]>;
152
156
  readonly searchValue: import("@angular/core").WritableSignal<string>;
153
157
  private readonly selectionState;
@@ -159,15 +163,23 @@ import * as i0 from "@angular/core";
159
163
  readonly newRow: import("@angular/core").Signal<Partial<T> | null>;
160
164
  readonly editing: import("@angular/core").Signal<string | null>;
161
165
  readonly editRow: import("@angular/core").Signal<Partial<T> | null>;
166
+ private readonly paginationState;
167
+ readonly currentPage: import("@angular/core").Signal<number>;
168
+ readonly pageSize: import("@angular/core").Signal<number>;
169
+ readonly totalPages: import("@angular/core").Signal<number>;
170
+ readonly hasNextPage: import("@angular/core").Signal<boolean>;
171
+ readonly hasPrevPage: import("@angular/core").Signal<boolean>;
162
172
  readonly keys: import("@angular/core").Signal<string[]>;
163
173
  readonly hasAnyActions: import("@angular/core").Signal<boolean>;
164
174
  readonly hasCrudCreate: import("@angular/core").Signal<boolean>;
165
175
  readonly hasCrudUpdate: import("@angular/core").Signal<boolean>;
166
176
  readonly hasCrudDelete: import("@angular/core").Signal<boolean>;
167
177
  readonly hasCrudCancel: import("@angular/core").Signal<boolean>;
178
+ readonly shouldShowCreateButton: import("@angular/core").Signal<boolean>;
168
179
  readonly tableMaxHeight: import("@angular/core").Signal<string | undefined>;
169
180
  private dataSub?;
170
181
  private inputValuesSub?;
182
+ constructor();
171
183
  /**
172
184
  * Maneja input de creación/edición de forma unificada
173
185
  */
@@ -189,6 +201,9 @@ import * as i0 from "@angular/core";
189
201
  cancelEdit(): void;
190
202
  saveEdit(row: T): void;
191
203
  /**
204
+ * Filtra los campos readOnly de los cambios para evitar enviarlos en las actualizaciones
205
+ */
206
+ private filterReadOnlyFields; /**
192
207
  * Convierte todos los valores de una fila según los tipos definidos en las columnas
193
208
  * Asegura que los datos emitidos tengan el tipo correcto (integer, number, boolean, etc.)
194
209
  */
@@ -200,7 +215,7 @@ import * as i0 from "@angular/core";
200
215
  /**
201
216
  * Verifica si una acción personalizada debe mostrarse para una fila específica
202
217
  */
203
- readonly shouldShowAction: (action: CustomTableAction, row: T) => boolean;
218
+ readonly shouldShowAction: (action: CustomTableAction, row: T, data?: T[] | undefined) => boolean;
204
219
  /**
205
220
  * Obtiene el tooltip de una acción
206
221
  */
@@ -246,11 +261,20 @@ import * as i0 from "@angular/core";
246
261
  isColumnVisible(column: TableColDef): boolean;
247
262
  isColumnVisibleInHeader(column: TableColDef): boolean;
248
263
  isColumnVisibleForRow(column: TableColDef, row: T): boolean;
264
+ onPageChange(page: number): void;
265
+ onNextPage(): void;
266
+ onPrevPage(): void;
267
+ private emitPaginationChange;
268
+ /**
269
+ * Actualiza el total de items para calcular páginas
270
+ * Debe ser llamado por el componente padre después de recibir datos
271
+ */
272
+ updateTotalItems(total: number): void;
249
273
  /**
250
274
  * Obtiene el color de una acción considerando el tema actual.
251
275
  * Si la acción tiene color explícito, lo usa. Si no, aplica color por tema.
252
276
  */
253
277
  getActionColor(action: CustomTableAction): string | undefined;
254
278
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent<any>, never>;
255
- static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "c80-table", never, { "data$": { "alias": "data$"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "inputValues$": { "alias": "inputValues$"; "required": false; "isSignal": true; }; "customActions": { "alias": "customActions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "allowSelection": { "alias": "allowSelection"; "required": false; "isSignal": true; }; "noConfirm": { "alias": "noConfirm"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; "searchTerm": "searchTerm"; "errorEvent": "errorEvent"; "selectable": "selectable"; }, never, never, true, never>;
279
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent<any>, "c80-table", never, { "data$": { "alias": "data$"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "inputValues$": { "alias": "inputValues$"; "required": false; "isSignal": true; }; "customActions": { "alias": "customActions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "allowSelection": { "alias": "allowSelection"; "required": false; "isSignal": true; }; "noConfirm": { "alias": "noConfirm"; "required": false; "isSignal": true; }; "paginated": { "alias": "paginated"; "required": false; "isSignal": true; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; "searchTerm": "searchTerm"; "errorEvent": "errorEvent"; "selectable": "selectable"; "paginationChange": "paginationChange"; }, never, never, true, never>;
256
280
  }
@@ -15,6 +15,7 @@ export interface TableColDef {
15
15
  default?: unknown;
16
16
  min?: number;
17
17
  max?: number;
18
+ truncate?: number;
18
19
  }
19
20
  /**
20
21
  * Configuración de confirmación para acciones de tabla
@@ -33,7 +34,22 @@ export interface CustomTableAction {
33
34
  name: string;
34
35
  icon: IconType;
35
36
  color?: string;
36
- condition?: <T extends Record<string, unknown>>(row: T) => boolean;
37
+ condition?: <T extends Record<string, unknown>>(row: T, data?: T[]) => boolean;
37
38
  tooltip?: string;
38
39
  confirmation?: ActionConfirmation;
39
40
  }
41
+ /**
42
+ * Evento emitido cuando cambia la paginación
43
+ */
44
+ export interface PaginationChangeEvent {
45
+ page: number;
46
+ limit: number;
47
+ offset: number;
48
+ }
49
+ /**
50
+ * Configuración de paginación para la tabla
51
+ */
52
+ export interface PaginationConfig {
53
+ pageSize?: number;
54
+ totalItems?: number;
55
+ }
@@ -2,6 +2,8 @@ import type { TableColDef, CustomTableAction } from './table.types';
2
2
  /**
3
3
  * Transform function para convertir valores string/boolean a boolean
4
4
  * Usado en @Input() con transform para habilitar sintaxis de atributos booleanos
5
+ * @param value
6
+ * @returns Valor convertido a boolean
5
7
  * @example [searchable]="true" o simplemente searchable
6
8
  */
7
9
  export declare function booleanAttribute(value: boolean | string): boolean;
@@ -31,9 +33,10 @@ export declare function trackById<T extends Record<string, unknown>>(index: numb
31
33
  * CREATE se excluye porque se maneja con el botón "+" en el header
32
34
  * @param action - Acción a verificar
33
35
  * @param row - Fila de datos
36
+ * @param data - Todos los datos de la tabla (opcional)
34
37
  * @returns true si la acción debe mostrarse
35
38
  */
36
- export declare function shouldShowAction<T extends Record<string, unknown>>(action: CustomTableAction, row: T): boolean;
39
+ export declare function shouldShowAction<T extends Record<string, unknown>>(action: CustomTableAction, row: T, data?: T[]): boolean;
37
40
  /**
38
41
  * Obtiene el tooltip de una acción (usa tooltip personalizado o name por defecto)
39
42
  * @param action - Acción
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c80/ui",
3
- "version": "1.0.57",
3
+ "version": "1.0.62",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^20.3.9",
6
6
  "rxjs": "~7.8.0",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=select.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.model.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/select/select.model.ts"],"names":[],"mappings":"","sourcesContent":["export interface SelectOption<T = string> {\n value: T;\n label: string;\n disabled?: boolean;\n}\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=snackbar.model.js.map
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=c80-tab.model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"c80-tab.model.js","sourceRoot":"","sources":["../../../../../libs/ui/src/lib/tab/c80-tab.model.ts"],"names":[],"mappings":"","sourcesContent":["export interface C80Tab {\n readonly label: string;\n readonly icon?: string;\n}\n"]}