@progress/kendo-angular-treelist 16.8.0 → 16.9.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.
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 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 { TemplateRef, OnChanges, OnDestroy } from '@angular/core';
5
+ import { TemplateRef, OnChanges, OnDestroy, ChangeDetectorRef } from '@angular/core';
6
6
  import { LocalizationService } from "@progress/kendo-angular-l10n";
7
7
  import { SVGIcon } from '@progress/kendo-svg-icons';
8
8
  import { SinglePopupService } from '../common/single-popup.service';
@@ -16,6 +16,7 @@ export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
16
16
  protected popupService: SinglePopupService;
17
17
  localization: LocalizationService;
18
18
  service: ColumnMenuService;
19
+ private cdr;
19
20
  /**
20
21
  * @hidden
21
22
  */
@@ -57,7 +58,7 @@ export declare class ColumnMenuComponent implements OnChanges, OnDestroy {
57
58
  moreVerticalIcon: SVGIcon;
58
59
  private popupRef;
59
60
  private closeSubscription;
60
- constructor(popupService: SinglePopupService, localization: LocalizationService, service: ColumnMenuService);
61
+ constructor(popupService: SinglePopupService, localization: LocalizationService, service: ColumnMenuService, cdr: ChangeDetectorRef);
61
62
  /**
62
63
  * @hidden
63
64
  */
@@ -102,6 +102,7 @@ export class ColumnChooserComponent {
102
102
  if (this.popupRef) {
103
103
  this.popupRef.close();
104
104
  this.popupRef = null;
105
+ this.changeDetector.markForCheck();
105
106
  }
106
107
  this.detachClose();
107
108
  }
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2024 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 { Component, Input, TemplateRef, HostBinding } from '@angular/core';
5
+ import { Component, Input, TemplateRef, HostBinding, ChangeDetectorRef } from '@angular/core';
6
6
  import { NgClass, NgTemplateOutlet, NgIf } from '@angular/common';
7
7
  import { LocalizationService } from "@progress/kendo-angular-l10n";
8
8
  import { moreVerticalIcon } from '@progress/kendo-svg-icons';
@@ -24,10 +24,11 @@ const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
24
24
  * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
25
25
  */
26
26
  export class ColumnMenuComponent {
27
- constructor(popupService, localization, service) {
27
+ constructor(popupService, localization, service, cdr) {
28
28
  this.popupService = popupService;
29
29
  this.localization = localization;
30
30
  this.service = service;
31
+ this.cdr = cdr;
31
32
  /**
32
33
  * @hidden
33
34
  */
@@ -107,6 +108,7 @@ export class ColumnMenuComponent {
107
108
  close() {
108
109
  this.popupService.destroy();
109
110
  this.popupRef = null;
111
+ this.cdr.markForCheck();
110
112
  }
111
113
  /**
112
114
  * @hidden
@@ -123,7 +125,7 @@ export class ColumnMenuComponent {
123
125
  this.expandedColumns = false;
124
126
  }
125
127
  }
126
- ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.LocalizationService }, { token: i3.ColumnMenuService }], target: i0.ɵɵFactoryTarget.Component });
128
+ ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: i1.SinglePopupService }, { token: i2.LocalizationService }, { token: i3.ColumnMenuService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
127
129
  ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-treelist-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [ColumnMenuService], usesOnChanges: true, ngImport: i0, template: `
128
130
  <a #anchor
129
131
  class="k-grid-column-menu k-grid-header-menu"
@@ -192,7 +194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
192
194
  standalone: true,
193
195
  imports: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent]
194
196
  }]
195
- }], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.LocalizationService }, { type: i3.ColumnMenuService }]; }, propDecorators: { standalone: [{
197
+ }], ctorParameters: function () { return [{ type: i1.SinglePopupService }, { type: i2.LocalizationService }, { type: i3.ColumnMenuService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { standalone: [{
196
198
  type: HostBinding,
197
199
  args: ['class.k-grid-column-menu-standalone']
198
200
  }, {
@@ -9,7 +9,7 @@ export const packageMetadata = {
9
9
  name: '@progress/kendo-angular-treelist',
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
12
- publishDate: 1724742025,
13
- version: '16.8.0',
12
+ publishDate: 1724927341,
13
+ version: '16.9.0-develop.10',
14
14
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
15
15
  };
@@ -19,7 +19,7 @@ import { SuspendService } from '../scrolling/suspend.service';
19
19
  import { expandColumns, sumColumnWidths } from "../columns/column-common";
20
20
  import { ScrollSyncService } from "../scrolling/scroll-sync.service";
21
21
  import { ResizeService } from "../layout/resize.service";
22
- import { ResizeSensorComponent } from "@progress/kendo-angular-common";
22
+ import { EventsOutsideAngularDirective, ResizeSensorComponent } from "@progress/kendo-angular-common";
23
23
  import { BrowserSupportService } from "../layout/browser-support.service";
24
24
  import { EditService } from '../editing/edit.service';
25
25
  import { NavigationService } from '../navigation/navigation.service';
@@ -81,10 +81,10 @@ const wheelDeltaY = (e) => {
81
81
  }
82
82
  return 0;
83
83
  };
84
- const preventLockedScroll = el => event => {
85
- const delta = wheelDeltaY(event);
86
- const scrollTop = el.scrollTop;
87
- const allowScroll = (scrollTop === 0 && 0 < delta) || (el.scrollHeight <= el.offsetHeight + scrollTop && delta < 0);
84
+ const preventLockedScroll = (args, element) => {
85
+ const delta = wheelDeltaY(args);
86
+ const scrollTop = element.scrollTop;
87
+ const allowScroll = (scrollTop === 0 && 0 < delta) || (element.scrollHeight <= element.offsetHeight + scrollTop && delta < 0);
88
88
  if (!allowScroll) {
89
89
  event.preventDefault();
90
90
  }
@@ -204,6 +204,13 @@ export class ListComponent {
204
204
  this.attachContainerScroll();
205
205
  this.initResizeService();
206
206
  }
207
+ ngAfterViewChecked() {
208
+ const isLocked = this.isLocked;
209
+ if (isLocked && !this.hasLockedContainer) {
210
+ this.syncRowsHeight();
211
+ }
212
+ this.hasLockedContainer = isLocked;
213
+ }
207
214
  syncRowsHeight() {
208
215
  if (this.lockedContainer) {
209
216
  syncRowsHeight(this.lockedTable.nativeElement, this.table.nativeElement);
@@ -228,6 +235,29 @@ export class ListComponent {
228
235
  this.ngZone.runOutsideAngular(this.createScroller.bind(this));
229
236
  }
230
237
  }
238
+ lockedScroll() {
239
+ if (!this.suspendService.scroll) {
240
+ const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
241
+ if (lockedScrollTop !== this.containerScrollTop) {
242
+ this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
243
+ }
244
+ }
245
+ }
246
+ lockedMousewheel(args) {
247
+ if (!args.ctrlKey) {
248
+ preventLockedScroll(args, this.container.nativeElement);
249
+ const scrollDelta = wheelDeltaY(args);
250
+ this.container.nativeElement.scrollTop -= scrollDelta;
251
+ }
252
+ }
253
+ lockedKeydown(args) {
254
+ if (args.keyCode === Keys.PageDown || args.keyCode === Keys.PageUp) {
255
+ const dir = args.keyCode === Keys.PageDown ? 1 : -1;
256
+ const element = this.container.nativeElement;
257
+ element.scrollTop += element.offsetHeight * dir * 0.8;
258
+ args.preventDefault();
259
+ }
260
+ }
231
261
  attachContainerScroll() {
232
262
  if (isUniversal()) {
233
263
  return;
@@ -252,26 +282,6 @@ export class ListComponent {
252
282
  })).subscribe(this.dispatcher));
253
283
  });
254
284
  this.scrollSyncService.registerEmitter(this.container.nativeElement, "body");
255
- if (this.lockedContainer) {
256
- this.ngZone.runOutsideAngular(() => {
257
- this.subscriptions.add(merge(fromEvent(this.lockedContainer.nativeElement, 'mousewheel'), fromEvent(this.lockedContainer.nativeElement, 'DOMMouseScroll')).pipe(filter((event) => !event.ctrlKey), tap(preventLockedScroll(this.container.nativeElement)), map(wheelDeltaY))
258
- .subscribe(x => this.container.nativeElement.scrollTop -= x));
259
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'scroll').pipe(filter(() => !this.suspendService.scroll))
260
- .subscribe(() => {
261
- const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
262
- if (lockedScrollTop !== this.containerScrollTop) {
263
- this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
264
- }
265
- }));
266
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'keydown').pipe(filter((event) => event.keyCode === Keys.PageDown || event.keyCode === Keys.PageUp)).subscribe((event) => {
267
- const dir = event.keyCode === Keys.PageDown ? 1 : -1;
268
- const element = this.container.nativeElement;
269
- element.scrollTop += element.offsetHeight * dir * 0.8;
270
- event.preventDefault();
271
- }));
272
- });
273
- this.syncRowsHeight();
274
- }
275
285
  }
276
286
  createScroller() {
277
287
  this.cleanupScroller();
@@ -515,7 +525,14 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
515
525
  }
516
526
  ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "lockedContainer", first: true, predicate: ["lockedContainer"], descendants: true }, { propertyName: "lockedTable", first: true, predicate: ["lockedTable"], descendants: true }, { propertyName: "resizeSensors", predicate: ResizeSensorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
517
527
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
518
- *ngIf="isLocked" [style.width.px]="lockedWidth">
528
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
529
+ [kendoEventsOutsideAngular]="{
530
+ keydown: lockedKeydown,
531
+ scroll: lockedScroll,
532
+ mousewheel: lockedMousewheel,
533
+ DOMMouseScroll: lockedMousewheel
534
+ }"
535
+ [scope]="this">
519
536
  <div role="presentation" class="k-grid-table-wrap">
520
537
  <table
521
538
  kendoTreeListResizableTable
@@ -596,7 +613,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
596
613
  </div>
597
614
  <div *ngIf="loading" kendoTreeListLoading>
598
615
  </div>
599
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
616
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
600
617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, decorators: [{
601
618
  type: Component,
602
619
  args: [{
@@ -609,7 +626,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
609
626
  selector: 'kendo-treelist-list',
610
627
  template: `
611
628
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
612
- *ngIf="isLocked" [style.width.px]="lockedWidth">
629
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
630
+ [kendoEventsOutsideAngular]="{
631
+ keydown: lockedKeydown,
632
+ scroll: lockedScroll,
633
+ mousewheel: lockedMousewheel,
634
+ DOMMouseScroll: lockedMousewheel
635
+ }"
636
+ [scope]="this">
613
637
  <div role="presentation" class="k-grid-table-wrap">
614
638
  <table
615
639
  kendoTreeListResizableTable
@@ -692,7 +716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
692
716
  </div>
693
717
  `,
694
718
  standalone: true,
695
- imports: [NgIf, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
719
+ imports: [NgIf, EventsOutsideAngularDirective, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
696
720
  }]
697
721
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
698
722
  type: Inject,
@@ -448,7 +448,7 @@ export class TreeListComponent {
448
448
  this.expandStateChange.emit(args);
449
449
  }
450
450
  if (this.rowReorderable) {
451
- this.ngZone.onStable.pipe(take(2)).subscribe(() => {
451
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
452
452
  this.notifyReorderContainers();
453
453
  });
454
454
  }
@@ -1249,6 +1249,11 @@ export class TreeListComponent {
1249
1249
  * [isSelected](#toc-isSelected) callbacks.
1250
1250
  */
1251
1251
  updateView() {
1252
+ if (this.rowReorderable) {
1253
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
1254
+ this.notifyReorderContainers();
1255
+ });
1256
+ }
1252
1257
  this.view.clear();
1253
1258
  this.changeDetectorRef.markForCheck();
1254
1259
  }
@@ -47,8 +47,8 @@ const packageMetadata = {
47
47
  name: '@progress/kendo-angular-treelist',
48
48
  productName: 'Kendo UI for Angular',
49
49
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
50
- publishDate: 1724742025,
51
- version: '16.8.0',
50
+ publishDate: 1724927341,
51
+ version: '16.9.0-develop.10',
52
52
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
53
53
  };
54
54
 
@@ -8668,10 +8668,10 @@ const wheelDeltaY = (e) => {
8668
8668
  }
8669
8669
  return 0;
8670
8670
  };
8671
- const preventLockedScroll = el => event => {
8672
- const delta = wheelDeltaY(event);
8673
- const scrollTop = el.scrollTop;
8674
- const allowScroll = (scrollTop === 0 && 0 < delta) || (el.scrollHeight <= el.offsetHeight + scrollTop && delta < 0);
8671
+ const preventLockedScroll = (args, element) => {
8672
+ const delta = wheelDeltaY(args);
8673
+ const scrollTop = element.scrollTop;
8674
+ const allowScroll = (scrollTop === 0 && 0 < delta) || (element.scrollHeight <= element.offsetHeight + scrollTop && delta < 0);
8675
8675
  if (!allowScroll) {
8676
8676
  event.preventDefault();
8677
8677
  }
@@ -8791,6 +8791,13 @@ class ListComponent {
8791
8791
  this.attachContainerScroll();
8792
8792
  this.initResizeService();
8793
8793
  }
8794
+ ngAfterViewChecked() {
8795
+ const isLocked = this.isLocked;
8796
+ if (isLocked && !this.hasLockedContainer) {
8797
+ this.syncRowsHeight();
8798
+ }
8799
+ this.hasLockedContainer = isLocked;
8800
+ }
8794
8801
  syncRowsHeight() {
8795
8802
  if (this.lockedContainer) {
8796
8803
  syncRowsHeight(this.lockedTable.nativeElement, this.table.nativeElement);
@@ -8815,6 +8822,29 @@ class ListComponent {
8815
8822
  this.ngZone.runOutsideAngular(this.createScroller.bind(this));
8816
8823
  }
8817
8824
  }
8825
+ lockedScroll() {
8826
+ if (!this.suspendService.scroll) {
8827
+ const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
8828
+ if (lockedScrollTop !== this.containerScrollTop) {
8829
+ this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
8830
+ }
8831
+ }
8832
+ }
8833
+ lockedMousewheel(args) {
8834
+ if (!args.ctrlKey) {
8835
+ preventLockedScroll(args, this.container.nativeElement);
8836
+ const scrollDelta = wheelDeltaY(args);
8837
+ this.container.nativeElement.scrollTop -= scrollDelta;
8838
+ }
8839
+ }
8840
+ lockedKeydown(args) {
8841
+ if (args.keyCode === Keys.PageDown || args.keyCode === Keys.PageUp) {
8842
+ const dir = args.keyCode === Keys.PageDown ? 1 : -1;
8843
+ const element = this.container.nativeElement;
8844
+ element.scrollTop += element.offsetHeight * dir * 0.8;
8845
+ args.preventDefault();
8846
+ }
8847
+ }
8818
8848
  attachContainerScroll() {
8819
8849
  if (isUniversal()) {
8820
8850
  return;
@@ -8839,26 +8869,6 @@ class ListComponent {
8839
8869
  })).subscribe(this.dispatcher));
8840
8870
  });
8841
8871
  this.scrollSyncService.registerEmitter(this.container.nativeElement, "body");
8842
- if (this.lockedContainer) {
8843
- this.ngZone.runOutsideAngular(() => {
8844
- this.subscriptions.add(merge(fromEvent(this.lockedContainer.nativeElement, 'mousewheel'), fromEvent(this.lockedContainer.nativeElement, 'DOMMouseScroll')).pipe(filter((event) => !event.ctrlKey), tap(preventLockedScroll(this.container.nativeElement)), map(wheelDeltaY))
8845
- .subscribe(x => this.container.nativeElement.scrollTop -= x));
8846
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'scroll').pipe(filter(() => !this.suspendService.scroll))
8847
- .subscribe(() => {
8848
- const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
8849
- if (lockedScrollTop !== this.containerScrollTop) {
8850
- this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
8851
- }
8852
- }));
8853
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'keydown').pipe(filter((event) => event.keyCode === Keys.PageDown || event.keyCode === Keys.PageUp)).subscribe((event) => {
8854
- const dir = event.keyCode === Keys.PageDown ? 1 : -1;
8855
- const element = this.container.nativeElement;
8856
- element.scrollTop += element.offsetHeight * dir * 0.8;
8857
- event.preventDefault();
8858
- }));
8859
- });
8860
- this.syncRowsHeight();
8861
- }
8862
8872
  }
