@progress/kendo-angular-grid 21.0.0-develop.24 → 21.0.0-develop.26

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 © 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 { Component, Input, ContentChildren, QueryList, NgZone } from '@angular/core';
5
+ import { Component, Input, ContentChildren, QueryList, NgZone, EventEmitter, Output } from '@angular/core';
6
6
  import { Observable } from 'rxjs';
7
7
  import { take } from 'rxjs/operators';
8
8
  import { saveAs } from '@progress/kendo-file-saver';
@@ -116,6 +116,10 @@ export class ExcelComponent {
116
116
  * Specifies if groups in the Excel file are collapsible.
117
117
  */
118
118
  collapsible;
119
+ /**
120
+ * @hidden
121
+ */
122
+ fileCreated = new EventEmitter();
119
123
  /**
120
124
  * @hidden
121
125
  */
@@ -178,10 +182,11 @@ export class ExcelComponent {
178
182
  forceProxy: this.forceProxy,
179
183
  proxyURL: this.proxyURL
180
184
  });
185
+ this.fileCreated.emit();
181
186
  });
182
187
  }
183
188
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelComponent, deps: [{ token: i1.ExcelService }, { token: i2.ContextService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
184
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExcelComponent, isStandalone: true, selector: "kendo-grid-excel", inputs: { fileName: "fileName", filterable: "filterable", creator: "creator", date: "date", forceProxy: "forceProxy", proxyURL: "proxyURL", fetchData: "fetchData", paddingCellOptions: "paddingCellOptions", headerPaddingCellOptions: "headerPaddingCellOptions", collapsible: "collapsible" }, queries: [{ propertyName: "columns", predicate: ColumnBase, descendants: true }], ngImport: i0, template: ``, isInline: true });
189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExcelComponent, isStandalone: true, selector: "kendo-grid-excel", inputs: { fileName: "fileName", filterable: "filterable", creator: "creator", date: "date", forceProxy: "forceProxy", proxyURL: "proxyURL", fetchData: "fetchData", paddingCellOptions: "paddingCellOptions", headerPaddingCellOptions: "headerPaddingCellOptions", collapsible: "collapsible" }, outputs: { fileCreated: "fileCreated" }, queries: [{ propertyName: "columns", predicate: ColumnBase, descendants: true }], ngImport: i0, template: ``, isInline: true });
185
190
  }
