@slickgrid-universal/pdf-export 10.5.2 → 10.7.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.
@@ -6,6 +6,7 @@ export interface GroupedHeaderSpan {
6
6
  export declare class PdfExportService implements ExternalResource, BasePdfExportService {
7
7
  protected _exportOptions: PdfExportOption;
8
8
  protected _grid: SlickGrid;
9
+ protected _dataView: SlickDataView;
9
10
  protected _groupedColumnHeaders?: Array<GroupedHeaderSpan>;
10
11
  protected _columnHeaders: Array<KeyTitlePair>;
11
12
  protected _hasGroupedItems: boolean;
@@ -16,8 +17,6 @@ export declare class PdfExportService implements ExternalResource, BasePdfExport
16
17
  /** PdfExportService class name which is use to find service instance in the external registered services */
17
18
  readonly pluginName = "PdfExportService";
18
19
  protected get _datasetIdPropName(): string;
19
- /** Getter of SlickGrid DataView object */
20
- get _dataView(): SlickDataView;
21
20
  /** Getter for the Grid Options pulled through the Grid Object */
22
21
  protected get _gridOptions(): GridOption;
23
22
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pdfExport.service.d.ts","sourceRoot":"","sources":["../src/pdfExport.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,oBAAoB,EACxC,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,SAAS,EACT,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AA8BrC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAeD,qBAAa,gBAAiB,YAAW,gBAAgB,EAAE,oBAAoB;IAC7E,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAC3C,SAAS,CAAC,KAAK,EAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3D,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,CAAM;IACnD,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,QAAQ,EAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,cAAc,EAAG,aAAa,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5D,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEvB,4GAA4G;IAC5G,QAAQ,CAAC,UAAU,sBAAsB;IAEzC,SAAS,KAAK,kBAAkB,IAAI,MAAM,CAEzC;IAED,0CAA0C;IAC1C,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED,iEAAiE;IACjE,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAED,OAAO,IAAI,IAAI;IAKf;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAe/D;;;;;OAKG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IA8UxD,+EAA+E;IAC/E,SAAS,CAAC,UAAU,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,GAAG,EAAE,EAAE;IA4BnH;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0BnE;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;IA+BlE;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,GAAG,EACZ,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACzD,GAAG,EAAE;IAsER;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE;IA4BlD;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE;IAiCrE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAgCjG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,cAAc;CA+BvB"}
1
+ {"version":3,"file":"pdfExport.service.d.ts","sourceRoot":"","sources":["../src/pdfExport.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,oBAAoB,EACxC,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,eAAe,EACf,aAAa,EACb,aAAa,EACb,SAAS,EACT,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AA8BrC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAeD,qBAAa,gBAAiB,YAAW,gBAAgB,EAAE,oBAAoB;IAC7E,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAC3C,SAAS,CAAC,KAAK,EAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,SAAS,EAAG,aAAa,CAAC;IACpC,SAAS,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3D,SAAS,CAAC,cAAc,EAAE,KAAK,CAAC,YAAY,CAAC,CAAM;IACnD,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,QAAQ,EAAG,MAAM,CAAC;IAC5B,SAAS,CAAC,cAAc,EAAG,aAAa,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC5D,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAEvB,4GAA4G;IAC5G,QAAQ,CAAC,UAAU,sBAAsB;IAEzC,SAAS,KAAK,kBAAkB,IAAI,MAAM,CAEzC;IAED,iEAAiE;IACjE,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAED,OAAO,IAAI,IAAI;IAWf;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,IAAI;IAgB/D;;;;;OAKG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAsVxD,+EAA+E;IAC/E,SAAS,CAAC,UAAU,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,GAAG,EAAE,EAAE;IA4BnH;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA0BnE;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC;IA+BlE;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,GAAG,EACZ,wBAAwB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACzD,GAAG,EAAE;IA+ER;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE;IA4BlD;;;;;OAKG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE;IAiCrE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAgCjG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,cAAc;CA+BvB"}
@@ -1,5 +1,5 @@
1
- import { Constants, exportWithFormatterWhenDefined, getTranslationPrefix, htmlDecode } from '@slickgrid-universal/common';
2
- import { addWhiteSpaces, extend, getHtmlStringOutput, stripTags, titleCase } from '@slickgrid-universal/utils';
1
+ import { Constants, exportWithFormatterWhenDefined, getTranslationPrefix } from '@slickgrid-universal/common';
2
+ import { addWhiteSpaces, extend, getHtmlStringOutput, htmlDecode, stripTags, titleCase } from '@slickgrid-universal/utils';
3
3
  import jsPDF from 'jspdf';
4
4
  const DEFAULT_EXPORT_OPTIONS = {
5
5
  filename: 'export',
@@ -44,10 +44,6 @@ export class PdfExportService {
44
44
  get _datasetIdPropName() {
45
45
  return (this._gridOptions && this._gridOptions.datasetIdPropertyName) || 'id';
46
46
  }
47
- /** Getter of SlickGrid DataView object */
48
- get _dataView() {
49
- return this._grid?.getData();
50
- }
51
47
  /** Getter for the Grid Options pulled through the Grid Object */
52
48
  get _gridOptions() {
53
49
  return this._grid?.getOptions() ?? {};
@@ -55,6 +51,11 @@ export class PdfExportService {
55
51
  dispose() {
56
52
  clearTimeout(this._timer);
57
53
  this._pubSubService?.unsubscribeAll();
54
+ // Clear critical memory leak references
55
+ this._grid = null;
56
+ this._dataView = null;
57
+ this._pubSubService = null;
58
+ this._translaterService = undefined;
58
59
  }
59
60
  /**
60
61
  * Initialize the Service
@@ -63,6 +64,7 @@ export class PdfExportService {
63
64
  */
64
65
  init(grid, containerService) {
65
66
  this._grid = grid;
67
+ this._dataView = grid?.getData() || {};
66
68
  this._pubSubService = containerService.get('PubSubService');
67
69
  // get locales provided by user in main file or else use default English locales via the Constants
68
70
  this._locales = this._gridOptions?.locales ?? Constants.locales;
@@ -83,6 +85,7 @@ export class PdfExportService {
83
85
  }
84
86
  return new Promise((resolve) => {
85
87
  this._pubSubService?.publish(`onBeforeExportToPdf`, true);
88
+ const exportStartTime = Date.now();
86
89
  this._exportOptions = extend(true, {}, { ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.pdfExportOptions, ...options });
87
90
  // wrap it into a setTimeout so that the EventAggregator has enough time to start a pre-process like showing a spinner
88
91
  clearTimeout(this._timer);
@@ -368,12 +371,19 @@ export class PdfExportService {
368
371
  }
369
372
  // Save the PDF
370
373
  doc.save(`${this._exportOptions.filename}.pdf`);
371
- this._pubSubService?.publish(`onAfterExportToPdf`, { filename: `${this._exportOptions.filename}.pdf` });
374
+ this._pubSubService?.publish(`onAfterExportToPdf`, {
375
+ filename: `${this._exportOptions.filename}.pdf`,
376
+ durationMs: Date.now() - exportStartTime,
377
+ });
372
378
  resolve(true);
373
379
  }
374
380
  catch (error) {
375
381
  console.error('Error exporting to PDF:', error);
376
- this._pubSubService?.publish(`onAfterExportToPdf`, { filename: `${this._exportOptions.filename}.pdf`, error });
382
+ this._pubSubService?.publish(`onAfterExportToPdf`, {
383
+ filename: `${this._exportOptions.filename}.pdf`,
384
+ error,
385
+ durationMs: Date.now() - exportStartTime,
386
+ });
377
387
  resolve(false);
378
388
  }
379
389
  }, 0);
@@ -522,10 +532,16 @@ export class PdfExportService {
522
532
  }
523
533
  }
524
534
  else {
525
- // get the output by analyzing if we'll pull the value from the cell or from a formatter
526
- let itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, colOpt);
535
+ const columnId = String(columnDef.id);
536
+ // Try cache first when enabled, otherwise keep the existing formatter path.
537
+ let itemData = this._gridOptions.enableFormattedDataCache && columnDef.id != null
538
+ ? this._dataView.getFormattedCellValue(row, columnId, undefined)
539
+ : undefined;
540
+ if (itemData === undefined) {
541
+ itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, colOpt, true);
542
+ }
527
543
  // does the user want to sanitize the output data (remove HTML tags)?
528
- if (columnDef.sanitizeDataExport || colOpt.sanitizeDataExport) {
544
+ if ((columnDef.sanitizeDataExport || colOpt.sanitizeDataExport) && typeof itemData === 'string') {
529
545
  itemData = stripTags(itemData);
530
546
  }
531
547
  // decode HTML entities if enabled
@@ -583,7 +599,7 @@ export class PdfExportService {
583
599
  itemData = totalResult instanceof HTMLElement ? totalResult.textContent || '' : totalResult;
584
600
  }
585
601
  // does the user want to sanitize the output data (remove HTML tags)?
586
- if (columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) {
602
+ if ((columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) && typeof itemData === 'string') {
587
603
  itemData = stripTags(itemData);
588
604
  }
589
605
  // decode HTML entities if enabled
@@ -1 +1 @@
1
- {"version":3,"file":"pdfExport.service.js","sourceRoot":"","sources":["../src/pdfExport.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdfExport.service.js","sourceRoot":"","sources":["../src/pdfExport.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slickgrid-universal/pdf-export",
3
- "version": "10.5.2",
3
+ "version": "10.7.0",
4
4
  "description": "PDF Export Service for SlickGrid Universal.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -31,13 +31,13 @@
31
31
  "url": "https://github.com/ghiscoding/slickgrid-universal/issues"
32
32
  },
33
33
  "dependencies": {
34
- "@slickgrid-universal/common": "10.5.2",
35
- "@slickgrid-universal/utils": "10.3.0",
34
+ "@slickgrid-universal/common": "10.7.0",
35
+ "@slickgrid-universal/utils": "10.7.0",
36
36
  "jspdf": "^4.2.1"
37
37
  },
38
38
  "funding": {
39
39
  "type": "ko_fi",
40
40
  "url": "https://ko-fi.com/ghiscoding"
41
41
  },
42
- "gitHead": "dacf3f4f964a88c7f98485c9f239ef5e22141027"
42
+ "gitHead": "072c71d5006cf60b68171e7700d18c07bbf1e5b8"
43
43
  }
@@ -175,7 +175,7 @@ describe('PdfExportService', () => {
175
175
  await service.exportToPdf(mockExportPdfOptions);
176
176
 
177
177
  expect(pubSubSpy).toHaveBeenCalledWith('onBeforeExportToPdf', true);
178
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
178
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
179
179
  });
180
180
 
181
181
  describe('exportToPdf method', () => {
@@ -235,7 +235,7 @@ describe('PdfExportService', () => {
235
235
  service.init(gridStub, container);
236
236
  await service.exportToPdf(mockExportPdfOptions);
237
237
 
238
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
238
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
239
239
  });
240
240
 
241
241
  it('should call jsPDF with default page size A4 portrait', async () => {
@@ -245,7 +245,7 @@ describe('PdfExportService', () => {
245
245
  service.init(gridStub, container);
246
246
  await service.exportToPdf(mockExportPdfOptions);
247
247
 
248
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
248
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
249
249
  });
250
250
 
251
251
  it('should call jsPDF save() with the correct filename (non-IE)', async () => {
@@ -306,7 +306,7 @@ describe('PdfExportService', () => {
306
306
  service.init(gridStub, container);
307
307
  await service.exportToPdf(mockExportPdfOptions);
308
308
 
309
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
309
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
310
310
  });
311
311
 
312
312
  it('should have the LastName in uppercase when exportCustomFormatter is defined', async () => {
@@ -318,7 +318,7 @@ describe('PdfExportService', () => {
318
318
  service.init(gridStub, container);
319
319
  await service.exportToPdf(mockExportPdfOptions);
320
320
 
321
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
321
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
322
322
  });
323
323
 
324
324
  it('should have the LastName as empty string when item LastName is NULL', async () => {
@@ -330,7 +330,7 @@ describe('PdfExportService', () => {
330
330
  service.init(gridStub, container);
331
331
  await service.exportToPdf(mockExportPdfOptions);
332
332
 
333
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
333
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
334
334
  });
335
335
 
336
336
  it('should have the UserId as empty string even when UserId property is not found in the item object', async () => {
@@ -342,7 +342,7 @@ describe('PdfExportService', () => {
342
342
  service.init(gridStub, container);
343
343
  await service.exportToPdf(mockExportPdfOptions);
344
344
 
345
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
345
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
346
346
  });
347
347
 
348
348
  it('should sanitize data when sanitizeDataExport is enabled in grid options', async () => {
@@ -355,7 +355,7 @@ describe('PdfExportService', () => {
355
355
  service.init(gridStub, container);
356
356
  await service.exportToPdf(mockExportPdfOptions);
357
357
 
358
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
358
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
359
359
  });
360
360
 
361
361
  it('should export with landscape orientation when specified', async () => {
@@ -367,7 +367,7 @@ describe('PdfExportService', () => {
367
367
  service.init(gridStub, container);
368
368
  await service.exportToPdf({ ...mockExportPdfOptions, pageOrientation: 'landscape' });
369
369
 
370
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
370
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
371
371
  });
372
372
  });
373
373
 
@@ -394,7 +394,7 @@ describe('PdfExportService', () => {
394
394
  service.init(gridStub, container);
395
395
  await service.exportToPdf({ ...mockExportPdfOptions, includeHidden: true });
396
396
 
397
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
397
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
398
398
  });
399
399
  });
400
400
 
@@ -447,7 +447,7 @@ describe('PdfExportService', () => {
447
447
  service.init(gridStub, container);
448
448
  await service.exportToPdf(mockExportPdfOptions);
449
449
 
450
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
450
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
451
451
  });
452
452
  });
453
453
 
@@ -536,7 +536,7 @@ describe('PdfExportService', () => {
536
536
  service.init(gridStub, container);
537
537
  await service.exportToPdf(mockExportPdfOptions);
538
538
 
539
- expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf' }));
539
+ expect(pubSubSpy).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ filename: 'export.pdf', durationMs: expect.any(Number) }));
540
540
  });
541
541
 
542
542
  it('should prepend + to collapsed group title and - to expanded group title by default', () => {
@@ -1560,7 +1560,7 @@ describe('PdfExportService', () => {
1560
1560
 
1561
1561
  it('should cover link.click and link appendChild in downloadPdf', () => {
1562
1562
  service = new PdfExportService();
1563
- service.init({ getOptions: () => ({}) } as any, container);
1563
+ service.init({ getOptions: () => ({}), getData: () => ({}) } as any, container);
1564
1564
  (navigator as any).msSaveOrOpenBlob = undefined;
1565
1565
  const appendSpy = vi.spyOn(document.body, 'appendChild');
1566
1566
  const clickSpy = vi.fn();
@@ -1596,7 +1596,10 @@ describe('PdfExportService', () => {
1596
1596
  });
1597
1597
  const result = await service.exportToPdf();
1598
1598
  expect(result).toBe(false);
1599
- expect(pubSubService.publish).toHaveBeenCalledWith('onAfterExportToPdf', expect.objectContaining({ error: expect.any(Error) }));
1599
+ expect(pubSubService.publish).toHaveBeenCalledWith(
1600
+ 'onAfterExportToPdf',
1601
+ expect.objectContaining({ error: expect.any(Error), durationMs: expect.any(Number) })
1602
+ );
1600
1603
  });
1601
1604
 
1602
1605
  it('should handle downloadPdf with invalid link removal', () => {
@@ -1608,7 +1611,7 @@ describe('PdfExportService', () => {
1608
1611
  throw new Error('remove error');
1609
1612
  });
1610
1613
  service = new PdfExportService();
1611
- service.init({ getOptions: () => ({}) } as any, container);
1614
+ service.init({ getOptions: () => ({}), getData: () => ({}) } as any, container);
1612
1615
  expect(() => service['downloadPdf'](new Uint8Array([1, 2, 3]), 'test.pdf')).toThrow('remove error');
1613
1616
  removeSpy.mockRestore();
1614
1617
  });
@@ -1650,7 +1653,7 @@ describe('PdfExportService', () => {
1650
1653
  });
1651
1654
 
1652
1655
  it('should throw error if enableTranslate is true but translaterService is missing', () => {
1653
- const gridStub = { getOptions: () => ({ enableTranslate: true, translater: undefined }) };
1656
+ const gridStub = { getOptions: () => ({ enableTranslate: true, translater: undefined }), getData: () => ({}) };
1654
1657
  service = new PdfExportService();
1655
1658
  expect(() => service.init(gridStub as any, container)).toThrow('requires a Translate Service');
1656
1659
  });
@@ -1658,7 +1661,7 @@ describe('PdfExportService', () => {
1658
1661
  it('should use msSaveOrOpenBlob for IE/Edge', () => {
1659
1662
  (navigator as any).msSaveOrOpenBlob = vi.fn();
1660
1663
  service = new PdfExportService();
1661
- service.init({ getOptions: () => ({}) } as any, container);
1664
+ service.init({ getOptions: () => ({}), getData: () => ({}) } as any, container);
1662
1665
  service['downloadPdf'](new Uint8Array([1, 2, 3]), 'test.pdf');
1663
1666
  expect((navigator as any).msSaveOrOpenBlob).toHaveBeenCalled();
1664
1667
  });
@@ -1672,7 +1675,7 @@ describe('PdfExportService', () => {
1672
1675
  const removeSpy = vi.spyOn(document.body, 'removeChild');
1673
1676
  const revokeSpy = vi.spyOn(URL, 'revokeObjectURL');
1674
1677
  service = new PdfExportService();
1675
- service.init({ getOptions: () => ({}) } as any, container);
1678
+ service.init({ getOptions: () => ({}), getData: () => ({}) } as any, container);
1676
1679
  service['downloadPdf'](new Uint8Array([1, 2, 3]), 'test.pdf');
1677
1680
  expect(appendSpy).toHaveBeenCalled();
1678
1681
  expect(removeSpy).toHaveBeenCalled();
@@ -1700,6 +1703,79 @@ describe('PdfExportService', () => {
1700
1703
  const result = service['readRegularRowData'](columns as any, 0, itemObj);
1701
1704
  expect(result.length).toBeGreaterThan(0);
1702
1705
  });
1706
+
1707
+ it('should keep PDF row output parity for cache-off, cache-miss, and cache-hit', () => {
1708
+ const columns: Column[] = [{ id: 'col1', field: 'col1', formatter: (_r, _c, v) => `<b>${v}</b>`, exportWithFormatter: true }];
1709
+ const itemObj = { id: 1, col1: 'Z' };
1710
+
1711
+ const createService = (enableFormattedDataCache: boolean, cachedValue: string | undefined) => {
1712
+ const pdfService = new PdfExportService();
1713
+ const localContainer = new ContainerServiceStub();
1714
+ const fakePubSub: any = { publish: vi.fn(), unsubscribeAll: vi.fn() };
1715
+ localContainer.registerInstance('PubSubService', fakePubSub);
1716
+ const localDataView: any = {
1717
+ getGrouping: vi.fn().mockReturnValue([]),
1718
+ getLength: vi.fn().mockReturnValue(1),
1719
+ getItem: vi.fn().mockReturnValue(itemObj),
1720
+ getItemMetadata: vi.fn().mockReturnValue({}),
1721
+ getFormattedCellValue: vi.fn().mockReturnValue(cachedValue),
1722
+ };
1723
+ const localGrid: any = {
1724
+ getData: vi.fn().mockReturnValue(localDataView),
1725
+ getOptions: vi.fn().mockReturnValue({ enableFormattedDataCache }),
1726
+ getColumns: vi.fn().mockReturnValue(columns),
1727
+ getParentRowSpanByCell: vi.fn().mockReturnValue(null),
1728
+ };
1729
+ pdfService.init(localGrid, localContainer);
1730
+ (pdfService as any)._exportOptions = { htmlDecode: false, sanitizeDataExport: false };
1731
+ return { pdfService, localDataView };
1732
+ };
1733
+
1734
+ const { pdfService: noCacheService } = createService(false, undefined);
1735
+ const noCacheOutput = noCacheService['readRegularRowData'](columns as any, 0, itemObj);
1736
+
1737
+ const { pdfService: cacheMissService, localDataView: missDataView } = createService(true, undefined);
1738
+ const cacheMissOutput = cacheMissService['readRegularRowData'](columns as any, 0, itemObj);
1739
+
1740
+ const { pdfService: cacheHitService, localDataView: hitDataView } = createService(true, '<b>Z</b>');
1741
+ const cacheHitOutput = cacheHitService['readRegularRowData'](columns as any, 0, itemObj);
1742
+
1743
+ expect(noCacheOutput).toEqual(['<b>Z</b>']);
1744
+ expect(cacheMissOutput).toEqual(noCacheOutput);
1745
+ expect(cacheHitOutput).toEqual(noCacheOutput);
1746
+ expect(missDataView.getFormattedCellValue).toHaveBeenCalledWith(0, 'col1', undefined);
1747
+ expect(hitDataView.getFormattedCellValue).toHaveBeenCalledWith(0, 'col1', undefined);
1748
+ });
1749
+
1750
+ it('should sanitize cache-hit values in readRegularRowData', () => {
1751
+ const columns: Column[] = [{ id: 'col1', field: 'col1', sanitizeDataExport: true }];
1752
+ const itemObj = { id: 1, col1: 'ignored-on-cache-hit' };
1753
+
1754
+ const pdfService = new PdfExportService();
1755
+ const localContainer = new ContainerServiceStub();
1756
+ const fakePubSub: any = { publish: vi.fn(), unsubscribeAll: vi.fn() };
1757
+ localContainer.registerInstance('PubSubService', fakePubSub);
1758
+ const localDataView: any = {
1759
+ getGrouping: vi.fn().mockReturnValue([]),
1760
+ getLength: vi.fn().mockReturnValue(1),
1761
+ getItem: vi.fn().mockReturnValue(itemObj),
1762
+ getItemMetadata: vi.fn().mockReturnValue({}),
1763
+ getFormattedCellValue: vi.fn().mockReturnValue('<b>&amp;Z</b>'),
1764
+ };
1765
+ const localGrid: any = {
1766
+ getData: vi.fn().mockReturnValue(localDataView),
1767
+ getOptions: vi.fn().mockReturnValue({ enableFormattedDataCache: true }),
1768
+ getColumns: vi.fn().mockReturnValue(columns),
1769
+ getParentRowSpanByCell: vi.fn().mockReturnValue(null),
1770
+ };
1771
+
1772
+ pdfService.init(localGrid, localContainer);
1773
+ (pdfService as any)._exportOptions = { htmlDecode: false, sanitizeDataExport: true };
1774
+
1775
+ const output = pdfService['readRegularRowData'](columns as any, 0, itemObj);
1776
+ expect(output).toEqual(['&amp;Z']);
1777
+ expect(localDataView.getFormattedCellValue).toHaveBeenCalledWith(0, 'col1', undefined);
1778
+ });
1703
1779
  });
1704
1780
 
1705
1781
  describe('Additional Edge Case Coverage', () => {
@@ -1759,7 +1835,7 @@ describe('PdfExportService', () => {
1759
1835
 
1760
1836
  it('should handle error in downloadPdf appendChild', () => {
1761
1837
  service = new PdfExportService();
1762
- service.init({ getOptions: () => ({}) } as any, container);
1838
+ service.init({ getOptions: () => ({}), getData: () => ({}) } as any, container);
1763
1839
  const appendSpy = vi.spyOn(document.body, 'appendChild').mockImplementation(() => {
1764
1840
  throw new Error('append error');
1765
1841
  });
@@ -1883,7 +1959,7 @@ describe('PdfExportService', () => {
1883
1959
  Object.defineProperty(service, '_exportOptions', { value: { htmlDecode: true, sanitizeDataExport: true } });
1884
1960
  (service as any)._hasGroupedItems = false;
1885
1961
  const result = service['readRegularRowData'](columns as any, 0, itemObj);
1886
- expect(result).toEqual([undefined, '', '', '']); // Only first cell, rest skipped by colspan logic
1962
+ expect(result).toEqual([undefined, '', '', '']); // col1: 'A', col2: '' (colspan=2 skipped), col3 & col4: '' (colspan='*' spans rest)
1887
1963
  });
1888
1964
 
1889
1965
  it('should cover drawHeaders with grouped pre-header, grouped column, and no group title', async () => {
@@ -2114,14 +2190,11 @@ describe('PdfExportService', () => {
2114
2190
  it('should cover rowspan skip logic (rowspan child cell)', async () => {
2115
2191
  class TestPdfExportService extends PdfExportService {
2116
2192
  setMockDataView(mock: any) {
2117
- (this as any).__dataView = mock;
2193
+ (this as any)._dataView = mock;
2118
2194
  }
2119
2195
  setMockGrid(mock: any) {
2120
2196
  (this as any)._grid = mock;
2121
2197
  }
2122
- get _dataView() {
2123
- return (this as any).__dataView;
2124
- }
2125
2198
  // Always return the persistent gridOptions object
2126
2199
  get _gridOptions() {
2127
2200
  return gridOptions;
@@ -2453,14 +2526,11 @@ describe('PdfExportService', () => {
2453
2526
  it('should cover rowspan logic for both skip and non-skip paths', async () => {
2454
2527
  class TestPdfExportService extends PdfExportService {
2455
2528
  setMockDataView(mock: any) {
2456
- (this as any).__dataView = mock;
2529
+ (this as any)._dataView = mock;
2457
2530
  }
2458
2531
  setMockGrid(mock: any) {
2459
2532
  (this as any)._grid = mock;
2460
2533
  }
2461
- get _dataView() {
2462
- return (this as any).__dataView;
2463
- }
2464
2534
  get _gridOptions() {
2465
2535
  return gridOptions;
2466
2536
  }
@@ -12,8 +12,8 @@ import type {
12
12
  SlickGrid,
13
13
  TranslaterService,
14
14
  } from '@slickgrid-universal/common';
15
- import { Constants, exportWithFormatterWhenDefined, getTranslationPrefix, htmlDecode } from '@slickgrid-universal/common';
16
- import { addWhiteSpaces, extend, getHtmlStringOutput, stripTags, titleCase } from '@slickgrid-universal/utils';
15
+ import { Constants, exportWithFormatterWhenDefined, getTranslationPrefix } from '@slickgrid-universal/common';
16
+ import { addWhiteSpaces, extend, getHtmlStringOutput, htmlDecode, stripTags, titleCase } from '@slickgrid-universal/utils';
17
17
  import jsPDF from 'jspdf';
18
18
 
19
19
  const DEFAULT_EXPORT_OPTIONS: PdfExportOption = {
@@ -62,6 +62,7 @@ function resolveColumnExportOptions(columnDef: Column, globalOptions: PdfExportO
62
62
  export class PdfExportService implements ExternalResource, BasePdfExportService {
63
63
  protected _exportOptions!: PdfExportOption;
64
64
  protected _grid!: SlickGrid;
65
+ protected _dataView!: SlickDataView;
65
66
  protected _groupedColumnHeaders?: Array<GroupedHeaderSpan>;
66
67
  protected _columnHeaders: Array<KeyTitlePair> = [];
67
68
  protected _hasGroupedItems = false;
@@ -77,11 +78,6 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
77
78
  return (this._gridOptions && this._gridOptions.datasetIdPropertyName) || 'id';
78
79
  }
79
80
 
80
- /** Getter of SlickGrid DataView object */
81
- get _dataView(): SlickDataView {
82
- return this._grid?.getData<SlickDataView>();
83
- }
84
-
85
81
  /** Getter for the Grid Options pulled through the Grid Object */
86
82
  protected get _gridOptions(): GridOption {
87
83
  return this._grid?.getOptions() ?? ({} as GridOption);
@@ -90,6 +86,12 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
90
86
  dispose(): void {
91
87
  clearTimeout(this._timer);
92
88
  this._pubSubService?.unsubscribeAll();
89
+
90
+ // Clear critical memory leak references
91
+ this._grid = null as any;
92
+ this._dataView = null as any;
93
+ this._pubSubService = null;
94
+ this._translaterService = undefined;
93
95
  }
94
96
 
95
97
  /**
@@ -99,6 +101,7 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
99
101
  */
100
102
  init(grid: SlickGrid, containerService: ContainerService): void {
101
103
  this._grid = grid;
104
+ this._dataView = grid?.getData<SlickDataView>() || {};
102
105
  this._pubSubService = containerService.get<PubSubService>('PubSubService');
103
106
 
104
107
  // get locales provided by user in main file or else use default English locales via the Constants
@@ -127,6 +130,7 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
127
130
 
128
131
  return new Promise((resolve) => {
129
132
  this._pubSubService?.publish(`onBeforeExportToPdf`, true);
133
+ const exportStartTime = Date.now();
130
134
  this._exportOptions = extend(true, {}, { ...DEFAULT_EXPORT_OPTIONS, ...this._gridOptions.pdfExportOptions, ...options });
131
135
 
132
136
  // wrap it into a setTimeout so that the EventAggregator has enough time to start a pre-process like showing a spinner
@@ -437,11 +441,18 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
437
441
  // Save the PDF
438
442
  doc.save(`${this._exportOptions.filename}.pdf`);
439
443
 
440
- this._pubSubService?.publish(`onAfterExportToPdf`, { filename: `${this._exportOptions.filename}.pdf` });
444
+ this._pubSubService?.publish(`onAfterExportToPdf`, {
445
+ filename: `${this._exportOptions.filename}.pdf`,
446
+ durationMs: Date.now() - exportStartTime,
447
+ });
441
448
  resolve(true);
442
449
  } catch (error) {
443
450
  console.error('Error exporting to PDF:', error);
444
- this._pubSubService?.publish(`onAfterExportToPdf`, { filename: `${this._exportOptions.filename}.pdf`, error });
451
+ this._pubSubService?.publish(`onAfterExportToPdf`, {
452
+ filename: `${this._exportOptions.filename}.pdf`,
453
+ error,
454
+ durationMs: Date.now() - exportStartTime,
455
+ });
445
456
  resolve(false);
446
457
  }
447
458
  }, 0);
@@ -613,11 +624,20 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
613
624
  (prevColspan as number)--;
614
625
  }
615
626
  } else {
616
- // get the output by analyzing if we'll pull the value from the cell or from a formatter
617
- let itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, colOpt);
627
+ const columnId = String(columnDef.id);
628
+
629
+ // Try cache first when enabled, otherwise keep the existing formatter path.
630
+ let itemData =
631
+ this._gridOptions.enableFormattedDataCache && columnDef.id != null
632
+ ? this._dataView.getFormattedCellValue(row, columnId, undefined)
633
+ : undefined;
634
+
635
+ if (itemData === undefined) {
636
+ itemData = exportWithFormatterWhenDefined(row, col, columnDef, itemObj, this._grid, colOpt, true);
637
+ }
618
638
 
619
639
  // does the user want to sanitize the output data (remove HTML tags)?
620
- if (columnDef.sanitizeDataExport || colOpt.sanitizeDataExport) {
640
+ if ((columnDef.sanitizeDataExport || colOpt.sanitizeDataExport) && typeof itemData === 'string') {
621
641
  itemData = stripTags(itemData);
622
642
  }
623
643
 
@@ -687,7 +707,7 @@ export class PdfExportService implements ExternalResource, BasePdfExportService
687
707
  }
688
708
 
689
709
  // does the user want to sanitize the output data (remove HTML tags)?
690
- if (columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) {
710
+ if ((columnDef.sanitizeDataExport || this._exportOptions.sanitizeDataExport) && typeof itemData === 'string') {
691
711
  itemData = stripTags(itemData);
692
712
  }
693
713