html2canvas-pro 1.6.6 → 2.0.0

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 (123) hide show
  1. package/README.md +1 -0
  2. package/demo/image-smoothing-demo.html +256 -0
  3. package/demo/refactoring-test.html +602 -0
  4. package/dist/html2canvas-pro.esm.js +2846 -1238
  5. package/dist/html2canvas-pro.esm.js.map +1 -1
  6. package/dist/html2canvas-pro.js +2849 -1237
  7. package/dist/html2canvas-pro.js.map +1 -1
  8. package/dist/html2canvas-pro.min.js +5 -4
  9. package/dist/lib/__tests__/index.js +8 -2
  10. package/dist/lib/__tests__/index.js.map +1 -1
  11. package/dist/lib/config.js +72 -0
  12. package/dist/lib/config.js.map +1 -0
  13. package/dist/lib/core/__tests__/cache-storage.js +6 -3
  14. package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
  15. package/dist/lib/core/__tests__/cache-storage.test.js +158 -0
  16. package/dist/lib/core/__tests__/cache-storage.test.js.map +1 -0
  17. package/dist/lib/core/__tests__/validator.js +296 -0
  18. package/dist/lib/core/__tests__/validator.js.map +1 -0
  19. package/dist/lib/core/cache-storage.js +130 -11
  20. package/dist/lib/core/cache-storage.js.map +1 -1
  21. package/dist/lib/core/context.js +5 -2
  22. package/dist/lib/core/context.js.map +1 -1
  23. package/dist/lib/core/debugger.js +3 -0
  24. package/dist/lib/core/debugger.js.map +1 -1
  25. package/dist/lib/core/origin-checker.js +54 -0
  26. package/dist/lib/core/origin-checker.js.map +1 -0
  27. package/dist/lib/core/performance-monitor.js +208 -0
  28. package/dist/lib/core/performance-monitor.js.map +1 -0
  29. package/dist/lib/core/validator.js +501 -0
  30. package/dist/lib/core/validator.js.map +1 -0
  31. package/dist/lib/css/index.js +2 -0
  32. package/dist/lib/css/index.js.map +1 -1
  33. package/dist/lib/css/property-descriptors/__tests__/background-tests.js +7 -1
  34. package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -1
  35. package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js +142 -0
  36. package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js.map +1 -0
  37. package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js +167 -0
  38. package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js.map +1 -0
  39. package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js +61 -0
  40. package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js.map +1 -0
  41. package/dist/lib/css/property-descriptors/image-rendering.js +34 -0
  42. package/dist/lib/css/property-descriptors/image-rendering.js.map +1 -0
  43. package/dist/lib/css/types/__tests__/image-tests.js +7 -1
  44. package/dist/lib/css/types/__tests__/image-tests.js.map +1 -1
  45. package/dist/lib/css/types/color-math.js +26 -0
  46. package/dist/lib/css/types/color-math.js.map +1 -0
  47. package/dist/lib/css/types/color-spaces/srgb.js +6 -6
  48. package/dist/lib/css/types/color-spaces/srgb.js.map +1 -1
  49. package/dist/lib/css/types/color-utilities.js +13 -22
  50. package/dist/lib/css/types/color-utilities.js.map +1 -1
  51. package/dist/lib/dom/__tests__/dom-normalizer.test.js +113 -0
  52. package/dist/lib/dom/__tests__/dom-normalizer.test.js.map +1 -0
  53. package/dist/lib/dom/__tests__/element-container.test.js +109 -0
  54. package/dist/lib/dom/__tests__/element-container.test.js.map +1 -0
  55. package/dist/lib/dom/document-cloner.js +152 -11
  56. package/dist/lib/dom/document-cloner.js.map +1 -1
  57. package/dist/lib/dom/dom-normalizer.js +80 -0
  58. package/dist/lib/dom/dom-normalizer.js.map +1 -0
  59. package/dist/lib/dom/element-container.js +32 -15
  60. package/dist/lib/dom/element-container.js.map +1 -1
  61. package/dist/lib/dom/node-parser.js +16 -20
  62. package/dist/lib/dom/node-parser.js.map +1 -1
  63. package/dist/lib/dom/node-type-guards.js +44 -0
  64. package/dist/lib/dom/node-type-guards.js.map +1 -0
  65. package/dist/lib/dom/replaced-elements/iframe-element-container.js +5 -4
  66. package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
  67. package/dist/lib/index.js +148 -41
  68. package/dist/lib/index.js.map +1 -1
  69. package/dist/lib/render/canvas/__tests__/background-renderer.test.js +65 -0
  70. package/dist/lib/render/canvas/__tests__/background-renderer.test.js.map +1 -0
  71. package/dist/lib/render/canvas/__tests__/border-renderer.test.js +23 -0
  72. package/dist/lib/render/canvas/__tests__/border-renderer.test.js.map +1 -0
  73. package/dist/lib/render/canvas/__tests__/effects-renderer.test.js +30 -0
  74. package/dist/lib/render/canvas/__tests__/effects-renderer.test.js.map +1 -0
  75. package/dist/lib/render/canvas/__tests__/text-renderer.test.js +63 -0
  76. package/dist/lib/render/canvas/__tests__/text-renderer.test.js.map +1 -0
  77. package/dist/lib/render/canvas/background-renderer.js +222 -0
  78. package/dist/lib/render/canvas/background-renderer.js.map +1 -0
  79. package/dist/lib/render/canvas/border-renderer.js +185 -0
  80. package/dist/lib/render/canvas/border-renderer.js.map +1 -0
  81. package/dist/lib/render/canvas/canvas-renderer.js +61 -689
  82. package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
  83. package/dist/lib/render/canvas/effects-renderer.js +89 -0
  84. package/dist/lib/render/canvas/effects-renderer.js.map +1 -0
  85. package/dist/lib/render/canvas/text-renderer.js +508 -0
  86. package/dist/lib/render/canvas/text-renderer.js.map +1 -0
  87. package/dist/lib/render/renderer-interface.js +3 -0
  88. package/dist/lib/render/renderer-interface.js.map +1 -0
  89. package/dist/types/config.d.ts +54 -0
  90. package/dist/types/core/__tests__/cache-storage.test.d.ts +1 -0
  91. package/dist/types/core/__tests__/validator.d.ts +1 -0
  92. package/dist/types/core/cache-storage.d.ts +42 -1
  93. package/dist/types/core/context.d.ts +5 -1
  94. package/dist/types/core/origin-checker.d.ts +33 -0
  95. package/dist/types/core/performance-monitor.d.ts +131 -0
  96. package/dist/types/core/validator.d.ts +132 -0
  97. package/dist/types/css/index.d.ts +2 -0
  98. package/dist/types/css/property-descriptors/__tests__/image-rendering-integration.test.d.ts +1 -0
  99. package/dist/types/css/property-descriptors/__tests__/image-rendering-performance.test.d.ts +1 -0
  100. package/dist/types/css/property-descriptors/__tests__/image-rendering.test.d.ts +1 -0
  101. package/dist/types/css/property-descriptors/image-rendering.d.ts +8 -0
  102. package/dist/types/css/types/color-math.d.ts +12 -0
  103. package/dist/types/css/types/color-utilities.d.ts +2 -3
  104. package/dist/types/dom/__tests__/dom-normalizer.test.d.ts +1 -0
  105. package/dist/types/dom/__tests__/element-container.test.d.ts +1 -0
  106. package/dist/types/dom/document-cloner.d.ts +46 -0
  107. package/dist/types/dom/dom-normalizer.d.ts +43 -0
  108. package/dist/types/dom/element-container.d.ts +20 -1
  109. package/dist/types/dom/node-parser.d.ts +2 -7
  110. package/dist/types/dom/node-type-guards.d.ts +33 -0
  111. package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +4 -1
  112. package/dist/types/index.d.ts +48 -3
  113. package/dist/types/render/canvas/__tests__/background-renderer.test.d.ts +1 -0
  114. package/dist/types/render/canvas/__tests__/border-renderer.test.d.ts +1 -0
  115. package/dist/types/render/canvas/__tests__/effects-renderer.test.d.ts +1 -0
  116. package/dist/types/render/canvas/__tests__/text-renderer.test.d.ts +1 -0
  117. package/dist/types/render/canvas/background-renderer.d.ts +87 -0
  118. package/dist/types/render/canvas/border-renderer.d.ts +67 -0
  119. package/dist/types/render/canvas/canvas-renderer.d.ts +19 -23
  120. package/dist/types/render/canvas/effects-renderer.d.ts +64 -0
  121. package/dist/types/render/canvas/text-renderer.d.ts +57 -0
  122. package/dist/types/render/renderer-interface.d.ts +26 -0
  123. package/package.json +2 -1
