@progress/kendo-angular-grid 24.0.0-develop.19 → 24.0.0-develop.20
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/databinding.directive.d.ts +1 -0
- package/editing-directives/local-edit.service.d.ts +1 -0
- package/fesm2022/progress-kendo-angular-grid.mjs +2852 -76
- package/grid.component.d.ts +8 -1
- package/grouping/group-settings.d.ts +14 -0
- package/grouping/sticky-groups/models.d.ts +24 -0
- package/grouping/sticky-groups/sticky-group-container.component.d.ts +114 -0
- package/grouping/sticky-groups/sticky-groups-utils.d.ts +71 -0
- package/grouping/sticky-groups/sticky-groups.service.d.ts +132 -0
- package/localization/messages.d.ts +9 -1
- package/navigation/logical-cell.directive.d.ts +4 -2
- package/navigation/navigation.service.d.ts +19 -0
- package/navigation/skip-cell-navigation.d.ts +12 -0
- package/package-metadata.mjs +2 -2
- package/package.json +24 -24
- package/rendering/cell.component.d.ts +16 -4
- package/rendering/list.component.d.ts +67 -1
- package/rendering/table-body.component.d.ts +1 -0
- package/row-pinning/pinned-row-tracking.service.d.ts +64 -0
- package/row-pinning/row-pin-container.component.d.ts +12 -4
- package/schematics/ngAdd/index.js +7 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "24.0.0-develop.
|
|
3
|
+
"version": "24.0.0-develop.20",
|
|
4
4
|
"description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "Progress",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"package": {
|
|
95
95
|
"productName": "Kendo UI for Angular",
|
|
96
96
|
"productCode": "KENDOUIANGULAR",
|
|
97
|
-
"publishDate":
|
|
97
|
+
"publishDate": 1778149554,
|
|
98
98
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
99
99
|
}
|
|
100
100
|
},
|
|
@@ -107,32 +107,32 @@
|
|
|
107
107
|
"@progress/kendo-data-query": "^1.7.3",
|
|
108
108
|
"@progress/kendo-drawing": "^1.25.0",
|
|
109
109
|
"@progress/kendo-licensing": "^1.11.0",
|
|
110
|
-
"@progress/kendo-angular-buttons": "24.0.0-develop.
|
|
111
|
-
"@progress/kendo-angular-common": "24.0.0-develop.
|
|
112
|
-
"@progress/kendo-angular-dateinputs": "24.0.0-develop.
|
|
113
|
-
"@progress/kendo-angular-layout": "24.0.0-develop.
|
|
114
|
-
"@progress/kendo-angular-navigation": "24.0.0-develop.
|
|
115
|
-
"@progress/kendo-angular-dropdowns": "24.0.0-develop.
|
|
116
|
-
"@progress/kendo-angular-excel-export": "24.0.0-develop.
|
|
117
|
-
"@progress/kendo-angular-icons": "24.0.0-develop.
|
|
118
|
-
"@progress/kendo-angular-indicators": "24.0.0-develop.
|
|
119
|
-
"@progress/kendo-angular-inputs": "24.0.0-develop.
|
|
120
|
-
"@progress/kendo-angular-conversational-ui": "24.0.0-develop.
|
|
121
|
-
"@progress/kendo-angular-intl": "24.0.0-develop.
|
|
122
|
-
"@progress/kendo-angular-l10n": "24.0.0-develop.
|
|
123
|
-
"@progress/kendo-angular-label": "24.0.0-develop.
|
|
124
|
-
"@progress/kendo-angular-menu": "24.0.0-develop.
|
|
125
|
-
"@progress/kendo-angular-pager": "24.0.0-develop.
|
|
126
|
-
"@progress/kendo-angular-pdf-export": "24.0.0-develop.
|
|
127
|
-
"@progress/kendo-angular-popup": "24.0.0-develop.
|
|
128
|
-
"@progress/kendo-angular-toolbar": "24.0.0-develop.
|
|
129
|
-
"@progress/kendo-angular-upload": "24.0.0-develop.
|
|
130
|
-
"@progress/kendo-angular-utils": "24.0.0-develop.
|
|
110
|
+
"@progress/kendo-angular-buttons": "24.0.0-develop.20",
|
|
111
|
+
"@progress/kendo-angular-common": "24.0.0-develop.20",
|
|
112
|
+
"@progress/kendo-angular-dateinputs": "24.0.0-develop.20",
|
|
113
|
+
"@progress/kendo-angular-layout": "24.0.0-develop.20",
|
|
114
|
+
"@progress/kendo-angular-navigation": "24.0.0-develop.20",
|
|
115
|
+
"@progress/kendo-angular-dropdowns": "24.0.0-develop.20",
|
|
116
|
+
"@progress/kendo-angular-excel-export": "24.0.0-develop.20",
|
|
117
|
+
"@progress/kendo-angular-icons": "24.0.0-develop.20",
|
|
118
|
+
"@progress/kendo-angular-indicators": "24.0.0-develop.20",
|
|
119
|
+
"@progress/kendo-angular-inputs": "24.0.0-develop.20",
|
|
120
|
+
"@progress/kendo-angular-conversational-ui": "24.0.0-develop.20",
|
|
121
|
+
"@progress/kendo-angular-intl": "24.0.0-develop.20",
|
|
122
|
+
"@progress/kendo-angular-l10n": "24.0.0-develop.20",
|
|
123
|
+
"@progress/kendo-angular-label": "24.0.0-develop.20",
|
|
124
|
+
"@progress/kendo-angular-menu": "24.0.0-develop.20",
|
|
125
|
+
"@progress/kendo-angular-pager": "24.0.0-develop.20",
|
|
126
|
+
"@progress/kendo-angular-pdf-export": "24.0.0-develop.20",
|
|
127
|
+
"@progress/kendo-angular-popup": "24.0.0-develop.20",
|
|
128
|
+
"@progress/kendo-angular-toolbar": "24.0.0-develop.20",
|
|
129
|
+
"@progress/kendo-angular-upload": "24.0.0-develop.20",
|
|
130
|
+
"@progress/kendo-angular-utils": "24.0.0-develop.20",
|
|
131
131
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
132
132
|
},
|
|
133
133
|
"dependencies": {
|
|
134
134
|
"tslib": "^2.3.1",
|
|
135
|
-
"@progress/kendo-angular-schematics": "24.0.0-develop.
|
|
135
|
+
"@progress/kendo-angular-schematics": "24.0.0-develop.20",
|
|
136
136
|
"@progress/kendo-common": "^1.0.1",
|
|
137
137
|
"@progress/kendo-file-saver": "^1.0.0",
|
|
138
138
|
"@progress/kendo-csv": "^1.0.0"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { DoCheck, TemplateRef } from '@angular/core';
|
|
5
|
+
import { DoCheck, OnInit, OnDestroy, TemplateRef, ElementRef, NgZone, Renderer2 } from '@angular/core';
|
|
6
6
|
import { EditService } from '../editing/edit.service';
|
|
7
7
|
import { CommandColumnComponent } from '../columns/command-column.component';
|
|
8
8
|
import { ColumnComponent } from '../columns/column.component';
|
|
@@ -16,22 +16,28 @@ import { DetailsService } from './details/details.service';
|
|
|
16
16
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
17
17
|
import { ContextMenuSelectEvent } from '@progress/kendo-angular-menu';
|
|
18
18
|
import { RowPinService } from '../row-pinning/row-pin.service';
|
|
19
|
+
import { ScrollSyncService } from '../scrolling/scroll-sync.service';
|
|
19
20
|
import * as i0 from "@angular/core";
|
|
20
21
|
/**
|
|
21
22
|
* @hidden
|
|
22
23
|
*/
|
|
23
|
-
export declare class CellComponent implements DoCheck {
|
|
24
|
+
export declare class CellComponent implements DoCheck, OnInit, OnDestroy {
|
|
24
25
|
private editService;
|
|
25
26
|
private idService;
|
|
26
27
|
private ctx;
|
|
27
28
|
private detailsService;
|
|
28
29
|
private localization;
|
|
30
|
+
private elementRef;
|
|
31
|
+
private ngZone;
|
|
32
|
+
private renderer;
|
|
29
33
|
private rowPinService;
|
|
30
34
|
private cellContext;
|
|
31
35
|
private inPinContainer;
|
|
36
|
+
private scrollSyncService;
|
|
32
37
|
get commandCellClass(): boolean;
|
|
33
38
|
get dragHandleCellClass(): boolean;
|
|
34
39
|
get dragRowHandleLabel(): string;
|
|
40
|
+
get rowPinLabel(): string;
|
|
35
41
|
private pinContextMenu;
|
|
36
42
|
private pinContextMenuTarget;
|
|
37
43
|
column: any;
|
|
@@ -85,11 +91,17 @@ export declare class CellComponent implements DoCheck {
|
|
|
85
91
|
private _templateContext;
|
|
86
92
|
private _editTemplateContext;
|
|
87
93
|
private _rowTemplateContext;
|
|
88
|
-
|
|
94
|
+
private keyDownSub;
|
|
95
|
+
private scrollCloseSub;
|
|
96
|
+
constructor(editService: EditService, idService: IdService, ctx: ContextService, detailsService: DetailsService, localization: LocalizationService, elementRef: ElementRef, ngZone: NgZone, renderer: Renderer2, rowPinService: RowPinService, cellContext: CellContext, inPinContainer: boolean, scrollSyncService: ScrollSyncService);
|
|
97
|
+
ngOnInit(): void;
|
|
98
|
+
ngOnDestroy(): void;
|
|
89
99
|
ngDoCheck(): void;
|
|
100
|
+
private subscribeToScrollClose;
|
|
101
|
+
private onHostKeydown;
|
|
90
102
|
isCommand(column: any): column is CommandColumnComponent;
|
|
91
103
|
private isFieldEditable;
|
|
92
104
|
private updateCellContext;
|
|
93
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CellComponent, [null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
105
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CellComponent, [null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
94
106
|
static ɵcmp: i0.ɵɵComponentDeclaration<CellComponent, "[kendoGridCell]", never, { "column": { "alias": "column"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "columnIndex": { "alias": "columnIndex"; "required": false; }; "isNew": { "alias": "isNew"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "isVirtual": { "alias": "isVirtual"; "required": false; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "item": { "alias": "item"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "dataItem": { "alias": "dataItem"; "required": false; }; }, {}, never, never, true, never>;
|
|
95
107
|
}
|
|
@@ -33,6 +33,8 @@ import { ColumnInfoService } from '../common/column-info.service';
|
|
|
33
33
|
import { GridSize } from '../common/size-options';
|
|
34
34
|
import { ContextService } from '../common/provider.service';
|
|
35
35
|
import { DataMappingService } from '../data/data-mapping.service';
|
|
36
|
+
import { StickyGroupContainerComponent } from '../grouping/sticky-groups/sticky-group-container.component';
|
|
37
|
+
import { StickyGroupsService } from '../grouping/sticky-groups/sticky-groups.service';
|
|
36
38
|
import * as i0 from "@angular/core";
|
|
37
39
|
/**
|
|
38
40
|
* @hidden
|
|
@@ -62,6 +64,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
62
64
|
private pdfService;
|
|
63
65
|
private columnInfo;
|
|
64
66
|
private dataMappingService;
|
|
67
|
+
private stickyGroupsService;
|
|
65
68
|
hostClass: boolean;
|
|
66
69
|
hostRole: string;
|
|
67
70
|
data: Array<any>;
|
|
@@ -93,6 +96,15 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
93
96
|
columnsStartIdx: number;
|
|
94
97
|
allItems: any[];
|
|
95
98
|
itemsToRender: any[];
|
|
99
|
+
stickyGroupHeaderColumns: any[];
|
|
100
|
+
private stickyNeedsUpdate;
|
|
101
|
+
private stickyWasEnabled;
|
|
102
|
+
private pendingToggleScroll;
|
|
103
|
+
private skipScrollerAdjust;
|
|
104
|
+
private suppressStickyUpdates;
|
|
105
|
+
private suppressFocusScrollAdjust;
|
|
106
|
+
get hasStickyHeaders(): boolean;
|
|
107
|
+
get hasStickyFooters(): boolean;
|
|
96
108
|
get showFooter(): boolean;
|
|
97
109
|
get totalWidth(): number;
|
|
98
110
|
container: ElementRef;
|
|
@@ -100,6 +112,8 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
100
112
|
lockedTable: ElementRef;
|
|
101
113
|
table: ElementRef;
|
|
102
114
|
resizeSensors: QueryList<ResizeSensorComponent>;
|
|
115
|
+
stickyHeaderContainer: StickyGroupContainerComponent;
|
|
116
|
+
stickyFooterContainer: StickyGroupContainerComponent;
|
|
103
117
|
private scroller;
|
|
104
118
|
private scrollerFactory;
|
|
105
119
|
private subscriptions;
|
|
@@ -128,7 +142,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
128
142
|
private minRowHeight;
|
|
129
143
|
private handleSkipOnData;
|
|
130
144
|
private scrollToIndex;
|
|
131
|
-
constructor(scrollerFactory: any, detailsService: DetailsService, changeNotification: ChangeNotificationService, suspendService: SuspendService, groupsService: GroupsService, ngZone: NgZone, renderer: Renderer2, scrollSyncService: ScrollSyncService, resizeService: ResizeService, editService: EditService, supportService: ScrollbarService, navigationService: NavigationService, scrollRequestService: ScrollRequestService, ctx: ContextService, columnResizingService: ColumnResizingService, changeDetector: ChangeDetectorRef, pdfService: PDFService, columnInfo: ColumnInfoService, dataMappingService: DataMappingService);
|
|
145
|
+
constructor(scrollerFactory: any, detailsService: DetailsService, changeNotification: ChangeNotificationService, suspendService: SuspendService, groupsService: GroupsService, ngZone: NgZone, renderer: Renderer2, scrollSyncService: ScrollSyncService, resizeService: ResizeService, editService: EditService, supportService: ScrollbarService, navigationService: NavigationService, scrollRequestService: ScrollRequestService, ctx: ContextService, columnResizingService: ColumnResizingService, changeDetector: ChangeDetectorRef, pdfService: PDFService, columnInfo: ColumnInfoService, dataMappingService: DataMappingService, stickyGroupsService: StickyGroupsService);
|
|
132
146
|
ngOnInit(): void;
|
|
133
147
|
ngOnChanges(changes: {
|
|
134
148
|
[propertyName: string]: SimpleChange;
|
|
@@ -156,6 +170,13 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
156
170
|
* @hidden
|
|
157
171
|
*/
|
|
158
172
|
fillViewportAfterColumnChange(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Recalculates the virtual page size after the scrollable container height changes
|
|
175
|
+
* due to pinned row containers appearing or disappearing. Expands itemsToRender
|
|
176
|
+
* if the new viewport can display more rows than currently rendered.
|
|
177
|
+
* @hidden
|
|
178
|
+
*/
|
|
179
|
+
onPinnedContainerHeightChange(): void;
|
|
159
180
|
/**
|
|
160
181
|
* Checks if the virtual scroll state is out of sync with the expected position.
|
|
161
182
|
* Used to determine if resetVirtualScroll should be called.
|
|
@@ -170,6 +191,50 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
170
191
|
* @hidden
|
|
171
192
|
*/
|
|
172
193
|
get isStacked(): boolean;
|
|
194
|
+
/**
|
|
195
|
+
* @hidden
|
|
196
|
+
* Updates sticky group header columns for the overlay. Called in ngDoCheck or on column changes.
|
|
197
|
+
*/
|
|
198
|
+
updateStickyGroupHeaderColumns(): void;
|
|
199
|
+
/**
|
|
200
|
+
* Measures actual rendered row heights from the DOM and feeds them into
|
|
201
|
+
* RowHeightService so its offsets reflect reality. Called in ngAfterViewChecked
|
|
202
|
+
* when stickyNeedsUpdate is true (data changed or scroll-to-group requested).
|
|
203
|
+
*/
|
|
204
|
+
private updateStickyRowHeights;
|
|
205
|
+
/**
|
|
206
|
+
* Handles sticky overlay header click: scrolls to the topmost sticky
|
|
207
|
+
* group header's real position so all overlay headers become visible
|
|
208
|
+
* real rows, then toggles the clicked group.
|
|
209
|
+
*/
|
|
210
|
+
private handleStickyScrollAndToggle;
|
|
211
|
+
/**
|
|
212
|
+
* After toggle, fixes up the virtual page so the correct rows are rendered
|
|
213
|
+
* around the target scroll position that was set pre-toggle.
|
|
214
|
+
*/
|
|
215
|
+
private applyPendingToggleScroll;
|
|
216
|
+
/**
|
|
217
|
+
* Scrolls the container so the real footer row at the pending flat index
|
|
218
|
+
* is visible at the bottom edge of the viewport.
|
|
219
|
+
*/
|
|
220
|
+
private scrollToStickyFooterTarget;
|
|
221
|
+
/**
|
|
222
|
+
* Scrolls the real grid body until the requested row is rendered in the real
|
|
223
|
+
* tbody, then focuses the corresponding real grid cell.
|
|
224
|
+
*/
|
|
225
|
+
private scrollToStickyRowTarget;
|
|
226
|
+
/**
|
|
227
|
+
* Focuses the rendered row requested from the sticky overlay.
|
|
228
|
+
*/
|
|
229
|
+
private focusRenderedStickyRow;
|
|
230
|
+
private getStickyTargetTbody;
|
|
231
|
+
private findStickyTargetRow;
|
|
232
|
+
/**
|
|
233
|
+
* Converts a sticky overlay flat-index request into a logical grid cell
|
|
234
|
+
* position that NavigationService can focus.
|
|
235
|
+
*/
|
|
236
|
+
private stickyTargetToLogicalCell;
|
|
237
|
+
private updateStickyGroups;
|
|
173
238
|
resetNavigationViewport(): void;
|
|
174
239
|
private detailExpand;
|
|
175
240
|
private attachContainerScroll;
|
|
@@ -179,6 +244,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
|
|
|
179
244
|
private handleRowSync;
|
|
180
245
|
private handleRowNavigationLocked;
|
|
181
246
|
private scrollToVirtualRow;
|
|
247
|
+
private getStickyAdjustedScrollTop;
|
|
182
248
|
private scrollTo;
|
|
183
249
|
private scrollToItem;
|
|
184
250
|
private cleanupScroller;
|
|
@@ -77,6 +77,7 @@ export declare class TableBodyComponent implements OnInit, OnDestroy, OnChanges,
|
|
|
77
77
|
hostClass: boolean;
|
|
78
78
|
groupHeaderSlaveCellsCount: number;
|
|
79
79
|
groupHeaderColumns: any[];
|
|
80
|
+
private cachedDataRows;
|
|
80
81
|
private clickSubscription;
|
|
81
82
|
private touchSubscription;
|
|
82
83
|
private l10nSubscription;
|
|
@@ -0,0 +1,64 @@
|
|
|
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 * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Tracks the relationship between pinned rows and their counterparts in the main data table.
|
|
8
|
+
* Use this service to find the main row index for a given pinned row data item,
|
|
9
|
+
* or to find the pinned counterpart of a main row.
|
|
10
|
+
*
|
|
11
|
+
* The service is updated automatically by the Grid when `pinnedTopRows`, `pinnedBottomRows`,
|
|
12
|
+
* or `data` changes. For reliable index resolution, pinned row data items must be
|
|
13
|
+
* reference-equal to the corresponding items in the main data array.
|
|
14
|
+
*
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export declare class PinnedRowTrackingService {
|
|
18
|
+
private topIndexMap;
|
|
19
|
+
private bottomIndexMap;
|
|
20
|
+
private mainIndexMap;
|
|
21
|
+
/**
|
|
22
|
+
* Updates the internal tracking maps based on the current pinned rows and main data.
|
|
23
|
+
* Called automatically by the Grid when relevant inputs change.
|
|
24
|
+
*
|
|
25
|
+
* @param topRows - The array of data items pinned to the top.
|
|
26
|
+
* @param bottomRows - The array of data items pinned to the bottom.
|
|
27
|
+
* @param data - The flat main data array for the current page.
|
|
28
|
+
* @param skip - The current page skip offset used to compute absolute row indices.
|
|
29
|
+
*/
|
|
30
|
+
update(topRows: any[], bottomRows: any[], data: any[], skip: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Updates the internal tracking maps using a pre-built data-item-to-index map from the main view.
|
|
33
|
+
* This handles grouping, sorting, and pagination correctly.
|
|
34
|
+
*
|
|
35
|
+
* @param topRows - The array of data items pinned to the top.
|
|
36
|
+
* @param bottomRows - The array of data items pinned to the bottom.
|
|
37
|
+
* @param dataToIndex - A map from data item references to their absolute row indices in the main view.
|
|
38
|
+
*/
|
|
39
|
+
updateFromIndexMap(topRows: any[], bottomRows: any[], dataToIndex: Map<any, number>): void;
|
|
40
|
+
/**
|
|
41
|
+
* Returns the absolute main row index for a pinned row data item, or `-1` if not found.
|
|
42
|
+
* The returned index matches the `index` property used by selection and editing services.
|
|
43
|
+
*/
|
|
44
|
+
getMainRowIndex(dataItem: any): number;
|
|
45
|
+
/**
|
|
46
|
+
* Returns `true` if the given data item is currently pinned to the top or bottom.
|
|
47
|
+
*/
|
|
48
|
+
isRowPinned(dataItem: any): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Returns the pin position (`'top'` or `'bottom'`) for the given data item,
|
|
51
|
+
* or `null` if the item is not pinned.
|
|
52
|
+
*/
|
|
53
|
+
getPinnedPosition(dataItem: any): 'top' | 'bottom' | null;
|
|
54
|
+
/**
|
|
55
|
+
* Returns the pinned counterpart for a given main row index,
|
|
56
|
+
* or `null` if the main row has no pinned counterpart.
|
|
57
|
+
*/
|
|
58
|
+
getPinnedCounterpart(mainIndex: number): {
|
|
59
|
+
dataItem: any;
|
|
60
|
+
position: 'top' | 'bottom';
|
|
61
|
+
} | null;
|
|
62
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PinnedRowTrackingService, never>;
|
|
63
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<PinnedRowTrackingService>;
|
|
64
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
-
import { ElementRef, TrackByFunction, QueryList } from '@angular/core';
|
|
5
|
+
import { AfterViewChecked, ElementRef, TrackByFunction, QueryList } from '@angular/core';
|
|
6
6
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
7
7
|
import { GridItem } from '../data/grid-item.interface';
|
|
8
8
|
import { ColumnsContainer } from '../columns/columns-container';
|
|
@@ -11,13 +11,16 @@ import { ColumnBase } from '../columns/column-base';
|
|
|
11
11
|
import { GroupDescriptor } from '@progress/kendo-data-query';
|
|
12
12
|
import { DetailTemplateDirective } from '../rendering/details/detail-template.directive';
|
|
13
13
|
import { FilterableSettings } from '../filtering/filterable';
|
|
14
|
+
import { GridSize } from '../common/size-options';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
/**
|
|
16
17
|
* @hidden
|
|
17
18
|
*/
|
|
18
|
-
export declare class RowPinContainerComponent {
|
|
19
|
-
private localization;
|
|
19
|
+
export declare class RowPinContainerComponent implements AfterViewChecked {
|
|
20
|
+
private readonly localization;
|
|
20
21
|
pinnedWrapper: ElementRef;
|
|
22
|
+
private readonly lockedTable;
|
|
23
|
+
private readonly pinnedTable;
|
|
21
24
|
hostClass: boolean;
|
|
22
25
|
get bottomClass(): boolean;
|
|
23
26
|
leafColumns: any[];
|
|
@@ -41,8 +44,13 @@ export declare class RowPinContainerComponent {
|
|
|
41
44
|
groups: Array<GroupDescriptor>;
|
|
42
45
|
detailTemplate: DetailTemplateDirective;
|
|
43
46
|
filterable: FilterableSettings;
|
|
47
|
+
rowHeight: number;
|
|
48
|
+
detailRowHeight: number;
|
|
49
|
+
loading: boolean;
|
|
50
|
+
size: GridSize;
|
|
44
51
|
constructor(localization: LocalizationService);
|
|
52
|
+
ngAfterViewChecked(): void;
|
|
45
53
|
get ariaLabel(): string;
|
|
46
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<RowPinContainerComponent, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RowPinContainerComponent, "kendo-grid-rowpin-container", never, { "leafColumns": { "alias": "leafColumns"; "required": false; }; "lockedLeafColumns": { "alias": "lockedLeafColumns"; "required": false; }; "nonLockedLeafColumns": { "alias": "nonLockedLeafColumns"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "position": { "alias": "position"; "required": false; }; "rowsToRender": { "alias": "rowsToRender"; "required": false; }; "totalColumns": { "alias": "totalColumns"; "required": false; }; "lockedWidth": { "alias": "lockedWidth"; "required": false; }; "nonLockedWidth": { "alias": "nonLockedWidth"; "required": false; }; "isLocked": { "alias": "isLocked"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; }, {}, never, never, true, never>;
|
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RowPinContainerComponent, "kendo-grid-rowpin-container", never, { "leafColumns": { "alias": "leafColumns"; "required": false; }; "lockedLeafColumns": { "alias": "lockedLeafColumns"; "required": false; }; "nonLockedLeafColumns": { "alias": "nonLockedLeafColumns"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "position": { "alias": "position"; "required": false; }; "rowsToRender": { "alias": "rowsToRender"; "required": false; }; "totalColumns": { "alias": "totalColumns"; "required": false; }; "lockedWidth": { "alias": "lockedWidth"; "required": false; }; "nonLockedWidth": { "alias": "nonLockedWidth"; "required": false; }; "isLocked": { "alias": "isLocked"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "trackBy": { "alias": "trackBy"; "required": false; }; "groups": { "alias": "groups"; "required": false; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "detailRowHeight": { "alias": "detailRowHeight"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
|
|
48
56
|
}
|
|
@@ -9,19 +9,19 @@ const schematics_1 = require("@angular-devkit/schematics");
|
|
|
9
9
|
function default_1(options) {
|
|
10
10
|
const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
|
|
11
11
|
// peer deps of the dropdowns
|
|
12
|
-
'@progress/kendo-angular-treeview': '24.0.0-develop.
|
|
13
|
-
'@progress/kendo-angular-navigation': '24.0.0-develop.
|
|
12
|
+
'@progress/kendo-angular-treeview': '24.0.0-develop.20',
|
|
13
|
+
'@progress/kendo-angular-navigation': '24.0.0-develop.20',
|
|
14
14
|
// peer dependency of kendo-angular-inputs
|
|
15
|
-
'@progress/kendo-angular-dialog': '24.0.0-develop.
|
|
15
|
+
'@progress/kendo-angular-dialog': '24.0.0-develop.20',
|
|
16
16
|
// peer dependency of kendo-angular-icons
|
|
17
17
|
'@progress/kendo-svg-icons': '^4.0.0',
|
|
18
18
|
// peer dependency of kendo-angular-layout
|
|
19
|
-
'@progress/kendo-angular-progressbar': '24.0.0-develop.
|
|
19
|
+
'@progress/kendo-angular-progressbar': '24.0.0-develop.20',
|
|
20
20
|
// transitive peer dependencies from toolbar
|
|
21
|
-
'@progress/kendo-angular-indicators': '24.0.0-develop.
|
|
21
|
+
'@progress/kendo-angular-indicators': '24.0.0-develop.20',
|
|
22
22
|
// transitive peer dependencies from conversational-ui
|
|
23
|
-
'@progress/kendo-angular-menu': '24.0.0-develop.
|
|
24
|
-
'@progress/kendo-angular-upload': '24.0.0-develop.
|
|
23
|
+
'@progress/kendo-angular-menu': '24.0.0-develop.20',
|
|
24
|
+
'@progress/kendo-angular-upload': '24.0.0-develop.20'
|
|
25
25
|
} });
|
|
26
26
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
|
27
27
|
}
|