8863
8873
  createScroller() {
8864
8874
  this.cleanupScroller();
@@ -9102,7 +9112,14 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
9102
9112
  }
9103
9113
  ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "lockedContainer", first: true, predicate: ["lockedContainer"], descendants: true }, { propertyName: "lockedTable", first: true, predicate: ["lockedTable"], descendants: true }, { propertyName: "resizeSensors", predicate: ResizeSensorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
9104
9114
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
9105
- *ngIf="isLocked" [style.width.px]="lockedWidth">
9115
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
9116
+ [kendoEventsOutsideAngular]="{
9117
+ keydown: lockedKeydown,
9118
+ scroll: lockedScroll,
9119
+ mousewheel: lockedMousewheel,
9120
+ DOMMouseScroll: lockedMousewheel
9121
+ }"
9122
+ [scope]="this">
9106
9123
  <div role="presentation" class="k-grid-table-wrap">
9107
9124
  <table
9108
9125
  kendoTreeListResizableTable
@@ -9183,7 +9200,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
9183
9200
  </div>
9184
9201
  <div *ngIf="loading" kendoTreeListLoading>
9185
9202
  </div>
9186
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
9203
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
9187
9204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, decorators: [{
9188
9205
  type: Component,
9189
9206
  args: [{
@@ -9196,7 +9213,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
9196
9213
  selector: 'kendo-treelist-list',
9197
9214
  template: `
9198
9215
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
9199
- *ngIf="isLocked" [style.width.px]="lockedWidth">
9216
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
9217
+ [kendoEventsOutsideAngular]="{
9218
+ keydown: lockedKeydown,
9219
+ scroll: lockedScroll,
9220
+ mousewheel: lockedMousewheel,
9221
+ DOMMouseScroll: lockedMousewheel
9222
+ }"
9223
+ [scope]="this">
9200
9224
  <div role="presentation" class="k-grid-table-wrap">
9201
9225
  <table
9202
9226
  kendoTreeListResizableTable
@@ -9279,7 +9303,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
9279
9303
  </div>
9280
9304
  `,
9281
9305
  standalone: true,
9282
- imports: [NgIf, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
9306
+ imports: [NgIf, EventsOutsideAngularDirective, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
9283
9307
  }]
9284
9308
  }], ctorParameters: function () {
9285
9309
  return [{ type: undefined, decorators: [{
@@ -13602,10 +13626,11 @@ const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
13602
13626
  * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
13603
13627
  */
13604
13628
  class ColumnMenuComponent {
13605
- constructor(popupService, localization, service) {
13629
+ constructor(popupService, localization, service, cdr) {
13606
13630
  this.popupService = popupService;
13607
13631
  this.localization = localization;
13608
13632
  this.service = service;
13633
+ this.cdr = cdr;
13609
13634
  /**
13610
13635
  * @hidden
13611
13636
  */
@@ -13685,6 +13710,7 @@ class ColumnMenuComponent {
13685
13710
  close() {
13686
13711
  this.popupService.destroy();
13687
13712
  this.popupRef = null;
13713
+ this.cdr.markForCheck();
13688
13714
  }
13689
13715
  /**
13690
13716
  * @hidden
@@ -13701,7 +13727,7 @@ class ColumnMenuComponent {
13701
13727
  this.expandedColumns = false;
13702
13728
  }
13703
13729
  }
13704
- ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: SinglePopupService }, { token: i1$1.LocalizationService }, { token: ColumnMenuService }], target: i0.ɵɵFactoryTarget.Component });
13730
+ ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: SinglePopupService }, { token: i1$1.LocalizationService }, { token: ColumnMenuService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13705
13731
  ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-treelist-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [ColumnMenuService], usesOnChanges: true, ngImport: i0, template: `
13706
13732
  <a #anchor
13707
13733
  class="k-grid-column-menu k-grid-header-menu"
@@ -13770,7 +13796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
13770
13796
  standalone: true,
13771
13797
  imports: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent]
13772
13798
  }]
13773
- }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: i1$1.LocalizationService }, { type: ColumnMenuService }]; }, propDecorators: { standalone: [{
13799
+ }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: i1$1.LocalizationService }, { type: ColumnMenuService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { standalone: [{
13774
13800
  type: HostBinding,
13775
13801
  args: ['class.k-grid-column-menu-standalone']
13776
13802
  }, {
@@ -15169,7 +15195,7 @@ class TreeListComponent {
15169
15195
  this.expandStateChange.emit(args);
15170
15196
  }
15171
15197
  if (this.rowReorderable) {
15172
- this.ngZone.onStable.pipe(take(2)).subscribe(() => {
15198
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
15173
15199
  this.notifyReorderContainers();
15174
15200
  });
15175
15201
  }
@@ -15971,6 +15997,11 @@ class TreeListComponent {
15971
15997
  * [isSelected](#toc-isSelected) callbacks.
15972
15998
  */
15973
15999
  updateView() {
16000
+ if (this.rowReorderable) {
16001
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
16002
+ this.notifyReorderContainers();
16003
+ });
16004
+ }
15974
16005
  this.view.clear();
15975
16006
  this.changeDetectorRef.markForCheck();
15976
16007
  }
@@ -20063,6 +20094,7 @@ class ColumnChooserComponent {
20063
20094
  if (this.popupRef) {
20064
20095
  this.popupRef.close();
20065
20096
  this.popupRef = null;
20097
+ this.changeDetector.markForCheck();
20066
20098
  }
20067
20099
  this.detachClose();
20068
20100
  }
@@ -47,8 +47,8 @@ const packageMetadata = {
47
47
  name: '@progress/kendo-angular-treelist',
48
48
  productName: 'Kendo UI for Angular',
49
49
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
50
- publishDate: 1724742025,
51
- version: '16.8.0',
50
+ publishDate: 1724927341,
51
+ version: '16.9.0-develop.10',
52
52
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
53
53
  };
54
54
 
@@ -8632,10 +8632,10 @@ const wheelDeltaY = (e) => {
8632
8632
  }
8633
8633
  return 0;
8634
8634
  };
8635
- const preventLockedScroll = el => event => {
8636
- const delta = wheelDeltaY(event);
8637
- const scrollTop = el.scrollTop;
8638
- const allowScroll = (scrollTop === 0 && 0 < delta) || (el.scrollHeight <= el.offsetHeight + scrollTop && delta < 0);
8635
+ const preventLockedScroll = (args, element) => {
8636
+ const delta = wheelDeltaY(args);
8637
+ const scrollTop = element.scrollTop;
8638
+ const allowScroll = (scrollTop === 0 && 0 < delta) || (element.scrollHeight <= element.offsetHeight + scrollTop && delta < 0);
8639
8639
  if (!allowScroll) {
8640
8640
  event.preventDefault();
8641
8641
  }
@@ -8755,6 +8755,13 @@ class ListComponent {
8755
8755
  this.attachContainerScroll();
8756
8756
  this.initResizeService();
8757
8757
  }
8758
+ ngAfterViewChecked() {
8759
+ const isLocked = this.isLocked;
8760
+ if (isLocked && !this.hasLockedContainer) {
8761
+ this.syncRowsHeight();
8762
+ }
8763
+ this.hasLockedContainer = isLocked;
8764
+ }
8758
8765
  syncRowsHeight() {
8759
8766
  if (this.lockedContainer) {
8760
8767
  syncRowsHeight(this.lockedTable.nativeElement, this.table.nativeElement);
@@ -8779,6 +8786,29 @@ class ListComponent {
8779
8786
  this.ngZone.runOutsideAngular(this.createScroller.bind(this));
8780
8787
  }
8781
8788
  }
8789
+ lockedScroll() {
8790
+ if (!this.suspendService.scroll) {
8791
+ const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
8792
+ if (lockedScrollTop !== this.containerScrollTop) {
8793
+ this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
8794
+ }
8795
+ }
8796
+ }
8797
+ lockedMousewheel(args) {
8798
+ if (!args.ctrlKey) {
8799
+ preventLockedScroll(args, this.container.nativeElement);
8800
+ const scrollDelta = wheelDeltaY(args);
8801
+ this.container.nativeElement.scrollTop -= scrollDelta;
8802
+ }
8803
+ }
8804
+ lockedKeydown(args) {
8805
+ if (args.keyCode === Keys.PageDown || args.keyCode === Keys.PageUp) {
8806
+ const dir = args.keyCode === Keys.PageDown ? 1 : -1;
8807
+ const element = this.container.nativeElement;
8808
+ element.scrollTop += element.offsetHeight * dir * 0.8;
8809
+ args.preventDefault();
8810
+ }
8811
+ }
8782
8812
  attachContainerScroll() {
8783
8813
  if (isUniversal()) {
8784
8814
  return;
@@ -8803,26 +8833,6 @@ class ListComponent {
8803
8833
  })).subscribe(this.dispatcher));
8804
8834
  });
8805
8835
  this.scrollSyncService.registerEmitter(this.container.nativeElement, "body");
8806
- if (this.lockedContainer) {
8807
- this.ngZone.runOutsideAngular(() => {
8808
- this.subscriptions.add(merge(fromEvent(this.lockedContainer.nativeElement, 'mousewheel'), fromEvent(this.lockedContainer.nativeElement, 'DOMMouseScroll')).pipe(filter((event) => !event.ctrlKey), tap(preventLockedScroll(this.container.nativeElement)), map(wheelDeltaY))
8809
- .subscribe(x => this.container.nativeElement.scrollTop -= x));
8810
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'scroll').pipe(filter(() => !this.suspendService.scroll))
8811
- .subscribe(() => {
8812
- const lockedScrollTop = this.lockedContainer.nativeElement.scrollTop;
8813
- if (lockedScrollTop !== this.containerScrollTop) {
8814
- this.container.nativeElement.scrollTop = this.containerScrollTop = lockedScrollTop;
8815
- }
8816
- }));
8817
- this.subscriptions.add(fromEvent(this.lockedContainer.nativeElement, 'keydown').pipe(filter((event) => event.keyCode === Keys.PageDown || event.keyCode === Keys.PageUp)).subscribe((event) => {
8818
- const dir = event.keyCode === Keys.PageDown ? 1 : -1;
8819
- const element = this.container.nativeElement;
8820
- element.scrollTop += element.offsetHeight * dir * 0.8;
8821
- event.preventDefault();
8822
- }));
8823
- });
8824
- this.syncRowsHeight();
8825
- }
8826
8836
  }
8827
8837
  createScroller() {
8828
8838
  this.cleanupScroller();
@@ -9066,7 +9076,14 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
9066
9076
  }
9067
9077
  ], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "table", first: true, predicate: ["table"], descendants: true, static: true }, { propertyName: "lockedContainer", first: true, predicate: ["lockedContainer"], descendants: true }, { propertyName: "lockedTable", first: true, predicate: ["lockedTable"], descendants: true }, { propertyName: "resizeSensors", predicate: ResizeSensorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
9068
9078
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
9069
- *ngIf="isLocked" [style.width.px]="lockedWidth">
9079
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
9080
+ [kendoEventsOutsideAngular]="{
9081
+ keydown: lockedKeydown,
9082
+ scroll: lockedScroll,
9083
+ mousewheel: lockedMousewheel,
9084
+ DOMMouseScroll: lockedMousewheel
9085
+ }"
9086
+ [scope]="this">
9070
9087
  <div role="presentation" class="k-grid-table-wrap">
9071
9088
  <table
9072
9089
  kendoTreeListResizableTable
@@ -9147,7 +9164,7 @@ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
9147
9164
  </div>
9148
9165
  <div *ngIf="loading" kendoTreeListLoading>
9149
9166
  </div>
9150
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
9167
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }, { kind: "directive", type: TableDirective, selector: "[kendoTreeListResizableTable]", inputs: ["locked", "virtualColumns"] }, { kind: "component", type: ColGroupComponent, selector: "[kendoTreeListColGroup]", inputs: ["columns"] }, { kind: "component", type: TableBodyComponent, selector: "[kendoTreeListTableBody]", inputs: ["columns", "allColumns", "noRecordsTemplate", "view", "skip", "filterable", "noRecordsText", "isLocked", "lockedColumnsCount", "totalColumnsCount", "virtualColumns", "expandIcons", "trackBy", "totalColumns", "rowClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: ResizableContainerDirective, selector: "[kendoTreeListResizableContainer]", inputs: ["lockedWidth", "kendoTreeListResizableContainer"] }, { kind: "component", type: LoadingComponent, selector: "[kendoTreeListLoading]" }] });
9151
9168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListComponent, decorators: [{
9152
9169
  type: Component,
9153
9170
  args: [{
@@ -9160,7 +9177,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
9160
9177
  selector: 'kendo-treelist-list',
9161
9178
  template: `
9162
9179
  <div #lockedContainer class="k-grid-content-locked" role="presentation"
9163
- *ngIf="isLocked" [style.width.px]="lockedWidth">
9180
+ *ngIf="isLocked" [style.width.px]="lockedWidth"
9181
+ [kendoEventsOutsideAngular]="{
9182
+ keydown: lockedKeydown,
9183
+ scroll: lockedScroll,
9184
+ mousewheel: lockedMousewheel,
9185
+ DOMMouseScroll: lockedMousewheel
9186
+ }"
9187
+ [scope]="this">
9164
9188
  <div role="presentation" class="k-grid-table-wrap">
9165
9189
  <table
9166
9190
  kendoTreeListResizableTable
@@ -9243,7 +9267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
9243
9267
  </div>
9244
9268
  `,
9245
9269
  standalone: true,
9246
- imports: [NgIf, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
9270
+ imports: [NgIf, EventsOutsideAngularDirective, TableDirective, ColGroupComponent, TableBodyComponent, ResizeSensorComponent, ResizableContainerDirective, LoadingComponent]
9247
9271
  }]
9248
9272
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
9249
9273
  type: Inject,
@@ -13551,10 +13575,11 @@ const POPUP_CLASSES = 'k-grid-columnmenu-popup k-column-menu';
13551
13575
  * Represents the [column menu]({% slug columnmenu_treelist %}) component of the TreeList.
13552
13576
  */
13553
13577
  class ColumnMenuComponent {
13554
- constructor(popupService, localization, service) {
13578
+ constructor(popupService, localization, service, cdr) {
13555
13579
  this.popupService = popupService;
13556
13580
  this.localization = localization;
13557
13581
  this.service = service;
13582
+ this.cdr = cdr;
13558
13583
  /**
13559
13584
  * @hidden
13560
13585
  */
@@ -13634,6 +13659,7 @@ class ColumnMenuComponent {
13634
13659
  close() {
13635
13660
  this.popupService.destroy();
13636
13661
  this.popupRef = null;
13662
+ this.cdr.markForCheck();
13637
13663
  }
13638
13664
  /**
13639
13665
  * @hidden
@@ -13650,7 +13676,7 @@ class ColumnMenuComponent {
13650
13676
  this.expandedColumns = false;
13651
13677
  }
13652
13678
  }
13653
- ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: SinglePopupService }, { token: i1$1.LocalizationService }, { token: ColumnMenuService }], target: i0.ɵɵFactoryTarget.Component });
13679
+ ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: SinglePopupService }, { token: i1$1.LocalizationService }, { token: ColumnMenuService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13654
13680
  ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-treelist-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [ColumnMenuService], usesOnChanges: true, ngImport: i0, template: `
13655
13681
  <a #anchor
13656
13682
  class="k-grid-column-menu k-grid-header-menu"
@@ -13719,7 +13745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
13719
13745
  standalone: true,
13720
13746
  imports: [NgClass, IconWrapperComponent, NgTemplateOutlet, NgIf, ColumnMenuSortComponent, ColumnMenuLockComponent, ColumnMenuChooserComponent, ColumnMenuFilterComponent]
13721
13747
  }]
13722
- }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: i1$1.LocalizationService }, { type: ColumnMenuService }]; }, propDecorators: { standalone: [{
13748
+ }], ctorParameters: function () { return [{ type: SinglePopupService }, { type: i1$1.LocalizationService }, { type: ColumnMenuService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { standalone: [{
13723
13749
  type: HostBinding,
13724
13750
  args: ['class.k-grid-column-menu-standalone']
13725
13751
  }, {
@@ -15118,7 +15144,7 @@ class TreeListComponent {
15118
15144
  this.expandStateChange.emit(args);
15119
15145
  }
15120
15146
  if (this.rowReorderable) {
15121
- this.ngZone.onStable.pipe(take(2)).subscribe(() => {
15147
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
15122
15148
  this.notifyReorderContainers();
15123
15149
  });
15124
15150
  }
@@ -15919,6 +15945,11 @@ class TreeListComponent {
15919
15945
  * [isSelected](#toc-isSelected) callbacks.
15920
15946
  */
15921
15947
  updateView() {
15948
+ if (this.rowReorderable) {
15949
+ this.ngZone.onStable.pipe(take(1)).subscribe(() => {
15950
+ this.notifyReorderContainers();
15951
+ });
15952
+ }
15922
15953
  this.view.clear();
15923
15954
  this.changeDetectorRef.markForCheck();
15924
15955
  }
@@ -19998,6 +20029,7 @@ class ColumnChooserComponent {
19998
20029
  if (this.popupRef) {
19999
20030
  this.popupRef.close();
20000
20031
  this.popupRef = null;
20032
+ this.changeDetector.markForCheck();
20001
20033
  }
20002
20034
  this.detachClose();
20003
20035
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-treelist",
3
- "version": "16.8.0",
3
+ "version": "16.9.0-develop.10",
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",
@@ -31,24 +31,24 @@
31
31
  "@progress/kendo-data-query": "^1.0.0",
32
32
  "@progress/kendo-drawing": "^1.19.0",
33
33
  "@progress/kendo-licensing": "^1.0.2",
34
- "@progress/kendo-angular-buttons": "16.8.0",
35
- "@progress/kendo-angular-common": "16.8.0",
36
- "@progress/kendo-angular-dateinputs": "16.8.0",
37
- "@progress/kendo-angular-dropdowns": "16.8.0",
38
- "@progress/kendo-angular-excel-export": "16.8.0",
39
- "@progress/kendo-angular-icons": "16.8.0",
40
- "@progress/kendo-angular-inputs": "16.8.0",
41
- "@progress/kendo-angular-intl": "16.8.0",
42
- "@progress/kendo-angular-l10n": "16.8.0",
43
- "@progress/kendo-angular-label": "16.8.0",
44
- "@progress/kendo-angular-pdf-export": "16.8.0",
45
- "@progress/kendo-angular-popup": "16.8.0",
46
- "@progress/kendo-angular-utils": "16.8.0",
34
+ "@progress/kendo-angular-buttons": "16.9.0-develop.10",
35
+ "@progress/kendo-angular-common": "16.9.0-develop.10",
36
+ "@progress/kendo-angular-dateinputs": "16.9.0-develop.10",
37
+ "@progress/kendo-angular-dropdowns": "16.9.0-develop.10",
38
+ "@progress/kendo-angular-excel-export": "16.9.0-develop.10",
39
+ "@progress/kendo-angular-icons": "16.9.0-develop.10",
40
+ "@progress/kendo-angular-inputs": "16.9.0-develop.10",
41
+ "@progress/kendo-angular-intl": "16.9.0-develop.10",
42
+ "@progress/kendo-angular-l10n": "16.9.0-develop.10",
43
+ "@progress/kendo-angular-label": "16.9.0-develop.10",
44
+ "@progress/kendo-angular-pdf-export": "16.9.0-develop.10",
45
+ "@progress/kendo-angular-popup": "16.9.0-develop.10",
46
+ "@progress/kendo-angular-utils": "16.9.0-develop.10",
47
47
  "rxjs": "^6.5.3 || ^7.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.1",
51
- "@progress/kendo-angular-schematics": "16.8.0",
51
+ "@progress/kendo-angular-schematics": "16.9.0-develop.10",
52
52
  "@progress/kendo-common": "^0.2.0",
53
53
  "@progress/kendo-file-saver": "^1.0.0"
54
54
  },
@@ -99,6 +99,7 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
99
99
  get isLocked(): boolean;
100
100
  private rtl;
101
101
  private columnUpdateFrame;
102
+ private hasLockedContainer;
102
103
  constructor(scrollerFactory: any, changeNotification: ChangeNotificationService, suspendService: SuspendService, ngZone: NgZone, renderer: Renderer2, scrollSyncService: ScrollSyncService, resizeService: ResizeService, editService: EditService, supportService: BrowserSupportService, navigationService: NavigationService, scrollRequestService: ScrollRequestService, localization: LocalizationService, columnResizingService: ColumnResizingService, changeDetector: ChangeDetectorRef, pdfService: PDFService, columnInfo: ColumnInfoService);
103
104
  ngOnInit(): void;
104
105
  ngOnChanges(changes: {
@@ -106,9 +107,13 @@ export declare class ListComponent implements OnInit, OnDestroy, AfterViewInit,
106
107
  }): void;
107
108
  ngDoCheck(): void;
108
109
  ngAfterViewInit(): void;
110
+ ngAfterViewChecked(): void;
109
111
  syncRowsHeight(): void;
110
112
  ngOnDestroy(): void;
111
113
  init(): void;
114
+ lockedScroll(): void;
115
+ lockedMousewheel(args: any): void;
116
+ lockedKeydown(args: any): void;
112
117
  private attachContainerScroll;
113
118
  private createScroller;
114
119
  private scroll;
@@ -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': '16.8.0',
7
+ '@progress/kendo-angular-treeview': '16.9.0-develop.10',
8
8
  // peer dependency of kendo-angular-inputs
9
- '@progress/kendo-angular-dialog': '16.8.0',
9
+ '@progress/kendo-angular-dialog': '16.9.0-develop.10',
10
10
  // peer dependency of kendo-angular-icons
11
11
  '@progress/kendo-svg-icons': '^3.0.0',
12
12
  // peer dependency of kendo-angular-dateinputs
13
- '@progress/kendo-angular-navigation': '16.8.0',
13
+ '@progress/kendo-angular-navigation': '16.9.0-develop.10',
14
14
  } });
15
15
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
16
16
  }