@@ -5,6 +5,9 @@ const parser_1 = require("../syntax/parser");
5
5
  const srgb_1 = require("./color-spaces/srgb");
6
6
  const angle_1 = require("./angle");
7
7
  const length_percentage_1 = require("./length-percentage");
8
+ const color_math_1 = require("./color-math");
9
+ Object.defineProperty(exports, "clamp", { enumerable: true, get: function () { return color_math_1.clamp; } });
10
+ Object.defineProperty(exports, "multiplyMatrices", { enumerable: true, get: function () { return color_math_1.multiplyMatrices; } });
8
11
  const isTransparent = (color) => (0xff & color) === 0;
9
12
  exports.isTransparent = isTransparent;
10
13
  const asString = (color) => {
@@ -30,25 +33,13 @@ const getTokenColorValue = (token, i) => {
30
33
  exports.getTokenColorValue = getTokenColorValue;
31
34
  const isRelativeTransform = (tokens) => (tokens[0].type === 20 /* TokenType.IDENT_TOKEN */ ? tokens[0].value : 'unknown') === 'from';
32
35
  exports.isRelativeTransform = isRelativeTransform;
33
- const clamp = (value, min, max) => {
34
- return Math.min(Math.max(value, min), max);
35
- };
36
- exports.clamp = clamp;
37
- const multiplyMatrices = (A, B) => {
38
- return [
39
- A[0] * B[0] + A[1] * B[1] + A[2] * B[2],
40
- A[3] * B[0] + A[4] * B[1] + A[5] * B[2],
41
- A[6] * B[0] + A[7] * B[1] + A[8] * B[2]
42
- ];
43
- };
44
- exports.multiplyMatrices = multiplyMatrices;
45
36
  const packSrgb = (args) => {
46
- return (0, exports.pack)((0, exports.clamp)(Math.round(args[0] * 255), 0, 255), (0, exports.clamp)(Math.round(args[1] * 255), 0, 255), (0, exports.clamp)(Math.round(args[2] * 255), 0, 255), (0, exports.clamp)(args[3], 0, 1));
37
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(args[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(args[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(args[2] * 255), 0, 255), (0, color_math_1.clamp)(args[3], 0, 1));
47
38
  };
48
39
  exports.packSrgb = packSrgb;
49
40
  const packSrgbLinear = ([r, g, b, a]) => {
50
41
  const rgb = (0, srgb_1.srgbLinear2rgb)([r, g, b]);
51
- return (0, exports.pack)((0, exports.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[2] * 255), 0, 255), a);
42
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[2] * 255), 0, 255), a);
52
43
  };
