pdfmake 0.3.0-beta.3 → 0.3.0-beta.5

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/build/pdfmake.js +2213 -8630
  3. package/build/pdfmake.js.map +1 -1
  4. package/build/pdfmake.min.js +2 -2
  5. package/build/pdfmake.min.js.map +1 -1
  6. package/build/vfs_fonts.js +6 -5
  7. package/js/3rd-party/svg-to-pdfkit/source.js +247 -920
  8. package/js/3rd-party/svg-to-pdfkit.js +0 -3
  9. package/js/DocMeasure.js +6 -139
  10. package/js/DocPreprocessor.js +2 -54
  11. package/js/DocumentContext.js +0 -40
  12. package/js/ElementWriter.js +2 -70
  13. package/js/LayoutBuilder.js +20 -165
  14. package/js/Line.js +6 -25
  15. package/js/OutputDocument.js +15 -24
  16. package/js/OutputDocumentServer.js +0 -6
  17. package/js/PDFDocument.js +1 -46
  18. package/js/PageElementWriter.js +7 -31
  19. package/js/PageSize.js +2 -16
  20. package/js/Printer.js +5 -46
  21. package/js/Renderer.js +11 -98
  22. package/js/SVGMeasure.js +1 -20
  23. package/js/StyleContextStack.js +12 -36
  24. package/js/TableProcessor.js +36 -117
  25. package/js/TextBreaker.js +2 -44
  26. package/js/TextDecorator.js +1 -38
  27. package/js/TextInlines.js +8 -49
  28. package/js/URLResolver.js +0 -13
  29. package/js/base.js +1 -17
  30. package/js/browser-extensions/OutputDocumentBrowser.js +5 -17
  31. package/js/browser-extensions/URLBrowserResolver.js +0 -17
  32. package/js/browser-extensions/fonts/Roboto.js +0 -4
  33. package/js/browser-extensions/index.js +0 -16
  34. package/js/browser-extensions/pdfMake.js +2 -4
  35. package/js/browser-extensions/standard-fonts/Courier.js +0 -4
  36. package/js/browser-extensions/standard-fonts/Helvetica.js +0 -4
  37. package/js/browser-extensions/standard-fonts/Symbol.js +0 -4
  38. package/js/browser-extensions/standard-fonts/Times.js +0 -4
  39. package/js/browser-extensions/standard-fonts/ZapfDingbats.js +0 -4
  40. package/js/columnCalculator.js +6 -18
  41. package/js/helpers/node.js +3 -27
  42. package/js/helpers/tools.js +0 -8
  43. package/js/helpers/variableType.js +4 -9
  44. package/js/index.js +0 -6
  45. package/js/qrEnc.js +126 -215
  46. package/js/tableLayouts.js +1 -28
  47. package/js/virtual-fs.js +3 -19
  48. package/package.json +2 -2
  49. package/src/OutputDocument.js +78 -78
@@ -2,10 +2,7 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
-
6
5
  var _source = _interopRequireDefault(require("./svg-to-pdfkit/source.js"));
7
-
8
6
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
-
10
7
  var _default = _source.default;
11
8
  exports.default = _default;
package/js/DocMeasure.js CHANGED
@@ -2,25 +2,15 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
-
6
5
  var _TextInlines = _interopRequireDefault(require("./TextInlines"));
7
-
8
6
  var _StyleContextStack = _interopRequireDefault(require("./StyleContextStack"));
9
-
10
7
  var _columnCalculator = _interopRequireDefault(require("./columnCalculator"));
11
-
12
8
  var _tableLayouts = require("./tableLayouts");
13
-
14
9
  var _variableType = require("./helpers/variableType");
15
-
16
10
  var _node = require("./helpers/node");
17
-
18
11
  var _tools = require("./helpers/tools");
19
-
20
12
  var _qrEnc = _interopRequireDefault(require("./qrEnc.js"));
