testplane 9.0.0-rc.4 → 9.0.1
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 +15 -15
- package/build/src/base-testplane.d.ts +6 -2
- package/build/src/base-testplane.js +18 -5
- package/build/src/base-testplane.js.map +1 -1
- package/build/src/browser/browser.d.ts +2 -0
- package/build/src/browser/browser.js +8 -4
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/calibrator.js +19 -17
- package/build/src/browser/calibrator.js.map +1 -1
- package/build/src/browser/camera/index.d.ts +6 -2
- package/build/src/browser/camera/index.js +18 -14
- package/build/src/browser/camera/index.js.map +1 -1
- package/build/src/browser/camera/utils.d.ts +11 -1
- package/build/src/browser/camera/utils.js +27 -1
- package/build/src/browser/camera/utils.js.map +1 -1
- package/build/src/browser/cdp/connection.d.ts +2 -39
- package/build/src/browser/cdp/connection.js +73 -353
- package/build/src/browser/cdp/connection.js.map +1 -1
- package/build/src/browser/cdp/constants.d.ts +0 -10
- package/build/src/browser/cdp/constants.js +1 -11
- package/build/src/browser/cdp/constants.js.map +1 -1
- package/build/src/browser/cdp/domains/css.d.ts +14 -6
- package/build/src/browser/cdp/domains/css.js +4 -0
- package/build/src/browser/cdp/domains/css.js.map +1 -1
- package/build/src/browser/cdp/domains/debugger.d.ts +1 -1
- package/build/src/browser/cdp/domains/fetch.d.ts +163 -0
- package/build/src/browser/cdp/domains/fetch.js +51 -0
- package/build/src/browser/cdp/domains/fetch.js.map +1 -0
- package/build/src/browser/cdp/domains/network.d.ts +290 -0
- package/build/src/browser/cdp/domains/network.js +75 -0
- package/build/src/browser/cdp/domains/network.js.map +1 -0
- package/build/src/browser/cdp/domains/page.d.ts +378 -0
- package/build/src/browser/cdp/domains/page.js +114 -0
- package/build/src/browser/cdp/domains/page.js.map +1 -0
- package/build/src/browser/cdp/emitter.d.ts +2 -1
- package/build/src/browser/cdp/emitter.js +2 -2
- package/build/src/browser/cdp/emitter.js.map +1 -1
- package/build/src/browser/cdp/error.d.ts +14 -20
- package/build/src/browser/cdp/error.js +29 -32
- package/build/src/browser/cdp/error.js.map +1 -1
- package/build/src/browser/cdp/index.d.ts +6 -0
- package/build/src/browser/cdp/index.js +21 -6
- package/build/src/browser/cdp/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/constants.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/constants.js +3 -1
- package/build/src/browser/cdp/selectivity/constants.js.map +1 -1
- package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +13 -3
- package/build/src/browser/cdp/selectivity/css-selectivity.js +211 -62
- package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/fs-cache.d.ts +12 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js +122 -0
- package/build/src/browser/cdp/selectivity/fs-cache.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.d.ts +1 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js +5 -3
- package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -1
- package/build/src/browser/cdp/selectivity/hash-reader.d.ts +2 -3
- package/build/src/browser/cdp/selectivity/hash-reader.js +39 -26
- package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -1
- package/build/src/browser/cdp/selectivity/hash-writer.d.ts +2 -2
- package/build/src/browser/cdp/selectivity/hash-writer.js +16 -62
- package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -1
- package/build/src/browser/cdp/selectivity/index.d.ts +6 -2
- package/build/src/browser/cdp/selectivity/index.js +147 -24
- package/build/src/browser/cdp/selectivity/index.js.map +1 -1
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +11 -4
- package/build/src/browser/cdp/selectivity/js-selectivity.js +200 -87
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/json-utils.d.ts +5 -0
- package/build/src/browser/cdp/selectivity/json-utils.js +19 -9
- package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -1
- package/build/src/browser/cdp/selectivity/merge-dumps/index.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/index.js +28 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/index.js.map +1 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js +39 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-hashes.js.map +1 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js +129 -0
- package/build/src/browser/cdp/selectivity/merge-dumps/merge-tests.js.map +1 -0
- package/build/src/browser/cdp/selectivity/modes.d.ts +4 -0
- package/build/src/browser/cdp/selectivity/modes.js +11 -0
- package/build/src/browser/cdp/selectivity/modes.js.map +1 -0
- package/build/src/browser/cdp/selectivity/runner.d.ts +5 -0
- package/build/src/browser/cdp/selectivity/runner.js +114 -22
- package/build/src/browser/cdp/selectivity/runner.js.map +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +1 -1
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +3 -1
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js +64 -13
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
- package/build/src/browser/cdp/selectivity/types.d.ts +6 -0
- package/build/src/browser/cdp/selectivity/types.js.map +1 -1
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.d.ts +7 -0
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.js +25 -0
- package/build/src/browser/cdp/selectivity/used-dumps-tracker.js.map +1 -0
- package/build/src/browser/cdp/selectivity/utils.d.ts +18 -9
- package/build/src/browser/cdp/selectivity/utils.js +111 -34
- package/build/src/browser/cdp/selectivity/utils.js.map +1 -1
- package/build/src/browser/cdp/types.d.ts +214 -0
- package/build/src/browser/cdp/utils.d.ts +0 -6
- package/build/src/browser/cdp/utils.js +1 -6
- package/build/src/browser/cdp/utils.js.map +1 -1
- package/build/src/browser/client-bridge/index.js +7 -4
- 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 +9 -1
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.native.js +5 -1
- package/build/src/browser/client-scripts/calibrate.js +10 -3
- package/build/src/browser/client-scripts/rrweb-record.min.js +2 -2
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +35 -23
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +20 -16
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +21 -8
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +57 -29
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/dom.js +25 -1
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.compat.js +9 -1
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.native.js +5 -1
- package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
- package/build/src/browser/commands/assert-view/index.js +41 -15
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/openAndWait.js +23 -26
- package/build/src/browser/commands/openAndWait.js.map +1 -1
- package/build/src/browser/commands/restoreState/index.js +19 -8
- package/build/src/browser/commands/restoreState/index.js.map +1 -1
- package/build/src/browser/commands/saveState/index.d.ts +1 -2
- package/build/src/browser/commands/saveState/index.js +8 -12
- package/build/src/browser/commands/saveState/index.js.map +1 -1
- package/build/src/browser/commands/switchToRepl.js +27 -9
- package/build/src/browser/commands/switchToRepl.js.map +1 -1
- package/build/src/browser/existing-browser.d.ts +2 -0
- package/build/src/browser/existing-browser.js +15 -0
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/index.d.ts +8 -1
- package/build/src/browser/history/index.js +46 -17
- package/build/src/browser/history/index.js.map +1 -1
- package/build/src/browser/history/rrweb.d.ts +3 -1
- package/build/src/browser/history/rrweb.js +158 -29
- package/build/src/browser/history/rrweb.js.map +1 -1
- package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -1
- package/build/src/browser/new-browser.d.ts +2 -1
- package/build/src/browser/new-browser.js +9 -12
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser/screen-shooter/composite-image/index.d.ts +23 -0
- package/build/src/browser/screen-shooter/composite-image/index.js +161 -14
- package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
- package/build/src/browser/screen-shooter/debug.d.ts +3 -0
- package/build/src/browser/screen-shooter/debug.js +25 -0
- package/build/src/browser/screen-shooter/debug.js.map +1 -0
- package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +0 -1
- package/build/src/browser/screen-shooter/elements-screen-shooter.js +120 -61
- package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
- package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +3 -2
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js +19 -15
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/index.d.ts +1 -0
- package/build/src/browser/screen-shooter/operations/index.js +3 -1
- package/build/src/browser/screen-shooter/operations/index.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/pointer-events.js +7 -0
- package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -1
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +6 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +147 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
- package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +2 -1
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js +3 -5
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
- package/build/src/browser/types.d.ts +6 -4
- package/build/src/browser/wsdriver/compression.d.ts +5 -0
- package/build/src/browser/wsdriver/compression.js +79 -0
- package/build/src/browser/wsdriver/compression.js.map +1 -0
- package/build/src/browser/wsdriver/constants.d.ts +11 -0
- package/build/src/browser/wsdriver/constants.js +15 -0
- package/build/src/browser/wsdriver/constants.js.map +1 -0
- package/build/src/browser/wsdriver/debug.d.ts +2 -0
- package/build/src/browser/wsdriver/debug.js +9 -0
- package/build/src/browser/wsdriver/debug.js.map +1 -0
- package/build/src/browser/wsdriver/error.d.ts +18 -0
- package/build/src/browser/wsdriver/error.js +36 -0
- package/build/src/browser/wsdriver/error.js.map +1 -0
- package/build/src/browser/wsdriver/index.d.ts +23 -0
- package/build/src/browser/wsdriver/index.js +261 -0
- package/build/src/browser/wsdriver/index.js.map +1 -0
- package/build/src/browser/wsdriver/request.d.ts +10 -0
- package/build/src/browser/wsdriver/request.js +58 -0
- package/build/src/browser/wsdriver/request.js.map +1 -0
- package/build/src/browser/wsdriver/response.d.ts +3 -0
- package/build/src/browser/wsdriver/response.js +111 -0
- package/build/src/browser/wsdriver/response.js.map +1 -0
- package/build/src/browser/wsdriver/types.d.ts +71 -0
- package/build/src/browser/wsdriver/types.js +27 -0
- package/build/src/browser/wsdriver/types.js.map +1 -0
- package/build/src/browser-installer/chromium/utils.js +1 -0
- package/build/src/browser-installer/chromium/utils.js.map +1 -1
- package/build/src/browser-installer/utils.js +50 -3
- package/build/src/browser-installer/utils.js.map +1 -1
- package/build/src/browser-pool/basic-pool.js +3 -1
- package/build/src/browser-pool/basic-pool.js.map +1 -1
- package/build/src/cli/commands/selectivity-merge-dumps/index.d.ts +2 -0
- package/build/src/cli/commands/selectivity-merge-dumps/index.js +50 -0
- package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -0
- package/build/src/cli/constants.d.ts +1 -0
- package/build/src/cli/constants.js +1 -0
- package/build/src/cli/constants.js.map +1 -1
- package/build/src/cli/index.js +13 -19
- package/build/src/cli/index.js.map +1 -1
- package/build/src/cli/repl-options.d.ts +3 -0
- package/build/src/cli/repl-options.js +16 -0
- package/build/src/cli/repl-options.js.map +1 -0
- package/build/src/config/browser-options.js +11 -3
- package/build/src/config/browser-options.js.map +1 -1
- package/build/src/config/defaults.d.ts +7 -2
- package/build/src/config/defaults.js +10 -5
- package/build/src/config/defaults.js.map +1 -1
- package/build/src/config/index.d.ts +10 -6
- package/build/src/config/index.js +67 -42
- package/build/src/config/index.js.map +1 -1
- package/build/src/config/types.d.ts +59 -14
- package/build/src/config/types.js +15 -5
- package/build/src/config/types.js.map +1 -1
- package/build/src/config/utils.d.ts +2 -2
- package/build/src/config/utils.js +11 -6
- package/build/src/config/utils.js.map +1 -1
- package/build/src/constants/config.d.ts +0 -1
- package/build/src/constants/config.js +1 -2
- package/build/src/constants/config.js.map +1 -1
- package/build/src/constants/png.d.ts +1 -0
- package/build/src/constants/repl.d.ts +2 -0
- package/build/src/constants/repl.js +6 -0
- package/build/src/constants/repl.js.map +1 -0
- package/build/src/dev-server/index.d.ts +1 -1
- package/build/src/dev-server/index.js +1 -1
- package/build/src/dev-server/index.js.map +1 -1
- package/build/src/globals.d.ts +7 -0
- package/build/src/globals.js +10 -0
- package/build/src/globals.js.map +1 -0
- package/build/src/image.d.ts +6 -1
- package/build/src/image.js +56 -2
- package/build/src/image.js.map +1 -1
- package/build/src/index.d.ts +3 -13
- package/build/src/index.js +5 -1
- package/build/src/index.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/driver.js +6 -8
- package/build/src/runner/browser-env/vite/browser-modules/driver.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +1 -1
- package/build/src/runner/index.js +1 -0
- package/build/src/runner/index.js.map +1 -1
- package/build/src/runner/suite-monitor.d.ts +1 -1
- package/build/src/runner/test-runner/regular-test-runner.js +2 -2
- package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
- package/build/src/signal-handler.d.ts +2 -2
- package/build/src/signal-handler.js +24 -11
- package/build/src/signal-handler.js.map +1 -1
- package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
- package/build/src/test-reader/test-parser.js +3 -3
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/testplane.d.ts +4 -5
- package/build/src/testplane.js +20 -10
- package/build/src/testplane.js.map +1 -1
- package/build/src/types/globals.d.ts +16 -0
- package/build/src/types/globals.js +3 -0
- package/build/src/types/globals.js.map +1 -0
- package/build/src/types/index.d.ts +2 -3
- package/build/src/utils/crypto.d.ts +1 -0
- package/build/src/utils/crypto.js +2 -1
- package/build/src/utils/crypto.js.map +1 -1
- package/build/src/utils/eight-bit-rgba-to-png.d.ts +1 -0
- package/build/src/utils/repl-instrumentation/index.d.ts +1 -0
- package/build/src/utils/repl-instrumentation/index.js +46 -0
- package/build/src/utils/repl-instrumentation/index.js.map +1 -0
- package/build/src/utils/repl-instrumentation/typescript.d.ts +7 -0
- package/build/src/utils/repl-instrumentation/typescript.js +307 -0
- package/build/src/utils/repl-instrumentation/typescript.js.map +1 -0
- package/build/src/utils/repl-module-hooks.d.ts +1 -0
- package/build/src/utils/repl-module-hooks.js +181 -0
- package/build/src/utils/repl-module-hooks.js.map +1 -0
- package/build/src/utils/workers-registry.d.ts +2 -2
- package/build/src/utils/workers-registry.js +1 -0
- package/build/src/utils/workers-registry.js.map +1 -1
- package/build/src/vendors/expect-webdriverio/matchers-overrides.d.ts +49 -0
- package/build/src/vendors/expect-webdriverio/matchers-overrides.js +3 -0
- package/build/src/vendors/expect-webdriverio/matchers-overrides.js.map +1 -0
- package/build/src/worker/runner/browser-pool.js +4 -1
- package/build/src/worker/runner/browser-pool.js.map +1 -1
- package/build/src/worker/runner/index.js +6 -3
- package/build/src/worker/runner/index.js.map +1 -1
- package/build/src/worker/runner/sequence-test-parser.js +5 -7
- package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +2 -3
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -1
- package/build/src/worker/runner/test-runner/execution-thread.d.ts +0 -1
- package/build/src/worker/runner/test-runner/execution-thread.js +0 -5
- package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
- package/build/src/worker/runner/test-runner/index.d.ts +1 -0
- package/build/src/worker/runner/test-runner/index.js +47 -2
- package/build/src/worker/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/testplane-facade.js +5 -3
- package/build/src/worker/testplane-facade.js.map +1 -1
- package/build/src/worker/testplane.d.ts +1 -0
- package/build/src/worker/testplane.js +4 -1
- package/build/src/worker/testplane.js.map +1 -1
- package/build/src/ws-connection/constants.d.ts +13 -0
- package/build/src/ws-connection/constants.js +17 -0
- package/build/src/ws-connection/constants.js.map +1 -0
- package/build/src/ws-connection/error.d.ts +52 -0
- package/build/src/ws-connection/error.js +84 -0
- package/build/src/ws-connection/error.js.map +1 -0
- package/build/src/ws-connection/index.d.ts +83 -0
- package/build/src/ws-connection/index.js +397 -0
- package/build/src/ws-connection/index.js.map +1 -0
- package/build/src/ws-connection/utils.d.ts +6 -0
- package/build/src/ws-connection/utils.js +9 -0
- package/build/src/ws-connection/utils.js.map +1 -0
- package/package.json +15 -15
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
(function (__geminiNamespace) { (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
2
|
-
"use strict";var __extends=this&&this.__extends||function(){var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])})(t,e)};return function(t,e){function o(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}}();exports.__esModule=!0,exports.OutsideOfViewportError=void 0;var _isomorphic_1=require("/
|
|
3
|
-
},{"/
|
|
4
|
-
"use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),s=r[t];r[t]=r[i],r[i]=s}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,s=0,n=0;s<r.length;s++){for(;n+1<r.length&&r[n+1]-r[s]<=o;)n++;n-s+1>i-t+1&&(t=s,i=n)}var c=r.slice(t,i+1),a=Math.floor(c.length/2);return c.length%2==1?c[a]:(c[a-1]+c[a])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var s=i.element.getBoundingClientRect(),n=i.rect;s.width<=0||s.height<=0||Math.abs(s.width-n.width)>1||Math.abs(s.height-n.height)>1||o.push(s.top-n.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var c=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===c?null:c}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function scrollBy(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollBy"),s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s)-1;return(0,scroll_1.scrollElementBy)(c,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function scrollTo(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollTo");i("Asked to scroll to with params: selectorsToCapture:",e,"scrollOffset:",o,"selectorToScroll:",r);var s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementToOffset)(c,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function getCaptureState(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"getCaptureState"),s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,operations_1.computeIgnoreAreas)(o),u=(0,operations_1.computeSafeArea)(e,c,i),m=(0,operations_1.computeCaptureSpecs)(e,i),_=m.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s)}}),d=(0,operations_1.computeScrollOffset)(c),f=(0,operations_1.computeViewportOffset)(),h=computeActualShift(),v=null===h?null:(0,_isomorphic_1.fromCssToDeviceNumber)(h,s);return i("scrollOffset:",d),{captureSpecs:_,ignoreAreas:p.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),s),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(d,s),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(f),s),anchorShift:v,readableSelectorToScrollDescr:l,debugLog:i()}})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),n=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var c=r.height>t.height;c&&((0,operations_1.disablePointerEvents)(),n=!0)}var a=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(s),o),elementPositionsProbe:a,pixelRatio:o,pointerEventsDisabled:n}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:s}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){var o=(0,operations_1.computePixelRatio)(e.usePixelRatio),r=(0,operations_1.computeViewportSize)(),t=(0,operations_1.computeViewportOffset)(),i=(0,operations_1.computeDocumentSize)(),s=(0,operations_1.computeCanHaveCaret)();e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),n=!0),{viewportSize:(0,_isomorphic_1.fromCssToDevice)(r,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(t),o),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(i,o)),canHaveCaret:s,pixelRatio:o,pointerEventsDisabled:n}})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e,o){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var s=document.querySelector(e[i]);if(s){t.push(s);for(var n=s.querySelectorAll("*"),c=0;c<n.length;c++)t.push(n[c])}}var a=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),l=sampleRandom(a,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=l.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var t=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,r).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var i=(0,operations_1.computePixelRatio)(o.usePixelRatio),s=o.selectorToScroll?document.querySelector(o.selectorToScroll):null,n=null!==s&&void 0!==s?s:(0,scroll_1.getCommonScrollParent)(e),c=(0,operations_1.computeIgnoreAreas)(o.ignoreSelectors),a=(0,operations_1.computeCaptureSpecs)(e,r),l=(0,operations_1.computeViewportSize)(),p=(0,operations_1.computeViewportOffset)(),u=(0,operations_1.computeSafeArea)(e,n,r),m=(0,operations_1.computeScrollOffset)(n),_=(0,operations_1.computeDocumentSize)(),d=(0,operations_1.computeCanHaveCaret)(),f=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),f=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var h=(0,_isomorphic_1.getCoveringRect)(a.map(function(e){return e.full})),v=(0,_isomorphic_1.getBottom)(h)>(0,_isomorphic_1.getBottom)(u);v&&(r("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",h,"safeArea:",u),(0,operations_1.disablePointerEvents)(),f=!0)}return r("scrollOffset:",m),{ignoreAreas:c.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),i)}),captureSpecs:a.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),i),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),i)}}),viewportSize:(0,_isomorphic_1.fromCssToDevice)(l,i),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(p),i),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),i),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(_,i)),canHaveCaret:d,pixelRatio:i,pointerEventsDisabled:f,debugLog:r(),readableSelectorToScrollDescr:t,scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(m,i)}}exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/Users/shadowusr/dev/testplane/wt/testplane-9-fixes/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
|
|
5
|
-
},{"../shared/logger":
|
|
2
|
+
"use strict";var __extends=this&&this.__extends||function(){var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])})(t,e)};return function(t,e){function o(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}}();exports.__esModule=!0,exports.OutsideOfViewportError=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),OutsideOfViewportError=function(r){function t(t){var e=r.call(this,'Can not capture element, because it is completely outside of viewport with no intersection. Try to set "captureElementFromTop=true" assertView option to scroll to it before capture.')||this;return e.name="OutsideOfViewportError",e.errorCode=_isomorphic_1.BrowserSideErrorCode.OUTSIDE_OF_VIEWPORT,e.debugLog=t,e}return __extends(t,r),t}(Error);exports.OutsideOfViewportError=OutsideOfViewportError;
|
|
3
|
+
},{"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],2:[function(require,module,exports){
|
|
4
|
+
"use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),s=r[t];r[t]=r[i],r[i]=s}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,s=0,n=0;s<r.length;s++){for(;n+1<r.length&&r[n+1]-r[s]<=o;)n++;n-s+1>i-t+1&&(t=s,i=n)}var c=r.slice(t,i+1),a=Math.floor(c.length/2);return c.length%2==1?c[a]:(c[a-1]+c[a])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var s=i.element.getBoundingClientRect(),n=i.rect;s.width<=0||s.height<=0||Math.abs(s.width-n.width)>1||Math.abs(s.height-n.height)>1||o.push(s.top-n.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var c=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===c?null:c}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function scrollBy(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollBy"),s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementBy)(c,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function scrollTo(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollTo");i("Asked to scroll to with params: selectorsToCapture:",e,"scrollOffset:",o,"selectorToScroll:",r);var s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementToOffset)(c,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function getCaptureState(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"getCaptureState"),s=(0,operations_1.computePixelRatio)(),n=r?document.querySelector(r):null,c=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),a=(0,descriptions_1.getReadableElementDescriptor)(c),l=r?n?"".concat(r," (").concat(a,")"):"".concat(r," (not found, auto-detected ").concat(a,")"):"auto-detected ".concat(a),p=(0,operations_1.computeIgnoreAreas)(o),u=(0,operations_1.computeSafeArea)(e,c,i),m=(0,operations_1.computeCaptureSpecs)(e,i),_=m.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s)}}),f=(0,operations_1.computeScrollOffset)(c),d=(0,operations_1.computeViewportOffset)(),h=computeActualShift(),v=null===h?null:(0,_isomorphic_1.fromCssToDeviceNumber)(h,s);return i("scrollOffset:",f),{captureSpecs:_,ignoreAreas:p.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),s),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(d),s),anchorShift:v,readableSelectorToScrollDescr:l,debugLog:i()}})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),n=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var c=r.height>t.height;c&&((0,operations_1.disablePointerEvents)(),n=!0)}var a=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(s),o),elementPositionsProbe:a,pixelRatio:o,pointerEventsDisabled:n}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:s}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){var o=(0,operations_1.computePixelRatio)(e.usePixelRatio),r=(0,operations_1.computeViewportSize)(),t=(0,operations_1.computeViewportOffset)(),i=(0,operations_1.computeDocumentSize)(),s=(0,operations_1.computeCanHaveCaret)();e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),n=!0),{viewportSize:(0,_isomorphic_1.fromCssToDevice)(r,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(t),o),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(i,o)),canHaveCaret:s,pixelRatio:o,pointerEventsDisabled:n}})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var s=document.querySelector(e[i]);if(s){t.push(s);for(var n=s.querySelectorAll("*"),c=0;c<n.length;c++)t.push(n[c])}}var a=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),l=sampleRandom(a,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=l.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var t=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,r).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var i=(0,operations_1.computePixelRatio)(o.usePixelRatio),s=o.selectorToScroll?document.querySelector(o.selectorToScroll):null,n=null!==s&&void 0!==s?s:(0,scroll_1.getCommonScrollParent)(e),c=(0,operations_1.computeIgnoreAreas)(o.ignoreSelectors),a=(0,operations_1.computeCaptureSpecs)(e,r),l=(0,operations_1.computeViewportSize)(),p=(0,operations_1.computeViewportOffset)(),u=(0,operations_1.computeSafeArea)(e,n,r),m=(0,operations_1.computeScrollOffset)(n),_=(0,operations_1.computeDocumentSize)(),f=(0,operations_1.computeCanHaveCaret)(),d=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),d=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var h=(0,_isomorphic_1.getCoveringRect)(a.map(function(e){return e.full})),v=(0,_isomorphic_1.getBottom)(h)>(0,_isomorphic_1.getBottom)(u);v&&(r("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",h,"safeArea:",u),(0,operations_1.disablePointerEvents)(),d=!0)}return r("scrollOffset:",m),{ignoreAreas:c.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),i)}),captureSpecs:a.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),i),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),i),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),i)}}),viewportSize:(0,_isomorphic_1.fromCssToDevice)(l,i),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(p),i),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),i),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(_,i)),canHaveCaret:f,pixelRatio:i,pointerEventsDisabled:d,debugLog:r(),readableSelectorToScrollDescr:t,scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(m,i)}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
|
|
5
|
+
},{"../shared/logger":15,"./operations":4,"./utils/descriptions":6,"./utils/dom":7,"./utils/scroll":10,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],3:[function(require,module,exports){
|
|
6
6
|
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){n===undefined&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){n===undefined&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t};exports.__esModule=!0;var implementation=__importStar(require("./implementation")),globalObj="undefined"==typeof window?globalThis:window;globalObj.__geminiCore||(globalObj.__geminiCore={}),globalObj.__geminiCore[__geminiNamespace]=implementation;
|
|
7
7
|
},{"./implementation":2}],4:[function(require,module,exports){
|
|
8
|
-
"use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.scrollY:e.scrollTop}function computeViewportSize(){return{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.scrollX,top:window.scrollY}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){var t,o;void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var r=computeViewportSize(),n=getProbeAxisCoordinates(r.width,e),i=getProbeAxisCoordinates(r.height,e),l=[],s=0;s<i.length;s++)for(var a=0;a<n.length;a++){var c=n[a],u=i[s],p=null!==(o=null===(t=document.elementFromPoint(c,u))||void 0===t?void 0:t.getBoundingClientRect())&&void 0!==o?o:null;l.push(p?(0,_isomorphic_1.fromBcrToRect)(p):null)}return l}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No selectors to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("selectors:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureSelector)(e[n]),l=document.querySelector(i.elementSelector);l&&r.push({element:l,pseudoElement:i.pseudoElement})}var s=r.map(function(e){var o,r=e.element,n=e.pseudoElement,i=n?(0,element_rect_1.getPseudoElementCaptureRect)(r,n):(0,element_rect_1.getElementCaptureRect)(r,t);if(!i)return null;var l=(0,clip_rect_1.getClipRect)(r,t);return{full:i,visible:null!==(o=(0,_isomorphic_1.getIntersection)(i,l))&&void 0!==o?o:{top:i.top,left:i.left,width:0,height:0}}}).filter(function(e){return null!==e});return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureSelector)(e[o]),n=document.querySelectorAll(r.elementSelector),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return document.querySelector((0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=(0,_isomorphic_1.getCoveringRect)(c),m=null!==t&&void 0!==t?t:document.documentElement;if(m===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(m);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(m),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var f=(0,element_rect_1.getVerticalRadiusInsets)(m),h=f.top,_=f.bottom;if(h>0||_>0){var v=u.height,g=Math.min(h,v),S=Math.min(_,v-g);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:g,bottomInset:S}),u=__assign(__assign({},u),{top:u.top+g,height:v-g-S})}}for(var w=__assign({},u),C=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=p.left,P=E+p.width,x=[],b=document.documentElement.querySelectorAll("*"),y=0;y<b.length;y++)!function(e){var t=b[e];if(a.some(function(e){return t!==e&&t.contains(e)}))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4)return"continue";if(l.right<=E||l.left>=P)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,p=(0,element_rect_1.domRectToViewportCss)(l),d=(0,dom_1.findFixedPositionedParent)(t);if("fixed"===i||d&&!a.some(function(e){return d.contains(e)}))c=!0;else if("absolute"===i){if(a.some(function(e){return e.contains(t)}))return"continue";var f=(0,dom_1.findContainingBlock)(t);m===document.documentElement||m.contains(f)||(c=!0)}else if("sticky"===i){var h=parseFloat(r.top),_=parseFloat(r.bottom),v=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(v));var g=v.getBoundingClientRect();if(h+=(0,scroll_1.isRootLikeElement)(v)?0:g.top,isNaN(h)){if(!isNaN(_)){var S=m===document.documentElement,w=S?s.height:u.top+u.height;p={left:l.left,top:w-_-l.height,width:l.width,height:l.height},c=!0}}else p={left:l.left,top:h,width:l.width,height:l.height},c=!0}if(!c)return"continue";var y=(0,z_index_1.buildZChain)(t);if(!C.every(function(e){return(0,z_index_1.isChainBehind)(y,e)})){var A=(0,element_rect_1.getExtRect)(r,p),T=A.left;if(T+A.width<=E||T>=P)return"continue";x.push({element:t,rect:A})}}(y);for(var A=u.top,T=u.height,R=w.height,I=0,N=x;I<N.length;I++){var D=N[I];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(D.element),rect:D.rect});var O=D.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:T}),B=(0,_isomorphic_1.getBottom)(O),M=B-A,F=q-O.top,V=A,z=T;M<F?(V=Math.max(B,A),z=(0,_isomorphic_1.getHeight)(q,V),null===o||void 0===o||o("decided to shrink top")):F&&(z=Math.min(T,O.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<R/2?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,T=z)}T<R/2&&(A=w.top,T=w.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+T)<40&&(T-=40);var k={top:A,height:T};return null===o||void 0===o||o("final safe area:",k),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),k}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e){return void 0===e&&(e=!0),!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),c=computeSafeArea(e),u=(0,_isomorphic_1.getIntersection)(a,c),p=(0,_isomorphic_1.getIntersection)(a,l),m=!u||u.height<a.height/2,d=a.top>=c.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:a,safeArea:c,viewport:l,hasViewportIntersection:Boolean(p),hasSafeAreaIntersection:Boolean(u),isIntersectionWithSafeAreaTooSmall:m,captureElementFromTop:Boolean(t)}),!t&&!p)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!m)&&d)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};var f=r?document.querySelector(r):null,h=e.map(function(e){return(0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector}),_=null!==f&&void 0!==f?f:(0,scroll_1.getCommonScrollParent)(h),v=null!==r&&void 0!==r?r:(0,descriptions_1.getReadableElementDescriptor)(_);null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:v,requestedSelectorToScroll:null!==r&&void 0!==r?r:null,selectorMatched:Boolean(f)});var g=__spreadArray([],(0,scroll_1.getScrollParentsChain)(_),!0);g[g.length-1]!==_&&g.push(_);for(var S=1;S<g.length;S++){var w=computeSafeArea(e,g[S-1]),C=g[S].getBoundingClientRect().top,E=C-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(g[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(g[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(g[S-1],E,n)}var P=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!P)return{};var x=computeSafeArea(e,_),b=P.top-x.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:v,finalScrollDelta:b}),(0,scroll_1.scrollElementBy)(_,b,n),{readableSelectorToScrollDescr:v}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.scrollX,top:window.scrollY}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?document.querySelector(t):null,r=e.map(function(e){return(0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector}),n=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(r),i=__spreadArray([],(0,scroll_1.getScrollParentsChain)(n),!0);i[i.length-1]!==n&&i.push(n);for(var l=0,s=i;l<s.length;l++){saveElementScrollPosition(s[l])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,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;var _isomorphic_1=require("/Users/shadowusr/dev/testplane/wt/testplane-9-fixes/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
|
|
9
|
-
},{"./errors/outside-of-viewport":1,"./utils/clip-rect":5,"./utils/descriptions":6,"./utils/dom":7,"./utils/element-rect":8,"./utils/pseudo-element-rect":9,"./utils/scroll":10,"./utils/trusted-types":11,"./utils/user-agent":12,"./utils/z-index":13,"/
|
|
10
|
-
"use strict";function getViewportRect(){return{top:0,left:0,width:window.innerWidth,height:window.innerHeight}}function hasOverflowClipping(e){return"visible"!==e.overflow||"visible"!==e.overflowX||"visible"!==e.overflowY}function getAbsoluteContainingBlocks(e){for(var t=[],
|
|
11
|
-
},{"./descriptions":6,"./dom":7,"./element-rect":8,"./scroll":10,"/
|
|
8
|
+
"use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.scrollY:e.scrollTop}function computeViewportSize(){return{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.scrollX,top:window.scrollY}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No selectors to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("selectors:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureSelector)(e[n]),l=document.querySelector(i.elementSelector);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,m=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);m&&s.push(m)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureSelector)(e[o]),n=document.querySelectorAll(r.elementSelector),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return document.querySelector((0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var m=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",m),u=null!==(r=(0,_isomorphic_1.getIntersection)(m,s))&&void 0!==r?r:__assign({},s);var d=(0,element_rect_1.getVerticalRadiusInsets)(p),f=d.top,h=d.bottom;if(f>0||h>0){var _=u.height,g=Math.min(f,_),v=Math.min(h,_-g);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:g,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+g,height:_-g-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),E=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),C=w.left,P=C+w.width,x=[],b=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,A=0;A<b.length;A++)!function(e){var t=b[e];if(p===t||t.contains(p))return"continue";if(y&&(t===y||t.contains(y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=C||l.left>=P)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,m=!1,d=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||f.contains(p));if("fixed"===i||f&&!h)c=!0,m=a.some(function(e){return e.contains(t)});else if("absolute"===i){if(a.some(function(e){return e.contains(t)}))return"continue";var _=(0,dom_1.findContainingBlock)(t);p===document.documentElement||p.contains(_)||(c=!0)}else if("sticky"===i){var g=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(g+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,m=S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p),isNaN(g)){if(!isNaN(v)){var A=p===document.documentElement,T=A?s.height:u.top+u.height;d={left:l.left,top:T-v-l.height,width:l.width,height:l.height},c=!0}}else d={left:l.left,top:g,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(m||!E.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,d),N=I.left;if(N+I.width<=C||N>=P)return"continue";x.push({element:t,rect:I})}}(A);for(var T=u.top,R=u.height,I=S.height,N=0,D=x;N<D.length;N++){var O=D[N];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(O.element),rect:O.rect});var q=O.rect,M=(0,_isomorphic_1.getBottom)({top:T,height:R}),k=(0,_isomorphic_1.getBottom)(q),B=k-T,F=M-q.top,V=T,z=R;B<F?(V=Math.max(k,T),z=(0,_isomorphic_1.getHeight)(M,V),null===o||void 0===o||o("decided to shrink top")):F&&(z=Math.min(R,q.top-T),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),T=V,R=z)}R<.3*I&&(T=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(T+R)<40&&(R-=40);var L={top:T,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e){return void 0===e&&(e=!0),!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?document.querySelector(r):null,c=e.map(function(e){return(0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector}),u=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(c),p=null!==r&&void 0!==r?r:(0,descriptions_1.getReadableElementDescriptor)(u),m=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,u,n),f=(0,_isomorphic_1.getIntersection)(m,d),h=(0,_isomorphic_1.getIntersection)(m,l),_=Math.min(m.height,d.height),g=!f||f.height<_/2,v=m.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:m,safeArea:d,viewport:l,hasViewportIntersection:Boolean(h),hasSafeAreaIntersection:Boolean(f),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!h)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&v)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:p,requestedSelectorToScroll:null!==r&&void 0!==r?r:null,selectorMatched:Boolean(a)});var S=__spreadArray([],(0,scroll_1.getScrollParentsChain)(u),!0);S[S.length-1]!==u&&S.push(u);for(var w=1;w<S.length;w++){var E=computeSafeArea(e,S[w-1]),C=S[w].getBoundingClientRect().top,P=C-E.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(S[w-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(S[w]),scrollDelta:P}),(0,scroll_1.scrollElementBy)(S[w-1],P,n)}var x=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!x)return{};var b=computeSafeArea(e,u),y=x.top-b.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:p,finalScrollDelta:y}),(0,scroll_1.scrollElementBy)(u,y,n),{readableSelectorToScrollDescr:p}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.scrollX,top:window.scrollY}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?document.querySelector(t):null,r=e.map(function(e){return(0,pseudo_element_rect_1.parseCaptureSelector)(e).elementSelector}),n=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(r),i=__spreadArray([],(0,scroll_1.getScrollParentsChain)(n),!0);i[i.length-1]!==n&&i.push(n);for(var l=0,s=i;l<s.length;l++){saveElementScrollPosition(s[l])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,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;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
|
|
9
|
+
},{"./errors/outside-of-viewport":1,"./utils/clip-rect":5,"./utils/descriptions":6,"./utils/dom":7,"./utils/element-rect":8,"./utils/pseudo-element-rect":9,"./utils/scroll":10,"./utils/trusted-types":11,"./utils/user-agent":12,"./utils/z-index":13,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],5:[function(require,module,exports){
|
|
10
|
+
"use strict";function getViewportRect(){return{top:0,left:0,width:window.innerWidth,height:window.innerHeight}}function hasOverflowClipping(e){return"visible"!==e.overflow||"visible"!==e.overflowX||"visible"!==e.overflowY}function getAbsoluteContainingBlocks(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);){if("absolute"===getComputedStyle(n).position){var i=(0,dom_1.findContainingBlock)(n);t.push({absoluteAncestor:n,containingBlock:i})}n=n.parentElement}return t}function getFixedAncestors(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);)"fixed"===getComputedStyle(n).position&&t.push(n),n=n.parentElement;return t}function escapesOverflowClippingViaAbsoluteContainingBlocks(e,t){return t.some(function(t){var n=t.absoluteAncestor,i=t.containingBlock;return!(n===e||!e.contains(n))&&(i!==e&&i.contains(e))})}function escapesOverflowClippingViaFixedAncestors(e,t){return t.some(function(t){return t!==e&&e.contains(t)})}function getClipRect(e,t){for(var n=getViewportRect(),i=getAbsoluteContainingBlocks(e),o=getFixedAncestors(e),r=n,s=e.parentElement;s&&!(0,scroll_1.isRootLikeElement)(s);){if(hasOverflowClipping(getComputedStyle(s))){if(escapesOverflowClippingViaAbsoluteContainingBlocks(s,i)||escapesOverflowClippingViaFixedAncestors(s,o)){s=s.parentElement;continue}var l=(0,element_rect_1.getBoundingClientContentRect)(s);null===t||void 0===t||t("intersecting with:",(0,descriptions_1.getReadableElementDescriptor)(s),"contentBox:",l);var c=(0,_isomorphic_1.getIntersection)(r,l);if(!c)return null===t||void 0===t||t("no intersection found for:",(0,descriptions_1.getReadableElementDescriptor)(s)),{top:r.top,left:r.left,width:0,height:0};r=c}s=s.parentElement}return r}exports.__esModule=!0,exports.getClipRect=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),element_rect_1=require("./element-rect"),scroll_1=require("./scroll"),dom_1=require("./dom"),descriptions_1=require("./descriptions");exports.getClipRect=getClipRect;
|
|
11
|
+
},{"./descriptions":6,"./dom":7,"./element-rect":8,"./scroll":10,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],6:[function(require,module,exports){
|
|
12
12
|
"use strict";function getReadableElementDescriptor(e){if(e===document.documentElement)return"html";var t=e.tagName.toLowerCase();if(e.id)return"".concat(t,"#").concat(e.id);if(e.classList.length){for(var r=[],s=0;s<e.classList.length;s++)r.push(e.classList[s]);return t+"."+r.join(".")}return t}exports.__esModule=!0,exports.getReadableElementDescriptor=void 0,exports.getReadableElementDescriptor=getReadableElementDescriptor;
|
|
13
13
|
},{}],7:[function(require,module,exports){
|
|
14
|
-
"use strict";function getOwnerWindow(e){return e.ownerDocument?e.ownerDocument.defaultView:null}function getOwnerIframe(e){var
|
|
15
|
-
},{}],8:[function(require,module,exports){
|
|
16
|
-
"use strict";function domRectToViewportCss(t){return{top:t.top,left:t.left,width:t.width,height:t.height}}function getElementBorderWidths(t){var e=(0,dom_1.getOwnerWindow)(t)||window,o=e.getComputedStyle(t);return{top:parseFloat(o.borderTopWidth),left:parseFloat(o.borderLeftWidth)}}function getIframeContentOrigin(t){var e=getElementBorderWidths(t),o=t.getBoundingClientRect();return{top:o.top+e.top,left:o.left+e.left,width:o.width,height:o.height}}function getNestedBoundingClientRect(t,e){var o=(0,dom_1.getOwnerIframe)(t);if(null===o||(0,dom_1.getOwnerWindow)(o)===window)return null===e||void 0===e||e("getNestedBoundingClientRect ownerIframe is null or window, returning bounding rect untouched"),domRectToViewportCss(t.getBoundingClientRect());null===e||void 0===e||e("getNestedBoundingClientRect ownerIframe is not null or window, returning bounding rect with iframe origin");for(var r=domRectToViewportCss(t.getBoundingClientRect()),n=r.top,i=r.left,d=o;d;){var a=getIframeContentOrigin(d);if(n+=a.top,i+=a.left,(d=(0,dom_1.getOwnerIframe)(d))&&(0,dom_1.getOwnerWindow)(d)===window){var s=getIframeContentOrigin(d);n+=s.top,i+=s.left;break}}return{top:n,left:i,width:r.width,height:r.height}}function parseBoxShadow(t){for(var e=/[-+]?\d*\.?\d+px/g,o=[],r=0,n=(t||"").split(",");r<n.length;r++){var i=n[r],d=i.match(e);d&&o.push({offsetX:parseFloat(d[0]),offsetY:parseFloat(d[1])||0,blurRadius:parseFloat(d[2])||0,spreadRadius:parseFloat(d[3])||0,inset:-1!==i.indexOf("inset")})}return o}function calculateShadowExtent(t){for(var e={top:0,left:0,right:0,bottom:0},o=0,r=t;o<r.length;o++){var n=r[o];if(!n.inset){var i=n.spreadRadius+n.blurRadius;e.left=Math.min(n.offsetX-i,e.left),e.right=Math.max(n.offsetX+i,e.right),e.top=Math.min(n.offsetY-i,e.top),e.bottom=Math.max(n.offsetY+i,e.bottom)}}return e}function calculateShadowRect(t,e){var o=calculateShadowExtent(e);return{left:t.left+o.left,top:t.top+o.top,width:t.width-o.left+o.right,height:t.height-o.top+o.bottom}}function calculateOutlineRect(t,e){return{top:t.top-e,left:t.left-e,width:t.width+2*e,height:t.height+2*e}}function getExtRect(t,e){var o=parseBoxShadow(t.boxShadow),r=parseInt(t.outlineWidth,10),n=isNaN(r)||"none"===t.outlineStyle?0:r;return(0,_isomorphic_1.getCoveringRect)([calculateShadowRect(e,o),calculateOutlineRect(e,n)])}function isHidden(t,e){return"none"===t.display||"hidden"===t.visibility||parseFloat(t.opacity)<1e-4||e.width<1e-4||e.height<1e-4}function getBoundingClientContentRect(t){var e=getComputedStyle(t),o=t.getBoundingClientRect(),r=parseFloat(e.borderLeftWidth)||0,n=parseFloat(e.borderTopWidth)||0,i=parseFloat(e.borderRightWidth)||0,d=parseFloat(e.borderBottomWidth)||0;return{left:o.left+r,top:o.top+n,width:o.width-r-i,height:o.height-n-d}}function getElementCaptureRect(t,e){var o=getComputedStyle(t),r=getNestedBoundingClientRect(t,e);if(null===e||void 0===e||e("getElementCaptureRect clientRect:",r),isHidden(o,r))return null;for(var n=getExtRect(o,r),i=0,d=pseudo_element_rect_1.PSEUDO_ELEMENTS;i<d.length;i++){var a=d[i],s=getComputedStyle(t,a);n=(0,_isomorphic_1.getCoveringRect)([n,getExtRect(s,r)])}return n}function getPseudoElementCaptureRect(t,e){var o=getComputedStyle(t),r=getNestedBoundingClientRect(t);if(isHidden(o,r))return null;var n=(0,pseudo_element_rect_1.getPseudoElementRect)(t,e,r);return n?getExtRect(getComputedStyle(t,e),n):null}function parseBorderRadius(t){var e=t.trim().split(/\s+/),o=e[0],r=e[1],n=parseFloat(null!==r&&void 0!==r?r:o);return isNaN(n)?0:n}function getVerticalRadiusInsets(t){var e=getComputedStyle(t);return{top:Math.max(parseBorderRadius(e.borderTopLeftRadius),parseBorderRadius(e.borderTopRightRadius)),bottom:Math.max(parseBorderRadius(e.borderBottomLeftRadius),parseBorderRadius(e.borderBottomRightRadius))}}exports.__esModule=!0,exports.getVerticalRadiusInsets=exports.getPseudoElementCaptureRect=exports.getElementCaptureRect=exports.getBoundingClientContentRect=exports.getExtRect=exports.domRectToViewportCss=void 0;var _isomorphic_1=require("/
|
|
17
|
-
},{"./dom":7,"./pseudo-element-rect":9,"/
|
|
14
|
+
"use strict";function getOwnerWindow(e){return e.ownerDocument?e.ownerDocument.defaultView:null}function getOwnerIframe(e){var t=getOwnerWindow(e);return t?t.frameElement:null}function getMainDocumentElem(e){e||(e=document.documentElement);var t=getOwnerIframe(e);if(!t)return e;var n=getOwnerWindow(t);return n?getMainDocumentElem(n.document.documentElement):e}function forEachRoot(e){function t(n){e(n);for(var o=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,null,!1),r=o.currentNode;null!==r;r=o.nextNode())r instanceof Element&&r.shadowRoot&&t(r.shadowRoot)}t(document.documentElement)}function getParentElement(e){if(e instanceof ShadowRoot)return e.host;if(e instanceof Element){var t=lib.getRootNode(e);return e.parentElement||(t instanceof ShadowRoot?t.host:null)}return e.parentNode instanceof Element?e.parentNode:null}function findFixedPositionedParent(e){for(var t=e.parentElement;t;){if("fixed"===getComputedStyle(t).position)return t;t=t.parentElement}return null}function findContainingBlock(e){for(var t=e.parentElement;t;){var n=getComputedStyle(t);if("relative"===n.position||"absolute"===n.position||"fixed"===n.position||"sticky"===n.position||"none"!==n.transform||"none"!==n.perspective)return t;t=t.parentElement}return document.documentElement}function getScreenshooterNamespaceData(){window.__geminiCore||(window.__geminiCore={});var e="string"==typeof __geminiNamespace&&__geminiNamespace?__geminiNamespace:FALLBACK_SCREENSHOOTER_NAMESPACE;return window.__geminiCore[e]||(window.__geminiCore[e]={}),window.__geminiCore[e]}var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,o){o===undefined&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){o===undefined&&(o=n),e[o]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t};exports.__esModule=!0,exports.getScreenshooterNamespaceData=exports.findContainingBlock=exports.findFixedPositionedParent=exports.getParentElement=exports.forEachRoot=exports.getMainDocumentElem=exports.getOwnerIframe=exports.getOwnerWindow=void 0;var lib=__importStar(require("./../../shared/lib.native.js")),FALLBACK_SCREENSHOOTER_NAMESPACE="__testplane_screenshooter__";exports.getOwnerWindow=getOwnerWindow,exports.getOwnerIframe=getOwnerIframe,exports.getMainDocumentElem=getMainDocumentElem,exports.forEachRoot=forEachRoot,exports.getParentElement=getParentElement,exports.findFixedPositionedParent=findFixedPositionedParent,exports.findContainingBlock=findContainingBlock,exports.getScreenshooterNamespaceData=getScreenshooterNamespaceData;
|
|
15
|
+
},{"./../../shared/lib.native.js":14}],8:[function(require,module,exports){
|
|
16
|
+
"use strict";function domRectToViewportCss(t){return{top:t.top,left:t.left,width:t.width,height:t.height}}function getElementBorderWidths(t){var e=(0,dom_1.getOwnerWindow)(t)||window,o=e.getComputedStyle(t);return{top:parseFloat(o.borderTopWidth),left:parseFloat(o.borderLeftWidth)}}function getIframeContentOrigin(t){var e=getElementBorderWidths(t),o=t.getBoundingClientRect();return{top:o.top+e.top,left:o.left+e.left,width:o.width,height:o.height}}function getNestedBoundingClientRect(t,e){var o=(0,dom_1.getOwnerIframe)(t);if(null===o||(0,dom_1.getOwnerWindow)(o)===window)return null===e||void 0===e||e("getNestedBoundingClientRect ownerIframe is null or window, returning bounding rect untouched"),domRectToViewportCss(t.getBoundingClientRect());null===e||void 0===e||e("getNestedBoundingClientRect ownerIframe is not null or window, returning bounding rect with iframe origin");for(var r=domRectToViewportCss(t.getBoundingClientRect()),n=r.top,i=r.left,d=o;d;){var a=getIframeContentOrigin(d);if(n+=a.top,i+=a.left,(d=(0,dom_1.getOwnerIframe)(d))&&(0,dom_1.getOwnerWindow)(d)===window){var s=getIframeContentOrigin(d);n+=s.top,i+=s.left;break}}return{top:n,left:i,width:r.width,height:r.height}}function parseBoxShadow(t){for(var e=/[-+]?\d*\.?\d+px/g,o=[],r=0,n=(t||"").split(",");r<n.length;r++){var i=n[r],d=i.match(e);d&&o.push({offsetX:parseFloat(d[0]),offsetY:parseFloat(d[1])||0,blurRadius:parseFloat(d[2])||0,spreadRadius:parseFloat(d[3])||0,inset:-1!==i.indexOf("inset")})}return o}function calculateShadowExtent(t){for(var e={top:0,left:0,right:0,bottom:0},o=0,r=t;o<r.length;o++){var n=r[o];if(!n.inset){var i=n.spreadRadius+n.blurRadius;e.left=Math.min(n.offsetX-i,e.left),e.right=Math.max(n.offsetX+i,e.right),e.top=Math.min(n.offsetY-i,e.top),e.bottom=Math.max(n.offsetY+i,e.bottom)}}return e}function calculateShadowRect(t,e){var o=calculateShadowExtent(e);return{left:t.left+o.left,top:t.top+o.top,width:t.width-o.left+o.right,height:t.height-o.top+o.bottom}}function calculateOutlineRect(t,e){return{top:t.top-e,left:t.left-e,width:t.width+2*e,height:t.height+2*e}}function getExtRect(t,e){var o=parseBoxShadow(t.boxShadow),r=parseInt(t.outlineWidth,10),n=isNaN(r)||"none"===t.outlineStyle?0:r;return(0,_isomorphic_1.getCoveringRect)([calculateShadowRect(e,o),calculateOutlineRect(e,n)])}function isHidden(t,e){return"none"===t.display||"hidden"===t.visibility||parseFloat(t.opacity)<1e-4||e.width<1e-4||e.height<1e-4}function getBoundingClientContentRect(t){var e=getComputedStyle(t),o=t.getBoundingClientRect(),r=parseFloat(e.borderLeftWidth)||0,n=parseFloat(e.borderTopWidth)||0,i=parseFloat(e.borderRightWidth)||0,d=parseFloat(e.borderBottomWidth)||0;return{left:o.left+r,top:o.top+n,width:o.width-r-i,height:o.height-n-d}}function getElementCaptureRect(t,e){var o=getComputedStyle(t),r=getNestedBoundingClientRect(t,e);if(null===e||void 0===e||e("getElementCaptureRect clientRect:",r),isHidden(o,r))return null;for(var n=getExtRect(o,r),i=0,d=pseudo_element_rect_1.PSEUDO_ELEMENTS;i<d.length;i++){var a=d[i],s=getComputedStyle(t,a);n=(0,_isomorphic_1.getCoveringRect)([n,getExtRect(s,r)])}return n}function getPseudoElementCaptureRect(t,e){var o=getComputedStyle(t),r=getNestedBoundingClientRect(t);if(isHidden(o,r))return null;var n=(0,pseudo_element_rect_1.getPseudoElementRect)(t,e,r);return n?getExtRect(getComputedStyle(t,e),n):null}function parseBorderRadius(t){var e=t.trim().split(/\s+/),o=e[0],r=e[1],n=parseFloat(null!==r&&void 0!==r?r:o);return isNaN(n)?0:n}function getVerticalRadiusInsets(t){var e=getComputedStyle(t);return{top:Math.max(parseBorderRadius(e.borderTopLeftRadius),parseBorderRadius(e.borderTopRightRadius)),bottom:Math.max(parseBorderRadius(e.borderBottomLeftRadius),parseBorderRadius(e.borderBottomRightRadius))}}exports.__esModule=!0,exports.getVerticalRadiusInsets=exports.getPseudoElementCaptureRect=exports.getElementCaptureRect=exports.getBoundingClientContentRect=exports.getExtRect=exports.domRectToViewportCss=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),dom_1=require("./dom"),pseudo_element_rect_1=require("./pseudo-element-rect");exports.domRectToViewportCss=domRectToViewportCss,exports.getExtRect=getExtRect,exports.getBoundingClientContentRect=getBoundingClientContentRect,exports.getElementCaptureRect=getElementCaptureRect,exports.getPseudoElementCaptureRect=getPseudoElementCaptureRect,exports.getVerticalRadiusInsets=getVerticalRadiusInsets;
|
|
17
|
+
},{"./dom":7,"./pseudo-element-rect":9,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],9:[function(require,module,exports){
|
|
18
18
|
"use strict";function parseCaptureSelector(t){var e=t.match(PSEUDO_SELECTOR_REGEXP);if(!e)return{elementSelector:t,pseudoElement:null};var r=e[1].trim();return r?{elementSelector:r,pseudoElement:e[2].toLowerCase()}:{elementSelector:t,pseudoElement:null}}function getElementBorderWidths(t){var e=getComputedStyle(t);return{top:parseFloat(e.borderTopWidth),left:parseFloat(e.borderLeftWidth)}}function parseLengthOrZero(t){var e=parseFloat(t);return isNaN(e)?0:e}function getElementContentBottom(t){var e=document.createRange();try{e.selectNodeContents(t);for(var r=e.getClientRects(),n=-Infinity,o=0;o<r.length;o++){var a=r[o];a.width<1e-4&&a.height<1e-4||(n=Math.max(n,a.bottom))}return n!==-Infinity?n:null}catch(i){return null}finally{"function"==typeof e.detach&&e.detach()}}function getContainingBlockPaddingEdge(t){for(var e=t.parentElement;e;){if("static"!==getComputedStyle(e).position){var r=e.getBoundingClientRect(),n=getElementBorderWidths(e);return{top:r.top+n.top,left:r.left+n.left}}e=e.parentElement}return null}function parseTransformMatrix(t){if(!t||"none"===t)return null;var e=t.match(/matrix\(([^)]+)\)/);if(e){var r=e[1].split(",").map(function(t){return parseFloat(t.trim())});return{a:r[0],b:r[1],c:r[2],d:r[3],tx:r[4],ty:r[5]}}var n=t.match(/matrix3d\(([^)]+)\)/);if(n){var r=n[1].split(",").map(function(t){return parseFloat(t.trim())});return{a:r[0],b:r[1],c:r[4],d:r[5],tx:r[12],ty:r[13]}}return null}function resolveTransformOrigin(t,e,r){function n(t,e){return"%"===t.slice(-1)?parseFloat(t)/100*e:parseFloat(t)||0}var o=t.split(/\s+/);return{x:n(o[0],e),y:n(o[1]||o[0],r)}}function applyTransformToRect(t,e){var r=parseTransformMatrix(e.transform);if(!r)return t;for(var n=resolveTransformOrigin(e.transformOrigin,t.width,t.height),o=t.left+n.x,a=t.top+n.y,i=[[t.left,t.top],[t.left+t.width,t.top],[t.left,t.top+t.height],[t.left+t.width,t.top+t.height]],l=Infinity,p=Infinity,s=-Infinity,f=-Infinity,u=0,d=i;u<d.length;u++){var h=d[u],c=h[0],m=h[1],g=c-o,v=m-a,E=r.a*g+r.c*v+r.tx+o,y=r.b*g+r.d*v+r.ty+a;l=Math.min(l,E),s=Math.max(s,E),p=Math.min(p,y),f=Math.max(f,y)}return{left:l,top:p,width:s-l,height:f-p}}function computeBaseRect(t,e,r,n){var o=parseFloat(r.width),a=parseFloat(r.height);if(isNaN(o)||isNaN(a)||o<1e-4||a<1e-4)return null;var i=r.position;if("fixed"===i){var l=parseFloat(r.top),p=parseFloat(r.left);return{top:isNaN(l)?0:l,left:isNaN(p)?0:p,width:o,height:a}}if("absolute"===i){var s=getComputedStyle(t),f=void 0,u=void 0;if("static"!==s.position){var d=getElementBorderWidths(t);f=n.top+d.top,u=n.left+d.left}else{var h=getContainingBlockPaddingEdge(t);f=h?h.top:0,u=h?h.left:0}var c=parseFloat(r.top),p=parseFloat(r.left);return{top:f+(isNaN(c)?0:c),left:u+(isNaN(p)?0:p),width:o,height:a}}var m=getComputedStyle(t),g=parseLengthOrZero(m.borderTopWidth),v=parseLengthOrZero(m.borderLeftWidth),E=parseLengthOrZero(m.paddingTop),y=parseLengthOrZero(m.paddingLeft),x=parseLengthOrZero(r.marginTop),S=parseLengthOrZero(r.marginLeft),C="relative"===i?parseLengthOrZero(r.top):0,L="relative"===i?parseLengthOrZero(r.left):0,O=n.top+g+E;if("::after"===e&&"block"===r.display){var N=getElementContentBottom(t);null!==N&&(O=Math.max(O,N))}return{top:O+x+C,left:n.left+v+y+S+L,width:o,height:a}}function getPseudoElementRect(t,e,r){var n=getComputedStyle(t,e);if("none"===n.content||"none"===n.display||"hidden"===n.visibility)return null;var o=computeBaseRect(t,e,n,r);return o?applyTransformToRect(o,n):null}exports.__esModule=!0,exports.getPseudoElementRect=exports.parseCaptureSelector=exports.PSEUDO_ELEMENTS=void 0,exports.PSEUDO_ELEMENTS=["::before","::after"];var PSEUDO_SELECTOR_REGEXP=/(.*?)(::before|::after)\s*$/i;exports.parseCaptureSelector=parseCaptureSelector,exports.getPseudoElementRect=getPseudoElementRect;
|
|
19
19
|
},{}],10:[function(require,module,exports){
|
|
20
20
|
"use strict";function getElementSelector(e){var o=e.match(PSEUDO_SELECTOR_REGEXP);return o?o[1].trim()||e:e}function isScrollable(e){var o=getComputedStyle(e).overflowY;return e.scrollHeight>e.clientHeight&&("auto"===o||"scroll"===o||"overlay"===o)}function getScrollParent(e){if("fixed"===getComputedStyle(e).position)return null;for(var o=(0,dom_1.getParentElement)(e);o&&o!==document.documentElement;){if(isScrollable(o))return o;if("fixed"===getComputedStyle(o).position)return null;o=(0,dom_1.getParentElement)(o)}return o===document.documentElement?document.documentElement:null}function getScrollParentsChain(e){for(var o=[],t=getScrollParent(e);t&&t!==document.documentElement;)o.unshift(t),t=getScrollParent(t);return o.unshift(document.documentElement),o}function getCommonScrollParent(e){var o=e.map(function(e){return document.querySelector(getElementSelector(e))}).filter(function(e){return null!==e});if(0===o.length)return document.documentElement;if(1===o.length){var t=getScrollParent(o[0]);return t?normalizeRootLikeElement(t):document.documentElement}for(var r=o.map(function(e){return getScrollParentsChain(e)}),l=Math.min.apply(Math,r.map(function(e){return e.length})),n=document.documentElement,c=0;c<l;c++){if("break"===function(e){if(!r.every(function(o){return o[e]===r[0][e]}))return"break";n=r[0][e]}(c))break}return normalizeRootLikeElement(n)}function getElementScrollTop(e){return isRootLikeElement(e)?window.scrollY:e.scrollTop}function getPageScrollElement(){var e;return null!==(e=document.scrollingElement)&&void 0!==e?e:document.documentElement}function isRootLikeElement(e){var o=getPageScrollElement();return e===document.documentElement||e===document.body||e===o}function normalizeRootLikeElement(e){return isRootLikeElement(e)?document.documentElement:e}function performScrollFixForSafariIfNeeded(e){(0,user_agent_1.isSafariMobile)()&&window.scrollY<100&&e<100&&window.scrollTo(window.scrollX,100)}function scrollElementBy(e,o,t){var r=o,l=isRootLikeElement(e),n=l?getPageScrollElement():e,c=l?window.scrollY:e.scrollTop,i=n.scrollHeight-n.clientHeight,m=Math.max(0,Math.min(c+r,i));l?(null===t||void 0===t||t("scrollElementBy: scrolling window.scrollTo("+window.scrollX+", "+m+")"),performScrollFixForSafariIfNeeded(m),window.scrollTo(window.scrollX,m)):(null===t||void 0===t||t("scrollElementBy: scrolling element.scrollTo("+e.scrollLeft+", "+m+")"),e.scrollTo(e.scrollLeft,m));for(var a=performance.now(),u=0;performance.now()-a<SCROLL_APPLY_MAX_WAIT_MS&&u<SCROLL_APPLY_MAX_ITERATIONS;){if(getElementScrollTop(e)!==c)return;u++}}function scrollElementToOffset(e,o){var t=isRootLikeElement(e),r=t?getPageScrollElement():e,l=t?window.scrollY:e.scrollTop,n=r.scrollHeight-r.clientHeight,c=Math.max(0,Math.min(o,n));t?(performScrollFixForSafariIfNeeded(c),window.scrollTo(window.scrollX,c)):e.scrollTo(e.scrollLeft,c);for(var i=performance.now(),m=0;performance.now()-i<SCROLL_APPLY_MAX_WAIT_MS&&m<SCROLL_APPLY_MAX_ITERATIONS;){if(getElementScrollTop(e)===l)return;m++}}exports.__esModule=!0,exports.scrollElementToOffset=exports.scrollElementBy=exports.performScrollFixForSafariIfNeeded=exports.isRootLikeElement=exports.getCommonScrollParent=exports.getScrollParentsChain=exports.getScrollParent=void 0;var dom_1=require("./dom"),user_agent_1=require("./user-agent"),PSEUDO_SELECTOR_REGEXP=/(.*?)(::before|::after)\s*$/i;exports.getScrollParent=getScrollParent,exports.getScrollParentsChain=getScrollParentsChain,exports.getCommonScrollParent=getCommonScrollParent;var SCROLL_APPLY_MAX_WAIT_MS=50,SCROLL_APPLY_MAX_ITERATIONS=1e4;exports.isRootLikeElement=isRootLikeElement,exports.performScrollFixForSafariIfNeeded=performScrollFixForSafariIfNeeded,exports.scrollElementBy=scrollElementBy,exports.scrollElementToOffset=scrollElementToOffset;
|
|
@@ -25,14 +25,18 @@
|
|
|
25
25
|
},{}],13:[function(require,module,exports){
|
|
26
26
|
"use strict";function getCssProp(e,t){return e[t]}function hasCssProp(e,t,n){void 0===n&&(n="none");var r=getCssProp(e,t);return r!==undefined&&r!==n}function isFlexContainer(e){return"flex"===e.display||"inline-flex"===e.display}function isGridContainer(e){return-1!==(e.display||"").indexOf("grid")}function hasContainStackingContext(e){return"layout"===e||"paint"===e||"strict"===e||"content"===e||-1!==e.indexOf("paint")||-1!==e.indexOf("layout")}function createsStackingContext(e){var t=getComputedStyle(e),n=t.position,r=t.zIndex;if("fixed"===n||"sticky"===n)return!0;if("size"===getCssProp(t,"containerType")||"inline-size"===getCssProp(t,"containerType"))return!0;if("auto"!==r&&"static"!==n)return!0;if(parseFloat(t.opacity)<1)return!0;if("none"!==t.transform)return!0;if(hasCssProp(t,"scale"))return!0;if(hasCssProp(t,"rotate"))return!0;if(hasCssProp(t,"translate"))return!0;if("normal"!==t.mixBlendMode)return!0;if("none"!==t.filter)return!0;if(hasCssProp(t,"backdropFilter"))return!0;if(hasCssProp(t,"webkitBackdropFilter"))return!0;if("none"!==t.perspective)return!0;if(hasCssProp(t,"clipPath"))return!0;var i=getCssProp(t,"mask")||getCssProp(t,"webkitMask");if(i!==undefined&&"none"!==i)return!0;var o=getCssProp(t,"maskImage")||getCssProp(t,"webkitMaskImage");if(o!==undefined&&"none"!==o)return!0;var a=getCssProp(t,"maskBorder")||getCssProp(t,"webkitMaskBorder");if(a!==undefined&&"none"!==a)return!0;if("isolate"===t.isolation)return!0;var s=t.willChange||"";if(-1!==s.indexOf("transform")||-1!==s.indexOf("opacity"))return!0;if("touch"===getCssProp(t,"webkitOverflowScrolling"))return!0;if("auto"!==r){var u=(0,dom_1.getParentElement)(e);if(u){var f=getComputedStyle(u);if(isFlexContainer(f)||isGridContainer(f))return!0}}return!!hasContainStackingContext(t.contain||"")}function getClosestStackingContext(e){return e&&e!==document.documentElement?e instanceof ShadowRoot?getClosestStackingContext(e.host):e instanceof Element?createsStackingContext(e)?e:getClosestStackingContext((0,dom_1.getParentElement)(e)):getClosestStackingContext(e.parentNode):document.documentElement}function getStackingContextRoot(e){return getClosestStackingContext((0,dom_1.getParentElement)(e))}function getEffectiveZIndex(e){for(var t=e;t&&t!==document.documentElement;){var n=getComputedStyle(t);if("auto"!==n.zIndex){var r=parseFloat(n.zIndex);return isNaN(r)?0:r}if(createsStackingContext(t))return 0;t=t.parentElement}return 0}function buildZChain(e){for(var t=[],n=e;n&&n!==document.documentElement;){var r=getStackingContextRoot(n),i=getEffectiveZIndex(n);if(t.unshift({ctx:r,z:i}),r===document.documentElement)break;n=r}return t}function isChainBehind(e,t){for(var n=t.length-1;n>=0;n--)for(var r=e.length-1;r>=0;r--)if(e[r].ctx===t[n].ctx)return e[r].z<t[n].z;return!1}exports.__esModule=!0,exports.isChainBehind=exports.buildZChain=void 0;var dom_1=require("./dom");exports.buildZChain=buildZChain,exports.isChainBehind=isChainBehind;
|
|
27
27
|
},{"./dom":7}],14:[function(require,module,exports){
|
|
28
|
+
"use strict";function queryFirst(e){return xpath.isXpathSelector(e)?xpath.queryFirst(e):document.querySelector(e)}function queryAll(e){return xpath.isXpathSelector(e)?xpath.queryAll(e):Array.from(document.querySelectorAll(e))}function getComputedStyle(e,t){return getComputedStyle(e,t)}function matchMedia(e){return matchMedia(e)}function trim(e){return e.trim()}function getRootNode(e){return e.getRootNode()}var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,o){o===undefined&&(o=r);var u=Object.getOwnPropertyDescriptor(t,r);u&&("get"in u?t.__esModule:!u.writable&&!u.configurable)||(u={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,o,u)}:function(e,t,r,o){o===undefined&&(o=r),e[o]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(t,e,r);return __setModuleDefault(t,e),t};exports.__esModule=!0,exports.getRootNode=exports.trim=exports.matchMedia=exports.getComputedStyle=exports.queryAll=exports.queryFirst=void 0;var xpath=__importStar(require("./xpath"));exports.queryFirst=queryFirst,exports.queryAll=queryAll,exports.getComputedStyle=getComputedStyle,exports.matchMedia=matchMedia,exports.trim=trim,exports.getRootNode=getRootNode;
|
|
29
|
+
},{"./xpath":16}],15:[function(require,module,exports){
|
|
28
30
|
"use strict";function makeCreateDebugLogger(){return function(e,r){if(e.debug&&-1!==e.debug.indexOf(r)){var t=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];for(var o=0,g=e;o<g.length;o++){var n=g[o];if("object"==typeof n&&null!==n)try{t.log+=JSON.stringify(n,null,2)+"\n"}catch(u){t.log+="failed to log message due to an error: "+u}else t.log+=String(n)+"\n"}return t.log};return t.enabled=!0,t.log="",t}var o=function(){return""};return o.enabled=!1,o}}exports.__esModule=!0,exports.createDebugLogger=void 0,exports.createDebugLogger=makeCreateDebugLogger();
|
|
29
|
-
},{}],15:[function(require,module,exports){
|
|
30
|
-
"use strict";function assign(r){for(var s=[],t=1;t<arguments.length;t++)s[t-1]=arguments[t];for(var e=0;e<s.length;e++){var o=s[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])}return r}exports.__esModule=!0,exports.assign=void 0,exports.assign=assign;
|
|
31
31
|
},{}],16:[function(require,module,exports){
|
|
32
|
+
"use strict";function isXpathSelector(e){return XPATH_SELECTORS_START.some(function(t){return 0===e.indexOf(t)})}function queryFirst(e){return document.evaluate(e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}function queryAll(e){var t,r=document.evaluate(e,document,null,XPathResult.ANY_TYPE,null),u=[];for(t=r.iterateNext();t;)u.push(t),t=r.iterateNext();return u}exports.__esModule=!0,exports.queryAll=exports.queryFirst=exports.isXpathSelector=void 0;var XPATH_SELECTORS_START=["/","(","../","./","*/"];exports.isXpathSelector=isXpathSelector,exports.queryFirst=queryFirst,exports.queryAll=queryAll;
|
|
33
|
+
},{}],17:[function(require,module,exports){
|
|
34
|
+
"use strict";function assign(r){for(var s=[],t=1;t<arguments.length;t++)s[t-1]=arguments[t];for(var e=0;e<s.length;e++){var o=s[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(r[n]=o[n])}return r}exports.__esModule=!0,exports.assign=void 0,exports.assign=assign;
|
|
35
|
+
},{}],18:[function(require,module,exports){
|
|
32
36
|
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(t){for(var e,r=1,o=arguments.length;r<o;r++){e=arguments[r];for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},__assign.apply(this,arguments)};exports.__esModule=!0,exports.fromBcrToRect=exports.fromDeviceToCssNumber=exports.fromCssToDeviceNumber=exports.fromCssToDevice=exports.ceilCoords=exports.floorCoords=exports.roundCoords=exports.getCoveringRect=exports.fromViewportToCaptureArea=exports.fromCaptureAreaToViewport=exports.getMinCoord=exports.getMaxCoord=exports.getMaxLength=exports.getRight=exports.getBottom=exports.getWidth=exports.getHeight=exports.getIntersection=exports.intersectXBands=exports.intersectYBands=exports.prettyRect=exports.prettySize=exports.prettyPoint=exports.equalsSize=exports.subtractCoords=exports.addCoords=exports.getSize=void 0;var assign_1=require("./assign"),getSize=function(t){return{width:t.width,height:t.height}};exports.getSize=getSize;var addCoords=function(t,e){return t+e};exports.addCoords=addCoords;var subtractCoords=function(t,e){return t-e};exports.subtractCoords=subtractCoords;var equalsSize=function(t,e){return t.width===e.width&&t.height===e.height};exports.equalsSize=equalsSize;var prettyPoint=function(t){return"{ left: ".concat(t.left,", top: ").concat(t.top," }")};exports.prettyPoint=prettyPoint;var prettySize=function(t){return"{ width: ".concat(t.width,", height: ").concat(t.height," }")};exports.prettySize=prettySize;var prettyRect=function(t){return"{ left: ".concat(t.left,", top: ").concat(t.top,", width: ").concat(t.width,", height: ").concat(t.height," }")};exports.prettyRect=prettyRect;var intersectYBands=function(t,e){if(!t||!e)return null;var r=Math.max(t.top,e.top),o=Math.min(t.top+t.height,e.top+e.height);return o<=r?null:{top:r,height:o-r}};exports.intersectYBands=intersectYBands;var intersectXBands=function(t,e){if(!t||!e)return null;var r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width);return o<=r?null:{left:r,width:o-r}};exports.intersectXBands=intersectXBands;var getIntersection=function(t,e){if(!t||!e)return null;var r=__assign(__assign({},t),e);if("top"in t&&"top"in e){var o=(0,exports.intersectYBands)(t,e);if(!o)return null;(0,assign_1.assign)(r,o)}if("left"in t&&"left"in e){var i=(0,exports.intersectXBands)(t,e);if(!i)return null;(0,assign_1.assign)(r,i)}return r};exports.getIntersection=getIntersection;var getHeight=function(t,e){return Math.abs(t-e)};exports.getHeight=getHeight;var getWidth=function(t,e){return Math.abs(t-e)};exports.getWidth=getWidth;var getBottom=function(t){return t.top+t.height};exports.getBottom=getBottom;var getRight=function(t){return t.left+t.width};exports.getRight=getRight;var getMaxLength=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Math.max.apply(Math,t)};exports.getMaxLength=getMaxLength;var getMaxCoord=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Math.max.apply(Math,t)};exports.getMaxCoord=getMaxCoord;var getMinCoord=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return Math.min.apply(Math,t)};exports.getMinCoord=getMinCoord;var fromCaptureAreaToViewport=function(t,e){return t+e};exports.fromCaptureAreaToViewport=fromCaptureAreaToViewport;var fromViewportToCaptureArea=function(t,e){return t-e};exports.fromViewportToCaptureArea=fromViewportToCaptureArea;var getCoveringRect=function(t){if(0===t.length)throw new Error("No rectangles to cover");for(var e=t[0].left,r=t[0].top,o=(0,exports.getRight)(t[0]),i=(0,exports.getBottom)(t[0]),n=1;n<t.length;n++){var s=t[n],a=s.left,p=s.top;e=(0,exports.getMinCoord)(e,a),r=(0,exports.getMinCoord)(r,p),o=(0,exports.getMaxCoord)(o,(0,exports.getRight)(s)),i=(0,exports.getMaxCoord)(i,(0,exports.getBottom)(s))}return{left:e,top:r,width:(0,exports.getWidth)(e,o),height:(0,exports.getHeight)(r,i)}};exports.getCoveringRect=getCoveringRect;var roundCoords=function(t){var e=t,r={};if("top"in e){var o=e.top;r.top=Math.floor(o)}if("height"in e&&(r.height="top"in e?Math.ceil(e.top+e.height)-r.top:Math.ceil(e.height)),"left"in e){var i=e.left;r.left=Math.floor(i)}return"width"in e&&(r.width="left"in e?Math.ceil(e.left+e.width)-r.left:Math.ceil(e.width)),r};exports.roundCoords=roundCoords;var floorCoords=function(t){var e=t,r={};for(var o in e)r[o]=Math.floor(e[o]);return r};exports.floorCoords=floorCoords;var ceilCoords=function(t){var e=t,r={};for(var o in e)r[o]=Math.ceil(e[o]);return r};exports.ceilCoords=ceilCoords;var fromCssToDevice=function(t,e){var r=t,o={};for(var i in r)o[i]=r[i]*e;return e%1==0?o:(0,exports.roundCoords)(o)};exports.fromCssToDevice=fromCssToDevice;var fromCssToDeviceNumber=function(t,e){return t*e};exports.fromCssToDeviceNumber=fromCssToDeviceNumber;var fromDeviceToCssNumber=function(t,e){return t/e};exports.fromDeviceToCssNumber=fromDeviceToCssNumber;var fromBcrToRect=function(t){return{left:t.left,top:t.top,width:t.width,height:t.height}};exports.fromBcrToRect=fromBcrToRect;
|
|
33
|
-
},{"./assign":
|
|
37
|
+
},{"./assign":17}],19:[function(require,module,exports){
|
|
34
38
|
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,i){i===undefined&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===undefined&&(i=r),e[i]=t[r]}),__exportStar=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||__createBinding(t,e,r)};exports.__esModule=!0,__exportStar(require("./assign"),exports),__exportStar(require("./geometry"),exports),__exportStar(require("./types"),exports);
|
|
35
|
-
},{"./assign":
|
|
39
|
+
},{"./assign":17,"./geometry":18,"./types":20}],20:[function(require,module,exports){
|
|
36
40
|
"use strict";exports.__esModule=!0,exports.isBrowserSideError=exports.BrowserSideErrorCode=exports.DisableHoverMode=void 0;var DisableHoverMode;!function(r){r.Always="always",r.WhenScrollingNeeded="when-scrolling-needed",r.Never="never"}(DisableHoverMode||(exports.DisableHoverMode=DisableHoverMode={}));var BrowserSideErrorCode;!function(r){r.JS="JS",r.OUTSIDE_OF_VIEWPORT="OUTSIDE_OF_VIEWPORT"}(BrowserSideErrorCode||(exports.BrowserSideErrorCode=BrowserSideErrorCode={}));var isBrowserSideError=function(r){return Boolean(r&&r.errorCode&&r.message)};exports.isBrowserSideError=isBrowserSideError;
|
|
37
41
|
},{}]},{},[3]);
|
|
38
42
|
})(arguments[0])
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
exports.__esModule = true;
|
|
3
14
|
exports.captureAnchorBaseline = exports.cleanupScrolls = exports.cleanupPointerEvents = exports.disablePointerEvents = exports.cleanupFrameAnimations = exports.disableFrameAnimations = exports.prepareViewportScreenshot = exports.scrollFullPage = exports.prepareFullPageScreenshot = exports.getCaptureState = exports.scrollTo = exports.scrollBy = exports.prepareElementsScreenshot = void 0;
|
|
4
15
|
var _isomorphic_1 = require("@isomorphic");
|
|
@@ -32,7 +43,8 @@ function computeShiftMode(deltas, tolerance) {
|
|
|
32
43
|
var bestWindowStartIndex = 0;
|
|
33
44
|
var bestWindowEndIndex = 0;
|
|
34
45
|
for (var startIndex = 0, endIndex = 0; startIndex < sortedDeltas.length; startIndex++) {
|
|
35
|
-
while (endIndex + 1 < sortedDeltas.length &&
|
|
46
|
+
while (endIndex + 1 < sortedDeltas.length &&
|
|
47
|
+
sortedDeltas[endIndex + 1] - sortedDeltas[startIndex] <= tolerance) {
|
|
36
48
|
endIndex++;
|
|
37
49
|
}
|
|
38
50
|
var currentWindowSize = endIndex - startIndex + 1;
|
|
@@ -69,7 +81,8 @@ function computeActualShift() {
|
|
|
69
81
|
if (currentRect.width <= 0 || currentRect.height <= 0) {
|
|
70
82
|
continue;
|
|
71
83
|
}
|
|
72
|
-
if (Math.abs(currentRect.width - baselineRect.width) > 1 ||
|
|
84
|
+
if (Math.abs(currentRect.width - baselineRect.width) > 1 ||
|
|
85
|
+
Math.abs(currentRect.height - baselineRect.height) > 1) {
|
|
73
86
|
continue;
|
|
74
87
|
}
|
|
75
88
|
verticalDeltas.push(currentRect.top - baselineRect.top);
|
|
@@ -118,9 +131,7 @@ function scrollBy(selectorsToCapture, scrollDelta, selectorToScroll, debug) {
|
|
|
118
131
|
? "".concat(selectorToScroll, " (").concat(readableAutoScrollElementDescr, ")")
|
|
119
132
|
: "".concat(selectorToScroll, " (not found, auto-detected ").concat(readableAutoScrollElementDescr, ")")
|
|
120
133
|
: "auto-detected ".concat(readableAutoScrollElementDescr);
|
|
121
|
-
|
|
122
|
-
var scrollHeightCss = ((0, _isomorphic_1.fromDeviceToCssNumber)(scrollDelta, pixelRatio) -
|
|
123
|
-
1);
|
|
134
|
+
var scrollHeightCss = (0, _isomorphic_1.fromDeviceToCssNumber)(scrollDelta, pixelRatio);
|
|
124
135
|
(0, scroll_1.scrollElementBy)(scrollElement, scrollHeightCss);
|
|
125
136
|
return {
|
|
126
137
|
readableSelectorToScrollDescr: readableSelectorToScrollDescr,
|
|
@@ -169,6 +180,7 @@ function getCaptureState(selectorsToCapture, selectorsToIgnore, selectorToScroll
|
|
|
169
180
|
var captureSpecsAfterCss = (0, operations_1.computeCaptureSpecs)(selectorsToCapture, logger);
|
|
170
181
|
var captureSpecs = captureSpecsAfterCss.map(function (spec) { return ({
|
|
171
182
|
full: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.full), pixelRatio),
|
|
183
|
+
clip: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.clip), pixelRatio),
|
|
172
184
|
visible: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.visible), pixelRatio)
|
|
173
185
|
}); });
|
|
174
186
|
var scrollOffset = (0, operations_1.computeScrollOffset)(scrollElement);
|
|
@@ -215,7 +227,7 @@ function prepareFullPageScreenshot(opts) {
|
|
|
215
227
|
}
|
|
216
228
|
}
|
|
217
229
|
var elementPositionsProbe = (0, operations_1.computeElementPositionsProbe)().map(function (rect) {
|
|
218
|
-
return rect ? (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(rect), pixelRatio) : null;
|
|
230
|
+
return rect ? __assign(__assign({}, (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(rect), pixelRatio)), { elementDescr: rect.elementDescr }) : null;
|
|
219
231
|
});
|
|
220
232
|
return {
|
|
221
233
|
documentSize: (0, _isomorphic_1.ceilCoords)((0, _isomorphic_1.fromCssToDevice)(documentSize, pixelRatio)),
|
|
@@ -238,7 +250,7 @@ function scrollFullPage(scrollHeight, opts) {
|
|
|
238
250
|
(0, scroll_1.scrollElementBy)(document.documentElement, scrollHeightCss);
|
|
239
251
|
var viewportOffset = (0, operations_1.computeViewportOffset)();
|
|
240
252
|
var elementPositionsProbe = (0, operations_1.computeElementPositionsProbe)().map(function (rect) {
|
|
241
|
-
return rect ? (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(rect), pixelRatio) : null;
|
|
253
|
+
return rect ? __assign(__assign({}, (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(rect), pixelRatio)), { elementDescr: rect.elementDescr }) : null;
|
|
242
254
|
});
|
|
243
255
|
return {
|
|
244
256
|
viewportOffset: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.floorCoords)(viewportOffset), pixelRatio),
|
|
@@ -304,7 +316,7 @@ exports.cleanupScrolls = cleanupScrolls;
|
|
|
304
316
|
* Records up to 500 random non-degenerate descendants of the capture elements as anchor baselines.
|
|
305
317
|
* Must be called once before the best-effort capture pass; getCaptureState will then return anchorShift.
|
|
306
318
|
*/
|
|
307
|
-
function captureAnchorBaseline(selectorsToCapture
|
|
319
|
+
function captureAnchorBaseline(selectorsToCapture) {
|
|
308
320
|
return safeCall(function () {
|
|
309
321
|
var captureSpecs = (0, operations_1.computeCaptureSpecs)(selectorsToCapture);
|
|
310
322
|
var captureArea = captureSpecs.length > 0 ? (0, _isomorphic_1.getCoveringRect)(captureSpecs.map(function (spec) { return spec.full; })) : null;
|
|
@@ -377,6 +389,7 @@ function prepareElementsScreenshotUnsafe(selectorsToCapture, opts) {
|
|
|
377
389
|
ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), pixelRatio); }),
|
|
378
390
|
captureSpecs: captureSpecs.map(function (s) { return ({
|
|
379
391
|
full: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.full), pixelRatio),
|
|
392
|
+
clip: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.clip), pixelRatio),
|
|
380
393
|
visible: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.visible), pixelRatio)
|
|
381
394
|
}); }),
|
|
382
395
|
viewportSize: (0, _isomorphic_1.fromCssToDevice)(viewportSize, pixelRatio),
|
|
@@ -65,7 +65,6 @@ function getProbeAxisCoordinates(length, gridSize) {
|
|
|
65
65
|
return coordinates;
|
|
66
66
|
}
|
|
67
67
|
function computeElementPositionsProbe(gridSize) {
|
|
68
|
-
var _a, _b;
|
|
69
68
|
if (gridSize === void 0) { gridSize = ELEMENT_POSITIONS_PROBE_GRID_SIZE; }
|
|
70
69
|
var viewportSize = computeViewportSize();
|
|
71
70
|
var xCoordinates = getProbeAxisCoordinates(viewportSize.width, gridSize);
|
|
@@ -75,8 +74,12 @@ function computeElementPositionsProbe(gridSize) {
|
|
|
75
74
|
for (var xIndex = 0; xIndex < xCoordinates.length; xIndex++) {
|
|
76
75
|
var x = xCoordinates[xIndex];
|
|
77
76
|
var y = yCoordinates[yIndex];
|
|
78
|
-
var
|
|
79
|
-
|
|
77
|
+
var element = document.elementFromPoint(x, y);
|
|
78
|
+
if (!element) {
|
|
79
|
+
probe.push(null);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
probe.push(__assign(__assign({}, (0, _isomorphic_1.fromBcrToRect)(element.getBoundingClientRect())), { elementDescr: (0, descriptions_1.getReadableElementDescriptor)(element) }));
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
85
|
return probe;
|
|
@@ -97,27 +100,30 @@ function computeCaptureSpecs(selectors, logger) {
|
|
|
97
100
|
elements.push({ element: element, pseudoElement: parsedSelector.pseudoElement });
|
|
98
101
|
}
|
|
99
102
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var _b;
|
|
103
|
-
var element = _a.element, pseudoElement = _a.pseudoElement;
|
|
103
|
+
function getCaptureSpec(element, pseudoElement) {
|
|
104
|
+
var _a;
|
|
104
105
|
var full = pseudoElement
|
|
105
106
|
? (0, element_rect_1.getPseudoElementCaptureRect)(element, pseudoElement)
|
|
106
107
|
: (0, element_rect_1.getElementCaptureRect)(element, logger);
|
|
107
108
|
if (!full)
|
|
108
109
|
return null;
|
|
109
110
|
var clip = (0, clip_rect_1.getClipRect)(element, logger);
|
|
110
|
-
var visible = (
|
|
111
|
+
var visible = (_a = (0, _isomorphic_1.getIntersection)(full, clip)) !== null && _a !== void 0 ? _a : {
|
|
111
112
|
top: full.top,
|
|
112
113
|
left: full.left,
|
|
113
114
|
width: 0,
|
|
114
115
|
height: 0
|
|
115
116
|
};
|
|
116
|
-
return { full: full, visible: visible };
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
return { full: full, visible: visible, clip: clip };
|
|
118
|
+
}
|
|
119
|
+
var captureSpecs = [];
|
|
120
|
+
for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {
|
|
121
|
+
var _a = elements_1[_i], element = _a.element, pseudoElement = _a.pseudoElement;
|
|
122
|
+
var captureSpec = getCaptureSpec(element, pseudoElement);
|
|
123
|
+
if (captureSpec) {
|
|
124
|
+
captureSpecs.push(captureSpec);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
121
127
|
logger === null || logger === void 0 ? void 0 : logger("captureSpecs:", captureSpecs);
|
|
122
128
|
logger === null || logger === void 0 ? void 0 : logger("computeCaptureSpecs time taken:", (performance.now() - startTime).toFixed(1) + "ms");
|
|
123
129
|
logger === null || logger === void 0 ? void 0 : logger("========== </computeCaptureSpecs> ==========");
|
|
@@ -160,7 +166,6 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
160
166
|
if (captureSpecs.length === 0) {
|
|
161
167
|
return { top: viewportRect.top, height: viewportRect.height };
|
|
162
168
|
}
|
|
163
|
-
var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecs);
|
|
164
169
|
var scrollEl = scrollElement !== null && scrollElement !== void 0 ? scrollElement : document.documentElement;
|
|
165
170
|
// 1. Base safe area equals the visible rectangle of the scroll container
|
|
166
171
|
var safeArea;
|
|
@@ -182,6 +187,16 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
182
187
|
}
|
|
183
188
|
}
|
|
184
189
|
var originalSafeArea = __assign({}, safeArea);
|
|
190
|
+
// 1.1 If all capture elements are fixed or inside non-scrollable fixed elements, scrolling will not move them,
|
|
191
|
+
// so no point in computing safe area
|
|
192
|
+
if (captureElements.every(function (el) {
|
|
193
|
+
return getComputedStyle(el).position === "fixed" ||
|
|
194
|
+
((0, dom_1.findFixedPositionedParent)(el) !== null && (0, scroll_1.getScrollParent)(el) === null);
|
|
195
|
+
})) {
|
|
196
|
+
logger === null || logger === void 0 ? void 0 : logger("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences");
|
|
197
|
+
return { top: originalSafeArea.top, height: originalSafeArea.height };
|
|
198
|
+
}
|
|
199
|
+
var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecs);
|
|
185
200
|
// 2. Build z-index chains for all capture elements
|
|
186
201
|
// One z-chain is a list of objects: { stacking context, z-index } -> { stacking context, z-index } -> ...
|
|
187
202
|
// It is used to determine which element is on top of the other
|
|
@@ -191,11 +206,15 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
191
206
|
// 3. Detect interfering elements
|
|
192
207
|
var interferences = [];
|
|
193
208
|
var allElements = document.documentElement.querySelectorAll("*");
|
|
209
|
+
var singleCaptureElement = captureElements.length === 1 ? captureElements[0] : null;
|
|
194
210
|
var _loop_1 = function (idx) {
|
|
195
211
|
var el = allElements[idx];
|
|
196
|
-
|
|
197
|
-
|
|
212
|
+
if (scrollEl === el || el.contains(scrollEl)) {
|
|
213
|
+
return "continue";
|
|
214
|
+
}
|
|
215
|
+
if (singleCaptureElement && (el === singleCaptureElement || el.contains(singleCaptureElement))) {
|
|
198
216
|
return "continue";
|
|
217
|
+
}
|
|
199
218
|
var computedStyle = getComputedStyle(el);
|
|
200
219
|
var position = computedStyle.position;
|
|
201
220
|
var bcr = el.getBoundingClientRect();
|
|
@@ -205,7 +224,8 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
205
224
|
(bcr.width === 1 && bcr.height === 1) ||
|
|
206
225
|
computedStyle.visibility === "hidden" ||
|
|
207
226
|
computedStyle.display === "none" ||
|
|
208
|
-
parseFloat(computedStyle.opacity) < 0.0001
|
|
227
|
+
parseFloat(computedStyle.opacity) < 0.0001 ||
|
|
228
|
+
/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(computedStyle.filter))
|
|
209
229
|
return "continue";
|
|
210
230
|
// Skip elements that don't horizontally intersect with capture area
|
|
211
231
|
if (bcr.right <= captureLeft || bcr.left >= captureRight)
|
|
@@ -214,11 +234,15 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
214
234
|
if ((0, _isomorphic_1.getIntersection)((0, _isomorphic_1.fromBcrToRect)(bcr), viewportRect) === null)
|
|
215
235
|
return "continue";
|
|
216
236
|
var likelyInterferes = false;
|
|
237
|
+
var shouldSkipZIndexCheck = false;
|
|
217
238
|
var adjustedRect = (0, element_rect_1.domRectToViewportCss)(bcr);
|
|
218
239
|
var fixedPositionedParent = (0, dom_1.findFixedPositionedParent)(el);
|
|
219
|
-
|
|
220
|
-
(fixedPositionedParent
|
|
240
|
+
var isInsideScrollContextFixedParent = fixedPositionedParent !== null &&
|
|
241
|
+
(fixedPositionedParent === scrollEl || fixedPositionedParent.contains(scrollEl));
|
|
242
|
+
if (position === "fixed" || (fixedPositionedParent && !isInsideScrollContextFixedParent)) {
|
|
221
243
|
likelyInterferes = true;
|
|
244
|
+
// If the fixed element is inside a capture element, it's almost certainly interfering
|
|
245
|
+
shouldSkipZIndexCheck = captureElements.some(function (capEl) { return capEl.contains(el); });
|
|
222
246
|
}
|
|
223
247
|
else if (position === "absolute") {
|
|
224
248
|
// Skip absolutely positioned elements that are inside capture elements
|
|
@@ -239,6 +263,8 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
239
263
|
logger === null || logger === void 0 ? void 0 : logger("scrollParent:", (0, descriptions_1.getReadableElementDescriptor)(scrollParent));
|
|
240
264
|
var scrollParentBcr = scrollParent.getBoundingClientRect();
|
|
241
265
|
topValue += (0, scroll_1.isRootLikeElement)(scrollParent) ? 0 : scrollParentBcr.top;
|
|
266
|
+
shouldSkipZIndexCheck =
|
|
267
|
+
scrollParent === scrollEl || ((0, scroll_1.isRootLikeElement)(scrollParent) && (0, scroll_1.isRootLikeElement)(scrollEl));
|
|
242
268
|
if (!isNaN(topValue)) {
|
|
243
269
|
adjustedRect = {
|
|
244
270
|
left: bcr.left,
|
|
@@ -265,7 +291,7 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
265
291
|
if (!likelyInterferes)
|
|
266
292
|
return "continue";
|
|
267
293
|
var candChain = (0, z_index_1.buildZChain)(el);
|
|
268
|
-
var behindAll = targetChains.every(function (tChain) { return (0, z_index_1.isChainBehind)(candChain, tChain); });
|
|
294
|
+
var behindAll = !shouldSkipZIndexCheck && targetChains.every(function (tChain) { return (0, z_index_1.isChainBehind)(candChain, tChain); });
|
|
269
295
|
if (!behindAll) {
|
|
270
296
|
var extRect = (0, element_rect_1.getExtRect)(computedStyle, adjustedRect);
|
|
271
297
|
var extLeft = extRect.left;
|
|
@@ -304,7 +330,8 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
304
330
|
resultingHeight = Math.min(safeHeight, br.top - safeTop);
|
|
305
331
|
logger === null || logger === void 0 ? void 0 : logger("decided to shrink bottom");
|
|
306
332
|
}
|
|
307
|
-
|
|
333
|
+
// We don't want to shrink the safe area less than 30% of original height
|
|
334
|
+
if (resultingHeight < origHeight * 0.3) {
|
|
308
335
|
logger === null || logger === void 0 ? void 0 : logger("decided to skip, because shrinking is too large");
|
|
309
336
|
continue;
|
|
310
337
|
}
|
|
@@ -312,8 +339,8 @@ function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
|
312
339
|
safeTop = resultingTop;
|
|
313
340
|
safeHeight = resultingHeight;
|
|
314
341
|
}
|
|
315
|
-
// 5. Ensure we didn't shrink
|
|
316
|
-
if (safeHeight < origHeight
|
|
342
|
+
// 5. Ensure we didn't shrink below 30% of original height
|
|
343
|
+
if (safeHeight < origHeight * 0.3) {
|
|
317
344
|
safeTop = originalSafeArea.top;
|
|
318
345
|
safeHeight = originalSafeArea.height;
|
|
319
346
|
}
|
|
@@ -365,11 +392,16 @@ function scrollToCaptureAreaIfNeeded(selectorsToCapture, captureElementFromTop,
|
|
|
365
392
|
var captureSpecsResult = computeCaptureSpecs(selectorsToCapture);
|
|
366
393
|
if (!captureSpecsResult)
|
|
367
394
|
return {};
|
|
395
|
+
var scrollTarget = selectorToScroll ? document.querySelector(selectorToScroll) : null;
|
|
396
|
+
var selectorsForScrollParentSearch = selectorsToCapture.map(function (selector) { return (0, pseudo_element_rect_1.parseCaptureSelector)(selector).elementSelector; });
|
|
397
|
+
var initialScrollElem = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(selectorsForScrollParentSearch);
|
|
398
|
+
var readableSelectorToScrollDescr = selectorToScroll !== null && selectorToScroll !== void 0 ? selectorToScroll : (0, descriptions_1.getReadableElementDescriptor)(initialScrollElem);
|
|
368
399
|
var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecsResult.map(function (s) { return s.full; }));
|
|
369
|
-
var safeArea = computeSafeArea(selectorsToCapture);
|
|
400
|
+
var safeArea = computeSafeArea(selectorsToCapture, initialScrollElem, logger);
|
|
370
401
|
var captureAndSafeAreasIntersection = (0, _isomorphic_1.getIntersection)(captureArea, safeArea);
|
|
371
402
|
var captureAndViewportIntersection = (0, _isomorphic_1.getIntersection)(captureArea, viewport);
|
|
372
|
-
var
|
|
403
|
+
var expectedVisibleHeight = Math.min(captureArea.height, safeArea.height);
|
|
404
|
+
var isIntersectionWithSafeAreaTooSmall = !captureAndSafeAreasIntersection || captureAndSafeAreasIntersection.height < expectedVisibleHeight / 2;
|
|
373
405
|
var isCaptureAreaStartVisible = captureArea.top >= safeArea.top;
|
|
374
406
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: intersection check", {
|
|
375
407
|
captureArea: captureArea,
|
|
@@ -396,10 +428,6 @@ function scrollToCaptureAreaIfNeeded(selectorsToCapture, captureElementFromTop,
|
|
|
396
428
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false");
|
|
397
429
|
return {};
|
|
398
430
|
}
|
|
399
|
-
var scrollTarget = selectorToScroll ? document.querySelector(selectorToScroll) : null;
|
|
400
|
-
var selectorsForScrollParentSearch = selectorsToCapture.map(function (selector) { return (0, pseudo_element_rect_1.parseCaptureSelector)(selector).elementSelector; });
|
|
401
|
-
var initialScrollElem = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(selectorsForScrollParentSearch);
|
|
402
|
-
var readableSelectorToScrollDescr = selectorToScroll !== null && selectorToScroll !== void 0 ? selectorToScroll : (0, descriptions_1.getReadableElementDescriptor)(initialScrollElem);
|
|
403
431
|
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: scrolling is required", {
|
|
404
432
|
scrollElement: readableSelectorToScrollDescr,
|
|
405
433
|
requestedSelectorToScroll: selectorToScroll !== null && selectorToScroll !== void 0 ? selectorToScroll : null,
|