testplane 9.0.0-rc.3 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/build/package.json +41 -25
- package/build/src/base-testplane.d.ts +6 -2
- package/build/src/base-testplane.js +19 -5
- package/build/src/base-testplane.js.map +1 -1
- package/build/src/browser/browser.d.ts +8 -0
- package/build/src/browser/browser.js +16 -5
- package/build/src/browser/browser.js.map +1 -1
- package/build/src/browser/calibrator.d.ts +5 -4
- package/build/src/browser/calibrator.js +96 -47
- package/build/src/browser/calibrator.js.map +1 -1
- package/build/src/browser/camera/index.d.ts +16 -19
- package/build/src/browser/camera/index.js +72 -25
- package/build/src/browser/camera/index.js.map +1 -1
- package/build/src/browser/camera/utils.d.ts +15 -2
- package/build/src/browser/camera/utils.js +58 -5
- package/build/src/browser/camera/utils.js.map +1 -1
- package/build/src/browser/cdp/connection.d.ts +15 -0
- package/build/src/browser/cdp/connection.js +145 -0
- package/build/src/browser/cdp/connection.js.map +1 -0
- package/build/src/browser/cdp/constants.d.ts +6 -0
- package/build/src/browser/cdp/constants.js +10 -0
- package/build/src/browser/cdp/constants.js.map +1 -0
- package/build/src/browser/cdp/debug.d.ts +2 -0
- package/build/src/browser/cdp/debug.js +9 -0
- package/build/src/browser/cdp/debug.js.map +1 -0
- package/build/src/browser/cdp/domains/css.d.ts +54 -0
- package/build/src/browser/cdp/domains/css.js +39 -0
- package/build/src/browser/cdp/domains/css.js.map +1 -0
- package/build/src/browser/cdp/domains/debugger.d.ts +65 -0
- package/build/src/browser/cdp/domains/debugger.js +31 -0
- package/build/src/browser/cdp/domains/debugger.js.map +1 -0
- package/build/src/browser/cdp/domains/dom.d.ts +24 -0
- package/build/src/browser/cdp/domains/dom.js +23 -0
- package/build/src/browser/cdp/domains/dom.js.map +1 -0
- 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/domains/profiler.d.ts +60 -0
- package/build/src/browser/cdp/domains/profiler.js +39 -0
- package/build/src/browser/cdp/domains/profiler.js.map +1 -0
- package/build/src/browser/cdp/domains/runtime.d.ts +57 -0
- package/build/src/browser/cdp/domains/runtime.js +34 -0
- package/build/src/browser/cdp/domains/runtime.js.map +1 -0
- package/build/src/browser/cdp/domains/target.d.ts +77 -0
- package/build/src/browser/cdp/domains/target.js +53 -0
- package/build/src/browser/cdp/domains/target.js.map +1 -0
- package/build/src/browser/cdp/emitter.d.ts +10 -0
- package/build/src/browser/cdp/emitter.js +61 -0
- package/build/src/browser/cdp/emitter.js.map +1 -0
- package/build/src/browser/cdp/error.d.ts +17 -0
- package/build/src/browser/cdp/error.js +38 -0
- package/build/src/browser/cdp/error.js.map +1 -0
- package/build/src/browser/cdp/index.d.ts +29 -0
- package/build/src/browser/cdp/index.js +80 -0
- package/build/src/browser/cdp/index.js.map +1 -0
- package/build/src/browser/cdp/selectivity/constants.d.ts +3 -0
- package/build/src/browser/cdp/selectivity/constants.js +7 -0
- package/build/src/browser/cdp/selectivity/constants.js.map +1 -0
- package/build/src/browser/cdp/selectivity/css-selectivity.d.ts +24 -0
- package/build/src/browser/cdp/selectivity/css-selectivity.js +261 -0
- package/build/src/browser/cdp/selectivity/css-selectivity.js.map +1 -0
- package/build/src/browser/cdp/selectivity/debug.d.ts +2 -0
- package/build/src/browser/cdp/selectivity/debug.js +9 -0
- package/build/src/browser/cdp/selectivity/debug.js.map +1 -0
- 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 +7 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js +86 -0
- package/build/src/browser/cdp/selectivity/hash-provider.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-reader.d.ts +16 -0
- package/build/src/browser/cdp/selectivity/hash-reader.js +83 -0
- package/build/src/browser/cdp/selectivity/hash-reader.js.map +1 -0
- package/build/src/browser/cdp/selectivity/hash-writer.d.ts +18 -0
- package/build/src/browser/cdp/selectivity/hash-writer.js +80 -0
- package/build/src/browser/cdp/selectivity/hash-writer.js.map +1 -0
- package/build/src/browser/cdp/selectivity/index.d.ts +15 -0
- package/build/src/browser/cdp/selectivity/index.js +220 -0
- package/build/src/browser/cdp/selectivity/index.js.map +1 -0
- package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +23 -0
- package/build/src/browser/cdp/selectivity/js-selectivity.js +242 -0
- package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -0
- package/build/src/browser/cdp/selectivity/json-utils.d.ts +15 -0
- package/build/src/browser/cdp/selectivity/json-utils.js +135 -0
- package/build/src/browser/cdp/selectivity/json-utils.js.map +1 -0
- 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 +24 -0
- package/build/src/browser/cdp/selectivity/runner.js +234 -0
- package/build/src/browser/cdp/selectivity/runner.js.map +1 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.d.ts +10 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js +41 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-reader.js.map +1 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.d.ts +11 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js +69 -0
- package/build/src/browser/cdp/selectivity/test-dependencies-writer.js.map +1 -0
- package/build/src/browser/cdp/selectivity/testplane-selectivity.d.ts +7 -0
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js +127 -0
- package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -0
- package/build/src/browser/cdp/selectivity/types.d.ts +26 -0
- package/build/src/browser/cdp/selectivity/types.js +10 -0
- package/build/src/browser/cdp/selectivity/types.js.map +1 -0
- 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 +57 -0
- package/build/src/browser/cdp/selectivity/utils.js +382 -0
- package/build/src/browser/cdp/selectivity/utils.js.map +1 -0
- package/build/src/browser/cdp/types.d.ts +417 -0
- package/build/src/browser/cdp/types.js.map +1 -0
- package/build/src/browser/cdp/utils.d.ts +1 -0
- package/build/src/browser/cdp/utils.js +18 -0
- package/build/src/browser/cdp/utils.js.map +1 -0
- package/build/src/browser/cdp/ws-endpoint.d.ts +2 -0
- package/build/src/browser/cdp/ws-endpoint.js +70 -0
- package/build/src/browser/cdp/ws-endpoint.js.map +1 -0
- package/build/src/browser/client-bridge/error.d.ts +1 -1
- package/build/src/browser/client-bridge/error.js +2 -2
- package/build/src/browser/client-bridge/error.js.map +1 -1
- package/build/src/browser/client-bridge/index.d.ts +17 -7
- package/build/src/browser/client-bridge/index.js +65 -14
- package/build/src/browser/client-bridge/index.js.map +1 -1
- package/build/src/browser/client-scripts/browser-utils/build/bundle.compat.js +18 -0
- package/build/src/browser/client-scripts/browser-utils/build/bundle.native.js +10 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/browser-utils/implementation.js +38 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/browser-utils/inject.js +31 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.compat.js +57 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/lib.native.js +53 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/logger.js +42 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/polyfills/getComputedStyle.js +132 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/client-scripts/shared/polyfills/matchMedia.js +82 -0
- package/build/src/browser/client-scripts/{xpath.js → browser-utils/tsc-out/client-scripts/shared/xpath.js} +9 -13
- package/build/src/browser/client-scripts/browser-utils/tsc-out/isomorphic/assign.js +21 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/isomorphic/geometry.js +220 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/isomorphic/index.js +19 -0
- package/build/src/browser/client-scripts/browser-utils/tsc-out/isomorphic/types.js +18 -0
- package/build/src/browser/client-scripts/build.js +50 -13
- package/build/src/browser/client-scripts/calibrate.js +13 -1
- package/build/src/browser/client-scripts/rrweb-record.min.js +32 -32
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +38 -0
- package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +38 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/errors/outside-of-viewport.js +32 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +406 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/inject.js +31 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +633 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/types.js +2 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/clip-rect.js +103 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/descriptions.js +19 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/dom.js +99 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/element-rect.js +183 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/pseudo-element-rect.js +205 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/scroll.js +155 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/trusted-types.js +14 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/user-agent.js +10 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/utils/z-index.js +144 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.compat.js +57 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/lib.native.js +53 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/logger.js +42 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/polyfills/getComputedStyle.js +132 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/polyfills/matchMedia.js +82 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/shared/xpath.js +27 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/assign.js +21 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/geometry.js +220 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js +19 -0
- package/build/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/types.js +18 -0
- package/build/src/browser/commands/assert-view/errors/image-diff-error.d.ts +1 -0
- package/build/src/browser/commands/assert-view/index.js +79 -31
- package/build/src/browser/commands/assert-view/index.js.map +1 -1
- package/build/src/browser/commands/getPuppeteer.js +1 -1
- package/build/src/browser/commands/getPuppeteer.js.map +1 -1
- package/build/src/browser/commands/getState.d.ts +5 -0
- package/build/src/browser/commands/getState.js +41 -0
- package/build/src/browser/commands/getState.js.map +1 -0
- package/build/src/browser/commands/index.js +5 -0
- package/build/src/browser/commands/index.js.map +1 -1
- package/build/src/browser/commands/moveCursorTo.d.ts +1 -1
- package/build/src/browser/commands/openAndWait.js +47 -5
- package/build/src/browser/commands/openAndWait.js.map +1 -1
- package/build/src/browser/commands/restoreState/index.d.ts +9 -0
- package/build/src/browser/commands/restoreState/index.js +112 -0
- package/build/src/browser/commands/restoreState/index.js.map +1 -0
- package/build/src/browser/commands/restoreState/restoreStorage.d.ts +1 -0
- package/build/src/browser/commands/restoreState/restoreStorage.js +12 -0
- package/build/src/browser/commands/restoreState/restoreStorage.js.map +1 -0
- package/build/src/browser/commands/saveState/dumpStorage.d.ts +5 -0
- package/build/src/browser/commands/saveState/dumpStorage.js +29 -0
- package/build/src/browser/commands/saveState/dumpStorage.js.map +1 -0
- package/build/src/browser/commands/saveState/index.d.ts +13 -0
- package/build/src/browser/commands/saveState/index.js +156 -0
- package/build/src/browser/commands/saveState/index.js.map +1 -0
- package/build/src/browser/commands/switchToRepl.js +64 -11
- package/build/src/browser/commands/switchToRepl.js.map +1 -1
- package/build/src/browser/commands/unstable_getCdp.d.ts +3 -0
- package/build/src/browser/commands/unstable_getCdp.js +9 -0
- package/build/src/browser/commands/unstable_getCdp.js.map +1 -0
- package/build/src/browser/commands/waitForStaticToLoad.d.ts +13 -0
- package/build/src/browser/commands/waitForStaticToLoad.js +169 -0
- package/build/src/browser/commands/waitForStaticToLoad.js.map +1 -0
- package/build/src/browser/existing-browser.d.ts +27 -35
- package/build/src/browser/existing-browser.js +141 -98
- package/build/src/browser/existing-browser.js.map +1 -1
- package/build/src/browser/history/async-local-storage.d.ts +5 -0
- package/build/src/browser/history/async-local-storage.js +14 -0
- package/build/src/browser/history/async-local-storage.js.map +1 -0
- package/build/src/browser/history/callstack.d.ts +0 -4
- package/build/src/browser/history/callstack.js +0 -8
- package/build/src/browser/history/callstack.js.map +1 -1
- package/build/src/browser/history/index.d.ts +19 -6
- package/build/src/browser/history/index.js +85 -47
- 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 +163 -57
- package/build/src/browser/history/rrweb.js.map +1 -1
- package/build/src/browser/isomorphic/assign.d.ts +2 -0
- package/build/src/browser/isomorphic/assign.js +18 -0
- package/build/src/browser/isomorphic/assign.js.map +1 -0
- package/build/src/browser/isomorphic/geometry.d.ts +85 -0
- package/build/src/browser/isomorphic/geometry.js +198 -0
- package/build/src/browser/isomorphic/geometry.js.map +1 -0
- package/build/src/browser/isomorphic/index.d.ts +3 -0
- package/build/src/browser/isomorphic/index.js +20 -0
- package/build/src/browser/isomorphic/index.js.map +1 -0
- package/build/src/browser/isomorphic/tsconfig.tsbuildinfo +1 -0
- package/build/src/browser/isomorphic/types.d.ts +15 -0
- package/build/src/browser/isomorphic/types.js +19 -0
- package/build/src/browser/isomorphic/types.js.map +1 -0
- package/build/src/browser/new-browser.d.ts +2 -1
- package/build/src/browser/new-browser.js +12 -12
- package/build/src/browser/new-browser.js.map +1 -1
- package/build/src/browser/screen-shooter/composite-image/debug-utils.d.ts +37 -0
- package/build/src/browser/screen-shooter/composite-image/debug-utils.js +127 -0
- package/build/src/browser/screen-shooter/composite-image/debug-utils.js.map +1 -0
- package/build/src/browser/screen-shooter/composite-image/index.d.ts +65 -14
- package/build/src/browser/screen-shooter/composite-image/index.js +488 -122
- package/build/src/browser/screen-shooter/composite-image/index.js.map +1 -1
- package/build/src/browser/screen-shooter/constants.d.ts +1 -0
- package/build/src/browser/screen-shooter/constants.js +5 -0
- package/build/src/browser/screen-shooter/constants.js.map +1 -0
- 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 +43 -0
- package/build/src/browser/screen-shooter/elements-screen-shooter.js +466 -0
- package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -0
- package/build/src/browser/screen-shooter/errors/horizontal-overflow-error.d.ts +1 -0
- package/build/src/browser/screen-shooter/errors/horizontal-overflow-error.js +16 -12
- package/build/src/browser/screen-shooter/errors/horizontal-overflow-error.js.map +1 -1
- package/build/src/browser/screen-shooter/errors/vertical-overflow-error.d.ts +1 -0
- package/build/src/browser/screen-shooter/errors/vertical-overflow-error.js +12 -8
- package/build/src/browser/screen-shooter/errors/vertical-overflow-error.js.map +1 -1
- package/build/src/browser/screen-shooter/full-page-screen-shooter.d.ts +44 -0
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js +160 -0
- package/build/src/browser/screen-shooter/full-page-screen-shooter.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/animations.d.ts +7 -0
- package/build/src/browser/screen-shooter/operations/animations.js +25 -0
- package/build/src/browser/screen-shooter/operations/animations.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/iframe.d.ts +1 -0
- package/build/src/browser/screen-shooter/operations/iframe.js +27 -0
- package/build/src/browser/screen-shooter/operations/iframe.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/index.d.ts +5 -0
- package/build/src/browser/screen-shooter/operations/index.js +16 -0
- package/build/src/browser/screen-shooter/operations/index.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/pointer-events.d.ts +11 -0
- package/build/src/browser/screen-shooter/operations/pointer-events.js +45 -0
- package/build/src/browser/screen-shooter/operations/pointer-events.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/scrolls.d.ts +5 -0
- package/build/src/browser/screen-shooter/operations/scrolls.js +8 -0
- package/build/src/browser/screen-shooter/operations/scrolls.js.map +1 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.d.ts +2 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js +133 -0
- package/build/src/browser/screen-shooter/operations/wait-for-selectors-to-settle.js.map +1 -0
- package/build/src/browser/screen-shooter/validation/index.d.ts +2 -2
- package/build/src/browser/screen-shooter/validation/index.js +31 -5
- package/build/src/browser/screen-shooter/validation/index.js.map +1 -1
- package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +44 -0
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js +89 -0
- package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -0
- package/build/src/browser/stacktrace/utils.js +13 -3
- package/build/src/browser/stacktrace/utils.js.map +1 -1
- package/build/src/browser/standalone/attachToBrowser.d.ts +2 -0
- package/build/src/browser/standalone/attachToBrowser.js +63 -0
- package/build/src/browser/standalone/attachToBrowser.js.map +1 -0
- package/build/src/browser/standalone/index.d.ts +2 -0
- package/build/src/browser/standalone/index.js +8 -0
- package/build/src/browser/standalone/index.js.map +1 -0
- package/build/src/browser/standalone/launchBrowser.d.ts +4 -0
- package/build/src/browser/{standalone.js → standalone/launchBrowser.js} +24 -10
- package/build/src/browser/standalone/launchBrowser.js.map +1 -0
- package/build/src/browser/standalone/types.d.ts +5 -0
- package/build/src/browser/standalone/types.js +3 -0
- package/build/src/browser/standalone/types.js.map +1 -0
- package/build/src/browser/types.d.ts +30 -4
- package/build/src/browser/types.js.map +1 -1
- 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/chrome/index.d.ts +1 -0
- package/build/src/browser-installer/chrome/index.js +13 -3
- package/build/src/browser-installer/chrome/index.js.map +1 -1
- package/build/src/browser-installer/edge/index.d.ts +1 -0
- package/build/src/browser-installer/edge/index.js +8 -3
- package/build/src/browser-installer/edge/index.js.map +1 -1
- package/build/src/browser-installer/firefox/index.d.ts +1 -0
- package/build/src/browser-installer/firefox/index.js +8 -3
- package/build/src/browser-installer/firefox/index.js.map +1 -1
- package/build/src/browser-installer/safari/index.d.ts +1 -0
- package/build/src/browser-installer/safari/index.js +8 -3
- package/build/src/browser-installer/safari/index.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/browser-pool/cancelled-error.js +7 -1
- package/build/src/browser-pool/cancelled-error.js.map +1 -1
- package/build/src/browser-pool/limited-pool.d.ts +1 -1
- package/build/src/browser-pool/limited-pool.js +3 -3
- package/build/src/browser-pool/limited-pool.js.map +1 -1
- package/build/src/browser-pool/per-browser-limited-pool.d.ts +1 -1
- package/build/src/browser-pool/per-browser-limited-pool.js +3 -2
- package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -1
- package/build/src/browser-pool/types.d.ts +1 -1
- package/build/src/browser-pool/webdriver-pool.d.ts +1 -0
- package/build/src/browser-pool/webdriver-pool.js +2 -0
- package/build/src/browser-pool/webdriver-pool.js.map +1 -1
- package/build/src/bundle/cjs/index.js +207 -108
- package/build/src/cli/commands/list-tests/index.js +2 -1
- package/build/src/cli/commands/list-tests/index.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 +29 -8
- package/build/src/cli/index.js.map +1 -1
- package/build/src/config/browser-options.js +51 -6
- package/build/src/config/browser-options.js.map +1 -1
- package/build/src/config/defaults.d.ts +27 -2
- package/build/src/config/defaults.js +30 -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/options.js +3 -2
- package/build/src/config/options.js.map +1 -1
- package/build/src/config/types.d.ts +133 -11
- package/build/src/config/types.js +15 -5
- package/build/src/config/types.js.map +1 -1
- package/build/src/config/utils.d.ts +4 -1
- package/build/src/config/utils.js +20 -2
- package/build/src/config/utils.js.map +1 -1
- package/build/src/constants/config.d.ts +1 -1
- package/build/src/constants/config.js +2 -2
- package/build/src/constants/config.js.map +1 -1
- package/build/src/constants/png.d.ts +14 -0
- package/build/src/constants/png.js +17 -0
- package/build/src/constants/png.js.map +1 -0
- package/build/src/constants/process-messages.d.ts +1 -0
- package/build/src/constants/process-messages.js +2 -1
- package/build/src/constants/process-messages.js.map +1 -1
- 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/error-snippets/constants.d.ts +2 -1
- package/build/src/error-snippets/constants.js +3 -2
- package/build/src/error-snippets/constants.js.map +1 -1
- package/build/src/error-snippets/source-maps.d.ts +3 -3
- package/build/src/error-snippets/source-maps.js +10 -8
- package/build/src/error-snippets/source-maps.js.map +1 -1
- package/build/src/error-snippets/utils.js +2 -2
- package/build/src/error-snippets/utils.js.map +1 -1
- package/build/src/errors/unhandled-rejection-error.d.ts +9 -0
- package/build/src/errors/unhandled-rejection-error.js +24 -0
- package/build/src/errors/unhandled-rejection-error.js.map +1 -0
- package/build/src/events/index.d.ts +12 -0
- package/build/src/events/index.js +3 -0
- package/build/src/events/index.js.map +1 -1
- package/build/src/globalFilesToRemove.d.ts +4 -0
- package/build/src/globalFilesToRemove.js +24 -0
- package/build/src/globalFilesToRemove.js.map +1 -0
- 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 +26 -9
- package/build/src/image.js +201 -97
- package/build/src/image.js.map +1 -1
- package/build/src/index.d.ts +6 -14
- package/build/src/index.js +5 -1
- package/build/src/index.js.map +1 -1
- package/build/src/reporters/flat.js +7 -5
- package/build/src/reporters/flat.js.map +1 -1
- package/build/src/reporters/informers/console.d.ts +3 -3
- package/build/src/reporters/informers/console.js +6 -6
- package/build/src/reporters/informers/console.js.map +1 -1
- package/build/src/reporters/informers/file.d.ts +3 -3
- package/build/src/reporters/informers/file.js +13 -6
- package/build/src/reporters/informers/file.js.map +1 -1
- package/build/src/reporters/plain.js +4 -2
- package/build/src/reporters/plain.js.map +1 -1
- package/build/src/reporters/utils/helpers.js +10 -1
- package/build/src/reporters/utils/helpers.js.map +1 -1
- package/build/src/runner/browser-env/vite/browser-modules/driver.js +28 -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/browser-env/vite/plugins/generate-index-html.js +4 -6
- package/build/src/runner/browser-env/vite/plugins/generate-index-html.js.map +1 -1
- package/build/src/runner/browser-env/vite/server.d.ts +1 -0
- package/build/src/runner/browser-env/vite/server.js +26 -0
- package/build/src/runner/browser-env/vite/server.js.map +1 -1
- package/build/src/runner/browser-env/vite/utils.d.ts +0 -5
- package/build/src/runner/browser-env/vite/utils.js +15 -9
- package/build/src/runner/browser-env/vite/utils.js.map +1 -1
- package/build/src/runner/browser-runner.d.ts +1 -1
- package/build/src/runner/browser-runner.js +2 -2
- package/build/src/runner/browser-runner.js.map +1 -1
- package/build/src/runner/index.d.ts +6 -3
- package/build/src/runner/index.js +20 -8
- 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/insistant-test-runner.d.ts +1 -0
- package/build/src/runner/test-runner/regular-test-runner.d.ts +3 -1
- package/build/src/runner/test-runner/regular-test-runner.js +30 -3
- package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
- package/build/src/runner/tests-tracker.d.ts +25 -0
- package/build/src/runner/tests-tracker.js +121 -0
- package/build/src/runner/tests-tracker.js.map +1 -0
- package/build/src/runner/types.d.ts +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/index.js +12 -8
- package/build/src/test-reader/index.js.map +1 -1
- package/build/src/test-reader/mocha-reader/index.d.ts +2 -1
- package/build/src/test-reader/mocha-reader/index.js +47 -2
- package/build/src/test-reader/mocha-reader/index.js.map +1 -1
- package/build/src/test-reader/mocha-reader/mocha-event-bus.d.ts +1 -1
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +4 -4
- package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -1
- package/build/src/test-reader/test-object/suite.d.ts +9 -3
- package/build/src/test-reader/test-object/suite.js +19 -1
- package/build/src/test-reader/test-object/suite.js.map +1 -1
- package/build/src/test-reader/test-object/test.d.ts +7 -2
- package/build/src/test-reader/test-object/test.js +20 -1
- package/build/src/test-reader/test-object/test.js.map +1 -1
- package/build/src/test-reader/test-object/types.d.ts +11 -2
- package/build/src/test-reader/test-parser.d.ts +3 -1
- package/build/src/test-reader/test-parser.js +22 -6
- package/build/src/test-reader/test-parser.js.map +1 -1
- package/build/src/testplane.d.ts +22 -10
- package/build/src/testplane.js +115 -18
- 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 +44 -7
- package/build/src/unstable.d.ts +2 -2
- package/build/src/unstable.js +2 -1
- package/build/src/unstable.js.map +1 -1
- package/build/src/utils/cli.d.ts +2 -0
- package/build/src/utils/cli.js +29 -2
- package/build/src/utils/cli.js.map +1 -1
- package/build/src/utils/config.d.ts +1 -0
- package/build/src/utils/config.js +6 -1
- package/build/src/utils/config.js.map +1 -1
- 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 +3 -0
- package/build/src/utils/eight-bit-rgba-to-png.js +61 -0
- package/build/src/utils/eight-bit-rgba-to-png.js.map +1 -0
- package/build/src/utils/ipc.d.ts +1 -1
- package/build/src/utils/ipc.js +15 -1
- package/build/src/utils/ipc.js.map +1 -1
- package/build/src/utils/logger.d.ts +9 -0
- package/build/src/utils/logger.js +27 -3
- package/build/src/utils/logger.js.map +1 -1
- package/build/src/utils/preload-utils.d.ts +1 -0
- package/build/src/utils/preload-utils.js +4 -4
- package/build/src/utils/preload-utils.js.map +1 -1
- package/build/src/utils/processor.js +15 -6
- package/build/src/utils/processor.js.map +1 -1
- 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 +111 -0
- package/build/src/utils/repl-module-hooks.js.map +1 -0
- package/build/src/utils/typescript.d.ts +3 -0
- package/build/src/utils/typescript.js +142 -36
- package/build/src/utils/typescript.js.map +1 -1
- package/build/src/utils/worker-error-serialization.d.ts +13 -0
- package/build/src/utils/worker-error-serialization.js +125 -0
- package/build/src/utils/worker-error-serialization.js.map +1 -0
- package/build/src/utils/workers-registry.d.ts +2 -2
- package/build/src/utils/workers-registry.js +53 -3
- 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/browser-env/runner/test-runner/index.js +16 -0
- package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/runner/browser-pool.js +5 -2
- package/build/src/worker/runner/browser-pool.js.map +1 -1
- package/build/src/worker/runner/index.d.ts +1 -0
- package/build/src/worker/runner/index.js +27 -6
- 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.d.ts +10 -0
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js +68 -0
- package/build/src/worker/runner/test-runner/capture-fail-screenshot.js.map +1 -0
- package/build/src/worker/runner/test-runner/execution-thread.d.ts +2 -4
- package/build/src/worker/runner/test-runner/execution-thread.js +11 -18
- package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
- package/build/src/worker/runner/test-runner/index.d.ts +3 -2
- package/build/src/worker/runner/test-runner/index.js +72 -12
- package/build/src/worker/runner/test-runner/index.js.map +1 -1
- package/build/src/worker/runner/test-runner/types.d.ts +1 -2
- 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 +2 -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 +41 -25
- package/build/src/browser/client-bridge/client-bridge.d.ts +0 -12
- package/build/src/browser/client-bridge/client-bridge.js +0 -45
- package/build/src/browser/client-bridge/client-bridge.js.map +0 -1
- package/build/src/browser/client-scripts/bundle.compat.js +0 -23
- package/build/src/browser/client-scripts/bundle.native.js +0 -15
- package/build/src/browser/client-scripts/ignore-areas.js +0 -7
- package/build/src/browser/client-scripts/index.js +0 -850
- package/build/src/browser/client-scripts/lib.compat.js +0 -28
- package/build/src/browser/client-scripts/lib.native.js +0 -28
- package/build/src/browser/client-scripts/rect.js +0 -251
- package/build/src/browser/client-scripts/util.js +0 -319
- package/build/src/browser/screen-shooter/index.d.ts +0 -22
- package/build/src/browser/screen-shooter/index.js +0 -117
- package/build/src/browser/screen-shooter/index.js.map +0 -1
- package/build/src/browser/screen-shooter/types.d.ts +0 -14
- package/build/src/browser/screen-shooter/types.js.map +0 -1
- package/build/src/browser/screen-shooter/utils.d.ts +0 -18
- package/build/src/browser/screen-shooter/utils.js +0 -198
- package/build/src/browser/screen-shooter/utils.js.map +0 -1
- package/build/src/browser/standalone.d.ts +0 -6
- package/build/src/browser/standalone.js.map +0 -1
- package/build/src/runner/browser-env/index.d.ts +0 -12
- package/build/src/runner/browser-env/index.js +0 -39
- package/build/src/runner/browser-env/index.js.map +0 -1
- package/build/src/worker/runner/test-runner/one-time-screenshooter.d.ts +0 -35
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js +0 -86
- package/build/src/worker/runner/test-runner/one-time-screenshooter.js.map +0 -1
- /package/build/src/browser/{screen-shooter → cdp}/types.js +0 -0
|
@@ -0,0 +1,633 @@
|
|
|
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
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
22
|
+
exports.__esModule = true;
|
|
23
|
+
exports.disablePointerEvents = exports.disableAnimations = exports.cleanupSavedScrolls = exports.prepareFullPageScrollCleanup = exports.saveScrollPositions = exports.scrollToCaptureAreaIfNeeded = exports.computePixelRatio = exports.computeCanHaveCaret = exports.computeDocumentSize = exports.computeSafeArea = exports.computeIgnoreAreas = exports.computeCaptureSpecs = exports.computeElementPositionsProbe = exports.computeViewportOffset = exports.computeViewportSize = exports.computeScrollOffset = void 0;
|
|
24
|
+
var _isomorphic_1 = require("@isomorphic");
|
|
25
|
+
var outside_of_viewport_1 = require("./errors/outside-of-viewport");
|
|
26
|
+
var descriptions_1 = require("./utils/descriptions");
|
|
27
|
+
var dom_1 = require("./utils/dom");
|
|
28
|
+
var element_rect_1 = require("./utils/element-rect");
|
|
29
|
+
var clip_rect_1 = require("./utils/clip-rect");
|
|
30
|
+
var scroll_1 = require("./utils/scroll");
|
|
31
|
+
var trusted_types_1 = require("./utils/trusted-types");
|
|
32
|
+
var z_index_1 = require("./utils/z-index");
|
|
33
|
+
var pseudo_element_rect_1 = require("./utils/pseudo-element-rect");
|
|
34
|
+
var user_agent_1 = require("./utils/user-agent");
|
|
35
|
+
function computeScrollOffset(element) {
|
|
36
|
+
return ((0, scroll_1.isRootLikeElement)(element) ? window.scrollY : element.scrollTop);
|
|
37
|
+
}
|
|
38
|
+
exports.computeScrollOffset = computeScrollOffset;
|
|
39
|
+
function computeViewportSize() {
|
|
40
|
+
return {
|
|
41
|
+
width: window.innerWidth,
|
|
42
|
+
height: window.innerHeight
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.computeViewportSize = computeViewportSize;
|
|
46
|
+
function computeViewportOffset() {
|
|
47
|
+
return {
|
|
48
|
+
left: window.scrollX,
|
|
49
|
+
top: window.scrollY
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.computeViewportOffset = computeViewportOffset;
|
|
53
|
+
var ELEMENT_POSITIONS_PROBE_GRID_SIZE = 5;
|
|
54
|
+
function getProbeAxisCoordinates(length, gridSize) {
|
|
55
|
+
var safeLength = Math.max(1, Math.floor(length));
|
|
56
|
+
if (gridSize <= 1) {
|
|
57
|
+
return [0];
|
|
58
|
+
}
|
|
59
|
+
var maxCoord = safeLength - 1;
|
|
60
|
+
var step = safeLength / (gridSize - 1);
|
|
61
|
+
var coordinates = [];
|
|
62
|
+
for (var i = 0; i < gridSize; i++) {
|
|
63
|
+
coordinates.push(Math.min(maxCoord, Math.round(i * step)));
|
|
64
|
+
}
|
|
65
|
+
return coordinates;
|
|
66
|
+
}
|
|
67
|
+
function computeElementPositionsProbe(gridSize) {
|
|
68
|
+
if (gridSize === void 0) { gridSize = ELEMENT_POSITIONS_PROBE_GRID_SIZE; }
|
|
69
|
+
var viewportSize = computeViewportSize();
|
|
70
|
+
var xCoordinates = getProbeAxisCoordinates(viewportSize.width, gridSize);
|
|
71
|
+
var yCoordinates = getProbeAxisCoordinates(viewportSize.height, gridSize);
|
|
72
|
+
var probe = [];
|
|
73
|
+
for (var yIndex = 0; yIndex < yCoordinates.length; yIndex++) {
|
|
74
|
+
for (var xIndex = 0; xIndex < xCoordinates.length; xIndex++) {
|
|
75
|
+
var x = xCoordinates[xIndex];
|
|
76
|
+
var y = yCoordinates[yIndex];
|
|
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) }));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return probe;
|
|
86
|
+
}
|
|
87
|
+
exports.computeElementPositionsProbe = computeElementPositionsProbe;
|
|
88
|
+
function computeCaptureSpecs(selectors, logger) {
|
|
89
|
+
if (selectors.length === 0) {
|
|
90
|
+
throw new Error("No selectors to compute capture area");
|
|
91
|
+
}
|
|
92
|
+
logger === null || logger === void 0 ? void 0 : logger("========== <computeCaptureSpecs> ==========");
|
|
93
|
+
logger === null || logger === void 0 ? void 0 : logger("selectors:", selectors);
|
|
94
|
+
var startTime = performance.now();
|
|
95
|
+
var elements = [];
|
|
96
|
+
for (var i = 0; i < selectors.length; i++) {
|
|
97
|
+
var parsedSelector = (0, pseudo_element_rect_1.parseCaptureSelector)(selectors[i]);
|
|
98
|
+
var element = document.querySelector(parsedSelector.elementSelector);
|
|
99
|
+
if (element) {
|
|
100
|
+
elements.push({ element: element, pseudoElement: parsedSelector.pseudoElement });
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
function getCaptureSpec(element, pseudoElement) {
|
|
104
|
+
var _a;
|
|
105
|
+
var full = pseudoElement
|
|
106
|
+
? (0, element_rect_1.getPseudoElementCaptureRect)(element, pseudoElement)
|
|
107
|
+
: (0, element_rect_1.getElementCaptureRect)(element, logger);
|
|
108
|
+
if (!full)
|
|
109
|
+
return null;
|
|
110
|
+
var clip = (0, clip_rect_1.getClipRect)(element, logger);
|
|
111
|
+
var visible = (_a = (0, _isomorphic_1.getIntersection)(full, clip)) !== null && _a !== void 0 ? _a : {
|
|
112
|
+
top: full.top,
|
|
113
|
+
left: full.left,
|
|
114
|
+
width: 0,
|
|
115
|
+
height: 0
|
|
116
|
+
};
|
|
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
|
+
}
|
|
127
|
+
logger === null || logger === void 0 ? void 0 : logger("captureSpecs:", captureSpecs);
|
|
128
|
+
logger === null || logger === void 0 ? void 0 : logger("computeCaptureSpecs time taken:", (performance.now() - startTime).toFixed(1) + "ms");
|
|
129
|
+
logger === null || logger === void 0 ? void 0 : logger("========== </computeCaptureSpecs> ==========");
|
|
130
|
+
return captureSpecs;
|
|
131
|
+
}
|
|
132
|
+
exports.computeCaptureSpecs = computeCaptureSpecs;
|
|
133
|
+
function computeIgnoreAreas(selectors) {
|
|
134
|
+
if (selectors === void 0) { selectors = []; }
|
|
135
|
+
var ignoreAreas = [];
|
|
136
|
+
for (var s = 0; s < selectors.length; s++) {
|
|
137
|
+
var parsedSelector = (0, pseudo_element_rect_1.parseCaptureSelector)(selectors[s]);
|
|
138
|
+
var nodeList = document.querySelectorAll(parsedSelector.elementSelector);
|
|
139
|
+
for (var i = 0; i < nodeList.length; i++) {
|
|
140
|
+
var rect = parsedSelector.pseudoElement
|
|
141
|
+
? (0, element_rect_1.getPseudoElementCaptureRect)(nodeList[i], parsedSelector.pseudoElement)
|
|
142
|
+
: (0, element_rect_1.getElementCaptureRect)(nodeList[i]);
|
|
143
|
+
if (rect !== null) {
|
|
144
|
+
ignoreAreas.push(rect);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return ignoreAreas;
|
|
149
|
+
}
|
|
150
|
+
exports.computeIgnoreAreas = computeIgnoreAreas;
|
|
151
|
+
function computeSafeArea(selectorsToCapture, scrollElement, logger) {
|
|
152
|
+
var _a, _b;
|
|
153
|
+
logger === null || logger === void 0 ? void 0 : logger("========== <computeSafeArea> ==========");
|
|
154
|
+
var startTime = performance.now();
|
|
155
|
+
var viewportSize = computeViewportSize();
|
|
156
|
+
var viewportRect = {
|
|
157
|
+
left: 0,
|
|
158
|
+
top: 0,
|
|
159
|
+
width: viewportSize.width,
|
|
160
|
+
height: viewportSize.height
|
|
161
|
+
};
|
|
162
|
+
var captureElements = selectorsToCapture
|
|
163
|
+
.map(function (s) { return document.querySelector((0, pseudo_element_rect_1.parseCaptureSelector)(s).elementSelector); })
|
|
164
|
+
.filter(function (e) { return e !== null; });
|
|
165
|
+
var captureSpecs = computeCaptureSpecs(selectorsToCapture).map(function (s) { return s.full; });
|
|
166
|
+
if (captureSpecs.length === 0) {
|
|
167
|
+
return { top: viewportRect.top, height: viewportRect.height };
|
|
168
|
+
}
|
|
169
|
+
var scrollEl = scrollElement !== null && scrollElement !== void 0 ? scrollElement : document.documentElement;
|
|
170
|
+
// 1. Base safe area equals the visible rectangle of the scroll container
|
|
171
|
+
var safeArea;
|
|
172
|
+
if (scrollEl === document.documentElement) {
|
|
173
|
+
logger === null || logger === void 0 ? void 0 : logger("setting base safe area to viewport rect");
|
|
174
|
+
safeArea = __assign({}, viewportRect);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
var contentRect = (0, element_rect_1.getBoundingClientContentRect)(scrollEl);
|
|
178
|
+
logger === null || logger === void 0 ? void 0 : logger("setting base safe area to visible part of scroll container:", (0, descriptions_1.getReadableElementDescriptor)(scrollEl), "contentRect:", contentRect);
|
|
179
|
+
safeArea = (_a = (0, _isomorphic_1.getIntersection)(contentRect, viewportRect)) !== null && _a !== void 0 ? _a : __assign({}, viewportRect);
|
|
180
|
+
var _c = (0, element_rect_1.getVerticalRadiusInsets)(scrollEl), topRadiusInset = _c.top, bottomRadiusInset = _c.bottom;
|
|
181
|
+
if (topRadiusInset > 0 || bottomRadiusInset > 0) {
|
|
182
|
+
var safeAreaHeight = safeArea.height;
|
|
183
|
+
var topInset = Math.min(topRadiusInset, safeAreaHeight);
|
|
184
|
+
var bottomInset = Math.min(bottomRadiusInset, safeAreaHeight - topInset);
|
|
185
|
+
logger === null || logger === void 0 ? void 0 : logger("applying radius insets to safe area:", { topInset: topInset, bottomInset: bottomInset });
|
|
186
|
+
safeArea = __assign(__assign({}, safeArea), { top: (safeArea.top + topInset), height: (safeAreaHeight - topInset - bottomInset) });
|
|
187
|
+
}
|
|
188
|
+
}
|
|
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);
|
|
200
|
+
// 2. Build z-index chains for all capture elements
|
|
201
|
+
// One z-chain is a list of objects: { stacking context, z-index } -> { stacking context, z-index } -> ...
|
|
202
|
+
// It is used to determine which element is on top of the other
|
|
203
|
+
var targetChains = captureElements.map(function (el) { return (0, z_index_1.buildZChain)(el); });
|
|
204
|
+
var captureLeft = captureArea.left;
|
|
205
|
+
var captureRight = captureLeft + captureArea.width;
|
|
206
|
+
// 3. Detect interfering elements
|
|
207
|
+
var interferences = [];
|
|
208
|
+
var allElements = document.documentElement.querySelectorAll("*");
|
|
209
|
+
var singleCaptureElement = captureElements.length === 1 ? captureElements[0] : null;
|
|
210
|
+
var _loop_1 = function (idx) {
|
|
211
|
+
var el = allElements[idx];
|
|
212
|
+
if (scrollEl === el || el.contains(scrollEl)) {
|
|
213
|
+
return "continue";
|
|
214
|
+
}
|
|
215
|
+
if (singleCaptureElement && (el === singleCaptureElement || el.contains(singleCaptureElement))) {
|
|
216
|
+
return "continue";
|
|
217
|
+
}
|
|
218
|
+
var computedStyle = getComputedStyle(el);
|
|
219
|
+
var position = computedStyle.position;
|
|
220
|
+
var bcr = el.getBoundingClientRect();
|
|
221
|
+
// Skip invisible elements
|
|
222
|
+
if (bcr.width < 1 ||
|
|
223
|
+
bcr.height < 1 ||
|
|
224
|
+
(bcr.width === 1 && bcr.height === 1) ||
|
|
225
|
+
computedStyle.visibility === "hidden" ||
|
|
226
|
+
computedStyle.display === "none" ||
|
|
227
|
+
parseFloat(computedStyle.opacity) < 0.0001 ||
|
|
228
|
+
/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(computedStyle.filter))
|
|
229
|
+
return "continue";
|
|
230
|
+
// Skip elements that don't horizontally intersect with capture area
|
|
231
|
+
if (bcr.right <= captureLeft || bcr.left >= captureRight)
|
|
232
|
+
return "continue";
|
|
233
|
+
// Skip elements that are outside of viewport
|
|
234
|
+
if ((0, _isomorphic_1.getIntersection)((0, _isomorphic_1.fromBcrToRect)(bcr), viewportRect) === null)
|
|
235
|
+
return "continue";
|
|
236
|
+
var likelyInterferes = false;
|
|
237
|
+
var shouldSkipZIndexCheck = false;
|
|
238
|
+
var adjustedRect = (0, element_rect_1.domRectToViewportCss)(bcr);
|
|
239
|
+
var fixedPositionedParent = (0, dom_1.findFixedPositionedParent)(el);
|
|
240
|
+
var isInsideScrollContextFixedParent = fixedPositionedParent !== null &&
|
|
241
|
+
(fixedPositionedParent === scrollEl || fixedPositionedParent.contains(scrollEl));
|
|
242
|
+
if (position === "fixed" || (fixedPositionedParent && !isInsideScrollContextFixedParent)) {
|
|
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); });
|
|
246
|
+
}
|
|
247
|
+
else if (position === "absolute") {
|
|
248
|
+
// Skip absolutely positioned elements that are inside capture elements
|
|
249
|
+
if (captureElements.some(function (capEl) { return capEl.contains(el); }))
|
|
250
|
+
return "continue";
|
|
251
|
+
// Absolute elements interfere only if positioned relative to ancestor outside scroll container
|
|
252
|
+
var containingBlock = (0, dom_1.findContainingBlock)(el);
|
|
253
|
+
// scrollElem may be window, in which case it doesn't have a contains method
|
|
254
|
+
if (scrollEl !== document.documentElement && !scrollEl.contains(containingBlock)) {
|
|
255
|
+
likelyInterferes = true;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
else if (position === "sticky") {
|
|
259
|
+
// Sticky elements interfere based on their top/bottom values
|
|
260
|
+
var topValue = parseFloat(computedStyle.top);
|
|
261
|
+
var bottomValue = parseFloat(computedStyle.bottom);
|
|
262
|
+
var scrollParent = (_b = (0, scroll_1.getScrollParent)(el)) !== null && _b !== void 0 ? _b : document.documentElement;
|
|
263
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollParent:", (0, descriptions_1.getReadableElementDescriptor)(scrollParent));
|
|
264
|
+
var scrollParentBcr = scrollParent.getBoundingClientRect();
|
|
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));
|
|
268
|
+
if (!isNaN(topValue)) {
|
|
269
|
+
adjustedRect = {
|
|
270
|
+
left: bcr.left,
|
|
271
|
+
top: topValue,
|
|
272
|
+
width: bcr.width,
|
|
273
|
+
height: bcr.height
|
|
274
|
+
};
|
|
275
|
+
likelyInterferes = true;
|
|
276
|
+
}
|
|
277
|
+
else if (!isNaN(bottomValue)) {
|
|
278
|
+
var isRoot = scrollEl === document.documentElement;
|
|
279
|
+
var viewportBottom = isRoot
|
|
280
|
+
? viewportRect.height
|
|
281
|
+
: safeArea.top + safeArea.height;
|
|
282
|
+
adjustedRect = {
|
|
283
|
+
left: bcr.left,
|
|
284
|
+
top: (viewportBottom - bottomValue - bcr.height),
|
|
285
|
+
width: bcr.width,
|
|
286
|
+
height: bcr.height
|
|
287
|
+
};
|
|
288
|
+
likelyInterferes = true;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (!likelyInterferes)
|
|
292
|
+
return "continue";
|
|
293
|
+
var candChain = (0, z_index_1.buildZChain)(el);
|
|
294
|
+
var behindAll = !shouldSkipZIndexCheck && targetChains.every(function (tChain) { return (0, z_index_1.isChainBehind)(candChain, tChain); });
|
|
295
|
+
if (!behindAll) {
|
|
296
|
+
var extRect = (0, element_rect_1.getExtRect)(computedStyle, adjustedRect);
|
|
297
|
+
var extLeft = extRect.left;
|
|
298
|
+
var extRight = extLeft + extRect.width;
|
|
299
|
+
if (extRight <= captureLeft || extLeft >= captureRight)
|
|
300
|
+
return "continue";
|
|
301
|
+
interferences.push({ element: el, rect: extRect });
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
for (var idx = 0; idx < allElements.length; idx++) {
|
|
305
|
+
_loop_1(idx);
|
|
306
|
+
}
|
|
307
|
+
var safeTop = safeArea.top;
|
|
308
|
+
var safeHeight = safeArea.height;
|
|
309
|
+
var origHeight = originalSafeArea.height;
|
|
310
|
+
// 4. Shrink safe area according to interfering elements
|
|
311
|
+
for (var _i = 0, interferences_1 = interferences; _i < interferences_1.length; _i++) {
|
|
312
|
+
var interference = interferences_1[_i];
|
|
313
|
+
logger === null || logger === void 0 ? void 0 : logger("processing interference:", {
|
|
314
|
+
element: (0, descriptions_1.getReadableElementDescriptor)(interference.element),
|
|
315
|
+
rect: interference.rect
|
|
316
|
+
});
|
|
317
|
+
var br = interference.rect;
|
|
318
|
+
var safeBottom = (0, _isomorphic_1.getBottom)({ top: safeTop, height: safeHeight });
|
|
319
|
+
var brBottom = (0, _isomorphic_1.getBottom)(br);
|
|
320
|
+
var shrinkTop = brBottom - safeTop;
|
|
321
|
+
var shrinkBottom = safeBottom - br.top;
|
|
322
|
+
var resultingTop = safeTop;
|
|
323
|
+
var resultingHeight = safeHeight;
|
|
324
|
+
if (shrinkTop < shrinkBottom) {
|
|
325
|
+
resultingTop = Math.max(brBottom, safeTop);
|
|
326
|
+
resultingHeight = (0, _isomorphic_1.getHeight)(safeBottom, resultingTop);
|
|
327
|
+
logger === null || logger === void 0 ? void 0 : logger("decided to shrink top");
|
|
328
|
+
}
|
|
329
|
+
else if (shrinkBottom) {
|
|
330
|
+
resultingHeight = Math.min(safeHeight, br.top - safeTop);
|
|
331
|
+
logger === null || logger === void 0 ? void 0 : logger("decided to shrink bottom");
|
|
332
|
+
}
|
|
333
|
+
// We don't want to shrink the safe area less than 30% of original height
|
|
334
|
+
if (resultingHeight < origHeight * 0.3) {
|
|
335
|
+
logger === null || logger === void 0 ? void 0 : logger("decided to skip, because shrinking is too large");
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
logger === null || logger === void 0 ? void 0 : logger("resulting safe area top:", resultingTop, "resulting safe area height:", resultingHeight);
|
|
339
|
+
safeTop = resultingTop;
|
|
340
|
+
safeHeight = resultingHeight;
|
|
341
|
+
}
|
|
342
|
+
// 5. Ensure we didn't shrink below 30% of original height
|
|
343
|
+
if (safeHeight < origHeight * 0.3) {
|
|
344
|
+
safeTop = originalSafeArea.top;
|
|
345
|
+
safeHeight = originalSafeArea.height;
|
|
346
|
+
}
|
|
347
|
+
// Safari on iOS 26 has a large blur at the bottom that interferes with scrolling, so
|
|
348
|
+
// if safe area ends too low, we shrink it by 40px which is enough to avoid the blur.
|
|
349
|
+
if ((0, user_agent_1.isSafariMobile)() && viewportSize.height - (safeTop + safeHeight) < 40) {
|
|
350
|
+
safeHeight = (safeHeight - 40);
|
|
351
|
+
}
|
|
352
|
+
var finalSafeArea = {
|
|
353
|
+
top: safeTop,
|
|
354
|
+
height: safeHeight
|
|
355
|
+
};
|
|
356
|
+
logger === null || logger === void 0 ? void 0 : logger("final safe area:", finalSafeArea);
|
|
357
|
+
logger === null || logger === void 0 ? void 0 : logger("computeSafeArea time taken:", (performance.now() - startTime).toFixed(1) + "ms");
|
|
358
|
+
logger === null || logger === void 0 ? void 0 : logger("========== </computeSafeArea> ==========");
|
|
359
|
+
return finalSafeArea;
|
|
360
|
+
}
|
|
361
|
+
exports.computeSafeArea = computeSafeArea;
|
|
362
|
+
function computeDocumentSize() {
|
|
363
|
+
var mainDocumentElem = (0, dom_1.getMainDocumentElem)();
|
|
364
|
+
return {
|
|
365
|
+
width: mainDocumentElem.scrollWidth,
|
|
366
|
+
height: mainDocumentElem.scrollHeight
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
exports.computeDocumentSize = computeDocumentSize;
|
|
370
|
+
function computeCanHaveCaret() {
|
|
371
|
+
var el = document.activeElement;
|
|
372
|
+
var canHaveCaret = el instanceof HTMLElement && (/^(input|textarea)$/i.test(el.tagName) || el.isContentEditable);
|
|
373
|
+
return canHaveCaret;
|
|
374
|
+
}
|
|
375
|
+
exports.computeCanHaveCaret = computeCanHaveCaret;
|
|
376
|
+
function computePixelRatio(usePixelRatio) {
|
|
377
|
+
if (usePixelRatio === void 0) { usePixelRatio = true; }
|
|
378
|
+
if (usePixelRatio === false) {
|
|
379
|
+
return 1;
|
|
380
|
+
}
|
|
381
|
+
if (window.devicePixelRatio) {
|
|
382
|
+
return window.devicePixelRatio;
|
|
383
|
+
}
|
|
384
|
+
// for ie6-ie10 (https://developer.mozilla.org/ru/docs/Web/API/Window/devicePixelRatio)
|
|
385
|
+
// @ts-expect-error - IE hack
|
|
386
|
+
return window.screen.deviceXDPI / window.screen.logicalXDPI || 1;
|
|
387
|
+
}
|
|
388
|
+
exports.computePixelRatio = computePixelRatio;
|
|
389
|
+
function scrollToCaptureAreaIfNeeded(selectorsToCapture, captureElementFromTop, allowViewportOverflow, selectorToScroll, logger) {
|
|
390
|
+
var viewportSize = computeViewportSize();
|
|
391
|
+
var viewport = __assign({ top: 0, left: 0 }, viewportSize);
|
|
392
|
+
var captureSpecsResult = computeCaptureSpecs(selectorsToCapture);
|
|
393
|
+
if (!captureSpecsResult)
|
|
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);
|
|
399
|
+
var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecsResult.map(function (s) { return s.full; }));
|
|
400
|
+
var safeArea = computeSafeArea(selectorsToCapture, initialScrollElem, logger);
|
|
401
|
+
var captureAndSafeAreasIntersection = (0, _isomorphic_1.getIntersection)(captureArea, safeArea);
|
|
402
|
+
var captureAndViewportIntersection = (0, _isomorphic_1.getIntersection)(captureArea, viewport);
|
|
403
|
+
var expectedVisibleHeight = Math.min(captureArea.height, safeArea.height);
|
|
404
|
+
var isIntersectionWithSafeAreaTooSmall = !captureAndSafeAreasIntersection || captureAndSafeAreasIntersection.height < expectedVisibleHeight / 2;
|
|
405
|
+
var isCaptureAreaStartVisible = captureArea.top >= safeArea.top;
|
|
406
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: intersection check", {
|
|
407
|
+
captureArea: captureArea,
|
|
408
|
+
safeArea: safeArea,
|
|
409
|
+
viewport: viewport,
|
|
410
|
+
hasViewportIntersection: Boolean(captureAndViewportIntersection),
|
|
411
|
+
hasSafeAreaIntersection: Boolean(captureAndSafeAreasIntersection),
|
|
412
|
+
isIntersectionWithSafeAreaTooSmall: isIntersectionWithSafeAreaTooSmall,
|
|
413
|
+
captureElementFromTop: Boolean(captureElementFromTop)
|
|
414
|
+
});
|
|
415
|
+
if (!captureElementFromTop && !captureAndViewportIntersection) {
|
|
416
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport");
|
|
417
|
+
throw new outside_of_viewport_1.OutsideOfViewportError();
|
|
418
|
+
}
|
|
419
|
+
if ((!captureElementFromTop || !isIntersectionWithSafeAreaTooSmall) && isCaptureAreaStartVisible) {
|
|
420
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: skipping scroll", {
|
|
421
|
+
reason: !captureElementFromTop
|
|
422
|
+
? "captureElementFromTop is disabled"
|
|
423
|
+
: "target already has enough safe area visibility"
|
|
424
|
+
});
|
|
425
|
+
return {};
|
|
426
|
+
}
|
|
427
|
+
if (!captureElementFromTop && allowViewportOverflow) {
|
|
428
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false");
|
|
429
|
+
return {};
|
|
430
|
+
}
|
|
431
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: scrolling is required", {
|
|
432
|
+
scrollElement: readableSelectorToScrollDescr,
|
|
433
|
+
requestedSelectorToScroll: selectorToScroll !== null && selectorToScroll !== void 0 ? selectorToScroll : null,
|
|
434
|
+
selectorMatched: Boolean(scrollTarget)
|
|
435
|
+
});
|
|
436
|
+
var scrollChain = __spreadArray([], (0, scroll_1.getScrollParentsChain)(initialScrollElem), true);
|
|
437
|
+
if (scrollChain[scrollChain.length - 1] !== initialScrollElem) {
|
|
438
|
+
scrollChain.push(initialScrollElem);
|
|
439
|
+
}
|
|
440
|
+
for (var i = 1; i < scrollChain.length; i++) {
|
|
441
|
+
var currentSafeArea = computeSafeArea(selectorsToCapture, scrollChain[i - 1]);
|
|
442
|
+
var childTop = scrollChain[i].getBoundingClientRect().top;
|
|
443
|
+
var scrollDelta = childTop - currentSafeArea.top;
|
|
444
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: scrolling chain element", {
|
|
445
|
+
scrollElement: (0, descriptions_1.getReadableElementDescriptor)(scrollChain[i - 1]),
|
|
446
|
+
childElement: (0, descriptions_1.getReadableElementDescriptor)(scrollChain[i]),
|
|
447
|
+
scrollDelta: scrollDelta
|
|
448
|
+
});
|
|
449
|
+
(0, scroll_1.scrollElementBy)(scrollChain[i - 1], scrollDelta, logger);
|
|
450
|
+
}
|
|
451
|
+
var finalCaptureArea = (0, _isomorphic_1.getCoveringRect)(computeCaptureSpecs(selectorsToCapture).map(function (s) { return s.full; }));
|
|
452
|
+
if (!finalCaptureArea)
|
|
453
|
+
return {};
|
|
454
|
+
var finalSafeArea = computeSafeArea(selectorsToCapture, initialScrollElem);
|
|
455
|
+
var finalScrollDelta = finalCaptureArea.top - finalSafeArea.top;
|
|
456
|
+
logger === null || logger === void 0 ? void 0 : logger("scrollToCaptureAreaIfNeeded: final alignment scroll", {
|
|
457
|
+
scrollElement: readableSelectorToScrollDescr,
|
|
458
|
+
finalScrollDelta: finalScrollDelta
|
|
459
|
+
});
|
|
460
|
+
(0, scroll_1.scrollElementBy)(initialScrollElem, finalScrollDelta, logger);
|
|
461
|
+
return {
|
|
462
|
+
readableSelectorToScrollDescr: readableSelectorToScrollDescr
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
exports.scrollToCaptureAreaIfNeeded = scrollToCaptureAreaIfNeeded;
|
|
466
|
+
function saveElementScrollPosition(element) {
|
|
467
|
+
var namespaceData = (0, dom_1.getScreenshooterNamespaceData)();
|
|
468
|
+
if (!namespaceData.savedScrollPositions) {
|
|
469
|
+
namespaceData.savedScrollPositions = [];
|
|
470
|
+
}
|
|
471
|
+
if (namespaceData.savedScrollPositions.some(function (saved) { return saved.element === element; })) {
|
|
472
|
+
return;
|
|
473
|
+
}
|
|
474
|
+
var savedPosition = (0, scroll_1.isRootLikeElement)(element)
|
|
475
|
+
? {
|
|
476
|
+
element: element,
|
|
477
|
+
left: window.scrollX,
|
|
478
|
+
top: window.scrollY
|
|
479
|
+
}
|
|
480
|
+
: {
|
|
481
|
+
element: element,
|
|
482
|
+
left: element.scrollLeft,
|
|
483
|
+
top: element.scrollTop
|
|
484
|
+
};
|
|
485
|
+
namespaceData.savedScrollPositions.push(savedPosition);
|
|
486
|
+
}
|
|
487
|
+
function saveScrollPositions(selectorsToCapture, selectorToScroll) {
|
|
488
|
+
(0, dom_1.getScreenshooterNamespaceData)().savedScrollPositions = [];
|
|
489
|
+
var scrollTarget = selectorToScroll ? document.querySelector(selectorToScroll) : null;
|
|
490
|
+
var selectorsForScrollParentSearch = selectorsToCapture.map(function (selector) { return (0, pseudo_element_rect_1.parseCaptureSelector)(selector).elementSelector; });
|
|
491
|
+
var initialScrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(selectorsForScrollParentSearch);
|
|
492
|
+
var scrollChain = __spreadArray([], (0, scroll_1.getScrollParentsChain)(initialScrollElement), true);
|
|
493
|
+
if (scrollChain[scrollChain.length - 1] !== initialScrollElement) {
|
|
494
|
+
scrollChain.push(initialScrollElement);
|
|
495
|
+
}
|
|
496
|
+
for (var _i = 0, scrollChain_1 = scrollChain; _i < scrollChain_1.length; _i++) {
|
|
497
|
+
var scrollElement = scrollChain_1[_i];
|
|
498
|
+
saveElementScrollPosition(scrollElement);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
exports.saveScrollPositions = saveScrollPositions;
|
|
502
|
+
function prepareFullPageScrollCleanup() {
|
|
503
|
+
(0, dom_1.getScreenshooterNamespaceData)().savedScrollPositions = [];
|
|
504
|
+
saveElementScrollPosition(document.documentElement);
|
|
505
|
+
}
|
|
506
|
+
exports.prepareFullPageScrollCleanup = prepareFullPageScrollCleanup;
|
|
507
|
+
function restoreScrollPosition(savedPosition) {
|
|
508
|
+
if ((0, scroll_1.isRootLikeElement)(savedPosition.element)) {
|
|
509
|
+
(0, scroll_1.performScrollFixForSafariIfNeeded)(savedPosition.top);
|
|
510
|
+
window.scrollTo(savedPosition.left, savedPosition.top);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
var scrollElement = savedPosition.element;
|
|
514
|
+
if (typeof scrollElement.scrollTo === "function") {
|
|
515
|
+
scrollElement.scrollTo(savedPosition.left, savedPosition.top);
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
if (typeof scrollElement.scrollLeft === "number") {
|
|
519
|
+
scrollElement.scrollLeft = savedPosition.left;
|
|
520
|
+
}
|
|
521
|
+
if (typeof scrollElement.scrollTop === "number") {
|
|
522
|
+
scrollElement.scrollTop = savedPosition.top;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
function cleanupSavedScrolls() {
|
|
526
|
+
var _a;
|
|
527
|
+
try {
|
|
528
|
+
var namespaceData = (0, dom_1.getScreenshooterNamespaceData)();
|
|
529
|
+
var savedScrollPositions = (_a = namespaceData.savedScrollPositions) !== null && _a !== void 0 ? _a : [];
|
|
530
|
+
namespaceData.savedScrollPositions = [];
|
|
531
|
+
for (var _i = 0, savedScrollPositions_1 = savedScrollPositions; _i < savedScrollPositions_1.length; _i++) {
|
|
532
|
+
var savedScrollPosition = savedScrollPositions_1[_i];
|
|
533
|
+
try {
|
|
534
|
+
restoreScrollPosition(savedScrollPosition);
|
|
535
|
+
}
|
|
536
|
+
catch (error) {
|
|
537
|
+
void error;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
catch (error) {
|
|
542
|
+
void error;
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
exports.cleanupSavedScrolls = cleanupSavedScrolls;
|
|
546
|
+
function disableAnimations() {
|
|
547
|
+
var everyElementSelector = "*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)";
|
|
548
|
+
var everythingSelector = ["", "::before", "::after"]
|
|
549
|
+
.map(function (pseudo) {
|
|
550
|
+
return everyElementSelector + pseudo;
|
|
551
|
+
})
|
|
552
|
+
.join(", ");
|
|
553
|
+
var styleElements = [];
|
|
554
|
+
function appendDisableAnimationStyleElement(root) {
|
|
555
|
+
var styleElement = document.createElement("style");
|
|
556
|
+
styleElement.innerHTML =
|
|
557
|
+
everythingSelector +
|
|
558
|
+
[
|
|
559
|
+
"{",
|
|
560
|
+
" animation-delay: 0ms !important;",
|
|
561
|
+
" animation-duration: 0ms !important;",
|
|
562
|
+
" animation-timing-function: step-start !important;",
|
|
563
|
+
" transition-timing-function: step-start !important;",
|
|
564
|
+
" scroll-behavior: auto !important;",
|
|
565
|
+
" transition: none !important;",
|
|
566
|
+
"}"
|
|
567
|
+
].join("\n");
|
|
568
|
+
root.appendChild(styleElement);
|
|
569
|
+
styleElements.push(styleElement);
|
|
570
|
+
}
|
|
571
|
+
(0, dom_1.forEachRoot)(function (root) {
|
|
572
|
+
try {
|
|
573
|
+
appendDisableAnimationStyleElement(root);
|
|
574
|
+
}
|
|
575
|
+
catch (err) {
|
|
576
|
+
if (err &&
|
|
577
|
+
err.message &&
|
|
578
|
+
err.message.indexOf("This document requires 'TrustedHTML' assignment") !== -1) {
|
|
579
|
+
(0, trusted_types_1.createDefaultTrustedTypesPolicy)();
|
|
580
|
+
appendDisableAnimationStyleElement(root);
|
|
581
|
+
}
|
|
582
|
+
else {
|
|
583
|
+
throw err;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
});
|
|
587
|
+
window.__cleanupAnimation = function () {
|
|
588
|
+
for (var i = 0; i < styleElements.length; i++) {
|
|
589
|
+
// IE11 doesn't have remove() on node
|
|
590
|
+
styleElements[i].parentNode.removeChild(styleElements[i]);
|
|
591
|
+
}
|
|
592
|
+
delete window.__cleanupAnimation;
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
exports.disableAnimations = disableAnimations;
|
|
596
|
+
function disablePointerEvents() {
|
|
597
|
+
var everyElementSelector = "*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)";
|
|
598
|
+
var everythingSelector = ["", "::before", "::after"]
|
|
599
|
+
.map(function (pseudo) {
|
|
600
|
+
return everyElementSelector + pseudo;
|
|
601
|
+
})
|
|
602
|
+
.join(", ");
|
|
603
|
+
var styleElements = [];
|
|
604
|
+
function appendDisablePointerEventsStyleElement(root) {
|
|
605
|
+
var styleElement = document.createElement("style");
|
|
606
|
+
styleElement.innerHTML = everythingSelector + ["{", " pointer-events: none !important;", "}"].join("\n");
|
|
607
|
+
root.appendChild(styleElement);
|
|
608
|
+
styleElements.push(styleElement);
|
|
609
|
+
}
|
|
610
|
+
(0, dom_1.forEachRoot)(function (root) {
|
|
611
|
+
try {
|
|
612
|
+
appendDisablePointerEventsStyleElement(root);
|
|
613
|
+
}
|
|
614
|
+
catch (err) {
|
|
615
|
+
if (err &&
|
|
616
|
+
err.message &&
|
|
617
|
+
err.message.indexOf("This document requires 'TrustedHTML' assignment") !== -1) {
|
|
618
|
+
(0, trusted_types_1.createDefaultTrustedTypesPolicy)();
|
|
619
|
+
appendDisablePointerEventsStyleElement(root);
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
throw err;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
});
|
|
626
|
+
var namespaceData = (0, dom_1.getScreenshooterNamespaceData)();
|
|
627
|
+
namespaceData.cleanupPointerEventsCb = function () {
|
|
628
|
+
for (var i = 0; i < styleElements.length; i++) {
|
|
629
|
+
styleElements[i].parentNode.removeChild(styleElements[i]);
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
exports.disablePointerEvents = disablePointerEvents;
|