186
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelComponent, decorators: [{
187
192
  type: Component,
@@ -210,6 +215,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
210
215
  type: Input
211
216
  }], collapsible: [{
212
217
  type: Input
218
+ }], fileCreated: [{
219
+ type: Output
213
220
  }], columns: [{
214
221
  type: ContentChildren,
215
222
  args: [ColumnBase, { descendants: true }]
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1762766484,
14
- version: '21.0.0-develop.24',
13
+ publishDate: 1762796534,
14
+ version: '21.0.0-develop.26',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -305,17 +305,24 @@ export class ListComponent {
305
305
  const previousTotal = this.allItems.length;
306
306
  this.allItems = this.dataMappingService.dataMapper(this.data, this.nonLockedColumnsToRender, this.lockedLeafColumns, this.detailTemplate, this.showFooter);
307
307
  const totalChanged = previousTotal !== this.allItems.length;
308
+ const totalIncreased = this.allItems.length > previousTotal;
308
309
  if (this.totalIsAllItems && totalChanged) {
309
310
  this.scroller.reset(this.skipScroll);
310
311
  this.scroller.total = this.allItems.length;
311
312
  this.itemsToRender = this.allItems.slice(this.scroller.virtualSkip, this.scroller.virtualSkip + this.virtualPageSize);
312
313
  }
313
314
  else if (totalChanged && !this.ctx.grid?.group?.length) {
314
- this.scroller.reset(this.skipScroll);
315
- this.scroller.total = this.total;
316
- // Clear flags to allow viewport update on next change detection
317
- this.skipScroll = false;
318
- this.scroller.scrollSyncing = false;
315
+ // Preserve scroll position for non-virtual endless scrolling (scrollBottom event)
316
+ if (!this.isVirtual && totalIncreased) {
317
+ this.scroller.total = this.total;
318
+ }
319
+ else {
320
+ this.scroller.reset(this.skipScroll);
321
+ this.scroller.total = this.total;
322
+ // Clear flags to allow viewport update on next change detection (virtual scrolling fix)
323
+ this.skipScroll = false;
324
+ this.scroller.scrollSyncing = false;
325
+ }
319
326
  }
320
327
  if (!this.isVirtual || (this.isVirtual && !this.ctx.grid?.pageable && !this.ctx.grid?.group?.length)) {
321
328
  this.itemsToRender = this.allItems;
@@ -2,7 +2,7 @@
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 { Component, ViewChild } from '@angular/core';
5
+ import { Component, ViewChild, NgZone } from '@angular/core';
6
6
  import { AIPromptComponent, OutputViewComponent, PromptViewComponent, AIPromptCustomMessagesComponent, AIPromptOutputTemplateDirective, AIPromptOutputBodyTemplateDirective } from '@progress/kendo-angular-conversational-ui';
7
7
  import { HttpClient, HttpRequest } from '@angular/common/http';
8
8
  import { ContextService } from './../../../../common/provider.service';
@@ -24,6 +24,7 @@ export class AiAssistantComponent {
24
24
  http;
25
25
  ctx;
26
26
  columnInfoService;
27
+ zone;
27
28
  aiPrompt;
28
29
  activeView = 0;
29
30
  requestUrl;
@@ -43,10 +44,11 @@ export class AiAssistantComponent {
43
44
  // nested tree representing the actual Grid column components sent to the AI service
44
45
  columnsTree = [];
45
46
  idCounter = 0;
46
- constructor(http, ctx, columnInfoService) {
47
+ constructor(http, ctx, columnInfoService, zone) {
47
48
  this.http = http;
48
49
  this.ctx = ctx;
49
50
  this.columnInfoService = columnInfoService;
51
+ this.zone = zone;
50
52
  }
51
53
  ngAfterViewInit() {
52
54
  // Build a nested GridColumnDescriptor tree based on the actual Grid columns structure.
@@ -400,7 +402,7 @@ export class AiAssistantComponent {
400
402
  break;
401
403
  }
402
404
  case 'GridExportPDF': {
403
- this.runExportWithFileName(this.ctx.pdfComponent, cmd.fileName, () => this.ctx.grid.saveAsPDF());
405
+ this.runExportWithFileName(this.ctx.pdfComponent, cmd.fileName, () => this.ctx.grid.emitPDFExportEvent());
404
406
  break;
405
407
  }
406
408
  default:
@@ -410,21 +412,22 @@ export class AiAssistantComponent {
410
412
  });
411
413
  }
412
414
  runExportWithFileName(component, fileName, action) {
413
- if (!component) {
414
- action();
415
- return;
416
- }
417
- const hasComponentFileName = isPresent(component.fileName) && component.fileName !== '';
418
- if (hasComponentFileName || !fileName) {
415
+ if (!component || !fileName) {
419
416
  action();
420
417
  return;
421
418
  }
422
419
  const previousFileName = component.fileName;
423
420
  component.fileName = fileName;
424
- try {
425
- action();
426
- }
427
- finally {
421
+ action();
422
+ const isExcel = component === this.ctx.excelComponent;
423
+ if (isExcel) {
424
+ this.zone.runOutsideAngular(() => {
425
+ this.ctx.excelComponent.fileCreated.subscribe(() => {
426
+ component.fileName = previousFileName;
427
+ });
428
+ });
429
+ }
430
+ else {
428
431
  component.fileName = previousFileName;
429
432
  }
430
433
  }
@@ -697,7 +700,7 @@ export class AiAssistantComponent {
697
700
  this.ctx.grid.filterChange.next(mergedFilter);
698
701
  }
699
702
  }
700
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1.HttpClient }, { token: i2.ContextService }, { token: i3.ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
703
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1.HttpClient }, { token: i2.ContextService }, { token: i3.ColumnInfoService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
701
704
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AiAssistantComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aiPrompt", first: true, predicate: AIPromptComponent, descendants: true }], ngImport: i0, template: `
702
705
  <kendo-aiprompt
703
706
  #aiPrompt
@@ -793,7 +796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
793
796
  </kendo-aiprompt>
794
797
  `
795
798
  }]
796
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ContextService }, { type: i3.ColumnInfoService }], propDecorators: { aiPrompt: [{
799
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ContextService }, { type: i3.ColumnInfoService }, { type: i0.NgZone }], propDecorators: { aiPrompt: [{
797
800
  type: ViewChild,
798
801
  args: [AIPromptComponent]
799
802
  }] } });
@@ -2,7 +2,7 @@
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, QueryList, NgZone } from '@angular/core';
5
+ import { OnDestroy, QueryList, NgZone, EventEmitter } from '@angular/core';
6
6
  import { ExcelExportData, ColumnBase, CellOptions } from '@progress/kendo-angular-excel-export';
7
7
  import { GridComponent } from '../grid.component';
8
8
  import { ExcelService } from './excel.service';
@@ -69,6 +69,10 @@ export declare class ExcelComponent implements OnDestroy {
69
69
  * Specifies if groups in the Excel file are collapsible.
70
70
  */
71
71
  collapsible: boolean;
72
+ /**
73
+ * @hidden
74
+ */
75
+ fileCreated: EventEmitter<undefined>;
72
76
  /**
73
77
  * @hidden
74
78
  */
@@ -81,5 +85,5 @@ export declare class ExcelComponent implements OnDestroy {
81
85
  protected exportData(component: GridComponent, result: ExcelExportData): void;
82
86
  protected saveFile(options: any): void;
83
87
  static ɵfac: i0.ɵɵFactoryDeclaration<ExcelComponent, never>;
84
- static ɵcmp: i0.ɵɵComponentDeclaration<ExcelComponent, "kendo-grid-excel", never, { "fileName": { "alias": "fileName"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "creator": { "alias": "creator"; "required": false; }; "date": { "alias": "date"; "required": false; }; "forceProxy": { "alias": "forceProxy"; "required": false; }; "proxyURL": { "alias": "proxyURL"; "required": false; }; "fetchData": { "alias": "fetchData"; "required": false; }; "paddingCellOptions": { "alias": "paddingCellOptions"; "required": false; }; "headerPaddingCellOptions": { "alias": "headerPaddingCellOptions"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; }, {}, ["columns"], never, true, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<ExcelComponent, "kendo-grid-excel", never, { "fileName": { "alias": "fileName"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "creator": { "alias": "creator"; "required": false; }; "date": { "alias": "date"; "required": false; }; "forceProxy": { "alias": "forceProxy"; "required": false; }; "proxyURL": { "alias": "proxyURL"; "required": false; }; "fetchData": { "alias": "fetchData"; "required": false; }; "paddingCellOptions": { "alias": "paddingCellOptions"; "required": false; }; "headerPaddingCellOptions": { "alias": "headerPaddingCellOptions"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; }, { "fileCreated": "fileCreated"; }, ["columns"], never, true, never>;
85
89
  }
@@ -16409,6 +16409,10 @@ class ExcelComponent {
16409
16409
  * Specifies if groups in the Excel file are collapsible.
16410
16410
  */
16411
16411
  collapsible;
16412
+ /**
16413
+ * @hidden
16414
+ */
16415
+ fileCreated = new EventEmitter();
16412
16416
  /**
16413
16417
  * @hidden
16414
16418
  */
@@ -16471,10 +16475,11 @@ class ExcelComponent {
16471
16475
  forceProxy: this.forceProxy,
16472
16476
  proxyURL: this.proxyURL
16473
16477
  });
16478
+ this.fileCreated.emit();
16474
16479
  });
16475
16480
  }
16476
16481
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelComponent, deps: [{ token: ExcelService }, { token: ContextService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
16477
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExcelComponent, isStandalone: true, selector: "kendo-grid-excel", inputs: { fileName: "fileName", filterable: "filterable", creator: "creator", date: "date", forceProxy: "forceProxy", proxyURL: "proxyURL", fetchData: "fetchData", paddingCellOptions: "paddingCellOptions", headerPaddingCellOptions: "headerPaddingCellOptions", collapsible: "collapsible" }, queries: [{ propertyName: "columns", predicate: ColumnBase$1, descendants: true }], ngImport: i0, template: ``, isInline: true });
16482
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ExcelComponent, isStandalone: true, selector: "kendo-grid-excel", inputs: { fileName: "fileName", filterable: "filterable", creator: "creator", date: "date", forceProxy: "forceProxy", proxyURL: "proxyURL", fetchData: "fetchData", paddingCellOptions: "paddingCellOptions", headerPaddingCellOptions: "headerPaddingCellOptions", collapsible: "collapsible" }, outputs: { fileCreated: "fileCreated" }, queries: [{ propertyName: "columns", predicate: ColumnBase$1, descendants: true }], ngImport: i0, template: ``, isInline: true });
16478
16483
  }
16479
16484
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExcelComponent, decorators: [{
16480
16485
  type: Component,
@@ -16503,6 +16508,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
16503
16508
  type: Input
16504
16509
  }], collapsible: [{
16505
16510
  type: Input
16511
+ }], fileCreated: [{
16512
+ type: Output
16506
16513
  }], columns: [{
16507
16514
  type: ContentChildren,
16508
16515
  args: [ColumnBase$1, { descendants: true }]
@@ -22953,8 +22960,8 @@ const packageMetadata = {
22953
22960
  productName: 'Kendo UI for Angular',
22954
22961
  productCode: 'KENDOUIANGULAR',
22955
22962
  productCodes: ['KENDOUIANGULAR'],
22956
- publishDate: 1762766484,
22957
- version: '21.0.0-develop.24',
22963
+ publishDate: 1762796534,
22964
+ version: '21.0.0-develop.26',
22958
22965
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
22959
22966
  };
22960
22967
 
@@ -25581,17 +25588,24 @@ class ListComponent {
25581
25588
  const previousTotal = this.allItems.length;
25582
25589
  this.allItems = this.dataMappingService.dataMapper(this.data, this.nonLockedColumnsToRender, this.lockedLeafColumns, this.detailTemplate, this.showFooter);
25583
25590
  const totalChanged = previousTotal !== this.allItems.length;
25591
+ const totalIncreased = this.allItems.length > previousTotal;
25584
25592
  if (this.totalIsAllItems && totalChanged) {
25585
25593
  this.scroller.reset(this.skipScroll);
25586
25594
  this.scroller.total = this.allItems.length;
25587
25595
  this.itemsToRender = this.allItems.slice(this.scroller.virtualSkip, this.scroller.virtualSkip + this.virtualPageSize);
25588
25596
  }
25589
25597
  else if (totalChanged && !this.ctx.grid?.group?.length) {
25590
- this.scroller.reset(this.skipScroll);
25591
- this.scroller.total = this.total;
25592
- // Clear flags to allow viewport update on next change detection
25593
- this.skipScroll = false;
25594
- this.scroller.scrollSyncing = false;
25598
+ // Preserve scroll position for non-virtual endless scrolling (scrollBottom event)
25599
+ if (!this.isVirtual && totalIncreased) {
25600
+ this.scroller.total = this.total;
25601
+ }
25602
+ else {
25603
+ this.scroller.reset(this.skipScroll);
25604
+ this.scroller.total = this.total;
25605
+ // Clear flags to allow viewport update on next change detection (virtual scrolling fix)
25606
+ this.skipScroll = false;
25607
+ this.scroller.scrollSyncing = false;
25608
+ }
25595
25609
  }
25596
25610
  if (!this.isVirtual || (this.isVirtual && !this.ctx.grid?.pageable && !this.ctx.grid?.group?.length)) {
25597
25611
  this.itemsToRender = this.allItems;
@@ -37630,6 +37644,7 @@ class AiAssistantComponent {
37630
37644
  http;
37631
37645
  ctx;
37632
37646
  columnInfoService;
37647
+ zone;
37633
37648
  aiPrompt;
37634
37649
  activeView = 0;
37635
37650
  requestUrl;
@@ -37649,10 +37664,11 @@ class AiAssistantComponent {
37649
37664
  // nested tree representing the actual Grid column components sent to the AI service
37650
37665
  columnsTree = [];
37651
37666
  idCounter = 0;
37652
- constructor(http, ctx, columnInfoService) {
37667
+ constructor(http, ctx, columnInfoService, zone) {
37653
37668
  this.http = http;
37654
37669
  this.ctx = ctx;
37655
37670
  this.columnInfoService = columnInfoService;
37671
+ this.zone = zone;
37656
37672
  }
37657
37673
  ngAfterViewInit() {
37658
37674
  // Build a nested GridColumnDescriptor tree based on the actual Grid columns structure.
@@ -38006,7 +38022,7 @@ class AiAssistantComponent {
38006
38022
  break;
38007
38023
  }
38008
38024
  case 'GridExportPDF': {
38009
- this.runExportWithFileName(this.ctx.pdfComponent, cmd.fileName, () => this.ctx.grid.saveAsPDF());
38025
+ this.runExportWithFileName(this.ctx.pdfComponent, cmd.fileName, () => this.ctx.grid.emitPDFExportEvent());
38010
38026
  break;
38011
38027
  }
38012
38028
  default:
@@ -38016,21 +38032,22 @@ class AiAssistantComponent {
38016
38032
  });
38017
38033
  }
38018
38034
  runExportWithFileName(component, fileName, action) {
38019
- if (!component) {
38020
- action();
38021
- return;
38022
- }
38023
- const hasComponentFileName = isPresent$1(component.fileName) && component.fileName !== '';
38024
- if (hasComponentFileName || !fileName) {
38035
+ if (!component || !fileName) {
38025
38036
  action();
38026
38037
  return;
38027
38038
  }
38028
38039
  const previousFileName = component.fileName;
38029
38040
  component.fileName = fileName;
38030
- try {
38031
- action();
38041
+ action();
38042
+ const isExcel = component === this.ctx.excelComponent;
38043
+ if (isExcel) {
38044
+ this.zone.runOutsideAngular(() => {
38045
+ this.ctx.excelComponent.fileCreated.subscribe(() => {
38046
+ component.fileName = previousFileName;
38047
+ });
38048
+ });
38032
38049
  }
38033
- finally {
38050
+ else {
38034
38051
  component.fileName = previousFileName;
38035
38052
  }
38036
38053
  }
@@ -38303,7 +38320,7 @@ class AiAssistantComponent {
38303
38320
  this.ctx.grid.filterChange.next(mergedFilter);
38304
38321
  }
38305
38322
  }
38306
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1$8.HttpClient }, { token: ContextService }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
38323
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiAssistantComponent, deps: [{ token: i1$8.HttpClient }, { token: ContextService }, { token: ColumnInfoService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
38307
38324
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AiAssistantComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "aiPrompt", first: true, predicate: AIPromptComponent, descendants: true }], ngImport: i0, template: `
38308
38325
  <kendo-aiprompt
38309
38326
  #aiPrompt
@@ -38399,7 +38416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
38399
38416
  </kendo-aiprompt>
38400
38417
  `
38401
38418
  }]
38402
- }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }], propDecorators: { aiPrompt: [{
38419
+ }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: ContextService }, { type: ColumnInfoService }, { type: i0.NgZone }], propDecorators: { aiPrompt: [{
38403
38420
  type: ViewChild,
38404
38421
  args: [AIPromptComponent]
38405
38422
  }] } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "21.0.0-develop.24",
3
+ "version": "21.0.0-develop.26",
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": 1762766484,
76
+ "publishDate": 1762796534,
77
77
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
78
78
  }
79
79
  },
@@ -86,32 +86,32 @@
86
86
  "@progress/kendo-data-query": "^1.0.0",
87
87
  "@progress/kendo-drawing": "^1.21.0",
88
88
  "@progress/kendo-licensing": "^1.7.0",
89
- "@progress/kendo-angular-buttons": "21.0.0-develop.24",
90
- "@progress/kendo-angular-common": "21.0.0-develop.24",
91
- "@progress/kendo-angular-dateinputs": "21.0.0-develop.24",
92
- "@progress/kendo-angular-layout": "21.0.0-develop.24",
93
- "@progress/kendo-angular-navigation": "21.0.0-develop.24",
94
- "@progress/kendo-angular-dropdowns": "21.0.0-develop.24",
95
- "@progress/kendo-angular-excel-export": "21.0.0-develop.24",
96
- "@progress/kendo-angular-icons": "21.0.0-develop.24",
97
- "@progress/kendo-angular-indicators": "21.0.0-develop.24",
98
- "@progress/kendo-angular-inputs": "21.0.0-develop.24",
99
- "@progress/kendo-angular-conversational-ui": "21.0.0-develop.24",
100
- "@progress/kendo-angular-intl": "21.0.0-develop.24",
101
- "@progress/kendo-angular-l10n": "21.0.0-develop.24",
102
- "@progress/kendo-angular-label": "21.0.0-develop.24",
103
- "@progress/kendo-angular-menu": "21.0.0-develop.24",
104
- "@progress/kendo-angular-pager": "21.0.0-develop.24",
105
- "@progress/kendo-angular-pdf-export": "21.0.0-develop.24",
106
- "@progress/kendo-angular-popup": "21.0.0-develop.24",
107
- "@progress/kendo-angular-toolbar": "21.0.0-develop.24",
108
- "@progress/kendo-angular-upload": "21.0.0-develop.24",
109
- "@progress/kendo-angular-utils": "21.0.0-develop.24",
89
+ "@progress/kendo-angular-buttons": "21.0.0-develop.26",
90
+ "@progress/kendo-angular-common": "21.0.0-develop.26",
91
+ "@progress/kendo-angular-dateinputs": "21.0.0-develop.26",
92
+ "@progress/kendo-angular-layout": "21.0.0-develop.26",
93
+ "@progress/kendo-angular-navigation": "21.0.0-develop.26",
94
+ "@progress/kendo-angular-dropdowns": "21.0.0-develop.26",
95
+ "@progress/kendo-angular-excel-export": "21.0.0-develop.26",
96
+ "@progress/kendo-angular-icons": "21.0.0-develop.26",
97
+ "@progress/kendo-angular-indicators": "21.0.0-develop.26",
98
+ "@progress/kendo-angular-inputs": "21.0.0-develop.26",
99
+ "@progress/kendo-angular-conversational-ui": "21.0.0-develop.26",
100
+ "@progress/kendo-angular-intl": "21.0.0-develop.26",
101
+ "@progress/kendo-angular-l10n": "21.0.0-develop.26",
102
+ "@progress/kendo-angular-label": "21.0.0-develop.26",
103
+ "@progress/kendo-angular-menu": "21.0.0-develop.26",
104
+ "@progress/kendo-angular-pager": "21.0.0-develop.26",
105
+ "@progress/kendo-angular-pdf-export": "21.0.0-develop.26",
106
+ "@progress/kendo-angular-popup": "21.0.0-develop.26",
107
+ "@progress/kendo-angular-toolbar": "21.0.0-develop.26",
108
+ "@progress/kendo-angular-upload": "21.0.0-develop.26",
109
+ "@progress/kendo-angular-utils": "21.0.0-develop.26",
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.0.0-develop.24",
114
+ "@progress/kendo-angular-schematics": "21.0.0-develop.26",
115
115
  "@progress/kendo-common": "^1.0.1",
116
116
  "@progress/kendo-file-saver": "^1.0.0",
117
117
  "node-html-parser": "^7.0.1"
@@ -2,7 +2,7 @@
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, AfterViewInit } from '@angular/core';
5
+ import { OnDestroy, AfterViewInit, NgZone } from '@angular/core';
6
6
  import { AIPromptComponent, PromptRequestEvent } from '@progress/kendo-angular-conversational-ui';
7
7
  import { HttpClient } from '@angular/common/http';
8
8
  import { ContextService } from './../../../../common/provider.service';
@@ -17,6 +17,7 @@ export declare class AiAssistantComponent implements OnDestroy, AfterViewInit {
17
17
  private http;
18
18
  private ctx;
19
19
  private columnInfoService;
20
+ private zone;
20
21
  aiPrompt: AIPromptComponent;
21
22
  activeView: number;
22
23
  requestUrl: string;
@@ -33,7 +34,7 @@ export declare class AiAssistantComponent implements OnDestroy, AfterViewInit {
33
34
  private leafColumns;
34
35
  private columnsTree;
35
36
  private idCounter;
36
- constructor(http: HttpClient, ctx: ContextService, columnInfoService: ColumnInfoService);
37
+ constructor(http: HttpClient, ctx: ContextService, columnInfoService: ColumnInfoService, zone: NgZone);
37
38
  ngAfterViewInit(): void;
38
39
  ngOnDestroy(): void;
39
40
  message(message: string): string;
@@ -5,19 +5,19 @@ const schematics_1 = require("@angular-devkit/schematics");
5
5
  function default_1(options) {
6
6
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
7
7
  // peer deps of the dropdowns
8
- '@progress/kendo-angular-treeview': '21.0.0-develop.24',
9
- '@progress/kendo-angular-navigation': '21.0.0-develop.24',
8
+ '@progress/kendo-angular-treeview': '21.0.0-develop.26',
9
+ '@progress/kendo-angular-navigation': '21.0.0-develop.26',
10
10
  // peer dependency of kendo-angular-inputs
11
- '@progress/kendo-angular-dialog': '21.0.0-develop.24',
11
+ '@progress/kendo-angular-dialog': '21.0.0-develop.26',
12
12
  // peer dependency of kendo-angular-icons
13
13
  '@progress/kendo-svg-icons': '^4.0.0',
14
14
  // peer dependency of kendo-angular-layout
15
- '@progress/kendo-angular-progressbar': '21.0.0-develop.24',
15
+ '@progress/kendo-angular-progressbar': '21.0.0-develop.26',
16
16
  // transitive peer dependencies from toolbar
17
- '@progress/kendo-angular-indicators': '21.0.0-develop.24',
17
+ '@progress/kendo-angular-indicators': '21.0.0-develop.26',
18
18
  // transitive peer dependencies from conversational-ui
19
- '@progress/kendo-angular-menu': '21.0.0-develop.24',
20
- '@progress/kendo-angular-upload': '21.0.0-develop.24'
19
+ '@progress/kendo-angular-menu': '21.0.0-develop.26',
20
+ '@progress/kendo-angular-upload': '21.0.0-develop.26'
21
21
  } });
22
22
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
23
23
  }