testplane 9.1.0 → 9.2.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.
Files changed (275) hide show
  1. package/build/package.json +3 -3
  2. package/build/src/base-testplane.d.ts +17 -1
  3. package/build/src/base-testplane.js +43 -9
  4. package/build/src/base-testplane.js.map +1 -1
  5. package/build/src/browser/browser.d.ts +3 -0
  6. package/build/src/browser/browser.js +4 -2
  7. package/build/src/browser/browser.js.map +1 -1
  8. package/build/src/browser/cdp/selectivity/click-command-guard.d.ts +10 -0
  9. package/build/src/browser/cdp/selectivity/click-command-guard.js +57 -0
  10. package/build/src/browser/cdp/selectivity/click-command-guard.js.map +1 -0
  11. package/build/src/browser/cdp/selectivity/coverage-hooks.d.ts +13 -0
  12. package/build/src/browser/cdp/selectivity/coverage-hooks.js +43 -0
  13. package/build/src/browser/cdp/selectivity/coverage-hooks.js.map +1 -0
  14. package/build/src/browser/cdp/selectivity/index.js +61 -33
  15. package/build/src/browser/cdp/selectivity/index.js.map +1 -1
  16. package/build/src/browser/cdp/selectivity/js-selectivity.d.ts +1 -0
  17. package/build/src/browser/cdp/selectivity/js-selectivity.js +26 -18
  18. package/build/src/browser/cdp/selectivity/js-selectivity.js.map +1 -1
  19. package/build/src/browser/cdp/selectivity/navigation-guard.d.ts +18 -0
  20. package/build/src/browser/cdp/selectivity/navigation-guard.js +234 -0
  21. package/build/src/browser/cdp/selectivity/navigation-guard.js.map +1 -0
  22. package/build/src/browser/cdp/selectivity/testplane-selectivity.js +19 -19
  23. package/build/src/browser/cdp/selectivity/testplane-selectivity.js.map +1 -1
  24. package/build/src/browser/client-scripts/screen-shooter/build/bundle.compat.js +2 -2
  25. package/build/src/browser/client-scripts/screen-shooter/build/bundle.native.js +2 -2
  26. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/implementation.js +52 -84
  27. package/build/src/browser/client-scripts/screen-shooter/tsc-out/client-scripts/screen-shooter/operations.js +4 -1
  28. package/build/src/browser/commands/assert-view/index.js +25 -2
  29. package/build/src/browser/commands/assert-view/index.js.map +1 -1
  30. package/build/src/browser/existing-browser.js +8 -1
  31. package/build/src/browser/existing-browser.js.map +1 -1
  32. package/build/src/browser/history/index.d.ts +4 -2
  33. package/build/src/browser/history/index.js +146 -67
  34. package/build/src/browser/history/index.js.map +1 -1
  35. package/build/src/browser/new-browser.js +1 -1
  36. package/build/src/browser/new-browser.js.map +1 -1
  37. package/build/src/browser/screen-shooter/elements-screen-shooter.d.ts +5 -0
  38. package/build/src/browser/screen-shooter/elements-screen-shooter.js +102 -55
  39. package/build/src/browser/screen-shooter/elements-screen-shooter.js.map +1 -1
  40. package/build/src/browser/screen-shooter/viewport-screen-shooter.d.ts +4 -0
  41. package/build/src/browser/screen-shooter/viewport-screen-shooter.js +29 -7
  42. package/build/src/browser/screen-shooter/viewport-screen-shooter.js.map +1 -1
  43. package/build/src/browser-pool/basic-pool.d.ts +4 -3
  44. package/build/src/browser-pool/basic-pool.js +39 -7
  45. package/build/src/browser-pool/basic-pool.js.map +1 -1
  46. package/build/src/browser-pool/caching-pool.d.ts +3 -2
  47. package/build/src/browser-pool/caching-pool.js +19 -7
  48. package/build/src/browser-pool/caching-pool.js.map +1 -1
  49. package/build/src/browser-pool/index.d.ts +2 -1
  50. package/build/src/browser-pool/index.js +8 -4
  51. package/build/src/browser-pool/index.js.map +1 -1
  52. package/build/src/browser-pool/limited-pool.d.ts +5 -1
  53. package/build/src/browser-pool/limited-pool.js +42 -4
  54. package/build/src/browser-pool/limited-pool.js.map +1 -1
  55. package/build/src/browser-pool/per-browser-limited-pool.d.ts +2 -2
  56. package/build/src/browser-pool/per-browser-limited-pool.js +2 -1
  57. package/build/src/browser-pool/per-browser-limited-pool.js.map +1 -1
  58. package/build/src/browser-pool/types.d.ts +8 -0
  59. package/build/src/cli/commands/config/index.js +7 -3
  60. package/build/src/cli/commands/config/index.js.map +1 -1
  61. package/build/src/cli/commands/install-deps/index.js +46 -38
  62. package/build/src/cli/commands/install-deps/index.js.map +1 -1
  63. package/build/src/cli/commands/list-browsers/index.js +15 -11
  64. package/build/src/cli/commands/list-browsers/index.js.map +1 -1
  65. package/build/src/cli/commands/list-tests/index.js +25 -21
  66. package/build/src/cli/commands/list-tests/index.js.map +1 -1
  67. package/build/src/cli/commands/selectivity-merge-dumps/index.js +12 -5
  68. package/build/src/cli/commands/selectivity-merge-dumps/index.js.map +1 -1
  69. package/build/src/cli/index.js +10 -6
  70. package/build/src/cli/index.js.map +1 -1
  71. package/build/src/config/defaults.d.ts +5 -0
  72. package/build/src/config/defaults.js +4 -0
  73. package/build/src/config/defaults.js.map +1 -1
  74. package/build/src/config/index.d.ts +6 -4
  75. package/build/src/config/index.js +60 -19
  76. package/build/src/config/index.js.map +1 -1
  77. package/build/src/config/options.js +26 -0
  78. package/build/src/config/options.js.map +1 -1
  79. package/build/src/config/types.d.ts +19 -0
  80. package/build/src/constants/process-messages.d.ts +3 -0
  81. package/build/src/constants/process-messages.js +4 -1
  82. package/build/src/constants/process-messages.js.map +1 -1
  83. package/build/src/events/async-emitter/index.d.ts +38 -0
  84. package/build/src/events/async-emitter/index.js +248 -5
  85. package/build/src/events/async-emitter/index.js.map +1 -1
  86. package/build/src/events/index.d.ts +3 -0
  87. package/build/src/events/index.js +1 -0
  88. package/build/src/events/index.js.map +1 -1
  89. package/build/src/index.d.ts +2 -1
  90. package/build/src/profiler/analysis/aggregator.d.ts +19 -0
  91. package/build/src/profiler/analysis/aggregator.js +229 -0
  92. package/build/src/profiler/analysis/aggregator.js.map +1 -0
  93. package/build/src/profiler/analysis/analyzers.d.ts +10 -0
  94. package/build/src/profiler/analysis/analyzers.js +1228 -0
  95. package/build/src/profiler/analysis/analyzers.js.map +1 -0
  96. package/build/src/profiler/analysis/compact.d.ts +5 -0
  97. package/build/src/profiler/analysis/compact.js +46 -0
  98. package/build/src/profiler/analysis/compact.js.map +1 -0
  99. package/build/src/profiler/analysis/finding-order.d.ts +4 -0
  100. package/build/src/profiler/analysis/finding-order.js +28 -0
  101. package/build/src/profiler/analysis/finding-order.js.map +1 -0
  102. package/build/src/profiler/analysis/outliers.d.ts +6 -0
  103. package/build/src/profiler/analysis/outliers.js +49 -0
  104. package/build/src/profiler/analysis/outliers.js.map +1 -0
  105. package/build/src/profiler/analysis/policy-v1.d.ts +71 -0
  106. package/build/src/profiler/analysis/policy-v1.js +43 -0
  107. package/build/src/profiler/analysis/policy-v1.js.map +1 -0
  108. package/build/src/profiler/collectors/module-graph.d.ts +14 -0
  109. package/build/src/profiler/collectors/module-graph.js +99 -0
  110. package/build/src/profiler/collectors/module-graph.js.map +1 -0
  111. package/build/src/profiler/collectors/pool-observer.d.ts +9 -0
  112. package/build/src/profiler/collectors/pool-observer.js +40 -0
  113. package/build/src/profiler/collectors/pool-observer.js.map +1 -0
  114. package/build/src/profiler/manager.d.ts +55 -0
  115. package/build/src/profiler/manager.js +343 -0
  116. package/build/src/profiler/manager.js.map +1 -0
  117. package/build/src/profiler/output/console.d.ts +6 -0
  118. package/build/src/profiler/output/console.js +443 -0
  119. package/build/src/profiler/output/console.js.map +1 -0
  120. package/build/src/profiler/output/json.d.ts +2 -0
  121. package/build/src/profiler/output/json.js +24 -0
  122. package/build/src/profiler/output/json.js.map +1 -0
  123. package/build/src/profiler/retention/operation-store.d.ts +22 -0
  124. package/build/src/profiler/retention/operation-store.js +110 -0
  125. package/build/src/profiler/retention/operation-store.js.map +1 -0
  126. package/build/src/profiler/retention/policy-v1.d.ts +22 -0
  127. package/build/src/profiler/retention/policy-v1.js +49 -0
  128. package/build/src/profiler/retention/policy-v1.js.map +1 -0
  129. package/build/src/profiler/retention/result-budget.d.ts +2 -0
  130. package/build/src/profiler/retention/result-budget.js +117 -0
  131. package/build/src/profiler/retention/result-budget.js.map +1 -0
  132. package/build/src/profiler/retention/serialized-budget.d.ts +5 -0
  133. package/build/src/profiler/retention/serialized-budget.js +58 -0
  134. package/build/src/profiler/retention/serialized-budget.js.map +1 -0
  135. package/build/src/profiler/retention/streaming-statistics.d.ts +38 -0
  136. package/build/src/profiler/retention/streaming-statistics.js +191 -0
  137. package/build/src/profiler/retention/streaming-statistics.js.map +1 -0
  138. package/build/src/profiler/retention/top-k.d.ts +13 -0
  139. package/build/src/profiler/retention/top-k.js +57 -0
  140. package/build/src/profiler/retention/top-k.js.map +1 -0
  141. package/build/src/profiler/runtime/async-activity.d.ts +19 -0
  142. package/build/src/profiler/runtime/async-activity.js +113 -0
  143. package/build/src/profiler/runtime/async-activity.js.map +1 -0
  144. package/build/src/profiler/runtime/bootstrap-probe.d.ts +42 -0
  145. package/build/src/profiler/runtime/bootstrap-probe.js +91 -0
  146. package/build/src/profiler/runtime/bootstrap-probe.js.map +1 -0
  147. package/build/src/profiler/runtime/clock.d.ts +22 -0
  148. package/build/src/profiler/runtime/clock.js +15 -0
  149. package/build/src/profiler/runtime/clock.js.map +1 -0
  150. package/build/src/profiler/runtime/event-observer.d.ts +4 -0
  151. package/build/src/profiler/runtime/event-observer.js +142 -0
  152. package/build/src/profiler/runtime/event-observer.js.map +1 -0
  153. package/build/src/profiler/runtime/noop.d.ts +20 -0
  154. package/build/src/profiler/runtime/noop.js +37 -0
  155. package/build/src/profiler/runtime/noop.js.map +1 -0
  156. package/build/src/profiler/runtime/runtime.d.ts +95 -0
  157. package/build/src/profiler/runtime/runtime.js +1343 -0
  158. package/build/src/profiler/runtime/runtime.js.map +1 -0
  159. package/build/src/profiler/runtime/types.d.ts +88 -0
  160. package/build/src/profiler/runtime/types.js +3 -0
  161. package/build/src/profiler/runtime/types.js.map +1 -0
  162. package/build/src/profiler/sanitize.d.ts +15 -0
  163. package/build/src/profiler/sanitize.js +194 -0
  164. package/build/src/profiler/sanitize.js.map +1 -0
  165. package/build/src/profiler/schema/index.d.ts +1 -0
  166. package/build/src/profiler/schema/index.js +18 -0
  167. package/build/src/profiler/schema/index.js.map +1 -0
  168. package/build/src/profiler/schema/v1.d.ts +281 -0
  169. package/build/src/profiler/schema/v1.js +3 -0
  170. package/build/src/profiler/schema/v1.js.map +1 -0
  171. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js +30 -0
  172. package/build/src/runner/browser-env/vite/browser-modules/mocha/index.js.map +1 -1
  173. package/build/src/runner/browser-env/vite/browser-modules/tsconfig.tsbuildinfo +1 -1
  174. package/build/src/runner/browser-env/vite/browser-modules/types.d.ts +31 -6
  175. package/build/src/runner/browser-env/vite/browser-modules/types.js +8 -8
  176. package/build/src/runner/browser-env/vite/browser-modules/types.js.map +1 -1
  177. package/build/src/runner/browser-env/vite/plugins/generate-index-html.d.ts +7 -1
  178. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js +28 -6
  179. package/build/src/runner/browser-env/vite/plugins/generate-index-html.js.map +1 -1
  180. package/build/src/runner/browser-env/vite/server.js +17 -1
  181. package/build/src/runner/browser-env/vite/server.js.map +1 -1
  182. package/build/src/runner/browser-env/vite/socket.js +4 -0
  183. package/build/src/runner/browser-env/vite/socket.js.map +1 -1
  184. package/build/src/runner/browser-env/vite/types.d.ts +9 -7
  185. package/build/src/runner/browser-env/vite/types.js +8 -8
  186. package/build/src/runner/browser-env/vite/types.js.map +1 -1
  187. package/build/src/runner/browser-env/vite/utils.js +9 -2
  188. package/build/src/runner/browser-env/vite/utils.js.map +1 -1
  189. package/build/src/runner/browser-runner.d.ts +3 -1
  190. package/build/src/runner/browser-runner.js +4 -2
  191. package/build/src/runner/browser-runner.js.map +1 -1
  192. package/build/src/runner/index.d.ts +3 -1
  193. package/build/src/runner/index.js +7 -4
  194. package/build/src/runner/index.js.map +1 -1
  195. package/build/src/runner/test-runner/index.d.ts +2 -1
  196. package/build/src/runner/test-runner/index.js +2 -2
  197. package/build/src/runner/test-runner/index.js.map +1 -1
  198. package/build/src/runner/test-runner/insistant-test-runner.d.ts +2 -1
  199. package/build/src/runner/test-runner/insistant-test-runner.js +3 -2
  200. package/build/src/runner/test-runner/insistant-test-runner.js.map +1 -1
  201. package/build/src/runner/test-runner/regular-test-runner.d.ts +9 -3
  202. package/build/src/runner/test-runner/regular-test-runner.js +77 -16
  203. package/build/src/runner/test-runner/regular-test-runner.js.map +1 -1
  204. package/build/src/signal-handler.js +14 -5
  205. package/build/src/signal-handler.js.map +1 -1
  206. package/build/src/test-reader/index.d.ts +2 -1
  207. package/build/src/test-reader/index.js +19 -10
  208. package/build/src/test-reader/index.js.map +1 -1
  209. package/build/src/test-reader/mocha-reader/index.d.ts +2 -1
  210. package/build/src/test-reader/mocha-reader/index.js +41 -24
  211. package/build/src/test-reader/mocha-reader/index.js.map +1 -1
  212. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js +2 -2
  213. package/build/src/test-reader/mocha-reader/tree-builder-decorator.js.map +1 -1
  214. package/build/src/test-reader/mocha-reader/utils.d.ts +2 -0
  215. package/build/src/test-reader/mocha-reader/utils.js +18 -2
  216. package/build/src/test-reader/mocha-reader/utils.js.map +1 -1
  217. package/build/src/test-reader/test-object/hook.d.ts +4 -2
  218. package/build/src/test-reader/test-object/hook.js +3 -1
  219. package/build/src/test-reader/test-object/hook.js.map +1 -1
  220. package/build/src/test-reader/test-parser.d.ts +2 -1
  221. package/build/src/test-reader/test-parser.js +48 -4
  222. package/build/src/test-reader/test-parser.js.map +1 -1
  223. package/build/src/testplane.d.ts +6 -2
  224. package/build/src/testplane.js +82 -27
  225. package/build/src/testplane.js.map +1 -1
  226. package/build/src/types/index.d.ts +4 -1
  227. package/build/src/types/index.js.map +1 -1
  228. package/build/src/utils/exit-code.d.ts +1 -0
  229. package/build/src/utils/exit-code.js +28 -0
  230. package/build/src/utils/exit-code.js.map +1 -0
  231. package/build/src/utils/module-observer-registry.d.ts +43 -0
  232. package/build/src/utils/module-observer-registry.js +257 -0
  233. package/build/src/utils/module-observer-registry.js.map +1 -0
  234. package/build/src/utils/processor.js +1 -0
  235. package/build/src/utils/processor.js.map +1 -1
  236. package/build/src/utils/workers-registry.d.ts +48 -1
  237. package/build/src/utils/workers-registry.js +162 -4
  238. package/build/src/utils/workers-registry.js.map +1 -1
  239. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js +15 -1
  240. package/build/src/worker/browser-env/runner/test-runner/execution-thread.js.map +1 -1
  241. package/build/src/worker/browser-env/runner/test-runner/index.js +20 -0
  242. package/build/src/worker/browser-env/runner/test-runner/index.js.map +1 -1
  243. package/build/src/worker/index.js +39 -1
  244. package/build/src/worker/index.js.map +1 -1
  245. package/build/src/worker/runner/browser-pool.d.ts +3 -2
  246. package/build/src/worker/runner/browser-pool.js +5 -3
  247. package/build/src/worker/runner/browser-pool.js.map +1 -1
  248. package/build/src/worker/runner/caching-test-parser.d.ts +6 -1
  249. package/build/src/worker/runner/caching-test-parser.js +40 -4
  250. package/build/src/worker/runner/caching-test-parser.js.map +1 -1
  251. package/build/src/worker/runner/index.d.ts +10 -9
  252. package/build/src/worker/runner/index.js +52 -6
  253. package/build/src/worker/runner/index.js.map +1 -1
  254. package/build/src/worker/runner/sequence-test-parser.d.ts +4 -1
  255. package/build/src/worker/runner/sequence-test-parser.js +17 -3
  256. package/build/src/worker/runner/sequence-test-parser.js.map +1 -1
  257. package/build/src/worker/runner/simple-test-parser.d.ts +3 -1
  258. package/build/src/worker/runner/simple-test-parser.js +4 -2
  259. package/build/src/worker/runner/simple-test-parser.js.map +1 -1
  260. package/build/src/worker/runner/test-runner/execution-thread.d.ts +20 -2
  261. package/build/src/worker/runner/test-runner/execution-thread.js +37 -2
  262. package/build/src/worker/runner/test-runner/execution-thread.js.map +1 -1
  263. package/build/src/worker/runner/test-runner/hook-runner.d.ts +1 -1
  264. package/build/src/worker/runner/test-runner/hook-runner.js +4 -4
  265. package/build/src/worker/runner/test-runner/hook-runner.js.map +1 -1
  266. package/build/src/worker/runner/test-runner/index.d.ts +8 -7
  267. package/build/src/worker/runner/test-runner/index.js +36 -25
  268. package/build/src/worker/runner/test-runner/index.js.map +1 -1
  269. package/build/src/worker/runner/test-runner/types.d.ts +8 -1
  270. package/build/src/worker/testplane-facade.js +63 -4
  271. package/build/src/worker/testplane-facade.js.map +1 -1
  272. package/build/src/worker/testplane.d.ts +6 -0
  273. package/build/src/worker/testplane.js +7 -1
  274. package/build/src/worker/testplane.js.map +1 -1
  275. package/package.json +3 -3
