@progress/kendo-angular-grid 21.3.0-develop.1 → 21.3.0-develop.11
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/column-menu/column-list.component.d.ts +1 -0
- package/common/id.service.d.ts +4 -1
- package/esm2022/column-menu/column-list.component.mjs +2 -1
- package/esm2022/column-menu/column-menu-chooser.component.mjs +1 -2
- package/esm2022/column-menu/column-menu.component.mjs +4 -6
- package/esm2022/common/id.service.mjs +21 -3
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +7 -7
- 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 +51 -19
- package/filtering/menu/date-filter-menu-input.component.d.ts +2 -2
- package/package.json +25 -25
- package/schematics/ngAdd/index.js +7 -7
- package/scrolling/scroller.service.d.ts +2 -1
|
@@ -54,6 +54,7 @@ export declare class ColumnListComponent implements OnInit, OnDestroy {
|
|
|
54
54
|
private _columns;
|
|
55
55
|
private domSubscriptions;
|
|
56
56
|
private lastDisabledCheckbox;
|
|
57
|
+
private handledKeys;
|
|
57
58
|
constructor(element: ElementRef, ngZone: NgZone, renderer: Renderer2, listNavigationService: ColumnListKeyboardNavigation, cdr: ChangeDetectorRef, columnInfoService: ColumnInfoService, adaptiveGridService: AdaptiveGridService, ctx: ContextService);
|
|
58
59
|
ngOnInit(): void;
|
|
59
60
|
ngAfterViewInit(): void;
|
package/common/id.service.d.ts
CHANGED
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
* Copyright © 2025 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 { OnDestroy } from "@angular/core";
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
/**
|
|
7
8
|
* @hidden
|
|
8
9
|
*/
|
|
9
|
-
export declare class IdService {
|
|
10
|
+
export declare class IdService implements OnDestroy {
|
|
10
11
|
private prefix;
|
|
12
|
+
private gridIndex;
|
|
11
13
|
private columnCounter;
|
|
12
14
|
constructor();
|
|
15
|
+
ngOnDestroy(): void;
|
|
13
16
|
gridId(): string;
|
|
14
17
|
cellId(rowIndex: number, colIndex: number): string;
|
|
15
18
|
selectionCheckboxId(itemIndex: any): string;
|
|
@@ -86,6 +86,7 @@ export class ColumnListComponent {
|
|
|
86
86
|
_columns;
|
|
87
87
|
domSubscriptions = new Subscription();
|
|
88
88
|
lastDisabledCheckbox;
|
|
89
|
+
handledKeys = [Keys.ArrowDown, Keys.ArrowUp, Keys.Space];
|
|
89
90
|
constructor(element, ngZone, renderer, listNavigationService, cdr, columnInfoService, adaptiveGridService, ctx) {
|
|
90
91
|
this.element = element;
|
|
91
92
|
this.ngZone = ngZone;
|
|
@@ -228,7 +229,7 @@ export class ColumnListComponent {
|
|
|
228
229
|
}
|
|
229
230
|
onKeydown = (e) => {
|
|
230
231
|
const code = normalizeKeys(e);
|
|
231
|
-
if (code
|
|
232
|
+
if (this.handledKeys.includes(code)) {
|
|
232
233
|
e.preventDefault();
|
|
233
234
|
}
|
|
234
235
|
if (code === 'Tab' && e.shiftKey) {
|
|
@@ -7,7 +7,6 @@ import { ColumnInfoService } from '../common/column-info.service';
|
|
|
7
7
|
import { ColumnMenuItemBase } from './column-menu-item-base';
|
|
8
8
|
import { columnsIcon } from '@progress/kendo-svg-icons';
|
|
9
9
|
import { ContextService } from '../common/provider.service';
|
|
10
|
-
import { ColumnListComponent } from './column-list.component';
|
|
11
10
|
import { ColumnMenuItemContentTemplateDirective } from './column-menu-item-content-template.directive';
|
|
12
11
|
import { ColumnMenuItemComponent } from './column-menu-item.component';
|
|
13
12
|
import { ColumnChooserContentComponent } from './column-chooser-content.component';
|
|
@@ -139,7 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
139
138
|
</kendo-grid-columnmenu-item>
|
|
140
139
|
`,
|
|
141
140
|
standalone: true,
|
|
142
|
-
imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective,
|
|
141
|
+
imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnChooserContentComponent]
|
|
143
142
|
}]
|
|
144
143
|
}], ctorParameters: () => [{ type: i1.ContextService }, { type: i2.ColumnInfoService }, { type: i0.ElementRef }], propDecorators: { expand: [{
|
|
145
144
|
type: Output
|
|
@@ -15,7 +15,6 @@ import { moreVerticalIcon, columnsIcon, filterIcon, slidersIcon } from '@progres
|
|
|
15
15
|
import { TabContentDirective, TabStripComponent, TabStripTabComponent, TabTitleDirective } from '@progress/kendo-angular-layout';
|
|
16
16
|
import { ColumnInfoService } from '../common/column-info.service';
|
|
17
17
|
import { IdService } from '../common/id.service';
|
|
18
|
-
import { ColumnListComponent } from './column-list.component';
|
|
19
18
|
import { FilterMenuContainerComponent } from '../filtering/menu/filter-menu-container.component';
|
|
20
19
|
import { ColumnMenuFilterComponent } from './column-menu-filter.component';
|
|
21
20
|
import { ColumnMenuAutoSizeAllColumnsComponent } from './column-menu-autosize-all.component';
|
|
@@ -437,7 +436,7 @@ export class ColumnMenuComponent {
|
|
|
437
436
|
>
|
|
438
437
|
</kendo-grid-columnmenu-autosize-column>
|
|
439
438
|
}
|
|
440
|
-
|
|
439
|
+
|
|
441
440
|
@if (hasAutoSizeAllColumns) {
|
|
442
441
|
<kendo-grid-columnmenu-autosize-all-columns
|
|
443
442
|
#autoSizeAllColumnsItem
|
|
@@ -565,7 +564,7 @@ export class ColumnMenuComponent {
|
|
|
565
564
|
}
|
|
566
565
|
</kendo-tabstrip>
|
|
567
566
|
</ng-template>
|
|
568
|
-
|
|
567
|
+
|
|
569
568
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTitleDirective, selector: "[kendoTabTitle]" }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnChooserContentComponent, selector: "kendo-grid-column-chooser-content", inputs: ["filterable", "showSelectAll", "showCheckedCount", "allowHideAll", "autoSync", "actionsClass", "closeOnReset", "columns", "isLast", "isExpanded", "service"], outputs: ["close"] }] });
|
|
570
569
|
}
|
|
571
570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
@@ -648,7 +647,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
648
647
|
>
|
|
649
648
|
</kendo-grid-columnmenu-autosize-column>
|
|
650
649
|
}
|
|
651
|
-
|
|
650
|
+
|
|
652
651
|
@if (hasAutoSizeAllColumns) {
|
|
653
652
|
<kendo-grid-columnmenu-autosize-all-columns
|
|
654
653
|
#autoSizeAllColumnsItem
|
|
@@ -776,7 +775,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
776
775
|
}
|
|
777
776
|
</kendo-tabstrip>
|
|
778
777
|
</ng-template>
|
|
779
|
-
|
|
778
|
+
|
|
780
779
|
`,
|
|
781
780
|
standalone: true,
|
|
782
781
|
imports: [
|
|
@@ -798,7 +797,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
798
797
|
TabTitleDirective,
|
|
799
798
|
TabContentDirective,
|
|
800
799
|
FilterMenuContainerComponent,
|
|
801
|
-
ColumnListComponent,
|
|
802
800
|
ColumnChooserContentComponent
|
|
803
801
|
]
|
|
804
802
|
}]
|
|
@@ -4,16 +4,34 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Injectable } from "@angular/core";
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
//
|
|
8
|
-
|
|
7
|
+
// Registry to track active Grid instances and their indices
|
|
8
|
+
const activeGridIndices = new Set();
|
|
9
|
+
// Get the next available grid index (reuses freed indices)
|
|
10
|
+
function getNextGridIndex() {
|
|
11
|
+
let index = 0;
|
|
12
|
+
while (activeGridIndices.has(index)) {
|
|
13
|
+
index++;
|
|
14
|
+
}
|
|
15
|
+
activeGridIndices.add(index);
|
|
16
|
+
return index;
|
|
17
|
+
}
|
|
18
|
+
// Release a grid index when the Grid is destroyed
|
|
19
|
+
function releaseGridIndex(index) {
|
|
20
|
+
activeGridIndices.delete(index);
|
|
21
|
+
}
|
|
9
22
|
/**
|
|
10
23
|
* @hidden
|
|
11
24
|
*/
|
|
12
25
|
export class IdService {
|
|
13
26
|
prefix;
|
|
27
|
+
gridIndex;
|
|
14
28
|
columnCounter = 0;
|
|
15
29
|
constructor() {
|
|
16
|
-
this.
|
|
30
|
+
this.gridIndex = getNextGridIndex();
|
|
31
|
+
this.prefix = `k-grid${this.gridIndex}`;
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
releaseGridIndex(this.gridIndex);
|
|
17
35
|
}
|
|
18
36
|
gridId() {
|
|
19
37
|
return this.prefix;
|
|
@@ -7,7 +7,7 @@ import { Component, Input } from '@angular/core';
|
|
|
7
7
|
import { ColumnComponent } from "../../columns/column.component";
|
|
8
8
|
import { FilterService } from '../filter.service';
|
|
9
9
|
import { SinglePopupService } from '../../common/single-popup.service';
|
|
10
|
-
import {
|
|
10
|
+
import { filter } from 'rxjs/operators';
|
|
11
11
|
import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
|
|
12
12
|
import { ContextService } from '../../common/provider.service';
|
|
13
13
|
import { FilterInputDirective } from '../filter-input.directive';
|
|
@@ -49,12 +49,12 @@ export class DateFilterMenuInputComponent {
|
|
|
49
49
|
this.subscription.unsubscribe();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
open() {
|
|
52
|
+
open(picker) {
|
|
53
53
|
if (this.subscription) {
|
|
54
54
|
this.subscription.unsubscribe();
|
|
55
55
|
}
|
|
56
56
|
this.subscription = this.popupService.onClose
|
|
57
|
-
.pipe(
|
|
57
|
+
.pipe(filter(() => picker.isActive))
|
|
58
58
|
.subscribe(e => e.preventDefault());
|
|
59
59
|
}
|
|
60
60
|
messageFor(key) {
|
|
@@ -76,13 +76,13 @@ export class DateFilterMenuInputComponent {
|
|
|
76
76
|
[filterService]="filterService"
|
|
77
77
|
[isFirstDropDown]="isFirstDropDown"
|
|
78
78
|
[menuTabbingService]="menuTabbingService">
|
|
79
|
-
<kendo-datepicker
|
|
79
|
+
<kendo-datepicker #picker
|
|
80
80
|
kendoFilterInput
|
|
81
81
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
82
82
|
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
83
83
|
[columnLabel]="columnLabel"
|
|
84
84
|
[filterDelay]="0"
|
|
85
|
-
(open)="open()"
|
|
85
|
+
(open)="open(picker)"
|
|
86
86
|
[value]="currentFilter?.value"
|
|
87
87
|
[placeholder]="placeholder"
|
|
88
88
|
[formatPlaceholder]="formatPlaceholder"
|
|
@@ -115,13 +115,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
115
115
|
[filterService]="filterService"
|
|
116
116
|
[isFirstDropDown]="isFirstDropDown"
|
|
117
117
|
[menuTabbingService]="menuTabbingService">
|
|
118
|
-
<kendo-datepicker
|
|
118
|
+
<kendo-datepicker #picker
|
|
119
119
|
kendoFilterInput
|
|
120
120
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
121
121
|
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
122
122
|
[columnLabel]="columnLabel"
|
|
123
123
|
[filterDelay]="0"
|
|
124
|
-
(open)="open()"
|
|
124
|
+
(open)="open(picker)"
|
|
125
125
|
[value]="currentFilter?.value"
|
|
126
126
|
[placeholder]="placeholder"
|
|
127
127
|
[formatPlaceholder]="formatPlaceholder"
|
|
@@ -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-develop.
|
|
13
|
+
publishDate: 1765375184,
|
|
14
|
+
version: '21.3.0-develop.11',
|
|
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;
|
|
@@ -2102,16 +2102,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
2102
2102
|
type: Optional
|
|
2103
2103
|
}] }] });
|
|
2104
2104
|
|
|
2105
|
-
//
|
|
2106
|
-
|
|
2105
|
+
// Registry to track active Grid instances and their indices
|
|
2106
|
+
const activeGridIndices = new Set();
|
|
2107
|
+
// Get the next available grid index (reuses freed indices)
|
|
2108
|
+
function getNextGridIndex() {
|
|
2109
|
+
let index = 0;
|
|
2110
|
+
while (activeGridIndices.has(index)) {
|
|
2111
|
+
index++;
|
|
2112
|
+
}
|
|
2113
|
+
activeGridIndices.add(index);
|
|
2114
|
+
return index;
|
|
2115
|
+
}
|
|
2116
|
+
// Release a grid index when the Grid is destroyed
|
|
2117
|
+
function releaseGridIndex(index) {
|
|
2118
|
+
activeGridIndices.delete(index);
|
|
2119
|
+
}
|
|
2107
2120
|
/**
|
|
2108
2121
|
* @hidden
|
|
2109
2122
|
*/
|
|
2110
2123
|
class IdService {
|
|
2111
2124
|
prefix;
|
|
2125
|
+
gridIndex;
|
|
2112
2126
|
columnCounter = 0;
|
|
2113
2127
|
constructor() {
|
|
2114
|
-
this.
|
|
2128
|
+
this.gridIndex = getNextGridIndex();
|
|
2129
|
+
this.prefix = `k-grid${this.gridIndex}`;
|
|
2130
|
+
}
|
|
2131
|
+
ngOnDestroy() {
|
|
2132
|
+
releaseGridIndex(this.gridIndex);
|
|
2115
2133
|
}
|
|
2116
2134
|
gridId() {
|
|
2117
2135
|
return this.prefix;
|
|
@@ -10240,12 +10258,12 @@ class DateFilterMenuInputComponent {
|
|
|
10240
10258
|
this.subscription.unsubscribe();
|
|
10241
10259
|
}
|
|
10242
10260
|
}
|
|
10243
|
-
open() {
|
|
10261
|
+
open(picker) {
|
|
10244
10262
|
if (this.subscription) {
|
|
10245
10263
|
this.subscription.unsubscribe();
|
|
10246
10264
|
}
|
|
10247
10265
|
this.subscription = this.popupService.onClose
|
|
10248
|
-
.pipe(
|
|
10266
|
+
.pipe(filter(() => picker.isActive))
|
|
10249
10267
|
.subscribe(e => e.preventDefault());
|
|
10250
10268
|
}
|
|
10251
10269
|
messageFor(key) {
|
|
@@ -10267,13 +10285,13 @@ class DateFilterMenuInputComponent {
|
|
|
10267
10285
|
[filterService]="filterService"
|
|
10268
10286
|
[isFirstDropDown]="isFirstDropDown"
|
|
10269
10287
|
[menuTabbingService]="menuTabbingService">
|
|
10270
|
-
<kendo-datepicker
|
|
10288
|
+
<kendo-datepicker #picker
|
|
10271
10289
|
kendoFilterInput
|
|
10272
10290
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
10273
10291
|
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
10274
10292
|
[columnLabel]="columnLabel"
|
|
10275
10293
|
[filterDelay]="0"
|
|
10276
|
-
(open)="open()"
|
|
10294
|
+
(open)="open(picker)"
|
|
10277
10295
|
[value]="currentFilter?.value"
|
|
10278
10296
|
[placeholder]="placeholder"
|
|
10279
10297
|
[formatPlaceholder]="formatPlaceholder"
|
|
@@ -10306,13 +10324,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
10306
10324
|
[filterService]="filterService"
|
|
10307
10325
|
[isFirstDropDown]="isFirstDropDown"
|
|
10308
10326
|
[menuTabbingService]="menuTabbingService">
|
|
10309
|
-
<kendo-datepicker
|
|
10327
|
+
<kendo-datepicker #picker
|
|
10310
10328
|
kendoFilterInput
|
|
10311
10329
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
10312
10330
|
[size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
|
|
10313
10331
|
[columnLabel]="columnLabel"
|
|
10314
10332
|
[filterDelay]="0"
|
|
10315
|
-
(open)="open()"
|
|
10333
|
+
(open)="open(picker)"
|
|
10316
10334
|
[value]="currentFilter?.value"
|
|
10317
10335
|
[placeholder]="placeholder"
|
|
10318
10336
|
[formatPlaceholder]="formatPlaceholder"
|
|
@@ -12837,6 +12855,7 @@ class ColumnListComponent {
|
|
|
12837
12855
|
_columns;
|
|
12838
12856
|
domSubscriptions = new Subscription();
|
|
12839
12857
|
lastDisabledCheckbox;
|
|
12858
|
+
handledKeys = [Keys.ArrowDown, Keys.ArrowUp, Keys.Space];
|
|
12840
12859
|
constructor(element, ngZone, renderer, listNavigationService, cdr, columnInfoService, adaptiveGridService, ctx) {
|
|
12841
12860
|
this.element = element;
|
|
12842
12861
|
this.ngZone = ngZone;
|
|
@@ -12979,7 +12998,7 @@ class ColumnListComponent {
|
|
|
12979
12998
|
}
|
|
12980
12999
|
onKeydown = (e) => {
|
|
12981
13000
|
const code = normalizeKeys(e);
|
|
12982
|
-
if (code
|
|
13001
|
+
if (this.handledKeys.includes(code)) {
|
|
12983
13002
|
e.preventDefault();
|
|
12984
13003
|
}
|
|
12985
13004
|
if (code === 'Tab' && e.shiftKey) {
|
|
@@ -14960,7 +14979,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
14960
14979
|
</kendo-grid-columnmenu-item>
|
|
14961
14980
|
`,
|
|
14962
14981
|
standalone: true,
|
|
14963
|
-
imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective,
|
|
14982
|
+
imports: [ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnChooserContentComponent]
|
|
14964
14983
|
}]
|
|
14965
14984
|
}], ctorParameters: () => [{ type: ContextService }, { type: ColumnInfoService }, { type: i0.ElementRef }], propDecorators: { expand: [{
|
|
14966
14985
|
type: Output
|
|
@@ -16233,7 +16252,7 @@ class ColumnMenuComponent {
|
|
|
16233
16252
|
>
|
|
16234
16253
|
</kendo-grid-columnmenu-autosize-column>
|
|
16235
16254
|
}
|
|
16236
|
-
|
|
16255
|
+
|
|
16237
16256
|
@if (hasAutoSizeAllColumns) {
|
|
16238
16257
|
<kendo-grid-columnmenu-autosize-all-columns
|
|
16239
16258
|
#autoSizeAllColumnsItem
|
|
@@ -16361,7 +16380,7 @@ class ColumnMenuComponent {
|
|
|
16361
16380
|
}
|
|
16362
16381
|
</kendo-tabstrip>
|
|
16363
16382
|
</ng-template>
|
|
16364
|
-
|
|
16383
|
+
|
|
16365
16384
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { kind: "directive", type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { kind: "component", type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { kind: "component", type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { kind: "component", type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { kind: "component", type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { kind: "component", type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { kind: "component", type: TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "size", "closeIcon", "closeIconClass", "closeSVGIcon", "showContentArea"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { kind: "component", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { kind: "directive", type: TabTitleDirective, selector: "[kendoTabTitle]" }, { kind: "directive", type: TabContentDirective, selector: "[kendoTabContent]" }, { kind: "component", type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { kind: "component", type: ColumnChooserContentComponent, selector: "kendo-grid-column-chooser-content", inputs: ["filterable", "showSelectAll", "showCheckedCount", "allowHideAll", "autoSync", "actionsClass", "closeOnReset", "columns", "isLast", "isExpanded", "service"], outputs: ["close"] }] });
|
|
16366
16385
|
}
|
|
16367
16386
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
@@ -16444,7 +16463,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16444
16463
|
>
|
|
16445
16464
|
</kendo-grid-columnmenu-autosize-column>
|
|
16446
16465
|
}
|
|
16447
|
-
|
|
16466
|
+
|
|
16448
16467
|
@if (hasAutoSizeAllColumns) {
|
|
16449
16468
|
<kendo-grid-columnmenu-autosize-all-columns
|
|
16450
16469
|
#autoSizeAllColumnsItem
|
|
@@ -16572,7 +16591,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16572
16591
|
}
|
|
16573
16592
|
</kendo-tabstrip>
|
|
16574
16593
|
</ng-template>
|
|
16575
|
-
|
|
16594
|
+
|
|
16576
16595
|
`,
|
|
16577
16596
|
standalone: true,
|
|
16578
16597
|
imports: [
|
|
@@ -16594,7 +16613,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
16594
16613
|
TabTitleDirective,
|
|
16595
16614
|
TabContentDirective,
|
|
16596
16615
|
FilterMenuContainerComponent,
|
|
16597
|
-
ColumnListComponent,
|
|
16598
16616
|
ColumnChooserContentComponent
|
|
16599
16617
|
]
|
|
16600
16618
|
}]
|
|
@@ -23578,8 +23596,8 @@ const packageMetadata = {
|
|
|
23578
23596
|
productName: 'Kendo UI for Angular',
|
|
23579
23597
|
productCode: 'KENDOUIANGULAR',
|
|
23580
23598
|
productCodes: ['KENDOUIANGULAR'],
|
|
23581
|
-
publishDate:
|
|
23582
|
-
version: '21.3.0-develop.
|
|
23599
|
+
publishDate: 1765375184,
|
|
23600
|
+
version: '21.3.0-develop.11',
|
|
23583
23601
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
23584
23602
|
};
|
|
23585
23603
|
|
|
@@ -26178,6 +26196,7 @@ class ScrollerService {
|
|
|
26178
26196
|
total = 0;
|
|
26179
26197
|
rowHeightService;
|
|
26180
26198
|
table = null;
|
|
26199
|
+
lockedTable = null;
|
|
26181
26200
|
tableBody = null;
|
|
26182
26201
|
container = null;
|
|
26183
26202
|
scrollHeightContainer = null;
|
|
@@ -26188,12 +26207,12 @@ class ScrollerService {
|
|
|
26188
26207
|
firstToLoad = 0;
|
|
26189
26208
|
lastLoaded = 0;
|
|
26190
26209
|
scrollSyncing = false;
|
|
26191
|
-
take;
|
|
26192
26210
|
scrollSubscription;
|
|
26193
26211
|
subscription;
|
|
26194
26212
|
lastScrollTop = 0;
|
|
26195
26213
|
firstLoaded = 0;
|
|
26196
26214
|
expandedRows = {};
|
|
26215
|
+
take;
|
|
26197
26216
|
constructor(scrollObservable, ctx) {
|
|
26198
26217
|
this.scrollObservable = scrollObservable;
|
|
26199
26218
|
this.ctx = ctx;
|
|
@@ -26307,6 +26326,9 @@ class ScrollerService {
|
|
|
26307
26326
|
if (this.scrollableVirtual && this.table) {
|
|
26308
26327
|
if (forceSet) {
|
|
26309
26328
|
this.table.style.transform = 'translateY(' + dY + 'px)';
|
|
26329
|
+
if (this.lockedTable) {
|
|
26330
|
+
this.lockedTable.style.transform = 'translateY(' + dY + 'px)';
|
|
26331
|
+
}
|
|
26310
26332
|
}
|
|
26311
26333
|
else {
|
|
26312
26334
|
this.tableTransformOffset = dY;
|
|
@@ -26886,6 +26908,12 @@ class ListComponent {
|
|
|
26886
26908
|
this.container.nativeElement.scrollTop = (this.isVirtual && this.ctx.grid?.pageable) ? 0 : this.rowHeightService.offset(this.skip);
|
|
26887
26909
|
}
|
|
26888
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
|
+
}
|
|
26889
26917
|
this.init();
|
|
26890
26918
|
}
|
|
26891
26919
|
this.rebind = false;
|
|
@@ -27040,6 +27068,9 @@ class ListComponent {
|
|
|
27040
27068
|
this.rowHeightService = this.scroller.rowHeightService = new RowHeightService(total, this.rowHeight || this.minRowHeight);
|
|
27041
27069
|
if (!isUniversal()) {
|
|
27042
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;
|
|
27043
27074
|
this.setScrollerOptions();
|
|
27044
27075
|
this.scroller.update();
|
|
27045
27076
|
}
|
|
@@ -27410,6 +27441,7 @@ class ListComponent {
|
|
|
27410
27441
|
setScrollerOptions() {
|
|
27411
27442
|
this.scroller.scrollableVirtual = this.isVirtual;
|
|
27412
27443
|
this.scroller.table = this.table.nativeElement;
|
|
27444
|
+
this.scroller.lockedTable = this.lockedTable?.nativeElement || null;
|
|
27413
27445
|
this.scroller.tableBody = this.table.nativeElement.tBodies[0];
|
|
27414
27446
|
this.scroller.container = this.container.nativeElement;
|
|
27415
27447
|
this.scroller.scrollHeightContainer = this.container.nativeElement.querySelector('.k-height-container');
|
|
@@ -8,7 +8,7 @@ import { FilterDescriptor, CompositeFilterDescriptor } from '@progress/kendo-dat
|
|
|
8
8
|
import { ColumnComponent } from "../../columns/column.component";
|
|
9
9
|
import { FilterService } from '../filter.service';
|
|
10
10
|
import { SinglePopupService } from '../../common/single-popup.service';
|
|
11
|
-
import { CalendarView, DateInputFormatPlaceholder } from '@progress/kendo-angular-dateinputs';
|
|
11
|
+
import { DatePickerComponent, CalendarView, DateInputFormatPlaceholder } from '@progress/kendo-angular-dateinputs';
|
|
12
12
|
import { ContextService } from '../../common/provider.service';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
/**
|
|
@@ -40,7 +40,7 @@ export declare class DateFilterMenuInputComponent implements OnDestroy {
|
|
|
40
40
|
private subscription;
|
|
41
41
|
constructor(popupService: SinglePopupService, ctx: ContextService);
|
|
42
42
|
ngOnDestroy(): void;
|
|
43
|
-
open(): void;
|
|
43
|
+
open(picker: DatePickerComponent): void;
|
|
44
44
|
messageFor(key: string): string;
|
|
45
45
|
get columnLabel(): string;
|
|
46
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<DateFilterMenuInputComponent, never>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-grid",
|
|
3
|
-
"version": "21.3.0-develop.
|
|
3
|
+
"version": "21.3.0-develop.11",
|
|
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": 1765375184,
|
|
77
77
|
"licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
|
|
78
78
|
}
|
|
79
79
|
},
|
|
@@ -84,34 +84,34 @@
|
|
|
84
84
|
"@angular/forms": "18 - 21",
|
|
85
85
|
"@angular/platform-browser": "18 - 21",
|
|
86
86
|
"@progress/kendo-data-query": "^1.0.0",
|
|
87
|
-
"@progress/kendo-drawing": "^1.
|
|
87
|
+
"@progress/kendo-drawing": "^1.23.1",
|
|
88
88
|
"@progress/kendo-licensing": "^1.7.0",
|
|
89
|
-
"@progress/kendo-angular-buttons": "21.3.0-develop.
|
|
90
|
-
"@progress/kendo-angular-common": "21.3.0-develop.
|
|
91
|
-
"@progress/kendo-angular-dateinputs": "21.3.0-develop.
|
|
92
|
-
"@progress/kendo-angular-layout": "21.3.0-develop.
|
|
93
|
-
"@progress/kendo-angular-navigation": "21.3.0-develop.
|
|
94
|
-
"@progress/kendo-angular-dropdowns": "21.3.0-develop.
|
|
95
|
-
"@progress/kendo-angular-excel-export": "21.3.0-develop.
|
|
96
|
-
"@progress/kendo-angular-icons": "21.3.0-develop.
|
|
97
|
-
"@progress/kendo-angular-indicators": "21.3.0-develop.
|
|
98
|
-
"@progress/kendo-angular-inputs": "21.3.0-develop.
|
|
99
|
-
"@progress/kendo-angular-conversational-ui": "21.3.0-develop.
|
|
100
|
-
"@progress/kendo-angular-intl": "21.3.0-develop.
|
|
101
|
-
"@progress/kendo-angular-l10n": "21.3.0-develop.
|
|
102
|
-
"@progress/kendo-angular-label": "21.3.0-develop.
|
|
103
|
-
"@progress/kendo-angular-menu": "21.3.0-develop.
|
|
104
|
-
"@progress/kendo-angular-pager": "21.3.0-develop.
|
|
105
|
-
"@progress/kendo-angular-pdf-export": "21.3.0-develop.
|
|
106
|
-
"@progress/kendo-angular-popup": "21.3.0-develop.
|
|
107
|
-
"@progress/kendo-angular-toolbar": "21.3.0-develop.
|
|
108
|
-
"@progress/kendo-angular-upload": "21.3.0-develop.
|
|
109
|
-
"@progress/kendo-angular-utils": "21.3.0-develop.
|
|
89
|
+
"@progress/kendo-angular-buttons": "21.3.0-develop.11",
|
|
90
|
+
"@progress/kendo-angular-common": "21.3.0-develop.11",
|
|
91
|
+
"@progress/kendo-angular-dateinputs": "21.3.0-develop.11",
|
|
92
|
+
"@progress/kendo-angular-layout": "21.3.0-develop.11",
|
|
93
|
+
"@progress/kendo-angular-navigation": "21.3.0-develop.11",
|
|
94
|
+
"@progress/kendo-angular-dropdowns": "21.3.0-develop.11",
|
|
95
|
+
"@progress/kendo-angular-excel-export": "21.3.0-develop.11",
|
|
96
|
+
"@progress/kendo-angular-icons": "21.3.0-develop.11",
|
|
97
|
+
"@progress/kendo-angular-indicators": "21.3.0-develop.11",
|
|
98
|
+
"@progress/kendo-angular-inputs": "21.3.0-develop.11",
|
|
99
|
+
"@progress/kendo-angular-conversational-ui": "21.3.0-develop.11",
|
|
100
|
+
"@progress/kendo-angular-intl": "21.3.0-develop.11",
|
|
101
|
+
"@progress/kendo-angular-l10n": "21.3.0-develop.11",
|
|
102
|
+
"@progress/kendo-angular-label": "21.3.0-develop.11",
|
|
103
|
+
"@progress/kendo-angular-menu": "21.3.0-develop.11",
|
|
104
|
+
"@progress/kendo-angular-pager": "21.3.0-develop.11",
|
|
105
|
+
"@progress/kendo-angular-pdf-export": "21.3.0-develop.11",
|
|
106
|
+
"@progress/kendo-angular-popup": "21.3.0-develop.11",
|
|
107
|
+
"@progress/kendo-angular-toolbar": "21.3.0-develop.11",
|
|
108
|
+
"@progress/kendo-angular-upload": "21.3.0-develop.11",
|
|
109
|
+
"@progress/kendo-angular-utils": "21.3.0-develop.11",
|
|
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-develop.
|
|
114
|
+
"@progress/kendo-angular-schematics": "21.3.0-develop.11",
|
|
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-develop.
|
|
13
|
-
'@progress/kendo-angular-navigation': '21.3.0-develop.
|
|
12
|
+
'@progress/kendo-angular-treeview': '21.3.0-develop.11',
|
|
13
|
+
'@progress/kendo-angular-navigation': '21.3.0-develop.11',
|
|
14
14
|
// peer dependency of kendo-angular-inputs
|
|
15
|
-
'@progress/kendo-angular-dialog': '21.3.0-develop.
|
|
15
|
+
'@progress/kendo-angular-dialog': '21.3.0-develop.11',
|
|
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-develop.
|
|
19
|
+
'@progress/kendo-angular-progressbar': '21.3.0-develop.11',
|
|
20
20
|
// transitive peer dependencies from toolbar
|
|
21
|
-
'@progress/kendo-angular-indicators': '21.3.0-develop.
|
|
21
|
+
'@progress/kendo-angular-indicators': '21.3.0-develop.11',
|
|
22
22
|
// transitive peer dependencies from conversational-ui
|
|
23
|
-
'@progress/kendo-angular-menu': '21.3.0-develop.
|
|
24
|
-
'@progress/kendo-angular-upload': '21.3.0-develop.
|
|
23
|
+
'@progress/kendo-angular-menu': '21.3.0-develop.11',
|
|
24
|
+
'@progress/kendo-angular-upload': '21.3.0-develop.11'
|
|
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;
|