@percy/dom 1.0.0-beta.76 → 1.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/dist/bundle.js +11 -6
- package/package.json +2 -2
package/dist/bundle.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
function prepareDOM(dom) {
|
|
16
|
-
for (let elem of dom.querySelectorAll('input, textarea, select, iframe, canvas, video')) {
|
|
16
|
+
for (let elem of dom.querySelectorAll('input, textarea, select, iframe, canvas, video, style')) {
|
|
17
17
|
if (!elem.getAttribute('data-percy-element-id')) {
|
|
18
18
|
elem.setAttribute('data-percy-element-id', uid());
|
|
19
19
|
}
|
|
@@ -116,10 +116,12 @@
|
|
|
116
116
|
for (let styleSheet of dom.styleSheets) {
|
|
117
117
|
if (isCSSOM(styleSheet)) {
|
|
118
118
|
let style = clone.createElement('style');
|
|
119
|
+
let styleId = styleSheet.ownerNode.getAttribute('data-percy-element-id');
|
|
120
|
+
let cloneOwnerNode = clone.querySelector(`[data-percy-element-id="${styleId}"]`);
|
|
119
121
|
style.type = 'text/css';
|
|
120
122
|
style.setAttribute('data-percy-cssom-serialized', 'true');
|
|
121
123
|
style.innerHTML = Array.from(styleSheet.cssRules).reduce((prev, cssRule) => prev + cssRule.cssText, '');
|
|
122
|
-
|
|
124
|
+
cloneOwnerNode.parentNode.insertBefore(style, cloneOwnerNode.nextSibling);
|
|
123
125
|
}
|
|
124
126
|
}
|
|
125
127
|
}
|
|
@@ -167,8 +169,13 @@
|
|
|
167
169
|
let canvas = document.createElement('canvas');
|
|
168
170
|
let width = canvas.width = video.videoWidth;
|
|
169
171
|
let height = canvas.height = video.videoHeight;
|
|
172
|
+
let dataUrl;
|
|
170
173
|
canvas.getContext('2d').drawImage(video, 0, 0, width, height);
|
|
171
|
-
|
|
174
|
+
|
|
175
|
+
try {
|
|
176
|
+
dataUrl = canvas.toDataURL();
|
|
177
|
+
} catch {} // If the canvas produces a blank image, skip
|
|
178
|
+
|
|
172
179
|
|
|
173
180
|
if (!dataUrl || dataUrl === 'data:,') continue;
|
|
174
181
|
cloneEl.setAttribute('poster', dataUrl);
|
|
@@ -176,13 +183,11 @@
|
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
function doctype(dom) {
|
|
179
|
-
var _dom$doctype;
|
|
180
|
-
|
|
181
186
|
let {
|
|
182
187
|
name = 'html',
|
|
183
188
|
publicId = '',
|
|
184
189
|
systemId = ''
|
|
185
|
-
} = (
|
|
190
|
+
} = (dom === null || dom === void 0 ? void 0 : dom.doctype) ?? {};
|
|
186
191
|
let deprecated = '';
|
|
187
192
|
|
|
188
193
|
if (publicId && systemId) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@percy/dom",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"interactor.js": "^2.0.0-beta.10"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "6df509421a60144e4f9f5d59dc57a5675372a0b2"
|
|
38
38
|
}
|