html2canvas-pro 1.5.7 → 1.5.9

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 (102) hide show
  1. package/README.md +4 -1
  2. package/dist/html2canvas-pro.esm.js +24 -20
  3. package/dist/html2canvas-pro.esm.js.map +1 -1
  4. package/dist/html2canvas-pro.js +24 -20
  5. package/dist/html2canvas-pro.js.map +1 -1
  6. package/dist/html2canvas-pro.min.js +3 -17
  7. package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
  8. package/dist/lib/core/cache-storage.js.map +1 -1
  9. package/dist/lib/core/context.js.map +1 -1
  10. package/dist/lib/core/debugger.js.map +1 -1
  11. package/dist/lib/core/features.js.map +1 -1
  12. package/dist/lib/core/logger.js.map +1 -1
  13. package/dist/lib/css/index.js.map +1 -1
  14. package/dist/lib/css/layout/bounds.js.map +1 -1
  15. package/dist/lib/css/layout/text.js.map +1 -1
  16. package/dist/lib/css/property-descriptors/background-clip.js.map +1 -1
  17. package/dist/lib/css/property-descriptors/background-image.js.map +1 -1
  18. package/dist/lib/css/property-descriptors/background-origin.js.map +1 -1
  19. package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -1
  20. package/dist/lib/css/property-descriptors/background-size.js +1 -1
  21. package/dist/lib/css/property-descriptors/background-size.js.map +1 -1
  22. package/dist/lib/css/property-descriptors/border-style.js.map +1 -1
  23. package/dist/lib/css/property-descriptors/border-width.js.map +1 -1
  24. package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -1
  25. package/dist/lib/css/property-descriptors/content.js.map +1 -1
  26. package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -1
  27. package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -1
  28. package/dist/lib/css/property-descriptors/direction.js.map +1 -1
  29. package/dist/lib/css/property-descriptors/display.js.map +1 -1
  30. package/dist/lib/css/property-descriptors/float.js.map +1 -1
  31. package/dist/lib/css/property-descriptors/font-family.js.map +1 -1
  32. package/dist/lib/css/property-descriptors/font-style.js.map +1 -1
  33. package/dist/lib/css/property-descriptors/font-weight.js.map +1 -1
  34. package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -1
  35. package/dist/lib/css/property-descriptors/line-break.js +1 -1
  36. package/dist/lib/css/property-descriptors/line-break.js.map +1 -1
  37. package/dist/lib/css/property-descriptors/line-height.js.map +1 -1
  38. package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -1
  39. package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -1
  40. package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -1
  41. package/dist/lib/css/property-descriptors/object-fit.js.map +1 -1
  42. package/dist/lib/css/property-descriptors/opacity.js.map +1 -1
  43. package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -1
  44. package/dist/lib/css/property-descriptors/overflow.js.map +1 -1
  45. package/dist/lib/css/property-descriptors/paint-order.js.map +1 -1
  46. package/dist/lib/css/property-descriptors/position.js.map +1 -1
  47. package/dist/lib/css/property-descriptors/quotes.js.map +1 -1
  48. package/dist/lib/css/property-descriptors/text-align.js.map +1 -1
  49. package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -1
  50. package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -1
  51. package/dist/lib/css/property-descriptors/text-transform.js.map +1 -1
  52. package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -1
  53. package/dist/lib/css/property-descriptors/transform.js.map +1 -1
  54. package/dist/lib/css/property-descriptors/visibility.js.map +1 -1
  55. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -1
  56. package/dist/lib/css/property-descriptors/word-break.js +1 -1
  57. package/dist/lib/css/property-descriptors/word-break.js.map +1 -1
  58. package/dist/lib/css/property-descriptors/z-index.js.map +1 -1
  59. package/dist/lib/css/syntax/parser.js.map +1 -1
  60. package/dist/lib/css/syntax/tokenizer.js.map +1 -1
  61. package/dist/lib/css/types/angle.js.map +1 -1
  62. package/dist/lib/css/types/color-spaces/p3.js.map +1 -1
  63. package/dist/lib/css/types/color-utilities.js.map +1 -1
  64. package/dist/lib/css/types/color.js.map +1 -1
  65. package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -1
  66. package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -1
  67. package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -1
  68. package/dist/lib/css/types/functions/counter.js.map +1 -1
  69. package/dist/lib/css/types/functions/gradient.js.map +1 -1
  70. package/dist/lib/css/types/functions/linear-gradient.js.map +1 -1
  71. package/dist/lib/css/types/functions/radial-gradient.js.map +1 -1
  72. package/dist/lib/css/types/image.js +2 -2
  73. package/dist/lib/css/types/image.js.map +1 -1
  74. package/dist/lib/css/types/length-percentage.js.map +1 -1
  75. package/dist/lib/css/types/time.js.map +1 -1
  76. package/dist/lib/dom/document-cloner.js +2 -2
  77. package/dist/lib/dom/document-cloner.js.map +1 -1
  78. package/dist/lib/dom/element-container.js.map +1 -1
  79. package/dist/lib/dom/elements/li-element-container.js.map +1 -1
  80. package/dist/lib/dom/elements/ol-element-container.js.map +1 -1
  81. package/dist/lib/dom/elements/select-element-container.js.map +1 -1
  82. package/dist/lib/dom/elements/textarea-element-container.js.map +1 -1
  83. package/dist/lib/dom/node-parser.js.map +1 -1
  84. package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -1
  85. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
  86. package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -1
  87. package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -1
  88. package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -1
  89. package/dist/lib/dom/text-container.js.map +1 -1
  90. package/dist/lib/index.js.map +1 -1
  91. package/dist/lib/invariant.js.map +1 -1
  92. package/dist/lib/render/background.js.map +1 -1
  93. package/dist/lib/render/border.js.map +1 -1
  94. package/dist/lib/render/bound-curves.js.map +1 -1
  95. package/dist/lib/render/canvas/canvas-renderer.js +10 -11
  96. package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
  97. package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -1
  98. package/dist/lib/render/font-metrics.js.map +1 -1
  99. package/dist/lib/render/path.js.map +1 -1
  100. package/dist/lib/render/stacking-context.js.map +1 -1
  101. package/dist/types/dom/document-cloner.d.ts +1 -1
  102. package/package.json +16 -26