@@ -3,11 +3,11 @@
3
3
  },{}],2:[function(require,module,exports){
4
4
  "use strict";var __extends=this&&this.__extends||function(){var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])})(t,e)};return function(t,e){function o(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}}();exports.__esModule=!0,exports.OutsideOfViewportError=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),OutsideOfViewportError=function(r){function t(t){var e=r.call(this,'Can not capture element, because it is completely outside of viewport with no intersection. Try to set "captureElementFromTop=true" assertView option to scroll to it before capture.')||this;return e.name="OutsideOfViewportError",e.errorCode=_isomorphic_1.BrowserSideErrorCode.OUTSIDE_OF_VIEWPORT,e.debugLog=t,e}return __extends(t,r),t}(Error);exports.OutsideOfViewportError=OutsideOfViewportError;
5
5
  },{"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],3:[function(require,module,exports){
6
- "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),s=r[t];r[t]=r[i],r[i]=s}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,s=0,n=0;s<r.length;s++){for(;n+1<r.length&&r[n+1]-r[s]<=o;)n++;n-s+1>i-t+1&&(t=s,i=n)}var a=r.slice(t,i+1),c=Math.floor(a.length/2);return a.length%2==1?a[c]:(a[c-1]+a[c])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var s=i.element.getBoundingClientRect(),n=i.rect;s.width<=0||s.height<=0||Math.abs(s.width-n.width)>1||Math.abs(s.height-n.height)>1||o.push(s.top-n.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function scrollBy(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollBy"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementBy)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function scrollTo(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollTo");i("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementToOffset)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function getCaptureState(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"getCaptureState"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,operations_1.computeIgnoreAreas)(o),u=(0,operations_1.computeSafeArea)(e,a,i),_=(0,operations_1.computeCaptureSpecs)(e,i),m=_.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s)}}),f=(0,operations_1.computeScrollOffset)(a),d=(0,operations_1.computeViewportOffset)(),h=computeActualShift(),v=null===h?null:(0,_isomorphic_1.fromCssToDeviceNumber)(h,s);return i("scrollOffset:",f),{captureSpecs:m,ignoreAreas:p.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),s),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(d),s),anchorShift:v,readableSelectorToScrollDescr:l,debugLog:i()}})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),n=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),n=!0)}var c=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(s),o),elementPositionsProbe:c,pixelRatio:o,pointerEventsDisabled:n}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:s}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){var o=(0,operations_1.computePixelRatio)(e.usePixelRatio),r=(0,operations_1.computeViewportSize)(),t=(0,operations_1.computeViewportOffset)(),i=(0,operations_1.computeDocumentSize)(),s=(0,operations_1.computeCanHaveCaret)();e.disableAnimation&&(0,operations_1.disableAnimations)();var n=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),a=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),a=!0),{viewportSize:(0,_isomorphic_1.fromCssToDevice)(r,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(t),o),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(i,o)),ignoreAreas:n.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)}),canHaveCaret:s,pixelRatio:o,pointerEventsDisabled:a}})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var s=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(s){t.push(s);for(var n=s.querySelectorAll("*"),a=0;a<n.length;a++)t.push(n[a])}}var c=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),l=sampleRandom(c,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=l.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var t=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,r).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var i=(0,operations_1.computePixelRatio)(o.usePixelRatio),s=o.selectorToScroll?lib.queryFirst(o.selectorToScroll):null,n=null!==s&&void 0!==s?s:(0,scroll_1.getCommonScrollParent)(e),a=(0,operations_1.computeIgnoreAreas)(o.ignoreSelectors),c=(0,operations_1.computeCaptureSpecs)(e,r),l=(0,operations_1.computeViewportSize)(),p=(0,operations_1.computeViewportOffset)(),u=(0,operations_1.computeSafeArea)(e,n,r),_=(0,operations_1.computeScrollOffset)(n),m=(0,operations_1.computeDocumentSize)(),f=(0,operations_1.computeCanHaveCaret)(),d=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),d=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var h=(0,_isomorphic_1.getCoveringRect)(c.map(function(e){return e.full})),v=(0,_isomorphic_1.getBottom)(h)>(0,_isomorphic_1.getBottom)(u);v&&(r("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",h,"safeArea:",u),(0,operations_1.disablePointerEvents)(),d=!0)}return r("scrollOffset:",_),{ignoreAreas:a.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),i)}),captureSpecs:c.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),i),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),i),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),i)}}),viewportSize:(0,_isomorphic_1.fromCssToDevice)(l,i),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(p),i),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),i),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(m,i)),canHaveCaret:f,pixelRatio:i,pointerEventsDisabled:d,debugLog:r(),readableSelectorToScrollDescr:t,scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(_,i)}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
6
+ "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),n=r[t];r[t]=r[i],r[i]=n}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,n=0,s=0;n<r.length;n++){for(;s+1<r.length&&r[s+1]-r[n]<=o;)s++;s-n+1>i-t+1&&(t=n,i=s)}var a=r.slice(t,i+1),l=Math.floor(a.length/2);return a.length%2==1?a[l]:(a[l-1]+a[l])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var n=i.element.getBoundingClientRect(),s=i.rect;n.width<=0||n.height<=0||Math.abs(n.width-s.width)>1||Math.abs(n.height-s.height)>1||o.push(n.top-s.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function getCurrentPixelRatio(){return(0,operations_1.computePixelRatio)()}function scrollBy(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollBy"),a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementBy)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function scrollTo(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollTo");s("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementToOffset)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function getViewportState(e,o){var r=(0,operations_1.computePixelRatio)(e,o);return{viewportSize:(0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeViewportSize)(),r),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)((0,operations_1.computeViewportOffset)()),r),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeDocumentSize)(),r)),pixelRatio:r}}function getCaptureStateUnsafe(e,o,r,t,i,n){var s=getViewportState(t,i),a=r?lib.queryFirst(r):null,l=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(l),p=r?a?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),u=(0,operations_1.computeIgnoreAreas)(o),_=(0,operations_1.computeSafeArea)(e,l,n),m=(0,operations_1.computeCaptureSpecs)(e,n),d=(0,operations_1.computeScrollOffset)(l),f=computeActualShift();return n("scrollOffset:",d),__assign(__assign({},s),{captureSpecs:m.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s.pixelRatio),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s.pixelRatio),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s.pixelRatio)}}),ignoreAreas:u.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s.pixelRatio)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(_),s.pixelRatio),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(d,s.pixelRatio),anchorShift:null===f?null:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s.pixelRatio),readableSelectorToScrollDescr:p})}function getCaptureState(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"getCaptureState"),a=getCaptureStateUnsafe(e,o,r,t,i,s);return __assign(__assign({},a),{debugLog:s()})})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var s=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),s=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),s=!0)}var l=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(n),o),elementPositionsProbe:l,pixelRatio:o,pointerEventsDisabled:s}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:n}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){e.disableAnimation&&(0,operations_1.disableAnimations)();var o=getViewportState(e.usePixelRatio,e.pixelRatioOverride),r=(0,operations_1.computeCanHaveCaret)(),t=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),i=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),i=!0),__assign(__assign({},o),{ignoreAreas:t.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o.pixelRatio)}),canHaveCaret:r,pointerEventsDisabled:i})})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var n=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(n){t.push(n);for(var s=n.querySelectorAll("*"),a=0;a<s.length;a++)t.push(s[a])}}var l=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),c=sampleRandom(l,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=c.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r,t=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var i=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,t).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var n=getCaptureStateUnsafe(e,null!==(r=o.ignoreSelectors)&&void 0!==r?r:[],o.selectorToScroll,o.usePixelRatio,o.pixelRatioOverride,t),s=(0,operations_1.computeCanHaveCaret)(),a=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),a=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var l=(0,_isomorphic_1.getCoveringRect)(n.captureSpecs.map(function(e){return e.full})),c=(0,_isomorphic_1.getBottom)(l)>(0,_isomorphic_1.getBottom)(n.safeArea);c&&(t("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",l,"safeArea:",n.safeArea),(0,operations_1.disablePointerEvents)(),a=!0)}return __assign(__assign({},n),{canHaveCaret:s,pointerEventsDisabled:a,readableSelectorToScrollDescr:i,debugLog:t()})}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.getCurrentPixelRatio=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.getCurrentPixelRatio=getCurrentPixelRatio,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
7
7
  },{"../shared/logger":16,"./../shared/lib.compat.js":15,"./operations":5,"./utils/descriptions":7,"./utils/dom":8,"./utils/pseudo-element-rect":10,"./utils/scroll":11,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],4:[function(require,module,exports){
8
8
  "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){n===undefined&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){n===undefined&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t};exports.__esModule=!0;var implementation=__importStar(require("./implementation")),globalObj="undefined"==typeof window?globalThis:window;globalObj.__geminiCore||(globalObj.__geminiCore={}),globalObj.__geminiCore[__geminiNamespace]=implementation;
9
9
  },{"./implementation":3}],5:[function(require,module,exports){
10
- "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e){return void 0===e&&(e=!0),!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
10
+ "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e,t){return void 0===e&&(e=!0),!1===e?1:t||(window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1)}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.compat.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
11
11
  },{"./../shared/lib.compat.js":15,"./errors/outside-of-viewport":2,"./utils/clip-rect":6,"./utils/descriptions":7,"./utils/dom":8,"./utils/element-rect":9,"./utils/pseudo-element-rect":10,"./utils/scroll":11,"./utils/trusted-types":12,"./utils/user-agent":13,"./utils/z-index":14,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],6:[function(require,module,exports){
12
12
  "use strict";function getViewportRect(){return{top:0,left:0,width:window.innerWidth,height:window.innerHeight}}function hasOverflowClipping(e){return"visible"!==e.overflow||"visible"!==e.overflowX||"visible"!==e.overflowY}function getAbsoluteContainingBlocks(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);){if("absolute"===getComputedStyle(n).position){var i=(0,dom_1.findContainingBlock)(n);t.push({absoluteAncestor:n,containingBlock:i})}n=n.parentElement}return t}function getFixedAncestors(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);)"fixed"===getComputedStyle(n).position&&t.push(n),n=n.parentElement;return t}function escapesOverflowClippingViaAbsoluteContainingBlocks(e,t){return t.some(function(t){var n=t.absoluteAncestor,i=t.containingBlock;return!(n===e||!lib.contains(e,n))&&(i!==e&&lib.contains(i,e))})}function escapesOverflowClippingViaFixedAncestors(e,t){return t.some(function(t){return t!==e&&lib.contains(e,t)})}function getClipRect(e,t){for(var n=getViewportRect(),i=getAbsoluteContainingBlocks(e),o=getFixedAncestors(e),r=n,l=e.parentElement;l&&!(0,scroll_1.isRootLikeElement)(l);){var s=getComputedStyle(l);if("contents"!==s.display){if(hasOverflowClipping(s)){if(escapesOverflowClippingViaAbsoluteContainingBlocks(l,i)||escapesOverflowClippingViaFixedAncestors(l,o)){l=l.parentElement;continue}var c=(0,element_rect_1.getBoundingClientContentRect)(l);null===t||void 0===t||t("intersecting with:",(0,descriptions_1.getReadableElementDescriptor)(l),"contentBox:",c);var u=(0,_isomorphic_1.getIntersection)(r,c);if(!u)return null===t||void 0===t||t("no intersection found for:",(0,descriptions_1.getReadableElementDescriptor)(l)),{top:r.top,left:r.left,width:0,height:0};r=u}l=l.parentElement}else l=l.parentElement}return r}var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){i===undefined&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&("get"in o?t.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===undefined&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t};exports.__esModule=!0,exports.getClipRect=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../../shared/lib.compat.js")),element_rect_1=require("./element-rect"),scroll_1=require("./scroll"),dom_1=require("./dom"),descriptions_1=require("./descriptions");exports.getClipRect=getClipRect;
13
13
  },{"./../../shared/lib.compat.js":15,"./descriptions":7,"./dom":8,"./element-rect":9,"./scroll":11,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":22}],7:[function(require,module,exports){
@@ -1,11 +1,11 @@
1
1
  (function (__geminiNamespace) { (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
2
2
  "use strict";var __extends=this&&this.__extends||function(){var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])})(t,e)};return function(t,e){function o(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}}();exports.__esModule=!0,exports.OutsideOfViewportError=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),OutsideOfViewportError=function(r){function t(t){var e=r.call(this,'Can not capture element, because it is completely outside of viewport with no intersection. Try to set "captureElementFromTop=true" assertView option to scroll to it before capture.')||this;return e.name="OutsideOfViewportError",e.errorCode=_isomorphic_1.BrowserSideErrorCode.OUTSIDE_OF_VIEWPORT,e.debugLog=t,e}return __extends(t,r),t}(Error);exports.OutsideOfViewportError=OutsideOfViewportError;
