@progress/kendo-angular-grid 21.2.0 → 21.3.0-develop.10

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.
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1764751621,
14
- version: '21.2.0',
13
+ publishDate: 1765273123,
14
+ version: '21.3.0-develop.10',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -492,7 +492,7 @@ export class HeaderComponent {
492
492
  }
493
493
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeaderComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.DragHintService }, { token: i3.DropCueService }, { token: i4.ColumnReorderService }, { token: i5.IdService }, { token: i6.SortService }, { token: i7.ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: i8.ContextService }, { token: i9.NavigationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
494
494
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HeaderComponent, isStandalone: true, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", totalColumns: "totalColumns", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
495
- @for (i of columnLevels; track i; let levelIndex = $index) {
495
+ @for (i of columnLevels; track $index; let levelIndex = $index) {
496
496
  <tr
497
497
  kendoGridLogicalRow
498
498
  [logicalRowIndex]="levelIndex"
@@ -513,7 +513,7 @@ export class HeaderComponent {
513
513
  >
514
514
  </th>
515
515
  }
516
- @for (column of columnsForLevel(levelIndex); track column; let columnIndex = $index; let last = $last) {
516
+ @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
517
517
  @if (!isColumnGroupComponent(column)) {
518
518
  <th
519
519
  kendoGridLogicalCell
@@ -740,7 +740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
740
740
  args: [{
741
741
  selector: '[kendoGridHeader]',
742
742
  template: `
743
- @for (i of columnLevels; track i; let levelIndex = $index) {
743
+ @for (i of columnLevels; track $index; let levelIndex = $index) {
744
744
  <tr
745
745
  kendoGridLogicalRow
746
746
  [logicalRowIndex]="levelIndex"
@@ -761,7 +761,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
761
761
  >
762
762
  </th>
763
763
  }
764
- @for (column of columnsForLevel(levelIndex); track column; let columnIndex = $index; let last = $last) {
764
+ @for (column of columnsForLevel(levelIndex); track column.id; let columnIndex = $index; let last = $last) {
765
765
  @if (!isColumnGroupComponent(column)) {
766
766
  <th
767
767
  kendoGridLogicalCell
@@ -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');