@3kles/kles-material-table-v2 21.10.0 → 22.1.0

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
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@3kles/kles-material-table-v2",
3
- "version": "21.10.0",
3
+ "version": "22.1.0",
4
4
  "keywords": [
5
5
  "3KLES"
6
6
  ],
7
7
  "author": "3Kles Lab",
8
8
  "license": "ISC",
9
9
  "peerDependencies": {
10
- "@3kles/kles-material-dynamicforms": "^21.3.0",
11
- "@angular/animations": "^21.0.0",
12
- "@angular/cdk": "^21.0.0",
13
- "@angular/common": "^21.0.0",
14
- "@angular/core": "^21.0.0",
15
- "@angular/forms": "^21.0.0",
16
- "@angular/material": "^21.0.0",
17
- "@angular/platform-browser": "^21.0.0",
18
- "@angular/router": "^21.0.0",
10
+ "@3kles/kles-material-dynamicforms": "^22.0.0",
11
+ "@angular/animations": "^22.0.0",
12
+ "@angular/cdk": "^22.0.0",
13
+ "@angular/common": "^22.0.0",
14
+ "@angular/core": "^22.0.0",
15
+ "@angular/forms": "^22.0.0",
16
+ "@angular/material": "^22.0.0",
17
+ "@angular/platform-browser": "^22.0.0",
18
+ "@angular/router": "^22.0.0",
19
19
  "rxjs": "^6.5.3 || ^7.4.0"
20
20
  },