3
3
  },{"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],2:[function(require,module,exports){
4
- "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),s=r[t];r[t]=r[i],r[i]=s}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,s=0,n=0;s<r.length;s++){for(;n+1<r.length&&r[n+1]-r[s]<=o;)n++;n-s+1>i-t+1&&(t=s,i=n)}var a=r.slice(t,i+1),c=Math.floor(a.length/2);return a.length%2==1?a[c]:(a[c-1]+a[c])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var s=i.element.getBoundingClientRect(),n=i.rect;s.width<=0||s.height<=0||Math.abs(s.width-n.width)>1||Math.abs(s.height-n.height)>1||o.push(s.top-n.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function scrollBy(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollBy"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementBy)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function scrollTo(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"scrollTo");i("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,_isomorphic_1.fromDeviceToCssNumber)(o,s);return(0,scroll_1.scrollElementToOffset)(a,p),{readableSelectorToScrollDescr:l,debugLog:i()}})}function getCaptureState(e,o,r,t){return safeCall(function(){var i=(0,logger_1.createDebugLogger)({debug:t},"getCaptureState"),s=(0,operations_1.computePixelRatio)(),n=r?lib.queryFirst(r):null,a=null!==n&&void 0!==n?n:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(a),l=r?n?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),p=(0,operations_1.computeIgnoreAreas)(o),u=(0,operations_1.computeSafeArea)(e,a,i),_=(0,operations_1.computeCaptureSpecs)(e,i),m=_.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s)}}),f=(0,operations_1.computeScrollOffset)(a),d=(0,operations_1.computeViewportOffset)(),h=computeActualShift(),v=null===h?null:(0,_isomorphic_1.fromCssToDeviceNumber)(h,s);return i("scrollOffset:",f),{captureSpecs:m,ignoreAreas:p.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),s),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(d),s),anchorShift:v,readableSelectorToScrollDescr:l,debugLog:i()}})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var n=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),n=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),n=!0)}var c=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(s),o),elementPositionsProbe:c,pixelRatio:o,pointerEventsDisabled:n}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),s=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:s}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){var o=(0,operations_1.computePixelRatio)(e.usePixelRatio),r=(0,operations_1.computeViewportSize)(),t=(0,operations_1.computeViewportOffset)(),i=(0,operations_1.computeDocumentSize)(),s=(0,operations_1.computeCanHaveCaret)();e.disableAnimation&&(0,operations_1.disableAnimations)();var n=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),a=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),a=!0),{viewportSize:(0,_isomorphic_1.fromCssToDevice)(r,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(t),o),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(i,o)),ignoreAreas:n.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)}),canHaveCaret:s,pixelRatio:o,pointerEventsDisabled:a}})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var s=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(s){t.push(s);for(var n=s.querySelectorAll("*"),a=0;a<n.length;a++)t.push(n[a])}}var c=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),l=sampleRandom(c,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=l.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var t=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,r).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var i=(0,operations_1.computePixelRatio)(o.usePixelRatio),s=o.selectorToScroll?lib.queryFirst(o.selectorToScroll):null,n=null!==s&&void 0!==s?s:(0,scroll_1.getCommonScrollParent)(e),a=(0,operations_1.computeIgnoreAreas)(o.ignoreSelectors),c=(0,operations_1.computeCaptureSpecs)(e,r),l=(0,operations_1.computeViewportSize)(),p=(0,operations_1.computeViewportOffset)(),u=(0,operations_1.computeSafeArea)(e,n,r),_=(0,operations_1.computeScrollOffset)(n),m=(0,operations_1.computeDocumentSize)(),f=(0,operations_1.computeCanHaveCaret)(),d=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),d=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var h=(0,_isomorphic_1.getCoveringRect)(c.map(function(e){return e.full})),v=(0,_isomorphic_1.getBottom)(h)>(0,_isomorphic_1.getBottom)(u);v&&(r("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",h,"safeArea:",u),(0,operations_1.disablePointerEvents)(),d=!0)}return r("scrollOffset:",_),{ignoreAreas:a.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),i)}),captureSpecs:c.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),i),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),i),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),i)}}),viewportSize:(0,_isomorphic_1.fromCssToDevice)(l,i),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(p),i),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(u),i),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(m,i)),canHaveCaret:f,pixelRatio:i,pointerEventsDisabled:d,debugLog:r(),readableSelectorToScrollDescr:t,scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(_,i)}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.native.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
4
+ "use strict";function sampleRandom(e,o){if(e.length<=o)return e.slice();for(var r=e.slice(),t=0;t<o;t++){var i=t+Math.floor(Math.random()*(r.length-t)),n=r[t];r[t]=r[i],r[i]=n}return r.slice(0,o)}function computeShiftMode(e,o){if(0===e.length)return null;for(var r=e.slice().sort(function(e,o){return e-o}),t=0,i=0,n=0,s=0;n<r.length;n++){for(;s+1<r.length&&r[s+1]-r[n]<=o;)s++;s-n+1>i-t+1&&(t=n,i=s)}var a=r.slice(t,i+1),l=Math.floor(a.length/2);return a.length%2==1?a[l]:(a[l-1]+a[l])/2}function computeActualShift(){var e=(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData;if(!e||0===e.length)return null;for(var o=[],r=0,t=e;r<t.length;r++){var i=t[r];if(i.element.isConnected){var n=i.element.getBoundingClientRect(),s=i.rect;n.width<=0||n.height<=0||Math.abs(n.width-s.width)>1||Math.abs(n.height-s.height)>1||o.push(n.top-s.top)}}if(o.length<MIN_ANCHOR_SAMPLE_SIZE)return null;var a=computeShiftMode(o,ANCHOR_SHIFT_TOLERANCE_CSS);return null===a?null:a}function safeCall(e){for(var o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];try{return e.apply(void 0,o)}catch(t){return t instanceof Error?{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:t.stack||t.message}:{errorCode:_isomorphic_1.BrowserSideErrorCode.JS,message:"Unknown error: "+String(t)}}}function prepareElementsScreenshot(e,o){return safeCall(prepareElementsScreenshotUnsafe,e,o)}function getCurrentPixelRatio(){return(0,operations_1.computePixelRatio)()}function scrollBy(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollBy"),a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementBy)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function scrollTo(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"scrollTo");s("Asked to scroll to with params: targetsToCapture:",e,"scrollOffset:",o,"targetToScroll:",r);var a=(0,operations_1.computePixelRatio)(t,i),l=r?lib.queryFirst(r):null,c=null!==l&&void 0!==l?l:(0,scroll_1.getCommonScrollParent)(e),p=(0,descriptions_1.getReadableElementDescriptor)(c),u=r?l?"".concat(r," (").concat(p,")"):"".concat(r," (not found, auto-detected ").concat(p,")"):"auto-detected ".concat(p),_=(0,_isomorphic_1.fromDeviceToCssNumber)(o,a);return(0,scroll_1.scrollElementToOffset)(c,_),{readableSelectorToScrollDescr:u,debugLog:s()}})}function getViewportState(e,o){var r=(0,operations_1.computePixelRatio)(e,o);return{viewportSize:(0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeViewportSize)(),r),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)((0,operations_1.computeViewportOffset)()),r),documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)((0,operations_1.computeDocumentSize)(),r)),pixelRatio:r}}function getCaptureStateUnsafe(e,o,r,t,i,n){var s=getViewportState(t,i),a=r?lib.queryFirst(r):null,l=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),c=(0,descriptions_1.getReadableElementDescriptor)(l),p=r?a?"".concat(r," (").concat(c,")"):"".concat(r," (not found, auto-detected ").concat(c,")"):"auto-detected ".concat(c),u=(0,operations_1.computeIgnoreAreas)(o),_=(0,operations_1.computeSafeArea)(e,l,n),m=(0,operations_1.computeCaptureSpecs)(e,n),d=(0,operations_1.computeScrollOffset)(l),f=computeActualShift();return n("scrollOffset:",d),__assign(__assign({},s),{captureSpecs:m.map(function(e){return{full:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.full),s.pixelRatio),clip:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.clip),s.pixelRatio),visible:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e.visible),s.pixelRatio)}}),ignoreAreas:u.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),s.pixelRatio)}),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(_),s.pixelRatio),scrollOffset:(0,_isomorphic_1.fromCssToDeviceNumber)(d,s.pixelRatio),anchorShift:null===f?null:(0,_isomorphic_1.fromCssToDeviceNumber)(f,s.pixelRatio),readableSelectorToScrollDescr:p})}function getCaptureState(e,o,r,t,i,n){return safeCall(function(){var s=(0,logger_1.createDebugLogger)({debug:n},"getCaptureState"),a=getCaptureStateUnsafe(e,o,r,t,i,s);return __assign(__assign({},a),{debugLog:s()})})}function prepareFullPageScreenshot(e){return void 0===e&&(e={}),safeCall(function(){(0,operations_1.prepareFullPageScrollCleanup)();var o=(0,operations_1.computePixelRatio)(e.usePixelRatio);window.scrollTo(0,0);var r=(0,operations_1.computeDocumentSize)(),t=(0,operations_1.computeViewportSize)(),i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeSafeArea)(["body"],document.documentElement);e.disableAnimation&&(0,operations_1.disableAnimations)();var s=!1;if(e.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),s=!0;else if(e.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded){var a=r.height>t.height;a&&((0,operations_1.disablePointerEvents)(),s=!0)}var l=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o)),{elementDescr:e.elementDescr}):null});return{documentSize:(0,_isomorphic_1.ceilCoords)((0,_isomorphic_1.fromCssToDevice)(r,o)),viewportSize:(0,_isomorphic_1.fromCssToDevice)(t,o),viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),o),safeArea:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(n),o),elementPositionsProbe:l,pixelRatio:o,pointerEventsDisabled:s}})}function scrollFullPage(e,o){return void 0===o&&(o={}),safeCall(function(){var r=(0,operations_1.computePixelRatio)(o.usePixelRatio),t=(0,_isomorphic_1.fromDeviceToCssNumber)(e,r)-1;(0,scroll_1.scrollElementBy)(document.documentElement,t);var i=(0,operations_1.computeViewportOffset)(),n=(0,operations_1.computeElementPositionsProbe)().map(function(e){return e?__assign(__assign({},(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),r)),{elementDescr:e.elementDescr}):null});return{viewportOffset:(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.floorCoords)(i),r),elementPositionsProbe:n}})}function prepareViewportScreenshot(e){return void 0===e&&(e={}),safeCall(function(){e.disableAnimation&&(0,operations_1.disableAnimations)();var o=getViewportState(e.usePixelRatio,e.pixelRatioOverride),r=(0,operations_1.computeCanHaveCaret)(),t=(0,operations_1.computeIgnoreAreas)(e.ignoreSelectors),i=!1;return e.disableHover===_isomorphic_1.DisableHoverMode.Always&&((0,operations_1.disablePointerEvents)(),i=!0),__assign(__assign({},o),{ignoreAreas:t.map(function(e){return(0,_isomorphic_1.fromCssToDevice)((0,_isomorphic_1.roundCoords)(e),o.pixelRatio)}),canHaveCaret:r,pointerEventsDisabled:i})})}function disableFrameAnimations(){return safeCall(operations_1.disableAnimations)}function cleanupFrameAnimations(){window.__cleanupAnimation&&window.__cleanupAnimation()}function disablePointerEvents(){return safeCall(operations_1.disablePointerEvents)}function cleanupPointerEvents(){var e=(0,dom_1.getScreenshooterNamespaceData)();e.cleanupPointerEventsCb&&e.cleanupPointerEventsCb()}function cleanupScrolls(){(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=[],(0,operations_1.cleanupSavedScrolls)()}function captureAnchorBaseline(e){return safeCall(function(){for(var o=(0,operations_1.computeCaptureSpecs)(e),r=o.length>0?(0,_isomorphic_1.getCoveringRect)(o.map(function(e){return e.full})):null,t=[],i=0;i<e.length;i++){var n=lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e[i]).elementTarget);if(n){t.push(n);for(var s=n.querySelectorAll("*"),a=0;a<s.length;a++)t.push(s[a])}}var l=t.filter(function(e){var o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return!1;if(!r)return!0;var t=(0,_isomorphic_1.fromBcrToRect)(o);return Boolean((0,_isomorphic_1.getIntersection)(r,t))}),c=sampleRandom(l,MAX_ANCHOR_TRACKED_ELEMENTS);(0,dom_1.getScreenshooterNamespaceData)().trackedElementsData=c.map(function(e){var o=e.getBoundingClientRect();return{element:e,rect:(0,_isomorphic_1.fromBcrToRect)(o)}})})}function prepareElementsScreenshotUnsafe(e,o){var r,t=(0,logger_1.createDebugLogger)(o,"prepareElementsScreenshot");(0,operations_1.saveScrollPositions)(e,o.selectorToScroll);var i=(0,operations_1.scrollToCaptureAreaIfNeeded)(e,o.captureElementFromTop,o.allowViewportOverflow,o.selectorToScroll,t).readableSelectorToScrollDescr;o.disableAnimation&&(0,operations_1.disableAnimations)();var n=getCaptureStateUnsafe(e,null!==(r=o.ignoreSelectors)&&void 0!==r?r:[],o.selectorToScroll,o.usePixelRatio,o.pixelRatioOverride,t),s=(0,operations_1.computeCanHaveCaret)(),a=!1;if(o.disableHover===_isomorphic_1.DisableHoverMode.Always)(0,operations_1.disablePointerEvents)(),a=!0;else if(o.disableHover===_isomorphic_1.DisableHoverMode.WhenScrollingNeeded&&o.compositeImage){var l=(0,_isomorphic_1.getCoveringRect)(n.captureSpecs.map(function(e){return e.full})),c=(0,_isomorphic_1.getBottom)(l)>(0,_isomorphic_1.getBottom)(n.safeArea);c&&(t("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:",l,"safeArea:",n.safeArea),(0,operations_1.disablePointerEvents)(),a=!0)}return __assign(__assign({},n),{canHaveCaret:s,pointerEventsDisabled:a,readableSelectorToScrollDescr:i,debugLog:t()})}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var o,r=1,t=arguments.length;r<t;r++){o=arguments[r];for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,o,r,t){t===undefined&&(t=r);var i=Object.getOwnPropertyDescriptor(o,r);i&&("get"in i?o.__esModule:!i.writable&&!i.configurable)||(i={enumerable:!0,get:function(){return o[r]}}),Object.defineProperty(e,t,i)}:function(e,o,r,t){t===undefined&&(t=r),e[t]=o[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,o){Object.defineProperty(e,"default",{enumerable:!0,value:o})}:function(e,o){e["default"]=o}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var o={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&__createBinding(o,e,r);return __setModuleDefault(o,e),o};exports.__esModule=!0,exports.captureAnchorBaseline=exports.cleanupScrolls=exports.cleanupPointerEvents=exports.disablePointerEvents=exports.cleanupFrameAnimations=exports.disableFrameAnimations=exports.prepareViewportScreenshot=exports.scrollFullPage=exports.prepareFullPageScreenshot=exports.getCaptureState=exports.scrollTo=exports.scrollBy=exports.getCurrentPixelRatio=exports.prepareElementsScreenshot=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.native.js")),logger_1=require("../shared/logger"),operations_1=require("./operations"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),scroll_1=require("./utils/scroll"),MIN_ANCHOR_SAMPLE_SIZE=3,MAX_ANCHOR_TRACKED_ELEMENTS=500,ANCHOR_SHIFT_TOLERANCE_CSS=1.5;exports.prepareElementsScreenshot=prepareElementsScreenshot,exports.getCurrentPixelRatio=getCurrentPixelRatio,exports.scrollBy=scrollBy,exports.scrollTo=scrollTo,exports.getCaptureState=getCaptureState,exports.prepareFullPageScreenshot=prepareFullPageScreenshot,exports.scrollFullPage=scrollFullPage,exports.prepareViewportScreenshot=prepareViewportScreenshot,exports.disableFrameAnimations=disableFrameAnimations,exports.cleanupFrameAnimations=cleanupFrameAnimations,exports.disablePointerEvents=disablePointerEvents,exports.cleanupPointerEvents=cleanupPointerEvents,exports.cleanupScrolls=cleanupScrolls,exports.captureAnchorBaseline=captureAnchorBaseline;
5
5
  },{"../shared/logger":15,"./../shared/lib.native.js":14,"./operations":4,"./utils/descriptions":6,"./utils/dom":7,"./utils/pseudo-element-rect":9,"./utils/scroll":10,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],3:[function(require,module,exports){
6
6
  "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,n){n===undefined&&(n=i);var r=Object.getOwnPropertyDescriptor(t,i);r&&("get"in r?t.__esModule:!r.writable&&!r.configurable)||(r={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,r)}:function(e,t,i,n){n===undefined&&(n=i),e[n]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&__createBinding(t,e,i);return __setModuleDefault(t,e),t};exports.__esModule=!0;var implementation=__importStar(require("./implementation")),globalObj="undefined"==typeof window?globalThis:window;globalObj.__geminiCore||(globalObj.__geminiCore={}),globalObj.__geminiCore[__geminiNamespace]=implementation;
7
7
  },{"./implementation":2}],4:[function(require,module,exports){
8
- "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e){return void 0===e&&(e=!0),!1===e?1:window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.native.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
8
+ "use strict";function computeScrollOffset(e){return(0,scroll_1.isRootLikeElement)(e)?window.pageYOffset:e.scrollTop}function computeViewportSize(){var e=window.visualViewport;return e&&e.width>0&&e.height>0?{width:e.width,height:e.height}:{width:window.innerWidth,height:window.innerHeight}}function computeViewportOffset(){return{left:window.pageXOffset,top:window.pageYOffset}}function getProbeAxisCoordinates(e,t){var o=Math.max(1,Math.floor(e));if(t<=1)return[0];for(var r=o-1,n=o/(t-1),i=[],l=0;l<t;l++)i.push(Math.min(r,Math.round(l*n)));return i}function computeElementPositionsProbe(e){void 0===e&&(e=ELEMENT_POSITIONS_PROBE_GRID_SIZE);for(var t=computeViewportSize(),o=getProbeAxisCoordinates(t.width,e),r=getProbeAxisCoordinates(t.height,e),n=[],i=0;i<r.length;i++)for(var l=0;l<o.length;l++){var s=o[l],a=r[i],c=document.elementFromPoint(s,a);c?n.push(__assign(__assign({},(0,_isomorphic_1.fromBcrToRect)(c.getBoundingClientRect())),{elementDescr:(0,descriptions_1.getReadableElementDescriptor)(c)})):n.push(null)}return n}function computeCaptureSpecs(e,t){if(0===e.length)throw new Error("No targets to compute capture area");null===t||void 0===t||t("========== <computeCaptureSpecs> =========="),null===t||void 0===t||t("targets:",e);for(var o=performance.now(),r=[],n=0;n<e.length;n++){var i=(0,pseudo_element_rect_1.parseCaptureTarget)(e[n]),l=lib.queryFirst(i.elementTarget);l&&r.push({element:l,pseudoElement:i.pseudoElement})}for(var s=[],a=0,c=r;a<c.length;a++){var u=c[a],l=u.element,p=u.pseudoElement,d=function(e,o){var r,n=o?(0,element_rect_1.getPseudoElementCaptureRect)(e,o):(0,element_rect_1.getElementCaptureRect)(e,t);if(!n)return null;var i=(0,clip_rect_1.getClipRect)(e,t);return{full:n,visible:null!==(r=(0,_isomorphic_1.getIntersection)(n,i))&&void 0!==r?r:{top:n.top,left:n.left,width:0,height:0},clip:i}}(l,p);d&&s.push(d)}return null===t||void 0===t||t("captureSpecs:",s),null===t||void 0===t||t("computeCaptureSpecs time taken:",(performance.now()-o).toFixed(1)+"ms"),null===t||void 0===t||t("========== </computeCaptureSpecs> =========="),s}function computeIgnoreAreas(e){void 0===e&&(e=[]);for(var t=[],o=0;o<e.length;o++)for(var r=(0,pseudo_element_rect_1.parseCaptureTarget)(e[o]),n=lib.queryAll(r.elementTarget),i=0;i<n.length;i++){var l=r.pseudoElement?(0,element_rect_1.getPseudoElementCaptureRect)(n[i],r.pseudoElement):(0,element_rect_1.getElementCaptureRect)(n[i]);null!==l&&t.push(l)}return t}function computeSafeArea(e,t,o){var r,n;null===o||void 0===o||o("========== <computeSafeArea> ==========");var i=performance.now(),l=computeViewportSize(),s={left:0,top:0,width:l.width,height:l.height},a=e.map(function(e){return lib.queryFirst((0,pseudo_element_rect_1.parseCaptureTarget)(e).elementTarget)}).filter(function(e){return null!==e}),c=computeCaptureSpecs(e).map(function(e){return e.full});if(0===c.length)return{top:s.top,height:s.height};var u,p=null!==t&&void 0!==t?t:document.documentElement;if(p===document.documentElement)null===o||void 0===o||o("setting base safe area to viewport rect"),u=__assign({},s);else{var d=(0,element_rect_1.getBoundingClientContentRect)(p);null===o||void 0===o||o("setting base safe area to visible part of scroll container:",(0,descriptions_1.getReadableElementDescriptor)(p),"contentRect:",d),u=null!==(r=(0,_isomorphic_1.getIntersection)(d,s))&&void 0!==r?r:__assign({},s);var m=(0,element_rect_1.getVerticalRadiusInsets)(p),f=m.top,h=m.bottom;if(f>0||h>0){var g=u.height,_=Math.min(f,g),v=Math.min(h,g-_);null===o||void 0===o||o("applying radius insets to safe area:",{topInset:_,bottomInset:v}),u=__assign(__assign({},u),{top:u.top+_,height:g-_-v})}}var S=__assign({},u);if(a.every(function(e){return"fixed"===getComputedStyle(e).position||null!==(0,dom_1.findFixedPositionedParent)(e)&&null===(0,scroll_1.getScrollParent)(e)}))return null===o||void 0===o||o("all capture elements are fixed or inside non-scrollable fixed subtree, skipping interferences"),{top:S.top,height:S.height};for(var w=(0,_isomorphic_1.getCoveringRect)(c),b=a.map(function(e){return(0,z_index_1.buildZChain)(e)}),E=w.left,C=E+w.width,P=[],x=document.documentElement.querySelectorAll("*"),y=1===a.length?a[0]:null,T=0;T<x.length;T++)!function(e){var t=x[e];if(p===t||lib.contains(t,p))return"continue";if(y&&(t===y||lib.contains(t,y)))return"continue";var r=getComputedStyle(t),i=r.position,l=t.getBoundingClientRect();if(l.width<1||l.height<1||1===l.width&&1===l.height||"hidden"===r.visibility||"none"===r.display||parseFloat(r.opacity)<1e-4||/opacity\(\s*0(?:\.0+)?%?\s*\)/.test(r.filter))return"continue";if(l.right<=E||l.left>=C)return"continue";if(null===(0,_isomorphic_1.getIntersection)((0,_isomorphic_1.fromBcrToRect)(l),s))return"continue";var c=!1,d=!1,m=(0,element_rect_1.domRectToViewportCss)(l),f=(0,dom_1.findFixedPositionedParent)(t),h=null!==f&&(f===p||lib.contains(f,p));if("fixed"===i||f&&!h)c=!0,d=a.some(function(e){return lib.contains(e,t)});else if("absolute"===i){if(a.some(function(e){return lib.contains(e,t)}))return"continue";var g=(0,dom_1.findContainingBlock)(t);p===document.documentElement||lib.contains(p,g)||(c=!0)}else if("sticky"===i){var _=parseFloat(r.top),v=parseFloat(r.bottom),S=null!==(n=(0,scroll_1.getScrollParent)(t))&&void 0!==n?n:document.documentElement;null===o||void 0===o||o("scrollParent:",(0,descriptions_1.getReadableElementDescriptor)(S));var w=S.getBoundingClientRect();if(_+=(0,scroll_1.isRootLikeElement)(S)?0:w.top,d=a.some(function(e){return e===t||lib.contains(e,t)})&&(S===p||(0,scroll_1.isRootLikeElement)(S)&&(0,scroll_1.isRootLikeElement)(p)),isNaN(_)){if(!isNaN(v)){var T=p===document.documentElement,A=T?s.height:u.top+u.height;m={left:l.left,top:A-v-l.height,width:l.width,height:l.height},c=!0}}else m={left:l.left,top:_,width:l.width,height:l.height},c=!0}if(!c)return"continue";var R=(0,z_index_1.buildZChain)(t);if(d||!b.every(function(e){return(0,z_index_1.isChainBehind)(R,e)})){var I=(0,element_rect_1.getExtRect)(r,m),O=I.left;if(O+I.width<=E||O>=C)return"continue";P.push({element:t,rect:I})}}(T);for(var A=u.top,R=u.height,I=S.height,O=0,D=P;O<D.length;O++){var N=D[O];null===o||void 0===o||o("processing interference:",{element:(0,descriptions_1.getReadableElementDescriptor)(N.element),rect:N.rect});var M=N.rect,q=(0,_isomorphic_1.getBottom)({top:A,height:R}),B=(0,_isomorphic_1.getBottom)(M),F=B-A,k=q-M.top,V=A,z=R;F<k?(V=Math.max(B,A),z=Math.max(0,q-V),null===o||void 0===o||o("decided to shrink top")):k&&(z=Math.min(R,M.top-A),null===o||void 0===o||o("decided to shrink bottom")),z<.3*I?null===o||void 0===o||o("decided to skip, because shrinking is too large"):(null===o||void 0===o||o("resulting safe area top:",V,"resulting safe area height:",z),A=V,R=z)}R<.3*I&&(A=S.top,R=S.height),(0,user_agent_1.isSafariMobile)()&&l.height-(A+R)<40&&(R-=40);var L={top:A,height:R};return null===o||void 0===o||o("final safe area:",L),null===o||void 0===o||o("computeSafeArea time taken:",(performance.now()-i).toFixed(1)+"ms"),null===o||void 0===o||o("========== </computeSafeArea> =========="),L}function computeDocumentSize(){var e=(0,dom_1.getMainDocumentElem)();return{width:e.scrollWidth,height:e.scrollHeight}}function computeCanHaveCaret(){var e=document.activeElement;return e instanceof HTMLElement&&(/^(input|textarea)$/i.test(e.tagName)||e.isContentEditable)}function computePixelRatio(e,t){return void 0===e&&(e=!0),!1===e?1:t||(window.devicePixelRatio?window.devicePixelRatio:window.screen.deviceXDPI/window.screen.logicalXDPI||1)}function scrollToCaptureAreaIfNeeded(e,t,o,r,n){var i=computeViewportSize(),l=__assign({top:0,left:0},i),s=computeCaptureSpecs(e);if(!s)return{};var a=r?lib.queryFirst(r):null,c=null!==a&&void 0!==a?a:(0,scroll_1.getCommonScrollParent)(e),u="string"==typeof r?r:(0,descriptions_1.getReadableElementDescriptor)(null!==a&&void 0!==a?a:c),p=(0,_isomorphic_1.getCoveringRect)(s.map(function(e){return e.full})),d=computeSafeArea(e,c,n),m=(0,_isomorphic_1.getIntersection)(p,d),f=(0,_isomorphic_1.getIntersection)(p,l),h=Math.min(p.height,d.height),g=!m||m.height<h/2,_=p.top>=d.top;if(null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: intersection check",{captureArea:p,safeArea:d,viewport:l,hasViewportIntersection:Boolean(f),hasSafeAreaIntersection:Boolean(m),isIntersectionWithSafeAreaTooSmall:g,captureElementFromTop:Boolean(t)}),!t&&!f)throw null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: throwing OutsideOfViewportError because captureElementFromTop is disabled and target is outside viewport"),new outside_of_viewport_1.OutsideOfViewportError;if((!t||!g)&&_)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll",{reason:t?"target already has enough safe area visibility":"captureElementFromTop is disabled"}),{};if(!t&&o)return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: skipping scroll because allowViewportOverflow is true and captureElementFromTop is false"),{};null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling is required",{scrollElement:u,requestedTargetToScroll:null!==r&&void 0!==r?r:null,targetResolved:Boolean(a)});var v=__spreadArray([],(0,scroll_1.getScrollParentsChain)(c),!0);v[v.length-1]!==c&&v.push(c);for(var S=1;S<v.length;S++){var w=computeSafeArea(e,v[S-1]),b=v[S].getBoundingClientRect().top,E=b-w.top;null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: scrolling chain element",{scrollElement:(0,descriptions_1.getReadableElementDescriptor)(v[S-1]),childElement:(0,descriptions_1.getReadableElementDescriptor)(v[S]),scrollDelta:E}),(0,scroll_1.scrollElementBy)(v[S-1],E,n)}var C=(0,_isomorphic_1.getCoveringRect)(computeCaptureSpecs(e).map(function(e){return e.full}));if(!C)return{};var P=computeSafeArea(e,c),x=C.top-P.top;return null===n||void 0===n||n("scrollToCaptureAreaIfNeeded: final alignment scroll",{scrollElement:u,finalScrollDelta:x}),(0,scroll_1.scrollElementBy)(c,x,n),{readableSelectorToScrollDescr:u}}function saveElementScrollPosition(e){var t=(0,dom_1.getScreenshooterNamespaceData)();if(t.savedScrollPositions||(t.savedScrollPositions=[]),!t.savedScrollPositions.some(function(t){return t.element===e})){var o=(0,scroll_1.isRootLikeElement)(e)?{element:e,left:window.pageXOffset,top:window.pageYOffset}:{element:e,left:e.scrollLeft,top:e.scrollTop};t.savedScrollPositions.push(o)}}function saveScrollPositions(e,t){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[];var o=t?lib.queryFirst(t):null,r=null!==o&&void 0!==o?o:(0,scroll_1.getCommonScrollParent)(e),n=__spreadArray([],(0,scroll_1.getScrollParentsChain)(r),!0);n[n.length-1]!==r&&n.push(r);for(var i=0,l=n;i<l.length;i++){saveElementScrollPosition(l[i])}}function prepareFullPageScrollCleanup(){(0,dom_1.getScreenshooterNamespaceData)().savedScrollPositions=[],saveElementScrollPosition(document.documentElement)}function restoreScrollPosition(e){if((0,scroll_1.isRootLikeElement)(e.element))return(0,scroll_1.performScrollFixForSafariIfNeeded)(e.top),void window.scrollTo(e.left,e.top);var t=e.element;if("function"==typeof t.scrollTo)return void t.scrollTo(e.left,e.top);"number"==typeof t.scrollLeft&&(t.scrollLeft=e.left),"number"==typeof t.scrollTop&&(t.scrollTop=e.top)}function cleanupSavedScrolls(){var e;try{var t=(0,dom_1.getScreenshooterNamespaceData)(),o=null!==(e=t.savedScrollPositions)&&void 0!==e?e:[];t.savedScrollPositions=[];for(var r=0,n=o;r<n.length;r++){var i=n[r];try{restoreScrollPosition(i)}catch(l){}}}catch(l){}}function disableAnimations(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," animation-delay: 0ms !important;"," animation-duration: 0ms !important;"," animation-timing-function: step-start !important;"," transition-timing-function: step-start !important;"," scroll-behavior: auto !important;"," transition: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),window.__cleanupAnimation=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e]);delete window.__cleanupAnimation}}function disablePointerEvents(){function e(e){var r=document.createElement("style");r.innerHTML=t+["{"," pointer-events: none !important;","}"].join("\n"),e.appendChild(r),o.push(r)}var t=["","::before","::after"].map(function(e){return"*:not(#testplane-q.testplane-w.testplane-e.testplane-r.testplane-t.testplane-y)"+e}).join(", "),o=[];(0,dom_1.forEachRoot)(function(t){try{e(t)}catch(o){if(!o||!o.message||-1===o.message.indexOf("This document requires 'TrustedHTML' assignment"))throw o;(0,trusted_types_1.createDefaultTrustedTypesPolicy)(),e(t)}}),(0,dom_1.getScreenshooterNamespaceData)().cleanupPointerEventsCb=function(){for(var e=0;e<o.length;e++)o[e].parentNode.removeChild(o[e])}}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++){t=arguments[o];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,o,r){r===undefined&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&("get"in n?t.__esModule:!n.writable&&!n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){r===undefined&&(r=o),e[r]=t[o]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&__createBinding(t,e,o);return __setModuleDefault(t,e),t},__spreadArray=this&&this.__spreadArray||function(e,t,o){if(o||2===arguments.length)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))};exports.__esModule=!0,exports.disablePointerEvents=exports.disableAnimations=exports.cleanupSavedScrolls=exports.prepareFullPageScrollCleanup=exports.saveScrollPositions=exports.scrollToCaptureAreaIfNeeded=exports.computePixelRatio=exports.computeCanHaveCaret=exports.computeDocumentSize=exports.computeSafeArea=exports.computeIgnoreAreas=exports.computeCaptureSpecs=exports.computeElementPositionsProbe=exports.computeViewportOffset=exports.computeViewportSize=exports.computeScrollOffset=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../shared/lib.native.js")),outside_of_viewport_1=require("./errors/outside-of-viewport"),descriptions_1=require("./utils/descriptions"),dom_1=require("./utils/dom"),element_rect_1=require("./utils/element-rect"),clip_rect_1=require("./utils/clip-rect"),scroll_1=require("./utils/scroll"),trusted_types_1=require("./utils/trusted-types"),z_index_1=require("./utils/z-index"),pseudo_element_rect_1=require("./utils/pseudo-element-rect"),user_agent_1=require("./utils/user-agent");exports.computeScrollOffset=computeScrollOffset,exports.computeViewportSize=computeViewportSize,exports.computeViewportOffset=computeViewportOffset;var ELEMENT_POSITIONS_PROBE_GRID_SIZE=5;exports.computeElementPositionsProbe=computeElementPositionsProbe,exports.computeCaptureSpecs=computeCaptureSpecs,exports.computeIgnoreAreas=computeIgnoreAreas,exports.computeSafeArea=computeSafeArea,exports.computeDocumentSize=computeDocumentSize,exports.computeCanHaveCaret=computeCanHaveCaret,exports.computePixelRatio=computePixelRatio,exports.scrollToCaptureAreaIfNeeded=scrollToCaptureAreaIfNeeded,exports.saveScrollPositions=saveScrollPositions,exports.prepareFullPageScrollCleanup=prepareFullPageScrollCleanup,exports.cleanupSavedScrolls=cleanupSavedScrolls,exports.disableAnimations=disableAnimations,exports.disablePointerEvents=disablePointerEvents;
9
9
  },{"./../shared/lib.native.js":14,"./errors/outside-of-viewport":1,"./utils/clip-rect":5,"./utils/descriptions":6,"./utils/dom":7,"./utils/element-rect":8,"./utils/pseudo-element-rect":9,"./utils/scroll":10,"./utils/trusted-types":11,"./utils/user-agent":12,"./utils/z-index":13,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],5:[function(require,module,exports){
10
10
  "use strict";function getViewportRect(){return{top:0,left:0,width:window.innerWidth,height:window.innerHeight}}function hasOverflowClipping(e){return"visible"!==e.overflow||"visible"!==e.overflowX||"visible"!==e.overflowY}function getAbsoluteContainingBlocks(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);){if("absolute"===getComputedStyle(n).position){var i=(0,dom_1.findContainingBlock)(n);t.push({absoluteAncestor:n,containingBlock:i})}n=n.parentElement}return t}function getFixedAncestors(e){for(var t=[],n=e;n&&!(0,scroll_1.isRootLikeElement)(n);)"fixed"===getComputedStyle(n).position&&t.push(n),n=n.parentElement;return t}function escapesOverflowClippingViaAbsoluteContainingBlocks(e,t){return t.some(function(t){var n=t.absoluteAncestor,i=t.containingBlock;return!(n===e||!lib.contains(e,n))&&(i!==e&&lib.contains(i,e))})}function escapesOverflowClippingViaFixedAncestors(e,t){return t.some(function(t){return t!==e&&lib.contains(e,t)})}function getClipRect(e,t){for(var n=getViewportRect(),i=getAbsoluteContainingBlocks(e),o=getFixedAncestors(e),r=n,l=e.parentElement;l&&!(0,scroll_1.isRootLikeElement)(l);){var s=getComputedStyle(l);if("contents"!==s.display){if(hasOverflowClipping(s)){if(escapesOverflowClippingViaAbsoluteContainingBlocks(l,i)||escapesOverflowClippingViaFixedAncestors(l,o)){l=l.parentElement;continue}var c=(0,element_rect_1.getBoundingClientContentRect)(l);null===t||void 0===t||t("intersecting with:",(0,descriptions_1.getReadableElementDescriptor)(l),"contentBox:",c);var u=(0,_isomorphic_1.getIntersection)(r,c);if(!u)return null===t||void 0===t||t("no intersection found for:",(0,descriptions_1.getReadableElementDescriptor)(l)),{top:r.top,left:r.left,width:0,height:0};r=u}l=l.parentElement}else l=l.parentElement}return r}var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,i){i===undefined&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&("get"in o?t.__esModule:!o.writable&&!o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===undefined&&(i=n),e[i]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t};exports.__esModule=!0,exports.getClipRect=void 0;var _isomorphic_1=require("/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js"),lib=__importStar(require("./../../shared/lib.native.js")),element_rect_1=require("./element-rect"),scroll_1=require("./scroll"),dom_1=require("./dom"),descriptions_1=require("./descriptions");exports.getClipRect=getClipRect;
11
11
  },{"./../../shared/lib.native.js":14,"./descriptions":6,"./dom":7,"./element-rect":8,"./scroll":10,"/home/runner/work/testplane/testplane/src/browser/client-scripts/screen-shooter/tsc-out/isomorphic/index.js":19}],6:[function(require,module,exports){
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
34
34
  return result;
35
35
  };
36
36
  exports.__esModule = true;
37
- exports.captureAnchorBaseline = exports.cleanupScrolls = exports.cleanupPointerEvents = exports.disablePointerEvents = exports.cleanupFrameAnimations = exports.disableFrameAnimations = exports.prepareViewportScreenshot = exports.scrollFullPage = exports.prepareFullPageScreenshot = exports.getCaptureState = exports.scrollTo = exports.scrollBy = exports.prepareElementsScreenshot = void 0;
37
+ exports.captureAnchorBaseline = exports.cleanupScrolls = exports.cleanupPointerEvents = exports.disablePointerEvents = exports.cleanupFrameAnimations = exports.disableFrameAnimations = exports.prepareViewportScreenshot = exports.scrollFullPage = exports.prepareFullPageScreenshot = exports.getCaptureState = exports.scrollTo = exports.scrollBy = exports.getCurrentPixelRatio = exports.prepareElementsScreenshot = void 0;
38
38
  var _isomorphic_1 = require("@isomorphic");
39
39
  var lib = __importStar(require("@lib"));
40
40
  var logger_1 = require("../shared/logger");
@@ -144,10 +144,14 @@ function prepareElementsScreenshot(targetsToCapture, opts) {
144
144
  return safeCall(prepareElementsScreenshotUnsafe, targetsToCapture, opts);
145
145
  }
146
146
  exports.prepareElementsScreenshot = prepareElementsScreenshot;
147
- function scrollBy(targetsToCapture, scrollDelta, targetToScroll, debug) {
147
+ function getCurrentPixelRatio() {
148
+ return (0, operations_1.computePixelRatio)();
149
+ }
150
+ exports.getCurrentPixelRatio = getCurrentPixelRatio;
151
+ function scrollBy(targetsToCapture, scrollDelta, targetToScroll, usePixelRatio, pixelRatioOverride, debug) {
148
152
  return safeCall(function () {
149
153
  var logger = (0, logger_1.createDebugLogger)({ debug: debug }, "scrollBy");
150
- var pixelRatio = (0, operations_1.computePixelRatio)();
154
+ var pixelRatio = (0, operations_1.computePixelRatio)(usePixelRatio, pixelRatioOverride);
151
155
  var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
152
156
  var scrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
153
157
  var readableAutoScrollElementDescr = (0, descriptions_1.getReadableElementDescriptor)(scrollElement);
@@ -165,11 +169,11 @@ function scrollBy(targetsToCapture, scrollDelta, targetToScroll, debug) {
165
169
  });
166
170
  }
167
171
  exports.scrollBy = scrollBy;
168
- function scrollTo(targetsToCapture, scrollOffset, targetToScroll, debug) {
172
+ function scrollTo(targetsToCapture, scrollOffset, targetToScroll, usePixelRatio, pixelRatioOverride, debug) {
169
173
  return safeCall(function () {
170
174
  var logger = (0, logger_1.createDebugLogger)({ debug: debug }, "scrollTo");
171
175
  logger("Asked to scroll to with params: targetsToCapture:", targetsToCapture, "scrollOffset:", scrollOffset, "targetToScroll:", targetToScroll);
172
- var pixelRatio = (0, operations_1.computePixelRatio)();
176
+ var pixelRatio = (0, operations_1.computePixelRatio)(usePixelRatio, pixelRatioOverride);
173
177
  var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
174
178
  var scrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
175
179
  var readableAutoScrollElementDescr = (0, descriptions_1.getReadableElementDescriptor)(scrollElement);
@@ -187,42 +191,43 @@ function scrollTo(targetsToCapture, scrollOffset, targetToScroll, debug) {
187
191
  });
188
192
  }
189
193
  exports.scrollTo = scrollTo;
194
+ function getViewportState(usePixelRatio, pixelRatioOverride) {
195
+ var pixelRatio = (0, operations_1.computePixelRatio)(usePixelRatio, pixelRatioOverride);
196
+ return {
197
+ viewportSize: (0, _isomorphic_1.fromCssToDevice)((0, operations_1.computeViewportSize)(), pixelRatio),
198
+ viewportOffset: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.floorCoords)((0, operations_1.computeViewportOffset)()), pixelRatio),
199
+ documentSize: (0, _isomorphic_1.ceilCoords)((0, _isomorphic_1.fromCssToDevice)((0, operations_1.computeDocumentSize)(), pixelRatio)),
200
+ pixelRatio: pixelRatio
201
+ };
202
+ }
203
+ function getCaptureStateUnsafe(targetsToCapture, targetsToIgnore, targetToScroll, usePixelRatio, pixelRatioOverride, logger) {
204
+ var viewportState = getViewportState(usePixelRatio, pixelRatioOverride);
205
+ var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
206
+ var scrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
207
+ var readableAutoScrollElementDescr = (0, descriptions_1.getReadableElementDescriptor)(scrollElement);
208
+ var readableSelectorToScrollDescr = targetToScroll
209
+ ? scrollTarget
210
+ ? "".concat(targetToScroll, " (").concat(readableAutoScrollElementDescr, ")")
211
+ : "".concat(targetToScroll, " (not found, auto-detected ").concat(readableAutoScrollElementDescr, ")")
212
+ : "auto-detected ".concat(readableAutoScrollElementDescr);
213
+ var ignoreAreas = (0, operations_1.computeIgnoreAreas)(targetsToIgnore);
214
+ var safeArea = (0, operations_1.computeSafeArea)(targetsToCapture, scrollElement, logger);
215
+ var captureSpecs = (0, operations_1.computeCaptureSpecs)(targetsToCapture, logger);
216
+ var scrollOffset = (0, operations_1.computeScrollOffset)(scrollElement);
217
+ var anchorShift = computeActualShift();
218
+ logger("scrollOffset:", scrollOffset);
219
+ return __assign(__assign({}, viewportState), { captureSpecs: captureSpecs.map(function (spec) { return ({
220
+ full: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.full), viewportState.pixelRatio),
221
+ clip: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.clip), viewportState.pixelRatio),
222
+ visible: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.visible), viewportState.pixelRatio)
223
+ }); }), ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), viewportState.pixelRatio); }), safeArea: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(safeArea), viewportState.pixelRatio), scrollOffset: (0, _isomorphic_1.fromCssToDeviceNumber)(scrollOffset, viewportState.pixelRatio), anchorShift: anchorShift === null ? null : (0, _isomorphic_1.fromCssToDeviceNumber)(anchorShift, viewportState.pixelRatio), readableSelectorToScrollDescr: readableSelectorToScrollDescr });
224
+ }
190
225
  /** Returns current state: positions of elements to capture, ignore areas, safe area, scroll offset */