package/README.md CHANGED
@@ -14,7 +14,8 @@ Next generation JavaScript screenshots tool.
14
14
  <a href="https://www.jsdelivr.com/package/npm/html2canvas-pro"><img src="https://data.jsdelivr.com/v1/package/npm/html2canvas-pro/badge" /></a>
15
15
  <p>
16
16
  <p align="center">
17
- <a href="https://yorickshan.github.io/html2canvas-pro/">Documentation</a> | <a href="https://yorickshan.github.io/html2canvas-pro/getting-started.html">Getting Started</a>
17
+ <a href="https://yorickshan.github.io/html2canvas-pro/getting-started.html">Getting Started</a>
18
+ | <a href="https://deepwiki.com/yorickshan/html2canvas-pro">DeepWiki</a>
18
19
  </p>
19
20
  <br>
20
21
 
@@ -56,6 +57,8 @@ html2canvas(document.body).then(function(canvas) {
56
57
 
57
58
  If you want to add some features, feel free to submit PR.
58
59
 
60
+ If you want to become a maintainer on it, please contact me.
61
+
59
62
  ## License
60
63
 
61
64
  [MIT](LICENSE).
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * undefined 1.5.7 <https://yorickshan.github.io/html2canvas-pro/>
3
- * Copyright (c) 2024 yorickshan <https://github.com/yorickshan>
2
+ * html2canvas-pro 1.5.9 <https://yorickshan.github.io/html2canvas-pro/>
3
+ * Copyright (c) 2024-present yorickshan and html2canvas-pro contributors
4
4
  * Released under MIT License
5
5
  */
6
- /*! *****************************************************************************
6
+ /******************************************************************************
7
7
  Copyright (c) Microsoft Corporation.
8
8
 
9
9
  Permission to use, copy, modify, and/or distribute this software for any
@@ -17,7 +17,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
17
17
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18
18
  PERFORMANCE OF THIS SOFTWARE.
19
19
  ***************************************************************************** */
20
- /* global Reflect, Promise */
20
+ /* global Reflect, Promise, SuppressedError, Symbol */
21
21
 
22
22
  var extendStatics = function(d, b) {
23
23
  extendStatics = Object.setPrototypeOf ||
@@ -61,7 +61,7 @@ function __generator(thisArg, body) {
61
61
  function verb(n) { return function (v) { return step([n, v]); }; }
62
62
  function step(op) {
63
63
  if (f) throw new TypeError("Generator is already executing.");
64
- while (_) try {
64
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
65
65
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
66
66
  if (y = 0, t) op = [op[0] & 2, t.value];
67
67
  switch (op[0]) {
@@ -90,8 +90,13 @@ function __spreadArray(to, from, pack) {
90
90
  ar[i] = from[i];
91
91
  }
92
92
  }
93
- return to.concat(ar || from);
94
- }
93
+ return to.concat(ar || Array.prototype.slice.call(from));
94
+ }
95
+
96
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
97
+ var e = new Error(message);
98
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
99
+ };
95
100
 
96
101
  var Bounds = /** @class */ (function () {
97
102
  function Bounds(left, top, width, height) {
@@ -6463,8 +6468,8 @@ var iframeLoader = function (iframe) {
6463
6468
  });
6464
6469
  };
6465
6470
  var ignoredStyleProperties = [
6466
- 'all',
6467
- 'd',
6471
+ 'all', // #2476
6472
+ 'd', // #2483
6468
6473
  'content' // Safari shows pseudoelements if content is set
6469
6474
  ];
6470
6475
  var copyCSSStyles = function (style, target) {
@@ -7594,15 +7599,14 @@ var CanvasRenderer = /** @class */ (function (_super) {
7594
7599
  };
7595
7600
  CanvasRenderer.prototype.renderTextNode = function (text, styles) {
7596
7601
  return __awaiter(this, void 0, void 0, function () {
7597
- var _a, font, fontFamily, fontSize, baseline, paintOrder;
7602
+ var font, paintOrder;
7598
7603
  var _this = this;
7599
- return __generator(this, function (_b) {
7600
- _a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2];
7604
+ return __generator(this, function (_a) {
7605
+ font = this.createFontStyle(styles)[0];
7601
7606
  this.ctx.font = font;
7602
7607
  this.ctx.direction = styles.direction === 1 /* DIRECTION.RTL */ ? 'rtl' : 'ltr';
7603
7608
  this.ctx.textAlign = 'left';
7604
7609
  this.ctx.textBaseline = 'alphabetic';
7605
- baseline = this.fontMetrics.getMetrics(fontFamily, fontSize).baseline;
7606
7610
  paintOrder = styles.paintOrder;
7607
7611
  text.textBounds.forEach(function (text) {
7608
7612
  paintOrder.forEach(function (paintOrderLayer) {
@@ -7652,7 +7656,7 @@ var CanvasRenderer = /** @class */ (function (_super) {
7652
7656
  _this.ctx.lineWidth = styles.webkitTextStrokeWidth;
7653
7657
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
7654
7658
  _this.ctx.lineJoin = !!window.chrome ? 'miter' : 'round';
7655
- _this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + baseline);
7659
+ _this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + text.bounds.height);
7656
7660
  }
7657
7661
  _this.ctx.strokeStyle = '';
7658
7662
  _this.ctx.lineWidth = 0;
@@ -7754,7 +7758,7 @@ var CanvasRenderer = /** @class */ (function (_super) {
7754
7758
  };
7755
7759
  CanvasRenderer.prototype.renderNodeContent = function (paint) {
7756
7760
  return __awaiter(this, void 0, void 0, function () {
7757
- var container, curves, styles, _i, _a, child, image, image, iframeRenderer, canvas, size, _b, fontFamily, fontSize, baseline, bounds, x, textBounds, img, image, url, fontFamily, bounds;
7761
+ var container, curves, styles, _i, _a, child, image, image, iframeRenderer, canvas, size, _b, font, fontFamily, fontSize, baseline, bounds, x, textBounds, img, image, url, font, bounds;
7758
7762
  return __generator(this, function (_c) {
7759
7763
  switch (_c.label) {
7760
7764
  case 0:
@@ -7854,9 +7858,9 @@ var CanvasRenderer = /** @class */ (function (_super) {
7854
7858
  }
7855
7859
  }
7856
7860
  if (isTextInputElement(container) && container.value.length) {
7857
- _b = this.createFontStyle(styles), fontFamily = _b[0], fontSize = _b[1];
7861
+ _b = this.createFontStyle(styles), font = _b[0], fontFamily = _b[1], fontSize = _b[2];
7858
7862
  baseline = this.fontMetrics.getMetrics(fontFamily, fontSize).baseline;
7859
- this.ctx.font = fontFamily;
7863
+ this.ctx.font = font;
7860
7864
  this.ctx.fillStyle = asString(styles.color);
7861
7865
  this.ctx.textBaseline = 'alphabetic';
7862
7866
  this.ctx.textAlign = canvasTextAlign(container.styles.textAlign);
@@ -7905,8 +7909,8 @@ var CanvasRenderer = /** @class */ (function (_super) {
7905
7909
  case 18: return [3 /*break*/, 20];
7906
7910
  case 19:
7907
7911
  if (paint.listValue && container.styles.listStyleType !== -1 /* LIST_STYLE_TYPE.NONE */) {
7908
- fontFamily = this.createFontStyle(styles)[0];
7909
- this.ctx.font = fontFamily;
7912
+ font = this.createFontStyle(styles)[0];
7913
+ this.ctx.font = font;
7910
7914
  this.ctx.fillStyle = asString(styles.color);
7911
7915
  this.ctx.textBaseline = 'middle';
7912
7916
  this.ctx.textAlign = 'right';
@@ -8136,7 +8140,7 @@ var CanvasRenderer = /** @class */ (function (_super) {
8136
8140
  canvas.height = height;
8137
8141
  ctx = canvas.getContext('2d');
8138
8142
  gradient_1 = ctx.createLinearGradient(x0, y0, x1, y1);
8139
- processColorStops(backgroundImage.stops, lineLength).forEach(function (colorStop) {
8143
+ processColorStops(backgroundImage.stops, lineLength || 1).forEach(function (colorStop) {
8140
8144
  return gradient_1.addColorStop(colorStop.stop, asString(colorStop.color));
8141
8145
  });
8142
8146
  ctx.fillStyle = gradient_1;