@progress/kendo-angular-treelist 23.1.1-develop.4 → 23.2.0-develop.1

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.
@@ -50,7 +50,7 @@ const packageMetadata = {
50
50
  productCode: 'KENDOUIANGULAR',
51
51
  productCodes: ['KENDOUIANGULAR'],
52
52
  publishDate: 0,
53
- version: '23.1.1-develop.4',
53
+ version: '23.2.0-develop.1',
54
54
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
55
55
  };
56
56
 
@@ -24198,6 +24198,13 @@ class PDFComponent extends PDFExportComponent {
24198
24198
  * Specifies if the export includes all TreeList pages, starting from the first one.
24199
24199
  */
24200
24200
  allPages;
24201
+ /**
24202
+ * Sets the delay in milliseconds before exporting the TreeList content.
24203
+ * Use this property when exporting complex components in TreeList templates, such as charts or data-bound components with asynchronous data retrieval.
24204
+ *
24205
+ * @default 0
24206
+ */
24207
+ delay = 0;
24201
24208
  columns = new QueryList();
24202
24209
  marginComponent;
24203
24210
  pageTemplateDirective;
@@ -24237,7 +24244,12 @@ class PDFComponent extends PDFExportComponent {
24237
24244
  }
24238
24245
  createPDF(component, callback) {
24239
24246
  const pageSize = component.pageSize;
24240
- const total = component.view.totalVisible;
24247
+ const dataResult = component.data;
24248
+ // Use the total from the data result for paged data (e.g., process() output),
24249
+ // as view.totalVisible only counts items in the current page
24250
+ const total = dataResult && !Array.isArray(dataResult) && dataResult.total !== undefined
24251
+ ? dataResult.total
24252
+ : component.view.totalVisible;
24241
24253
  const columns = this.columns.toArray();
24242
24254
  if (columns.length) {
24243
24255
  this.originalColumns = component.columns.toArray();
@@ -24352,21 +24364,15 @@ class PDFComponent extends PDFExportComponent {
24352
24364
  }
24353
24365
  changePage(skip, _take, callback, columns) {
24354
24366
  this.ngZone.run(() => {
24355
- const onPageChanged = () => {
24367
+ this.pdfService.dataChanged.pipe(take(1)).subscribe(() => {
24356
24368
  if ((columns && columns.length) || this.component.virtualColumns) {
24357
24369
  this.changeColumns(columns, callback);
24358
24370
  }
24359
24371
  else {
24360
24372
  this.onStable(callback);
24361
24373
  }
24362
- };
24374
+ });
24363
24375
  this.component.notifyPageChange('pdf', { skip: skip, take: _take });
24364
- if (this.component.view.loading) {
24365
- this.component.view.dataLoaded.pipe(take(1)).subscribe(onPageChanged);
24366
- }
24367
- else {
24368
- onPageChanged();
24369
- }
24370
24376
  });
24371
24377
  }
24372
24378
  changeColumns(columns, callback) {
@@ -24391,10 +24397,34 @@ class PDFComponent extends PDFExportComponent {
24391
24397
  delete this.component;
24392
24398
  }
24393
24399
  onStable(callback) {
24394
- this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(callback);
24400
+ // Run outside Angular to avoid triggering change detection for each setTimeout
24401
+ this.ngZone.runOutsideAngular(() => {
24402
+ // Delay subscription to zone stable to avoid race conditions where zone
24403
+ // stabilizes before the subscription happens
24404
+ setTimeout(() => {
24405
+ // Check if zone is already stable - if so, use microtask to schedule
24406
+ // callback after pending renders complete
24407
+ if (this.ngZone.isStable) {
24408
+ Promise.resolve().then(() => {
24409
+ if (this.delay > 0) {
24410
+ setTimeout(callback, this.delay);
24411
+ }
24412
+ else {
24413
+ callback();
24414
+ }
24415
+ });
24416
+ return;
24417
+ }
24418
+ let onStable = this.ngZone.onStable.asObservable().pipe(take(1));
24419
+ if (this.delay > 0) {
24420
+ onStable = onStable.pipe(delay(this.delay));
24421
+ }
24422
+ onStable.subscribe(callback);
24423
+ }, 0);
24424
+ });
24395
24425
  }
24396
24426
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFComponent, deps: [{ token: PDFService }, { token: SuspendService }, { token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
24397
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PDFComponent, isStandalone: true, selector: "kendo-treelist-pdf", inputs: { allPages: "allPages" }, queries: [{ propertyName: "marginComponent", first: true, predicate: PDFMarginComponent, descendants: true }, { propertyName: "pageTemplateDirective", first: true, predicate: PDFTemplateDirective, descendants: true }, { propertyName: "columns", predicate: ColumnBase }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
24427
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PDFComponent, isStandalone: true, selector: "kendo-treelist-pdf", inputs: { allPages: "allPages", delay: "delay" }, queries: [{ propertyName: "marginComponent", first: true, predicate: PDFMarginComponent, descendants: true }, { propertyName: "pageTemplateDirective", first: true, predicate: PDFTemplateDirective, descendants: true }, { propertyName: "columns", predicate: ColumnBase }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
24398
24428
  }
24399
24429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PDFComponent, decorators: [{
24400
24430
  type: Component,
@@ -24405,6 +24435,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
24405
24435
  }]
24406
24436
  }], ctorParameters: () => [{ type: PDFService }, { type: SuspendService }, { type: i0.NgZone }, { type: i0.ElementRef }], propDecorators: { allPages: [{
24407
24437
  type: Input
24438
+ }], delay: [{
24439
+ type: Input
24408
24440
  }], columns: [{
24409
24441
  type: ContentChildren,
24410
24442
  args: [ColumnBase]
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1771517052,
11
- "version": "23.1.1-develop.4",
10
+ "publishDate": 1771577110,
11
+ "version": "23.2.0-develop.1",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-treelist",
3
- "version": "23.1.1-develop.4",
3
+ "version": "23.2.0-develop.1",
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": 1771517052,
27
+ "publishDate": 1771577110,
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.7.3",
38
38
  "@progress/kendo-drawing": "^1.24.0",
39
39
  "@progress/kendo-licensing": "^1.10.0",
40
- "@progress/kendo-angular-buttons": "23.1.1-develop.4",
41
- "@progress/kendo-angular-common": "23.1.1-develop.4",
42
- "@progress/kendo-angular-dateinputs": "23.1.1-develop.4",
43
- "@progress/kendo-angular-dropdowns": "23.1.1-develop.4",
44
- "@progress/kendo-angular-excel-export": "23.1.1-develop.4",
45
- "@progress/kendo-angular-icons": "23.1.1-develop.4",
46
- "@progress/kendo-angular-inputs": "23.1.1-develop.4",
47
- "@progress/kendo-angular-intl": "23.1.1-develop.4",
48
- "@progress/kendo-angular-l10n": "23.1.1-develop.4",
49
- "@progress/kendo-angular-label": "23.1.1-develop.4",
50
- "@progress/kendo-angular-pager": "23.1.1-develop.4",
51
- "@progress/kendo-angular-pdf-export": "23.1.1-develop.4",
52
- "@progress/kendo-angular-popup": "23.1.1-develop.4",
53
- "@progress/kendo-angular-toolbar": "23.1.1-develop.4",
54
- "@progress/kendo-angular-utils": "23.1.1-develop.4",
40
+ "@progress/kendo-angular-buttons": "23.2.0-develop.1",
41
+ "@progress/kendo-angular-common": "23.2.0-develop.1",
42
+ "@progress/kendo-angular-dateinputs": "23.2.0-develop.1",
43
+ "@progress/kendo-angular-dropdowns": "23.2.0-develop.1",
44
+ "@progress/kendo-angular-excel-export": "23.2.0-develop.1",
45
+ "@progress/kendo-angular-icons": "23.2.0-develop.1",
46
+ "@progress/kendo-angular-inputs": "23.2.0-develop.1",
47
+ "@progress/kendo-angular-intl": "23.2.0-develop.1",
48
+ "@progress/kendo-angular-l10n": "23.2.0-develop.1",
49
+ "@progress/kendo-angular-label": "23.2.0-develop.1",
50
+ "@progress/kendo-angular-pager": "23.2.0-develop.1",
51
+ "@progress/kendo-angular-pdf-export": "23.2.0-develop.1",
52
+ "@progress/kendo-angular-popup": "23.2.0-develop.1",
53
+ "@progress/kendo-angular-toolbar": "23.2.0-develop.1",
54
+ "@progress/kendo-angular-utils": "23.2.0-develop.1",
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": "23.1.1-develop.4",
59
+ "@progress/kendo-angular-schematics": "23.2.0-develop.1",
60
60
  "@progress/kendo-common": "^1.0.1",
61
61
  "@progress/kendo-file-saver": "^1.0.0"
62
62
  },
@@ -33,6 +33,13 @@ export declare class PDFComponent extends PDFExportComponent implements OnDestro
33
33
  * Specifies if the export includes all TreeList pages, starting from the first one.
34
34
  */
35
35
  allPages: boolean;
36
+ /**
37
+ * Sets the delay in milliseconds before exporting the TreeList content.
38
+ * Use this property when exporting complex components in TreeList templates, such as charts or data-bound components with asynchronous data retrieval.
39
+ *
40
+ * @default 0
41
+ */
42
+ delay: number;
36
43
  columns: QueryList<ColumnBase>;
37
44
  marginComponent: PDFMarginComponent;
38
45
  pageTemplateDirective: PDFTemplateDirective;
@@ -65,5 +72,5 @@ export declare class PDFComponent extends PDFExportComponent implements OnDestro
65
72
  protected reset(): void;
66
73
  protected onStable(callback: () => void): void;
67
74
  static ɵfac: i0.ɵɵFactoryDeclaration<PDFComponent, never>;
68
- static ɵcmp: i0.ɵɵComponentDeclaration<PDFComponent, "kendo-treelist-pdf", never, { "allPages": { "alias": "allPages"; "required": false; }; }, {}, ["marginComponent", "pageTemplateDirective", "columns"], never, true, never>;
75
+ static ɵcmp: i0.ɵɵComponentDeclaration<PDFComponent, "kendo-treelist-pdf", never, { "allPages": { "alias": "allPages"; "required": false; }; "delay": { "alias": "delay"; "required": false; }; }, {}, ["marginComponent", "pageTemplateDirective", "columns"], never, true, never>;
69
76
  }
@@ -9,13 +9,13 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'TreeListModule', package: 'treelist', peerDependencies: {
11
11
  // peer dep of the dropdowns
12
- '@progress/kendo-angular-treeview': '23.1.1-develop.4',
12
+ '@progress/kendo-angular-treeview': '23.2.0-develop.1',
13
13
  // peer dependency of kendo-angular-inputs
14
- '@progress/kendo-angular-dialog': '23.1.1-develop.4',
14
+ '@progress/kendo-angular-dialog': '23.2.0-develop.1',
15
15
  // peer dependency of kendo-angular-icons
16
16
  '@progress/kendo-svg-icons': '^4.0.0',
17
17
  // peer dependency of kendo-angular-dateinputs
18
- '@progress/kendo-angular-navigation': '23.1.1-develop.4',
18
+ '@progress/kendo-angular-navigation': '23.2.0-develop.1',
19
19
  } });
20
20
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
21
21
  }