191
- function getCaptureState(targetsToCapture, targetsToIgnore, targetToScroll, debug) {
226
+ function getCaptureState(targetsToCapture, targetsToIgnore, targetToScroll, usePixelRatio, pixelRatioOverride, debug) {
192
227
  return safeCall(function () {
193
228
  var logger = (0, logger_1.createDebugLogger)({ debug: debug }, "getCaptureState");
194
- var pixelRatio = (0, operations_1.computePixelRatio)();
195
- var scrollTarget = targetToScroll ? lib.queryFirst(targetToScroll) : null;
196
- var scrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
197
- var readableAutoScrollElementDescr = (0, descriptions_1.getReadableElementDescriptor)(scrollElement);
198
- var readableSelectorToScrollDescr = targetToScroll
199
- ? scrollTarget
200
- ? "".concat(targetToScroll, " (").concat(readableAutoScrollElementDescr, ")")
201
- : "".concat(targetToScroll, " (not found, auto-detected ").concat(readableAutoScrollElementDescr, ")")
202
- : "auto-detected ".concat(readableAutoScrollElementDescr);
203
- var ignoreAreas = (0, operations_1.computeIgnoreAreas)(targetsToIgnore);
204
- var safeArea = (0, operations_1.computeSafeArea)(targetsToCapture, scrollElement, logger);
205
- var captureSpecsAfterCss = (0, operations_1.computeCaptureSpecs)(targetsToCapture, logger);
206
- var captureSpecs = captureSpecsAfterCss.map(function (spec) { return ({
207
- full: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.full), pixelRatio),
208
- clip: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.clip), pixelRatio),
209
- visible: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(spec.visible), pixelRatio)
210
- }); });
211
- var scrollOffset = (0, operations_1.computeScrollOffset)(scrollElement);
212
- var viewportOffset = (0, operations_1.computeViewportOffset)();
213
- var anchorShift = computeActualShift();
214
- var anchorShiftDevice = anchorShift === null ? null : (0, _isomorphic_1.fromCssToDeviceNumber)(anchorShift, pixelRatio);
215
- logger("scrollOffset:", scrollOffset);
216
- return {
217
- captureSpecs: captureSpecs,
218
- ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), pixelRatio); }),
219
- safeArea: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(safeArea), pixelRatio),
220
- scrollOffset: (0, _isomorphic_1.fromCssToDeviceNumber)(scrollOffset, pixelRatio),
221
- viewportOffset: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.floorCoords)(viewportOffset), pixelRatio),
222
- anchorShift: anchorShiftDevice,
223
- readableSelectorToScrollDescr: readableSelectorToScrollDescr,
224
- debugLog: logger()
225
- };
229
+ var state = getCaptureStateUnsafe(targetsToCapture, targetsToIgnore, targetToScroll, usePixelRatio, pixelRatioOverride, logger);
230
+ return __assign(__assign({}, state), { debugLog: logger() });
226
231
  });
