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.
- package/README.md +1 -0
- package/demo/image-smoothing-demo.html +256 -0
- package/demo/refactoring-test.html +602 -0
- package/dist/html2canvas-pro.esm.js +2846 -1238
- package/dist/html2canvas-pro.esm.js.map +1 -1
- package/dist/html2canvas-pro.js +2849 -1237
- package/dist/html2canvas-pro.js.map +1 -1
- package/dist/html2canvas-pro.min.js +5 -4
- package/dist/lib/__tests__/index.js +8 -2
- package/dist/lib/__tests__/index.js.map +1 -1
- package/dist/lib/config.js +72 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/core/__tests__/cache-storage.js +6 -3
- package/dist/lib/core/__tests__/cache-storage.js.map +1 -1
- package/dist/lib/core/__tests__/cache-storage.test.js +158 -0
- package/dist/lib/core/__tests__/cache-storage.test.js.map +1 -0
- package/dist/lib/core/__tests__/validator.js +296 -0
- package/dist/lib/core/__tests__/validator.js.map +1 -0
- package/dist/lib/core/cache-storage.js +130 -11
- package/dist/lib/core/cache-storage.js.map +1 -1
- package/dist/lib/core/context.js +5 -2
- package/dist/lib/core/context.js.map +1 -1
- package/dist/lib/core/debugger.js +3 -0
- package/dist/lib/core/debugger.js.map +1 -1
- package/dist/lib/core/origin-checker.js +54 -0
- package/dist/lib/core/origin-checker.js.map +1 -0
- package/dist/lib/core/performance-monitor.js +208 -0
- package/dist/lib/core/performance-monitor.js.map +1 -0
- package/dist/lib/core/validator.js +501 -0
- package/dist/lib/core/validator.js.map +1 -0
- package/dist/lib/css/index.js +2 -0
- package/dist/lib/css/index.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js +7 -1
- package/dist/lib/css/property-descriptors/__tests__/background-tests.js.map +1 -1
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js +142 -0
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-integration.test.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js +167 -0
- package/dist/lib/css/property-descriptors/__tests__/image-rendering-performance.test.js.map +1 -0
- package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js +61 -0
- package/dist/lib/css/property-descriptors/__tests__/image-rendering.test.js.map +1 -0
- package/dist/lib/css/property-descriptors/image-rendering.js +34 -0
- package/dist/lib/css/property-descriptors/image-rendering.js.map +1 -0
- package/dist/lib/css/types/__tests__/image-tests.js +7 -1
- package/dist/lib/css/types/__tests__/image-tests.js.map +1 -1
- package/dist/lib/css/types/color-math.js +26 -0
- package/dist/lib/css/types/color-math.js.map +1 -0
- package/dist/lib/css/types/color-spaces/srgb.js +6 -6
- package/dist/lib/css/types/color-spaces/srgb.js.map +1 -1
- package/dist/lib/css/types/color-utilities.js +13 -22
- package/dist/lib/css/types/color-utilities.js.map +1 -1
- package/dist/lib/dom/__tests__/dom-normalizer.test.js +113 -0
- package/dist/lib/dom/__tests__/dom-normalizer.test.js.map +1 -0
- package/dist/lib/dom/__tests__/element-container.test.js +109 -0
- package/dist/lib/dom/__tests__/element-container.test.js.map +1 -0
- package/dist/lib/dom/document-cloner.js +152 -11
- package/dist/lib/dom/document-cloner.js.map +1 -1
- package/dist/lib/dom/dom-normalizer.js +80 -0
- package/dist/lib/dom/dom-normalizer.js.map +1 -0
- package/dist/lib/dom/element-container.js +32 -15
- package/dist/lib/dom/element-container.js.map +1 -1
- package/dist/lib/dom/node-parser.js +16 -20
- package/dist/lib/dom/node-parser.js.map +1 -1
- package/dist/lib/dom/node-type-guards.js +44 -0
- package/dist/lib/dom/node-type-guards.js.map +1 -0
- package/dist/lib/dom/replaced-elements/iframe-element-container.js +5 -4
- package/dist/lib/dom/replaced-elements/iframe-element-container.js.map +1 -1
- package/dist/lib/index.js +148 -41
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/render/canvas/__tests__/background-renderer.test.js +65 -0
- package/dist/lib/render/canvas/__tests__/background-renderer.test.js.map +1 -0
- package/dist/lib/render/canvas/__tests__/border-renderer.test.js +23 -0
- package/dist/lib/render/canvas/__tests__/border-renderer.test.js.map +1 -0
- package/dist/lib/render/canvas/__tests__/effects-renderer.test.js +30 -0
- package/dist/lib/render/canvas/__tests__/effects-renderer.test.js.map +1 -0
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js +63 -0
- package/dist/lib/render/canvas/__tests__/text-renderer.test.js.map +1 -0
- package/dist/lib/render/canvas/background-renderer.js +222 -0
- package/dist/lib/render/canvas/background-renderer.js.map +1 -0
- package/dist/lib/render/canvas/border-renderer.js +185 -0
- package/dist/lib/render/canvas/border-renderer.js.map +1 -0
- package/dist/lib/render/canvas/canvas-renderer.js +61 -689
- package/dist/lib/render/canvas/canvas-renderer.js.map +1 -1
- package/dist/lib/render/canvas/effects-renderer.js +89 -0
- package/dist/lib/render/canvas/effects-renderer.js.map +1 -0
- package/dist/lib/render/canvas/text-renderer.js +508 -0
- package/dist/lib/render/canvas/text-renderer.js.map +1 -0
- package/dist/lib/render/renderer-interface.js +3 -0
- package/dist/lib/render/renderer-interface.js.map +1 -0
- package/dist/types/config.d.ts +54 -0
- package/dist/types/core/__tests__/cache-storage.test.d.ts +1 -0
- package/dist/types/core/__tests__/validator.d.ts +1 -0
- package/dist/types/core/cache-storage.d.ts +42 -1
- package/dist/types/core/context.d.ts +5 -1
- package/dist/types/core/origin-checker.d.ts +33 -0
- package/dist/types/core/performance-monitor.d.ts +131 -0
- package/dist/types/core/validator.d.ts +132 -0
- package/dist/types/css/index.d.ts +2 -0
- package/dist/types/css/property-descriptors/__tests__/image-rendering-integration.test.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/image-rendering-performance.test.d.ts +1 -0
- package/dist/types/css/property-descriptors/__tests__/image-rendering.test.d.ts +1 -0
- package/dist/types/css/property-descriptors/image-rendering.d.ts +8 -0
- package/dist/types/css/types/color-math.d.ts +12 -0
- package/dist/types/css/types/color-utilities.d.ts +2 -3
- package/dist/types/dom/__tests__/dom-normalizer.test.d.ts +1 -0
- package/dist/types/dom/__tests__/element-container.test.d.ts +1 -0
- package/dist/types/dom/document-cloner.d.ts +46 -0
- package/dist/types/dom/dom-normalizer.d.ts +43 -0
- package/dist/types/dom/element-container.d.ts +20 -1
- package/dist/types/dom/node-parser.d.ts +2 -7
- package/dist/types/dom/node-type-guards.d.ts +33 -0
- package/dist/types/dom/replaced-elements/iframe-element-container.d.ts +4 -1
- package/dist/types/index.d.ts +48 -3
- package/dist/types/render/canvas/__tests__/background-renderer.test.d.ts +1 -0
- package/dist/types/render/canvas/__tests__/border-renderer.test.d.ts +1 -0
- package/dist/types/render/canvas/__tests__/effects-renderer.test.d.ts +1 -0
- package/dist/types/render/canvas/__tests__/text-renderer.test.d.ts +1 -0
- package/dist/types/render/canvas/background-renderer.d.ts +87 -0
- package/dist/types/render/canvas/border-renderer.d.ts +67 -0
- package/dist/types/render/canvas/canvas-renderer.d.ts +19 -23
- package/dist/types/render/canvas/effects-renderer.d.ts +64 -0
- package/dist/types/render/canvas/text-renderer.d.ts +57 -0
- package/dist/types/render/renderer-interface.d.ts +26 -0
- package/package.json +2 -1
package/dist/lib/index.js
CHANGED
|
@@ -1,32 +1,101 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setCspNonce = exports.html2canvas = void 0;
|
|
3
|
+
exports.IMAGE_RENDERING = exports.PerformanceMonitor = exports.createDefaultValidator = exports.Validator = exports.Html2CanvasConfig = exports.setCspNonce = exports.html2canvas = void 0;
|
|
4
4
|
const bounds_1 = require("./css/layout/bounds");
|
|
5
5
|
const color_1 = require("./css/types/color");
|
|
6
6
|
const color_utilities_1 = require("./css/types/color-utilities");
|
|
7
7
|
const document_cloner_1 = require("./dom/document-cloner");
|
|
8
8
|
const node_parser_1 = require("./dom/node-parser");
|
|
9
|
-
const cache_storage_1 = require("./core/cache-storage");
|
|
10
9
|
const canvas_renderer_1 = require("./render/canvas/canvas-renderer");
|
|
11
10
|
const foreignobject_renderer_1 = require("./render/canvas/foreignobject-renderer");
|
|
12
11
|
const context_1 = require("./core/context");
|
|
13
|
-
|
|
12
|
+
const config_1 = require("./config");
|
|
13
|
+
Object.defineProperty(exports, "Html2CanvasConfig", { enumerable: true, get: function () { return config_1.Html2CanvasConfig; } });
|
|
14
|
+
const validator_1 = require("./core/validator");
|
|
15
|
+
Object.defineProperty(exports, "createDefaultValidator", { enumerable: true, get: function () { return validator_1.createDefaultValidator; } });
|
|
16
|
+
Object.defineProperty(exports, "Validator", { enumerable: true, get: function () { return validator_1.Validator; } });
|
|
17
|
+
const performance_monitor_1 = require("./core/performance-monitor");
|
|
18
|
+
Object.defineProperty(exports, "PerformanceMonitor", { enumerable: true, get: function () { return performance_monitor_1.PerformanceMonitor; } });
|
|
19
|
+
/**
|
|
20
|
+
* Main html2canvas function with improved configuration management
|
|
21
|
+
*
|
|
22
|
+
* @param element - Element to render
|
|
23
|
+
* @param options - Rendering options
|
|
24
|
+
* @param config - Optional configuration (for advanced use cases)
|
|
25
|
+
* @returns Promise resolving to rendered canvas
|
|
26
|
+
*/
|
|
27
|
+
const html2canvas = (element, options = {}, config) => {
|
|
28
|
+
// Create configuration from element if not provided
|
|
29
|
+
const finalConfig = config ||
|
|
30
|
+
config_1.Html2CanvasConfig.fromElement(element, {
|
|
31
|
+
cspNonce: options.cspNonce,
|
|
32
|
+
cache: options.cache
|
|
33
|
+
});
|
|
34
|
+
return renderElement(element, options, finalConfig);
|
|
35
|
+
};
|
|
36
|
+
exports.html2canvas = html2canvas;
|
|
37
|
+
/**
|
|
38
|
+
* Set CSP nonce for inline styles
|
|
39
|
+
* @deprecated Use options.cspNonce instead
|
|
40
|
+
*/
|
|
14
41
|
const setCspNonce = (nonce) => {
|
|
15
|
-
|
|
42
|
+
console.warn('[html2canvas-pro] setCspNonce is deprecated. ' +
|
|
43
|
+
'Pass cspNonce in options instead: html2canvas(element, { cspNonce: "..." })');
|
|
44
|
+
// For backward compatibility, set default config
|
|
45
|
+
if (typeof window !== 'undefined') {
|
|
46
|
+
(0, config_1.setDefaultConfig)(new config_1.Html2CanvasConfig({ window, cspNonce: nonce }));
|
|
47
|
+
}
|
|
16
48
|
};
|
|
17
49
|
exports.setCspNonce = setCspNonce;
|
|
18
|
-
const html2canvas = (element, options = {}) => {
|
|
19
|
-
return renderElement(element, options);
|
|
20
|
-
};
|
|
21
|
-
exports.html2canvas = html2canvas;
|
|
22
50
|
html2canvas.setCspNonce = setCspNonce;
|
|
23
51
|
exports.default = html2canvas;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
52
|
+
var image_rendering_1 = require("./css/property-descriptors/image-rendering");
|
|
53
|
+
Object.defineProperty(exports, "IMAGE_RENDERING", { enumerable: true, get: function () { return image_rendering_1.IMAGE_RENDERING; } });
|
|
54
|
+
/**
|
|
55
|
+
* Coerce number-like option values for backward compatibility (e.g. string "2" from form/query).
|
|
56
|
+
* Mutates opts in place; callers should avoid reusing the same options object if they rely on original types.
|
|
57
|
+
*/
|
|
58
|
+
const coerceNumberOptions = (opts) => {
|
|
59
|
+
const numKeys = [
|
|
60
|
+
'scale',
|
|
61
|
+
'width',
|
|
62
|
+
'height',
|
|
63
|
+
'imageTimeout',
|
|
64
|
+
'x',
|
|
65
|
+
'y',
|
|
66
|
+
'windowWidth',
|
|
67
|
+
'windowHeight',
|
|
68
|
+
'scrollX',
|
|
69
|
+
'scrollY'
|
|
70
|
+
];
|
|
71
|
+
numKeys.forEach((key) => {
|
|
72
|
+
const v = opts[key];
|
|
73
|
+
if (v !== undefined && v !== null && typeof v !== 'number') {
|
|
74
|
+
const n = Number(v);
|
|
75
|
+
if (!Number.isNaN(n)) {
|
|
76
|
+
opts[key] = n;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
const renderElement = async (element, opts, config) => {
|
|
82
|
+
coerceNumberOptions(opts);
|
|
83
|
+
// Input validation (unless explicitly skipped)
|
|
84
|
+
if (!opts.skipValidation) {
|
|
85
|
+
const validator = opts.validator || (0, validator_1.createDefaultValidator)();
|
|
86
|
+
// Validate element
|
|
87
|
+
const elementValidation = validator.validateElement(element);
|
|
88
|
+
if (!elementValidation.valid) {
|
|
89
|
+
throw new Error(elementValidation.error);
|
|
90
|
+
}
|
|
91
|
+
// Validate options
|
|
92
|
+
const optionsValidation = validator.validateOptions(opts);
|
|
93
|
+
if (!optionsValidation.valid) {
|
|
94
|
+
throw new Error(`Invalid options: ${optionsValidation.error}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
28
97
|
if (!element || typeof element !== 'object') {
|
|
29
|
-
|
|
98
|
+
throw new Error('Invalid element provided as first argument');
|
|
30
99
|
}
|
|
31
100
|
const ownerDocument = element.ownerDocument;
|
|
32
101
|
if (!ownerDocument) {
|
|
@@ -45,17 +114,29 @@ const renderElement = async (element, opts) => {
|
|
|
45
114
|
};
|
|
46
115
|
const contextOptions = {
|
|
47
116
|
logging: opts.logging ?? true,
|
|
48
|
-
cache: opts.cache,
|
|
117
|
+
cache: opts.cache ?? config.cache,
|
|
49
118
|
...resourceOptions
|
|
50
119
|
};
|
|
120
|
+
// Fallbacks for minimal window (e.g. element-like mocks) so we don't get NaN
|
|
121
|
+
const DEFAULT_WINDOW_WIDTH = 800;
|
|
122
|
+
const DEFAULT_WINDOW_HEIGHT = 600;
|
|
123
|
+
const DEFAULT_SCROLL = 0;
|
|
124
|
+
const win = defaultView;
|
|
51
125
|
const windowOptions = {
|
|
52
|
-
windowWidth: opts.windowWidth ??
|
|
53
|
-
windowHeight: opts.windowHeight ??
|
|
54
|
-
scrollX: opts.scrollX ??
|
|
55
|
-
scrollY: opts.scrollY ??
|
|
126
|
+
windowWidth: opts.windowWidth ?? win.innerWidth ?? DEFAULT_WINDOW_WIDTH,
|
|
127
|
+
windowHeight: opts.windowHeight ?? win.innerHeight ?? DEFAULT_WINDOW_HEIGHT,
|
|
128
|
+
scrollX: opts.scrollX ?? win.pageXOffset ?? DEFAULT_SCROLL,
|
|
129
|
+
scrollY: opts.scrollY ?? win.pageYOffset ?? DEFAULT_SCROLL
|
|
56
130
|
};
|
|
57
131
|
const windowBounds = new bounds_1.Bounds(windowOptions.scrollX, windowOptions.scrollY, windowOptions.windowWidth, windowOptions.windowHeight);
|
|
58
|
-
const context = new context_1.Context(contextOptions, windowBounds);
|
|
132
|
+
const context = new context_1.Context(contextOptions, windowBounds, config);
|
|
133
|
+
// Initialize performance monitoring if enabled
|
|
134
|
+
const performanceMonitoring = opts.enablePerformanceMonitoring ?? opts.logging ?? false;
|
|
135
|
+
const perfMonitor = new performance_monitor_1.PerformanceMonitor(context, performanceMonitoring);
|
|
136
|
+
perfMonitor.start('total', {
|
|
137
|
+
width: windowOptions.windowWidth,
|
|
138
|
+
height: windowOptions.windowHeight
|
|
139
|
+
});
|
|
59
140
|
const foreignObjectRendering = opts.foreignObjectRendering ?? false;
|
|
60
141
|
const cloneOptions = {
|
|
61
142
|
allowTaint: opts.allowTaint ?? false,
|
|
@@ -64,15 +145,17 @@ const renderElement = async (element, opts) => {
|
|
|
64
145
|
iframeContainer: opts.iframeContainer,
|
|
65
146
|
inlineImages: foreignObjectRendering,
|
|
66
147
|
copyStyles: foreignObjectRendering,
|
|
67
|
-
cspNonce
|
|
148
|
+
cspNonce: opts.cspNonce ?? config.cspNonce
|
|
68
149
|
};
|
|
69
150
|
context.logger.debug(`Starting document clone with size ${windowBounds.width}x${windowBounds.height} scrolled to ${-windowBounds.left},${-windowBounds.top}`);
|
|
151
|
+
perfMonitor.start('clone');
|
|
70
152
|
const documentCloner = new document_cloner_1.DocumentCloner(context, element, cloneOptions);
|
|
71
153
|
const clonedElement = documentCloner.clonedReferenceElement;
|
|
72
154
|
if (!clonedElement) {
|
|
73
|
-
|
|
155
|
+
throw new Error('Unable to find element in cloned iframe');
|
|
74
156
|
}
|
|
75
157
|
const container = await documentCloner.toIFrame(ownerDocument, windowBounds);
|
|
158
|
+
perfMonitor.end('clone');
|
|
76
159
|
const { width, height, left, top } = (0, node_parser_1.isBodyElement)(clonedElement) || (0, node_parser_1.isHTMLElement)(clonedElement)
|
|
77
160
|
? (0, bounds_1.parseDocumentSize)(clonedElement.ownerDocument)
|
|
78
161
|
: (0, bounds_1.parseBounds)(context, clonedElement);
|
|
@@ -84,32 +167,56 @@ const renderElement = async (element, opts) => {
|
|
|
84
167
|
x: (opts.x ?? 0) + left,
|
|
85
168
|
y: (opts.y ?? 0) + top,
|
|
86
169
|
width: opts.width ?? Math.ceil(width),
|
|
87
|
-
height: opts.height ?? Math.ceil(height)
|
|
170
|
+
height: opts.height ?? Math.ceil(height),
|
|
171
|
+
imageSmoothing: opts.imageSmoothing,
|
|
172
|
+
imageSmoothingQuality: opts.imageSmoothingQuality
|
|
88
173
|
};
|
|
89
174
|
let canvas;
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
175
|
+
let root;
|
|
176
|
+
try {
|
|
177
|
+
if (foreignObjectRendering) {
|
|
178
|
+
context.logger.debug(`Document cloned, using foreign object rendering`);
|
|
179
|
+
perfMonitor.start('render-foreignobject');
|
|
180
|
+
const renderer = new foreignobject_renderer_1.ForeignObjectRenderer(context, renderOptions);
|
|
181
|
+
canvas = await renderer.render(clonedElement);
|
|
182
|
+
perfMonitor.end('render-foreignobject');
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
context.logger.debug(`Document cloned, element located at ${left},${top} with size ${width}x${height} using computed rendering`);
|
|
186
|
+
context.logger.debug(`Starting DOM parsing`);
|
|
187
|
+
perfMonitor.start('parse');
|
|
188
|
+
root = (0, node_parser_1.parseTree)(context, clonedElement);
|
|
189
|
+
perfMonitor.end('parse');
|
|
190
|
+
if (backgroundColor === root.styles.backgroundColor) {
|
|
191
|
+
root.styles.backgroundColor = color_1.COLORS.TRANSPARENT;
|
|
192
|
+
}
|
|
193
|
+
context.logger.debug(`Starting renderer for element at ${renderOptions.x},${renderOptions.y} with size ${renderOptions.width}x${renderOptions.height}`);
|
|
194
|
+
perfMonitor.start('render');
|
|
195
|
+
const renderer = new canvas_renderer_1.CanvasRenderer(context, renderOptions);
|
|
196
|
+
canvas = await renderer.render(root);
|
|
197
|
+
perfMonitor.end('render');
|
|
198
|
+
}
|
|
199
|
+
perfMonitor.start('cleanup');
|
|
200
|
+
if (opts.removeContainer ?? true) {
|
|
201
|
+
if (!document_cloner_1.DocumentCloner.destroy(container)) {
|
|
202
|
+
context.logger.error(`Cannot detach cloned iframe as it is not in the DOM anymore`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
perfMonitor.end('cleanup');
|
|
206
|
+
perfMonitor.end('total');
|
|
207
|
+
context.logger.debug(`Finished rendering`);
|
|
208
|
+
// Log performance summary if monitoring is enabled
|
|
209
|
+
if (performanceMonitoring) {
|
|
210
|
+
perfMonitor.logSummary();
|
|
101
211
|
}
|
|
102
|
-
|
|
103
|
-
const renderer = new canvas_renderer_1.CanvasRenderer(context, renderOptions);
|
|
104
|
-
canvas = await renderer.render(root);
|
|
212
|
+
return canvas;
|
|
105
213
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
214
|
+
finally {
|
|
215
|
+
// Restore DOM modifications (animations, transforms) in cloned document
|
|
216
|
+
if (root) {
|
|
217
|
+
root.restoreTree();
|
|
109
218
|
}
|
|
110
219
|
}
|
|
111
|
-
context.logger.debug(`Finished rendering`);
|
|
112
|
-
return canvas;
|
|
113
220
|
};
|
|
114
221
|
const parseBackgroundColor = (context, element, backgroundColorOverride) => {
|
|
115
222
|
const ownerDocument = element.ownerDocument;
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,gDAA6E;AAC7E,6CAAuD;AACvD,iEAA4D;AAC5D,2DAAyG;AACzG,mDAA4E;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const background_renderer_1 = require("../background-renderer");
|
|
5
|
+
const context_1 = require("../../../core/context");
|
|
6
|
+
const bounds_1 = require("../../../css/layout/bounds");
|
|
7
|
+
const config_1 = require("../../../config");
|
|
8
|
+
describe('BackgroundRenderer', () => {
|
|
9
|
+
it('should be instantiated', () => {
|
|
10
|
+
const mockWindow = {
|
|
11
|
+
document: {
|
|
12
|
+
createElement: (_name) => {
|
|
13
|
+
let _href = '';
|
|
14
|
+
return {
|
|
15
|
+
set href(value) {
|
|
16
|
+
_href = value;
|
|
17
|
+
},
|
|
18
|
+
get href() {
|
|
19
|
+
return _href;
|
|
20
|
+
},
|
|
21
|
+
get protocol() {
|
|
22
|
+
return 'http:';
|
|
23
|
+
},
|
|
24
|
+
get hostname() {
|
|
25
|
+
return 'localhost';
|
|
26
|
+
},
|
|
27
|
+
get port() {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
location: { href: 'http://localhost/' }
|
|
34
|
+
};
|
|
35
|
+
const config = new config_1.Html2CanvasConfig({ window: mockWindow });
|
|
36
|
+
const context = new context_1.Context({
|
|
37
|
+
logging: false,
|
|
38
|
+
imageTimeout: 15000,
|
|
39
|
+
useCORS: false,
|
|
40
|
+
allowTaint: false
|
|
41
|
+
}, new bounds_1.Bounds(0, 0, 800, 600), config);
|
|
42
|
+
const canvas = {
|
|
43
|
+
width: 800,
|
|
44
|
+
height: 600
|
|
45
|
+
};
|
|
46
|
+
const ctx = {
|
|
47
|
+
fillStyle: '',
|
|
48
|
+
save: () => { },
|
|
49
|
+
restore: () => { }
|
|
50
|
+
};
|
|
51
|
+
const deps = {
|
|
52
|
+
ctx,
|
|
53
|
+
context,
|
|
54
|
+
canvas,
|
|
55
|
+
options: {
|
|
56
|
+
width: 800,
|
|
57
|
+
height: 600,
|
|
58
|
+
scale: 1
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const renderer = new background_renderer_1.BackgroundRenderer(deps);
|
|
62
|
+
(0, assert_1.ok)(renderer);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=background-renderer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-renderer.test.js","sourceRoot":"","sources":["../../../../../src/render/canvas/__tests__/background-renderer.test.ts"],"names":[],"mappings":";;AAAA,mCAA4B;AAC5B,gEAA4F;AAC5F,mDAAgD;AAChD,uDAAoD;AACpD,4CAAoD;AAEpD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,UAAU,GAAG;YACf,QAAQ,EAAE;gBACN,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7B,IAAI,KAAK,GAAG,EAAE,CAAC;oBACf,OAAO;wBACH,IAAI,IAAI,CAAC,KAAa;4BAClB,KAAK,GAAG,KAAK,CAAC;wBAClB,CAAC;wBACD,IAAI,IAAI;4BACJ,OAAO,KAAK,CAAC;wBACjB,CAAC;wBACD,IAAI,QAAQ;4BACR,OAAO,OAAO,CAAC;wBACnB,CAAC;wBACD,IAAI,QAAQ;4BACR,OAAO,WAAW,CAAC;wBACvB,CAAC;wBACD,IAAI,IAAI;4BACJ,OAAO,EAAE,CAAC;wBACd,CAAC;qBACJ,CAAC;gBACN,CAAC;aACJ;YACD,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACrB,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,iBAAO,CACvB;YACI,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;SACpB,EACD,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1B,MAAM,CACT,CAAC;QAEF,MAAM,MAAM,GAAG;YACX,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;SACkB,CAAC;QAElC,MAAM,GAAG,GAAG;YACR,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACmB,CAAC;QAEzC,MAAM,IAAI,GAAmC;YACzC,GAAG;YACH,OAAO;YACP,MAAM;YACN,OAAO,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,CAAC;aACX;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,wCAAkB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAA,WAAE,EAAC,QAAQ,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const border_renderer_1 = require("../border-renderer");
|
|
5
|
+
describe('BorderRenderer', () => {
|
|
6
|
+
it('should be instantiated', () => {
|
|
7
|
+
const ctx = {
|
|
8
|
+
strokeStyle: '',
|
|
9
|
+
save: () => { },
|
|
10
|
+
restore: () => { }
|
|
11
|
+
};
|
|
12
|
+
const deps = {
|
|
13
|
+
ctx
|
|
14
|
+
};
|
|
15
|
+
const pathCallbacks = {
|
|
16
|
+
path: () => { },
|
|
17
|
+
formatPath: () => { }
|
|
18
|
+
};
|
|
19
|
+
const renderer = new border_renderer_1.BorderRenderer(deps, pathCallbacks);
|
|
20
|
+
(0, assert_1.ok)(renderer);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=border-renderer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"border-renderer.test.js","sourceRoot":"","sources":["../../../../../src/render/canvas/__tests__/border-renderer.test.ts"],"names":[],"mappings":";;AAAA,mCAA4B;AAC5B,wDAA+F;AAE/F,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG;YACR,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACmB,CAAC;QAEzC,MAAM,IAAI,GAA+B;YACrC,GAAG;SACN,CAAC;QAEF,MAAM,aAAa,GAAkB;YACjC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,gCAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACzD,IAAA,WAAE,EAAC,QAAQ,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const effects_renderer_1 = require("../effects-renderer");
|
|
5
|
+
describe('EffectsRenderer', () => {
|
|
6
|
+
it('should be instantiated', () => {
|
|
7
|
+
const ctx = {
|
|
8
|
+
shadowOffsetX: 0,
|
|
9
|
+
shadowOffsetY: 0,
|
|
10
|
+
shadowBlur: 0,
|
|
11
|
+
shadowColor: '',
|
|
12
|
+
globalAlpha: 1,
|
|
13
|
+
save: () => { },
|
|
14
|
+
restore: () => { }
|
|
15
|
+
};
|
|
16
|
+
const deps = {
|
|
17
|
+
ctx
|
|
18
|
+
};
|
|
19
|
+
const pathCallback = {
|
|
20
|
+
path: () => { }
|
|
21
|
+
};
|
|
22
|
+
const renderer = new effects_renderer_1.EffectsRenderer(deps, pathCallback);
|
|
23
|
+
(0, assert_1.ok)(renderer);
|
|
24
|
+
// Test public methods exist
|
|
25
|
+
(0, assert_1.strictEqual)(typeof renderer.applyEffects, 'function');
|
|
26
|
+
(0, assert_1.strictEqual)(typeof renderer.applyEffect, 'function');
|
|
27
|
+
(0, assert_1.strictEqual)(typeof renderer.popEffect, 'function');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=effects-renderer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects-renderer.test.js","sourceRoot":"","sources":["../../../../../src/render/canvas/__tests__/effects-renderer.test.ts"],"names":[],"mappings":";;AAAA,mCAAyC;AACzC,0DAAwG;AAExG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,GAAG,GAAG;YACR,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACmB,CAAC;QAEzC,MAAM,IAAI,GAAgC;YACtC,GAAG;SACN,CAAC;QAEF,MAAM,YAAY,GAAwB;YACtC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;SACjB,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,kCAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACzD,IAAA,WAAE,EAAC,QAAQ,CAAC,CAAC;QAEb,4BAA4B;QAC5B,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACtD,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACrD,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert_1 = require("assert");
|
|
4
|
+
const text_renderer_1 = require("../text-renderer");
|
|
5
|
+
const context_1 = require("../../../core/context");
|
|
6
|
+
const bounds_1 = require("../../../css/layout/bounds");
|
|
7
|
+
const config_1 = require("../../../config");
|
|
8
|
+
describe('TextRenderer', () => {
|
|
9
|
+
it('should be instantiated', () => {
|
|
10
|
+
const mockWindow = {
|
|
11
|
+
document: {
|
|
12
|
+
createElement: (_name) => {
|
|
13
|
+
let _href = '';
|
|
14
|
+
return {
|
|
15
|
+
set href(value) {
|
|
16
|
+
_href = value;
|
|
17
|
+
},
|
|
18
|
+
get href() {
|
|
19
|
+
return _href;
|
|
20
|
+
},
|
|
21
|
+
get protocol() {
|
|
22
|
+
return 'http:';
|
|
23
|
+
},
|
|
24
|
+
get hostname() {
|
|
25
|
+
return 'localhost';
|
|
26
|
+
},
|
|
27
|
+
get port() {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
location: { href: 'http://localhost/' }
|
|
34
|
+
};
|
|
35
|
+
const config = new config_1.Html2CanvasConfig({ window: mockWindow });
|
|
36
|
+
const context = new context_1.Context({
|
|
37
|
+
logging: false,
|
|
38
|
+
imageTimeout: 15000,
|
|
39
|
+
useCORS: false,
|
|
40
|
+
allowTaint: false
|
|
41
|
+
}, new bounds_1.Bounds(0, 0, 800, 600), config);
|
|
42
|
+
const ctx = {
|
|
43
|
+
fillStyle: '',
|
|
44
|
+
font: '',
|
|
45
|
+
save: () => { },
|
|
46
|
+
restore: () => { }
|
|
47
|
+
};
|
|
48
|
+
const deps = {
|
|
49
|
+
ctx,
|
|
50
|
+
context,
|
|
51
|
+
options: {
|
|
52
|
+
scale: 1
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const renderer = new text_renderer_1.TextRenderer(deps);
|
|
56
|
+
(0, assert_1.ok)(renderer);
|
|
57
|
+
// Test public methods exist
|
|
58
|
+
(0, assert_1.strictEqual)(typeof renderer.renderTextNode, 'function');
|
|
59
|
+
(0, assert_1.strictEqual)(typeof renderer.renderTextWithLetterSpacing, 'function');
|
|
60
|
+
(0, assert_1.strictEqual)(typeof renderer.createFontStyle, 'function');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=text-renderer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-renderer.test.js","sourceRoot":"","sources":["../../../../../src/render/canvas/__tests__/text-renderer.test.ts"],"names":[],"mappings":";;AAAA,mCAAyC;AACzC,oDAA0E;AAC1E,mDAAgD;AAChD,uDAAoD;AACpD,4CAAoD;AAEpD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,UAAU,GAAG;YACf,QAAQ,EAAE;gBACN,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC7B,IAAI,KAAK,GAAG,EAAE,CAAC;oBACf,OAAO;wBACH,IAAI,IAAI,CAAC,KAAa;4BAClB,KAAK,GAAG,KAAK,CAAC;wBAClB,CAAC;wBACD,IAAI,IAAI;4BACJ,OAAO,KAAK,CAAC;wBACjB,CAAC;wBACD,IAAI,QAAQ;4BACR,OAAO,OAAO,CAAC;wBACnB,CAAC;wBACD,IAAI,QAAQ;4BACR,OAAO,WAAW,CAAC;wBACvB,CAAC;wBACD,IAAI,IAAI;4BACJ,OAAO,EAAE,CAAC;wBACd,CAAC;qBACJ,CAAC;gBACN,CAAC;aACJ;YACD,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACrB,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,iBAAO,CACvB;YACI,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;SACpB,EACD,IAAI,eAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAC1B,MAAM,CACT,CAAC;QAEF,MAAM,GAAG,GAAG;YACR,SAAS,EAAE,EAAE;YACb,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;YACd,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACmB,CAAC;QAEzC,MAAM,IAAI,GAA6B;YACnC,GAAG;YACH,OAAO;YACP,OAAO,EAAE;gBACL,KAAK,EAAE,CAAC;aACX;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;QACxC,IAAA,WAAE,EAAC,QAAQ,CAAC,CAAC;QAEb,4BAA4B;QAC5B,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QACxD,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;QACrE,IAAA,oBAAW,EAAC,OAAO,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|