testplane 9.0.7 → 9.0.9
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/build/package.json +3 -3
- package/build/src/browser/client-bridge/index.d.ts +4 -1
- package/build/src/browser/client-bridge/index.js +7 -7
- package/build/src/browser/client-bridge/index.js.map +1 -1
- package/build/src/browser/client-scripts/browser-utils/build/bundle.compat.js +1 -1
- package/build/src/browser/client-scripts/browser-utils/build/bundle.native.js +1 -1
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.compat.js +31 -9
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.native.js +23 -9
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +13 -13
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +13 -13
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +60 -35
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +73 -49
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/clip-rect.js +27 -3
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/dom.js +2 -2
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/pseudo-element-rect.js +10 -7
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/scroll.js +42 -15
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/z-index.js +25 -1
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.compat.js +31 -9
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.native.js +23 -9
- package/build/src/browser/commands/assert-view/index.js +1 -1
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/switchToRepl.js +3 -2
- package/build/src/browser/commands/switchToRepl.js.map +1 -1
- package/build/src/browser/commands/waitForStaticToLoad.js +54 -33
- package/build/src/browser/commands/waitForStaticToLoad.js.map +1 -1
- package/build/src/browser/history/rrweb.js +8 -0
- package/build/src/browser/history/rrweb.js.map +1 -1
- package/build/src/browser/history/utils.js +1 -1
- package/build/src/browser/history/utils.js.map +1 -1
- package/build/src/browser/new-browser.js +6 -2
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +3 -2
- package/build/src/browser/screen-shooter/elements-screen-shooter.js +49 -44
- package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +3 -1
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +37 -17
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -1
- package/build/src/bundle/cjs/index.js +203 -17209
- package/package.json +3 -3
|
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
13
36
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
37
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
38
|
if (ar || !(i in from)) {
|
|
@@ -22,6 +45,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
22
45
|
exports.__esModule = true;
|
|
23
46
|
exports.disablePointerEvents = exports.disableAnimations = exports.cleanupSavedScrolls = exports.prepareFullPageScrollCleanup = exports.saveScrollPositions = exports.scrollToCaptureAreaIfNeeded = exports.computePixelRatio = exports.computeCanHaveCaret = exports.computeDocumentSize = exports.computeSafeArea = exports.computeIgnoreAreas = exports.computeCaptureSpecs = exports.computeElementPositionsProbe = exports.computeViewportOffset = exports.computeViewportSize = exports.computeScrollOffset = void 0;
|
|
24
47
|
var _isomorphic_1 = require("@isomorphic");
|
|
48
|
+
var lib = __importStar(require("@lib"));
|
|
25
49
|
var outside_of_viewport_1 = require("./errors/outside-of-viewport");
|
|
26
50
|
var descriptions_1 = require("./utils/descriptions");
|
|
27
51
|
var dom_1 = require("./utils/dom");
|
|
@@ -33,7 +57,7 @@ var z_index_1 = require("./utils/z-index");
|
|
|
33
57
|
var pseudo_element_rect_1 = require("./utils/pseudo-element-rect");
|
|
34
58
|
var user_agent_1 = require("./utils/user-agent");
|
|
35
59
|
function computeScrollOffset(element) {
|
|
36
|
-
return ((0, scroll_1.isRootLikeElement)(element) ? window.
|
|
60
|
+
return ((0, scroll_1.isRootLikeElement)(element) ? window.pageYOffset : element.scrollTop);
|
|
37
61
|
}
|
|
38
62
|
exports.computeScrollOffset = computeScrollOffset;
|
|
39
63
|
function computeViewportSize() {
|
|
@@ -53,8 +77,8 @@ function computeViewportSize() {
|
|
|
53
77
|
exports.computeViewportSize = computeViewportSize;
|
|
54
78
|
function computeViewportOffset() {
|
|
55
79
|
return {
|
|
56
|
-
left: window.
|
|
57
|
-
top: window.
|
|
80
|
+
left: window.pageXOffset,
|
|
81
|
+
top: window.pageYOffset
|
|
58
82
|
};
|
|
59
83
|
}
|
|
60
84
|
exports.computeViewportOffset = computeViewportOffset;
|
|
@@ -93,19 +117,19 @@ function computeElementPositionsProbe(gridSize) {
|
|
|
93
117
|
return probe;
|
|
94
118
|
}
|
|
95
119
|
exports.computeElementPositionsProbe = computeElementPositionsProbe;
|
|
96
|
-
function computeCaptureSpecs(
|
|
97
|
-
if (
|
|
98
|
-
throw new Error("No
|
|
120
|
+
function computeCaptureSpecs(targets, logger) {
|
|
121
|
+
if (targets.length === 0) {
|
|
122
|
+
throw new Error("No targets to compute capture area");
|
|
99
123
|
}
|
|
100
124
|
logger === null || logger === void 0 ? void 0 : logger("========== <computeCaptureSpecs> ==========");
|
|
101
|
-
logger === null || logger === void 0 ? void 0 : logger("
|
|
125
|
+
logger === null || logger === void 0 ? void 0 : logger("targets:", targets);
|
|
102
126
|
var startTime = performance.now();
|
|
103
127
|
var elements = [];
|
|
104
|
-
for (var i = 0; i <
|
|
105
|
-
var
|
|
106
|
-
var element =
|
|
128
|
+
for (var i = 0; i < targets.length; i++) {
|
|
129
|
+
var parsedTarget = (0, pseudo_element_rect_1.parseCaptureTarget)(targets[i]);
|
|
130
|
+
var element = lib.queryFirst(parsedTarget.elementTarget);
|
|
107
131
|
if (element) {
|
|
108
|
-
elements.push({ element: element, pseudoElement:
|
|
132
|
+
elements.push({ element: element, pseudoElement: parsedTarget.pseudoElement });
|
|
109
133
|
}
|
|
110
134
|
}
|
|
111
135
|
function getCaptureSpec(element, pseudoElement) {
|
|
@@ -138,16 +162,16 @@ function computeCaptureSpecs(selectors, logger) {
|
|
|
138
162
|
return captureSpecs;
|
|
139
163
|
}
|
|
140
164
|
exports.computeCaptureSpecs = computeCaptureSpecs;
|
|
141
|
-
function computeIgnoreAreas(
|
|
142
|
-
if (
|
|
165
|
+
function computeIgnoreAreas(targets) {
|
|
166
|
+
if (targets === void 0) { targets = []; }
|
|
143
167
|
var ignoreAreas = [];
|
|
144
|
-
for (var
|
|
145
|
-
var
|
|
146
|
-
var
|
|
147
|
-
for (var i = 0; i <
|
|
148
|
-
var rect =
|
|
149
|
-
? (0, element_rect_1.getPseudoElementCaptureRect)(
|
|
150
|
-
: (0, element_rect_1.getElementCaptureRect)(
|
|
168
|
+
for (var targetIndex = 0; targetIndex < targets.length; targetIndex++) {
|
|
169
|
+
var parsedTarget = (0, pseudo_element_rect_1.parseCaptureTarget)(targets[targetIndex]);
|
|
170
|
+
var elements = lib.queryAll(parsedTarget.elementTarget);
|
|
171
|
+
for (var i = 0; i < elements.length; i++) {
|
|
172
|
+
var rect = parsedTarget.pseudoElement
|
|
173
|
+
? (0, element_rect_1.getPseudoElementCaptureRect)(elements[i], parsedTarget.pseudoElement)
|
|
174
|
+
: (0, element_rect_1.getElementCaptureRect)(elements[i]);
|
|
151
175
|
if (rect !== null) {
|
|
152
176
|
ignoreAreas.push(rect);
|
|
153
177
|
}
|
|
@@ -156,7 +180,7 @@ function computeIgnoreAreas(selectors) {
|
|
|
156
180
|
return ignoreAreas;
|
|
157
181
|
}
|
|
158
182
|
exports.computeIgnoreAreas = computeIgnoreAreas;
|
|
159
|
-
function computeSafeArea(
|
|
183
|
+
function computeSafeArea(targetsToCapture, scrollElement, logger) {
|
|
160
184
|
var _a, _b;
|
|
161
185
|
logger === null || logger === void 0 ? void 0 : logger("========== <computeSafeArea> ==========");
|
|
162
186
|
var startTime = performance.now();
|
|
@@ -167,10 +191,10 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
167
191
|
width: viewportSize.width,
|
|
168
192
|
height: viewportSize.height
|
|
169
193
|
};
|
|
170
|
-
var captureElements =
|
|
171
|
-
.map(function (
|
|
194
|
+
var captureElements = targetsToCapture
|
|
195
|
+
.map(function (target) { return lib.queryFirst((0, pseudo_element_rect_1.parseCaptureTarget)(target).elementTarget); })
|
|
172
196
|
.filter(function (e) { return e !== null; });
|
|
173
|
-
var captureSpecs = computeCaptureSpecs(
|
|
197
|
+
var captureSpecs = computeCaptureSpecs(targetsToCapture).map(function (s) { return s.full; });
|
|
174
198
|
if (captureSpecs.length === 0) {
|
|
175
199
|
return { top: viewportRect.top, height: viewportRect.height };
|
|
176
200
|
}
|
|
@@ -217,10 +241,10 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
217
241
|
var singleCaptureElement = captureElements.length === 1 ? captureElements[0] : null;
|
|
218
242
|
var _loop_1 = function (idx) {
|
|
219
243
|
var el = allElements[idx];
|
|
220
|
-
if (scrollEl === el ||
|
|
244
|
+
if (scrollEl === el || lib.contains(el, scrollEl)) {
|
|
221
245
|
return "continue";
|
|
222
246
|
}
|
|
223
|
-
if (singleCaptureElement && (el === singleCaptureElement ||
|
|
247
|
+
if (singleCaptureElement && (el === singleCaptureElement || lib.contains(el, singleCaptureElement))) {
|
|
224
248
|
return "continue";
|
|
225
249
|
}
|
|
226
250
|
var computedStyle = getComputedStyle(el);
|
|
@@ -246,20 +270,20 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
246
270
|
var adjustedRect = (0, element_rect_1.domRectToViewportCss)(bcr);
|
|
247
271
|
var fixedPositionedParent = (0, dom_1.findFixedPositionedParent)(el);
|
|
248
272
|
var isInsideScrollContextFixedParent = fixedPositionedParent !== null &&
|
|
249
|
-
(fixedPositionedParent === scrollEl ||
|
|
273
|
+
(fixedPositionedParent === scrollEl || lib.contains(fixedPositionedParent, scrollEl));
|
|
250
274
|
if (position === "fixed" || (fixedPositionedParent && !isInsideScrollContextFixedParent)) {
|
|
251
275
|
likelyInterferes = true;
|
|
252
276
|
// If the fixed element is inside a capture element, it's almost certainly interfering
|
|
253
|
-
shouldSkipZIndexCheck = captureElements.some(function (capEl) { return
|
|
277
|
+
shouldSkipZIndexCheck = captureElements.some(function (capEl) { return lib.contains(capEl, el); });
|
|
254
278
|
}
|
|
255
279
|
else if (position === "absolute") {
|
|
256
280
|
// Skip absolutely positioned elements that are inside capture elements
|
|
257
|
-
if (captureElements.some(function (capEl) { return
|
|
281
|
+
if (captureElements.some(function (capEl) { return lib.contains(capEl, el); }))
|
|
258
282
|
return "continue";
|
|
259
283
|
// Absolute elements interfere only if positioned relative to ancestor outside scroll container
|
|
260
284
|
var containingBlock = (0, dom_1.findContainingBlock)(el);
|
|
261
285
|
// scrollElem may be window, in which case it doesn't have a contains method
|
|
262
|
-
if (scrollEl !== document.documentElement && !
|
|
286
|
+
if (scrollEl !== document.documentElement && !lib.contains(scrollEl, containingBlock)) {
|
|
263
287
|
likelyInterferes = true;
|
|
264
288
|
}
|
|
265
289
|
}
|
|
@@ -272,7 +296,7 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
272
296
|
var scrollParentBcr = scrollParent.getBoundingClientRect();
|
|
273
297
|
topValue += (0, scroll_1.isRootLikeElement)(scrollParent) ? 0 : scrollParentBcr.top;
|
|
274
298
|
shouldSkipZIndexCheck =
|
|
275
|
-
captureElements.some(function (capEl) { return capEl === el ||
|
|
299
|
+
captureElements.some(function (capEl) { return capEl === el || lib.contains(capEl, el); }) &&
|
|
276
300
|
(scrollParent === scrollEl || ((0, scroll_1.isRootLikeElement)(scrollParent) && (0, scroll_1.isRootLikeElement)(scrollEl)));
|
|
277
301
|
if (!isNaN(topValue)) {
|
|
278
302
|
adjustedRect = {
|
|
@@ -395,18 +419,19 @@ function computePixelRatio(usePixelRatio) {
|
|
|
395
419
|
return window.screen.deviceXDPI / window.screen.logicalXDPI || 1;
|
|
396
420
|
}
|
|
397
421
|
exports.computePixelRatio = computePixelRatio;
|
|
398
|
-
function scrollToCaptureAreaIfNeeded(
|
|
422
|
+
function scrollToCaptureAreaIfNeeded(targetsToCapture, captureElementFromTop, allowViewportOverflow, targetToScroll, logger) {
|
|
399
423
|
var viewportSize = computeViewportSize();
|
|
400
424
|
var viewport = __assign({ top: 0, left: 0 }, viewportSize);
|
|
401
|
-
var captureSpecsResult = computeCaptureSpecs(
|
|
425
|
+
var captureSpecsResult = computeCaptureSpecs(targetsToCapture);
|
|
402
426
|
if (!captureSpecsResult)
|
|
403
427
|
return {};
|
|
404
|
-
var scrollTarget =
|
|
405
|
-
var
|
|
406
|
-
var
|
|
407
|
-
|
|
428
|
+
var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
|
|
429
|
+
var initialScrollElem = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
|
|
430
|
+
var readableSelectorToScrollDescr = typeof targetToScroll === "string"
|
|
431
|
+
? targetToScroll
|
|
432
|
+
: (0, descriptions_1.getReadableElementDescriptor)(scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : initialScrollElem);
|
|
408
433
|
var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecsResult.map(function (s) { return s.full; }));
|
|
409
|
-
var safeArea = computeSafeArea(
|
|
434
|
+
var safeArea = computeSafeArea(targetsToCapture, initialScrollElem, logger);
|
|
410
435
|
var captureAndSafeAreasIntersection = (0, _isomorphic_1.getIntersection)(captureArea, safeArea);
|
|
411
436
|
var captureAndViewportIntersection = (0, _isomorphic_1.getIntersection)(captureArea, viewport);
|
|
412
437
|
var expectedVisibleHeight = Math.min(captureArea.height, safeArea.height);
|
|
@@ -439,15 +464,15 @@ function scrollToCaptureAreaIfNeeded(selectorsToCapture, captureElementFromTop,
|
|
|
439
464
|
}
|
|
440
465
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: scrolling is required", {
|
|
441
466
|
scrollElement: readableSelectorToScrollDescr,
|
|
442
|
-
|
|
443
|
-
|
|
467
|
+
requestedTargetToScroll: targetToScroll !== null && targetToScroll !== void 0 ? targetToScroll : null,
|
|
468
|
+
targetResolved: Boolean(scrollTarget)
|
|
444
469
|
});
|
|
445
470
|
var scrollChain = __spreadArray([], (0, scroll_1.getScrollParentsChain)(initialScrollElem), true);
|
|
446
471
|
if (scrollChain[scrollChain.length - 1] !== initialScrollElem) {
|
|
447
472
|
scrollChain.push(initialScrollElem);
|
|
448
473
|
}
|
|
449
474
|
for (var i = 1; i < scrollChain.length; i++) {
|
|
450
|
-
var currentSafeArea = computeSafeArea(
|
|
475
|
+
var currentSafeArea = computeSafeArea(targetsToCapture, scrollChain[i - 1]);
|
|
451
476
|
var childTop = scrollChain[i].getBoundingClientRect().top;
|
|
452
477
|
var scrollDelta = childTop - currentSafeArea.top;
|
|
453
478
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: scrolling chain element", {
|
|
@@ -457,10 +482,10 @@ function scrollToCaptureAreaIfNeeded(selectorsToCapture, captureElementFromTop,
|
|
|
457
482
|
});
|
|
458
483
|
(0, scroll_1.scrollElementBy)(scrollChain[i - 1], scrollDelta, logger);
|
|
459
484
|
}
|
|
460
|
-
var finalCaptureArea = (0, _isomorphic_1.getCoveringRect)(computeCaptureSpecs(
|
|
485
|
+
var finalCaptureArea = (0, _isomorphic_1.getCoveringRect)(computeCaptureSpecs(targetsToCapture).map(function (s) { return s.full; }));
|
|
461
486
|
if (!finalCaptureArea)
|
|
462
487
|
return {};
|
|
463
|
-
var finalSafeArea = computeSafeArea(
|
|
488
|
+
var finalSafeArea = computeSafeArea(targetsToCapture, initialScrollElem);
|
|
464
489
|
var finalScrollDelta = finalCaptureArea.top - finalSafeArea.top;
|
|
465
490
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: final alignment scroll", {
|
|
466
491
|
scrollElement: readableSelectorToScrollDescr,
|
|
@@ -483,8 +508,8 @@ function saveElementScrollPosition(element) {
|
|
|
483
508
|
var savedPosition = (0, scroll_1.isRootLikeElement)(element)
|
|
484
509
|
? {
|
|
485
510
|
element: element,
|
|
486
|
-
left: window.
|
|
487
|
-
top: window.
|
|
511
|
+
left: window.pageXOffset,
|
|
512
|
+
top: window.pageYOffset
|
|
488
513
|
}
|
|
489
514
|
: {
|
|
490
515
|
element: element,
|
|
@@ -493,11 +518,10 @@ function saveElementScrollPosition(element) {
|
|
|
493
518
|
};
|
|
494
519
|
namespaceData.savedScrollPositions.push(savedPosition);
|
|
495
520
|
}
|
|
496
|
-
function saveScrollPositions(
|
|
521
|
+
function saveScrollPositions(targetsToCapture, targetToScroll) {
|
|
497
522
|
(0, dom_1.getScreenshooterNamespaceData)().savedScrollPositions = [];
|
|
498
|
-
var scrollTarget =
|
|
499
|
-
var
|
|
500
|
-
var initialScrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(selectorsForScrollParentSearch);
|
|
523
|
+
var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
|
|
524
|
+
var initialScrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
|
|
501
525
|
var scrollChain = __spreadArray([], (0, scroll_1.getScrollParentsChain)(initialScrollElement), true);
|
|
502
526
|
if (scrollChain[scrollChain.length - 1] !== initialScrollElement) {
|
|
503
527
|
scrollChain.push(initialScrollElement);
|
|
@@ -1,7 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
exports.__esModule = true;
|
|
3
26
|
exports.getClipRect = void 0;
|
|
4
27
|
var _isomorphic_1 = require("@isomorphic");
|
|
28
|
+
var lib = __importStar(require("@lib"));
|
|
5
29
|
var element_rect_1 = require("./element-rect");
|
|
6
30
|
var scroll_1 = require("./scroll");
|
|
7
31
|
var dom_1 = require("./dom");
|
|
@@ -45,15 +69,15 @@ function getFixedAncestors(element) {
|
|
|
45
69
|
function escapesOverflowClippingViaAbsoluteContainingBlocks(clippingElement, absoluteContainingBlocks) {
|
|
46
70
|
return absoluteContainingBlocks.some(function (_a) {
|
|
47
71
|
var absoluteAncestor = _a.absoluteAncestor, containingBlock = _a.containingBlock;
|
|
48
|
-
if (absoluteAncestor === clippingElement || !
|
|
72
|
+
if (absoluteAncestor === clippingElement || !lib.contains(clippingElement, absoluteAncestor)) {
|
|
49
73
|
return false;
|
|
50
74
|
}
|
|
51
|
-
return containingBlock !== clippingElement &&
|
|
75
|
+
return containingBlock !== clippingElement && lib.contains(containingBlock, clippingElement);
|
|
52
76
|
});
|
|
53
77
|
}
|
|
54
78
|
/** Fixed-position descendants escape clipping of ancestors above the fixed ancestor */
|
|
55
79
|
function escapesOverflowClippingViaFixedAncestors(clippingElement, fixedAncestors) {
|
|
56
|
-
return fixedAncestors.some(function (fixedAncestor) { return fixedAncestor !== clippingElement &&
|
|
80
|
+
return fixedAncestors.some(function (fixedAncestor) { return fixedAncestor !== clippingElement && lib.contains(clippingElement, fixedAncestor); });
|
|
57
81
|
}
|
|
58
82
|
/**
|
|
59
83
|
* Computes the clip rect for an element by intersecting the content boxes
|
|
@@ -71,11 +71,11 @@ function forEachRoot(cb) {
|
|
|
71
71
|
}
|
|
72
72
|
exports.forEachRoot = forEachRoot;
|
|
73
73
|
function getParentElement(node) {
|
|
74
|
-
if (node
|
|
74
|
+
if (lib.isShadowRoot(node))
|
|
75
75
|
return node.host;
|
|
76
76
|
if (node instanceof Element) {
|
|
77
77
|
var root = lib.getRootNode(node);
|
|
78
|
-
return node.parentElement || (root
|
|
78
|
+
return node.parentElement || (lib.isShadowRoot(root) ? root.host : null);
|
|
79
79
|
}
|
|
80
80
|
return node.parentNode instanceof Element ? node.parentNode : null;
|
|
81
81
|
}
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
exports.__esModule = true;
|
|
3
|
-
exports.getPseudoElementRect = exports.
|
|
3
|
+
exports.getPseudoElementRect = exports.parseCaptureTarget = exports.PSEUDO_ELEMENTS = void 0;
|
|
4
4
|
exports.PSEUDO_ELEMENTS = ["::before", "::after"];
|
|
5
5
|
var PSEUDO_SELECTOR_REGEXP = /(.*?)(::before|::after)\s*$/i;
|
|
6
|
-
function
|
|
7
|
-
|
|
6
|
+
function parseCaptureTarget(target) {
|
|
7
|
+
if (typeof target !== "string") {
|
|
8
|
+
return { elementTarget: target, pseudoElement: null };
|
|
9
|
+
}
|
|
10
|
+
var match = target.match(PSEUDO_SELECTOR_REGEXP);
|
|
8
11
|
if (!match) {
|
|
9
|
-
return {
|
|
12
|
+
return { elementTarget: target, pseudoElement: null };
|
|
10
13
|
}
|
|
11
14
|
var elementSelector = match[1].trim();
|
|
12
15
|
if (!elementSelector) {
|
|
13
|
-
return {
|
|
16
|
+
return { elementTarget: target, pseudoElement: null };
|
|
14
17
|
}
|
|
15
18
|
return {
|
|
16
|
-
|
|
19
|
+
elementTarget: elementSelector,
|
|
17
20
|
pseudoElement: match[2].toLowerCase()
|
|
18
21
|
};
|
|
19
22
|
}
|
|
20
|
-
exports.
|
|
23
|
+
exports.parseCaptureTarget = parseCaptureTarget;
|
|
21
24
|
function getElementBorderWidths(element) {
|
|
22
25
|
var style = getComputedStyle(element);
|
|
23
26
|
return {
|
|
@@ -1,16 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
exports.__esModule = true;
|
|
3
26
|
exports.scrollElementToOffset = exports.scrollElementBy = exports.performScrollFixForSafariIfNeeded = exports.isRootLikeElement = exports.getCommonScrollParent = exports.getScrollParentsChain = exports.getScrollParent = void 0;
|
|
27
|
+
var lib = __importStar(require("@lib"));
|
|
4
28
|
var dom_1 = require("./dom");
|
|
5
29
|
var user_agent_1 = require("./user-agent");
|
|
6
30
|
var PSEUDO_SELECTOR_REGEXP = /(.*?)(::before|::after)\s*$/i;
|
|
7
|
-
function
|
|
8
|
-
|
|
31
|
+
function getElementTarget(target) {
|
|
32
|
+
if (typeof target !== "string") {
|
|
33
|
+
return target;
|
|
34
|
+
}
|
|
35
|
+
var match = target.match(PSEUDO_SELECTOR_REGEXP);
|
|
9
36
|
if (!match) {
|
|
10
|
-
return
|
|
37
|
+
return target;
|
|
11
38
|
}
|
|
12
39
|
var elementSelector = match[1].trim();
|
|
13
|
-
return elementSelector ||
|
|
40
|
+
return elementSelector || target;
|
|
14
41
|
}
|
|
15
42
|
function isScrollable(element) {
|
|
16
43
|
var overflowY = getComputedStyle(element).overflowY;
|
|
@@ -43,9 +70,9 @@ function getScrollParentsChain(element) {
|
|
|
43
70
|
return chain;
|
|
44
71
|
}
|
|
45
72
|
exports.getScrollParentsChain = getScrollParentsChain;
|
|
46
|
-
function getCommonScrollParent(
|
|
47
|
-
var elements =
|
|
48
|
-
.map(function (
|
|
73
|
+
function getCommonScrollParent(targets) {
|
|
74
|
+
var elements = targets
|
|
75
|
+
.map(function (target) { return lib.queryFirst(getElementTarget(target)); })
|
|
49
76
|
.filter(function (e) { return e !== null; });
|
|
50
77
|
if (elements.length === 0)
|
|
51
78
|
return document.documentElement;
|
|
@@ -73,7 +100,7 @@ function getCommonScrollParent(selectors) {
|
|
|
73
100
|
}
|
|
74
101
|
exports.getCommonScrollParent = getCommonScrollParent;
|
|
75
102
|
function getElementScrollTop(element) {
|
|
76
|
-
return isRootLikeElement(element) ? window.
|
|
103
|
+
return isRootLikeElement(element) ? window.pageYOffset : element.scrollTop;
|
|
77
104
|
}
|
|
78
105
|
var SCROLL_APPLY_MAX_WAIT_MS = 50;
|
|
79
106
|
var SCROLL_APPLY_MAX_ITERATIONS = 10000;
|
|
@@ -97,8 +124,8 @@ function performScrollFixForSafariIfNeeded(targetY) {
|
|
|
97
124
|
if (!(0, user_agent_1.isSafariMobile)()) {
|
|
98
125
|
return;
|
|
99
126
|
}
|
|
100
|
-
if (window.
|
|
101
|
-
window.scrollTo(window.
|
|
127
|
+
if (window.pageYOffset < 100 && targetY < 100) {
|
|
128
|
+
window.scrollTo(window.pageXOffset, 100);
|
|
102
129
|
}
|
|
103
130
|
}
|
|
104
131
|
exports.performScrollFixForSafariIfNeeded = performScrollFixForSafariIfNeeded;
|
|
@@ -106,14 +133,14 @@ function scrollElementBy(element, deltaY, logger) {
|
|
|
106
133
|
var delta = deltaY;
|
|
107
134
|
var isRootLike = isRootLikeElement(element);
|
|
108
135
|
var scrollMetricsElement = isRootLike ? getPageScrollElement() : element;
|
|
109
|
-
var currentScrollY = isRootLike ? window.
|
|
136
|
+
var currentScrollY = isRootLike ? window.pageYOffset : element.scrollTop;
|
|
110
137
|
// Clamping is needed due to a bug in safari - https://bugs.webkit.org/show_bug.cgi?id=179735
|
|
111
138
|
var maxScrollY = scrollMetricsElement.scrollHeight - scrollMetricsElement.clientHeight;
|
|
112
139
|
var targetY = Math.max(0, Math.min(currentScrollY + delta, maxScrollY));
|
|
113
140
|
if (isRootLike) {
|
|
114
|
-
logger === null || logger === void 0 ? void 0 : logger("scrollElementBy: scrolling window.scrollTo(" + window.
|
|
141
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollElementBy: scrolling window.scrollTo(" + window.pageXOffset + ", " + targetY + ")");
|
|
115
142
|
performScrollFixForSafariIfNeeded(targetY);
|
|
116
|
-
window.scrollTo(window.
|
|
143
|
+
window.scrollTo(window.pageXOffset, targetY);
|
|
117
144
|
}
|
|
118
145
|
else {
|
|
119
146
|
logger === null || logger === void 0 ? void 0 : logger("scrollElementBy: scrolling element.scrollTo(" + element.scrollLeft + ", " + targetY + ")");
|
|
@@ -132,13 +159,13 @@ exports.scrollElementBy = scrollElementBy;
|
|
|
132
159
|
function scrollElementToOffset(element, offset) {
|
|
133
160
|
var isRootLike = isRootLikeElement(element);
|
|
134
161
|
var scrollMetricsElement = isRootLike ? getPageScrollElement() : element;
|
|
135
|
-
var currentScrollY = isRootLike ? window.
|
|
162
|
+
var currentScrollY = isRootLike ? window.pageYOffset : element.scrollTop;
|
|
136
163
|
// Clamping is needed due to a bug in safari - https://bugs.webkit.org/show_bug.cgi?id=179735
|
|
137
164
|
var maxScrollY = scrollMetricsElement.scrollHeight - scrollMetricsElement.clientHeight;
|
|
138
165
|
var targetY = Math.max(0, Math.min(offset, maxScrollY));
|
|
139
166
|
if (isRootLike) {
|
|
140
167
|
performScrollFixForSafariIfNeeded(targetY);
|
|
141
|
-
window.scrollTo(window.
|
|
168
|
+
window.scrollTo(window.pageXOffset, targetY);
|
|
142
169
|
}
|
|
143
170
|
else {
|
|
144
171
|
element.scrollTo(element.scrollLeft, targetY);
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
exports.__esModule = true;
|
|
3
26
|
exports.isChainBehind = exports.buildZChain = void 0;
|
|
27
|
+
var lib = __importStar(require("@lib"));
|
|
4
28
|
var dom_1 = require("./dom");
|
|
5
29
|
function getCssProp(style, prop) {
|
|
6
30
|
return style[prop];
|
|
@@ -88,7 +112,7 @@ function getClosestStackingContext(node) {
|
|
|
88
112
|
if (!node || node === document.documentElement) {
|
|
89
113
|
return document.documentElement;
|
|
90
114
|
}
|
|
91
|
-
if (node
|
|
115
|
+
if (lib.isShadowRoot(node)) {
|
|
92
116
|
return getClosestStackingContext(node.host);
|
|
93
117
|
}
|
|
94
118
|
if (!(node instanceof Element)) {
|
package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.compat.js
CHANGED
|
@@ -26,23 +26,29 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
exports.__esModule = true;
|
|
29
|
-
exports.matchMedia = exports.getComputedStyle = exports.getRootNode = exports.trim = exports.queryAll = exports.queryFirst = void 0;
|
|
29
|
+
exports.matchMedia = exports.getComputedStyle = exports.contains = exports.isShadowRoot = exports.getRootNode = exports.trim = exports.queryAll = exports.queryFirst = void 0;
|
|
30
30
|
/// <reference types="./sizzle" />
|
|
31
31
|
var sizzle_1 = __importDefault(require("sizzle"));
|
|
32
32
|
var xpath = __importStar(require("./xpath"));
|
|
33
|
-
function queryFirst(
|
|
34
|
-
if (
|
|
35
|
-
return
|
|
33
|
+
function queryFirst(target) {
|
|
34
|
+
if (typeof target !== "string") {
|
|
35
|
+
return target;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
if (xpath.isXpathSelector(target)) {
|
|
38
|
+
return xpath.queryFirst(target);
|
|
39
|
+
}
|
|
40
|
+
var elems = (0, sizzle_1["default"])(trim(target) + ":first");
|
|
38
41
|
return elems.length > 0 ? elems[0] : null;
|
|
39
42
|
}
|
|
40
43
|
exports.queryFirst = queryFirst;
|
|
41
|
-
function queryAll(
|
|
42
|
-
if (
|
|
43
|
-
return
|
|
44
|
+
function queryAll(target) {
|
|
45
|
+
if (typeof target !== "string") {
|
|
46
|
+
return [target];
|
|
47
|
+
}
|
|
48
|
+
if (xpath.isXpathSelector(target)) {
|
|
49
|
+
return xpath.queryAll(target);
|
|
44
50
|
}
|
|
45
|
-
return (0, sizzle_1["default"])(
|
|
51
|
+
return (0, sizzle_1["default"])(target);
|
|
46
52
|
}
|
|
47
53
|
exports.queryAll = queryAll;
|
|
48
54
|
function trim(str) {
|
|
@@ -59,6 +65,22 @@ function getRootNode(node) {
|
|
|
59
65
|
return root;
|
|
60
66
|
}
|
|
61
67
|
exports.getRootNode = getRootNode;
|
|
68
|
+
function isShadowRoot(node) {
|
|
69
|
+
return typeof ShadowRoot !== "undefined" && node instanceof ShadowRoot;
|
|
70
|
+
}
|
|
71
|
+
exports.isShadowRoot = isShadowRoot;
|
|
72
|
+
function contains(parent, node) {
|
|
73
|
+
if (typeof parent.contains === "function") {
|
|
74
|
+
return parent.contains(node);
|
|
75
|
+
}
|
|
76
|
+
for (var current = node; current; current = current.parentNode) {
|
|
77
|
+
if (current === parent) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
exports.contains = contains;
|
|
62
84
|
var getComputedStyle_1 = require("./polyfills/getComputedStyle");
|
|
63
85
|
__createBinding(exports, getComputedStyle_1, "getComputedStyle");
|
|
64
86
|
var matchMedia_1 = require("./polyfills/matchMedia");
|
package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.native.js
CHANGED
|
@@ -23,20 +23,26 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
exports.__esModule = true;
|
|
26
|
-
exports.getRootNode = exports.trim = exports.matchMedia = exports.getComputedStyle = exports.queryAll = exports.queryFirst = void 0;
|
|
26
|
+
exports.contains = exports.isShadowRoot = exports.getRootNode = exports.trim = exports.matchMedia = exports.getComputedStyle = exports.queryAll = exports.queryFirst = void 0;
|
|
27
27
|
var xpath = __importStar(require("./xpath"));
|
|
28
|
-
function queryFirst(
|
|
29
|
-
if (
|
|
30
|
-
return
|
|
28
|
+
function queryFirst(target) {
|
|
29
|
+
if (typeof target !== "string") {
|
|
30
|
+
return target;
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
if (xpath.isXpathSelector(target)) {
|
|
33
|
+
return xpath.queryFirst(target);
|
|
34
|
+
}
|
|
35
|
+
return document.querySelector(target);
|
|
33
36
|
}
|
|
34
37
|
exports.queryFirst = queryFirst;
|
|
35
|
-
function queryAll(
|
|
36
|
-
if (
|
|
37
|
-
return
|
|
38
|
+
function queryAll(target) {
|
|
39
|
+
if (typeof target !== "string") {
|
|
40
|
+
return [target];
|
|
41
|
+
}
|
|
42
|
+
if (xpath.isXpathSelector(target)) {
|
|
43
|
+
return xpath.queryAll(target);
|
|
38
44
|
}
|
|
39
|
-
return Array.from(document.querySelectorAll(
|
|
45
|
+
return Array.from(document.querySelectorAll(target));
|
|
40
46
|
}
|
|
41
47
|
exports.queryAll = queryAll;
|
|
42
48
|
function getComputedStyle(element, pseudoElement) {
|
|
@@ -55,3 +61,11 @@ function getRootNode(node) {
|
|
|
55
61
|
return node.getRootNode();
|
|
56
62
|
}
|
|
57
63
|
exports.getRootNode = getRootNode;
|
|
64
|
+
function isShadowRoot(node) {
|
|
65
|
+
return node instanceof ShadowRoot;
|
|
66
|
+
}
|
|
67
|
+
exports.isShadowRoot = isShadowRoot;
|
|
68
|
+
function contains(parent, node) {
|
|
69
|
+
return parent.contains(node);
|
|
70
|
+
}
|
|
71
|
+
exports.contains = contains;
|
|
@@ -196,7 +196,7 @@ module.exports.default = browser => {
|
|
|
196
196
|
await this.waitForExist({ timeoutMsg: "custom timeout msg" }).catch(() => {
|
|
197
197
|
throw new Error(`element ("${this.selector}") still not existing after ${this.options.waitforTimeout} ms`);
|
|
198
198
|
});
|
|
199
|
-
return assertView(state, this
|
|
199
|
+
return assertView(state, this, opts);
|
|
200
200
|
}, true);
|
|
201
201
|
};
|
|
202
202
|
//# sourceMappingURL=index.js.map
|