227
232
  }
228
233
  exports.getCaptureState = getCaptureState;
@@ -287,29 +292,18 @@ exports.scrollFullPage = scrollFullPage;
287
292
  function prepareViewportScreenshot(opts) {
288
293
  if (opts === void 0) { opts = {}; }
289
294
  return safeCall(function () {
290
- var pixelRatio = (0, operations_1.computePixelRatio)(opts.usePixelRatio);
291
- var viewportSize = (0, operations_1.computeViewportSize)();
292
- var viewportOffset = (0, operations_1.computeViewportOffset)();
293
- var documentSize = (0, operations_1.computeDocumentSize)();
294
- var canHaveCaret = (0, operations_1.computeCanHaveCaret)();
295
295
  if (opts.disableAnimation) {
296
296
  (0, operations_1.disableAnimations)();
297
297
  }
298
+ var viewportState = getViewportState(opts.usePixelRatio, opts.pixelRatioOverride);
299
+ var canHaveCaret = (0, operations_1.computeCanHaveCaret)();
298
300
  var ignoreAreas = (0, operations_1.computeIgnoreAreas)(opts.ignoreSelectors);
299
301
  var pointerEventsDisabled = false;
300
302
  if (opts.disableHover === _isomorphic_1.DisableHoverMode.Always) {
301
303
  (0, operations_1.disablePointerEvents)();
302
304
  pointerEventsDisabled = true;
303
305
  }
304
- return {
305
- viewportSize: (0, _isomorphic_1.fromCssToDevice)(viewportSize, pixelRatio),
306
- viewportOffset: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.floorCoords)(viewportOffset), pixelRatio),
307
- documentSize: (0, _isomorphic_1.ceilCoords)((0, _isomorphic_1.fromCssToDevice)(documentSize, pixelRatio)),
308
- ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), pixelRatio); }),
309
- canHaveCaret: canHaveCaret,
310
- pixelRatio: pixelRatio,
311
- pointerEventsDisabled: pointerEventsDisabled
312
- };
306
+ return __assign(__assign({}, viewportState), { ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), viewportState.pixelRatio); }), canHaveCaret: canHaveCaret, pointerEventsDisabled: pointerEventsDisabled });
313
307
  });