53
44
  exports.packSrgbLinear = packSrgbLinear;
54
45
  const packXYZ = (args) => {
@@ -61,7 +52,7 @@ const packLab = (_context, args) => {
61
52
  throw new Error('Relative color not supported for lab()');
62
53
  }
63
54
  const [l, a, b, alpha] = (0, exports.extractLabComponents)(args), rgb = (0, srgb_1.srgbLinear2rgb)((0, srgb_1.xyz2rgbLinear)(lab2xyz([l, a, b])));
64
- return (0, exports.pack)((0, exports.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
55
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
65
56
  };
66
57
  exports.packLab = packLab;
67
58
  const packOkLab = (_context, args) => {
@@ -69,7 +60,7 @@ const packOkLab = (_context, args) => {
69
60
  throw new Error('Relative color not supported for oklab()');
70
61
  }
71
62
  const [l, a, b, alpha] = (0, exports.extractLabComponents)(args), rgb = (0, srgb_1.srgbLinear2rgb)((0, srgb_1.xyz2rgbLinear)(oklab2xyz([l, a, b])));
72
- return (0, exports.pack)((0, exports.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
63
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
73
64
  };
74
65
  exports.packOkLab = packOkLab;
75
66
  const packOkLch = (_context, args) => {
@@ -77,7 +68,7 @@ const packOkLch = (_context, args) => {
77
68
  throw new Error('Relative color not supported for oklch()');
78
69
  }
79
70
  const [l, c, h, alpha] = (0, exports.extractOkLchComponents)(args), rgb = (0, srgb_1.srgbLinear2rgb)((0, srgb_1.xyz2rgbLinear)(oklab2xyz(lch2lab([l, c, h]))));
80
- return (0, exports.pack)((0, exports.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
71
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[2] * 255), 0, 255), alpha);
81
72
  };
82
73
  exports.packOkLch = packOkLch;
83
74
  const packLch = (_context, args) => {
@@ -85,7 +76,7 @@ const packLch = (_context, args) => {
85
76
  throw new Error('Relative color not supported for lch()');
86
77
  }
87
78
  const [l, c, h, a] = (0, exports.extractLchComponents)(args), rgb = (0, srgb_1.srgbLinear2rgb)((0, srgb_1.xyz2rgbLinear)(lab2xyz(lch2lab([l, c, h]))));
88
- return (0, exports.pack)((0, exports.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, exports.clamp)(Math.round(rgb[2] * 255), 0, 255), a);
79
+ return (0, exports.pack)((0, color_math_1.clamp)(Math.round(rgb[0] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[1] * 255), 0, 255), (0, color_math_1.clamp)(Math.round(rgb[2] * 255), 0, 255), a);
89
80
  };
90
81
  exports.packLch = packLch;
91
82
  const extractHslComponents = (context, args) => {
@@ -138,7 +129,7 @@ exports.extractOkLchComponents = extractOkLchComponents;
138
129
  * @param xyz
139
130
  */
140
131
  const d65toD50 = (xyz) => {
141
- return (0, exports.multiplyMatrices)([
132
+ return (0, color_math_1.multiplyMatrices)([
142
133
  1.0479297925449969, 0.022946870601609652, -0.05019226628920524, 0.02962780877005599, 0.9904344267538799,
143
134
  -0.017073799063418826, -0.009243040646204504, 0.015055191490298152, 0.7518742814281371
144
135
  ], xyz);
@@ -150,7 +141,7 @@ exports.d65toD50 = d65toD50;
150
141
  * @param xyz
151
142
  */
152
143
  const d50toD65 = (xyz) => {
153
- return (0, exports.multiplyMatrices)([
144
+ return (0, color_math_1.multiplyMatrices)([
154
145
  0.955473421488075, -0.02309845494876471, 0.06325924320057072, -0.0283697093338637, 1.0099953980813041,
155
146
  0.021041441191917323, 0.012314014864481998, -0.020507649298898964, 1.330365926242124
156
147
  ], xyz);
@@ -206,11 +197,11 @@ const lch2lab = ([l, c, h]) => {
206
197
  * @param lab
207
198
  */
208
199
  const oklab2xyz = (lab) => {
209
- const LMSg = (0, exports.multiplyMatrices)([
200
+ const LMSg = (0, color_math_1.multiplyMatrices)([
210
201
  1, 0.3963377773761749, 0.2158037573099136, 1, -0.1055613458156586, -0.0638541728258133, 1,
211
202
  -0.0894841775298119, -1.2914855480194092
212
203
  ], lab), LMS = LMSg.map((val) => val ** 3);
213
- return (0, exports.multiplyMatrices)([
204
+ return (0, color_math_1.multiplyMatrices)([
214
205
  1.2268798758459243, -0.5578149944602171, 0.2813910456659647, -0.0405757452148008, 1.112286803280317,
215
206
  -0.0717110580655164, -0.0763729366746601, -0.4214933324022432, 1.5869240198367816
216
207
  ], LMS);
@@ -1 +1 @@
1
- {"version":3,"file":"color-utilities.js","sourceRoot":"","sources":["../../../../src/css/types/color-utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"color-utilities.js","sourceRoot":"","sources":["../../../../src/css/types/color-utilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert_1 = require("assert");
4
+ const dom_normalizer_1 = require("../dom-normalizer");
5
+ const css_1 = require("../../css");
6
+ const context_1 = require("../../core/context");
7
+ const bounds_1 = require("../../css/layout/bounds");
8
+ const config_1 = require("../../config");
9
+ describe('DOMNormalizer', () => {
10
+ let context;
11
+ let mockElement;
12
+ beforeEach(() => {
13
+ const mockWindow = {
14
+ document: {
15
+ createElement: (_name) => {
16
+ let _href = '';
17
+ return {
18
+ set href(value) {
19
+ _href = value;
20
+ },
21
+ get href() {
22
+ return _href;
23
+ },
24
+ get protocol() {
25
+ return 'http:';
26
+ },
27
+ get hostname() {
28
+ return 'localhost';
29
+ },
30
+ get port() {
31
+ return '';
32
+ }
33
+ };
34
+ }
35
+ },
36
+ location: { href: 'http://localhost/' },
37
+ getComputedStyle: () => ({
38
+ animationDuration: '1s',
39
+ transform: 'rotate(45deg)',
40
+ rotate: '45deg'
41
+ })
42
+ };
43
+ const config = new config_1.Html2CanvasConfig({ window: mockWindow });
44
+ context = new context_1.Context({
45
+ logging: false,
46
+ imageTimeout: 15000,
47
+ useCORS: false,
48
+ allowTaint: false
49
+ }, new bounds_1.Bounds(0, 0, 800, 600), config);
50
+ // Create a mock HTMLElement with style property
51
+ mockElement = {
52
+ nodeType: 1, // Node.ELEMENT_NODE
53
+ tagName: 'DIV',
54
+ style: {
55
+ animationDuration: '1s',
56
+ transform: 'rotate(45deg)',
57
+ rotate: '45deg'
58
+ }
59
+ };
60
+ });
61
+ it('should disable animations on element', () => {
62
+ const styles = new css_1.CSSParsedDeclaration(context, {
63
+ animationDuration: '1s',
64
+ transform: null,
65
+ rotate: null
66
+ });
67
+ dom_normalizer_1.DOMNormalizer.normalizeElement(mockElement, styles);
68
+ (0, assert_1.strictEqual)(mockElement.style.animationDuration, '0s');
69
+ });
70
+ it('should reset transform property', () => {
71
+ const styles = new css_1.CSSParsedDeclaration(context, {
72
+ animationDuration: '0s',
73
+ transform: 'rotate(45deg)',
74
+ rotate: null
75
+ });
76
+ dom_normalizer_1.DOMNormalizer.normalizeElement(mockElement, styles);
77
+ (0, assert_1.strictEqual)(mockElement.style.transform, 'none');
78
+ });
79
+ it('should reset rotate property', () => {
80
+ const styles = new css_1.CSSParsedDeclaration(context, {
81
+ animationDuration: '0s',
82
+ transform: null,
83
+ rotate: '45deg'
84
+ });
85
+ dom_normalizer_1.DOMNormalizer.normalizeElement(mockElement, styles);
86
+ (0, assert_1.strictEqual)(mockElement.style.rotate, 'none');
87
+ });
88
+ it('should normalize all properties when all are set', () => {
89
+ const styles = new css_1.CSSParsedDeclaration(context, {
90
+ animationDuration: '2s',
91
+ transform: 'rotate(90deg)',
92
+ rotate: '90deg'
93
+ });
94
+ dom_normalizer_1.DOMNormalizer.normalizeElement(mockElement, styles);
95
+ (0, assert_1.strictEqual)(mockElement.style.animationDuration, '0s');
96
+ (0, assert_1.strictEqual)(mockElement.style.transform, 'none');
97
+ (0, assert_1.strictEqual)(mockElement.style.rotate, 'none');
98
+ });
99
+ it('should not modify element if it is not an HTMLElement', () => {
100
+ const svgElement = {
101
+ nodeType: 1,
102
+ tagName: 'svg'
103
+ };
104
+ const styles = new css_1.CSSParsedDeclaration(context, {
105
+ animationDuration: '1s',
106
+ transform: 'rotate(45deg)',
107
+ rotate: '45deg'
108
+ });
109
+ // Should not throw and should not try to access style
110
+ dom_normalizer_1.DOMNormalizer.normalizeElement(svgElement, styles);
111
+ });
112
+ });
113
+ //# sourceMappingURL=dom-normalizer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-normalizer.test.js","sourceRoot":"","sources":["../../../../src/dom/__tests__/dom-normalizer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert_1 = require("assert");
4
+ const element_container_1 = require("../element-container");
5
+ const context_1 = require("../../core/context");
6
+ const bounds_1 = require("../../css/layout/bounds");
7
+ const config_1 = require("../../config");
8
+ describe('ElementContainer', () => {
9
+ let context;
10
+ let mockElement;
11
+ beforeEach(() => {
12
+ const mockWindow = {
13
+ document: {
14
+ createElement: (_name) => {
15
+ let _href = '';
16
+ return {
17
+ set href(value) {
18
+ _href = value;
19
+ },
20
+ get href() {
21
+ return _href;
22
+ },
23
+ get protocol() {
24
+ return 'http:';
25
+ },
26
+ get hostname() {
27
+ return 'localhost';
28
+ },
29
+ get port() {
30
+ return '';
31
+ }
32
+ };
33
+ }
34
+ },
35
+ location: { href: 'http://localhost/' },
36
+ getComputedStyle: () => ({
37
+ animationDuration: '1s',
38
+ transform: 'rotate(45deg)',
39
+ rotate: '45deg',
40
+ display: 'block',
41
+ position: 'static'
42
+ })
43
+ };
44
+ const config = new config_1.Html2CanvasConfig({ window: mockWindow });
45
+ context = new context_1.Context({
46
+ logging: false,
47
+ imageTimeout: 15000,
48
+ useCORS: false,
49
+ allowTaint: false
50
+ }, new bounds_1.Bounds(0, 0, 800, 600), config);
51
+ mockElement = {
52
+ nodeType: 1,
53
+ tagName: 'DIV',
54
+ style: {
55
+ animationDuration: '1s',
56
+ transform: 'rotate(45deg)',
57
+ rotate: '45deg'
58
+ },
59
+ getAttribute: () => null,
60
+ getBoundingClientRect: () => ({
61
+ left: 0,
62
+ top: 0,
63
+ width: 100,
64
+ height: 100,
65
+ right: 100,
66
+ bottom: 100
67
+ })
68
+ };
69
+ });
70
+ it('should normalize DOM by default', () => {
71
+ const container = new element_container_1.ElementContainer(context, mockElement);
72
+ (0, assert_1.ok)(container.styles);
73
+ (0, assert_1.ok)(container.bounds);
74
+ // DOM should be normalized (animationDuration set to '0s')
75
+ (0, assert_1.strictEqual)(mockElement.style.animationDuration, '0s');
76
+ });
77
+ it('should not normalize DOM when normalizeDom is false', () => {
78
+ const originalAnimation = mockElement.style.animationDuration;
79
+ const options = {
80
+ normalizeDom: false
81
+ };
82
+ const container = new element_container_1.ElementContainer(context, mockElement, options);
83
+ (0, assert_1.ok)(container.styles);
84
+ (0, assert_1.ok)(container.bounds);
85
+ // DOM should NOT be normalized
86
+ (0, assert_1.strictEqual)(mockElement.style.animationDuration, originalAnimation);
87
+ });
88
+ it('should support explicit normalizeDom: true', () => {
89
+ const options = {
90
+ normalizeDom: true
91
+ };
92
+ const container = new element_container_1.ElementContainer(context, mockElement, options);
93
+ (0, assert_1.ok)(container.styles);
94
+ (0, assert_1.ok)(container.bounds);
95
+ (0, assert_1.strictEqual)(mockElement.style.animationDuration, '0s');
96
+ });
97
+ it('should initialize empty arrays for textNodes and elements', () => {
98
+ const container = new element_container_1.ElementContainer(context, mockElement);
99
+ (0, assert_1.ok)(Array.isArray(container.textNodes));
100
+ (0, assert_1.ok)(Array.isArray(container.elements));
101
+ (0, assert_1.strictEqual)(container.textNodes.length, 0);
102
+ (0, assert_1.strictEqual)(container.elements.length, 0);
103
+ });
104
+ it('should initialize flags to 0', () => {
105
+ const container = new element_container_1.ElementContainer(context, mockElement);
106
+ (0, assert_1.strictEqual)(container.flags, 0);
107
+ });
108
+ });
109
+ //# sourceMappingURL=element-container.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-container.test.js","sourceRoot":"","sources":["../../../../src/dom/__tests__/element-container.test.ts"],"names":[],"mappings":"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"}
@@ -53,7 +53,7 @@ class DocumentCloner {
53
53
  toIFrame(ownerDocument, windowSize) {
54
54
  const iframe = createIFrameContainer(ownerDocument, windowSize, this.options.iframeContainer);
55
55
  if (!iframe.contentWindow) {
56
- return Promise.reject(`Unable to find iframe window`);
56
+ throw new Error('Unable to find iframe window');
57
57
  }
58
58
  const scrollX = ownerDocument.defaultView.pageXOffset;
59
59
  const scrollY = ownerDocument.defaultView.pageYOffset;
@@ -75,7 +75,7 @@ class DocumentCloner {
75
75
  const onclone = this.options.onclone;
76
76
  const referenceElement = this.clonedReferenceElement;
77
77
  if (typeof referenceElement === 'undefined') {
78
- return Promise.reject(`Error finding the ${this.referenceElement.nodeName} in the cloned document`);
78
+ throw new Error(`Error finding the ${this.referenceElement.nodeName} in the cloned document`);
79
79
  }
80
80
  if (documentClone.fonts && documentClone.fonts.ready) {
81
81
  await documentClone.fonts.ready;
@@ -151,7 +151,7 @@ class DocumentCloner {
151
151
  clone.loading = 'eager';
152
152
  }
153
153
  }
154
- if ((0, node_parser_1.isCustomElement)(clone)) {
154
+ if ((0, node_parser_1.isCustomElement)(clone) && !(0, node_parser_1.isSVGElementNode)(clone)) {
155
155
  return this.createCustomElementClone(clone);
156
156
  }
157
157
  return clone;
@@ -277,20 +277,161 @@ class DocumentCloner {
277
277
  }
278
278
  }
279
279
  }
280
- cloneChildNodes(node, clone, copyStyles) {
281
- // Clone shadow DOM content if it exists
282
- if (node.shadowRoot && clone.shadowRoot) {
283
- for (let child = node.shadowRoot.firstChild; child; child = child.nextSibling) {
284
- // Clone all shadow DOM children including <slot> elements
285
- // The browser will automatically handle slot assignment
286
- clone.shadowRoot.appendChild(this.cloneNode(child, copyStyles));
280
+ /**
281
+ * Check if a child node should be cloned based on filtering rules
282
+ * Filters out: scripts, ignored elements, and optionally styles
283
+ */
284
+ shouldCloneChild(child) {
285
+ return (!(0, node_parser_1.isElementNode)(child) ||
286
+ (!(0, node_parser_1.isScriptElement)(child) &&
287
+ !child.hasAttribute(IGNORE_ATTRIBUTE) &&
288
+ (typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child))));
289
+ }
290
+ /**
291
+ * Check if a style element should be cloned based on copyStyles option
292
+ */
293
+ shouldCloneStyleElement(child) {
294
+ return !this.options.copyStyles || !(0, node_parser_1.isElementNode)(child) || !(0, node_parser_1.isStyleElement)(child);
295
+ }
296
+ /**
297
+ * Safely append a cloned child to a target, applying all filtering rules
298
+ */
299
+ safeAppendClonedChild(target, child, copyStyles) {
300
+ if (this.shouldCloneChild(child) && this.shouldCloneStyleElement(child)) {
301
+ target.appendChild(this.cloneNode(child, copyStyles));
302
+ }
303
+ }
304
+ /**
305
+ * Clone assigned nodes from a slot element to the target
306
+ */
307
+ cloneAssignedNodes(assignedNodes, target, copyStyles) {
308
+ assignedNodes.forEach((node) => {
309
+ this.safeAppendClonedChild(target, node, copyStyles);
310
+ });
311
+ }
312
+ /**
313
+ * Clone fallback content from a slot element when no nodes are assigned
314
+ */
315
+ cloneSlotFallbackContent(slot, target, copyStyles) {
316
+ for (let child = slot.firstChild; child; child = child.nextSibling) {
317
+ this.safeAppendClonedChild(target, child, copyStyles);
318
+ }
319
+ }
320
+ /**
321
+ * Handle cloning of a slot element, including assigned nodes or fallback content
322
+ */
323
+ cloneSlotElement(slot, targetShadowRoot, copyStyles) {
324
+ if (!(0, node_parser_1.isSlotElement)(slot)) {
325
+ return;
326
+ }
327
+ const slotElement = slot;
328
+ // Defensive check: ensure assignedNodes method exists
329
+ if (typeof slotElement.assignedNodes !== 'function') {
330
+ this.context.logger.warn('HTMLSlotElement.assignedNodes is not available', slot);
331
+ this.cloneSlotFallbackContent(slot, targetShadowRoot, copyStyles);
332
+ return;
333
+ }
334
+ const assignedNodes = slotElement.assignedNodes();
335
+ // Defensive check: ensure assignedNodes returns an array
336
+ if (!assignedNodes || !Array.isArray(assignedNodes)) {
337
+ this.context.logger.warn('assignedNodes() did not return a valid array', slot);
338
+ this.cloneSlotFallbackContent(slot, targetShadowRoot, copyStyles);
339
+ return;
340
+ }
341
+ if (assignedNodes.length > 0) {
342
+ // Clone assigned nodes
343
+ this.cloneAssignedNodes(assignedNodes, targetShadowRoot, copyStyles);
344
+ }
345
+ else {
346
+ // Clone fallback content
347
+ this.cloneSlotFallbackContent(slot, targetShadowRoot, copyStyles);
348
+ }
349
+ }
350
+ /**
351
+ * Clone shadow DOM children to the target shadow root
352
+ */
353
+ cloneShadowDOMChildren(shadowRoot, targetShadowRoot, copyStyles) {
354
+ for (let child = shadowRoot.firstChild; child; child = child.nextSibling) {
355
+ if ((0, node_parser_1.isElementNode)(child) && (0, node_parser_1.isSlotElement)(child)) {
356
+ // Handle slot elements specially
357
+ this.cloneSlotElement(child, targetShadowRoot, copyStyles);
358
+ }
359
+ else {
360
+ // Clone regular elements
361
+ this.safeAppendClonedChild(targetShadowRoot, child, copyStyles);
287
362
  }
288
363
  }
289
- // Clone light DOM content (always, even if shadow DOM exists)
364
+ }
365
+ /**
366
+ * Clone light DOM children to the target element
367
+ */
368
+ cloneLightDOMChildren(node, clone, copyStyles) {
290
369
  for (let child = node.firstChild; child; child = child.nextSibling) {
291
370
  this.appendChildNode(clone, child, copyStyles);
292
371
  }
293
372
  }
373
+ /**
374
+ * Clone slot element as light DOM when shadow root creation failed
375
+ */
376
+ cloneSlotElementAsLightDOM(slot, clone, copyStyles) {
377
+ if (!(0, node_parser_1.isSlotElement)(slot)) {
378
+ return;
379
+ }
380
+ const slotElement = slot;
381
+ if (typeof slotElement.assignedNodes !== 'function') {
382
+ // Fallback: clone slot's children
383
+ for (let child = slot.firstChild; child; child = child.nextSibling) {
384
+ this.appendChildNode(clone, child, copyStyles);
385
+ }
386
+ return;
387
+ }
388
+ const assignedNodes = slotElement.assignedNodes();
389
+ if (assignedNodes && Array.isArray(assignedNodes) && assignedNodes.length > 0) {
390
+ // Clone assigned nodes as light DOM
391
+ assignedNodes.forEach((node) => this.appendChildNode(clone, node, copyStyles));
392
+ }
393
+ else {
394
+ // Clone fallback content as light DOM
395
+ for (let child = slot.firstChild; child; child = child.nextSibling) {
396
+ this.appendChildNode(clone, child, copyStyles);
397
+ }
398
+ }
399
+ }
400
+ /**
401
+ * Clone shadow DOM content as light DOM when shadow root creation failed
402
+ * This is a fallback mechanism to ensure content is not lost
403
+ */
404
+ cloneShadowDOMAsLightDOM(shadowRoot, clone, copyStyles) {
405
+ for (let child = shadowRoot.firstChild; child; child = child.nextSibling) {
406
+ if ((0, node_parser_1.isElementNode)(child) && (0, node_parser_1.isSlotElement)(child)) {
407
+ this.cloneSlotElementAsLightDOM(child, clone, copyStyles);
408
+ }
409
+ else {
410
+ this.appendChildNode(clone, child, copyStyles);
411
+ }
412
+ }
413
+ }
414
+ /**
415
+ * Clone child nodes from source element to clone element
416
+ * Handles shadow DOM, slots, and light DOM appropriately
417
+ */
418
+ cloneChildNodes(node, clone, copyStyles) {
419
+ if (node.shadowRoot && clone.shadowRoot) {
420
+ // Both original and clone have shadow roots - clone shadow DOM content
421
+ this.cloneShadowDOMChildren(node.shadowRoot, clone.shadowRoot, copyStyles);
422
+ // Also clone light DOM (slot content sources)
423
+ this.cloneLightDOMChildren(node, clone, copyStyles);
424
+ }
425
+ else if (node.shadowRoot && !clone.shadowRoot) {
426
+ // Original has shadow root but clone doesn't (creation failed)
427
+ // Fallback: clone shadow DOM content as light DOM to preserve content
428
+ this.cloneShadowDOMAsLightDOM(node.shadowRoot, clone, copyStyles);
429
+ }
430
+ else {
431
+ // No shadow DOM - just clone light DOM children
432
+ this.cloneLightDOMChildren(node, clone, copyStyles);
433
+ }
434
+ }
294
435
  cloneNode(node, copyStyles) {
295
436
  if ((0, node_parser_1.isTextNode)(node)) {
296
437
  return document.createTextNode(node.data);