@progress/kendo-angular-treelist 19.2.0-develop.8 → 19.2.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/README.md CHANGED
@@ -4,9 +4,12 @@
4
4
 
5
5
  ## Kendo UI for Angular TreeList
6
6
 
7
- > * This package is part of [Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui)—a commercial library designed and built for developing business applications with Angular. Every UI component in the Kendo UI for Angular suite has been built from the ground-up specifically for Angular.
8
- > * You must [install a license key](https://www.telerik.com/kendo-angular-ui/my-license) when adding the package to your project. To receive a license key, either [purchase a license](https://www.telerik.com/purchase/kendo-ui) or register for a [free trial](https://www.telerik.com/download-login-v2-kendo-angular-ui).
9
- > * The 30-day free trial gives you access to all the Kendo UI for Angular components and their full functionality. Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Angular dev team!
7
+ > * This package is part of [Kendo UI for Angular](https://www.telerik.com/kendo-angular-ui/)—a commercial UI library.
8
+ > * To use this package, you must install a license key file, whether you are on a paid license or a 30-day free trial. To receive a license key, either [purchase a license](https://www.telerik.com/purchase/kendo-ui) or start a [free trial](https://www.telerik.com/download-login-v2-kendo-angular-ui).
9
+ > * Adding a valid license key file ensures a seamless experience during the trial period—no watermarks, no warnings, and full access to all components and features.
10
+ > * Trial users can register for a free license key file. Without it, your trial may be interrupted by visual indicators or functionality limitations.
11
+ > * Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Angular team!
12
+ > * Learn more: https://www.telerik.com/kendo-angular-ui/components/licensing
10
13
  >
11
14
  > [Start using Kendo UI for Angular](https://www.telerik.com/download-login-v2-kendo-angular-ui) and speed up your development process!
12
15
 
@@ -6,7 +6,7 @@ import { ElementRef, NgZone, Renderer2 } from '@angular/core';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * Provides keyboard navigation support for TreeList column menu items.
9
- * Use this directive to manage focus and tab order for custom column menu items. [See example](slug:columnmenu_treelist#customizing-the-content).
9
+ * Use this directive to manage focus and tab order for custom column menu items ([see example](slug:columnmenu_treelist#customizing-the-content)).
10
10
  *
11
11
  * @example
12
12
  * ```html
@@ -53,6 +53,10 @@ export declare class ColumnBase implements OnChanges {
53
53
  * @hidden
54
54
  */
55
55
  isSpanColumn: boolean;
56
+ /**
57
+ * @hidden
58
+ */
59
+ get id(): string;
56
60
  /**
57
61
  * Indicates whether the column is resizable.
58
62
  * @default true
@@ -213,6 +217,7 @@ export declare class ColumnBase implements OnChanges {
213
217
  * @hidden
214
218
  */
215
219
  get isEditable(): boolean;
220
+ private _id;
216
221
  /**
217
222
  * @hidden
218
223
  */
@@ -10,7 +10,7 @@ import { ColumnMenuFilterComponent } from './column-menu-filter.component';
10
10
  import * as i0 from "@angular/core";
11
11
  /**
12
12
  * Provides keyboard navigation support for TreeList column menu items.
13
- * Use this directive to manage focus and tab order for custom column menu items. [See example](slug:columnmenu_treelist#customizing-the-content).
13
+ * Use this directive to manage focus and tab order for custom column menu items ([see example](slug:columnmenu_treelist#customizing-the-content)).
14
14
  *
15
15
  * @example
16
16
  * ```html
@@ -9,6 +9,7 @@ import { FooterTemplateDirective } from '../rendering/footer-template.directive'
9
9
  import { HeaderTemplateDirective } from '../rendering/header/header-template.directive';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../common/option-changes.service";
12
+ let columnId = 0;
12
13
  /**
13
14
  * @hidden
14
15
  */
@@ -59,6 +60,12 @@ export class ColumnBase {
59
60
  * @hidden
60
61
  */
61
62
  isSpanColumn = false;
63
+ /**
64
+ * @hidden
65
+ */
66
+ get id() {
67
+ return this._id;
68
+ }
62
69
  /**
63
70
  * Indicates whether the column is resizable.
64
71
  * @default true
@@ -238,6 +245,7 @@ export class ColumnBase {
238
245
  get isEditable() {
239
246
  return false;
240
247
  }
248
+ _id;
241
249
  /**
242
250
  * @hidden
243
251
  */
@@ -247,6 +255,7 @@ export class ColumnBase {
247
255
  if (parent && !isColumnContainer(parent)) {
248
256
  throw new Error('Columns can be nested only inside ColumnGroupComponent');
249
257
  }
258
+ this._id = `k-grid-column-${columnId++}`;
250
259
  }
251
260
  ngOnChanges(_changes) {
252
261
  if (this.optionChanges) {
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1751032637,
14
- version: '19.2.0-develop.8',
13
+ publishDate: 1751463239,
14
+ version: '19.2.0',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -249,9 +249,9 @@ export class HeaderComponent {
249
249
  const reorderDirectionOffset = reorderDirection * rtlMultiplier;
250
250
  const newIndex = column.leafIndex + reorderDirectionOffset;
251
251
  const normalizedNewIndex = Math.min(Math.max(0, newIndex), columnsCount - 1);
252
- const gridInstance = this.contextService.treelist;
253
- gridInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
254
- gridInstance.columnReorder.emit(new ColumnReorderEvent({
252
+ const treelistInstance = this.contextService.treelist;
253
+ treelistInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
254
+ treelistInstance.columnReorder.emit(new ColumnReorderEvent({
255
255
  column,
256
256
  newIndex: normalizedNewIndex,
257
257
  oldIndex: column.leafIndex
@@ -298,6 +298,33 @@ export class ListComponent {
298
298
  args.preventDefault();
299
299
  }
300
300
  }
301
+ updateViewportColumns(range) {
302
+ const columns = this.columns.nonLockedLeafColumns.toArray();
303
+ // eslint-disable-next-line prefer-const
304
+ let { startIdx, endIdx, offset } = range || this.calculateViewportColumns();
305
+ const start = Math.max(0, startIdx - bufferSize);
306
+ const end = Math.min(endIdx + bufferSize, columns.length - 1);
307
+ if (start < startIdx) {
308
+ for (let idx = startIdx - 1; idx >= start; idx--) {
309
+ offset -= columns[idx].width;
310
+ }
311
+ }
312
+ const currentColumns = columns.slice(start, end + 1);
313
+ this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);
314
+ if (start > 0) {
315
+ const offsetColumn = new ColumnBase();
316
+ offsetColumn.width = offset;
317
+ currentColumns.unshift(offsetColumn);
318
+ }
319
+ this.viewportColumns = new QueryList();
320
+ this.viewportColumns.reset(currentColumns);
321
+ this.columnsStartIdx = start;
322
+ this.columnsEndIdx = end;
323
+ this.columnInfo.columnRangeChange.emit({ start, end, offset });
324
+ if (!range) {
325
+ this.updateColumnViewport(startIdx, endIdx);
326
+ }
327
+ }
301
328
  attachContainerScroll() {
302
329
  if (isUniversal()) {
303
330
  return;
@@ -458,33 +485,6 @@ export class ListComponent {
458
485
  })
459
486
  .forEach(setHeight(this.renderer));
460
487
  }
461
- updateViewportColumns(range) {
462
- const columns = this.columns.nonLockedLeafColumns.toArray();
463
- // eslint-disable-next-line prefer-const
464
- let { startIdx, endIdx, offset } = range || this.calculateViewportColumns();
465
- const start = Math.max(0, startIdx - bufferSize);
466
- const end = Math.min(endIdx + bufferSize, columns.length - 1);
467
- if (start < startIdx) {
468
- for (let idx = startIdx - 1; idx >= start; idx--) {
469
- offset -= columns[idx].width;
470
- }
471
- }
472
- const currentColumns = columns.slice(start, end + 1);
473
- this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);
474
- if (start > 0) {
475
- const offsetColumn = new ColumnBase();
476
- offsetColumn.width = offset;
477
- currentColumns.unshift(offsetColumn);
478
- }
479
- this.viewportColumns = new QueryList();
480
- this.viewportColumns.reset(currentColumns);
481
- this.columnsStartIdx = start;
482
- this.columnsEndIdx = end;
483
- this.columnInfo.columnRangeChange.emit({ start, end, offset });
484
- if (!range) {
485
- this.updateColumnViewport(startIdx, endIdx);
486
- }
487
- }
488
488
  handleColumnScroll() {
489
489
  const container = this.container.nativeElement;
490
490
  const scrollLeft = container.scrollLeft;
@@ -655,6 +655,7 @@ export class TreeListComponent {
655
655
  ariaRoot;
656
656
  dragTargetContainer;
657
657
  dropTargetContainer;
658
+ listComponent;
658
659
  get scrollbarWidth() {
659
660
  return this.supportService.scrollbarWidth;
660
661
  }
@@ -1454,6 +1455,9 @@ export class TreeListComponent {
1454
1455
  }
1455
1456
  this.columnOrderChange.emit(args);
1456
1457
  this.columnsContainer.refresh();
1458
+ if (this.virtualColumns) {
1459
+ this.listComponent.updateViewportColumns();
1460
+ }
1457
1461
  this.changeDetectorRef.markForCheck();
1458
1462
  });
1459
1463
  }
@@ -1782,8 +1786,8 @@ export class TreeListComponent {
1782
1786
  }
1783
1787
  onColumnRangeChange(range) {
1784
1788
  const viewportColumns = this.viewportColumns = [];
1785
- const leafViewportColumns = this.columnsContainer
1786
- .nonLockedLeafColumns.toArray().slice(range.start, range.end + 1);
1789
+ const columnsArray = this.columnsContainer.nonLockedLeafColumns.toArray();
1790
+ const leafViewportColumns = columnsArray.slice(range.start, range.end + 1);
1787
1791
  for (let idx = 0; idx < leafViewportColumns.length; idx++) {
1788
1792
  let column = leafViewportColumns[idx];
1789
1793
  while (column.parent) {
@@ -1794,7 +1798,8 @@ export class TreeListComponent {
1794
1798
  column = toAdd.shift();
1795
1799
  viewportColumns.push(column);
1796
1800
  if (column.isColumnGroup) {
1797
- toAdd.unshift(...column.childrenArray);
1801
+ const children = columnsArray.filter(c => c.parent && c.parent.id === column.id);
1802
+ toAdd.unshift(...children);
1798
1803
  }
1799
1804
  }
1800
1805
  const lastFromGroup = viewportColumns[viewportColumns.length - 1];
@@ -1893,7 +1898,7 @@ export class TreeListComponent {
1893
1898
  },
1894
1899
  ContextService,
1895
1900
  RowReorderService
1896
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
1901
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
1897
1902
  <ng-container kendoTreeListLocalizedMessages
1898
1903
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
1899
1904
  noRecords="No records available."
@@ -3047,6 +3052,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3047
3052
  }], dropTargetContainer: [{
3048
3053
  type: ViewChild,
3049
3054
  args: [DropTargetContainerDirective]
3055
+ }], listComponent: [{
3056
+ type: ViewChild,
3057
+ args: [ListComponent]
3050
3058
  }], fetchChildren: [{
3051
3059
  type: Input
3052
3060
  }], hasChildren: [{
@@ -49,8 +49,8 @@ const packageMetadata = {
49
49
  productName: 'Kendo UI for Angular',
50
50
  productCode: 'KENDOUIANGULAR',
51
51
  productCodes: ['KENDOUIANGULAR'],
52
- publishDate: 1751032637,
53
- version: '19.2.0-develop.8',
52
+ publishDate: 1751463239,
53
+ version: '19.2.0',
54
54
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
55
55
  };
56
56
 
@@ -279,6 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
279
279
  type: Optional
280
280
  }] }]; } });
281
281
 
282
+ let columnId = 0;
282
283
  /**
283
284
  * @hidden
284
285
  */
@@ -329,6 +330,12 @@ class ColumnBase {
329
330
  * @hidden
330
331
  */
331
332
  isSpanColumn = false;
333
+ /**
334
+ * @hidden
335
+ */
336
+ get id() {
337
+ return this._id;
338
+ }
332
339
  /**
333
340
  * Indicates whether the column is resizable.
334
341
  * @default true
@@ -508,6 +515,7 @@ class ColumnBase {
508
515
  get isEditable() {
509
516
  return false;
510
517
  }
518
+ _id;
511
519
  /**
512
520
  * @hidden
513
521
  */
@@ -517,6 +525,7 @@ class ColumnBase {
517
525
  if (parent && !isColumnContainer(parent)) {
518
526
  throw new Error('Columns can be nested only inside ColumnGroupComponent');
519
527
  }
528
+ this._id = `k-grid-column-${columnId++}`;
520
529
  }
521
530
  ngOnChanges(_changes) {
522
531
  if (this.optionChanges) {
@@ -7984,6 +7993,33 @@ class ListComponent {
7984
7993
  args.preventDefault();
7985
7994
  }
7986
7995
  }
7996
+ updateViewportColumns(range) {
7997
+ const columns = this.columns.nonLockedLeafColumns.toArray();
7998
+ // eslint-disable-next-line prefer-const
7999
+ let { startIdx, endIdx, offset } = range || this.calculateViewportColumns();
8000
+ const start = Math.max(0, startIdx - bufferSize);
8001
+ const end = Math.min(endIdx + bufferSize, columns.length - 1);
8002
+ if (start < startIdx) {
8003
+ for (let idx = startIdx - 1; idx >= start; idx--) {
8004
+ offset -= columns[idx].width;
8005
+ }
8006
+ }
8007
+ const currentColumns = columns.slice(start, end + 1);
8008
+ this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);
8009
+ if (start > 0) {
8010
+ const offsetColumn = new ColumnBase();
8011
+ offsetColumn.width = offset;
8012
+ currentColumns.unshift(offsetColumn);
8013
+ }
8014
+ this.viewportColumns = new QueryList();
8015
+ this.viewportColumns.reset(currentColumns);
8016
+ this.columnsStartIdx = start;
8017
+ this.columnsEndIdx = end;
8018
+ this.columnInfo.columnRangeChange.emit({ start, end, offset });
8019
+ if (!range) {
8020
+ this.updateColumnViewport(startIdx, endIdx);
8021
+ }
8022
+ }
7987
8023
  attachContainerScroll() {
7988
8024
  if (isUniversal()) {
7989
8025
  return;
@@ -8144,33 +8180,6 @@ class ListComponent {
8144
8180
  })
8145
8181
  .forEach(setHeight(this.renderer));
8146
8182
  }
8147
- updateViewportColumns(range) {
8148
- const columns = this.columns.nonLockedLeafColumns.toArray();
8149
- // eslint-disable-next-line prefer-const
8150
- let { startIdx, endIdx, offset } = range || this.calculateViewportColumns();
8151
- const start = Math.max(0, startIdx - bufferSize);
8152
- const end = Math.min(endIdx + bufferSize, columns.length - 1);
8153
- if (start < startIdx) {
8154
- for (let idx = startIdx - 1; idx >= start; idx--) {
8155
- offset -= columns[idx].width;
8156
- }
8157
- }
8158
- const currentColumns = columns.slice(start, end + 1);
8159
- this.viewportColumnsWidth = currentColumns.reduce((total, column) => total + column.width, 0);
8160
- if (start > 0) {
8161
- const offsetColumn = new ColumnBase();
8162
- offsetColumn.width = offset;
8163
- currentColumns.unshift(offsetColumn);
8164
- }
8165
- this.viewportColumns = new QueryList();
8166
- this.viewportColumns.reset(currentColumns);
8167
- this.columnsStartIdx = start;
8168
- this.columnsEndIdx = end;
8169
- this.columnInfo.columnRangeChange.emit({ start, end, offset });
8170
- if (!range) {
8171
- this.updateColumnViewport(startIdx, endIdx);
8172
- }
8173
- }
8174
8183
  handleColumnScroll() {
8175
8184
  const container = this.container.nativeElement;
8176
8185
  const scrollLeft = container.scrollLeft;
@@ -13774,7 +13783,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
13774
13783
 
13775
13784
  /**
13776
13785
  * Provides keyboard navigation support for TreeList column menu items.
13777
- * Use this directive to manage focus and tab order for custom column menu items. [See example](slug:columnmenu_treelist#customizing-the-content).
13786
+ * Use this directive to manage focus and tab order for custom column menu items ([see example](slug:columnmenu_treelist#customizing-the-content)).
13778
13787
  *
13779
13788
  * @example
13780
13789
  * ```html
@@ -14963,9 +14972,9 @@ class HeaderComponent {
14963
14972
  const reorderDirectionOffset = reorderDirection * rtlMultiplier;
14964
14973
  const newIndex = column.leafIndex + reorderDirectionOffset;
14965
14974
  const normalizedNewIndex = Math.min(Math.max(0, newIndex), columnsCount - 1);
14966
- const gridInstance = this.contextService.treelist;
14967
- gridInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
14968
- gridInstance.columnReorder.emit(new ColumnReorderEvent({
14975
+ const treelistInstance = this.contextService.treelist;
14976
+ treelistInstance.reorderColumn(column, normalizedNewIndex, { before: reorderDirectionOffset < 0 });
14977
+ treelistInstance.columnReorder.emit(new ColumnReorderEvent({
14969
14978
  column,
14970
14979
  newIndex: normalizedNewIndex,
14971
14980
  oldIndex: column.leafIndex
@@ -16852,6 +16861,7 @@ class TreeListComponent {
16852
16861
  ariaRoot;
16853
16862
  dragTargetContainer;
16854
16863
  dropTargetContainer;
16864
+ listComponent;
16855
16865
  get scrollbarWidth() {
16856
16866
  return this.supportService.scrollbarWidth;
16857
16867
  }
@@ -17651,6 +17661,9 @@ class TreeListComponent {
17651
17661
  }
17652
17662
  this.columnOrderChange.emit(args);
17653
17663
  this.columnsContainer.refresh();
17664
+ if (this.virtualColumns) {
17665
+ this.listComponent.updateViewportColumns();
17666
+ }
17654
17667
  this.changeDetectorRef.markForCheck();
17655
17668
  });
17656
17669
  }
@@ -17979,8 +17992,8 @@ class TreeListComponent {
17979
17992
  }
17980
17993
  onColumnRangeChange(range) {
17981
17994
  const viewportColumns = this.viewportColumns = [];
17982
- const leafViewportColumns = this.columnsContainer
17983
- .nonLockedLeafColumns.toArray().slice(range.start, range.end + 1);
17995
+ const columnsArray = this.columnsContainer.nonLockedLeafColumns.toArray();
17996
+ const leafViewportColumns = columnsArray.slice(range.start, range.end + 1);
17984
17997
  for (let idx = 0; idx < leafViewportColumns.length; idx++) {
17985
17998
  let column = leafViewportColumns[idx];
17986
17999
  while (column.parent) {
@@ -17991,7 +18004,8 @@ class TreeListComponent {
17991
18004
  column = toAdd.shift();
17992
18005
  viewportColumns.push(column);
17993
18006
  if (column.isColumnGroup) {
17994
- toAdd.unshift(...column.childrenArray);
18007
+ const children = columnsArray.filter(c => c.parent && c.parent.id === column.id);
18008
+ toAdd.unshift(...children);
17995
18009
  }
17996
18010
  }
17997
18011
  const lastFromGroup = viewportColumns[viewportColumns.length - 1];
@@ -18090,7 +18104,7 @@ class TreeListComponent {
18090
18104
  },
18091
18105
  ContextService,
18092
18106
  RowReorderService
18093
- ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
18107
+ ], queries: [{ propertyName: "columns", predicate: ColumnBase }, { propertyName: "noRecordsTemplateChildren", predicate: NoRecordsTemplateDirective }, { propertyName: "pagerTemplateChildren", predicate: PagerTemplateDirective }, { propertyName: "toolbarTemplateChildren", predicate: ToolbarTemplateDirective }, { propertyName: "columnMenuTemplates", predicate: ColumnMenuTemplateDirective }], viewQueries: [{ propertyName: "lockedHeader", first: true, predicate: ["lockedHeader"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "ariaRoot", first: true, predicate: ["ariaRoot"], descendants: true, static: true }, { propertyName: "dragTargetContainer", first: true, predicate: DragTargetContainerDirective, descendants: true }, { propertyName: "dropTargetContainer", first: true, predicate: DropTargetContainerDirective, descendants: true }, { propertyName: "listComponent", first: true, predicate: ListComponent, descendants: true }, { propertyName: "footer", predicate: ["footer"], descendants: true }], exportAs: ["kendoTreeList"], usesOnChanges: true, ngImport: i0, template: `
18094
18108
  <ng-container kendoTreeListLocalizedMessages
18095
18109
  i18n-noRecords="kendo.treelist.noRecords|The label visible in the TreeList when there are no records"
18096
18110
  noRecords="No records available."
@@ -19244,6 +19258,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19244
19258
  }], dropTargetContainer: [{
19245
19259
  type: ViewChild,
19246
19260
  args: [DropTargetContainerDirective]
19261
+ }], listComponent: [{
19262
+ type: ViewChild,
19263
+ args: [ListComponent]
19247
19264
  }], fetchChildren: [{
19248
19265
  type: Input
19249
19266
  }], hasChildren: [{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-treelist",
3
- "version": "19.2.0-develop.8",
3
+ "version": "19.2.0",
4
4
  "description": "Kendo UI TreeList for Angular - Display hierarchical data in an Angular tree grid view that supports sorting, filtering, paging, and much more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -24,7 +24,7 @@
24
24
  "package": {
25
25
  "productName": "Kendo UI for Angular",
26
26
  "productCode": "KENDOUIANGULAR",
27
- "publishDate": 1751032637,
27
+ "publishDate": 1751463239,
28
28
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
29
29
  }
30
30
  },
@@ -37,26 +37,26 @@
37
37
  "@progress/kendo-data-query": "^1.0.0",
38
38
  "@progress/kendo-drawing": "^1.21.0",
39
39
  "@progress/kendo-licensing": "^1.5.0",
40
- "@progress/kendo-angular-buttons": "19.2.0-develop.8",
41
- "@progress/kendo-angular-common": "19.2.0-develop.8",
42
- "@progress/kendo-angular-dateinputs": "19.2.0-develop.8",
43
- "@progress/kendo-angular-dropdowns": "19.2.0-develop.8",
44
- "@progress/kendo-angular-excel-export": "19.2.0-develop.8",
45
- "@progress/kendo-angular-icons": "19.2.0-develop.8",
46
- "@progress/kendo-angular-inputs": "19.2.0-develop.8",
47
- "@progress/kendo-angular-intl": "19.2.0-develop.8",
48
- "@progress/kendo-angular-l10n": "19.2.0-develop.8",
49
- "@progress/kendo-angular-label": "19.2.0-develop.8",
50
- "@progress/kendo-angular-pager": "19.2.0-develop.8",
51
- "@progress/kendo-angular-pdf-export": "19.2.0-develop.8",
52
- "@progress/kendo-angular-popup": "19.2.0-develop.8",
53
- "@progress/kendo-angular-toolbar": "19.2.0-develop.8",
54
- "@progress/kendo-angular-utils": "19.2.0-develop.8",
40
+ "@progress/kendo-angular-buttons": "19.2.0",
41
+ "@progress/kendo-angular-common": "19.2.0",
42
+ "@progress/kendo-angular-dateinputs": "19.2.0",
43
+ "@progress/kendo-angular-dropdowns": "19.2.0",
44
+ "@progress/kendo-angular-excel-export": "19.2.0",
45
+ "@progress/kendo-angular-icons": "19.2.0",
46
+ "@progress/kendo-angular-inputs": "19.2.0",
47
+ "@progress/kendo-angular-intl": "19.2.0",
48
+ "@progress/kendo-angular-l10n": "19.2.0",
49
+ "@progress/kendo-angular-label": "19.2.0",
50
+ "@progress/kendo-angular-pager": "19.2.0",
51
+ "@progress/kendo-angular-pdf-export": "19.2.0",
52
+ "@progress/kendo-angular-popup": "19.2.0",
53
+ "@progress/kendo-angular-toolbar": "19.2.0",
54
+ "@progress/kendo-angular-utils": "19.2.0",
55
55
  "rxjs": "^6.5.3 || ^7.0.0"
56
56
  },
57
57
  "dependencies": {
58
58
  "tslib": "^2.3.1",
59
- "@progress/kendo-angular-schematics": "19.2.0-develop.8",
59
+ "@progress/kendo-angular-schematics": "19.2.0",
60
60
  "@progress/kendo-common": "^1.0.1",
61
61
  "@progress/kendo-file-saver": "^1.0.0"
62
62
  },
@@ -114,6 +114,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
114
114
  lockedScroll(): void;
115
115
  lockedMousewheel(args: any): void;
116
116
  lockedKeydown(args: any): void;
117
+ updateViewportColumns(range?: any): void;
117
118
  private attachContainerScroll;
118
119
  private createScroller;
119
120
  private scroll;
@@ -126,7 +127,6 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
126
127
  private cleanupScroller;
127
128
  private initResizeService;
128
129
  private syncContainerHeight;
129
- private updateViewportColumns;
130
130
  private handleColumnScroll;
131
131
  private updateColumnViewport;
132
132
  private calculateViewportColumns;
@@ -4,13 +4,13 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'TreeListModule', package: 'treelist', peerDependencies: {
6
6
  // peer dep of the dropdowns
7
- '@progress/kendo-angular-treeview': '19.2.0-develop.8',
7
+ '@progress/kendo-angular-treeview': '19.2.0',
8
8
  // peer dependency of kendo-angular-inputs
9
- '@progress/kendo-angular-dialog': '19.2.0-develop.8',
9
+ '@progress/kendo-angular-dialog': '19.2.0',
10
10
  // peer dependency of kendo-angular-icons
11
11
  '@progress/kendo-svg-icons': '^4.0.0',
12
12
  // peer dependency of kendo-angular-dateinputs
13
- '@progress/kendo-angular-navigation': '19.2.0-develop.8',
13
+ '@progress/kendo-angular-navigation': '19.2.0',
14
14
  } });
15
15
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
16
16
  }
@@ -64,6 +64,7 @@ import { IsSelectedFn } from './selection/is-selected';
64
64
  import { ContextService } from './common/provider.service';
65
65
  import { RowReorderEvent } from './row-reordering/types';
66
66
  import { RowReorderService } from './row-reordering/row-reorder.service';
67
+ import { ListComponent } from './rendering/list.component';
67
68
  import { PagerTemplateDirective } from '@progress/kendo-angular-pager';
68
69
  import { PagerSettings } from './common/pager-settings';
69
70
  import * as i0 from "@angular/core";
@@ -462,6 +463,7 @@ export declare class TreeListComponent implements AfterContentInit, AfterViewIni
462
463
  ariaRoot: ElementRef;
463
464
  dragTargetContainer: DragTargetContainerDirective;
464
465
  dropTargetContainer: DropTargetContainerDirective;
466
+ listComponent: ListComponent;
465
467
  get scrollbarWidth(): number;
466
468
  get headerPadding(): any;
467
469
  columnMenuOptions: any;