@progress/kendo-angular-grid 24.0.0-develop.3 → 24.0.0-develop.31

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 (37) hide show
  1. package/NOTICE.txt +2599 -172
  2. package/columns/column-base.d.ts +4 -0
  3. package/columns/pin-column.component.d.ts +45 -0
  4. package/databinding.directive.d.ts +11 -1
  5. package/directives.d.ts +4 -3
  6. package/editing/edit.service.d.ts +1 -0
  7. package/editing/form/models.d.ts +1 -5
  8. package/editing-directives/local-edit.service.d.ts +1 -0
  9. package/fesm2022/progress-kendo-angular-grid.mjs +4083 -379
  10. package/grid.component.d.ts +64 -3
  11. package/grid.module.d.ts +106 -105
  12. package/grouping/group-header.component.d.ts +3 -3
  13. package/grouping/group-settings.d.ts +14 -0
  14. package/grouping/sticky-groups/models.d.ts +24 -0
  15. package/grouping/sticky-groups/sticky-group-container.component.d.ts +114 -0
  16. package/grouping/sticky-groups/sticky-groups-utils.d.ts +71 -0
  17. package/grouping/sticky-groups/sticky-groups.service.d.ts +132 -0
  18. package/index.d.ts +3 -0
  19. package/localization/messages.d.ts +33 -1
  20. package/navigation/logical-cell.directive.d.ts +4 -2
  21. package/navigation/navigation-metadata.d.ts +3 -1
  22. package/navigation/navigation.service.d.ts +19 -0
  23. package/navigation/skip-cell-navigation.d.ts +12 -0
  24. package/package-metadata.mjs +2 -2
  25. package/package.json +25 -25
  26. package/rendering/cell.component.d.ts +33 -6
  27. package/rendering/common/cell-context.d.ts +5 -0
  28. package/rendering/grid-table.directive.d.ts +0 -3
  29. package/rendering/list.component.d.ts +67 -1
  30. package/rendering/table-body.component.d.ts +5 -1
  31. package/rendering/toolbar/tools/smartbox/smartbox-component/smartbox.component.d.ts +4 -4
  32. package/row-pinning/pinned-row-tracking.service.d.ts +64 -0
  33. package/row-pinning/row-pin-container.component.d.ts +56 -0
  34. package/row-pinning/row-pin.service.d.ts +28 -0
  35. package/row-pinning/types.d.ts +42 -0
  36. package/schematics/ngAdd/index.js +7 -7
  37. package/scrolling/scroll-sync.service.d.ts +2 -3
