pdfmake 0.2.13 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.14 - 2024-10-09
4
+
5
+ - Fixed drawing top horizontal line of the table with page break
6
+ - Fixed uncaught Error when rowSpan and dontBreakRows combined
7
+
3
8
  ## 0.2.13 - 2024-09-22
4
9
 
5
10
  - Minimal supported version Node.js 18 LTS
package/build/pdfmake.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! pdfmake v0.2.13, @license MIT, @link http://pdfmake.org */
1
+ /*! pdfmake v0.2.14, @license MIT, @link http://pdfmake.org */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -15742,7 +15742,7 @@ LayoutBuilder.prototype.processRow = function (_ref) {
15742
15742
  var discountY = 0;
15743
15743
  if (dontBreakRows) {
15744
15744
  // Calculate how many points we have to discount to Y when dontBreakRows and rowSpan are combined
15745
- var ctxBeforeRowSpanLastRow = self.writer.contextStack[self.writer.contextStack.length - 1];
15745
+ var ctxBeforeRowSpanLastRow = self.writer.writer.contextStack[self.writer.writer.contextStack.length - 1];
15746
15746
  discountY = ctxBeforeRowSpanLastRow.y - column._startingRowSpanY;
15747
15747
  }
15748
15748
  var originalXOffset = 0;
@@ -16049,7 +16049,7 @@ module.exports = LayoutBuilder;
16049
16049
 
16050
16050
  /***/ }),
16051
16051
 
16052
- /***/ 2500:
16052
+ /***/ 21458:
16053
16053
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
16054
16054
 
16055
16055
  "use strict";
@@ -48257,8 +48257,8 @@ module.exports = function getPolyfill() {
48257
48257
  if (
48258
48258
  descriptor
48259
48259
  && typeof descriptor.get === 'function'
48260
- && typeof RegExp.prototype.dotAll === 'boolean'
48261
- && typeof RegExp.prototype.hasIndices === 'boolean'
48260
+ && 'dotAll' in RegExp.prototype
48261
+ && 'hasIndices' in RegExp.prototype
48262
48262
  ) {
48263
48263
  /* eslint getter-return: 0 */
48264
48264
  var calls = '';
@@ -48273,6 +48273,9 @@ module.exports = function getPolyfill() {
48273
48273
  calls += 'y';
48274
48274
  }
48275
48275
  });
48276
+
48277
+ descriptor.get.call(o);
48278
+
48276
48279
  if (calls === 'dy') {
48277
48280
  return descriptor.get;
48278
48281
  }
@@ -55363,7 +55366,7 @@ module.exports = URLBrowserResolver;
55363
55366
  var isFunction = (__webpack_require__(91867).isFunction);
55364
55367
  var isUndefined = (__webpack_require__(91867).isUndefined);
55365
55368
  var isNull = (__webpack_require__(91867).isNull);
55366
- var FileSaver = __webpack_require__(65209);
55369
+ var FileSaver = __webpack_require__(26835);
55367
55370
  var saveAs = FileSaver.saveAs;
55368
55371
 
55369
55372
  var defaultClientFonts = {
@@ -57531,10 +57534,13 @@ ElementWriter.prototype.alignCanvas = function (node) {
57531
57534
  }
57532
57535
  };
57533
57536
 
57534
- ElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index) {
57537
+ ElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index, forcePage) {
57535
57538
  var context = this.context;
57536
- var page = context.getCurrentPage(),
57537
- position = this.getCurrentPositionOnPage();
57539
+ var page = context.getCurrentPage();
57540
+ if (isNumber(forcePage)) {
57541
+ page = context.pages[forcePage];
57542
+ }
57543
+ var position = this.getCurrentPositionOnPage();
57538
57544
 
57539
57545
  if (page) {
57540
57546
  offsetVector(vector, ignoreContextX ? 0 : context.x, ignoreContextY ? 0 : context.y);
@@ -58123,8 +58129,8 @@ PageElementWriter.prototype.addQr = function (qr, index) {
58123
58129
  });
58124
58130
  };
58125
58131
 
