html2canvas-pro 1.5.1 → 1.5.3

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 (111) hide show
  1. package/.commitlintrc.json +23 -0
  2. package/.husky/commit-msg +4 -0
  3. package/.husky/pre-commit +4 -0
  4. package/.versionrc.json +12 -0
  5. package/CHANGELOG.md +20 -10
  6. package/README.md +1 -0
  7. package/dist/html2canvas-pro.esm.js +99 -28
  8. package/dist/html2canvas-pro.esm.js.map +1 -1
  9. package/dist/html2canvas-pro.js +99 -28
  10. package/dist/html2canvas-pro.js.map +1 -1
  11. package/dist/html2canvas-pro.min.js +2 -2
  12. package/dist/lib/__tests__/index.js.map +1 -1
  13. package/dist/lib/core/__mocks__/context.js.map +1 -1
  14. package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
  15. package/dist/lib/core/__tests__/logger.js.map +1 -1
  16. package/dist/lib/core/cache-storage.js.map +1 -1
  17. package/dist/lib/core/context.js.map +1 -1
  18. package/dist/lib/core/features.js.map +1 -1
  19. package/dist/lib/core/logger.js.map +1 -1
  20. package/dist/lib/css/index.js.map +1 -1
  21. package/dist/lib/css/layout/__mocks__/bounds.js.map +1 -1
  22. package/dist/lib/css/layout/text.js.map +1 -1
  23. package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -1
  24. package/dist/lib/css/property-descriptors/__tests__/font-family.js.map +1 -1
  25. package/dist/lib/css/property-descriptors/__tests__/paint-order.js.map +1 -1
  26. package/dist/lib/css/property-descriptors/__tests__/text-shadow.js.map +1 -1
  27. package/dist/lib/css/property-descriptors/__tests__/transform-tests.js.map +1 -1
  28. package/dist/lib/css/property-descriptors/background-clip.js.map +1 -1
  29. package/dist/lib/css/property-descriptors/background-image.js.map +1 -1
  30. package/dist/lib/css/property-descriptors/background-origin.js.map +1 -1
  31. package/dist/lib/css/property-descriptors/background-position.js.map +1 -1
  32. package/dist/lib/css/property-descriptors/background-repeat.js.map +1 -1
  33. package/dist/lib/css/property-descriptors/background-size.js.map +1 -1
  34. package/dist/lib/css/property-descriptors/border-radius.js.map +1 -1
  35. package/dist/lib/css/property-descriptors/border-width.js.map +1 -1
  36. package/dist/lib/css/property-descriptors/box-shadow.js.map +1 -1
  37. package/dist/lib/css/property-descriptors/counter-increment.js.map +1 -1
  38. package/dist/lib/css/property-descriptors/counter-reset.js.map +1 -1
  39. package/dist/lib/css/property-descriptors/display.js.map +1 -1
  40. package/dist/lib/css/property-descriptors/duration.js.map +1 -1
  41. package/dist/lib/css/property-descriptors/font-variant.js.map +1 -1
  42. package/dist/lib/css/property-descriptors/font-weight.js.map +1 -1
  43. package/dist/lib/css/property-descriptors/line-height.js.map +1 -1
  44. package/dist/lib/css/property-descriptors/list-style-image.js.map +1 -1
  45. package/dist/lib/css/property-descriptors/object-fit.js.map +1 -1
  46. package/dist/lib/css/property-descriptors/opacity.js.map +1 -1
  47. package/dist/lib/css/property-descriptors/overflow.js.map +1 -1
  48. package/dist/lib/css/property-descriptors/paint-order.js.map +1 -1
  49. package/dist/lib/css/property-descriptors/quotes.js.map +1 -1
  50. package/dist/lib/css/property-descriptors/text-decoration-line.js.map +1 -1
  51. package/dist/lib/css/property-descriptors/text-shadow.js.map +1 -1
  52. package/dist/lib/css/property-descriptors/transform-origin.js.map +1 -1
  53. package/dist/lib/css/property-descriptors/webkit-text-stroke-width.js.map +1 -1
  54. package/dist/lib/css/property-descriptors/z-index.js.map +1 -1
  55. package/dist/lib/css/syntax/__tests__/tokernizer-tests.js.map +1 -1
  56. package/dist/lib/css/syntax/parser.js.map +1 -1
  57. package/dist/lib/css/syntax/tokenizer.js.map +1 -1
  58. package/dist/lib/css/types/__tests__/color-tests.js.map +1 -1
  59. package/dist/lib/css/types/__tests__/image-tests.js.map +1 -1
  60. package/dist/lib/css/types/angle.js.map +1 -1
  61. package/dist/lib/css/types/color-spaces/a98.js +8 -2
  62. package/dist/lib/css/types/color-spaces/a98.js.map +1 -1
  63. package/dist/lib/css/types/color-spaces/p3.js +8 -3
  64. package/dist/lib/css/types/color-spaces/p3.js.map +1 -1
  65. package/dist/lib/css/types/color-spaces/pro-photo.js +8 -2
  66. package/dist/lib/css/types/color-spaces/pro-photo.js.map +1 -1
  67. package/dist/lib/css/types/color-spaces/rec2020.js +7 -2
  68. package/dist/lib/css/types/color-spaces/rec2020.js.map +1 -1
  69. package/dist/lib/css/types/color-spaces/srgb.js +10 -4
  70. package/dist/lib/css/types/color-spaces/srgb.js.map +1 -1
  71. package/dist/lib/css/types/color-utilities.js +36 -8
  72. package/dist/lib/css/types/color-utilities.js.map +1 -1
  73. package/dist/lib/css/types/color.js.map +1 -1
  74. package/dist/lib/css/types/functions/-prefix-linear-gradient.js.map +1 -1
  75. package/dist/lib/css/types/functions/-prefix-radial-gradient.js.map +1 -1
  76. package/dist/lib/css/types/functions/-webkit-gradient.js.map +1 -1
  77. package/dist/lib/css/types/functions/__tests__/radial-gradient.js +4 -1
  78. package/dist/lib/css/types/functions/__tests__/radial-gradient.js.map +1 -1
  79. package/dist/lib/css/types/functions/counter.js.map +1 -1
  80. package/dist/lib/css/types/functions/gradient.js.map +1 -1
  81. package/dist/lib/css/types/functions/linear-gradient.js.map +1 -1
  82. package/dist/lib/css/types/functions/radial-gradient.js.map +1 -1
  83. package/dist/lib/css/types/image.js.map +1 -1
  84. package/dist/lib/css/types/length-percentage.js.map +1 -1
  85. package/dist/lib/dom/document-cloner.js +15 -2
  86. package/dist/lib/dom/document-cloner.js.map +1 -1
  87. package/dist/lib/dom/element-container.js.map +1 -1
  88. package/dist/lib/dom/elements/li-element-container.js.map +1 -1
  89. package/dist/lib/dom/elements/ol-element-container.js.map +1 -1
  90. package/dist/lib/dom/elements/select-element-container.js.map +1 -1
  91. package/dist/lib/dom/elements/textarea-element-container.js.map +1 -1
  92. package/dist/lib/dom/node-parser.js.map +1 -1
  93. package/dist/lib/dom/replaced-elements/canvas-element-container.js.map +1 -1
  94. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
  95. package/dist/lib/dom/replaced-elements/image-element-container.js.map +1 -1
  96. package/dist/lib/dom/replaced-elements/input-element-container.js.map +1 -1
  97. package/dist/lib/dom/replaced-elements/svg-element-container.js.map +1 -1
  98. package/dist/lib/dom/text-container.js.map +1 -1
  99. package/dist/lib/index.js.map +1 -1
  100. package/dist/lib/render/background.js.map +1 -1
  101. package/dist/lib/render/bezier-curve.js.map +1 -1
  102. package/dist/lib/render/border.js.map +1 -1
  103. package/dist/lib/render/bound-curves.js.map +1 -1
  104. package/dist/lib/render/box-sizing.js.map +1 -1
  105. package/dist/lib/render/canvas/canvas-renderer.js +6 -4
  106. package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
  107. package/dist/lib/render/canvas/foreignobject-renderer.js.map +1 -1
  108. package/dist/lib/render/font-metrics.js.map +1 -1
  109. package/dist/lib/render/stacking-context.js.map +1 -1
  110. package/package.json +21 -5
  111. package/publish.sh +0 -8
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * html2canvas-pro 1.5.1 <undefined>
2
+ * html2canvas-pro 1.5.3 <undefined>
3
3
  * Copyright (c) 2024 yorickshan <https://github.com/yorickshan>
