html2canvas-pro 1.5.0 → 1.5.2
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 +21 -0
- package/README.md +1 -0
- package/dist/html2canvas-pro.esm.js +97 -27
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +97 -27
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +2 -2
- package/dist/lib/__tests__/index.js.map +1 -1
- package/dist/lib/core/__mocks__/context.js.map +1 -1
- package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
- package/dist/lib/core/__tests__/logger.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/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/__mocks__/bounds.js.map +1 -1
- package/dist/lib/css/layout/text.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/transform-tests.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-position.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.map +1 -1
- package/dist/lib/css/property-descriptors/border-radius.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/counter-increment.js.map +1 -1
- package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -1
- package/dist/lib/css/property-descriptors/display.js.map +1 -1
- package/dist/lib/css/property-descriptors/duration.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-variant.js.map +1 -1
- package/dist/lib/css/property-descriptors/font-weight.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/object-fit.js.map +1 -1
- package/dist/lib/css/property-descriptors/opacity.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/quotes.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/transform-origin.js.map +1 -1
- package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -1
- package/dist/lib/css/property-descriptors/z-index.js.map +1 -1
- package/dist/lib/css/syntax/__tests__/tokernizer-tests.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/__tests__/color-tests.js.map +1 -1
- package/dist/lib/css/types/__tests__/image-tests.js.map +1 -1
- package/dist/lib/css/types/angle.js.map +1 -1
- package/dist/lib/css/types/color-spaces/a98.js +8 -2
- package/dist/lib/css/types/color-spaces/a98.js.map +1 -1
- package/dist/lib/css/types/color-spaces/p3.js +8 -3
- package/dist/lib/css/types/color-spaces/p3.js.map +1 -1
- package/dist/lib/css/types/color-spaces/pro-photo.js +8 -2
- package/dist/lib/css/types/color-spaces/pro-photo.js.map +1 -1
- package/dist/lib/css/types/color-spaces/rec2020.js +7 -2
- package/dist/lib/css/types/color-spaces/rec2020.js.map +1 -1
- package/dist/lib/css/types/color-spaces/srgb.js +10 -4
- package/dist/lib/css/types/color-spaces/srgb.js.map +1 -1
- package/dist/lib/css/types/color-utilities.js +36 -8
- 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/__tests__/radial-gradient.js +4 -1
- package/dist/lib/css/types/functions/__tests__/radial-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.map +1 -1
- package/dist/lib/css/types/length-percentage.js.map +1 -1
- package/dist/lib/dom/document-cloner.js +15 -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/render/background.js.map +1 -1
- package/dist/lib/render/bezier-curve.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/box-sizing.js.map +1 -1
- package/dist/lib/render/canvas/canvas-renderer.js +4 -3
- 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/stacking-context.js.map +1 -1
- package/package.json +10 -4
- package/publish.sh +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
## [1.5.2](https://github.com/yorickshan/html2canvas-pro/compare/v1.5.1...v1.5.2) (2024-07-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## 1.5.1 (2024-07-01)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* operation is insecure on safari ([71f7c28](https://github.com/yorickshan/html2canvas-pro/commit/71f7c283dfe5a8cd64b39343bc7cec85e3932200))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* better color() support ([2559164](https://github.com/yorickshan/html2canvas-pro/commit/2559164c9890ea4985ce4cf09d27184da6ee22f8))
|
|
16
|
+
* color functions ([1c9ece3](https://github.com/yorickshan/html2canvas-pro/commit/1c9ece3887e229eb69b34a5bb082c059355518e2))
|
|
17
|
+
* complete work on relative from colors in the color() function ([ac6e331](https://github.com/yorickshan/html2canvas-pro/commit/ac6e33118be76734ff9b1f5cd92e147babd46548))
|
|
18
|
+
* work on relative color support ([88e6aba](https://github.com/yorickshan/html2canvas-pro/commit/88e6abaa47b9c59e49a7bc3c0008849cc365f787))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
1
22
|
# Changelog
|
|
2
23
|
|
|
3
24
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ html2canvas-pro has several advantages over html2canvas, including:
|
|
|
11
11
|
- support color function ```oklab()```
|
|
12
12
|
- support color function ```oklch()```
|
|
13
13
|
- Support object-fit of ```<img/>```
|
|
14
|
+
- Fixed some known [issues](./CHANGELOG.md)
|
|
14
15
|
|
|
15
16
|
## Installation
|
|
16
17
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* html2canvas-pro 1.5.
|
|
2
|
+
* html2canvas-pro 1.5.2 <undefined>
|
|
3
3
|
* Copyright (c) 2024 yorickshan <https://github.com/yorickshan>
|
|
4
4
|
* Released under MIT License
|
|
5
5
|
*/
|
|
@@ -1803,17 +1803,33 @@ var extractLchComponents = function (args) {
|
|
|
1803
1803
|
var extractLabComponents = function (args) {
|
|
1804
1804
|
var tokens = args.filter(nonFunctionArgSeparator),
|
|
1805
1805
|
// eslint-disable-next-line prettier/prettier
|
|
1806
|
-
l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
|
|
1806
|
+
l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
|
|
1807
|
+
? tokens[0].number / 100
|
|
1808
|
+
: isNumberToken(tokens[0])
|
|
1809
|
+
? tokens[0].number
|
|
1810
|
+
: 0,
|
|
1807
1811
|
// eslint-disable-next-line prettier/prettier
|
|
1808
|
-
a = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
|
|
1812
|
+
a = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
|
|
1813
|
+
? tokens[1].number / 100
|
|
1814
|
+
: isNumberToken(tokens[1])
|
|
1815
|
+
? tokens[1].number
|
|
1816
|
+
: 0, b = isNumberToken(tokens[2]) || isDimensionToken(tokens[2]) ? tokens[2].number : 0, alpha = typeof tokens[4] !== 'undefined' && isLengthPercentage(tokens[4]) ? getAbsoluteValue(tokens[4], 1) : 1;
|
|
1809
1817
|
return [l, a, b, alpha];
|
|
1810
1818
|
};
|
|
1811
1819
|
var extractOkLchComponents = function (args) {
|
|
1812
1820
|
var tokens = args.filter(nonFunctionArgSeparator),
|
|
1813
1821
|
// eslint-disable-next-line prettier/prettier
|
|
1814
|
-
l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
|
|
1822
|
+
l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
|
|
1823
|
+
? tokens[0].number / 100
|
|
1824
|
+
: isNumberToken(tokens[0])
|
|
1825
|
+
? tokens[0].number
|
|
1826
|
+
: 0,
|
|
1815
1827
|
// eslint-disable-next-line prettier/prettier
|
|
1816
|
-
c = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
|
|
1828
|
+
c = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
|
|
1829
|
+
? tokens[1].number / 100
|
|
1830
|
+
: isNumberToken(tokens[1])
|
|
1831
|
+
? tokens[1].number
|
|
1832
|
+
: 0, h = isNumberToken(tokens[2]) || isDimensionToken(tokens[2]) ? tokens[2].number : 0, a = typeof tokens[4] !== 'undefined' && isLengthPercentage(tokens[4]) ? getAbsoluteValue(tokens[4], 1) : 1;
|
|
1817
1833
|
return [l, c, h, a];
|
|
1818
1834
|
};
|
|
1819
1835
|
/**
|
|
@@ -1824,7 +1840,10 @@ var extractOkLchComponents = function (args) {
|
|
|
1824
1840
|
var d65toD50 = function (xyz) {
|
|
1825
1841
|
return multiplyMatrices(
|
|
1826
1842
|
// eslint-disable-next-line prettier/prettier
|
|
1827
|
-
[
|
|
1843
|
+
[
|
|
1844
|
+
1.0479297925449969, 0.022946870601609652, -0.05019226628920524, 0.02962780877005599, 0.9904344267538799,
|
|
1845
|
+
-0.017073799063418826, -0.009243040646204504, 0.015055191490298152, 0.7518742814281371
|
|
1846
|
+
], xyz);
|
|
1828
1847
|
};
|
|
1829
1848
|
/**
|
|
1830
1849
|
* Convert D50 to D65
|
|
@@ -1834,7 +1853,10 @@ var d65toD50 = function (xyz) {
|
|
|
1834
1853
|
var d50toD65 = function (xyz) {
|
|
1835
1854
|
return multiplyMatrices(
|
|
1836
1855
|
// eslint-disable-next-line prettier/prettier
|
|
1837
|
-
[
|
|
1856
|
+
[
|
|
1857
|
+
0.955473421488075, -0.02309845494876471, 0.06325924320057072, -0.0283697093338637, 1.0099953980813041,
|
|
1858
|
+
0.021041441191917323, 0.012314014864481998, -0.020507649298898964, 1.330365926242124
|
|
1859
|
+
], xyz);
|
|
1838
1860
|
};
|
|
1839
1861
|
var hue2rgb = function (t1, t2, hue) {
|
|
1840
1862
|
if (hue < 0) {
|
|
@@ -1889,10 +1911,16 @@ var lch2lab = function (_a) {
|
|
|
1889
1911
|
var oklab2xyz = function (lab) {
|
|
1890
1912
|
var LMSg = multiplyMatrices(
|
|
1891
1913
|
// eslint-disable-next-line prettier/prettier
|
|
1892
|
-
[
|
|
1914
|
+
[
|
|
1915
|
+
1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1,
|
|
1916
|
+
-0.0894841775298119, -1.2914855480194092
|
|
1917
|
+
], lab), LMS = LMSg.map(function (val) { return Math.pow(val, 3); });
|
|
1893
1918
|
return multiplyMatrices(
|
|
1894
1919
|
// eslint-disable-next-line prettier/prettier
|
|
1895
|
-
[
|
|
1920
|
+
[
|
|
1921
|
+
1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317,
|
|
1922
|
+
-0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816
|
|
1923
|
+
], LMS);
|
|
1896
1924
|
};
|
|
1897
1925
|
/**
|
|
1898
1926
|
* Convert Lab to D50-adapted XYZ
|
|
@@ -2029,7 +2057,10 @@ var convertXyz50 = function (args) {
|
|
|
2029
2057
|
var xyz2rgbLinear = function (xyz) {
|
|
2030
2058
|
return multiplyMatrices(
|
|
2031
2059
|
// eslint-disable-next-line prettier/prettier
|
|
2032
|
-
[
|
|
2060
|
+
[
|
|
2061
|
+
3.2409699419045226, -1.537383177570094, -0.4986107602930034, -0.9692436362808796, 1.8759675015077202,
|
|
2062
|
+
0.04155505740717559, 0.05563007969699366, -0.20397695888897652, 1.0569715142428786
|
|
2063
|
+
], xyz);
|
|
2033
2064
|
};
|
|
2034
2065
|
/**
|
|
2035
2066
|
* Convert XYZ to linear-light sRGB
|
|
@@ -2039,7 +2070,10 @@ var xyz2rgbLinear = function (xyz) {
|
|
|
2039
2070
|
var rgbLinear2xyz = function (xyz) {
|
|
2040
2071
|
return multiplyMatrices(
|
|
2041
2072
|
// eslint-disable-next-line prettier/prettier
|
|
2042
|
-
[
|
|
2073
|
+
[
|
|
2074
|
+
0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756,
|
|
2075
|
+
0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607
|
|
2076
|
+
], xyz);
|
|
2043
2077
|
};
|
|
2044
2078
|
/**
|
|
2045
2079
|
* Convert sRGB to RGB
|
|
@@ -2050,7 +2084,7 @@ var srgbLinear2rgb = function (rgb) {
|
|
|
2050
2084
|
return rgb.map(function (c) {
|
|
2051
2085
|
var sign = c < 0 ? -1 : 1, abs = Math.abs(c);
|
|
2052
2086
|
// eslint-disable-next-line prettier/prettier
|
|
2053
|
-
return abs > 0.0031308 ? sign * (1.055 *
|
|
2087
|
+
return abs > 0.0031308 ? sign * (1.055 * Math.pow(abs, (1 / 2.4)) - 0.055) : 12.92 * c;
|
|
2054
2088
|
});
|
|
2055
2089
|
};
|
|
2056
2090
|
/**
|
|
@@ -2062,7 +2096,7 @@ var rgb2rgbLinear = function (rgb) {
|
|
|
2062
2096
|
return rgb.map(function (c) {
|
|
2063
2097
|
var sign = c < 0 ? -1 : 1, abs = Math.abs(c);
|
|
2064
2098
|
// eslint-disable-next-line prettier/prettier
|
|
2065
|
-
return abs <= 0.04045 ? c / 12.92 : sign *
|
|
2099
|
+
return abs <= 0.04045 ? c / 12.92 : sign * Math.pow(((abs + 0.055) / 1.055), 2.4);
|
|
2066
2100
|
});
|
|
2067
2101
|
};
|
|
2068
2102
|
/**
|
|
@@ -2099,7 +2133,9 @@ var srgbLinearFromXYZ = function (args) {
|
|
|
2099
2133
|
var p3LinearToXyz = function (p3l) {
|
|
2100
2134
|
return multiplyMatrices(
|
|
2101
2135
|
// eslint-disable-next-line prettier/prettier
|
|
2102
|
-
[
|
|
2136
|
+
[
|
|
2137
|
+
0.4865709486482162, 0.26566769316909306, 0.1982172852343625, 0.2289745640697488, 0.6917385218365064,
|
|
2138
|
+
0.079286914093745, 0.0, 0.04511338185890264, 1.043944368900976
|
|
2103
2139
|
], p3l);
|
|
2104
2140
|
};
|
|
2105
2141
|
/**
|
|
@@ -2110,7 +2146,10 @@ var p3LinearToXyz = function (p3l) {
|
|
|
2110
2146
|
var xyzToP3Linear = function (xyz) {
|
|
2111
2147
|
return multiplyMatrices(
|
|
2112
2148
|
// eslint-disable-next-line prettier/prettier
|
|
2113
|
-
[
|
|
2149
|
+
[
|
|
2150
|
+
2.493496911941425, -0.9313836179191239, -0.40271078445071684, -0.8294889695615747, 1.7626640603183463,
|
|
2151
|
+
0.023624685841943577, 0.03584583024378447, -0.07617238926804182, 0.9568845240076872
|
|
2152
|
+
], xyz);
|
|
2114
2153
|
};
|
|
2115
2154
|
/**
|
|
2116
2155
|
* Convert P3 to P3 linear
|
|
@@ -2124,7 +2163,7 @@ var p32p3Linear = function (p3) {
|
|
|
2124
2163
|
return c / 12.92;
|
|
2125
2164
|
}
|
|
2126
2165
|
// eslint-disable-next-line prettier/prettier
|
|
2127
|
-
return sign *
|
|
2166
|
+
return sign * Math.pow(((c + 0.055) / 1.055), 2.4) || 0;
|
|
2128
2167
|
});
|
|
2129
2168
|
};
|
|
2130
2169
|
/**
|
|
@@ -2174,7 +2213,10 @@ var convertP3 = function (args) {
|
|
|
2174
2213
|
var xyz2a98Linear = function (xyz) {
|
|
2175
2214
|
return multiplyMatrices(
|
|
2176
2215
|
// eslint-disable-next-line prettier/prettier
|
|
2177
|
-
[
|
|
2216
|
+
[
|
|
2217
|
+
2.0415879038107465, -0.5650069742788596, -0.34473135077832956, -0.9692436362808795, 1.8759675015077202,
|
|
2218
|
+
0.04155505740717557, 0.013444280632031142, -0.11836239223101838, 1.0151749943912054
|
|
2219
|
+
], xyz);
|
|
2178
2220
|
};
|
|
2179
2221
|
/**
|
|
2180
2222
|
* Convert XYZ to a98 linear
|
|
@@ -2184,7 +2226,10 @@ var xyz2a98Linear = function (xyz) {
|
|
|
2184
2226
|
var a98Linear2xyz = function (a98) {
|
|
2185
2227
|
return multiplyMatrices(
|
|
2186
2228
|
// eslint-disable-next-line prettier/prettier
|
|
2187
|
-
[
|
|
2229
|
+
[
|
|
2230
|
+
0.5766690429101305, 0.1855582379065463, 0.1882286462349947, 0.29734497525053605, 0.6273635662554661,
|
|
2231
|
+
0.0752914584939978, 0.02703136138641234, 0.07068885253582723, 0.9913375368376388
|
|
2232
|
+
], a98);
|
|
2188
2233
|
};
|
|
2189
2234
|
/**
|
|
2190
2235
|
* Convert A98 RGB to rgb linear
|
|
@@ -2240,7 +2285,10 @@ var convertA98rgb = function (args) {
|
|
|
2240
2285
|
var proPhotoLinearToXyz = function (p3) {
|
|
2241
2286
|
return multiplyMatrices(
|
|
2242
2287
|
// eslint-disable-next-line prettier/prettier
|
|
2243
|
-
[
|
|
2288
|
+
[
|
|
2289
|
+
0.7977666449006423, 0.13518129740053308, 0.0313477341283922, 0.2880748288194013, 0.711835234241873,
|
|
2290
|
+
0.00008993693872564, 0.0, 0.0, 0.8251046025104602
|
|
2291
|
+
], p3);
|
|
2244
2292
|
};
|
|
2245
2293
|
/**
|
|
2246
2294
|
* Convert XYZ D65 to linear-light display-p3
|
|
@@ -2250,7 +2298,10 @@ var proPhotoLinearToXyz = function (p3) {
|
|
|
2250
2298
|
var xyzToProPhotoLinear = function (xyz) {
|
|
2251
2299
|
return multiplyMatrices(
|
|
2252
2300
|
// eslint-disable-next-line prettier/prettier
|
|
2253
|
-
[
|
|
2301
|
+
[
|
|
2302
|
+
1.3457868816471583, -0.25557208737979464, -0.05110186497554526, -0.5446307051249019, 1.5082477428451468,
|
|
2303
|
+
0.02052744743642139, 0.0, 0.0, 1.2119675456389452
|
|
2304
|
+
], xyz);
|
|
2254
2305
|
};
|
|
2255
2306
|
/**
|
|
2256
2307
|
* Convert Pro-Photo to Pro-Photo Linear
|
|
@@ -2333,7 +2384,9 @@ var rec2020Linear2rec2020 = function (rgb) {
|
|
|
2333
2384
|
var rec2020LinearToXyz = function (rec) {
|
|
2334
2385
|
return multiplyMatrices(
|
|
2335
2386
|
// eslint-disable-next-line prettier/prettier
|
|
2336
|
-
[
|
|
2387
|
+
[
|
|
2388
|
+
0.6369580483012914, 0.14461690358620832, 0.1688809751641721, 0.2627002120112671, 0.6779980715188708,
|
|
2389
|
+
0.05930171646986196, 0.0, 0.028072693049087428, 1.060985057710791
|
|
2337
2390
|
], rec);
|
|
2338
2391
|
};
|
|
2339
2392
|
/**
|
|
@@ -2344,7 +2397,10 @@ var rec2020LinearToXyz = function (rec) {
|
|
|
2344
2397
|
var xyzToRec2020Linear = function (xyz) {
|
|
2345
2398
|
return multiplyMatrices(
|
|
2346
2399
|
// eslint-disable-next-line prettier/prettier
|
|
2347
|
-
[
|
|
2400
|
+
[
|
|
2401
|
+
1.716651187971268, -0.355670783776392, -0.25336628137366, -0.666684351832489, 1.616481236634939,
|
|
2402
|
+
0.0157685458139111, 0.017639857445311, -0.042770613257809, 0.942103121235474
|
|
2403
|
+
], xyz);
|
|
2348
2404
|
};
|
|
2349
2405
|
/**
|
|
2350
2406
|
* Convert Rec2020 to XYZ
|
|
@@ -6050,11 +6106,17 @@ var DocumentCloner = /** @class */ (function () {
|
|
|
6050
6106
|
}
|
|
6051
6107
|
});
|
|
6052
6108
|
}); });
|
|
6109
|
+
var adoptedNode = documentClone.adoptNode(this.documentElement);
|
|
6110
|
+
/**
|
|
6111
|
+
* The baseURI of the document will be lost after documentClone.open().
|
|
6112
|
+
* We can avoid it by adding <base> element.
|
|
6113
|
+
* */
|
|
6114
|
+
addBase(adoptedNode, documentClone);
|
|
6053
6115
|
documentClone.open();
|
|
6054
6116
|
documentClone.write(serializeDoctype(document.doctype) + "<html></html>");
|
|
6055
6117
|
// Chrome scrolls the parent document for some reason after the write to the cloned window???
|
|
6056
6118
|
restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY);
|
|
6057
|
-
documentClone.replaceChild(
|
|
6119
|
+
documentClone.replaceChild(adoptedNode, documentClone.documentElement);
|
|
6058
6120
|
documentClone.close();
|
|
6059
6121
|
return iframeLoad;
|
|
6060
6122
|
};
|
|
@@ -6132,7 +6194,7 @@ var DocumentCloner = /** @class */ (function () {
|
|
|
6132
6194
|
clonedCanvas.width = canvas.width;
|
|
6133
6195
|
clonedCanvas.height = canvas.height;
|
|
6134
6196
|
var ctx = canvas.getContext('2d');
|
|
6135
|
-
var clonedCtx = clonedCanvas.getContext('2d');
|
|
6197
|
+
var clonedCtx = clonedCanvas.getContext('2d', { willReadFrequently: true });
|
|
6136
6198
|
if (clonedCtx) {
|
|
6137
6199
|
if (!this.options.allowTaint && ctx) {
|
|
6138
6200
|
clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
|
|
@@ -6462,6 +6524,13 @@ var createStyles = function (body, styles) {
|
|
|
6462
6524
|
body.appendChild(style);
|
|
6463
6525
|
}
|
|
6464
6526
|
};
|
|
6527
|
+
var addBase = function (targetELement, referenceDocument) {
|
|
6528
|
+
var _a;
|
|
6529
|
+
var baseNode = referenceDocument.createElement('base');
|
|
6530
|
+
baseNode.href = referenceDocument.baseURI;
|
|
6531
|
+
var headEle = targetELement.getElementsByTagName('head').item(0);
|
|
6532
|
+
headEle === null || headEle === void 0 ? void 0 : headEle.insertBefore(baseNode, (_a = headEle === null || headEle === void 0 ? void 0 : headEle.firstChild) !== null && _a !== void 0 ? _a : null);
|
|
6533
|
+
};
|
|
6465
6534
|
|
|
6466
6535
|
var CacheStorage = /** @class */ (function () {
|
|
6467
6536
|
function CacheStorage() {
|
|
@@ -7997,10 +8066,11 @@ var CanvasRenderer = /** @class */ (function (_super) {
|
|
|
7997
8066
|
this.ctx.translate(-offsetX, -offsetY);
|
|
7998
8067
|
};
|
|
7999
8068
|
CanvasRenderer.prototype.resizeImage = function (image, width, height) {
|
|
8069
|
+
// https://github.com/niklasvh/html2canvas/pull/2911
|
|
8070
|
+
// if (image.width === width && image.height === height) {
|
|
8071
|
+
// return image;
|
|
8072
|
+
// }
|
|
8000
8073
|
var _a;
|
|
8001
|
-
if (image.width === width && image.height === height) {
|
|
8002
|
-
return image;
|
|
8003
|
-
}
|
|
8004
8074
|
var ownerDocument = (_a = this.canvas.ownerDocument) !== null && _a !== void 0 ? _a : document;
|
|
8005
8075
|
var canvas = ownerDocument.createElement('canvas');
|
|
8006
8076
|
canvas.width = Math.max(1, width);
|