58126
- PageElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index) {
58127
- return this.writer.addVector(vector, ignoreContextX, ignoreContextY, index);
58132
+ PageElementWriter.prototype.addVector = function (vector, ignoreContextX, ignoreContextY, index, forcePage) {
58133
+ return this.writer.addVector(vector, ignoreContextX, ignoreContextY, index, forcePage);
58128
58134
  };
58129
58135
 
58130
58136
  PageElementWriter.prototype.beginClip = function (width, height) {
@@ -58257,7 +58263,7 @@ function _interopDefault(ex) {
58257
58263
  return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex;
58258
58264
  }
58259
58265
 
58260
- var PdfKit = _interopDefault(__webpack_require__(2500));
58266
+ var PdfKit = _interopDefault(__webpack_require__(21458));
58261
58267
 
58262
58268
  function getEngineInstance() {
58263
58269
  return PdfKit;
@@ -60133,15 +60139,19 @@ TableProcessor.prototype.beginTable = function (writer) {
60133
60139
 
60134
60140
  this.dontBreakRows = tableNode.table.dontBreakRows || false;
60135
60141
 
60136
- if (this.rowsWithoutPageBreak) {
60142
+ if (this.rowsWithoutPageBreak || this.dontBreakRows) {
60137
60143
  writer.beginUnbreakableBlock();
60144
+ // Draw the top border of the table
60145
+ this.drawHorizontalLine(0, writer);
60146
+ if (this.rowsWithoutPageBreak && this.dontBreakRows) {
60147
+ // We just increase the value of transactionLevel
60148
+ writer.beginUnbreakableBlock();
60149
+ }
60138
60150
  }
60139
60151
 
60140
60152
  // update the border properties of all cells before drawing any lines
60141
60153
  prepareCellBorders(this.tableNode.table.body);
60142
60154
 
60143
- this.drawHorizontalLine(0, writer);
60144
-
60145
60155
  function getTableInnerContentWidth() {
60146
60156
  var width = 0;
60147
60157
 
@@ -60240,7 +60250,12 @@ TableProcessor.prototype.beginRow = function (rowIndex, writer) {
60240
60250
 
60241
60251
  this.rowCallback = this.onRowBreak(rowIndex, writer);
60242
60252
  writer.tracker.startTracking('pageChanged', this.rowCallback);
60243
- if (this.dontBreakRows) {
60253
+ if (rowIndex == 0 && !this.dontBreakRows && !this.rowsWithoutPageBreak) {
60254
+ // We store the 'y' to draw later and if necessary the top border of the table
60255
+ this._tableTopBorderY = writer.context().y;
60256
+ writer.context().moveDown(this.topLineWidth);
60257
+ }
60258
+ if (this.dontBreakRows && rowIndex > 0) {
60244
60259
  writer.beginUnbreakableBlock();
60245
60260
  }
60246
60261
  this.rowTopY = writer.context().y;
@@ -60251,7 +60266,7 @@ TableProcessor.prototype.beginRow = function (rowIndex, writer) {
60251
60266
  writer.context().moveDown(this.rowPaddingTop);
60252
60267
  };
60253
60268
 
60254
- TableProcessor.prototype.drawHorizontalLine = function (lineIndex, writer, overrideY) {
60269
+ TableProcessor.prototype.drawHorizontalLine = function (lineIndex, writer, overrideY, moveDown = true, forcePage) {
60255
60270
  var lineWidth = this.layout.hLineWidth(lineIndex, this.tableNode);
60256
60271
  if (lineWidth) {
60257
60272
  var style = this.layout.hLineStyle(lineIndex, this.tableNode);
@@ -60350,7 +60365,7 @@ TableProcessor.prototype.drawHorizontalLine = function (lineIndex, writer, overr
60350
60365
  lineWidth: lineWidth,
60351
60366
  dash: dash,
60352
60367
  lineColor: borderColor
60353
- }, false, overrideY);
60368
+ }, false, isNumber(overrideY), null, forcePage);
60354
60369
  currentLine = null;
60355
60370
  borderColor = null;
60356
60371
  cellAbove = null;
@@ -60360,7 +60375,9 @@ TableProcessor.prototype.drawHorizontalLine = function (lineIndex, writer, overr
60360
60375
  }
60361
60376
  }
60362
60377
 
60363
- writer.context().moveDown(lineWidth);
60378
+ if (moveDown) {
60379
+ writer.context().moveDown(lineWidth);
60380
+ }
60364
60381
  }
60365
60382
  };
60366
60383
 
@@ -60476,6 +60493,15 @@ TableProcessor.prototype.endRow = function (rowIndex, writer, pageBreaks) {
60476
60493
  ys[ys.length - 1].y1 = endingY;
60477
60494
 
60478
60495
  var skipOrphanePadding = (ys[0].y1 - ys[0].y0 === this.rowPaddingTop);
60496
+ if (rowIndex === 0 && !skipOrphanePadding && !this.rowsWithoutPageBreak && !this.dontBreakRows) {
60497
+ // Draw the top border of the table
60498
+ var pageTableStartedAt = null;
60499
+ if (pageBreaks && pageBreaks.length > 0) {
60500
+ // Get the page where table started at
60501
+ pageTableStartedAt = pageBreaks[0].prevPage;
60502
+ }
60503
+ this.drawHorizontalLine(0, writer, this._tableTopBorderY, false, pageTableStartedAt);
60504
+ }
60479
60505
  for (var yi = (skipOrphanePadding ? 1 : 0), yl = ys.length; yi < yl; yi++) {
60480
60506
  var willBreak = yi < ys.length - 1;
60481
60507
  var rowBreakWithoutHeader = (yi > 0 && !this.headerRows);
@@ -60495,6 +60521,14 @@ TableProcessor.prototype.endRow = function (rowIndex, writer, pageBreaks) {
60495
60521
  this.reservedAtBottom = 0;
60496
60522
  }
60497
60523
 
60524
+ // Draw horizontal lines before the vertical lines so they are not overridden
60525
+ if (willBreak && this.layout.hLineWhenBroken !== false) {
60526
+ this.drawHorizontalLine(rowIndex + 1, writer, y2);
60527
+ }
60528
+ if (rowBreakWithoutHeader && this.layout.hLineWhenBroken !== false) {
60529
+ this.drawHorizontalLine(rowIndex, writer, y1);
60530
+ }
60531
+
60498
60532
  for (i = 0, l = xs.length; i < l; i++) {
60499
60533
  var leftCellBorder = false;
60500
60534
  var rightCellBorder = false;
@@ -60581,13 +60615,6 @@ TableProcessor.prototype.endRow = function (rowIndex, writer, pageBreaks) {
60581
60615
  }
60582
60616
  }
60583
60617
  }
60584
-
60585
- if (willBreak && this.layout.hLineWhenBroken !== false) {
60586
- this.drawHorizontalLine(rowIndex + 1, writer, y2);
60587
- }
60588
- if (rowBreakWithoutHeader && this.layout.hLineWhenBroken !== false) {
60589
- this.drawHorizontalLine(rowIndex, writer, y1);
60590
- }
60591
60618
  }
60592
60619
 
60593
60620
  writer.context().page = endingPage;
@@ -60626,7 +60653,8 @@ TableProcessor.prototype.endRow = function (rowIndex, writer, pageBreaks) {
60626
60653
  if (this.dontBreakRows) {
60627
60654
  writer.tracker.auto('pageChanged',
60628
60655
  function () {
60629
- if (!self.headerRows && self.layout.hLineWhenBroken !== false) {
60656
+ if (rowIndex > 0 && !self.headerRows && self.layout.hLineWhenBroken !== false) {
60657
+ // Draw the top border of the row after a page break
60630
60658
  self.drawHorizontalLine(rowIndex, writer);
60631
60659
  }
60632
60660
  },
@@ -61271,7 +61299,7 @@ module.exports = TraversalTracker;
61271
61299
 
61272
61300
  /***/ }),
61273
61301
 
61274
- /***/ 65209:
61302
+ /***/ 26835:
61275
61303
  /***/ (function(module, exports, __webpack_require__) {
61276
61304
 
61277
61305
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(a,b){if(true)!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (b),