21
21
  "dependencies": {
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, EventEmitter, Type, WritableSignal, Injector, OnInit, AfterViewInit, OnDestroy, ElementRef, InjectionToken } from '@angular/core';
2
+ import { Signal, EventEmitter, Type, WritableSignal, Injector, OnInit, AfterViewInit, OnDestroy, ElementRef, AfterViewChecked, InjectionToken } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { FormGroup, FormControlStatus, FormArray, ValidatorFn, AsyncValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';
5
5
  import { MatTableDataSource, MatTable } from '@angular/material/table';
@@ -353,6 +353,8 @@ declare class KlesTableIntl {
353
353
  readonly changes: Subject<void>;
354
354
  emptyStateTitle: string;
355
355
  emptyStateDescription: string;
356
+ emptyStateRefreshLabel: string;
357
+ keyboardNavigationEntryLabel: string;
356
358
  static ɵfac: i0.ɵɵFactoryDeclaration<KlesTableIntl, never>;
357
359
  static ɵprov: i0.ɵɵInjectableDeclaration<KlesTableIntl>;
358
360
  }
@@ -379,18 +381,40 @@ interface EmptyStateConfig {
379
381
  component?: Type<unknown>;
380
382
  intl?: Type<KlesTableIntl>;
381
383
  }
382
- interface DefaultTableConfig<TSource = unknown> extends RowAppearanceConfig<TSource> {
383
- id?: string;
384
- columns: KlesColumnConfig[];
385
- /** Reserved for row-level validation configuration; not applied yet. */
384
+ interface KeyboardNavigationConfig {
385
+ /** Enables roving cell focus and keyboard editing. Defaults to false. */
386
+ enabled: boolean;
387
+ /** Accessible name of the keyboard-navigable grid. */
388
+ ariaLabel?: string;
389
+ }
390
+ interface RowValidationConfig {
391
+ /** Validators applied to each row FormGroup, including newly created and child rows. */
386
392
  lineValidations?: ValidatorFn[];
387
- /** Reserved for asynchronous row-level validation configuration; not applied yet. */
393
+ /** Async row validators, run after synchronous validation succeeds. */
388
394
  lineAsyncValidations?: AsyncValidatorFn[];
395
+ }
396
+ interface DefaultTableConfig<TSource = unknown> extends RowAppearanceConfig<TSource>, RowValidationConfig {
397
+ id?: string;
398
+ columns: KlesColumnConfig[];
389
399
  footer?: boolean;
390
400
  sortConfig?: Sort;
391
401
  columnSeparator?: boolean | ColumnSeparatorConfig;
392
402
  elevation?: TableElevationLevel;
393
403
  emptyState?: boolean | EmptyStateConfig;
404
+ /**
405
+ * Optional data-cell navigation: arrows, Home/End, Enter/F2 to enter a field,
406
+ * Escape to return to the cell, Space to select an eligible row.
407
+ * A skip button before the header and Ctrl+Enter provide direct access to rows.
408
+ * Tab leaves navigation mode; inside a cell it traverses its controls first.
409
+ * Only currently rendered data rows participate (no automatic page loading).
410
+ */
411
+ /**
412
+ * Optional data-cell navigation: arrows, Home/End, Enter/F2 to enter a field,
413
+ * Escape to return to the cell, Space to select an eligible row.
414
+ * Tab leaves navigation mode; inside a cell it traverses its controls first.
415
+ * Only currently rendered data rows participate (no automatic page loading).
416
+ */
417
+ keyboardNavigation?: KeyboardNavigationConfig;
394
418
  }
395
419
  interface PaginatorConfig {
396
420
  paginator?: boolean;
@@ -824,11 +848,23 @@ interface TreeApi {
824
848
  collapseAll(): void;
825
849
  }
826
850
 
851
+ type CursorMode = 'auto' | 'pointer' | 'default';
852
+ interface CursorApi {
853
+ readonly mode: Signal<CursorMode>;
854
+ /** Shows the pointer on data rows, independently of selection. */
855
+ enable(): void;
856
+ /** Removes the pointer supplied by the table. */
857
+ disable(): void;
858
+ /** Restores the cursor based on row click selection eligibility. */
859
+ reset(): void;
860
+ }
861
+
827
862
  interface ITable {
828
863
  scrollbar: ScrollbarApi;
829
864
  column: ColumnApi;
830
865
  pagination?: PaginationApi | undefined;
831
866
  selection: SelectionApi;
867
+ cursor: CursorApi;
832
868
  sort: SortApi;
833
869
  footer: FooterApi;
834
870
  loading: LoadingApi;
@@ -868,12 +904,12 @@ declare class EventsService<TValue = unknown> {
868
904
  declare class ColumnsService {
869
905
  private _columns;
870
906
  private readonly eventsService;
871
- displayedColumns: Signal<string[]> | undefined;
907
+ displayedColumns: Signal<string[]>;
872
908
  constructor(_columns: WritableSignal<KlesColumnConfig[]>, eventsService: EventsService);
873
909
  register(): void;
874
910
  get columns(): Signal<KlesColumnConfig[]>;
875
- readonly stickyStartBoundary: Signal<string>;
876
- readonly stickyEndBoundary: Signal<string>;
911
+ readonly stickyStartBoundary: Signal<string | undefined>;
912
+ readonly stickyEndBoundary: Signal<string | undefined>;
877
913
  getVisible(): string[];
878
914
  setVisible(columnDef: string, visible: boolean): void;
879
915
  toggleVisible(columnDef: string): void;
@@ -902,6 +938,8 @@ interface KlesCreatedRow<TSource = unknown> {
902
938
  context: KlesRowContext<TSource>;
903
939
  }
904
940
  declare class RowFormFactory {
941
+ private readonly validationConfig;
942
+ constructor(validationConfig?: RowValidationConfig | null);
905
943
  createControl(field: IKlesFieldConfig, value?: any): {
906
944
  control: AbstractControl;
907
945
  ui: AbstractUiState;
@@ -914,7 +952,7 @@ declare class RowFormFactory {
914
952
  depth: number;
915
953
  parentId: string | number | null;
916
954
  }): KlesCreatedRow<TSource>[];
917
- static ɵfac: i0.ɵɵFactoryDeclaration<RowFormFactory, never>;
955
+ static ɵfac: i0.ɵɵFactoryDeclaration<RowFormFactory, [{ optional: true; }]>;
918
956
  static ɵprov: i0.ɵɵInjectableDeclaration<RowFormFactory>;
919
957
  }
920
958
 
@@ -986,7 +1024,7 @@ declare class KlesForm {
986
1024
  updateRow(_id: number | string, value: any, options?: {
987
1025
  emitEvent?: boolean;
988
1026
  onlySelf?: boolean;
989
- }): FormGroup<any>;
1027
+ }): FormGroup<any> | undefined;
990
1028
  resetRow(_id: number | string, value?: any, options?: {
991
1029
  onlySelf?: boolean;
992
1030
  emitEvent?: boolean;
@@ -1013,22 +1051,22 @@ declare class KlesForm {
1013
1051
  static ɵprov: i0.ɵɵInjectableDeclaration<KlesForm>;
1014
1052
  }
1015
1053
 
1016
- declare abstract class DragDropBase {
1017
- protected config: DragDropConfig | undefined;
1054
+ declare abstract class DragDropBase<TValue = unknown> {
1055
+ protected config: DragDropConfig<TValue> | undefined;
1018
1056
  protected readonly eventsService: EventsService;
1019
1057
  protected readonly klesForm: KlesForm;
1020
1058
  protected readonly injector: Injector;
1021
1059
  private static nextDropListId;
1022
1060
  readonly dropListId: string;
1023
- constructor(config: DragDropConfig | undefined, eventsService: EventsService, klesForm: KlesForm, injector: Injector, tableId?: string);
1061
+ constructor(config: DragDropConfig<TValue> | undefined, eventsService: EventsService, klesForm: KlesForm, injector: Injector, tableId?: string);
1024
1062
  get enable(): boolean;
1025
1063
  get handleOnly(): boolean;
1026
1064
  get autoScrollStep(): number;
1027
- get connectedTo(): string[];
1065
+ get connectedTo(): string[] | undefined;
1028
1066
  get sortPredicate(): (index: number, item: CdkDrag<FormGroup>) => boolean;
1029
- get previewComponent(): i0.Type<unknown>;
1067
+ get previewComponent(): i0.Type<unknown> | undefined;
1030
1068
  get previewMatchSize(): boolean;
1031
- get placeholderComponent(): i0.Type<unknown>;
1069
+ get placeholderComponent(): i0.Type<unknown> | undefined;
1032
1070
  isDragDisabled(row: FormGroup): boolean;
1033
1071
  componentInjector(row: FormGroup, rowIndex: number): Injector;
1034
1072
  abstract listDropped(event: CdkDragDrop<KlesForm>): void;
@@ -1046,8 +1084,8 @@ declare abstract class DragDropBase {
1046
1084
  private handleDrop;
1047
1085
  private toDropListId;
1048
1086
  }
1049
- declare class DragDropService extends DragDropBase {
1050
- constructor(config: DragDropConfig | undefined, eventsService: EventsService, klesForm: KlesForm, injector: Injector, tableId?: string);
1087
+ declare class DragDropService<TValue = unknown> extends DragDropBase<TValue> {
1088
+ constructor(config: DragDropConfig<TValue> | undefined, eventsService: EventsService, klesForm: KlesForm, injector: Injector, tableId?: string);
1051
1089
  listDropped(event: CdkDragDrop<KlesForm>): void;
1052
1090
  }
1053
1091
 
@@ -1065,7 +1103,7 @@ declare class ScrollbarService {
1065
1103
  toLeft(sb?: ScrollBehavior): void;
1066
1104
  toRight(sb?: ScrollBehavior): void;
1067
1105
  to(top: number, left: number, sb?: ScrollBehavior): void;
1068
- getTop(): number;
1106
+ getTop(): number | undefined;
1069
1107
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollbarService, never>;
1070
1108
  static ɵprov: i0.ɵɵInjectableDeclaration<ScrollbarService>;
1071
1109
  }
@@ -1083,6 +1121,7 @@ declare class KlesTableConnectorService {
1083
1121
  get sort(): SortApi;
1084
1122
  get loading(): LoadingApi;
1085
1123
  get selection(): SelectionApi;
1124
+ get cursor(): CursorApi;
1086
1125
  get footer(): FooterApi;
1087
1126
  get form(): _3kles_kles_material_table_v2.FormApi<_3kles_kles_material_table_v2.FormValue>;
1088
1127
  get ui(): GroupUiState<{
@@ -1110,22 +1149,6 @@ declare class LoadingService {
1110
1149
  static ɵprov: i0.ɵɵInjectableDeclaration<LoadingService>;
1111
1150
  }
1112
1151
 
1113
- interface ITableStore {
1114
- reset(): void;
1115
- }
1116
-
1117
- declare class PaginatorStore implements ITableStore {
1118
- protected config: PaginatorConfig;
1119
- private s;
1120
- page$: Observable<Pagination>;
1121
- constructor(config: PaginatorConfig);
1122
- setPage(v: Pagination): void;
1123
- snapshot(): Pagination;
1124
- reset(): void;
1125
- static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorStore, [{ optional: true; }]>;
1126
- static ɵprov: i0.ɵɵInjectableDeclaration<PaginatorStore>;
1127
- }
1128
-
1129
1152
  interface IKlesDataSource extends DataSource<FormGroup> {
1130
1153
  set data(data: unknown[]);
1131
1154
  get paginator(): MatPaginator | null | undefined;
@@ -1161,11 +1184,7 @@ declare class ValidationService {
1161
1184
  private readonly rowSubscriptions;
1162
1185
  constructor(eventsService: EventsService);
1163
1186
  listen(visibleRows: FormGroup[], visibleColumns: string[]): void;
1164
- private getCellKey;
1165
- private getRowKey;
1166
- private subscribeToCell;
1167
1187
  private subscribeToRow;
1168
- private unsubscribe;
1169
1188
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationService, never>;
1170
1189
  static ɵprov: i0.ɵɵInjectableDeclaration<ValidationService>;
1171
1190
  }
@@ -1193,6 +1212,22 @@ declare class DatasourceService implements IDatasourceService {
1193
1212
  static ɵprov: i0.ɵɵInjectableDeclaration<DatasourceService>;
1194
1213
  }
1195
1214
 
1215
+ interface ITableStore {
1216
+ reset(): void;
1217
+ }
1218
+
1219
+ declare class PaginatorStore implements ITableStore {
1220
+ protected config: PaginatorConfig;
1221
+ private s;
1222
+ page$: Observable<Pagination>;
1223
+ constructor(config: PaginatorConfig);
1224
+ setPage(v: Pagination): void;
1225
+ snapshot(): Pagination;
1226
+ reset(): void;
1227
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginatorStore, [{ optional: true; }]>;
1228
+ static ɵprov: i0.ɵɵInjectableDeclaration<PaginatorStore>;
1229
+ }
1230
+
1196
1231
  declare class PaginatorService {
1197
1232
  private config;
1198
1233
  protected paginatorStore: PaginatorStore | null;
@@ -1220,27 +1255,6 @@ declare class PaginatorService {
1220
1255
  static ɵprov: i0.ɵɵInjectableDeclaration<PaginatorService>;
1221
1256
  }
1222
1257
 
1223
- interface ISortService {
1224
- sort: MatSort;
1225
- register(s: MatSort): void;
1226
- setDirection(direction: SortDirection): void;
1227
- setActive(active: string): void;
1228
- sortChange(): EventEmitter<Sort>;
1229
- }
1230
-
1231
- declare class FilterService {
1232
- private columnsService;
1233
- private datasourceService;
1234
- constructor(columnsService: ColumnsService, datasourceService: DatasourceService);
1235
- register(): void;
1236
- formatData(data: {
1237
- [key: string]: any;
1238
- }): any;
1239
- private createFilterPredicate;
1240
- static ɵfac: i0.ɵɵFactoryDeclaration<FilterService, never>;
1241
- static ɵprov: i0.ɵɵInjectableDeclaration<FilterService>;
1242
- }
1243
-
1244
1258
  interface ILoader<R> {
1245
1259
  load(): Observable<{
1246
1260
  total: number;
@@ -1252,10 +1266,6 @@ interface ILoader<R> {
1252
1266
  refresh(): void;
1253
1267
  }
1254
1268
 
1255
- interface IHeaderService {
1256
- register(): void;
1257
- }
1258
-
1259
1269
  type ExpandedRowId = string | number;
1260
1270
  declare class ExpandedRowStore implements ITableStore {
1261
1271
  private readonly multiUnfold;
@@ -1300,12 +1310,53 @@ interface ISelectionService {
1300
1310
  selectionModel?: IKlesSelectionModel<FormGroup>;
1301
1311
  readonly loadingRows: Signal<ReadonlySet<FormGroup>>;
1302
1312
  isLoading(row: FormGroup): boolean;
1313
+ canSelectOnRowClick(row: FormGroup): boolean;
1314
+ canSelectRow(row: FormGroup): boolean;
1315
+ toggleRowSelection(row: FormGroup): void;
1303
1316
  onRowClick(event: MouseEvent, row: FormGroup): void;
1304
1317
  count(): Signal<number>;
1305
1318
  disable(): void;
1306
1319
  enable(): void;
1307
1320
  }
1308
1321
 
1322
+ declare class CursorService implements CursorApi {
1323
+ private readonly selectionService;
1324
+ private readonly _mode;
1325
+ readonly mode: i0.Signal<CursorMode>;
1326
+ constructor(selectionService: ISelectionService);
1327
+ enable(): void;
1328
+ disable(): void;
1329
+ reset(): void;
1330
+ isPointer(row: FormGroup): boolean;
1331
+ static ɵfac: i0.ɵɵFactoryDeclaration<CursorService, never>;
1332
+ static ɵprov: i0.ɵɵInjectableDeclaration<CursorService>;
1333
+ }
1334
+
1335
+ interface ISortService {
1336
+ sort: MatSort;
1337
+ register(s: MatSort): void;
1338
+ setDirection(direction: SortDirection): void;
1339
+ setActive(active: string): void;
1340
+ sortChange(): EventEmitter<Sort>;
1341
+ }
1342
+
1343
+ declare class FilterService {
1344
+ private columnsService;
1345
+ private datasourceService;
1346
+ constructor(columnsService: ColumnsService, datasourceService: DatasourceService);
1347
+ register(): void;
1348
+ formatData(data: {
1349
+ [key: string]: any;
1350
+ }): any;
1351
+ private createFilterPredicate;
1352
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterService, never>;
1353
+ static ɵprov: i0.ɵɵInjectableDeclaration<FilterService>;
1354
+ }
1355
+
1356
+ interface IHeaderService {
1357
+ register(): void;
1358
+ }
1359
+
1309
1360
  interface IScrollbarOrchestratorService {
1310
1361
  register(): void;
1311
1362
  }
@@ -1368,12 +1419,13 @@ declare class CellService {
1368
1419
  }
1369
1420
 
1370
1421
  declare class KlesTableEmptyStateComponent {
1422
+ readonly refreshRequested: i0.OutputEmitterRef<void>;
1371
1423
  readonly intl: KlesTableIntl;
1372
1424
  private readonly changeDetectorRef;
1373
1425
  private readonly destroyRef;
1374
1426
  constructor();
1375
1427
  static ɵfac: i0.ɵɵFactoryDeclaration<KlesTableEmptyStateComponent, never>;
1376
- static ɵcmp: i0.ɵɵComponentDeclaration<KlesTableEmptyStateComponent, "kles-table-empty-state", never, {}, {}, never, never, true, never>;
1428
+ static ɵcmp: i0.ɵɵComponentDeclaration<KlesTableEmptyStateComponent, "kles-table-empty-state", never, {}, { "refreshRequested": "refreshRequested"; }, never, never, true, never>;
1377
1429
  }
1378
1430
 
1379
1431
  declare class EmptyStateService {
@@ -1474,7 +1526,7 @@ declare class TableComponent implements ITable, OnInit, AfterViewInit, OnDestroy
1474
1526
  viewportScrollRangePx: i0.WritableSignal<number>;
1475
1527
  dataSource: IKlesDataSource;
1476
1528
  columns: Signal<KlesColumnConfig[]>;
1477
- displayedColumns: Signal<string[]> | undefined;
1529
+ displayedColumns: Signal<string[]>;
1478
1530
  showFooter: Signal<boolean>;
1479
1531
  multiTemplateDataRows: Signal<boolean>;
1480
1532
  extraRows: Signal<(ExtraRowConfig & {
@@ -1482,10 +1534,15 @@ declare class TableComponent implements ITable, OnInit, AfterViewInit, OnDestroy
1482
1534
  })[]>;
1483
1535
  readonly isEmpty: Signal<boolean>;
1484
1536
  private ro?;
1537
+ private readonly changeDetectorRef;
1485
1538
  private readonly destroyRef;
1486
1539
  private rafId?;
1487
1540
  private _cleanup?;
1488
1541
  emptyStateComponent: typeof KlesTableEmptyStateComponent;
1542
+ readonly identityTrackBy: (_: number, row: FormGroup) => FormGroup;
1543
+ readonly cursorService: CursorService;
1544
+ readonly intl: KlesTableIntl;
1545
+ get cursor(): CursorApi;
1489
1546
  constructor(host: ElementRef<HTMLElement>, connectorService: KlesTableConnectorService, loader: ILoader<unknown>, datasourceService: IDatasourceService, tableService: ITableService, dragDropRowService: DragDropService, columnDragDropService: ColumnDragDropService, rowAppearance: RowAppearanceConfig, selectionService: ISelectionService, columnsService: ColumnsService, loadingService: LoadingService, paginatorService: PaginatorService, scrollbarService: ScrollbarService, footerService: FooterService, extraRowService: ExtraRowService, renderService: RenderService, sortService: ISortService, filterService: FilterService, expandedRowStore: ExpandedRowStore, rowFactory: RowFormFactory, eventsService: EventsService, rowService: RowService, cellService: CellService, emptyStateService: EmptyStateService, treeService: TreeService<unknown, unknown>, rowContextStore: RowContextStore);
1490
1547
  getRowContext(row: FormGroup): KlesRowContext;
1491
1548
  isRowSelected(row: FormGroup): boolean;
@@ -1538,6 +1595,7 @@ interface KlesTableApi<TValue = unknown> {
1538
1595
  get sort(): SortApi;
1539
1596
  get loading(): LoadingApi;
1540
1597
  get selection(): SelectionApi;
1598
+ get cursor(): CursorApi;
1541
1599
  get form(): FormApi<TableFormValue<TValue>>;
1542
1600
  get footer(): FooterApi;
1543
1601
  get emptyState(): EmptyStateApi;
@@ -1554,7 +1612,7 @@ interface KlesTableApi<TValue = unknown> {
1554
1612
  declare class KlesTableComponent<TParams = unknown, TValue = unknown> implements OnInit, KlesTableApi<TValue> {
1555
1613
  private connectorService;
1556
1614
  tableConfig: i0.InputSignal<KlesTableConfig<TParams, TValue>>;
1557
- readonly footerStart: i0.Signal<KlesTableFooterStartDirective>;
1615
+ readonly footerStart: i0.Signal<KlesTableFooterStartDirective | undefined>;
1558
1616
  private readonly destroyRef;
1559
1617
  tableEvent: EventEmitter<TableEvent<TValue>>;
1560
1618
  rowClick: EventEmitter<RowMousePayload<TValue>>;
@@ -1582,7 +1640,7 @@ declare class KlesTableComponent<TParams = unknown, TValue = unknown> implements
1582
1640
  readonly elevationShadow: i0.Signal<string>;
1583
1641
  constructor(connectorService: KlesTableConnectorService);
1584
1642
  ngOnInit(): void;
1585
- get hostId(): string;
1643
+ get hostId(): string | undefined;
1586
1644
  refresh(): void;
1587
1645
  get scrollbar(): ScrollbarApi;
1588
1646
  get column(): ColumnApi;
@@ -1590,6 +1648,7 @@ declare class KlesTableComponent<TParams = unknown, TValue = unknown> implements
1590
1648
  get sort(): SortApi;
1591
1649
  get loading(): LoadingApi;
1592
1650
  get selection(): SelectionApi;
1651
+ get cursor(): CursorApi;
1593
1652
  get form(): FormApi<TableFormValue<TValue>>;
1594
1653
  get footer(): FooterApi;
1595
1654
  get emptyState(): EmptyStateApi;
@@ -1613,6 +1672,76 @@ declare class KlesMaterialTableModule {
1613
1672
  static ɵinj: i0.ɵɵInjectorDeclaration<KlesMaterialTableModule>;
1614
1673
  }
1615
1674
 
1675
+ interface KeyboardCell {
1676
+ element: HTMLElement;
1677
+ row: FormGroup;
1678
+ columnDef: string;
1679
+ }
1680
+ /** One instance per rendered grid, including nested tables. */
1681
+ declare class KeyboardNavigationService {
1682
+ private config;
1683
+ private selection;
1684
+ private registered;
1685
+ private cells;
1686
+ private active?;
1687
+ private identity?;
1688
+ private editing;
1689
+ private focusOwned;
1690
+ private originalTabIndexes;
1691
+ constructor(config: KeyboardNavigationConfig | null, selection: ISelectionService | null);
1692
+ get enabled(): boolean;
1693
+ get ariaLabel(): string | undefined;
1694
+ register(cell: KeyboardCell): void;
1695
+ unregister(cell: KeyboardCell): void;
1696
+ focusActive(): boolean;
1697
+ click(cell: KeyboardCell, event: MouseEvent): void;
1698
+ /** Runs after Angular has rendered rows, reordered columns and updated controls. */
1699
+ reconcile(): void;
1700
+ focusIn(cell: KeyboardCell, event: FocusEvent): void;
1701
+ focusOut(event: FocusEvent): void;
1702
+ keyDown(cell: KeyboardCell, event: KeyboardEvent): void;
1703
+ destroy(): void;
1704
+ private ownsEvent;
1705
+ private activate;
1706
+ private focus;
1707
+ private enterEdit;
1708
+ private isOwnControl;
1709
+ private availableControls;
1710
+ private updateTabStops;
1711
+ private setTabIndex;
1712
+ private restoreTabIndex;
1713
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardNavigationService, [{ optional: true; }, { optional: true; }]>;
1714
+ static ɵprov: i0.ɵɵInjectableDeclaration<KeyboardNavigationService>;
1715
+ }
1716
+
1717
+ declare class KeyboardGridDirective implements AfterViewChecked, OnDestroy {
1718
+ readonly navigation: KeyboardNavigationService;
1719
+ private readonly element;
1720
+ get role(): string | null;
1721
+ get label(): string | null;
1722
+ ngAfterViewChecked(): void;
1723
+ ngOnDestroy(): void;
1724
+ onKeyDown(event: KeyboardEvent): void;
1725
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardGridDirective, never>;
1726
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KeyboardGridDirective, "table[klesKeyboardGrid]", ["klesKeyboardGrid"], {}, {}, never, never, true, never>;
1727
+ }
1728
+ declare class KeyboardCellDirective implements KeyboardCell, OnInit, OnDestroy {
1729
+ private readonly navigation;
1730
+ readonly element: HTMLElement;
1731
+ row: FormGroup;
1732
+ columnDef: string;
1733
+ get role(): string | null;
1734
+ get enabled(): boolean;
1735
+ ngOnInit(): void;
1736
+ ngOnDestroy(): void;
1737
+ onFocusIn(event: FocusEvent): void;
1738
+ onFocusOut(event: FocusEvent): void;
1739
+ onKeyDown(event: KeyboardEvent): void;
1740
+ onClick(event: MouseEvent): void;
1741
+ static ɵfac: i0.ɵɵFactoryDeclaration<KeyboardCellDirective, never>;
1742
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KeyboardCellDirective, "td[klesKeyboardCell]", never, { "row": { "alias": "klesKeyboardCell"; "required": true; }; "columnDef": { "alias": "columnDef"; "required": true; }; }, {}, never, never, true, never>;
1743
+ }
1744
+
1616
1745
  declare const SELECTION_CONFIG: InjectionToken<SelectionConfig<unknown>>;
1617
1746
  declare const LOADER_CONFIG: InjectionToken<LoaderConfig<unknown, unknown>>;
1618
1747
  declare const COLUMNS: InjectionToken<WritableSignal<KlesColumnConfig[]>>;
@@ -1620,9 +1749,10 @@ declare const FOOTER: InjectionToken<WritableSignal<boolean>>;
1620
1749
  declare const EXTRA_ROWS: InjectionToken<WritableSignal<ExtraRowConfig[]>>;
1621
1750
  declare const MULTI_UNFOLD: InjectionToken<boolean>;
1622
1751
  declare const ROW_APPEARANCE_CONFIG: InjectionToken<RowAppearanceConfig<unknown>>;
1623
- declare const ROW_DRAG_DROP: InjectionToken<DragDropService>;
1752
+ declare const ROW_VALIDATION_CONFIG: InjectionToken<RowValidationConfig>;
1753
+ declare const ROW_DRAG_DROP: InjectionToken<DragDropService<unknown>>;
1624
1754
  declare const COLUMN_DRAG_DROP: InjectionToken<ColumnDragDropService>;
1625
- declare const DRAG_DROP_CONFIG: InjectionToken<DragDropConfig<unknown>>;
1755
+ declare const DRAG_DROP_CONFIG: InjectionToken<DragDropConfig<unknown> | undefined>;
1626
1756
  declare const KLES_DRAG_DROP_ROW_CONTEXT: InjectionToken<DragDropRowContext<unknown>>;
1627
1757
  declare const PAGINATOR_CONFIG: InjectionToken<PaginatorConfig>;
1628
1758
  declare const INFINITE_SCROLL_CONFIG: InjectionToken<InfiniteScrollConfig>;
@@ -1635,7 +1765,8 @@ declare const SELECTION_SERVICE: InjectionToken<ISelectionService>;
1635
1765
  declare const SORT_SERVICE: InjectionToken<ISortService>;
1636
1766
  declare const SCROLLBAR_ORCHESTRATOR_SERVICE: InjectionToken<IScrollbarOrchestratorService>;
1637
1767
  declare const TABLE_SERVICE: InjectionToken<ITableService>;
1638
- declare const EMPTY_STATE_CONFIG: InjectionToken<boolean | EmptyStateConfig>;
1768
+ declare const EMPTY_STATE_CONFIG: InjectionToken<boolean | EmptyStateConfig | undefined>;
1769
+ declare const KEYBOARD_NAVIGATION_CONFIG: InjectionToken<KeyboardNavigationConfig>;
1639
1770
 
1640
- export { AlignCell, COLUMNS, COLUMN_DRAG_DROP, DATASOURCE_SERVICE, DRAG_DROP_CONFIG, EMPTY_STATE_CONFIG, EXTRA_ROWS, FOOTER, HEADER_SERVICE, INFINITE_SCROLL_CONFIG, KLES_DRAG_DROP_ROW_CONTEXT, KlesMaterialTableModule, KlesTableComponent, KlesTableEmptyStateComponent, KlesTableFooterStartDirective, KlesTableIntl, LINES_SERVICE, LOADER_CONFIG, LOADER_SERVICE, MULTI_UNFOLD, PAGINATOR_CONFIG, ROW_APPEARANCE_CONFIG, ROW_DRAG_DROP, SCROLLBAR_ORCHESTRATOR_SERVICE, SELECTION_CONFIG, SELECTION_SERVICE, SORT_CONFIG, SORT_SERVICE, Span, TABLE_SERVICE, TableComponent, linesLazyLoader, linesLoader, selectionConfig };
1641
- export type { AggregationType, BulkActionClickPayload, CellMousePayload, CellPayload, CellValueChangePayload, ColumnApi, ColumnClass, ColumnDragDropConfig, ColumnDropPayload, ColumnOrderChangePayload, ColumnPayload, ColumnResizePayload, ColumnSeparatorConfig, ColumnSeparatorStyle, ColumnVisibilityChangePayload, DefaultTableConfig, DragDrop, DragDropConfig, DragDropRowChange, DragDropRowContext, EmptyStateApi, EmptyStateChangePayload, EmptyStateConfig, EventsApi, ExpansionPayload, ExtraRow, ExtraRowConfig, ExtraRowMode, ExtraRowWidth, FilterChangePayload, FooterApi, FooterFormApi, FormApi, FormValue, GlobalSearchPayload, HeaderFormApi, IKlesCellFieldConfig, IKlesFooterFieldConfig, IKlesHeaderFieldConfig, ITable, InfiniteScrollConfig, KlesColumnConfig, KlesExtraCellFieldConfig, KlesRowContext, KlesStyleMap, KlesStyleValue, KlesTableApi, KlesTableConfig, LinesLazyLoader, LinesLoader, LoadErrorPayload, LoadSuccessPayload, LoaderConfig, LoaderLazyResult, LoaderResult, LoadingApi, LoadingChangePayload, NgStyleInput, PageChangePayload, PaginationApi, PaginatorConfig, RenderApi, RowActionClickPayload, RowAppearanceConfig, RowClassInput, RowClassValue, RowDropErrorPayload, RowDropPayload, RowId, RowMousePayload, RowPayload, RowStyleInput, RowValidatePayload, RowsFormApi, ScrollbarApi, Selection, SelectionAllResponse, SelectionApi, SelectionChangePayload, SelectionConfig, SelectionErrorPayload, SelectionResponse, SelectionState, SortApi, SortPayload, StateChangePayload, SummaryChangePayload, TableElevationLevel, TableEvent, TableEventMap, TableEventPayload, TableEventType, TableFormValue, TreeApi, TreeNodeId, TreePayload, ValidationErrorPayload, VisibilityChangePayload };
1771
+ export { AlignCell, COLUMNS, COLUMN_DRAG_DROP, CursorService, DATASOURCE_SERVICE, DRAG_DROP_CONFIG, EMPTY_STATE_CONFIG, EXTRA_ROWS, FOOTER, HEADER_SERVICE, INFINITE_SCROLL_CONFIG, KEYBOARD_NAVIGATION_CONFIG, KLES_DRAG_DROP_ROW_CONTEXT, KeyboardCellDirective, KeyboardGridDirective, KlesMaterialTableModule, KlesTableComponent, KlesTableEmptyStateComponent, KlesTableFooterStartDirective, KlesTableIntl, LINES_SERVICE, LOADER_CONFIG, LOADER_SERVICE, MULTI_UNFOLD, PAGINATOR_CONFIG, ROW_APPEARANCE_CONFIG, ROW_DRAG_DROP, ROW_VALIDATION_CONFIG, SCROLLBAR_ORCHESTRATOR_SERVICE, SELECTION_CONFIG, SELECTION_SERVICE, SORT_CONFIG, SORT_SERVICE, Span, TABLE_SERVICE, TableComponent, linesLazyLoader, linesLoader, selectionConfig };
1772
+ export type { AggregationType, BulkActionClickPayload, CellMousePayload, CellPayload, CellValueChangePayload, ColumnApi, ColumnClass, ColumnDragDropConfig, ColumnDropPayload, ColumnOrderChangePayload, ColumnPayload, ColumnResizePayload, ColumnSeparatorConfig, ColumnSeparatorStyle, ColumnVisibilityChangePayload, CursorApi, CursorMode, DefaultTableConfig, DragDrop, DragDropConfig, DragDropRowChange, DragDropRowContext, EmptyStateApi, EmptyStateChangePayload, EmptyStateConfig, EventsApi, ExpansionPayload, ExtraRow, ExtraRowConfig, ExtraRowMode, ExtraRowWidth, FilterChangePayload, FooterApi, FooterFormApi, FormApi, FormValue, GlobalSearchPayload, HeaderFormApi, IKlesCellFieldConfig, IKlesFooterFieldConfig, IKlesHeaderFieldConfig, ITable, InfiniteScrollConfig, KeyboardNavigationConfig, KlesColumnConfig, KlesExtraCellFieldConfig, KlesRowContext, KlesStyleMap, KlesStyleValue, KlesTableApi, KlesTableConfig, LinesLazyLoader, LinesLoader, LoadErrorPayload, LoadSuccessPayload, LoaderConfig, LoaderLazyResult, LoaderResult, LoadingApi, LoadingChangePayload, NgStyleInput, PageChangePayload, PaginationApi, PaginatorConfig, RenderApi, RowActionClickPayload, RowAppearanceConfig, RowClassInput, RowClassValue, RowDropErrorPayload, RowDropPayload, RowId, RowMousePayload, RowPayload, RowStyleInput, RowValidatePayload, RowValidationConfig, RowsFormApi, ScrollbarApi, Selection, SelectionAllResponse, SelectionApi, SelectionChangePayload, SelectionConfig, SelectionErrorPayload, SelectionResponse, SelectionState, SortApi, SortPayload, StateChangePayload, SummaryChangePayload, TableElevationLevel, TableEvent, TableEventMap, TableEventPayload, TableEventType, TableFormValue, TreeApi, TreeNodeId, TreePayload, ValidationErrorPayload, VisibilityChangePayload };