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,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getClipRect = void 0;
|
|
4
|
+
var _isomorphic_1 = require("@isomorphic");
|
|
5
|
+
var element_rect_1 = require("./element-rect");
|
|
6
|
+
var scroll_1 = require("./scroll");
|
|
7
|
+
var dom_1 = require("./dom");
|
|
8
|
+
var descriptions_1 = require("./descriptions");
|
|
9
|
+
function getViewportRect() {
|
|
10
|
+
return {
|
|
11
|
+
top: 0,
|
|
12
|
+
left: 0,
|
|
13
|
+
width: window.innerWidth,
|
|
14
|
+
height: window.innerHeight
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function hasOverflowClipping(style) {
|
|
18
|
+
return style.overflow !== "visible" || style.overflowX !== "visible" || style.overflowY !== "visible";
|
|
19
|
+
}
|
|
20
|
+
function getAbsoluteContainingBlocks(element) {
|
|
21
|
+
var absoluteContainingBlocks = [];
|
|
22
|
+
var current = element;
|
|
23
|
+
while (current && !(0, scroll_1.isRootLikeElement)(current)) {
|
|
24
|
+
var style = getComputedStyle(current);
|
|
25
|
+
if (style.position === "absolute") {
|
|
26
|
+
var containingBlock = (0, dom_1.findContainingBlock)(current);
|
|
27
|
+
absoluteContainingBlocks.push({ absoluteAncestor: current, containingBlock: containingBlock });
|
|
28
|
+
}
|
|
29
|
+
current = current.parentElement;
|
|
30
|
+
}
|
|
31
|
+
return absoluteContainingBlocks;
|
|
32
|
+
}
|
|
33
|
+
function getFixedAncestors(element) {
|
|
34
|
+
var fixedAncestors = [];
|
|
35
|
+
var current = element;
|
|
36
|
+
while (current && !(0, scroll_1.isRootLikeElement)(current)) {
|
|
37
|
+
if (getComputedStyle(current).position === "fixed") {
|
|
38
|
+
fixedAncestors.push(current);
|
|
39
|
+
}
|
|
40
|
+
current = current.parentElement;
|
|
41
|
+
}
|
|
42
|
+
return fixedAncestors;
|
|
43
|
+
}
|
|
44
|
+
/** Absolute-positioned descendants may escape clipping when their containing block is outside clippingElement */
|
|
45
|
+
function escapesOverflowClippingViaAbsoluteContainingBlocks(clippingElement, absoluteContainingBlocks) {
|
|
46
|
+
return absoluteContainingBlocks.some(function (_a) {
|
|
47
|
+
var absoluteAncestor = _a.absoluteAncestor, containingBlock = _a.containingBlock;
|
|
48
|
+
if (absoluteAncestor === clippingElement || !clippingElement.contains(absoluteAncestor)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return containingBlock !== clippingElement && containingBlock.contains(clippingElement);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
/** Fixed-position descendants escape clipping of ancestors above the fixed ancestor */
|
|
55
|
+
function escapesOverflowClippingViaFixedAncestors(clippingElement, fixedAncestors) {
|
|
56
|
+
return fixedAncestors.some(function (fixedAncestor) { return fixedAncestor !== clippingElement && clippingElement.contains(fixedAncestor); });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Computes the clip rect for an element by intersecting the content boxes
|
|
60
|
+
* of all ancestor elements with overflow clipping, starting from the viewport.
|
|
61
|
+
*
|
|
62
|
+
* Elements with `position: fixed` are only clipped by the viewport,
|
|
63
|
+
* since they are positioned relative to the viewport and escape all
|
|
64
|
+
* ancestor overflow clipping.
|
|
65
|
+
*/
|
|
66
|
+
function getClipRect(element, logger) {
|
|
67
|
+
var viewportRect = getViewportRect();
|
|
68
|
+
var absoluteContainingBlocks = getAbsoluteContainingBlocks(element);
|
|
69
|
+
var fixedAncestors = getFixedAncestors(element);
|
|
70
|
+
var clipRect = viewportRect;
|
|
71
|
+
var current = element.parentElement;
|
|
72
|
+
while (current) {
|
|
73
|
+
if ((0, scroll_1.isRootLikeElement)(current)) {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
var style = getComputedStyle(current);
|
|
77
|
+
if (hasOverflowClipping(style)) {
|
|
78
|
+
var isEscapingCurrentOverflowClipping = escapesOverflowClippingViaAbsoluteContainingBlocks(current, absoluteContainingBlocks) ||
|
|
79
|
+
escapesOverflowClippingViaFixedAncestors(current, fixedAncestors);
|
|
80
|
+
if (isEscapingCurrentOverflowClipping) {
|
|
81
|
+
current = current.parentElement;
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
var contentBox = (0, element_rect_1.getBoundingClientContentRect)(current);
|
|
85
|
+
logger === null || logger === void 0 ? void 0 : logger("intersecting with:", (0, descriptions_1.getReadableElementDescriptor)(current), "contentBox:", contentBox);
|
|
86
|
+
var intersection = (0, _isomorphic_1.getIntersection)(clipRect, contentBox);
|
|
87
|
+
if (!intersection) {
|
|
88
|
+
logger === null || logger === void 0 ? void 0 : logger("no intersection found for:", (0, descriptions_1.getReadableElementDescriptor)(current));
|
|
89
|
+
// Element is fully clipped — return zero-sized rect at clip origin
|
|
90
|
+
return {
|
|
91
|
+
top: clipRect.top,
|
|
92
|
+
left: clipRect.left,
|
|
93
|
+
width: 0,
|
|
94
|
+
height: 0
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
clipRect = intersection;
|
|
98
|
+
}
|
|
99
|
+
current = current.parentElement;
|
|
100
|
+
}
|
|
101
|
+
return clipRect;
|
|
102
|
+
}
|
|
103
|
+
exports.getClipRect = getClipRect;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getReadableElementDescriptor = void 0;
|
|
4
|
+
function getReadableElementDescriptor(element) {
|
|
5
|
+
if (element === document.documentElement)
|
|
6
|
+
return "html";
|
|
7
|
+
var tag = element.tagName.toLowerCase();
|
|
8
|
+
if (element.id)
|
|
9
|
+
return "".concat(tag, "#").concat(element.id);
|
|
10
|
+
if (element.classList.length) {
|
|
11
|
+
var classes = [];
|
|
12
|
+
for (var i = 0; i < element.classList.length; i++) {
|
|
13
|
+
classes.push(element.classList[i]);
|
|
14
|
+
}
|
|
15
|
+
return tag + "." + classes.join(".");
|
|
16
|
+
}
|
|
17
|
+
return tag;
|
|
18
|
+
}
|
|
19
|
+
exports.getReadableElementDescriptor = getReadableElementDescriptor;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getScreenshooterNamespaceData = exports.findContainingBlock = exports.findFixedPositionedParent = exports.getParentElement = exports.forEachRoot = exports.getMainDocumentElem = exports.getOwnerIframe = exports.getOwnerWindow = void 0;
|
|
4
|
+
var FALLBACK_SCREENSHOOTER_NAMESPACE = "__testplane_screenshooter__";
|
|
5
|
+
function getOwnerWindow(node) {
|
|
6
|
+
if (!node.ownerDocument) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return node.ownerDocument.defaultView;
|
|
10
|
+
}
|
|
11
|
+
exports.getOwnerWindow = getOwnerWindow;
|
|
12
|
+
function getOwnerIframe(node) {
|
|
13
|
+
var nodeWindow = getOwnerWindow(node);
|
|
14
|
+
if (nodeWindow) {
|
|
15
|
+
return nodeWindow.frameElement;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
exports.getOwnerIframe = getOwnerIframe;
|
|
20
|
+
function getMainDocumentElem(currDocumentElem) {
|
|
21
|
+
if (!currDocumentElem) {
|
|
22
|
+
currDocumentElem = document.documentElement;
|
|
23
|
+
}
|
|
24
|
+
var currIframe = getOwnerIframe(currDocumentElem);
|
|
25
|
+
if (!currIframe) {
|
|
26
|
+
return currDocumentElem;
|
|
27
|
+
}
|
|
28
|
+
var currWindow = getOwnerWindow(currIframe);
|
|
29
|
+
if (!currWindow) {
|
|
30
|
+
return currDocumentElem;
|
|
31
|
+
}
|
|
32
|
+
return getMainDocumentElem(currWindow.document.documentElement);
|
|
33
|
+
}
|
|
34
|
+
exports.getMainDocumentElem = getMainDocumentElem;
|
|
35
|
+
function forEachRoot(cb) {
|
|
36
|
+
function traverseRoots(root) {
|
|
37
|
+
cb(root);
|
|
38
|
+
// @ts-expect-error - IE11 requires the third and fourth arguments
|
|
39
|
+
var treeWalker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false);
|
|
40
|
+
for (var node = treeWalker.currentNode; node !== null; node = treeWalker.nextNode()) {
|
|
41
|
+
if (node instanceof Element && node.shadowRoot) {
|
|
42
|
+
traverseRoots(node.shadowRoot);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
traverseRoots(document.documentElement);
|
|
47
|
+
}
|
|
48
|
+
exports.forEachRoot = forEachRoot;
|
|
49
|
+
function getParentElement(node) {
|
|
50
|
+
if (node instanceof ShadowRoot)
|
|
51
|
+
return node.host;
|
|
52
|
+
if (node instanceof Element) {
|
|
53
|
+
var root = node.getRootNode();
|
|
54
|
+
return node.parentElement || (root instanceof ShadowRoot ? root.host : null);
|
|
55
|
+
}
|
|
56
|
+
return node.parentNode instanceof Element ? node.parentNode : null;
|
|
57
|
+
}
|
|
58
|
+
exports.getParentElement = getParentElement;
|
|
59
|
+
function findFixedPositionedParent(element) {
|
|
60
|
+
var parent = element.parentElement;
|
|
61
|
+
while (parent) {
|
|
62
|
+
if (getComputedStyle(parent).position === "fixed") {
|
|
63
|
+
return parent;
|
|
64
|
+
}
|
|
65
|
+
parent = parent.parentElement;
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
exports.findFixedPositionedParent = findFixedPositionedParent;
|
|
70
|
+
function findContainingBlock(element) {
|
|
71
|
+
var parent = element.parentElement;
|
|
72
|
+
while (parent) {
|
|
73
|
+
var style = getComputedStyle(parent);
|
|
74
|
+
if (style.position === "relative" ||
|
|
75
|
+
style.position === "absolute" ||
|
|
76
|
+
style.position === "fixed" ||
|
|
77
|
+
style.position === "sticky" ||
|
|
78
|
+
style.transform !== "none" ||
|
|
79
|
+
style.perspective !== "none") {
|
|
80
|
+
return parent;
|
|
81
|
+
}
|
|
82
|
+
parent = parent.parentElement;
|
|
83
|
+
}
|
|
84
|
+
return document.documentElement;
|
|
85
|
+
}
|
|
86
|
+
exports.findContainingBlock = findContainingBlock;
|
|
87
|
+
function getScreenshooterNamespaceData() {
|
|
88
|
+
if (!window.__geminiCore) {
|
|
89
|
+
window.__geminiCore = {};
|
|
90
|
+
}
|
|
91
|
+
var namespace = typeof __geminiNamespace === "string" && __geminiNamespace
|
|
92
|
+
? __geminiNamespace
|
|
93
|
+
: FALLBACK_SCREENSHOOTER_NAMESPACE;
|
|
94
|
+
if (!window.__geminiCore[namespace]) {
|
|
95
|
+
window.__geminiCore[namespace] = {};
|
|
96
|
+
}
|
|
97
|
+
return window.__geminiCore[namespace];
|
|
98
|
+
}
|
|
99
|
+
exports.getScreenshooterNamespaceData = getScreenshooterNamespaceData;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getVerticalRadiusInsets = exports.getPseudoElementCaptureRect = exports.getElementCaptureRect = exports.getBoundingClientContentRect = exports.getExtRect = exports.domRectToViewportCss = void 0;
|
|
4
|
+
var _isomorphic_1 = require("@isomorphic");
|
|
5
|
+
var dom_1 = require("./dom");
|
|
6
|
+
var pseudo_element_rect_1 = require("./pseudo-element-rect");
|
|
7
|
+
function domRectToViewportCss(domRect) {
|
|
8
|
+
return {
|
|
9
|
+
top: domRect.top,
|
|
10
|
+
left: domRect.left,
|
|
11
|
+
width: domRect.width,
|
|
12
|
+
height: domRect.height
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
exports.domRectToViewportCss = domRectToViewportCss;
|
|
16
|
+
function getElementBorderWidths(element) {
|
|
17
|
+
var ownerWindow = (0, dom_1.getOwnerWindow)(element) || window;
|
|
18
|
+
var style = ownerWindow.getComputedStyle(element);
|
|
19
|
+
return {
|
|
20
|
+
top: parseFloat(style.borderTopWidth),
|
|
21
|
+
left: parseFloat(style.borderLeftWidth)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function getIframeContentOrigin(node) {
|
|
25
|
+
var border = getElementBorderWidths(node);
|
|
26
|
+
var bcr = node.getBoundingClientRect();
|
|
27
|
+
return {
|
|
28
|
+
top: (bcr.top + border.top),
|
|
29
|
+
left: (bcr.left + border.left),
|
|
30
|
+
width: bcr.width,
|
|
31
|
+
height: bcr.height
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function getNestedBoundingClientRect(node, logger) {
|
|
35
|
+
var ownerIframe = (0, dom_1.getOwnerIframe)(node);
|
|
36
|
+
if (ownerIframe === null || (0, dom_1.getOwnerWindow)(ownerIframe) === window) {
|
|
37
|
+
logger === null || logger === void 0 ? void 0 : logger("getNestedBoundingClientRect ownerIframe is null or window, returning bounding rect untouched");
|
|
38
|
+
return domRectToViewportCss(node.getBoundingClientRect());
|
|
39
|
+
}
|
|
40
|
+
logger === null || logger === void 0 ? void 0 : logger("getNestedBoundingClientRect ownerIframe is not null or window, returning bounding rect with iframe origin");
|
|
41
|
+
var elementRect = domRectToViewportCss(node.getBoundingClientRect());
|
|
42
|
+
var top = elementRect.top;
|
|
43
|
+
var left = elementRect.left;
|
|
44
|
+
var currentIframe = ownerIframe;
|
|
45
|
+
while (currentIframe) {
|
|
46
|
+
var iframeOrigin = getIframeContentOrigin(currentIframe);
|
|
47
|
+
top += iframeOrigin.top;
|
|
48
|
+
left += iframeOrigin.left;
|
|
49
|
+
currentIframe = (0, dom_1.getOwnerIframe)(currentIframe);
|
|
50
|
+
if (currentIframe && (0, dom_1.getOwnerWindow)(currentIframe) === window) {
|
|
51
|
+
var outerOrigin = getIframeContentOrigin(currentIframe);
|
|
52
|
+
top += outerOrigin.top;
|
|
53
|
+
left += outerOrigin.left;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
top: top,
|
|
59
|
+
left: left,
|
|
60
|
+
width: elementRect.width,
|
|
61
|
+
height: elementRect.height
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function parseBoxShadow(value) {
|
|
65
|
+
var regex = /[-+]?\d*\.?\d+px/g;
|
|
66
|
+
var results = [];
|
|
67
|
+
for (var _i = 0, _a = (value || "").split(","); _i < _a.length; _i++) {
|
|
68
|
+
var part = _a[_i];
|
|
69
|
+
var match = part.match(regex);
|
|
70
|
+
if (match) {
|
|
71
|
+
results.push({
|
|
72
|
+
offsetX: parseFloat(match[0]),
|
|
73
|
+
offsetY: parseFloat(match[1]) || 0,
|
|
74
|
+
blurRadius: parseFloat(match[2]) || 0,
|
|
75
|
+
spreadRadius: parseFloat(match[3]) || 0,
|
|
76
|
+
inset: part.indexOf("inset") !== -1
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return results;
|
|
81
|
+
}
|
|
82
|
+
function calculateShadowExtent(shadows) {
|
|
83
|
+
var result = { top: 0, left: 0, right: 0, bottom: 0 };
|
|
84
|
+
for (var _i = 0, shadows_1 = shadows; _i < shadows_1.length; _i++) {
|
|
85
|
+
var shadow = shadows_1[_i];
|
|
86
|
+
if (shadow.inset)
|
|
87
|
+
continue;
|
|
88
|
+
var blurAndSpread = shadow.spreadRadius + shadow.blurRadius;
|
|
89
|
+
result.left = Math.min(shadow.offsetX - blurAndSpread, result.left);
|
|
90
|
+
result.right = Math.max(shadow.offsetX + blurAndSpread, result.right);
|
|
91
|
+
result.top = Math.min(shadow.offsetY - blurAndSpread, result.top);
|
|
92
|
+
result.bottom = Math.max(shadow.offsetY + blurAndSpread, result.bottom);
|
|
93
|
+
}
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
function calculateShadowRect(clientRect, shadows) {
|
|
97
|
+
var extent = calculateShadowExtent(shadows);
|
|
98
|
+
return {
|
|
99
|
+
left: (clientRect.left + extent.left),
|
|
100
|
+
top: (clientRect.top + extent.top),
|
|
101
|
+
width: (clientRect.width - extent.left + extent.right),
|
|
102
|
+
height: (clientRect.height - extent.top + extent.bottom)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function calculateOutlineRect(clientRect, outline) {
|
|
106
|
+
return {
|
|
107
|
+
top: (clientRect.top - outline),
|
|
108
|
+
left: (clientRect.left - outline),
|
|
109
|
+
width: (clientRect.width + outline * 2),
|
|
110
|
+
height: (clientRect.height + outline * 2)
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function getExtRect(css, clientRect) {
|
|
114
|
+
var shadows = parseBoxShadow(css.boxShadow);
|
|
115
|
+
var outlineWidth = parseInt(css.outlineWidth, 10);
|
|
116
|
+
var outline = !isNaN(outlineWidth) && css.outlineStyle !== "none" ? outlineWidth : 0;
|
|
117
|
+
return (0, _isomorphic_1.getCoveringRect)([calculateShadowRect(clientRect, shadows), calculateOutlineRect(clientRect, outline)]);
|
|
118
|
+
}
|
|
119
|
+
exports.getExtRect = getExtRect;
|
|
120
|
+
function isHidden(css, rect) {
|
|
121
|
+
return (css.display === "none" ||
|
|
122
|
+
css.visibility === "hidden" ||
|
|
123
|
+
parseFloat(css.opacity) < 0.0001 ||
|
|
124
|
+
rect.width < 0.0001 ||
|
|
125
|
+
rect.height < 0.0001);
|
|
126
|
+
}
|
|
127
|
+
function getBoundingClientContentRect(element) {
|
|
128
|
+
var style = getComputedStyle(element);
|
|
129
|
+
var bcr = element.getBoundingClientRect();
|
|
130
|
+
var borderLeft = parseFloat(style.borderLeftWidth) || 0;
|
|
131
|
+
var borderTop = parseFloat(style.borderTopWidth) || 0;
|
|
132
|
+
var borderRight = parseFloat(style.borderRightWidth) || 0;
|
|
133
|
+
var borderBottom = parseFloat(style.borderBottomWidth) || 0;
|
|
134
|
+
return {
|
|
135
|
+
left: (bcr.left + borderLeft),
|
|
136
|
+
top: (bcr.top + borderTop),
|
|
137
|
+
width: (bcr.width - borderLeft - borderRight),
|
|
138
|
+
height: (bcr.height - borderTop - borderBottom)
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
exports.getBoundingClientContentRect = getBoundingClientContentRect;
|
|
142
|
+
function getElementCaptureRect(element, logger) {
|
|
143
|
+
var css = getComputedStyle(element);
|
|
144
|
+
var clientRect = getNestedBoundingClientRect(element, logger);
|
|
145
|
+
logger === null || logger === void 0 ? void 0 : logger("getElementCaptureRect clientRect:", clientRect);
|
|
146
|
+
if (isHidden(css, clientRect)) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
var elementRect = getExtRect(css, clientRect);
|
|
150
|
+
for (var _i = 0, PSEUDO_ELEMENTS_1 = pseudo_element_rect_1.PSEUDO_ELEMENTS; _i < PSEUDO_ELEMENTS_1.length; _i++) {
|
|
151
|
+
var pseudoElement = PSEUDO_ELEMENTS_1[_i];
|
|
152
|
+
var pseudoCss = getComputedStyle(element, pseudoElement);
|
|
153
|
+
elementRect = (0, _isomorphic_1.getCoveringRect)([elementRect, getExtRect(pseudoCss, clientRect)]);
|
|
154
|
+
}
|
|
155
|
+
return elementRect;
|
|
156
|
+
}
|
|
157
|
+
exports.getElementCaptureRect = getElementCaptureRect;
|
|
158
|
+
function getPseudoElementCaptureRect(element, pseudo) {
|
|
159
|
+
var css = getComputedStyle(element);
|
|
160
|
+
var clientRect = getNestedBoundingClientRect(element);
|
|
161
|
+
if (isHidden(css, clientRect)) {
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
var pseudoRect = (0, pseudo_element_rect_1.getPseudoElementRect)(element, pseudo, clientRect);
|
|
165
|
+
if (!pseudoRect) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
return getExtRect(getComputedStyle(element, pseudo), pseudoRect);
|
|
169
|
+
}
|
|
170
|
+
exports.getPseudoElementCaptureRect = getPseudoElementCaptureRect;
|
|
171
|
+
function parseBorderRadius(value) {
|
|
172
|
+
var _a = value.trim().split(/\s+/), first = _a[0], second = _a[1];
|
|
173
|
+
var parsed = parseFloat(second !== null && second !== void 0 ? second : first);
|
|
174
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
175
|
+
}
|
|
176
|
+
function getVerticalRadiusInsets(element) {
|
|
177
|
+
var style = getComputedStyle(element);
|
|
178
|
+
return {
|
|
179
|
+
top: Math.max(parseBorderRadius(style.borderTopLeftRadius), parseBorderRadius(style.borderTopRightRadius)),
|
|
180
|
+
bottom: Math.max(parseBorderRadius(style.borderBottomLeftRadius), parseBorderRadius(style.borderBottomRightRadius))
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
exports.getVerticalRadiusInsets = getVerticalRadiusInsets;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.__esModule = true;
|
|
3
|
+
exports.getPseudoElementRect = exports.parseCaptureSelector = exports.PSEUDO_ELEMENTS = void 0;
|
|
4
|
+
exports.PSEUDO_ELEMENTS = ["::before", "::after"];
|
|
5
|
+
var PSEUDO_SELECTOR_REGEXP = /(.*?)(::before|::after)\s*$/i;
|
|
6
|
+
function parseCaptureSelector(selector) {
|
|
7
|
+
var match = selector.match(PSEUDO_SELECTOR_REGEXP);
|
|
8
|
+
if (!match) {
|
|
9
|
+
return { elementSelector: selector, pseudoElement: null };
|
|
10
|
+
}
|
|
11
|
+
var elementSelector = match[1].trim();
|
|
12
|
+
if (!elementSelector) {
|
|
13
|
+
return { elementSelector: selector, pseudoElement: null };
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
elementSelector: elementSelector,
|
|
17
|
+
pseudoElement: match[2].toLowerCase()
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
exports.parseCaptureSelector = parseCaptureSelector;
|
|
21
|
+
function getElementBorderWidths(element) {
|
|
22
|
+
var style = getComputedStyle(element);
|
|
23
|
+
return {
|
|
24
|
+
top: parseFloat(style.borderTopWidth),
|
|
25
|
+
left: parseFloat(style.borderLeftWidth)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function parseLengthOrZero(value) {
|
|
29
|
+
var parsed = parseFloat(value);
|
|
30
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
31
|
+
}
|
|
32
|
+
function getElementContentBottom(element) {
|
|
33
|
+
var range = document.createRange();
|
|
34
|
+
try {
|
|
35
|
+
range.selectNodeContents(element);
|
|
36
|
+
var rects = range.getClientRects();
|
|
37
|
+
var bottom = -Infinity;
|
|
38
|
+
for (var i = 0; i < rects.length; i++) {
|
|
39
|
+
var rect = rects[i];
|
|
40
|
+
if (rect.width < 0.0001 && rect.height < 0.0001) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
bottom = Math.max(bottom, rect.bottom);
|
|
44
|
+
}
|
|
45
|
+
return bottom !== -Infinity ? bottom : null;
|
|
46
|
+
}
|
|
47
|
+
catch (_a) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
if (typeof range.detach === "function") {
|
|
52
|
+
range.detach();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function getContainingBlockPaddingEdge(element) {
|
|
57
|
+
var current = element.parentElement;
|
|
58
|
+
while (current) {
|
|
59
|
+
var pos = getComputedStyle(current).position;
|
|
60
|
+
if (pos !== "static") {
|
|
61
|
+
var bcr = current.getBoundingClientRect();
|
|
62
|
+
var borders = getElementBorderWidths(current);
|
|
63
|
+
return {
|
|
64
|
+
top: bcr.top + borders.top,
|
|
65
|
+
left: bcr.left + borders.left
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
current = current.parentElement;
|
|
69
|
+
}
|
|
70
|
+
return null; // initial containing block = viewport
|
|
71
|
+
}
|
|
72
|
+
function parseTransformMatrix(transform) {
|
|
73
|
+
if (!transform || transform === "none")
|
|
74
|
+
return null;
|
|
75
|
+
var match2d = transform.match(/matrix\(([^)]+)\)/);
|
|
76
|
+
if (match2d) {
|
|
77
|
+
var v = match2d[1].split(",").map(function (s) { return parseFloat(s.trim()); });
|
|
78
|
+
return { a: v[0], b: v[1], c: v[2], d: v[3], tx: v[4], ty: v[5] };
|
|
79
|
+
}
|
|
80
|
+
var match3d = transform.match(/matrix3d\(([^)]+)\)/);
|
|
81
|
+
if (match3d) {
|
|
82
|
+
var v = match3d[1].split(",").map(function (s) { return parseFloat(s.trim()); });
|
|
83
|
+
return { a: v[0], b: v[1], c: v[4], d: v[5], tx: v[12], ty: v[13] };
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
function resolveTransformOrigin(originStr, width, height) {
|
|
88
|
+
var parts = originStr.split(/\s+/);
|
|
89
|
+
function resolve(val, size) {
|
|
90
|
+
if (val.slice(-1) === "%") {
|
|
91
|
+
return (parseFloat(val) / 100) * size;
|
|
92
|
+
}
|
|
93
|
+
return parseFloat(val) || 0;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
x: resolve(parts[0], width),
|
|
97
|
+
y: resolve(parts[1] || parts[0], height)
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function applyTransformToRect(rect, css) {
|
|
101
|
+
var matrix = parseTransformMatrix(css.transform);
|
|
102
|
+
if (!matrix)
|
|
103
|
+
return rect;
|
|
104
|
+
var transformOrigin = resolveTransformOrigin(css.transformOrigin, rect.width, rect.height);
|
|
105
|
+
var originX = rect.left + transformOrigin.x;
|
|
106
|
+
var originY = rect.top + transformOrigin.y;
|
|
107
|
+
var corners = [
|
|
108
|
+
[rect.left, rect.top],
|
|
109
|
+
[rect.left + rect.width, rect.top],
|
|
110
|
+
[rect.left, rect.top + rect.height],
|
|
111
|
+
[rect.left + rect.width, rect.top + rect.height]
|
|
112
|
+
];
|
|
113
|
+
var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
114
|
+
for (var _i = 0, corners_1 = corners; _i < corners_1.length; _i++) {
|
|
115
|
+
var _a = corners_1[_i], cornerX = _a[0], cornerY = _a[1];
|
|
116
|
+
var relativeX = cornerX - originX, relativeY = cornerY - originY;
|
|
117
|
+
var transformedX = matrix.a * relativeX + matrix.c * relativeY + matrix.tx + originX;
|
|
118
|
+
var transformedY = matrix.b * relativeX + matrix.d * relativeY + matrix.ty + originY;
|
|
119
|
+
minX = Math.min(minX, transformedX);
|
|
120
|
+
maxX = Math.max(maxX, transformedX);
|
|
121
|
+
minY = Math.min(minY, transformedY);
|
|
122
|
+
maxY = Math.max(maxY, transformedY);
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
left: minX,
|
|
126
|
+
top: minY,
|
|
127
|
+
width: (maxX - minX),
|
|
128
|
+
height: (maxY - minY)
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function computeBaseRect(element, pseudo, css, elementRect) {
|
|
132
|
+
var width = parseFloat(css.width);
|
|
133
|
+
var height = parseFloat(css.height);
|
|
134
|
+
if (isNaN(width) || isNaN(height) || width < 0.0001 || height < 0.0001) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
var position = css.position;
|
|
138
|
+
if (position === "fixed") {
|
|
139
|
+
var top_1 = parseFloat(css.top);
|
|
140
|
+
var left = parseFloat(css.left);
|
|
141
|
+
return {
|
|
142
|
+
top: (isNaN(top_1) ? 0 : top_1),
|
|
143
|
+
left: (isNaN(left) ? 0 : left),
|
|
144
|
+
width: width,
|
|
145
|
+
height: height
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (position === "absolute") {
|
|
149
|
+
var elementCss_1 = getComputedStyle(element);
|
|
150
|
+
var originTop = void 0;
|
|
151
|
+
var originLeft = void 0;
|
|
152
|
+
if (elementCss_1.position !== "static") {
|
|
153
|
+
var borders = getElementBorderWidths(element);
|
|
154
|
+
originTop = elementRect.top + borders.top;
|
|
155
|
+
originLeft = elementRect.left + borders.left;
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
var containingBlock = getContainingBlockPaddingEdge(element);
|
|
159
|
+
originTop = containingBlock ? containingBlock.top : 0;
|
|
160
|
+
originLeft = containingBlock ? containingBlock.left : 0;
|
|
161
|
+
}
|
|
162
|
+
var top_2 = parseFloat(css.top);
|
|
163
|
+
var left = parseFloat(css.left);
|
|
164
|
+
return {
|
|
165
|
+
top: (originTop + (isNaN(top_2) ? 0 : top_2)),
|
|
166
|
+
left: (originLeft + (isNaN(left) ? 0 : left)),
|
|
167
|
+
width: width,
|
|
168
|
+
height: height
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
var elementCss = getComputedStyle(element);
|
|
172
|
+
var borderTop = parseLengthOrZero(elementCss.borderTopWidth);
|
|
173
|
+
var borderLeft = parseLengthOrZero(elementCss.borderLeftWidth);
|
|
174
|
+
var paddingTop = parseLengthOrZero(elementCss.paddingTop);
|
|
175
|
+
var paddingLeft = parseLengthOrZero(elementCss.paddingLeft);
|
|
176
|
+
var marginTop = parseLengthOrZero(css.marginTop);
|
|
177
|
+
var marginLeft = parseLengthOrZero(css.marginLeft);
|
|
178
|
+
var relativeTop = position === "relative" ? parseLengthOrZero(css.top) : 0;
|
|
179
|
+
var relativeLeft = position === "relative" ? parseLengthOrZero(css.left) : 0;
|
|
180
|
+
var flowTop = elementRect.top + borderTop + paddingTop;
|
|
181
|
+
if (pseudo === "::after" && css.display === "block") {
|
|
182
|
+
var contentBottom = getElementContentBottom(element);
|
|
183
|
+
if (contentBottom !== null) {
|
|
184
|
+
flowTop = Math.max(flowTop, contentBottom);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// In-flow pseudo-element: anchor at the element content box and apply pseudo margins
|
|
188
|
+
return {
|
|
189
|
+
top: (flowTop + marginTop + relativeTop),
|
|
190
|
+
left: (elementRect.left + borderLeft + paddingLeft + marginLeft + relativeLeft),
|
|
191
|
+
width: width,
|
|
192
|
+
height: height
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
function getPseudoElementRect(element, pseudo, elementRect) {
|
|
196
|
+
var css = getComputedStyle(element, pseudo);
|
|
197
|
+
if (css.content === "none" || css.display === "none" || css.visibility === "hidden") {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
var baseRect = computeBaseRect(element, pseudo, css, elementRect);
|
|
201
|
+
if (!baseRect)
|
|
202
|
+
return null;
|
|
203
|
+
return applyTransformToRect(baseRect, css);
|
|
204
|
+
}
|
|
205
|
+
exports.getPseudoElementRect = getPseudoElementRect;
|