21
-
22
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
14
  class DocMeasure {
25
15
  constructor(pdfDocument, styleDictionary, defaultStyle, svgMeasure, tableLayouts) {
26
16
  this.pdfDocument = pdfDocument;
@@ -30,6 +20,7 @@ class DocMeasure {
30
20
  this.tableLayouts = tableLayouts;
31
21
  this.autoImageIndex = 1;
32
22
  }
23
+
33
24
  /**
34
25
  * Measures all nodes and sets min/max-width properties required for the second
35
26
  * layout-pass.
@@ -37,17 +28,13 @@ class DocMeasure {
37
28
  * @param {object} docStructure document-definition-object
38
29
  * @returns {object} document-measurement-object
39
30
  */
40
-
41
-
42
31
  measureDocument(docStructure) {
43
32
  return this.measureNode(docStructure);
44
33
  }
45
-
46
34
  measureNode(node) {
47
35
  return this.styleStack.auto(node, () => {
48
36
  // TODO: refactor + rethink whether this is the proper way to handle margins
49
37
  node._margin = (0, _node.getNodeMargin)(node, this.styleStack);
50
-
51
38
  if (node.columns) {
52
39
  return extendMargins(this.measureColumns(node));
53
40
  } else if (node.stack) {
@@ -76,19 +63,15 @@ class DocMeasure {
76
63
  throw new Error(`Unrecognized document structure: ${(0, _node.stringifyNode)(node)}`);
77
64
  }
78
65
  });
79
-
80
66
  function extendMargins(node) {
81
67
  let margin = node._margin;
82
-
83
68
  if (margin) {
84
69
  node._minWidth += margin[0] + margin[2];
85
70
  node._maxWidth += margin[0] + margin[2];
86
71
  }
87
-
88
72
  return node;
89
73
  }
90
74
  }
91
-
92
75
  measureImageWithDimensions(node, dimensions) {
93
76
  if (node.fit) {
94
77
  let factor = dimensions.width / dimensions.height > node.fit[0] / node.fit[1] ? node.fit[0] / dimensions.width : node.fit[1] / dimensions.height;
@@ -97,31 +80,25 @@ class DocMeasure {
97
80
  } else {
98
81
  node._width = node._minWidth = node._maxWidth = node.width || dimensions.width;
99
82
  node._height = node.height || dimensions.height * node._width / dimensions.width;
100
-
101
83
  if ((0, _variableType.isNumber)(node.maxWidth) && node.maxWidth < node._width) {
102
84
  node._width = node._minWidth = node._maxWidth = node.maxWidth;
103
85
  node._height = node._width * dimensions.height / dimensions.width;
104
86
  }
105
-
106
87
  if ((0, _variableType.isNumber)(node.maxHeight) && node.maxHeight < node._height) {
107
88
  node._height = node.maxHeight;
108
89
  node._width = node._minWidth = node._maxWidth = node._height * dimensions.width / dimensions.height;
109
90
  }
110
-
111
91
  if ((0, _variableType.isNumber)(node.minWidth) && node.minWidth > node._width) {
112
92
  node._width = node._minWidth = node._maxWidth = node.minWidth;
113
93
  node._height = node._width * dimensions.height / dimensions.width;
114
94
  }
115
-
116
95
  if ((0, _variableType.isNumber)(node.minHeight) && node.minHeight > node._height) {
117
96
  node._height = node.minHeight;
118
97
  node._width = node._minWidth = node._maxWidth = node._height * dimensions.width / dimensions.height;
119
98
  }
120
99
  }
121
-
122
100
  node._alignment = this.styleStack.getProperty('alignment');
123
101
  }
124
-
125
102
  convertIfBase64Image(node) {
126
103
  if (/^data:image\/(jpeg|jpg|png);base64,/.test(node.image)) {
127
104
  // base64 image
@@ -130,7 +107,6 @@ class DocMeasure {
130
107
  node.image = label;
131
108
  }
132
109
  }
133
-
134
110
  measureImage(node) {
135
111
  this.convertIfBase64Image(node);
136
112
  let image = this.pdfDocument.provideImage(node.image);
@@ -141,26 +117,25 @@ class DocMeasure {
141
117
  this.measureImageWithDimensions(node, imageSize);
142
118
  return node;
143
119
  }
144
-
145
120
  measureSVG(node) {
146
121
  let dimensions = this.svgMeasure.measureSVG(node.svg);
147
122
  this.measureImageWithDimensions(node, dimensions);
148
- node.font = this.styleStack.getProperty('font'); // scale SVG based on final dimension
123
+ node.font = this.styleStack.getProperty('font');
149
124
 
125
+ // scale SVG based on final dimension
150
126
  node.svg = this.svgMeasure.writeDimensions(node.svg, {
151
127
  width: node._width,
152
128
  height: node._height
153
129
  });
154
130
  return node;
155
131
  }
156
-
157
132
  measureLeaf(node) {
158
133
  if (node._textRef && node._textRef._textNodeRef.text) {
159
134
  node.text = node._textRef._textNodeRef.text;
160
- } // Make sure style properties of the node itself are considered when building inlines.
161
- // We could also just pass [node] to buildInlines, but that fails for bullet points.
162
-
135
+ }
163
136
 
137
+ // Make sure style properties of the node itself are considered when building inlines.
138
+ // We could also just pass [node] to buildInlines, but that fails for bullet points.
164
139
  let styleStack = this.styleStack.clone();
165
140
  styleStack.push(node);
166
141
  let data = this.textInlines.buildInlines(node.text, styleStack);
@@ -169,18 +144,15 @@ class DocMeasure {
169
144
  node._maxWidth = data.maxWidth;
170
145
  return node;
171
146
  }
172
-
173
147
  measureToc(node) {
174
148
  if (node.toc.title) {
175
149
  node.toc.title = this.measureNode(node.toc.title);
176
150
  }
177
-
178
151
  if (node.toc._items.length > 0) {
179
152
  let body = [];
180
153
  let textStyle = node.toc.textStyle || {};
181
154
  let numberStyle = node.toc.numberStyle || textStyle;
182
155
  let textMargin = node.toc.textMargin || [0, 0, 0, 0];
183
-
184
156
  for (let i = 0, l = node.toc._items.length; i < l; i++) {
185
157
  let item = node.toc._items[i];
186
158
  let lineStyle = item._textNodeRef.tocStyle || textStyle;
@@ -202,7 +174,6 @@ class DocMeasure {
202
174
  margin: [0, lineMargin[1], 0, lineMargin[3]]
203
175
  }]);
204
176
  }
205
-
206
177
  node.toc._table = {
207
178
  table: {
208
179
  dontBreakRows: true,
@@ -213,28 +184,22 @@ class DocMeasure {
213
184
  };
214
185
  node.toc._table = this.measureNode(node.toc._table);
215
186
  }
216
-
217
187
  return node;
218
188
  }
219
-
220
189
  measureVerticalContainer(node) {
221
190
  let items = node.stack;
222
191
  node._minWidth = 0;
223
192
  node._maxWidth = 0;
224
-
225
193
  for (let i = 0, l = items.length; i < l; i++) {
226
194
  items[i] = this.measureNode(items[i]);
227
195
  node._minWidth = Math.max(node._minWidth, items[i]._minWidth);
228
196
  node._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth);
229
197
  }
230
-
231
198
  return node;
232
199
  }
233
-
234
200
  gapSizeForList() {
235
201
  return this.textInlines.sizeOfText('9. ', this.styleStack);
236
202
  }
237
-
238
203
  buildUnorderedMarker(styleStack, gapSize, type) {
239
204
  function buildDisc(gapSize, color) {
240
205
  // TODO: ascender-based calculations
@@ -250,7 +215,6 @@ class DocMeasure {
250
215
  }]
251
216
  };
252
217
  }
253
-
254
218
  function buildSquare(gapSize, color) {
255
219
  // TODO: ascender-based calculations
256
220
  let size = gapSize.fontSize / 3;
@@ -265,7 +229,6 @@ class DocMeasure {
265
229
  }]
266
230
  };
267
231
  }
268
-
269
232
  function buildCircle(gapSize, color) {
270
233
  // TODO: ascender-based calculations
271
234
  let radius = gapSize.fontSize / 6;
@@ -280,52 +243,41 @@ class DocMeasure {
280
243
  }]
281
244
  };
282
245
  }