4
4
  * Released under MIT License
5
5
  */
@@ -1809,17 +1809,33 @@
1809
1809
  var extractLabComponents = function (args) {
1810
1810
  var tokens = args.filter(nonFunctionArgSeparator),
1811
1811
  // eslint-disable-next-line prettier/prettier
1812
- l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */ ? tokens[0].number / 100 : (isNumberToken(tokens[0]) ? tokens[0].number : 0),
1812
+ l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
1813
+ ? tokens[0].number / 100
1814
+ : isNumberToken(tokens[0])
1815
+ ? tokens[0].number
1816
+ : 0,
1813
1817
  // eslint-disable-next-line prettier/prettier
1814
- a = tokens[1].type === 16 /* PERCENTAGE_TOKEN */ ? tokens[1].number / 100 : (isNumberToken(tokens[1]) ? tokens[1].number : 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;
1818
+ a = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
1819
+ ? tokens[1].number / 100
1820
+ : isNumberToken(tokens[1])
1821
+ ? tokens[1].number
1822
+ : 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;
1815
1823
  return [l, a, b, alpha];
1816
1824
  };
1817
1825
  var extractOkLchComponents = function (args) {
1818
1826
  var tokens = args.filter(nonFunctionArgSeparator),
1819
1827
  // eslint-disable-next-line prettier/prettier
1820
- l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */ ? tokens[0].number / 100 : isNumberToken(tokens[0]) ? tokens[0].number : 0,
1828
+ l = tokens[0].type === 16 /* PERCENTAGE_TOKEN */
1829
+ ? tokens[0].number / 100
1830
+ : isNumberToken(tokens[0])
1831
+ ? tokens[0].number
1832
+ : 0,
1821
1833
  // eslint-disable-next-line prettier/prettier
1822
- c = tokens[1].type === 16 /* PERCENTAGE_TOKEN */ ? tokens[1].number / 100 : isNumberToken(tokens[1]) ? tokens[1].number : 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;
1834
+ c = tokens[1].type === 16 /* PERCENTAGE_TOKEN */
1835
+ ? tokens[1].number / 100
1836
+ : isNumberToken(tokens[1])
1837
+ ? tokens[1].number
1838
+ : 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;
1823
1839
  return [l, c, h, a];
1824
1840
  };
1825
1841
  /**
@@ -1830,7 +1846,10 @@
1830
1846
  var d65toD50 = function (xyz) {
1831
1847
  return multiplyMatrices(
1832
1848
  // eslint-disable-next-line prettier/prettier
1833
- [1.0479297925449969, 0.022946870601609652, -0.05019226628920524, 0.02962780877005599, 0.9904344267538799, -0.017073799063418826, -0.009243040646204504, 0.015055191490298152, 0.7518742814281371], xyz);
1849
+ [
1850
+ 1.0479297925449969, 0.022946870601609652, -0.05019226628920524, 0.02962780877005599, 0.9904344267538799,
1851
+ -0.017073799063418826, -0.009243040646204504, 0.015055191490298152, 0.7518742814281371
1852
+ ], xyz);
1834
1853
  };
1835
1854
  /**
1836
1855
  * Convert D50 to D65
@@ -1840,7 +1859,10 @@
1840
1859
  var d50toD65 = function (xyz) {
1841
1860
  return multiplyMatrices(
1842
1861
  // eslint-disable-next-line prettier/prettier
1843
- [0.955473421488075, -0.02309845494876471, 0.06325924320057072, -0.0283697093338637, 1.0099953980813041, 0.021041441191917323, 0.012314014864481998, -0.020507649298898964, 1.330365926242124], xyz);
1862
+ [
1863
+ 0.955473421488075, -0.02309845494876471, 0.06325924320057072, -0.0283697093338637, 1.0099953980813041,
1864
+ 0.021041441191917323, 0.012314014864481998, -0.020507649298898964, 1.330365926242124
1865
+ ], xyz);
1844
1866
  };
1845
1867
  var hue2rgb = function (t1, t2, hue) {
1846
1868
  if (hue < 0) {
@@ -1895,10 +1917,16 @@
1895
1917
  var oklab2xyz = function (lab) {
1896
1918
  var LMSg = multiplyMatrices(
1897
1919
  // eslint-disable-next-line prettier/prettier
1898
- [1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1, -0.0894841775298119, -1.2914855480194092], lab), LMS = LMSg.map(function (val) { return Math.pow(val, 3); });
1920
+ [
1921
+ 1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1,
1922
+ -0.0894841775298119, -1.2914855480194092
1923
+ ], lab), LMS = LMSg.map(function (val) { return Math.pow(val, 3); });
1899
1924
  return multiplyMatrices(
1900
1925
  // eslint-disable-next-line prettier/prettier
1901
- [1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317, -0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816], LMS);
1926
+ [
1927
+ 1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317,
1928
+ -0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816
1929
+ ], LMS);
1902
1930
  };
1903
1931
  /**
1904
1932
  * Convert Lab to D50-adapted XYZ
@@ -2035,7 +2063,10 @@
2035
2063
  var xyz2rgbLinear = function (xyz) {
2036
2064
  return multiplyMatrices(
2037
2065
  // eslint-disable-next-line prettier/prettier
2038
- [3.2409699419045226, -1.537383177570094, -0.4986107602930034, -0.9692436362808796, 1.8759675015077202, 0.04155505740717559, 0.05563007969699366, -0.20397695888897652, 1.0569715142428786], xyz);
2066
+ [
2067
+ 3.2409699419045226, -1.537383177570094, -0.4986107602930034, -0.9692436362808796, 1.8759675015077202,
2068
+ 0.04155505740717559, 0.05563007969699366, -0.20397695888897652, 1.0569715142428786
2069
+ ], xyz);
2039
2070
  };
2040
2071
  /**
2041
2072
  * Convert XYZ to linear-light sRGB
@@ -2045,7 +2076,10 @@
2045
2076
  var rgbLinear2xyz = function (xyz) {
2046
2077
  return multiplyMatrices(
2047
2078
  // eslint-disable-next-line prettier/prettier
2048
- [0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756, 0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607], xyz);
2079
+ [
2080
+ 0.41239079926595934, 0.357584339383878, 0.1804807884018343, 0.21263900587151027, 0.715168678767756,
2081
+ 0.07219231536073371, 0.01933081871559182, 0.11919477979462598, 0.9505321522496607
2082
+ ], xyz);
2049
2083
  };
2050
2084
  /**
2051
2085
  * Convert sRGB to RGB
@@ -2056,7 +2090,7 @@
2056
2090
  return rgb.map(function (c) {
2057
2091
  var sign = c < 0 ? -1 : 1, abs = Math.abs(c);
2058
2092
  // eslint-disable-next-line prettier/prettier
2059
- return abs > 0.0031308 ? sign * (1.055 * (Math.pow(abs, (1 / 2.4))) - 0.055) : (12.92 * c);
2093
+ return abs > 0.0031308 ? sign * (1.055 * Math.pow(abs, (1 / 2.4)) - 0.055) : 12.92 * c;
2060
2094
  });
2061
2095
  };
2062
2096
  /**
@@ -2068,7 +2102,7 @@
2068
2102
  return rgb.map(function (c) {
2069
2103
  var sign = c < 0 ? -1 : 1, abs = Math.abs(c);
2070
2104
  // eslint-disable-next-line prettier/prettier
2071
- return abs <= 0.04045 ? c / 12.92 : sign * (Math.pow(((abs + 0.055) / 1.055), 2.4));
2105
+ return abs <= 0.04045 ? c / 12.92 : sign * Math.pow(((abs + 0.055) / 1.055), 2.4);
2072
2106
  });
2073
2107
  };
2074
2108
  /**
@@ -2105,7 +2139,9 @@
2105
2139
  var p3LinearToXyz = function (p3l) {
2106
2140
  return multiplyMatrices(
2107
2141
  // eslint-disable-next-line prettier/prettier
2108
- [0.4865709486482162, 0.26566769316909306, 0.1982172852343625, 0.2289745640697488, 0.6917385218365064, 0.079286914093745, 0.0, 0.04511338185890264, 1.043944368900976
2142
+ [
2143
+ 0.4865709486482162, 0.26566769316909306, 0.1982172852343625, 0.2289745640697488, 0.6917385218365064,
2144
+ 0.079286914093745, 0.0, 0.04511338185890264, 1.043944368900976
2109
2145
  ], p3l);
2110
2146
  };
2111
2147
  /**
@@ -2116,7 +2152,10 @@
2116
2152
  var xyzToP3Linear = function (xyz) {
2117
2153
  return multiplyMatrices(
2118
2154
  // eslint-disable-next-line prettier/prettier
2119
- [2.493496911941425, -0.9313836179191239, -0.40271078445071684, -0.8294889695615747, 1.7626640603183463, 0.023624685841943577, 0.03584583024378447, -0.07617238926804182, 0.9568845240076872], xyz);
2155
+ [
2156
+ 2.493496911941425, -0.9313836179191239, -0.40271078445071684, -0.8294889695615747, 1.7626640603183463,
2157
+ 0.023624685841943577, 0.03584583024378447, -0.07617238926804182, 0.9568845240076872
2158
+ ], xyz);
2120
2159
  };
2121
2160
  /**
2122
2161
  * Convert P3 to P3 linear
@@ -2130,7 +2169,7 @@
2130
2169
  return c / 12.92;
2131
2170
  }
2132
2171
  // eslint-disable-next-line prettier/prettier
2133
- return sign * (Math.pow(((c + 0.055) / 1.055), 2.4)) || 0;
2172
+ return sign * Math.pow(((c + 0.055) / 1.055), 2.4) || 0;
2134
2173
  });
2135
2174
  };
2136
2175
  /**
@@ -2180,7 +2219,10 @@
2180
2219
  var xyz2a98Linear = function (xyz) {
2181
2220
  return multiplyMatrices(
2182
2221
  // eslint-disable-next-line prettier/prettier
2183
- [2.0415879038107465, -0.5650069742788596, -0.34473135077832956, -0.9692436362808795, 1.8759675015077202, 0.04155505740717557, 0.013444280632031142, -0.11836239223101838, 1.0151749943912054], xyz);
2222
+ [
2223
+ 2.0415879038107465, -0.5650069742788596, -0.34473135077832956, -0.9692436362808795, 1.8759675015077202,
2224
+ 0.04155505740717557, 0.013444280632031142, -0.11836239223101838, 1.0151749943912054
2225
+ ], xyz);
2184
2226
  };
2185
2227
  /**
2186
2228
  * Convert XYZ to a98 linear
@@ -2190,7 +2232,10 @@
2190
2232
  var a98Linear2xyz = function (a98) {
2191
2233
  return multiplyMatrices(
2192
2234
  // eslint-disable-next-line prettier/prettier
2193
- [0.5766690429101305, 0.1855582379065463, 0.1882286462349947, 0.29734497525053605, 0.6273635662554661, 0.0752914584939978, 0.02703136138641234, 0.07068885253582723, 0.9913375368376388], a98);
2235
+ [
2236
+ 0.5766690429101305, 0.1855582379065463, 0.1882286462349947, 0.29734497525053605, 0.6273635662554661,
2237
+ 0.0752914584939978, 0.02703136138641234, 0.07068885253582723, 0.9913375368376388
2238
+ ], a98);
2194
2239
  };
2195
2240
  /**
2196
2241
  * Convert A98 RGB to rgb linear
@@ -2246,7 +2291,10 @@
2246
2291
  var proPhotoLinearToXyz = function (p3) {
2247
2292
  return multiplyMatrices(
2248
2293
  // eslint-disable-next-line prettier/prettier
2249
- [0.79776664490064230, 0.13518129740053308, 0.03134773412839220, 0.28807482881940130, 0.71183523424187300, 0.00008993693872564, 0.0, 0.0, 0.82510460251046020], p3);
2294
+ [
2295
+ 0.7977666449006423, 0.13518129740053308, 0.0313477341283922, 0.2880748288194013, 0.711835234241873,
2296
+ 0.00008993693872564, 0.0, 0.0, 0.8251046025104602
2297
+ ], p3);
2250
2298
  };
2251
2299
  /**
2252
2300
  * Convert XYZ D65 to linear-light display-p3
@@ -2256,7 +2304,10 @@
2256
2304
  var xyzToProPhotoLinear = function (xyz) {
2257
2305
  return multiplyMatrices(
2258
2306
  // eslint-disable-next-line prettier/prettier
2259
- [1.34578688164715830, -0.25557208737979464, -0.05110186497554526, -0.54463070512490190, 1.50824774284514680, 0.02052744743642139, 0.0, 0.0, 1.21196754563894520], xyz);
2307
+ [
2308
+ 1.3457868816471583, -0.25557208737979464, -0.05110186497554526, -0.5446307051249019, 1.5082477428451468,
2309
+ 0.02052744743642139, 0.0, 0.0, 1.2119675456389452
2310
+ ], xyz);
2260
2311
  };
2261
2312
  /**
2262
2313
  * Convert Pro-Photo to Pro-Photo Linear
@@ -2339,7 +2390,9 @@
2339
2390
  var rec2020LinearToXyz = function (rec) {
2340
2391
  return multiplyMatrices(
2341
2392
  // eslint-disable-next-line prettier/prettier
2342
- [0.6369580483012914, 0.14461690358620832, 0.1688809751641721, 0.2627002120112671, 0.6779980715188708, 0.05930171646986196, 0.0, 0.028072693049087428, 1.060985057710791
2393
+ [
2394
+ 0.6369580483012914, 0.14461690358620832, 0.1688809751641721, 0.2627002120112671, 0.6779980715188708,
2395
+ 0.05930171646986196, 0.0, 0.028072693049087428, 1.060985057710791
2343
2396
  ], rec);
2344
2397
  };
2345
2398
  /**
@@ -2350,7 +2403,10 @@
2350
2403
  var xyzToRec2020Linear = function (xyz) {
2351
2404
  return multiplyMatrices(
2352
2405
  // eslint-disable-next-line prettier/prettier
2353
- [1.716651187971268, -0.355670783776392, -0.253366281373660, -0.666684351832489, 1.616481236634939, 0.0157685458139111, 0.017639857445311, -0.042770613257809, 0.942103121235474], xyz);
2406
+ [
2407
+ 1.716651187971268, -0.355670783776392, -0.25336628137366, -0.666684351832489, 1.616481236634939,
2408
+ 0.0157685458139111, 0.017639857445311, -0.042770613257809, 0.942103121235474
2409
+ ], xyz);
2354
2410
  };
2355
2411
  /**
2356
2412
  * Convert Rec2020 to XYZ
@@ -6056,11 +6112,17 @@
6056
6112
  }
6057
6113
  });
6058
6114
  }); });
6115
+ var adoptedNode = documentClone.adoptNode(this.documentElement);
6116
+ /**
6117
+ * The baseURI of the document will be lost after documentClone.open().
6118
+ * We can avoid it by adding <base> element.
6119
+ * */
6120
+ addBase(adoptedNode, documentClone);
6059
6121
  documentClone.open();
6060
6122
  documentClone.write(serializeDoctype(document.doctype) + "<html></html>");
6061
6123
  // Chrome scrolls the parent document for some reason after the write to the cloned window???
6062
6124
  restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY);