314
308
  }
315
309
  exports.prepareViewportScreenshot = prepareViewportScreenshot;
@@ -380,22 +374,14 @@ function captureAnchorBaseline(targetsToCapture) {
380
374
  }
381
375
  exports.captureAnchorBaseline = captureAnchorBaseline;
382
376
  function prepareElementsScreenshotUnsafe(targetsToCapture, opts) {
377
+ var _a;
383
378
  var logger = (0, logger_1.createDebugLogger)(opts, "prepareElementsScreenshot");
384
379
  (0, operations_1.saveScrollPositions)(targetsToCapture, opts.selectorToScroll);
385
380
  var readableSelectorToScrollDescr = (0, operations_1.scrollToCaptureAreaIfNeeded)(targetsToCapture, opts.captureElementFromTop, opts.allowViewportOverflow, opts.selectorToScroll, logger).readableSelectorToScrollDescr;
386
381
  if (opts.disableAnimation) {
387
382
  (0, operations_1.disableAnimations)();
388
383
  }
389
- var pixelRatio = (0, operations_1.computePixelRatio)(opts.usePixelRatio);
390
- var scrollTarget = opts.selectorToScroll ? lib.queryFirst(opts.selectorToScroll) : null;
391
- var scrollElement = scrollTarget !== null && scrollTarget !== void 0 ? scrollTarget : (0, scroll_1.getCommonScrollParent)(targetsToCapture);
392
- var ignoreAreas = (0, operations_1.computeIgnoreAreas)(opts.ignoreSelectors);
393
- var captureSpecs = (0, operations_1.computeCaptureSpecs)(targetsToCapture, logger);
394
- var viewportSize = (0, operations_1.computeViewportSize)();
395
- var viewportOffset = (0, operations_1.computeViewportOffset)();
396
- var safeArea = (0, operations_1.computeSafeArea)(targetsToCapture, scrollElement, logger);
397
- var scrollOffset = (0, operations_1.computeScrollOffset)(scrollElement);
398
- var documentSize = (0, operations_1.computeDocumentSize)();
384
+ var state = getCaptureStateUnsafe(targetsToCapture, (_a = opts.ignoreSelectors) !== null && _a !== void 0 ? _a : [], opts.selectorToScroll, opts.usePixelRatio, opts.pixelRatioOverride, logger);
399
385
  var canHaveCaret = (0, operations_1.computeCanHaveCaret)();
400
386
  var pointerEventsDisabled = false;
401
387
  if (opts.disableHover === _isomorphic_1.DisableHoverMode.Always) {
@@ -403,31 +389,13 @@ function prepareElementsScreenshotUnsafe(targetsToCapture, opts) {
403
389
  pointerEventsDisabled = true;
404
390
  }
405
391
  else if (opts.disableHover === _isomorphic_1.DisableHoverMode.WhenScrollingNeeded && opts.compositeImage) {
406
- var captureArea = (0, _isomorphic_1.getCoveringRect)(captureSpecs.map(function (s) { return s.full; }));
407
- var needsScrolling = (0, _isomorphic_1.getBottom)(captureArea) > (0, _isomorphic_1.getBottom)(safeArea);
392
+ var captureArea = (0, _isomorphic_1.getCoveringRect)(state.captureSpecs.map(function (s) { return s.full; }));
393
+ var needsScrolling = (0, _isomorphic_1.getBottom)(captureArea) > (0, _isomorphic_1.getBottom)(state.safeArea);
408
394
  if (needsScrolling) {
409
- logger("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:", captureArea, "safeArea:", safeArea);
395
+ logger("adding stylesheet with pointer-events: none on all elements (composite capture needs scrolling). captureArea:", captureArea, "safeArea:", state.safeArea);
410
396
  (0, operations_1.disablePointerEvents)();
411
397
  pointerEventsDisabled = true;
412
398
  }
413
399
  }
414
- logger("scrollOffset:", scrollOffset);
415
- return {
416
- ignoreAreas: ignoreAreas.map(function (area) { return (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(area), pixelRatio); }),
417
- captureSpecs: captureSpecs.map(function (s) { return ({
418
- full: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.full), pixelRatio),
419
- clip: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.clip), pixelRatio),
420
- visible: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(s.visible), pixelRatio)
421
- }); }),
422
- viewportSize: (0, _isomorphic_1.fromCssToDevice)(viewportSize, pixelRatio),
423
- viewportOffset: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.floorCoords)(viewportOffset), pixelRatio),
424
- safeArea: (0, _isomorphic_1.fromCssToDevice)((0, _isomorphic_1.roundCoords)(safeArea), pixelRatio),
425
- documentSize: (0, _isomorphic_1.ceilCoords)((0, _isomorphic_1.fromCssToDevice)(documentSize, pixelRatio)),
426
- canHaveCaret: canHaveCaret,
427
- pixelRatio: pixelRatio,
428
- pointerEventsDisabled: pointerEventsDisabled,
429
- debugLog: logger(),
430
- readableSelectorToScrollDescr: readableSelectorToScrollDescr,
431
- scrollOffset: (0, _isomorphic_1.fromCssToDeviceNumber)(scrollOffset, pixelRatio)
432
- };
400
+ return __assign(__assign({}, state), { canHaveCaret: canHaveCaret, pointerEventsDisabled: pointerEventsDisabled, readableSelectorToScrollDescr: readableSelectorToScrollDescr, debugLog: logger() });
433
401
  }
@@ -406,11 +406,14 @@ function computeCanHaveCaret() {
406
406
  return canHaveCaret;
407
407
  }
408
408
  exports.computeCanHaveCaret = computeCanHaveCaret;
409
- function computePixelRatio(usePixelRatio) {
409
+ function computePixelRatio(usePixelRatio, pixelRatioOverride) {
410
410
  if (usePixelRatio === void 0) { usePixelRatio = true; }
411
411
  if (usePixelRatio === false) {
412
412
  return 1;
413
413
  }
414
+ if (pixelRatioOverride) {
415
+ return pixelRatioOverride;
416
+ }
414
417
  if (window.devicePixelRatio) {
415
418
  return window.devicePixelRatio;
416
419
  }