283
-
284
246
  let marker;
285
247
  let color = styleStack.getProperty('markerColor') || styleStack.getProperty('color') || 'black';
286
-
287
248
  switch (type) {
288
249
  case 'circle':
289
250
  marker = buildCircle(gapSize, color);
290
251
  break;
291
-
292
252
  case 'square':
293
253
  marker = buildSquare(gapSize, color);
294
254
  break;
295
-
296
255
  case 'none':
297
256
  marker = {};
298
257
  break;
299
-
300
258
  case 'disc':
301
259
  default:
302
260
  marker = buildDisc(gapSize, color);
303
261
  break;
304
262
  }
305
-
306
263
  marker._minWidth = marker._maxWidth = gapSize.width;
307
264
  marker._minHeight = marker._maxHeight = gapSize.height;
308
265
  return marker;
309
266
  }
310
-
311
267
  buildOrderedMarker(counter, styleStack, type, separator) {
312
268
  function prepareAlpha(counter) {
313
269
  function toAlpha(num) {
314
270
  return (num >= 26 ? toAlpha((num / 26 >> 0) - 1) : '') + 'abcdefghijklmnopqrstuvwxyz'[num % 26 >> 0];
315
271
  }
316
-
317
272
  if (counter < 1) {
318
273
  return counter.toString();
319
274
  }
320
-
321
275
  return toAlpha(counter - 1);
322
276
  }
323
-
324
277
  function prepareRoman(counter) {
325
278
  if (counter < 1 || counter > 4999) {
326
279
  return counter.toString();
327
280
  }
328
-
329
281
  let num = counter;
330
282
  let lookup = {
331
283
  M: 1000,
@@ -343,84 +295,66 @@ class DocMeasure {
343
295
  I: 1
344
296
  };
345
297
  let roman = '';
346
-
347
298
  for (let i in lookup) {
348
299
  while (num >= lookup[i]) {
349
300
  roman += i;
350
301
  num -= lookup[i];
351
302
  }
352
303
  }
353
-
354
304
  return roman;
355
305
  }
356
-
357
306
  function prepareDecimal(counter) {
358
307
  return counter.toString();
359
308
  }
360
-
361
309
  let counterText;
362
-
363
310
  switch (type) {
364
311
  case 'none':
365
312
  counterText = null;
366
313
  break;
367
-
368
314
  case 'upper-alpha':
369
315
  counterText = prepareAlpha(counter).toUpperCase();
370
316
  break;
371
-
372
317
  case 'lower-alpha':
373
318
  counterText = prepareAlpha(counter);
374
319
  break;
375
-
376
320
  case 'upper-roman':
377
321
  counterText = prepareRoman(counter);
378
322
  break;
379
-
380
323
  case 'lower-roman':
381
324
  counterText = prepareRoman(counter).toLowerCase();
382
325
  break;
383
-
384
326
  case 'decimal':
385
327
  default:
386
328
  counterText = prepareDecimal(counter);
387
329
  break;
388
330
  }
389
-
390
331
  if (counterText === null) {
391
332
  return {};
392
333
  }
393
-
394
334
  if (separator) {
395
335
  if (Array.isArray(separator)) {
396
336
  if (separator[0]) {
397
337
  counterText = separator[0] + counterText;
398
338
  }
399
-
400
339
  if (separator[1]) {
401
340
  counterText += separator[1];
402
341
  }
403
-
404
342
  counterText += ' ';
405
343
  } else {
406
344
  counterText += `${separator} `;
407
345
  }
408
346
  }
409
-
410
347
  let textArray = {
411
348
  text: counterText
412
349
  };
413
350
  let markerColor = styleStack.getProperty('markerColor');
414
-
415
351
  if (markerColor) {
416
352
  textArray.color = markerColor;
417
353
  }
418
-
419
354
  return {
420
355
  _inlines: this.textInlines.buildInlines(textArray, styleStack).items
421
356
  };
422
357
  }
423
-
424
358
  measureUnorderedList(node) {
425
359
  let style = this.styleStack.clone();
426
360
  let items = node.ul;
@@ -428,90 +362,69 @@ class DocMeasure {
428
362
  node._gapSize = this.gapSizeForList();
429
363
  node._minWidth = 0;
430
364
  node._maxWidth = 0;
431
-
432
365
  for (let i = 0, l = items.length; i < l; i++) {
433
366
  let item = items[i] = this.measureNode(items[i]);
434
-
435
367
  if (!item.ol && !item.ul) {
436
368
  item.listMarker = this.buildUnorderedMarker(style, node._gapSize, item.listType || node.type);
437
369
  }
438
-
439
370
  node._minWidth = Math.max(node._minWidth, items[i]._minWidth + node._gapSize.width);
440
371
  node._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth + node._gapSize.width);
441
372
  }
442
-
443
373
  return node;
444
374
  }
445
-
446
375
  measureOrderedList(node) {
447
376
  let style = this.styleStack.clone();
448
377
  let items = node.ol;
449
378
  node.type = node.type || 'decimal';
450
379
  node.separator = node.separator || '.';
451
380
  node.reversed = node.reversed || false;
452
-
453
381
  if (!(0, _variableType.isNumber)(node.start)) {
454
382
  node.start = node.reversed ? items.length : 1;
455
383
  }
456
-
457
384
  node._gapSize = this.gapSizeForList();
458
385
  node._minWidth = 0;
459
386
  node._maxWidth = 0;
460
387
  let counter = node.start;
461
-
462
388
  for (let i = 0, l = items.length; i < l; i++) {
463
389
  let item = items[i] = this.measureNode(items[i]);
464
-
465
390
  if (!item.ol && !item.ul) {
466
391
  let counterValue = (0, _variableType.isNumber)(item.counter) ? item.counter : counter;
467
392
  item.listMarker = this.buildOrderedMarker(counterValue, style, item.listType || node.type, node.separator);
468
-
469
393
  if (item.listMarker._inlines) {
470
394
  node._gapSize.width = Math.max(node._gapSize.width, item.listMarker._inlines[0].width);
471
395
  }
472
396
  } // TODO: else - nested lists numbering
473
397
 
474
-
475
398
  node._minWidth = Math.max(node._minWidth, items[i]._minWidth);
476
399
  node._maxWidth = Math.max(node._maxWidth, items[i]._maxWidth);
477
-
478
400
  if (node.reversed) {
479
401
  counter--;
480
402
  } else {
481
403
  counter++;
482
404
  }
483
405
  }
484
-
485
406
  node._minWidth += node._gapSize.width;
486
407
  node._maxWidth += node._gapSize.width;
487
-
488
408
  for (let i = 0, l = items.length; i < l; i++) {
489
409
  let item = items[i];
490
-
491
410
  if (!item.ol && !item.ul) {
492
411
  item.listMarker._minWidth = item.listMarker._maxWidth = node._gapSize.width;
493
412
  }
494
413
  }
495
-
496
414
  return node;
497
415
  }
498
-
499
416
  measureColumns(node) {
500
417
  let columns = node.columns;
501
418
  node._gap = this.styleStack.getProperty('columnGap') || 0;
502
-
503
419
  for (let i = 0, l = columns.length; i < l; i++) {
504
420
  columns[i] = this.measureNode(columns[i]);
505
421
  }
506
-
507
422
  let measures = _columnCalculator.default.measureMinMax(columns);
508
-
509
423
  let numGaps = columns.length > 0 ? columns.length - 1 : 0;
510
424
  node._minWidth = measures.min + node._gap * numGaps;
511
425
  node._maxWidth = measures.max + node._gap * numGaps;
512
426
  return node;
513
427
  }
514
-
515
428
  measureTable(node) {
516
429
  extendTableWidths(node);
517
430
  node._layout = getLayout(this.tableLayouts);
@@ -521,28 +434,22 @@ class DocMeasure {
521
434
  let row;
522
435
  let cols;
523
436
  let rows;
524
-
525
437
  for (col = 0, cols = node.table.body[0].length; col < cols; col++) {
526
438
  let c = node.table.widths[col];
527
439
  c._minWidth = 0;
528
440
  c._maxWidth = 0;
529
-
530
441
  for (row = 0, rows = node.table.body.length; row < rows; row++) {
531
442
  let rowData = node.table.body[row];
532
443
  let data = rowData[col];
533
-
534
444
  if (data === undefined) {
535
445
  throw new Error(`Malformed table row, a cell is undefined.\nRow index: ${row}\nColumn index: ${col}\nRow data: ${(0, _node.stringifyNode)(rowData)}`);
536
446
  }
537
-
538
447
  if (data === null) {
539
448
  // transform to object
540
449
  data = '';
541
450
  }
542
-
543
451
  if (!data._span) {
544
452
  data = rowData[col] = this.styleStack.auto(data, measureCb(this, data));
545
-
546
453
  if (data.colSpan && data.colSpan > 1) {
547
454
  markSpans(rowData, col, data.colSpan);
548
455
  colSpans.push({
@@ -556,103 +463,81 @@ class DocMeasure {
556
463
  c._maxWidth = Math.max(c._maxWidth, data._maxWidth);
557
464
  }
558
465
  }
559
-
560
466
  if (data.rowSpan && data.rowSpan > 1) {
561
467
  markVSpans(node.table, row, col, data.rowSpan);
562
468
  }
563
469
  }
564
470
  }
565
-
566
471
  extendWidthsForColSpans();
567
-
568
472
  let measures = _columnCalculator.default.measureMinMax(node.table.widths);
569
-
570
473
  node._minWidth = measures.min + node._offsets.total;
571
474
  node._maxWidth = measures.max + node._offsets.total;
572
475
  return node;
573
-
574
476
  function measureCb(_this, data) {
575
477
  return () => {
576
478
  if ((0, _variableType.isObject)(data)) {
577
479
  data.fillColor = _this.styleStack.getProperty('fillColor');
578
480
  data.fillOpacity = _this.styleStack.getProperty('fillOpacity');
579
481
  }
580
-
581
482
  return _this.measureNode(data);
582
483
  };
583
484
  }
584
-
585
485
  function getLayout(tableLayouts) {
586
486
  let layout = node.layout;
587
-
588
487
  if ((0, _variableType.isString)(layout)) {
589
488
  layout = tableLayouts[layout];
590
489
  }
591
-
592
490
  return (0, _tools.pack)(_tableLayouts.defaultTableLayout, layout);
593
491
  }
594
-
595
492
  function getOffsets(layout) {
596
493
  let offsets = [];
597
494
  let totalOffset = 0;
598
495
  let prevRightPadding = 0;
599
-
600
496
  for (let i = 0, l = node.table.widths.length; i < l; i++) {
601
497
  let lOffset = prevRightPadding + layout.vLineWidth(i, node) + layout.paddingLeft(i, node);
602
498
  offsets.push(lOffset);
603
499
  totalOffset += lOffset;
604
500
  prevRightPadding = layout.paddingRight(i, node);
605
501
  }
606
-
607
502
  totalOffset += prevRightPadding + layout.vLineWidth(node.table.widths.length, node);
608
503
  return {
609
504
  total: totalOffset,
610
505
  offsets: offsets
611
506
  };
612
507
  }
613
-
614
508
  function extendWidthsForColSpans() {
615
509
  let q;
616
510
  let j;
617
-
618
511
  for (let i = 0, l = colSpans.length; i < l; i++) {
619
512
  let span = colSpans[i];
620
513
  let currentMinMax = getMinMax(span.col, span.span, node._offsets);
621
514
  let minDifference = span.minWidth - currentMinMax.minWidth;
622
515
  let maxDifference = span.maxWidth - currentMinMax.maxWidth;
623
-
624
516
  if (minDifference > 0) {
625
517
  q = minDifference / span.span;
626
-
627
518
  for (j = 0; j < span.span; j++) {
628
519
  node.table.widths[span.col + j]._minWidth += q;
629
520
  }
630
521
  }
631
-
632
522
  if (maxDifference > 0) {
633
523
  q = maxDifference / span.span;
634
-
635
524
  for (j = 0; j < span.span; j++) {
636
525
  node.table.widths[span.col + j]._maxWidth += q;
637
526
  }
638
527
  }
639
528
  }
640
529
  }
641
-
642
530
  function getMinMax(col, span, offsets) {
643
531
  let result = {
644
532
  minWidth: 0,
645
533
  maxWidth: 0
646
534
  };
647
-
648
535
  for (let i = 0; i < span; i++) {
649
536
  result.minWidth += node.table.widths[col + i]._minWidth + (i ? offsets.offsets[col + i] : 0);
650
537
  result.maxWidth += node.table.widths[col + i]._maxWidth + (i ? offsets.offsets[col + i] : 0);
651
538
  }
652
-
653
539
  return result;
654
540
  }
655
-
656
541
  function markSpans(rowData, col, span) {
657
542
  for (let i = 1; i < span; i++) {
658
543
  rowData[col + i] = {
@@ -663,7 +548,6 @@ class DocMeasure {
663
548
  };
664
549
  }
665
550
  }
666
-
667
551
  function markVSpans(table, row, col, span) {
668
552
  for (let i = 1; i < span; i++) {
669
553
  table.body[row + i][col] = {
@@ -675,23 +559,18 @@ class DocMeasure {
675
559
  };
676
560
  }
677
561
  }
678
-
679
562
  function extendTableWidths(node) {
680
563
  if (!node.table.widths) {
681
564
  node.table.widths = 'auto';
682
565
  }
683
-
684
566
  if ((0, _variableType.isString)(node.table.widths)) {
685
567
  node.table.widths = [node.table.widths];
686
-
687
568
  while (node.table.widths.length < node.table.body[0].length) {
688
569
  node.table.widths.push(node.table.widths[node.table.widths.length - 1]);
689
570
  }
690
571
  }
691
-
692
572
  for (let i = 0, l = node.table.widths.length; i < l; i++) {
693
573
  let w = node.table.widths[i];
694
-
695
574
  if ((0, _variableType.isNumber)(w) || (0, _variableType.isString)(w)) {
696
575
  node.table.widths[i] = {
697
576
  width: w
@@ -700,59 +579,47 @@ class DocMeasure {
700
579
  }
701
580
  }
702
581
  }
703
-
704
582
  measureCanvas(node) {
705
583
  let w = 0;
706
584
  let h = 0;
707
-
708
585
  for (let i = 0, l = node.canvas.length; i < l; i++) {
709
586
  let vector = node.canvas[i];
710
-
711
587
  switch (vector.type) {
712
588
  case 'ellipse':
713
589
  w = Math.max(w, vector.x + vector.r1);
714
590
  h = Math.max(h, vector.y + vector.r2);
715
591
  break;
716
-
717
592
  case 'rect':
718
593
  w = Math.max(w, vector.x + vector.w);
719
594
  h = Math.max(h, vector.y + vector.h);
720
595
  break;
721
-
722
596
  case 'line':
723
597
  w = Math.max(w, vector.x1, vector.x2);
724
598
  h = Math.max(h, vector.y1, vector.y2);
725
599
  break;
726
-
727
600
  case 'polyline':
728
601
  for (let i2 = 0, l2 = vector.points.length; i2 < l2; i2++) {
729
602
  w = Math.max(w, vector.points[i2].x);
730
603
  h = Math.max(h, vector.points[i2].y);
731
604
  }
732
-
733
605
  break;
734
606
  }
735
607
  }
736
-
737
608
  node._minWidth = node._maxWidth = w;
738
609
  node._minHeight = node._maxHeight = h;
739
610
  node._alignment = this.styleStack.getProperty('alignment');
740
611
  return node;
741
612
  }
742
-
743
613
  measureQr(node) {
744
614
  node = _qrEnc.default.measure(node);
745
615
  node._alignment = this.styleStack.getProperty('alignment');
746
616
  return node;
747
617
  }
748
-
749
618
  measureAttachment(node) {
750
619
  node._width = node.width || 7;
751
620
  node._height = node.height || 18;
752
621
  return node;
753
622
  }
754
-
755
623
  }
756
-
757
624
  var _default = DocMeasure;
758
625
  exports.default = _default;