6063
- documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement);
6125
+ documentClone.replaceChild(adoptedNode, documentClone.documentElement);
6064
6126
  documentClone.close();
6065
6127
  return iframeLoad;
6066
6128
  };
@@ -6138,7 +6200,7 @@
6138
6200
  clonedCanvas.width = canvas.width;
6139
6201
  clonedCanvas.height = canvas.height;
6140
6202
  var ctx = canvas.getContext('2d');
6141
- var clonedCtx = clonedCanvas.getContext('2d');
6203
+ var clonedCtx = clonedCanvas.getContext('2d', { willReadFrequently: true });
6142
6204
  if (clonedCtx) {
6143
6205
  if (!this.options.allowTaint && ctx) {
6144
6206
  clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);
@@ -6468,6 +6530,13 @@
6468
6530
  body.appendChild(style);
6469
6531
  }
6470
6532
  };
6533
+ var addBase = function (targetELement, referenceDocument) {
6534
+ var _a;
6535
+ var baseNode = referenceDocument.createElement('base');
6536
+ baseNode.href = referenceDocument.baseURI;
6537
+ var headEle = targetELement.getElementsByTagName('head').item(0);
6538
+ 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);
6539
+ };
6471
6540
 
6472
6541
  var CacheStorage = /** @class */ (function () {
6473
6542
  function CacheStorage() {
@@ -8024,7 +8093,7 @@
8024
8093
  case 0:
8025
8094
  index = container.styles.backgroundImage.length - 1;
8026
8095
  _loop_1 = function (backgroundImage) {
8027
- var image, url, _c, path, x, y, width, height, pattern, _d, path, x, y, width, height, _e, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _f, path, left, top_1, width, height, position, x, y, _g, rx, ry, radialGradient_1, midX, midY, f, invF;
8096
+ var image, url, imageWidth, imageHeight, _c, path, x, y, width, height, pattern, _d, path, x, y, width, height, _e, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _f, path, left, top_1, width, height, position, x, y, _g, rx, ry, radialGradient_1, midX, midY, f, invF;
8028
8097
  return __generator(this, function (_h) {
8029
8098
  switch (_h.label) {
8030
8099
  case 0:
@@ -8044,10 +8113,12 @@
8044
8113
  return [3 /*break*/, 4];
8045
8114
  case 4:
8046
8115
  if (image) {
8116
+ imageWidth = isNaN(image.width) || image.width === 0 ? 1 : image.width;
8117
+ imageHeight = isNaN(image.height) || image.height === 0 ? 1 : image.height;
8047
8118
  _c = calculateBackgroundRendering(container, index, [
8048
- image.width,
8049
- image.height,
8050
- image.width / image.height
8119
+ imageWidth,
8120
+ imageHeight,
8121
+ imageWidth / imageHeight
8051
8122
  ]), path = _c[0], x = _c[1], y = _c[2], width = _c[3], height = _c[4];
8052
8123
  pattern = this_1.ctx.createPattern(this_1.resizeImage(image, width, height), 'repeat');
8053
8124
  this_1.renderRepeat(path, pattern, x, y);