@progress/kendo-angular-grid 21.3.0-develop.8 → 21.3.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/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/list.component.mjs +10 -0
- package/esm2022/scrolling/scroller.service.mjs +5 -1
- package/fesm2022/progress-kendo-angular-grid.mjs +17 -3
- package/package.json +24 -24
- package/schematics/ngAdd/index.js +7 -7
- package/scrolling/scroller.service.d.ts +2 -1
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '21.3.0
|
|
13
|
+
publishDate: 1765468080,
|
|
14
|
+
version: '21.3.0',
|
|
15
15
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
16
16
|
};
|
|
@@ -284,6 +284,12 @@ export class ListComponent {
|
|
|
284
284
|
this.container.nativeElement.scrollTop = (this.isVirtual && this.ctx.grid?.pageable) ? 0 : this.rowHeightService.offset(this.skip);
|
|
285
285
|
}
|
|
286
286
|
if (anyChanged(['total', 'take'], changes)) {
|
|
287
|
+
// For virtual scrolling without paging, preserve scroll position when only take/pageSize changes
|
|
288
|
+
const isVirtualOnly = this.isVirtual && !this.ctx.grid?.pageable;
|
|
289
|
+
const onlyTakeChanged = isChanged('take', changes) && !isChanged('total', changes);
|
|
290
|
+
if (isVirtualOnly && onlyTakeChanged) {
|
|
291
|
+
this.skipScroll = true;
|
|
292
|
+
}
|
|
287
293
|
this.init();
|
|
288
294
|
}
|
|
289
295
|
this.rebind = false;
|
|
@@ -438,6 +444,9 @@ export class ListComponent {
|
|
|
438
444
|
this.rowHeightService = this.scroller.rowHeightService = new RowHeightService(total, this.rowHeight || this.minRowHeight);
|
|
439
445
|
if (!isUniversal()) {
|
|
440
446
|
if (this.skipScroll) {
|
|
447
|
+
// Update scroller's take value when preserving scroll position
|
|
448
|
+
this.scroller.take = this.take;
|
|
449
|
+
this.scroller.total = this.total;
|
|
441
450
|
this.setScrollerOptions();
|
|
442
451
|
this.scroller.update();
|
|
443
452
|
}
|
|
@@ -808,6 +817,7 @@ export class ListComponent {
|
|
|
808
817
|
setScrollerOptions() {
|
|
809
818
|
this.scroller.scrollableVirtual = this.isVirtual;
|
|
810
819
|
this.scroller.table = this.table.nativeElement;
|
|
820
|
+
this.scroller.lockedTable = this.lockedTable?.nativeElement || null;
|
|
811
821
|
this.scroller.tableBody = this.table.nativeElement.tBodies[0];
|
|
812
822
|
this.scroller.container = this.container.nativeElement;
|
|
813
823
|
this.scroller.scrollHeightContainer = this.container.nativeElement.querySelector('.k-height-container');
|
|
@@ -41,6 +41,7 @@ export class ScrollerService {
|
|
|
41
41
|
total = 0;
|
|
42
42
|
rowHeightService;
|
|
43
43
|
table = null;
|
|
44
|
+
lockedTable = null;
|
|
44
45
|
tableBody = null;
|
|
45
46
|
container = null;
|
|
46
47
|
scrollHeightContainer = null;
|
|
@@ -51,12 +52,12 @@ export class ScrollerService {
|
|
|
51
52
|
firstToLoad = 0;
|
|
52
53
|
lastLoaded = 0;
|
|
53
54
|
scrollSyncing = false;
|
|
54
|
-
take;
|
|
55
55
|
scrollSubscription;
|
|
56
56
|
subscription;
|
|
57
57
|
lastScrollTop = 0;
|
|
58
58
|
firstLoaded = 0;
|
|
59
59
|
expandedRows = {};
|
|
60
|
+
take;
|
|
60
61
|
constructor(scrollObservable, ctx) {
|
|
61
62
|
this.scrollObservable = scrollObservable;
|
|
62
63
|
this.ctx = ctx;
|
|
@@ -170,6 +171,9 @@ export class ScrollerService {
|
|
|
170
171
|
if (this.scrollableVirtual && this.table) {
|
|
171
172
|
if (forceSet) {
|
|
172
173
|
this.table.style.transform = 'translateY(' + dY + 'px)';
|
|
174
|
+
if (this.lockedTable) {
|
|
175
|
+
this.lockedTable.style.transform = 'translateY(' + dY + 'px)';
|
|
176
|
+
}
|
|
173
177
|
}
|
|
174
178
|
else {
|
|
175
179
|
this.tableTransformOffset = dY;
|
|
@@ -23596,8 +23596,8 @@ const packageMetadata = {
|
|
|
23596
23596
|
productName: 'Kendo UI for Angular',
|
|
23597
23597
|
productCode: 'KENDOUIANGULAR',
|
|
23598
23598
|
productCodes: ['KENDOUIANGULAR'],
|
|
23599
|
-
publishDate:
|
|
23600
|
-
version: '21.3.0
|
|
23599
|
+
publishDate: 1765468080,
|
|
23600
|
+
version: '21.3.0',
|
|
23601
23601
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
23602
23602
|
};
|
|
23603
23603
|
|
|
@@ -26196,6 +26196,7 @@ class ScrollerService {
|
|
|
26196
26196
|
total = 0;
|
|
26197
26197
|
rowHeightService;
|
|
26198
26198
|
table = null;
|
|
26199
|
+
lockedTable = null;
|
|
26199
26200
|
tableBody = null;
|
|
26200
26201
|
container = null;
|
|
26201
26202
|
scrollHeightContainer = null;
|
|
@@ -26206,12 +26207,12 @@ class ScrollerService {
|
|
|
26206
26207
|
firstToLoad = 0;
|
|
26207
26208
|
lastLoaded = 0;
|
|
26208
26209
|
scrollSyncing = false;
|
|
26209
|
-
take;
|
|
26210
26210
|
scrollSubscription;
|
|
26211
26211
|
subscription;
|
|
26212
26212
|
lastScrollTop = 0;
|
|
26213
26213
|
firstLoaded = 0;
|
|
26214
26214
|
expandedRows = {};
|
|
26215
|
+
take;
|
|
26215
26216
|
constructor(scrollObservable, ctx) {
|
|
26216
26217
|
this.scrollObservable = scrollObservable;
|
|
26217
26218
|
this.ctx = ctx;
|
|
@@ -26325,6 +26326,9 @@ class ScrollerService {
|
|
|
26325
26326
|
if (this.scrollableVirtual && this.table) {
|
|
26326
26327
|
if (forceSet) {
|
|
26327
26328
|
this.table.style.transform = 'translateY(' + dY + 'px)';
|
|
26329
|
+
if (this.lockedTable) {
|
|
26330
|
+
this.lockedTable.style.transform = 'translateY(' + dY + 'px)';
|
|
26331
|
+
}
|
|
26328
26332
|
}
|
|
26329
26333
|
else {
|
|
26330
26334
|
this.tableTransformOffset = dY;
|
|
@@ -26904,6 +26908,12 @@ class ListComponent {
|
|
|
26904
26908
|
this.container.nativeElement.scrollTop = (this.isVirtual && this.ctx.grid?.pageable) ? 0 : this.rowHeightService.offset(this.skip);
|
|
26905
26909
|
}
|
|
26906
26910
|
if (anyChanged(['total', 'take'], changes)) {
|
|
26911
|
+
// For virtual scrolling without paging, preserve scroll position when only take/pageSize changes
|
|
26912
|
+
const isVirtualOnly = this.isVirtual && !this.ctx.grid?.pageable;
|
|
26913
|
+
const onlyTakeChanged = isChanged$1('take', changes) && !isChanged$1('total', changes);
|
|
26914
|
+
if (isVirtualOnly && onlyTakeChanged) {
|
|
26915
|
+
this.skipScroll = true;
|
|
26916
|
+
}
|
|
26907
26917
|
this.init();
|
|
26908
26918
|
}
|
|
26909
26919
|
this.rebind = false;
|
|
@@ -27058,6 +27068,9 @@ class ListComponent {
|
|
|
27058
27068
|
this.rowHeightService = this.scroller.rowHeightService = new RowHeightService(total, this.rowHeight || this.minRowHeight);
|
|
27059
27069
|
if (!isUniversal()) {
|
|
27060
27070
|
if (this.skipScroll) {
|
|
27071
|
+
// Update scroller's take value when preserving scroll position
|
|
27072
|
+
this.scroller.take = this.take;
|
|
27073
|
+
this.scroller.total = this.total;
|
|
27061
27074
|
this.setScrollerOptions();
|
|
27062
27075
|
this.scroller.update();
|
|
27063
27076
|
}
|
|
@@ -27428,6 +27441,7 @@ class ListComponent {
|
|
|
27428
27441
|
setScrollerOptions() {
|
|
27429
27442
|
this.scroller.scrollableVirtual = this.isVirtual;
|
|
27430
27443
|
this.scroller.table = this.table.nativeElement;
|
|
27444
|
+
this.scroller.lockedTable = this.lockedTable?.nativeElement || null;
|
|
27431
27445
|
this.scroller.tableBody = this.table.nativeElement.tBodies[0];
|
|
27432
27446
|
this.scroller.container = this.container.nativeElement;
|
|
27433
27447
|
this.scroller.scrollHeightContainer = this.container.nativeElement.querySelector('.k-height-container');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "21.3.0
|
|
3
|
+
"version": "21.3.0",
|
|
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",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"package": {
|
|
74
74
|
"productName": "Kendo UI for Angular",
|
|
75
75
|
"productCode": "KENDOUIANGULAR",
|
|
76
|
-
"publishDate":
|
|
76
|
+
"publishDate": 1765468080,
|
|
77
77
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
78
78
|
}
|
|
79
79
|
},
|
|
@@ -86,32 +86,32 @@
|
|
|
86
86
|
"@progress/kendo-data-query": "^1.0.0",
|
|
87
87
|
"@progress/kendo-drawing": "^1.23.1",
|
|
88
88
|
"@progress/kendo-licensing": "^1.7.0",
|
|
89
|
-
"@progress/kendo-angular-buttons": "21.3.0
|
|
90
|
-
"@progress/kendo-angular-common": "21.3.0
|
|
91
|
-
"@progress/kendo-angular-dateinputs": "21.3.0
|
|
92
|
-
"@progress/kendo-angular-layout": "21.3.0
|
|
93
|
-
"@progress/kendo-angular-navigation": "21.3.0
|
|
94
|
-
"@progress/kendo-angular-dropdowns": "21.3.0
|
|
95
|
-
"@progress/kendo-angular-excel-export": "21.3.0
|
|
96
|
-
"@progress/kendo-angular-icons": "21.3.0
|
|
97
|
-
"@progress/kendo-angular-indicators": "21.3.0
|
|
98
|
-
"@progress/kendo-angular-inputs": "21.3.0
|
|
99
|
-
"@progress/kendo-angular-conversational-ui": "21.3.0
|
|
100
|
-
"@progress/kendo-angular-intl": "21.3.0
|
|
101
|
-
"@progress/kendo-angular-l10n": "21.3.0
|
|
102
|
-
"@progress/kendo-angular-label": "21.3.0
|
|
103
|
-
"@progress/kendo-angular-menu": "21.3.0
|
|
104
|
-
"@progress/kendo-angular-pager": "21.3.0
|
|
105
|
-
"@progress/kendo-angular-pdf-export": "21.3.0
|
|
106
|
-
"@progress/kendo-angular-popup": "21.3.0
|
|
107
|
-
"@progress/kendo-angular-toolbar": "21.3.0
|
|
108
|
-
"@progress/kendo-angular-upload": "21.3.0
|
|
109
|
-
"@progress/kendo-angular-utils": "21.3.0
|
|
89
|
+
"@progress/kendo-angular-buttons": "21.3.0",
|
|
90
|
+
"@progress/kendo-angular-common": "21.3.0",
|
|
91
|
+
"@progress/kendo-angular-dateinputs": "21.3.0",
|
|
92
|
+
"@progress/kendo-angular-layout": "21.3.0",
|
|
93
|
+
"@progress/kendo-angular-navigation": "21.3.0",
|
|
94
|
+
"@progress/kendo-angular-dropdowns": "21.3.0",
|
|
95
|
+
"@progress/kendo-angular-excel-export": "21.3.0",
|
|
96
|
+
"@progress/kendo-angular-icons": "21.3.0",
|
|
97
|
+
"@progress/kendo-angular-indicators": "21.3.0",
|
|
98
|
+
"@progress/kendo-angular-inputs": "21.3.0",
|
|
99
|
+
"@progress/kendo-angular-conversational-ui": "21.3.0",
|
|
100
|
+
"@progress/kendo-angular-intl": "21.3.0",
|
|
101
|
+
"@progress/kendo-angular-l10n": "21.3.0",
|
|
102
|
+
"@progress/kendo-angular-label": "21.3.0",
|
|
103
|
+
"@progress/kendo-angular-menu": "21.3.0",
|
|
104
|
+
"@progress/kendo-angular-pager": "21.3.0",
|
|
105
|
+
"@progress/kendo-angular-pdf-export": "21.3.0",
|
|
106
|
+
"@progress/kendo-angular-popup": "21.3.0",
|
|
107
|
+
"@progress/kendo-angular-toolbar": "21.3.0",
|
|
108
|
+
"@progress/kendo-angular-upload": "21.3.0",
|
|
109
|
+
"@progress/kendo-angular-utils": "21.3.0",
|
|
110
110
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
111
111
|
},
|
|
112
112
|
"dependencies": {
|
|
113
113
|
"tslib": "^2.3.1",
|
|
114
|
-
"@progress/kendo-angular-schematics": "21.3.0
|
|
114
|
+
"@progress/kendo-angular-schematics": "21.3.0",
|
|
115
115
|
"@progress/kendo-common": "^1.0.1",
|
|
116
116
|
"@progress/kendo-file-saver": "^1.0.0"
|
|
117
117
|
},
|
|
@@ -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': '21.3.0
|
|
13
|
-
'@progress/kendo-angular-navigation': '21.3.0
|
|
12
|
+
'@progress/kendo-angular-treeview': '21.3.0',
|
|
13
|
+
'@progress/kendo-angular-navigation': '21.3.0',
|
|
14
14
|
// peer dependency of kendo-angular-inputs
|
|
15
|
-
'@progress/kendo-angular-dialog': '21.3.0
|
|
15
|
+
'@progress/kendo-angular-dialog': '21.3.0',
|
|
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': '21.3.0
|
|
19
|
+
'@progress/kendo-angular-progressbar': '21.3.0',
|
|
20
20
|
// transitive peer dependencies from toolbar
|
|
21
|
-
'@progress/kendo-angular-indicators': '21.3.0
|
|
21
|
+
'@progress/kendo-angular-indicators': '21.3.0',
|
|
22
22
|
// transitive peer dependencies from conversational-ui
|
|
23
|
-
'@progress/kendo-angular-menu': '21.3.0
|
|
24
|
-
'@progress/kendo-angular-upload': '21.3.0
|
|
23
|
+
'@progress/kendo-angular-menu': '21.3.0',
|
|
24
|
+
'@progress/kendo-angular-upload': '21.3.0'
|
|
25
25
|
} });
|
|
26
26
|
return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
|
|
27
27
|
}
|
|
@@ -39,6 +39,7 @@ export declare class ScrollerService {
|
|
|
39
39
|
total: number;
|
|
40
40
|
rowHeightService: RowHeightService;
|
|
41
41
|
table: HTMLTableElement | null;
|
|
42
|
+
lockedTable: HTMLTableElement | null;
|
|
42
43
|
tableBody: HTMLTableSectionElement | null;
|
|
43
44
|
container: HTMLDivElement | null;
|
|
44
45
|
scrollHeightContainer: HTMLDivElement | null;
|
|
@@ -49,12 +50,12 @@ export declare class ScrollerService {
|
|
|
49
50
|
firstToLoad: number;
|
|
50
51
|
lastLoaded: number;
|
|
51
52
|
scrollSyncing: boolean;
|
|
52
|
-
private take;
|
|
53
53
|
private scrollSubscription;
|
|
54
54
|
private subscription;
|
|
55
55
|
private lastScrollTop;
|
|
56
56
|
private firstLoaded;
|
|
57
57
|
private expandedRows;
|
|
58
|
+
take: number;
|
|
58
59
|
constructor(scrollObservable: Observable<any>, ctx: ContextService);
|
|
59
60
|
create(rowHeightService: RowHeightService, skip: number, take: number, total: number): BehaviorSubject<Action>;
|
|
60
61
|
reset(skipScroll?: boolean): void;
|