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.
- package/README.md +4 -1
- package/dist/html2canvas-pro.esm.js +24 -20
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +24 -20
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +3 -17
- package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
- package/dist/lib/core/cache-storage.js.map +1 -1
- package/dist/lib/core/context.js.map +1 -1
- package/dist/lib/core/debugger.js.map +1 -1
- package/dist/lib/core/features.js.map +1 -1
- package/dist/lib/core/logger.js.map +1 -1
- package/dist/lib/css/index.js.map +1 -1
- package/dist/lib/css/layout/bounds.js.map +1 -1
- package/dist/lib/css/layout/text.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-clip.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-image.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-origin.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -1
- package/dist/lib/css/property-descriptors/background-size.js +1 -1
- package/dist/lib/css/property-descriptors/background-size.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-style.js.map +1 -1
- package/dist/lib/css/property-descriptors/border-width.js.map +1 -1
- package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/content.js.map +1 -1
- package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -1
- package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -1
- package/dist/lib/css/property-descriptors/direction.js.map +1 -1
- package/dist/lib/css/property-descriptors/display.js.map +1 -1
- package/dist/lib/css/property-descriptors/float.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-family.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-style.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-weight.js.map +1 -1
- package/dist/lib/css/property-descriptors/letter-spacing.js.map +1 -1
- package/dist/lib/css/property-descriptors/line-break.js +1 -1
- package/dist/lib/css/property-descriptors/line-break.js.map +1 -1
- package/dist/lib/css/property-descriptors/line-height.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-position.js.map +1 -1
- package/dist/lib/css/property-descriptors/list-style-type.js.map +1 -1
- package/dist/lib/css/property-descriptors/object-fit.js.map +1 -1
- package/dist/lib/css/property-descriptors/opacity.js.map +1 -1
- package/dist/lib/css/property-descriptors/overflow-wrap.js.map +1 -1
- package/dist/lib/css/property-descriptors/overflow.js.map +1 -1
- package/dist/lib/css/property-descriptors/paint-order.js.map +1 -1
- package/dist/lib/css/property-descriptors/position.js.map +1 -1
- package/dist/lib/css/property-descriptors/quotes.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-align.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/text-transform.js.map +1 -1
- package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -1
- package/dist/lib/css/property-descriptors/transform.js.map +1 -1
- package/dist/lib/css/property-descriptors/visibility.js.map +1 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -1
- package/dist/lib/css/property-descriptors/word-break.js +1 -1
- package/dist/lib/css/property-descriptors/word-break.js.map +1 -1
- package/dist/lib/css/property-descriptors/z-index.js.map +1 -1
- package/dist/lib/css/syntax/parser.js.map +1 -1
- package/dist/lib/css/syntax/tokenizer.js.map +1 -1
- package/dist/lib/css/types/angle.js.map +1 -1
- package/dist/lib/css/types/color-spaces/p3.js.map +1 -1
- package/dist/lib/css/types/color-utilities.js.map +1 -1
- package/dist/lib/css/types/color.js.map +1 -1
- package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/counter.js.map +1 -1
- package/dist/lib/css/types/functions/gradient.js.map +1 -1
- package/dist/lib/css/types/functions/linear-gradient.js.map +1 -1
- package/dist/lib/css/types/functions/radial-gradient.js.map +1 -1
- package/dist/lib/css/types/image.js +2 -2
- package/dist/lib/css/types/image.js.map +1 -1
- package/dist/lib/css/types/length-percentage.js.map +1 -1
- package/dist/lib/css/types/time.js.map +1 -1
- package/dist/lib/dom/document-cloner.js +2 -2
- package/dist/lib/dom/document-cloner.js.map +1 -1
- package/dist/lib/dom/element-container.js.map +1 -1
- package/dist/lib/dom/elements/li-element-container.js.map +1 -1
- package/dist/lib/dom/elements/ol-element-container.js.map +1 -1
- package/dist/lib/dom/elements/select-element-container.js.map +1 -1
- package/dist/lib/dom/elements/textarea-element-container.js.map +1 -1
- package/dist/lib/dom/node-parser.js.map +1 -1
- package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -1
- package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -1
- package/dist/lib/dom/text-container.js.map +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/invariant.js.map +1 -1
- package/dist/lib/render/background.js.map +1 -1
- package/dist/lib/render/border.js.map +1 -1
- package/dist/lib/render/bound-curves.js.map +1 -1
- package/dist/lib/render/canvas/canvas-renderer.js +10 -11
- package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
- package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -1
- package/dist/lib/render/font-metrics.js.map +1 -1
- package/dist/lib/render/path.js.map +1 -1
- package/dist/lib/render/stacking-context.js.map +1 -1
- package/dist/types/dom/document-cloner.d.ts +1 -1
- 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
|
-
|
|
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
|
-
*
|
|
3
|
-
* Copyright (c) 2024 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
|
|
7602
|
+
var font, paintOrder;
|
|
7598
7603
|
var _this = this;
|
|
7599
|
-
return __generator(this, function (
|
|
7600
|
-
|
|
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 +
|
|
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,
|
|
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),
|
|
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 =
|
|
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
|
-
|
|
7909
|
-
this.ctx.font =
|
|
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;
|