@@ -0,0 +1,114 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { AfterViewChecked, ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
6
+ import { GroupDescriptor } from '@progress/kendo-data-query';
7
+ import { ColumnBase } from '../../columns/column-base';
8
+ import { DetailTemplateDirective } from '../../rendering/details/detail-template.directive';
9
+ import { NavigationService } from '../../navigation/navigation.service';
10
+ import { GroupsService } from '../groups.service';
11
+ import { StickyGroupItem } from './models';
12
+ import { StickyGroupsService } from './sticky-groups.service';
13
+ import { ContextService } from '../../common/provider.service';
14
+ import * as i0 from "@angular/core";
15
+ /**
16
+ * @hidden
17
+ * Renders the sticky group header or footer overlay container.
18
+ * When locked columns are present, renders two side-by-side tables
19
+ * mirroring the grid's locked / non-locked split.
20
+ */
21
+ export declare class StickyGroupContainerComponent implements OnInit, OnDestroy, AfterViewChecked {
22
+ private stickyGroupsService;
23
+ private cdr;
24
+ private ctx;
25
+ private el;
26
+ private navigationService;
27
+ private groupsService;
28
+ private zone;
29
+ position: 'top' | 'bottom';
30
+ set columns(value: ColumnBase[]);
31
+ get columns(): ColumnBase[];
32
+ set lockedColumns(value: ColumnBase[]);
33
+ get lockedColumns(): ColumnBase[];
34
+ groups: GroupDescriptor[];
35
+ detailTemplate: DetailTemplateDirective;
36
+ totalColumnsCount: number;
37
+ hasGroupHeaderColumn: boolean;
38
+ groupHeaderColumns: any[];
39
+ tableWidth: number;
40
+ lockedWidth: number;
41
+ isLocked: boolean;
42
+ hostClass: boolean;
43
+ get isBottom(): boolean;
44
+ hostRole: string;
45
+ items: StickyGroupItem[];
46
+ footerColumns: ColumnBase[];
47
+ lockedFooterColumns: ColumnBase[];
48
+ wrapWidth: number;
49
+ private _columns;
50
+ private _lockedColumns;
51
+ private subscription;
52
+ constructor(stickyGroupsService: StickyGroupsService, cdr: ChangeDetectorRef, ctx: ContextService, el: ElementRef, navigationService: NavigationService, groupsService: GroupsService, zone: NgZone);
53
+ private captureClickHandler;
54
+ ngOnInit(): void;
55
+ ngAfterViewChecked(): void;
56
+ ngOnDestroy(): void;
57
+ get isStacked(): boolean;
58
+ get gridSize(): string;
59
+ get nativeElement(): HTMLElement;
60
+ /**
61
+ * Handles clicks on the sticky container.
62
+ * For headers: toggle (anchor) clicks scroll grid to real header position;
63
+ * non-toggle clicks focus the clicked row.
64
+ * For footers: focus the clicked cell.
65
+ */
66
+ onContainerClick(event: MouseEvent): void;
67
+ onContainerFocusIn(event: FocusEvent): void;
68
+ onContainerFocusOut(event: FocusEvent): void;
69
+ onContainerKeydown(event: KeyboardEvent): void;
70
+ private expandSpanColumns;
71
+ private getFocusedItemIndex;
72
+ private handleArrowUp;
73
+ private handleArrowDown;
74
+ private handleEnterKey;
75
+ /**
76
+ * Capture-phase click handler registered on the host element.
77
+ * Intercepts <a> clicks inside sticky header rows before
78
+ * GroupHeaderComponent's toggleGroup fires.
79
+ */
80
+ private onCapturedClick;
81
+ /**
82
+ * Triggers the scroll-to-root-and-toggle flow via the service.
83
+ * The list component handles actual scrolling, toggling, and focus.
84
+ */
85
+ private scrollToGroupAndToggle;
86
+ private focusStickyRowByIndex;
87
+ private focusStickyCell;
88
+ private clearStickyFocus;
89
+ /**
90
+ * Clears k-focus from all grid content cells (outside any sticky container)
91
+ * so that the regular grid and the sticky overlay don't show focus simultaneously.
92
+ */
93
+ private clearGridFocus;
94
+ private focusRealGridRow;
95
+ private handleFooterKeydown;
96
+ private focusFooterCell;
97
+ /**
98
+ * Moves focus to the adjacent cell in the given direction (-1 = left, +1 = right).
99
+ * Crosses the locked/non-locked boundary seamlessly.
100
+ */
101
+ private focusFooterCellAt;
102
+ /**
103
+ * Focuses the cell with the given column index in a different row.
104
+ */
105
+ private focusFooterCellInRow;
106
+ /**
107
+ * Returns all data cells (with data-col-index) for a footer row,
108
+ * combining locked and non-locked tables, sorted by column index.
109
+ */
110
+ private getFooterRowCells;
111
+ private syncLockedRowHeights;
112
+ static ɵfac: i0.ɵɵFactoryDeclaration<StickyGroupContainerComponent, never>;
113
+ static ɵcmp: i0.ɵɵComponentDeclaration<StickyGroupContainerComponent, "[kendoGridStickyGroupContainer]", never, { "position": { "alias": "position"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "lockedColumns": { "alias": "lockedColumns"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "totalColumnsCount": { "alias": "totalColumnsCount"; "required": false; }; "hasGroupHeaderColumn": { "alias": "hasGroupHeaderColumn"; "required": false; }; "groupHeaderColumns": { "alias": "groupHeaderColumns"; "required": false; }; "tableWidth": { "alias": "tableWidth"; "required": false; }; "lockedWidth": { "alias": "lockedWidth"; "required": false; }; "isLocked": { "alias": "isLocked"; "required": false; }; }, {}, never, never, true, never>;
114
+ }
@@ -0,0 +1,71 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { GridItem } from '../../data/grid-item.interface';
6
+ import { GroupRange, StickyGroupItem } from './models';
7
+ /**
8
+ * @hidden
9
+ * Builds a map of group ranges from the flat data array.
10
+ * Each group header maps to its footer and child range.
11
+ */
12
+ export declare function buildGroupRangeMap(flatDataArray: GridItem[]): Map<number, GroupRange>;
13
+ /**
14
+ * @hidden
15
+ * Selects which group headers should be sticky at the top of the viewport.
16
+ * A header is sticky when it is scrolled above the viewport but its group
17
+ * children are still visible below.
18
+ */
19
+ export declare function computeStickyItems(flatDataArray: GridItem[], groupRanges: Map<number, GroupRange>, firstVisibleIndex: number, lastVisibleIndex: number, rawFirstVisibleIndex?: number): StickyGroupItem[];
20
+ /**
21
+ * @hidden
22
+ * Selects which group footers should be sticky at the bottom of the viewport.
23
+ * A footer is sticky when it is scrolled below the viewport but its group's
24
+ * header or first child is still visible above.
25
+ */
26
+ export declare function computeStickyFooterItems(flatDataArray: GridItem[], groupRanges: Map<number, GroupRange>, firstVisibleIndex: number, lastVisibleIndex: number): StickyGroupItem[];
27
+ /**
28
+ * @hidden
29
+ * Returns true if the displayed groups differ between current and previous arrays.
30
+ */
31
+ export declare function hasStickyItemsChanged(current: StickyGroupItem[], prev: StickyGroupItem[]): boolean;
32
+ /**
33
+ * @hidden
34
+ * Computes push offsets for sticky header overlay rows.
35
+ * When a group's boundary approaches the sticky slot, the header is pushed upward.
36
+ */
37
+ export declare function computeHeaderPush(indices: number[], getRowHeight: (flatIndex: number) => number, getRowOffset: (flatIndex: number) => number | undefined, scrollTop: number, groupRanges: Map<number, GroupRange>): {
38
+ totalHeight: number;
39
+ offsets: number[];
40
+ };
41
+ /**
42
+ * @hidden
43
+ * Computes push offsets for sticky footer overlay rows.
44
+ * When a group's header approaches the sticky footer slot, the footer is pushed downward.
45
+ */
46
+ export declare function computeFooterPush(indices: number[], getRowHeight: (flatIndex: number) => number, getRowOffset: (flatIndex: number) => number | undefined, scrollTop: number, viewportHeight: number, footerRanges: Map<number, GroupRange>): {
47
+ totalHeight: number;
48
+ offsets: number[];
49
+ };
50
+ /**
51
+ * @hidden
52
+ * Applies push transforms to sticky header overlay rows.
53
+ * Negative push values slide rows up with clipPath.
54
+ * Iterates each tbody independently so locked and non-locked tables
55
+ * both receive the same transforms.
56
+ */
57
+ export declare function applyHeaderPushTransforms(containerEl: HTMLElement, pushOffsets: number[]): void;
58
+ /**
59
+ * @hidden
60
+ * Applies push transforms to sticky footer overlay rows.
61
+ * Positive push values clip from the bottom. The footer container is bottom-anchored,
62
+ * so reducing its height shifts content down. Non-pushed rows are translated up to compensate.
63
+ * Iterates each tbody independently so locked and non-locked tables
64
+ * both receive the same transforms.
65
+ */
66
+ export declare function applyFooterPushTransforms(containerEl: HTMLElement, pushOffsets: number[]): void;
67
+ /**
68
+ * @hidden
69
+ * Resets all push transform styles on rows within a sticky container.
70
+ */
71
+ export declare function resetRowTransforms(containerEl: HTMLElement): void;
@@ -0,0 +1,132 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { NgZone, OnDestroy } from '@angular/core';
6
+ import { Subject } from 'rxjs';
7
+ import { GridItem } from '../../data/grid-item.interface';
8
+ import { StickyGroupItem } from './models';
9
+ import { RowHeightService } from '../../scrolling/row-height.service';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * @hidden
13
+ * Parameters for the sticky groups update cycle.
14
+ */
15
+ export interface StickyGroupsUpdateParams {
16
+ container: HTMLElement;
17
+ tbody: HTMLElement;
18
+ flatData: GridItem[];
19
+ stickyHeaderEl: HTMLElement | null;
20
+ stickyFooterEl: HTMLElement | null;
21
+ enableHeaders: boolean;
22
+ enableFooters: boolean;
23
+ rowHeight?: number;
24
+ skipOffset?: number;
25
+ rowHeightService?: RowHeightService;
26
+ }
27
+ /**
28
+ * @hidden
29
+ * Manages sticky group header and footer state for the Grid.
30
+ * Computes which groups to pin on each scroll frame and applies DOM transforms
31
+ * for the push effect. Runs outside Angular zone for performance.
32
+ */
33
+ export declare class StickyGroupsService implements OnDestroy {
34
+ private ngZone;
35
+ headerItems$: Subject<StickyGroupItem[]>;
36
+ footerItems$: Subject<StickyGroupItem[]>;
37
+ scrollToFooter$: Subject<number>;
38
+ scrollToRow$: Subject<void>;
39
+ scrollAndToggle$: Subject<string>;
40
+ stickyHeaderItems: StickyGroupItem[];
41
+ stickyFooterItems: StickyGroupItem[];
42
+ pendingScrollToFooter: number | null;
43
+ /**
44
+ * When set, after the scroll-to-group completes and the view settles,
45
+ * the sticky container should focus the real grid row for this group.
46
+ */
47
+ pendingFocusGroupIndex: string | null;
48
+ focusReady$: Subject<{
49
+ groupIndex: string;
50
+ flatIndex: number;
51
+ }>;
52
+ /**
53
+ * When set, the real grid body should scroll until the target row is
54
+ * rendered, then focus the corresponding cell.
55
+ */
56
+ pendingFocusRow: {
57
+ flatIndex: number;
58
+ colIndex: number;
59
+ } | null;
60
+ /**
61
+ * When true, the next update() call is skipped. Used when programmatically
62
+ * scrolling to top so stale DOM measurements don't re-show the overlay.
63
+ */
64
+ suppressNextUpdate: boolean;
65
+ private headerPushOffsets;
66
+ private footerPushOffsets;
67
+ private groupRangeMap;
68
+ private lastFlatDataRef;
69
+ constructor(ngZone: NgZone);
70
+ ngOnDestroy(): void;
71
+ /**
72
+ * Requests the list component to scroll to the group header and then
73
+ * toggle it. Called from sticky overlay click — uses pre-collapse data.
74
+ */
75
+ scrollAndToggle(groupIndex: string): void;
76
+ /**
77
+ * Requests the grid to scroll so the real footer row at the given flat index
78
+ * becomes visible at the bottom of the viewport.
79
+ */
80
+ requestScrollToFooter(flatIndex: number): void;
81
+ /**
82
+ * Consumes (returns and clears) any pending scroll-to-footer request.
83
+ */
84
+ consumeScrollToFooter(): number | null;
85
+ /**
86
+ * Requests the real grid body to render the row at the given flat index,
87
+ * then focus the corresponding cell.
88
+ */
89
+ requestScrollToRow(flatIndex: number, colIndex: number): void;
90
+ /**
91
+ * Consumes and clears the pending scroll-to-row request.
92
+ */
93
+ consumeScrollToRow(): {
94
+ flatIndex: number;
95
+ colIndex: number;
96
+ } | null;
97
+ /**
98
+ * Clears cached group range map so it is rebuilt on next update.
99
+ */
100
+ invalidateRangeMap(): void;
101
+ /**
102
+ * Main update cycle. Called on every scroll event, outside Angular zone.
103
+ * Computes which headers/footers should be sticky, applies push transforms,
104
+ * and emits changes only when the set of sticky items changes.
105
+ */
106
+ update(params: StickyGroupsUpdateParams): void;
107
+ /**
108
+ * Applies pending push transforms after Angular re-renders overlay content.
109
+ * Called from the overlay component's AfterViewChecked hook.
110
+ */
111
+ applyPendingHeaderTransforms(containerEl: HTMLElement): void;
112
+ applyPendingFooterTransforms(containerEl: HTMLElement): void;
113
+ /**
114
+ * Clears all sticky state and resets overlays.
115
+ */
116
+ clear(): void;
117
+ /**
118
+ * Adjusts the container scrollTop so the focused row is not hidden
119
+ * behind the sticky header or footer overlays.
120
+ * Intended to be called only from the keyboard navigation path,
121
+ * outside Angular zone.
122
+ */
123
+ adjustScrollForFocusedCell(containerEl: HTMLElement, stickyHeaderEl: HTMLElement | null, stickyFooterEl: HTMLElement | null): void;
124
+ /**
125
+ * Sets marginBlockEnd on the sticky footer overlay when the container
126
+ * has a horizontal scrollbar, so the footer does not overlap the scrollbar.
127
+ */
128
+ adjustStickyFooterForScrollbar(container: HTMLElement, stickyFooterEl: HTMLElement | null): void;
129
+ private clearAll;
130
+ static ɵfac: i0.ɵɵFactoryDeclaration<StickyGroupsService, never>;
131
+ static ɵprov: i0.ɵɵInjectableDeclaration<StickyGroupsService>;
132
+ }
package/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export { SpanColumnComponent } from './columns/span-column.component';
13
13
  export { ColumnGroupComponent } from './columns/column-group.component';
14
14
  export { CheckboxColumnComponent } from './columns/checkbox-column.component';
15
15
  export { RowReorderColumnComponent } from './columns/reorder-column.component';
16
+ export { RowPinColumnComponent } from './columns/pin-column.component';
16
17
  export { RowDragHandleTemplateDirective } from './row-reordering/drag-handle-template.directive';
17
18
  export { RowDragHintTemplateDirective } from './row-reordering/drag-hint-template.directive';
18
19
  export { ToolbarComponent } from './rendering/toolbar/toolbar.component';
@@ -41,6 +42,7 @@ export { SortService } from './common/sort.service';
41
42
  export { ChangeNotificationService } from './data/change-notification.service';
42
43
  export { ColumnReorderService } from './dragdrop/column-reorder.service';
43
44
  export { RowReorderService } from './row-reordering/row-reorder.service';
45
+ export { RowPinService } from './row-pinning/row-pin.service';
44
46
  export { DragAndDropService } from './dragdrop/drag-and-drop.service';
45
47
  export { DragHintService } from './dragdrop/drag-hint.service';
46
48
  export { DropCueService } from './dragdrop/drop-cue.service';
@@ -85,6 +87,7 @@ export { ResizableContainerDirective } from './layout/resizable.directive';
85
87
  export { GroupableSettings } from './grouping/group-settings';
86
88
  export { SelectionEvent, SelectableSettings, SelectableMode, SelectAllCheckboxState, CellSelectionItem, CellSelectedFn, GridSelectionItem } from './selection/types';
87
89
  export { RowReorderEvent, DragRow, DropPosition } from './row-reordering/types';
90
+ export { RowPinEvent, GridRowPinLocation, RowPinnableFn } from './row-pinning/types';
88
91
  export { NoRecordsTemplateDirective } from './rendering/no-records-template.directive';
89
92
  export { DataBindingDirective } from './databinding.directive';
90
93
  export { SelectionDirective } from './selection/selection.directive';
@@ -707,6 +707,38 @@ export declare class GridMessages extends ComponentMessages {
707
707
  * Sets the screen-reader-only content for the command column header.
708
708
  */
709
709
  commandColumnHeaderLabel: string;
710
+ /**
711
+ * The aria-label for the pinned top rows container.
712
+ */
713
+ pinnedTopRowsLabel: string;
714
+ /**
715
+ * The aria-label for the pinned bottom rows container.
716
+ */
717
+ pinnedBottomRowsLabel: string;
718
+ /**
719
+ * The text for the **Pin row to top** option in the pin context menu.
720
+ */
721
+ pinMenuPinToTopText: string;
722
+ /**
723
+ * The text for the **Pin row to bottom** option in the pin context menu.
724
+ */
725
+ pinMenuPinToBottomText: string;
726
+ /**
727
+ * The text for the **Unpin** option in the pin context menu.
728
+ */
729
+ pinMenuUnpinText: string;
730
+ /**
731
+ * Sets the screen-reader-only content for the pin column header.
732
+ */
733
+ pinColumnHeaderLabel: string;
734
+ /**
735
+ * Sets the label for the Grid row pin column icon.
736
+ */
737
+ rowPinLabel: string;
738
+ /**
739
+ * Sets the label for the Grid row unpin column icon.
740
+ */
741
+ rowUnpinLabel: string;
710
742
  static ɵfac: i0.ɵɵFactoryDeclaration<GridMessages, never>;
711
- static ɵdir: i0.ɵɵDirectiveDeclaration<GridMessages, "kendo-grid-messages-base", never, { "groupPanelEmpty": { "alias": "groupPanelEmpty"; "required": false; }; "noRecords": { "alias": "noRecords"; "required": false; }; "pagerLabel": { "alias": "pagerLabel"; "required": false; }; "pagerFirstPage": { "alias": "pagerFirstPage"; "required": false; }; "pagerLastPage": { "alias": "pagerLastPage"; "required": false; }; "pagerPreviousPage": { "alias": "pagerPreviousPage"; "required": false; }; "pagerNextPage": { "alias": "pagerNextPage"; "required": false; }; "pagerPage": { "alias": "pagerPage"; "required": false; }; "pagerItemsPerPage": { "alias": "pagerItemsPerPage"; "required": false; }; "pagerOf": { "alias": "pagerOf"; "required": false; }; "pagerItems": { "alias": "pagerItems"; "required": false; }; "pagerPageNumberInputTitle": { "alias": "pagerPageNumberInputTitle"; "required": false; }; "pagerInputLabel": { "alias": "pagerInputLabel"; "required": false; }; "pagerSelectPage": { "alias": "pagerSelectPage"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterInputLabel": { "alias": "filterInputLabel"; "required": false; }; "filterMenuTitle": { "alias": "filterMenuTitle"; "required": false; }; "filterMenuOperatorsDropDownLabel": { "alias": "filterMenuOperatorsDropDownLabel"; "required": false; }; "filterMenuLogicDropDownLabel": { "alias": "filterMenuLogicDropDownLabel"; "required": false; }; "filterCellOperatorLabel": { "alias": "filterCellOperatorLabel"; "required": false; }; "booleanFilterCellLabel": { "alias": "booleanFilterCellLabel"; "required": false; }; "aiAssistantApplyButtonText": { "alias": "aiAssistantApplyButtonText"; "required": false; }; "aiAssistantToolbarToolText": { "alias": "aiAssistantToolbarToolText"; "required": false; }; "aiAssistantWindowTitle": { "alias": "aiAssistantWindowTitle"; "required": false; }; "aiAssistantWindowCloseTitle": { "alias": "aiAssistantWindowCloseTitle"; "required": false; }; "aiAssistantOutputCardTitle": { "alias": "aiAssistantOutputCardTitle"; "required": false; }; "aiAssistantOutputCardBodyContent": { "alias": "aiAssistantOutputCardBodyContent"; "required": false; }; "aiAssistantSelectionNotEnabled": { "alias": "aiAssistantSelectionNotEnabled"; "required": false; }; "aiAssistantSelectionRowModeRequired": { "alias": "aiAssistantSelectionRowModeRequired"; "required": false; }; "aiAssistantSelectionCellModeRequired": { "alias": "aiAssistantSelectionCellModeRequired"; "required": false; }; "aiAssistantWindowMaximizeTitle": { "alias": "aiAssistantWindowMaximizeTitle"; "required": false; }; "aiAssistantWindowMinimizeTitle": { "alias": "aiAssistantWindowMinimizeTitle"; "required": false; }; "aiAssistantWindowRestoreTitle": { "alias": "aiAssistantWindowRestoreTitle"; "required": false; }; "filterEqOperator": { "alias": "filterEqOperator"; "required": false; }; "filterNotEqOperator": { "alias": "filterNotEqOperator"; "required": false; }; "filterIsNullOperator": { "alias": "filterIsNullOperator"; "required": false; }; "filterIsNotNullOperator": { "alias": "filterIsNotNullOperator"; "required": false; }; "filterIsEmptyOperator": { "alias": "filterIsEmptyOperator"; "required": false; }; "filterIsNotEmptyOperator": { "alias": "filterIsNotEmptyOperator"; "required": false; }; "filterStartsWithOperator": { "alias": "filterStartsWithOperator"; "required": false; }; "filterContainsOperator": { "alias": "filterContainsOperator"; "required": false; }; "filterNotContainsOperator": { "alias": "filterNotContainsOperator"; "required": false; }; "filterEndsWithOperator": { "alias": "filterEndsWithOperator"; "required": false; }; "filterGteOperator": { "alias": "filterGteOperator"; "required": false; }; "filterGtOperator": { "alias": "filterGtOperator"; "required": false; }; "filterLteOperator": { "alias": "filterLteOperator"; "required": false; }; "filterLtOperator": { "alias": "filterLtOperator"; "required": false; }; "filterIsTrue": { "alias": "filterIsTrue"; "required": false; }; "filterIsFalse": { "alias": "filterIsFalse"; "required": false; }; "filterBooleanAll": { "alias": "filterBooleanAll"; "required": false; }; "adaptiveFilterOperatorsTitle": { "alias": "adaptiveFilterOperatorsTitle"; "required": false; }; "filterAfterOrEqualOperator": { "alias": "filterAfterOrEqualOperator"; "required": false; }; "filterAfterOperator": { "alias": "filterAfterOperator"; "required": false; }; "filterBeforeOperator": { "alias": "filterBeforeOperator"; "required": false; }; "filterBeforeOrEqualOperator": { "alias": "filterBeforeOrEqualOperator"; "required": false; }; "filterFilterButton": { "alias": "filterFilterButton"; "required": false; }; "filterClearButton": { "alias": "filterClearButton"; "required": false; }; "adaptiveCloseButtonTitle": { "alias": "adaptiveCloseButtonTitle"; "required": false; }; "adaptiveBackButtonTitle": { "alias": "adaptiveBackButtonTitle"; "required": false; }; "filterAndLogic": { "alias": "filterAndLogic"; "required": false; }; "filterOrLogic": { "alias": "filterOrLogic"; "required": false; }; "filterToolbarToolText": { "alias": "filterToolbarToolText"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "gridLabel": { "alias": "gridLabel"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "setColumnPosition": { "alias": "setColumnPosition"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "columnChooserSelectAll": { "alias": "columnChooserSelectAll"; "required": false; }; "columnChooserSearchLabel": { "alias": "columnChooserSearchLabel"; "required": false; }; "columnChooserSelectedColumnsCount": { "alias": "columnChooserSelectedColumnsCount"; "required": false; }; "columnsSubtitle": { "alias": "columnsSubtitle"; "required": false; }; "adaptiveFilterTitle": { "alias": "adaptiveFilterTitle"; "required": false; }; "adaptiveSortTitle": { "alias": "adaptiveSortTitle"; "required": false; }; "adaptiveGroupTitle": { "alias": "adaptiveGroupTitle"; "required": false; }; "filterClearAllButton": { "alias": "filterClearAllButton"; "required": false; }; "groupClearButton": { "alias": "groupClearButton"; "required": false; }; "sortClearButton": { "alias": "sortClearButton"; "required": false; }; "sortDoneButton": { "alias": "sortDoneButton"; "required": false; }; "groupDoneButton": { "alias": "groupDoneButton"; "required": false; }; "lock": { "alias": "lock"; "required": false; }; "unlock": { "alias": "unlock"; "required": false; }; "stick": { "alias": "stick"; "required": false; }; "unstick": { "alias": "unstick"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortAscending": { "alias": "sortAscending"; "required": false; }; "sortDescending": { "alias": "sortDescending"; "required": false; }; "autosizeThisColumn": { "alias": "autosizeThisColumn"; "required": false; }; "autosizeAllColumns": { "alias": "autosizeAllColumns"; "required": false; }; "sortedAscending": { "alias": "sortedAscending"; "required": false; }; "sortedDescending": { "alias": "sortedDescending"; "required": false; }; "sortedDefault": { "alias": "sortedDefault"; "required": false; }; "sortToolbarToolText": { "alias": "sortToolbarToolText"; "required": false; }; "columnsApply": { "alias": "columnsApply"; "required": false; }; "columnsReset": { "alias": "columnsReset"; "required": false; }; "detailExpand": { "alias": "detailExpand"; "required": false; }; "detailCollapse": { "alias": "detailCollapse"; "required": false; }; "filterDateToday": { "alias": "filterDateToday"; "required": false; }; "filterDateToggle": { "alias": "filterDateToggle"; "required": false; }; "filterNumericDecrement": { "alias": "filterNumericDecrement"; "required": false; }; "filterNumericIncrement": { "alias": "filterNumericIncrement"; "required": false; }; "selectionCheckboxLabel": { "alias": "selectionCheckboxLabel"; "required": false; }; "selectAllCheckboxLabel": { "alias": "selectAllCheckboxLabel"; "required": false; }; "checkboxColumnHeaderLabel": { "alias": "checkboxColumnHeaderLabel"; "required": false; }; "groupCollapse": { "alias": "groupCollapse"; "required": false; }; "groupExpand": { "alias": "groupExpand"; "required": false; }; "topToolbarLabel": { "alias": "topToolbarLabel"; "required": false; }; "bottomToolbarLabel": { "alias": "bottomToolbarLabel"; "required": false; }; "editToolbarToolText": { "alias": "editToolbarToolText"; "required": false; }; "saveToolbarToolText": { "alias": "saveToolbarToolText"; "required": false; }; "addToolbarToolText": { "alias": "addToolbarToolText"; "required": false; }; "cancelToolbarToolText": { "alias": "cancelToolbarToolText"; "required": false; }; "removeToolbarToolText": { "alias": "removeToolbarToolText"; "required": false; }; "excelExportToolbarToolText": { "alias": "excelExportToolbarToolText"; "required": false; }; "csvExportToolbarToolText": { "alias": "csvExportToolbarToolText"; "required": false; }; "pdfExportToolbarToolText": { "alias": "pdfExportToolbarToolText"; "required": false; }; "groupPanelLabel": { "alias": "groupPanelLabel"; "required": false; }; "dragRowHandleLabel": { "alias": "dragRowHandleLabel"; "required": false; }; "columnMenuFilterTabTitle": { "alias": "columnMenuFilterTabTitle"; "required": false; }; "columnMenuGeneralTabTitle": { "alias": "columnMenuGeneralTabTitle"; "required": false; }; "columnMenuColumnsTabTitle": { "alias": "columnMenuColumnsTabTitle"; "required": false; }; "groupChipMenuPrevious": { "alias": "groupChipMenuPrevious"; "required": false; }; "groupChipMenuNext": { "alias": "groupChipMenuNext"; "required": false; }; "groupToolbarToolText": { "alias": "groupToolbarToolText"; "required": false; }; "formValidationErrorText": { "alias": "formValidationErrorText"; "required": false; }; "removeConfirmationDialogTitle": { "alias": "removeConfirmationDialogTitle"; "required": false; }; "removeConfirmationDialogContent": { "alias": "removeConfirmationDialogContent"; "required": false; }; "removeConfirmationDialogConfirmText": { "alias": "removeConfirmationDialogConfirmText"; "required": false; }; "removeConfirmationDialogRejectText": { "alias": "removeConfirmationDialogRejectText"; "required": false; }; "externalEditingTitle": { "alias": "externalEditingTitle"; "required": false; }; "externalEditingAddTitle": { "alias": "externalEditingAddTitle"; "required": false; }; "externalEditingSaveText": { "alias": "externalEditingSaveText"; "required": false; }; "externalEditingCancelText": { "alias": "externalEditingCancelText"; "required": false; }; "multiCheckboxFilterSearchPlaceholder": { "alias": "multiCheckboxFilterSearchPlaceholder"; "required": false; }; "multiCheckboxFilterSelectAllLabel": { "alias": "multiCheckboxFilterSelectAllLabel"; "required": false; }; "multiCheckboxFilterSelectedItemsCount": { "alias": "multiCheckboxFilterSelectedItemsCount"; "required": false; }; "smartBoxSpeechToTextButton": { "alias": "smartBoxSpeechToTextButton"; "required": false; }; "smartBoxSubmitPromptButton": { "alias": "smartBoxSubmitPromptButton"; "required": false; }; "smartBoxSearchPlaceholder": { "alias": "smartBoxSearchPlaceholder"; "required": false; }; "smartBoxSemanticSearchPlaceholder": { "alias": "smartBoxSemanticSearchPlaceholder"; "required": false; }; "smartBoxAIAssistantPlaceholder": { "alias": "smartBoxAIAssistantPlaceholder"; "required": false; }; "smartBoxSuggestedPrompts": { "alias": "smartBoxSuggestedPrompts"; "required": false; }; "smartBoxNoPreviousSearches": { "alias": "smartBoxNoPreviousSearches"; "required": false; }; "smartBoxNoPreviousPrompts": { "alias": "smartBoxNoPreviousPrompts"; "required": false; }; "smartBoxPreviouslySearched": { "alias": "smartBoxPreviouslySearched"; "required": false; }; "smartBoxPreviouslyAsked": { "alias": "smartBoxPreviouslyAsked"; "required": false; }; "searchModeListItemText": { "alias": "searchModeListItemText"; "required": false; }; "searchModeListItemDescription": { "alias": "searchModeListItemDescription"; "required": false; }; "semanticSearchModeListItemText": { "alias": "semanticSearchModeListItemText"; "required": false; }; "semanticSearchModeListItemDescription": { "alias": "semanticSearchModeListItemDescription"; "required": false; }; "smartBoxSearchModePopupButton": { "alias": "smartBoxSearchModePopupButton"; "required": false; }; "smartBoxAIAssistantModePopupButton": { "alias": "smartBoxAIAssistantModePopupButton"; "required": false; }; "detailColumnHeaderLabel": { "alias": "detailColumnHeaderLabel"; "required": false; }; "dragColumnHeaderLabel": { "alias": "dragColumnHeaderLabel"; "required": false; }; "commandColumnHeaderLabel": { "alias": "commandColumnHeaderLabel"; "required": false; }; }, {}, never, never, true, never>;
743
+ static ɵdir: i0.ɵɵDirectiveDeclaration<GridMessages, "kendo-grid-messages-base", never, { "groupPanelEmpty": { "alias": "groupPanelEmpty"; "required": false; }; "noRecords": { "alias": "noRecords"; "required": false; }; "pagerLabel": { "alias": "pagerLabel"; "required": false; }; "pagerFirstPage": { "alias": "pagerFirstPage"; "required": false; }; "pagerLastPage": { "alias": "pagerLastPage"; "required": false; }; "pagerPreviousPage": { "alias": "pagerPreviousPage"; "required": false; }; "pagerNextPage": { "alias": "pagerNextPage"; "required": false; }; "pagerPage": { "alias": "pagerPage"; "required": false; }; "pagerItemsPerPage": { "alias": "pagerItemsPerPage"; "required": false; }; "pagerOf": { "alias": "pagerOf"; "required": false; }; "pagerItems": { "alias": "pagerItems"; "required": false; }; "pagerPageNumberInputTitle": { "alias": "pagerPageNumberInputTitle"; "required": false; }; "pagerInputLabel": { "alias": "pagerInputLabel"; "required": false; }; "pagerSelectPage": { "alias": "pagerSelectPage"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterInputLabel": { "alias": "filterInputLabel"; "required": false; }; "filterMenuTitle": { "alias": "filterMenuTitle"; "required": false; }; "filterMenuOperatorsDropDownLabel": { "alias": "filterMenuOperatorsDropDownLabel"; "required": false; }; "filterMenuLogicDropDownLabel": { "alias": "filterMenuLogicDropDownLabel"; "required": false; }; "filterCellOperatorLabel": { "alias": "filterCellOperatorLabel"; "required": false; }; "booleanFilterCellLabel": { "alias": "booleanFilterCellLabel"; "required": false; }; "aiAssistantApplyButtonText": { "alias": "aiAssistantApplyButtonText"; "required": false; }; "aiAssistantToolbarToolText": { "alias": "aiAssistantToolbarToolText"; "required": false; }; "aiAssistantWindowTitle": { "alias": "aiAssistantWindowTitle"; "required": false; }; "aiAssistantWindowCloseTitle": { "alias": "aiAssistantWindowCloseTitle"; "required": false; }; "aiAssistantOutputCardTitle": { "alias": "aiAssistantOutputCardTitle"; "required": false; }; "aiAssistantOutputCardBodyContent": { "alias": "aiAssistantOutputCardBodyContent"; "required": false; }; "aiAssistantSelectionNotEnabled": { "alias": "aiAssistantSelectionNotEnabled"; "required": false; }; "aiAssistantSelectionRowModeRequired": { "alias": "aiAssistantSelectionRowModeRequired"; "required": false; }; "aiAssistantSelectionCellModeRequired": { "alias": "aiAssistantSelectionCellModeRequired"; "required": false; }; "aiAssistantWindowMaximizeTitle": { "alias": "aiAssistantWindowMaximizeTitle"; "required": false; }; "aiAssistantWindowMinimizeTitle": { "alias": "aiAssistantWindowMinimizeTitle"; "required": false; }; "aiAssistantWindowRestoreTitle": { "alias": "aiAssistantWindowRestoreTitle"; "required": false; }; "filterEqOperator": { "alias": "filterEqOperator"; "required": false; }; "filterNotEqOperator": { "alias": "filterNotEqOperator"; "required": false; }; "filterIsNullOperator": { "alias": "filterIsNullOperator"; "required": false; }; "filterIsNotNullOperator": { "alias": "filterIsNotNullOperator"; "required": false; }; "filterIsEmptyOperator": { "alias": "filterIsEmptyOperator"; "required": false; }; "filterIsNotEmptyOperator": { "alias": "filterIsNotEmptyOperator"; "required": false; }; "filterStartsWithOperator": { "alias": "filterStartsWithOperator"; "required": false; }; "filterContainsOperator": { "alias": "filterContainsOperator"; "required": false; }; "filterNotContainsOperator": { "alias": "filterNotContainsOperator"; "required": false; }; "filterEndsWithOperator": { "alias": "filterEndsWithOperator"; "required": false; }; "filterGteOperator": { "alias": "filterGteOperator"; "required": false; }; "filterGtOperator": { "alias": "filterGtOperator"; "required": false; }; "filterLteOperator": { "alias": "filterLteOperator"; "required": false; }; "filterLtOperator": { "alias": "filterLtOperator"; "required": false; }; "filterIsTrue": { "alias": "filterIsTrue"; "required": false; }; "filterIsFalse": { "alias": "filterIsFalse"; "required": false; }; "filterBooleanAll": { "alias": "filterBooleanAll"; "required": false; }; "adaptiveFilterOperatorsTitle": { "alias": "adaptiveFilterOperatorsTitle"; "required": false; }; "filterAfterOrEqualOperator": { "alias": "filterAfterOrEqualOperator"; "required": false; }; "filterAfterOperator": { "alias": "filterAfterOperator"; "required": false; }; "filterBeforeOperator": { "alias": "filterBeforeOperator"; "required": false; }; "filterBeforeOrEqualOperator": { "alias": "filterBeforeOrEqualOperator"; "required": false; }; "filterFilterButton": { "alias": "filterFilterButton"; "required": false; }; "filterClearButton": { "alias": "filterClearButton"; "required": false; }; "adaptiveCloseButtonTitle": { "alias": "adaptiveCloseButtonTitle"; "required": false; }; "adaptiveBackButtonTitle": { "alias": "adaptiveBackButtonTitle"; "required": false; }; "filterAndLogic": { "alias": "filterAndLogic"; "required": false; }; "filterOrLogic": { "alias": "filterOrLogic"; "required": false; }; "filterToolbarToolText": { "alias": "filterToolbarToolText"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "gridLabel": { "alias": "gridLabel"; "required": false; }; "columnMenu": { "alias": "columnMenu"; "required": false; }; "setColumnPosition": { "alias": "setColumnPosition"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "columnChooserSelectAll": { "alias": "columnChooserSelectAll"; "required": false; }; "columnChooserSearchLabel": { "alias": "columnChooserSearchLabel"; "required": false; }; "columnChooserSelectedColumnsCount": { "alias": "columnChooserSelectedColumnsCount"; "required": false; }; "columnsSubtitle": { "alias": "columnsSubtitle"; "required": false; }; "adaptiveFilterTitle": { "alias": "adaptiveFilterTitle"; "required": false; }; "adaptiveSortTitle": { "alias": "adaptiveSortTitle"; "required": false; }; "adaptiveGroupTitle": { "alias": "adaptiveGroupTitle"; "required": false; }; "filterClearAllButton": { "alias": "filterClearAllButton"; "required": false; }; "groupClearButton": { "alias": "groupClearButton"; "required": false; }; "sortClearButton": { "alias": "sortClearButton"; "required": false; }; "sortDoneButton": { "alias": "sortDoneButton"; "required": false; }; "groupDoneButton": { "alias": "groupDoneButton"; "required": false; }; "lock": { "alias": "lock"; "required": false; }; "unlock": { "alias": "unlock"; "required": false; }; "stick": { "alias": "stick"; "required": false; }; "unstick": { "alias": "unstick"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "sortAscending": { "alias": "sortAscending"; "required": false; }; "sortDescending": { "alias": "sortDescending"; "required": false; }; "autosizeThisColumn": { "alias": "autosizeThisColumn"; "required": false; }; "autosizeAllColumns": { "alias": "autosizeAllColumns"; "required": false; }; "sortedAscending": { "alias": "sortedAscending"; "required": false; }; "sortedDescending": { "alias": "sortedDescending"; "required": false; }; "sortedDefault": { "alias": "sortedDefault"; "required": false; }; "sortToolbarToolText": { "alias": "sortToolbarToolText"; "required": false; }; "columnsApply": { "alias": "columnsApply"; "required": false; }; "columnsReset": { "alias": "columnsReset"; "required": false; }; "detailExpand": { "alias": "detailExpand"; "required": false; }; "detailCollapse": { "alias": "detailCollapse"; "required": false; }; "filterDateToday": { "alias": "filterDateToday"; "required": false; }; "filterDateToggle": { "alias": "filterDateToggle"; "required": false; }; "filterNumericDecrement": { "alias": "filterNumericDecrement"; "required": false; }; "filterNumericIncrement": { "alias": "filterNumericIncrement"; "required": false; }; "selectionCheckboxLabel": { "alias": "selectionCheckboxLabel"; "required": false; }; "selectAllCheckboxLabel": { "alias": "selectAllCheckboxLabel"; "required": false; }; "checkboxColumnHeaderLabel": { "alias": "checkboxColumnHeaderLabel"; "required": false; }; "groupCollapse": { "alias": "groupCollapse"; "required": false; }; "groupExpand": { "alias": "groupExpand"; "required": false; }; "topToolbarLabel": { "alias": "topToolbarLabel"; "required": false; }; "bottomToolbarLabel": { "alias": "bottomToolbarLabel"; "required": false; }; "editToolbarToolText": { "alias": "editToolbarToolText"; "required": false; }; "saveToolbarToolText": { "alias": "saveToolbarToolText"; "required": false; }; "addToolbarToolText": { "alias": "addToolbarToolText"; "required": false; }; "cancelToolbarToolText": { "alias": "cancelToolbarToolText"; "required": false; }; "removeToolbarToolText": { "alias": "removeToolbarToolText"; "required": false; }; "excelExportToolbarToolText": { "alias": "excelExportToolbarToolText"; "required": false; }; "csvExportToolbarToolText": { "alias": "csvExportToolbarToolText"; "required": false; }; "pdfExportToolbarToolText": { "alias": "pdfExportToolbarToolText"; "required": false; }; "groupPanelLabel": { "alias": "groupPanelLabel"; "required": false; }; "dragRowHandleLabel": { "alias": "dragRowHandleLabel"; "required": false; }; "columnMenuFilterTabTitle": { "alias": "columnMenuFilterTabTitle"; "required": false; }; "columnMenuGeneralTabTitle": { "alias": "columnMenuGeneralTabTitle"; "required": false; }; "columnMenuColumnsTabTitle": { "alias": "columnMenuColumnsTabTitle"; "required": false; }; "groupChipMenuPrevious": { "alias": "groupChipMenuPrevious"; "required": false; }; "groupChipMenuNext": { "alias": "groupChipMenuNext"; "required": false; }; "groupToolbarToolText": { "alias": "groupToolbarToolText"; "required": false; }; "formValidationErrorText": { "alias": "formValidationErrorText"; "required": false; }; "removeConfirmationDialogTitle": { "alias": "removeConfirmationDialogTitle"; "required": false; }; "removeConfirmationDialogContent": { "alias": "removeConfirmationDialogContent"; "required": false; }; "removeConfirmationDialogConfirmText": { "alias": "removeConfirmationDialogConfirmText"; "required": false; }; "removeConfirmationDialogRejectText": { "alias": "removeConfirmationDialogRejectText"; "required": false; }; "externalEditingTitle": { "alias": "externalEditingTitle"; "required": false; }; "externalEditingAddTitle": { "alias": "externalEditingAddTitle"; "required": false; }; "externalEditingSaveText": { "alias": "externalEditingSaveText"; "required": false; }; "externalEditingCancelText": { "alias": "externalEditingCancelText"; "required": false; }; "multiCheckboxFilterSearchPlaceholder": { "alias": "multiCheckboxFilterSearchPlaceholder"; "required": false; }; "multiCheckboxFilterSelectAllLabel": { "alias": "multiCheckboxFilterSelectAllLabel"; "required": false; }; "multiCheckboxFilterSelectedItemsCount": { "alias": "multiCheckboxFilterSelectedItemsCount"; "required": false; }; "smartBoxSpeechToTextButton": { "alias": "smartBoxSpeechToTextButton"; "required": false; }; "smartBoxSubmitPromptButton": { "alias": "smartBoxSubmitPromptButton"; "required": false; }; "smartBoxSearchPlaceholder": { "alias": "smartBoxSearchPlaceholder"; "required": false; }; "smartBoxSemanticSearchPlaceholder": { "alias": "smartBoxSemanticSearchPlaceholder"; "required": false; }; "smartBoxAIAssistantPlaceholder": { "alias": "smartBoxAIAssistantPlaceholder"; "required": false; }; "smartBoxSuggestedPrompts": { "alias": "smartBoxSuggestedPrompts"; "required": false; }; "smartBoxNoPreviousSearches": { "alias": "smartBoxNoPreviousSearches"; "required": false; }; "smartBoxNoPreviousPrompts": { "alias": "smartBoxNoPreviousPrompts"; "required": false; }; "smartBoxPreviouslySearched": { "alias": "smartBoxPreviouslySearched"; "required": false; }; "smartBoxPreviouslyAsked": { "alias": "smartBoxPreviouslyAsked"; "required": false; }; "searchModeListItemText": { "alias": "searchModeListItemText"; "required": false; }; "searchModeListItemDescription": { "alias": "searchModeListItemDescription"; "required": false; }; "semanticSearchModeListItemText": { "alias": "semanticSearchModeListItemText"; "required": false; }; "semanticSearchModeListItemDescription": { "alias": "semanticSearchModeListItemDescription"; "required": false; }; "smartBoxSearchModePopupButton": { "alias": "smartBoxSearchModePopupButton"; "required": false; }; "smartBoxAIAssistantModePopupButton": { "alias": "smartBoxAIAssistantModePopupButton"; "required": false; }; "detailColumnHeaderLabel": { "alias": "detailColumnHeaderLabel"; "required": false; }; "dragColumnHeaderLabel": { "alias": "dragColumnHeaderLabel"; "required": false; }; "commandColumnHeaderLabel": { "alias": "commandColumnHeaderLabel"; "required": false; }; "pinnedTopRowsLabel": { "alias": "pinnedTopRowsLabel"; "required": false; }; "pinnedBottomRowsLabel": { "alias": "pinnedBottomRowsLabel"; "required": false; }; "pinMenuPinToTopText": { "alias": "pinMenuPinToTopText"; "required": false; }; "pinMenuPinToBottomText": { "alias": "pinMenuPinToBottomText"; "required": false; }; "pinMenuUnpinText": { "alias": "pinMenuUnpinText"; "required": false; }; "pinColumnHeaderLabel": { "alias": "pinColumnHeaderLabel"; "required": false; }; "rowPinLabel": { "alias": "rowPinLabel"; "required": false; }; "rowUnpinLabel": { "alias": "rowUnpinLabel"; "required": false; }; }, {}, never, never, true, never>;
712
744
  }
@@ -23,6 +23,7 @@ export declare class LogicalCellDirective implements LogicalCell, OnInit, OnChan
23
23
  private renderer;
24
24
  private zone;
25
25
  private cellContext;
26
+ private skipNavigation;
26
27
  logicalColIndex: number;
27
28
  logicalRowIndex: number;
28
29
  logicalSlaveCell: boolean;
@@ -40,7 +41,8 @@ export declare class LogicalCellDirective implements LogicalCell, OnInit, OnChan
40
41
  get rowspanClass(): boolean;
41
42
  get ariaColIndex(): number;
42
43
  private navigationChange;
43
- constructor(focusGroup: FocusGroup, element: ElementRef, columnInfoService: ColumnInfoService, idService: IdService, navigationService: NavigationService, renderer: Renderer2, zone: NgZone, cellContext: CellContext);
44
+ constructor(focusGroup: FocusGroup, element: ElementRef, columnInfoService: ColumnInfoService, idService: IdService, navigationService: NavigationService, renderer: Renderer2, zone: NgZone, cellContext: CellContext, skipNavigation: boolean);
45
+ onMouseDown(): void;
44
46
  ngOnInit(): void;
45
47
  ngDoCheck(): void;
46
48
  ngOnChanges(changes: SimpleChanges): void;
@@ -52,6 +54,6 @@ export declare class LogicalCellDirective implements LogicalCell, OnInit, OnChan
52
54
  private registerNoChanges;
53
55
  private isFocusable;
54
56
  private isFocused;
55
- static ɵfac: i0.ɵɵFactoryDeclaration<LogicalCellDirective, [null, null, null, null, null, null, null, { optional: true; }]>;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<LogicalCellDirective, [null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
56
58
  static ɵdir: i0.ɵɵDirectiveDeclaration<LogicalCellDirective, "[kendoGridLogicalCell]", never, { "logicalColIndex": { "alias": "logicalColIndex"; "required": false; }; "logicalRowIndex": { "alias": "logicalRowIndex"; "required": false; }; "logicalSlaveCell": { "alias": "logicalSlaveCell"; "required": false; }; "colIndex": { "alias": "colIndex"; "required": false; }; "colSpan": { "alias": "colSpan"; "required": false; }; "rowSpan": { "alias": "rowSpan"; "required": false; }; "groupItem": { "alias": "groupItem"; "required": false; }; "dataRowIndex": { "alias": "dataRowIndex"; "required": false; }; "dataItem": { "alias": "dataItem"; "required": false; }; "detailExpandCell": { "alias": "detailExpandCell"; "required": false; }; "headerLabelText": { "alias": "headerLabelText"; "required": false; }; }, {}, never, never, true, never>;
57
59
  }
@@ -17,6 +17,8 @@ export declare class NavigationMetadata {
17
17
  columns: any;
18
18
  footerRow: number;
19
19
  isStacked: boolean;
20
+ pinnedTopRowsCount: number;
21
+ pinnedBottomRowsCount: number;
20
22
  get maxLogicalRowIndex(): number;
21
- constructor(dataRows: number, headerRows: number, isVirtual: boolean, hasPager: boolean, hasDetailTemplate: boolean, gridElement: ElementRef, virtualColumns: boolean, columns: any, footerRow: number, isStacked: boolean);
23
+ constructor(dataRows: number, headerRows: number, isVirtual: boolean, hasPager: boolean, hasDetailTemplate: boolean, gridElement: ElementRef, virtualColumns: boolean, columns: any, footerRow: number, isStacked: boolean, pinnedTopRowsCount?: number, pinnedBottomRowsCount?: number);
22
24
  }
@@ -78,6 +78,8 @@ export declare class NavigationService implements OnDestroy {
78
78
  private lastCellRowIndex;
79
79
  private isShiftPressed;
80
80
  private currentSelection;
81
+ private zonePositions;
82
+ private currentZone;
81
83
  private get activeDataRow();
82
84
  constructor(zone: NgZone, domEvents: DomEventsService, pagerContextService: PagerContextService, scrollRequestService: ScrollRequestService, groupsService: GroupsService, detailsService: DetailsService, focusRoot: FocusRoot, editService: EditService, cd: ChangeDetectorRef, ctx: ContextService, resizeService: ColumnResizingService, focusableParent: FocusableDirective);
83
85
  init(meta: NavigationMetadata, navigableOptions: GridNavigableSection[]): void;
@@ -90,6 +92,22 @@ export declare class NavigationService implements OnDestroy {
90
92
  unregisterRow(index: number, row: LogicalRow): void;
91
93
  isCellFocusable(cell: LogicalCell): boolean;
92
94
  isCellFocused(cell: LogicalCell): boolean;
95
+ /**
96
+ * Returns the navigation zone for a given logical row index.
97
+ * Rows inside the pinned-top container return `'pinned-top'`,
98
+ * rows inside the pinned-bottom container return `'pinned-bottom'`,
99
+ * and all other rows (including header rows) return `'main'`.
100
+ */
101
+ getZone(rowIndex: number): 'pinned-top' | 'main' | 'pinned-bottom';
102
+ /**
103
+ * Returns `true` when the given cell should carry a `tabIndex="0"` attribute as the
104
+ * preserved Tab stop for an inactive navigation zone.
105
+ *
106
+ * When pinned rows are present, each zone (pinned-top, main body, pinned-bottom) independently
107
+ * remembers its last active cell. This allows the Tab key to cycle between zones naturally
108
+ * via DOM order, giving each zone its own Tab stop.
109
+ */
110
+ isCellZonePreserved(rowIndex: number, colIndex: number): boolean;
93
111
  navigateTo(el: Element): void;
94
112
  tryFocus(el: Element): boolean;
95
113
  needsViewport(): boolean;
@@ -115,6 +133,7 @@ export declare class NavigationService implements OnDestroy {
115
133
  private columnResize;
116
134
  private onContentKeydown;
117
135
  private onCellKeydown;
136
+ private firstRowInZone;
118
137
  private onCursorChanges;
119
138
  private onFocusOut;
120
139
  private onWindowBlur;
@@ -0,0 +1,12 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { InjectionToken } from '@angular/core';
6
+ /**
7
+ * @hidden
8
+ * When provided as `true`, LogicalCellDirective instances skip all
9
+ * registration, focus management, and keyboard handling. Used by the
10
+ * sticky-group overlay container which manages its own focus independently.
11
+ */
12
+ export declare const SKIP_CELL_NAVIGATION: InjectionToken<boolean>;
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1776940594,
11
- "version": "24.0.0-develop.3",
10
+ "publishDate": 1778841783,
11
+ "version": "24.0.0-develop.31",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };