@atlaskit/react-ufo 3.4.14 → 3.5.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 (405) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/additional-payload/utils/cache-hit-ratio/index.js +5 -4
  3. package/dist/cjs/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  4. package/dist/cjs/additional-payload/utils/lighthouse-metrics/index.js +6 -6
  5. package/dist/cjs/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
  6. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  7. package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  8. package/dist/cjs/assets/index.js +17 -14
  9. package/dist/cjs/assets/utils.js +9 -8
  10. package/dist/cjs/bundle-eval-timing/index.js +8 -8
  11. package/dist/cjs/coinflip/index.js +5 -3
  12. package/dist/cjs/common/constants.js +3 -2
  13. package/dist/cjs/common/react-ufo-payload-schema.js +5 -0
  14. package/dist/cjs/config/index.js +30 -42
  15. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +29 -39
  16. package/dist/cjs/create-payload/common/utils/index.js +16 -20
  17. package/dist/cjs/create-payload/index.js +150 -140
  18. package/dist/cjs/create-payload/utils/get-interaction-status.js +5 -3
  19. package/dist/cjs/create-payload/utils/get-page-visibility-up-to-ttai.js +5 -3
  20. package/dist/cjs/create-payload/utils/get-ssr-done-time-value.js +5 -3
  21. package/dist/cjs/create-payload/utils/get-vc-metrics.js +10 -8
  22. package/dist/cjs/create-post-interaction-log-payload/index.js +15 -13
  23. package/dist/cjs/custom-data/index.js +4 -3
  24. package/dist/cjs/custom-mark/index.js +4 -3
  25. package/dist/cjs/custom-spans/index.js +4 -3
  26. package/dist/cjs/custom-timings/index.js +6 -6
  27. package/dist/cjs/experience-trace-id-context/index.js +15 -14
  28. package/dist/cjs/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
  29. package/dist/cjs/feature-flags-accessed/common/utils/index.js +11 -10
  30. package/dist/cjs/feature-flags-accessed/index.js +3 -2
  31. package/dist/cjs/generate-id/index.js +5 -3
  32. package/dist/cjs/global-error-handler/index.js +14 -13
  33. package/dist/cjs/initial-page-load-extra-timing/index.js +6 -6
  34. package/dist/cjs/interaction-metrics/index.js +110 -145
  35. package/dist/cjs/interaction-metrics/post-interaction-log.js +10 -0
  36. package/dist/cjs/interaction-metrics-init/index.js +17 -10
  37. package/dist/cjs/interaction-metrics-init/schedule-idle-callback.js +8 -4
  38. package/dist/cjs/resource-timing/common/utils/config.js +10 -10
  39. package/dist/cjs/resource-timing/common/utils/resource-timing-buffer.js +13 -12
  40. package/dist/cjs/resource-timing/main.js +25 -19
  41. package/dist/cjs/resource-timing/utils.js +4 -3
  42. package/dist/cjs/round-number/index.js +3 -2
  43. package/dist/cjs/route-name/index.js +5 -3
  44. package/dist/cjs/segment/schedule-on-paint.js +6 -3
  45. package/dist/cjs/segment/segment.js +7 -3
  46. package/dist/cjs/self-measurements/index.js +261 -0
  47. package/dist/cjs/set-interaction-error/index.js +4 -3
  48. package/dist/cjs/short-id/index.js +5 -3
  49. package/dist/cjs/ssr/index.js +18 -21
  50. package/dist/cjs/trace-interaction/index.js +7 -5
  51. package/dist/cjs/trace-pageload/index.js +7 -6
  52. package/dist/cjs/trace-press/index.js +5 -3
  53. package/dist/cjs/trace-redirect/index.js +5 -3
  54. package/dist/cjs/trace-transition/index.js +6 -4
  55. package/dist/cjs/trace-transition/utils/generate-span-id/index.js +3 -2
  56. package/dist/cjs/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  57. package/dist/cjs/vc/index.js +17 -6
  58. package/dist/cjs/vc/vc-observer/attachAbortListeners.js +3 -2
  59. package/dist/cjs/vc/vc-observer/getVCRevisionsData.js +41 -22
  60. package/dist/cjs/vc/vc-observer/getViewport.js +6 -6
  61. package/dist/cjs/vc/vc-observer/heatmap/heatmap.js +28 -12
  62. package/dist/cjs/vc/vc-observer/index.js +172 -133
  63. package/dist/cjs/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  64. package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  65. package/dist/cjs/vc/vc-observer/observers/index.js +82 -25
  66. package/dist/cjs/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +5 -3
  67. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  68. package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +2 -0
  69. package/dist/cjs/vc/vc-observer/revisions/fy25_02.js +2 -0
  70. package/dist/cjs/vc/vc-observer/revisions/revisions.js +3 -2
  71. package/dist/cjs/vc/vc-observer-new/entries-timeline/index.js +9 -0
  72. package/dist/cjs/vc/vc-observer-new/get-element-name.js +5 -3
  73. package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +13 -11
  74. package/dist/cjs/vc/vc-observer-new/index.js +9 -0
  75. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  76. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
  77. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +20 -12
  78. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +27 -26
  79. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  80. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +27 -14
  81. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +10 -8
  82. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +50 -40
  83. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +10 -8
  84. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +5 -3
  85. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +5 -3
  86. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +5 -3
  87. package/dist/cjs/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -8
  88. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -7
  89. package/dist/cjs/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  90. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +16 -13
  91. package/dist/cjs/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
  92. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +7 -1
  93. package/dist/es2019/additional-payload/utils/cache-hit-ratio/index.js +6 -5
  94. package/dist/es2019/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  95. package/dist/es2019/additional-payload/utils/lighthouse-metrics/index.js +6 -5
  96. package/dist/es2019/additional-payload/utils/lighthouse-metrics/tbt/index.js +16 -13
  97. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  98. package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  99. package/dist/es2019/assets/index.js +19 -14
  100. package/dist/es2019/assets/utils.js +11 -9
  101. package/dist/es2019/bundle-eval-timing/index.js +7 -6
  102. package/dist/es2019/coinflip/index.js +5 -2
  103. package/dist/es2019/common/constants.js +3 -2
  104. package/dist/es2019/common/react-ufo-payload-schema.js +1 -0
  105. package/dist/es2019/config/index.js +29 -28
  106. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +18 -15
  107. package/dist/es2019/create-payload/common/utils/index.js +15 -14
  108. package/dist/es2019/create-payload/index.js +87 -71
  109. package/dist/es2019/create-payload/utils/get-interaction-status.js +5 -2
  110. package/dist/es2019/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
  111. package/dist/es2019/create-payload/utils/get-ssr-done-time-value.js +4 -2
  112. package/dist/es2019/create-payload/utils/get-vc-metrics.js +4 -2
  113. package/dist/es2019/create-post-interaction-log-payload/index.js +14 -12
  114. package/dist/es2019/custom-data/index.js +3 -2
  115. package/dist/es2019/custom-mark/index.js +3 -2
  116. package/dist/es2019/custom-spans/index.js +3 -2
  117. package/dist/es2019/custom-timings/index.js +5 -4
  118. package/dist/es2019/experience-trace-id-context/index.js +16 -13
  119. package/dist/es2019/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +6 -3
  120. package/dist/es2019/feature-flags-accessed/common/utils/index.js +14 -7
  121. package/dist/es2019/feature-flags-accessed/index.js +3 -2
  122. package/dist/es2019/generate-id/index.js +4 -2
  123. package/dist/es2019/global-error-handler/index.js +15 -12
  124. package/dist/es2019/initial-page-load-extra-timing/index.js +5 -4
  125. package/dist/es2019/interaction-metrics/index.js +109 -108
  126. package/dist/es2019/interaction-metrics/post-interaction-log.js +10 -0
  127. package/dist/es2019/interaction-metrics-init/index.js +17 -10
  128. package/dist/es2019/interaction-metrics-init/schedule-idle-callback.js +7 -3
  129. package/dist/es2019/resource-timing/common/utils/config.js +10 -7
  130. package/dist/es2019/resource-timing/common/utils/resource-timing-buffer.js +14 -11
  131. package/dist/es2019/resource-timing/main.js +31 -17
  132. package/dist/es2019/resource-timing/utils.js +3 -2
  133. package/dist/es2019/round-number/index.js +3 -2
  134. package/dist/es2019/route-name/index.js +4 -2
  135. package/dist/es2019/segment/schedule-on-paint.js +5 -2
  136. package/dist/es2019/segment/segment.js +7 -3
  137. package/dist/es2019/self-measurements/index.js +213 -0
  138. package/dist/es2019/set-interaction-error/index.js +3 -2
  139. package/dist/es2019/short-id/index.js +4 -2
  140. package/dist/es2019/ssr/index.js +21 -16
  141. package/dist/es2019/trace-interaction/index.js +6 -4
  142. package/dist/es2019/trace-pageload/index.js +6 -4
  143. package/dist/es2019/trace-press/index.js +4 -2
  144. package/dist/es2019/trace-redirect/index.js +4 -2
  145. package/dist/es2019/trace-transition/index.js +5 -3
  146. package/dist/es2019/trace-transition/utils/generate-span-id/index.js +4 -1
  147. package/dist/es2019/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  148. package/dist/es2019/vc/index.js +16 -4
  149. package/dist/es2019/vc/vc-observer/attachAbortListeners.js +3 -2
  150. package/dist/es2019/vc/vc-observer/getVCRevisionsData.js +41 -21
  151. package/dist/es2019/vc/vc-observer/getViewport.js +5 -4
  152. package/dist/es2019/vc/vc-observer/heatmap/heatmap.js +28 -10
  153. package/dist/es2019/vc/vc-observer/index.js +160 -116
  154. package/dist/es2019/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  155. package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  156. package/dist/es2019/vc/vc-observer/observers/index.js +80 -25
  157. package/dist/es2019/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
  158. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  159. package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +2 -0
  160. package/dist/es2019/vc/vc-observer/revisions/fy25_02.js +2 -0
  161. package/dist/es2019/vc/vc-observer/revisions/revisions.js +3 -2
  162. package/dist/es2019/vc/vc-observer-new/entries-timeline/index.js +9 -0
  163. package/dist/es2019/vc/vc-observer-new/get-element-name.js +4 -2
  164. package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +12 -10
  165. package/dist/es2019/vc/vc-observer-new/index.js +9 -0
  166. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  167. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
  168. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +14 -4
  169. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +6 -4
  170. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  171. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +21 -8
  172. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +4 -2
  173. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +10 -8
  174. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +4 -2
  175. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
  176. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
  177. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
  178. package/dist/es2019/vc/vc-observer-new/metric-calculator/utils/task-yield.js +5 -2
  179. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -7
  180. package/dist/es2019/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  181. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -13
  182. package/dist/es2019/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -9
  183. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +7 -1
  184. package/dist/esm/additional-payload/utils/cache-hit-ratio/index.js +5 -4
  185. package/dist/esm/additional-payload/utils/lighthouse-metrics/cls/index.js +3 -2
  186. package/dist/esm/additional-payload/utils/lighthouse-metrics/index.js +5 -4
  187. package/dist/esm/additional-payload/utils/lighthouse-metrics/tbt/index.js +3 -2
  188. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/buffer/index.js +3 -0
  189. package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +9 -7
  190. package/dist/esm/assets/index.js +17 -14
  191. package/dist/esm/assets/utils.js +10 -8
  192. package/dist/esm/bundle-eval-timing/index.js +7 -6
  193. package/dist/esm/coinflip/index.js +5 -2
  194. package/dist/esm/common/constants.js +3 -2
  195. package/dist/esm/common/react-ufo-payload-schema.js +1 -0
  196. package/dist/esm/config/index.js +29 -28
  197. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +28 -35
  198. package/dist/esm/create-payload/common/utils/index.js +15 -14
  199. package/dist/esm/create-payload/index.js +149 -139
  200. package/dist/esm/create-payload/utils/get-interaction-status.js +5 -2
  201. package/dist/esm/create-payload/utils/get-page-visibility-up-to-ttai.js +4 -2
  202. package/dist/esm/create-payload/utils/get-ssr-done-time-value.js +4 -2
  203. package/dist/esm/create-payload/utils/get-vc-metrics.js +9 -7
  204. package/dist/esm/create-post-interaction-log-payload/index.js +14 -12
  205. package/dist/esm/custom-data/index.js +3 -2
  206. package/dist/esm/custom-mark/index.js +3 -2
  207. package/dist/esm/custom-spans/index.js +3 -2
  208. package/dist/esm/custom-timings/index.js +5 -4
  209. package/dist/esm/experience-trace-id-context/index.js +15 -14
  210. package/dist/esm/experience-trace-id-context/utils/make-trace-http-request-headers/index.js +3 -2
  211. package/dist/esm/feature-flags-accessed/common/utils/index.js +11 -10
  212. package/dist/esm/feature-flags-accessed/index.js +3 -2
  213. package/dist/esm/generate-id/index.js +4 -2
  214. package/dist/esm/global-error-handler/index.js +14 -13
  215. package/dist/esm/initial-page-load-extra-timing/index.js +5 -4
  216. package/dist/esm/interaction-metrics/index.js +109 -108
  217. package/dist/esm/interaction-metrics/post-interaction-log.js +10 -0
  218. package/dist/esm/interaction-metrics-init/index.js +17 -10
  219. package/dist/esm/interaction-metrics-init/schedule-idle-callback.js +7 -3
  220. package/dist/esm/resource-timing/common/utils/config.js +9 -8
  221. package/dist/esm/resource-timing/common/utils/resource-timing-buffer.js +13 -12
  222. package/dist/esm/resource-timing/main.js +25 -19
  223. package/dist/esm/resource-timing/utils.js +3 -2
  224. package/dist/esm/round-number/index.js +3 -2
  225. package/dist/esm/route-name/index.js +4 -2
  226. package/dist/esm/segment/schedule-on-paint.js +5 -2
  227. package/dist/esm/segment/segment.js +7 -3
  228. package/dist/esm/self-measurements/index.js +246 -0
  229. package/dist/esm/set-interaction-error/index.js +3 -2
  230. package/dist/esm/short-id/index.js +4 -2
  231. package/dist/esm/ssr/index.js +17 -16
  232. package/dist/esm/trace-interaction/index.js +6 -4
  233. package/dist/esm/trace-pageload/index.js +6 -4
  234. package/dist/esm/trace-press/index.js +4 -2
  235. package/dist/esm/trace-redirect/index.js +4 -2
  236. package/dist/esm/trace-transition/index.js +5 -3
  237. package/dist/esm/trace-transition/utils/generate-span-id/index.js +3 -2
  238. package/dist/esm/trace-transition/utils/set-interaction-active-trace/index.js +3 -2
  239. package/dist/esm/vc/index.js +16 -4
  240. package/dist/esm/vc/vc-observer/attachAbortListeners.js +3 -2
  241. package/dist/esm/vc/vc-observer/getVCRevisionsData.js +40 -21
  242. package/dist/esm/vc/vc-observer/getViewport.js +5 -4
  243. package/dist/esm/vc/vc-observer/heatmap/heatmap.js +28 -12
  244. package/dist/esm/vc/vc-observer/index.js +172 -133
  245. package/dist/esm/vc/vc-observer/media-wrapper/vc-utils.js +3 -2
  246. package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +17 -0
  247. package/dist/esm/vc/vc-observer/observers/index.js +82 -25
  248. package/dist/esm/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.js +4 -2
  249. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +16 -0
  250. package/dist/esm/vc/vc-observer/revisions/fy25_01.js +2 -0
  251. package/dist/esm/vc/vc-observer/revisions/fy25_02.js +2 -0
  252. package/dist/esm/vc/vc-observer/revisions/revisions.js +3 -2
  253. package/dist/esm/vc/vc-observer-new/entries-timeline/index.js +9 -0
  254. package/dist/esm/vc/vc-observer-new/get-element-name.js +4 -2
  255. package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +12 -10
  256. package/dist/esm/vc/vc-observer-new/index.js +9 -0
  257. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +2 -0
  258. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
  259. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +19 -9
  260. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +26 -24
  261. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +18 -6
  262. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +26 -13
  263. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +9 -7
  264. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +49 -39
  265. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +9 -7
  266. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.js +4 -2
  267. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.js +4 -2
  268. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.js +4 -2
  269. package/dist/esm/vc/vc-observer-new/metric-calculator/utils/task-yield.js +10 -7
  270. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -7
  271. package/dist/esm/vc/vc-observer-new/viewport-observer/intersection-observer/index.js +15 -12
  272. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +15 -12
  273. package/dist/esm/vc/vc-observer-new/viewport-observer/performance-observer/index.js +11 -7
  274. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +7 -1
  275. package/dist/types/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
  276. package/dist/types/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
  277. package/dist/types/assets/index.d.ts +3 -1
  278. package/dist/types/assets/utils.d.ts +1 -1
  279. package/dist/types/bundle-eval-timing/index.d.ts +2 -2
  280. package/dist/types/coinflip/index.d.ts +2 -1
  281. package/dist/types/common/index.d.ts +2 -1
  282. package/dist/types/common/react-ufo-payload-schema.d.ts +175 -0
  283. package/dist/types/common/vc/types.d.ts +20 -10
  284. package/dist/types/config/index.d.ts +14 -16
  285. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
  286. package/dist/types/create-payload/common/utils/index.d.ts +6 -7
  287. package/dist/types/create-payload/index.d.ts +1250 -1537
  288. package/dist/types/create-payload/utils/get-interaction-status.d.ts +2 -1
  289. package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  290. package/dist/types/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
  291. package/dist/types/create-payload/utils/get-vc-metrics.d.ts +3 -2
  292. package/dist/types/create-post-interaction-log-payload/index.d.ts +3 -2
  293. package/dist/types/custom-data/index.d.ts +1 -1
  294. package/dist/types/custom-mark/index.d.ts +1 -1
  295. package/dist/types/custom-spans/index.d.ts +1 -1
  296. package/dist/types/custom-timings/index.d.ts +2 -2
  297. package/dist/types/generate-id/index.d.ts +2 -1
  298. package/dist/types/hidden-timing/index.d.ts +1 -1
  299. package/dist/types/initial-page-load-extra-timing/index.d.ts +2 -2
  300. package/dist/types/interaction-context/index.d.ts +3 -3
  301. package/dist/types/interaction-metrics/index.d.ts +42 -42
  302. package/dist/types/interaction-metrics/post-interaction-log.d.ts +1 -0
  303. package/dist/types/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
  304. package/dist/types/resource-timing/common/utils/config.d.ts +1 -1
  305. package/dist/types/resource-timing/utils.d.ts +1 -1
  306. package/dist/types/round-number/index.d.ts +1 -1
  307. package/dist/types/route-name/index.d.ts +4 -3
  308. package/dist/types/segment/schedule-on-paint.d.ts +2 -1
  309. package/dist/types/self-measurements/index.d.ts +57 -0
  310. package/dist/types/set-interaction-error/index.d.ts +1 -1
  311. package/dist/types/short-id/index.d.ts +2 -1
  312. package/dist/types/ssr/index.d.ts +5 -5
  313. package/dist/types/trace-interaction/index.d.ts +2 -1
  314. package/dist/types/trace-pageload/index.d.ts +3 -2
  315. package/dist/types/trace-press/index.d.ts +2 -1
  316. package/dist/types/trace-redirect/index.d.ts +2 -1
  317. package/dist/types/trace-transition/index.d.ts +2 -1
  318. package/dist/types/vc/index.d.ts +2 -2
  319. package/dist/types/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
  320. package/dist/types/vc/vc-observer/getViewport.d.ts +2 -2
  321. package/dist/types/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
  322. package/dist/types/vc/vc-observer/index.d.ts +4 -4
  323. package/dist/types/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
  324. package/dist/types/vc/vc-observer/observers/types.d.ts +1 -1
  325. package/dist/types/vc/vc-observer-new/get-element-name.d.ts +2 -1
  326. package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
  327. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
  328. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
  329. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
  330. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
  331. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
  332. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
  333. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
  334. package/dist/types/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
  335. package/dist/types/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
  336. package/dist/types/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
  337. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  338. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
  339. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
  340. package/dist/types-ts4.5/additional-payload/utils/cache-hit-ratio/index.d.ts +1 -1
  341. package/dist/types-ts4.5/additional-payload/utils/lighthouse-metrics/index.d.ts +2 -2
  342. package/dist/types-ts4.5/assets/index.d.ts +3 -1
  343. package/dist/types-ts4.5/assets/utils.d.ts +1 -1
  344. package/dist/types-ts4.5/bundle-eval-timing/index.d.ts +2 -2
  345. package/dist/types-ts4.5/coinflip/index.d.ts +2 -1
  346. package/dist/types-ts4.5/common/index.d.ts +2 -1
  347. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +177 -0
  348. package/dist/types-ts4.5/common/vc/types.d.ts +20 -10
  349. package/dist/types-ts4.5/config/index.d.ts +14 -20
  350. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +4 -3
  351. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +6 -7
  352. package/dist/types-ts4.5/create-payload/index.d.ts +1250 -1537
  353. package/dist/types-ts4.5/create-payload/utils/get-interaction-status.d.ts +2 -1
  354. package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  355. package/dist/types-ts4.5/create-payload/utils/get-ssr-done-time-value.d.ts +2 -1
  356. package/dist/types-ts4.5/create-payload/utils/get-vc-metrics.d.ts +3 -2
  357. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +3 -2
  358. package/dist/types-ts4.5/custom-data/index.d.ts +1 -1
  359. package/dist/types-ts4.5/custom-mark/index.d.ts +1 -1
  360. package/dist/types-ts4.5/custom-spans/index.d.ts +1 -1
  361. package/dist/types-ts4.5/custom-timings/index.d.ts +2 -2
  362. package/dist/types-ts4.5/generate-id/index.d.ts +2 -1
  363. package/dist/types-ts4.5/hidden-timing/index.d.ts +1 -1
  364. package/dist/types-ts4.5/initial-page-load-extra-timing/index.d.ts +2 -2
  365. package/dist/types-ts4.5/interaction-context/index.d.ts +3 -3
  366. package/dist/types-ts4.5/interaction-metrics/index.d.ts +42 -42
  367. package/dist/types-ts4.5/interaction-metrics/post-interaction-log.d.ts +1 -0
  368. package/dist/types-ts4.5/interaction-metrics-init/schedule-idle-callback.d.ts +2 -1
  369. package/dist/types-ts4.5/resource-timing/common/utils/config.d.ts +1 -1
  370. package/dist/types-ts4.5/resource-timing/utils.d.ts +1 -1
  371. package/dist/types-ts4.5/round-number/index.d.ts +1 -1
  372. package/dist/types-ts4.5/route-name/index.d.ts +4 -3
  373. package/dist/types-ts4.5/segment/schedule-on-paint.d.ts +2 -1
  374. package/dist/types-ts4.5/self-measurements/index.d.ts +57 -0
  375. package/dist/types-ts4.5/set-interaction-error/index.d.ts +1 -1
  376. package/dist/types-ts4.5/short-id/index.d.ts +2 -1
  377. package/dist/types-ts4.5/ssr/index.d.ts +5 -5
  378. package/dist/types-ts4.5/trace-interaction/index.d.ts +2 -1
  379. package/dist/types-ts4.5/trace-pageload/index.d.ts +3 -2
  380. package/dist/types-ts4.5/trace-press/index.d.ts +2 -1
  381. package/dist/types-ts4.5/trace-redirect/index.d.ts +2 -1
  382. package/dist/types-ts4.5/trace-transition/index.d.ts +2 -1
  383. package/dist/types-ts4.5/vc/index.d.ts +2 -2
  384. package/dist/types-ts4.5/vc/vc-observer/getVCRevisionsData.d.ts +7 -7
  385. package/dist/types-ts4.5/vc/vc-observer/getViewport.d.ts +2 -2
  386. package/dist/types-ts4.5/vc/vc-observer/heatmap/heatmap.d.ts +7 -4
  387. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +4 -4
  388. package/dist/types-ts4.5/vc/vc-observer/observers/non-visual-styles/is-non-visual-style-mutation.d.ts +5 -4
  389. package/dist/types-ts4.5/vc/vc-observer/observers/types.d.ts +1 -1
  390. package/dist/types-ts4.5/vc/vc-observer-new/get-element-name.d.ts +2 -1
  391. package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +2 -1
  392. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.d.ts +2 -3
  393. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +3 -2
  394. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +3 -2
  395. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -1
  396. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +2 -1
  397. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +3 -2
  398. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-height.d.ts +2 -1
  399. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/get-viewport-width.d.ts +2 -1
  400. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/is-viewport-entry-data.d.ts +2 -1
  401. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/utils/task-yield.d.ts +2 -1
  402. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -1
  403. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -1
  404. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +3 -3
  405. package/package.json +10 -1
@@ -4,13 +4,38 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getVCRevisionsData = getVCRevisionsData;
7
+ exports.getVCRevisionsData = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
10
  var _hiddenTiming = require("../../hidden-timing");
11
+ var _selfMeasurements = require("../../self-measurements");
11
12
  var _revisions = require("./revisions/revisions");
12
13
  var VCParts = ['25', '50', '75', '80', '85', '90', '95', '98', '99'];
13
- function getVCRevisionsData(_ref) {
14
+ var READONLY_EMPTY_ARRAY = Array.from({
15
+ length: 0
16
+ });
17
+
18
+ // Helper function to create vcDetails object to avoid code duplication
19
+ var createVCDetails = (0, _selfMeasurements.withProfiling)(function createVCDetails(calculatedVC, shouldHaveVCmetric) {
20
+ if (!shouldHaveVCmetric || !calculatedVC || !calculatedVC.VC || !calculatedVC.VCBox) {
21
+ return {};
22
+ }
23
+ var details = {};
24
+ var VC = calculatedVC.VC,
25
+ VCBox = calculatedVC.VCBox; // Destructure once to avoid repeated property access
26
+
27
+ for (var _i = 0, _VCParts = VCParts; _i < _VCParts.length; _i++) {
28
+ var key = _VCParts[_i];
29
+ details[key] = {
30
+ t: VC[key],
31
+ e: VCBox[key] || READONLY_EMPTY_ARRAY
32
+ };
33
+ }
34
+ return details;
35
+ }, ['vc']);
36
+
37
+ // Optimized implementation (current one)
38
+ var getVCRevisionsData = exports.getVCRevisionsData = (0, _selfMeasurements.withProfiling)(function getVCRevisionsData(_ref) {
14
39
  var fullPrefix = _ref.fullPrefix,
15
40
  interaction = _ref.interaction,
16
41
  isVCClean = _ref.isVCClean,
@@ -46,35 +71,29 @@ function getVCRevisionsData(_ref) {
46
71
  clean: isVCClean
47
72
  }));
48
73
  }
74
+
75
+ // Calculate these conditions once
49
76
  var pageVisibilityUpToTTAI = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
50
77
  var isVisiblePageVisibleUpToTTAI = pageVisibilityUpToTTAI === 'visible';
51
78
  var shouldHaveVCmetric = isVCClean && !isEventAborted && isVisiblePageVisibleUpToTTAI;
52
- var ttvcV1Revision = {
53
- revision: 'fy25.01',
54
- clean: isVCClean,
55
- 'metric:vc90': shouldHaveVCmetric ? calculatedVC.VC['90'] : null,
56
- vcDetails: shouldHaveVCmetric ? Object.fromEntries(VCParts.map(function (key) {
57
- var _calculatedVC$VCBox$k;
58
- return [key, {
59
- t: calculatedVC.VC[key],
60
- e: (_calculatedVC$VCBox$k = calculatedVC.VCBox[key]) !== null && _calculatedVC$VCBox$k !== void 0 ? _calculatedVC$VCBox$k : []
61
- }];
62
- })) : {}
63
- };
79
+
80
+ // Create the V2 revision object which is always needed
64
81
  var ttvcV2Revision = {
65
82
  revision: 'fy25.02',
66
83
  clean: isVCClean,
67
84
  'metric:vc90': shouldHaveVCmetric ? calculatedVCNext.VC['90'] : null,
68
- vcDetails: shouldHaveVCmetric ? Object.fromEntries(VCParts.map(function (key) {
69
- var _calculatedVCNext$VCB;
70
- return [key, {
71
- t: calculatedVCNext.VC[key],
72
- e: (_calculatedVCNext$VCB = calculatedVCNext.VCBox[key]) !== null && _calculatedVCNext$VCB !== void 0 ? _calculatedVCNext$VCB : []
73
- }];
74
- })) : {}
85
+ vcDetails: createVCDetails(calculatedVCNext, shouldHaveVCmetric)
75
86
  };
76
87
  if ((0, _platformFeatureFlags.fg)('platform_ufo_disable_ttvc_v1')) {
77
88
  return (0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:rev"), [ttvcV2Revision]);
78
89
  }
90
+
91
+ // Only create ttvcV1Revision when we're actually going to use it
92
+ var ttvcV1Revision = {
93
+ revision: 'fy25.01',
94
+ clean: isVCClean,
95
+ 'metric:vc90': shouldHaveVCmetric ? calculatedVC.VC['90'] : null,
96
+ vcDetails: createVCDetails(calculatedVC, shouldHaveVCmetric)
97
+ };
79
98
  return (0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:rev"), [ttvcV1Revision, ttvcV2Revision]);
80
- }
99
+ }, ['vc']);
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getViewportHeight = getViewportHeight;
7
- exports.getViewportWidth = getViewportWidth;
8
- function getViewportWidth() {
6
+ exports.getViewportWidth = exports.getViewportHeight = void 0;
7
+ var _selfMeasurements = require("../../self-measurements");
8
+ var getViewportWidth = exports.getViewportWidth = (0, _selfMeasurements.withProfiling)(function getViewportWidth() {
9
9
  var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
10
10
  var documentWidth;
11
11
  try {
@@ -14,8 +14,8 @@ function getViewportWidth() {
14
14
  documentWidth = 0;
15
15
  }
16
16
  return Math.max(documentWidth, window.innerWidth || 0);
17
- }
18
- function getViewportHeight() {
17
+ }, ['vc']);
18
+ var getViewportHeight = exports.getViewportHeight = (0, _selfMeasurements.withProfiling)(function getViewportHeight() {
19
19
  var document = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.document;
20
20
  var documentHeight;
21
21
  try {
@@ -24,4 +24,4 @@ function getViewportHeight() {
24
24
  documentHeight = 0;
25
25
  }
26
26
  return Math.max(documentHeight, window.innerHeight || 0);
27
- }
27
+ }, ['vc']);
@@ -11,6 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
  var _hiddenTiming = require("../../../hidden-timing");
14
+ var _selfMeasurements = require("../../../self-measurements");
14
15
  var UNUSED_SECTOR = 0;
15
16
  var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function () {
16
17
  function MultiRevisionHeatmap(_ref) {
@@ -49,6 +50,7 @@ var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function
49
50
  t = mappedValues.t;
50
51
  return (r - l) * (b - t) / (_this.arraySize.w * _this.arraySize.h);
51
52
  });
53
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('MultiRevisionHeatmap constructor');
52
54
  this.viewport = viewport;
53
55
  this.revisions = revisions;
54
56
  if (arraySize) {
@@ -64,6 +66,16 @@ var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function
64
66
  _this.componentsLogs[i] = {};
65
67
  _this.vcRatios[i] = {};
66
68
  });
69
+ this.handleUpdate = (0, _selfMeasurements.withProfiling)(this.handleUpdate.bind(this), ['vc']);
70
+ this.getData = (0, _selfMeasurements.withProfiling)(this.getData.bind(this), ['vc']);
71
+ this.getPayloadShapedData = (0, _selfMeasurements.withProfiling)(this.getPayloadShapedData.bind(this), ['vc']);
72
+ this.processData = (0, _selfMeasurements.withProfiling)(this.processData.bind(this), ['vc']);
73
+ this.mapPixelsToHeatmap = (0, _selfMeasurements.withProfiling)(this.mapPixelsToHeatmap.bind(this), ['vc']);
74
+ this.getElementRatio = (0, _selfMeasurements.withProfiling)(this.getElementRatio.bind(this), ['vc']);
75
+ this.applyChangesToHeatMap = (0, _selfMeasurements.withProfiling)(this.applyChangesToHeatMap.bind(this), ['vc']);
76
+ this.getIndex = (0, _selfMeasurements.withProfiling)(this.getIndex.bind(this), ['vc']);
77
+ this.getCleanHeatmap = (0, _selfMeasurements.withProfiling)(this.getCleanHeatmap.bind(this), ['vc']);
78
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer);
67
79
  }
68
80
  return (0, _createClass2.default)(MultiRevisionHeatmap, [{
69
81
  key: "handleUpdate",
@@ -76,7 +88,10 @@ var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function
76
88
  element = _ref3.element,
77
89
  targetName = _ref3.targetName,
78
90
  ignoreReason = _ref3.ignoreReason,
79
- onError = _ref3.onError;
91
+ onError = _ref3.onError,
92
+ attributeName = _ref3.attributeName,
93
+ oldValue = _ref3.oldValue,
94
+ newValue = _ref3.newValue;
80
95
  var mappedValues = this.mapPixelsToHeatmap(intersectionRect.left, intersectionRect.top, intersectionRect.width, intersectionRect.height);
81
96
  var result = this.applyChangesToHeatMap(mappedValues, time, classification);
82
97
  if (result !== true) {
@@ -94,7 +109,10 @@ var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function
94
109
  __debug__element: _this2.devToolsEnabled ? new WeakRef(element) : null,
95
110
  intersectionRect: intersectionRect,
96
111
  targetName: targetName,
97
- ignoreReason: ignoreReason
112
+ ignoreReason: ignoreReason,
113
+ attributeName: attributeName,
114
+ oldValue: oldValue,
115
+ newValue: newValue
98
116
  });
99
117
  });
100
118
  }
@@ -262,14 +280,12 @@ var MultiRevisionHeatmap = exports.MultiRevisionHeatmap = /*#__PURE__*/function
262
280
  value: function getCleanHeatmap() {
263
281
  return new Int32Array(this.arraySize.w * this.arraySize.h);
264
282
  }
265
- }], [{
266
- key: "makeVCReturnObj",
267
- value: function makeVCReturnObj(VCParts) {
268
- var vc = {};
269
- VCParts.forEach(function (v) {
270
- vc[v] = null;
271
- });
272
- return vc;
273
- }
274
283
  }]);
275
- }();
284
+ }();
285
+ (0, _defineProperty2.default)(MultiRevisionHeatmap, "makeVCReturnObj", (0, _selfMeasurements.withProfiling)(function makeVCReturnObj(VCParts) {
286
+ var vc = {};
287
+ VCParts.forEach(function (v) {
288
+ vc[v] = null;
289
+ });
290
+ return vc;
291
+ }, ['vc']));
@@ -14,12 +14,14 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
14
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
16
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
+ var _selfMeasurements = require("../../self-measurements");
17
18
  var _attachAbortListeners = require("./attachAbortListeners");
18
19
  var _getVCRevisionsData = require("./getVCRevisionsData");
19
20
  var _getViewport = require("./getViewport");
20
21
  var _heatmap = require("./heatmap/heatmap");
21
22
  var _observers = require("./observers");
22
23
  var _revisions = require("./revisions/revisions");
24
+ var _VCObserver;
23
25
  var _excluded = ["__debug__element"];
24
26
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
27
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -30,7 +32,7 @@ var abortReason = {
30
32
  error: 'error'
31
33
  };
32
34
  var UNUSED_SECTOR = 0;
33
- function filterComponentsLog(log) {
35
+ var filterComponentsLog = (0, _selfMeasurements.withProfiling)(function filterComponentsLog(log) {
34
36
  return Object.fromEntries(Object.entries(log).map(function (_ref) {
35
37
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
36
38
  timestamp = _ref2[0],
@@ -41,7 +43,7 @@ function filterComponentsLog(log) {
41
43
  return rest;
42
44
  })];
43
45
  }));
44
- }
46
+ }, ['vc']);
45
47
  var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
46
48
  function VCObserver(options) {
47
49
  var _this = this;
@@ -291,7 +293,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
291
293
  case 26:
292
294
  return _context.abrupt("return", _objectSpread(_objectSpread(_objectSpread((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
293
295
  'metrics:vc': VC
294
- }, "".concat(fullPrefix, "vc:state"), true), "".concat(fullPrefix, "vc:clean"), isVCClean), "".concat(fullPrefix, "vc:dom"), VCBox), "".concat(fullPrefix, "vc:updates"), VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:size"), viewport), "".concat(fullPrefix, "vc:time"), Math.round(totalTime + (stopTime - startTime))), "".concat(fullPrefix, "vc:total"), totalPainted), "".concat(fullPrefix, "vc:ratios"), ratios), outOfBoundary), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:next"), vcNext.VC), "".concat(fullPrefix, "vc:next:updates"), vcNext.VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:next:dom"), vcNext.VCBox), "".concat(fullPrefix, "vc:ignored"), _this.getIgnoredElements(componentsLog)), revisionsData), isCalcSpeedIndexEnabled ? speedIndex : {}));
296
+ }, "".concat(fullPrefix, "vc:state"), true), "".concat(fullPrefix, "vc:clean"), isVCClean), "".concat(fullPrefix, "vc:dom"), VCBox), "".concat(fullPrefix, "vc:updates"), (0, _platformFeatureFlags.fg)('platform_ufo_vc_observer_new') ? undefined : VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:size"), viewport), "".concat(fullPrefix, "vc:time"), Math.round(totalTime + (stopTime - startTime))), "".concat(fullPrefix, "vc:total"), totalPainted), "".concat(fullPrefix, "vc:ratios"), ratios), outOfBoundary), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(fullPrefix, "vc:next"), vcNext.VC), "".concat(fullPrefix, "vc:next:updates"), (0, _platformFeatureFlags.fg)('platform_ufo_vc_observer_new') ? undefined : vcNext.VCEntries.rel.slice(0, 50)), "".concat(fullPrefix, "vc:next:dom"), vcNext.VCBox), "".concat(fullPrefix, "vc:ignored"), _this.getIgnoredElements(componentsLog)), revisionsData), isCalcSpeedIndexEnabled ? speedIndex : {}));
295
297
  case 27:
296
298
  case "end":
297
299
  return _context.stop();
@@ -302,9 +304,9 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
302
304
  return _ref4.apply(this, arguments);
303
305
  };
304
306
  }());
305
- (0, _defineProperty2.default)(this, "handleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason) {
307
+ (0, _defineProperty2.default)(this, "handleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason, attributeName, oldValue, newValue) {
306
308
  _this.measureStart();
307
- _this.legacyHandleUpdate(rawTime, intersectionRect, targetName, element, type, ignoreReason);
309
+ _this.legacyHandleUpdate(rawTime, intersectionRect, targetName, element, type, ignoreReason, attributeName, oldValue, newValue);
308
310
  if (!(0, _platformFeatureFlags.fg)('platform_ufo_vc_observer_new')) {
309
311
  _this.onViewportChangeDetected({
310
312
  timestamp: rawTime,
@@ -312,12 +314,15 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
312
314
  targetName: targetName,
313
315
  element: element,
314
316
  type: type,
315
- ignoreReason: ignoreReason
317
+ ignoreReason: ignoreReason,
318
+ attributeName: attributeName,
319
+ oldValue: oldValue,
320
+ newValue: newValue
316
321
  });
317
322
  }
318
323
  _this.measureStop();
319
324
  });
320
- (0, _defineProperty2.default)(this, "legacyHandleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason) {
325
+ (0, _defineProperty2.default)(this, "legacyHandleUpdate", function (rawTime, intersectionRect, targetName, element, type, ignoreReason, attributeName, oldValue, newValue) {
321
326
  if (_this.abortReason.reason === null || _this.abortReason.blocking === false) {
322
327
  var time = Math.round(rawTime - _this.startTime);
323
328
  var mappedValues = _this.mapPixelsToHeatmap(intersectionRect.left, intersectionRect.top, intersectionRect.width, intersectionRect.height);
@@ -334,9 +339,13 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
334
339
  }
335
340
  _this.componentsLog[time].push({
336
341
  __debug__element: _this.devToolsEnabled ? new WeakRef(element) : null,
342
+ type: type,
337
343
  intersectionRect: intersectionRect,
338
344
  targetName: targetName,
339
- ignoreReason: ignoreReason
345
+ ignoreReason: ignoreReason,
346
+ attributeName: attributeName,
347
+ oldValue: oldValue,
348
+ newValue: newValue
340
349
  });
341
350
  }
342
351
  });
@@ -346,7 +355,10 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
346
355
  ignoreReason = _ref9.ignoreReason,
347
356
  timestamp = _ref9.timestamp,
348
357
  targetName = _ref9.targetName,
349
- intersectionRect = _ref9.intersectionRect;
358
+ intersectionRect = _ref9.intersectionRect,
359
+ attributeName = _ref9.attributeName,
360
+ oldValue = _ref9.oldValue,
361
+ newValue = _ref9.newValue;
350
362
  if (_this.multiHeatmap === null) {
351
363
  return;
352
364
  }
@@ -369,7 +381,10 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
369
381
  classification: revisionsClassification,
370
382
  onError: function onError(error) {
371
383
  _this.setAbortReason(abortReason.error, error.time, error.error);
372
- }
384
+ },
385
+ attributeName: attributeName,
386
+ oldValue: oldValue,
387
+ newValue: newValue
373
388
  });
374
389
  });
375
390
  (0, _defineProperty2.default)(this, "mapPixelsToHeatmap", function (left, top, width, height) {
@@ -441,6 +456,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
441
456
  }
442
457
  _this.unbind = unbinds;
443
458
  });
459
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('VCObserver constructor');
444
460
  this.arraySize = options.heatmapSize || 200;
445
461
  this.devToolsEnabled = options.devToolsEnabled || false;
446
462
  this.oldDomUpdatesEnabled = options.oldDomUpdates || false;
@@ -461,6 +477,32 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
461
477
  devToolsEnabled: this.devToolsEnabled
462
478
  });
463
479
  this.isPostInteraction = options.isPostInteraction || false;
480
+ this.start = (0, _selfMeasurements.withProfiling)(this.start.bind(this), ['vc']);
481
+ this.stop = (0, _selfMeasurements.withProfiling)(this.stop.bind(this), ['vc']);
482
+ this.getAbortReasonInfo = (0, _selfMeasurements.withProfiling)(this.getAbortReasonInfo.bind(this), ['vc']); // TODO: confirm correct value of `this`
483
+ this.getVCRawData = (0, _selfMeasurements.withProfiling)(this.getVCRawData.bind(this), ['vc']); // TODO: confirm correct value of `this`
484
+ this.getIgnoredElements = (0, _selfMeasurements.withProfiling)(this.getIgnoredElements.bind(this), ['vc']);
485
+ this.getVCResult = (0, _selfMeasurements.withProfiling)(this.getVCResult.bind(this), ['vc']);
486
+ this.setSSRElement = (0, _selfMeasurements.withProfiling)(this.setSSRElement.bind(this), ['vc']);
487
+ this.setReactRootRenderStart = (0, _selfMeasurements.withProfiling)(this.setReactRootRenderStart.bind(this), ['vc']);
488
+ this.setReactRootRenderStop = (0, _selfMeasurements.withProfiling)(this.setReactRootRenderStop.bind(this), ['vc']);
489
+ this.handleUpdate = (0, _selfMeasurements.withProfiling)(this.handleUpdate.bind(this), ['vc']); // TODO: confirm correct value of `this`
490
+ this.legacyHandleUpdate = (0, _selfMeasurements.withProfiling)(this.legacyHandleUpdate.bind(this), ['vc']); // TODO: confirm correct value of `this`
491
+ this.onViewportChangeDetected = (0, _selfMeasurements.withProfiling)(this.onViewportChangeDetected.bind(this), ['vc']); // TODO: confirm correct value of `this`
492
+ this.setAbortReason = (0, _selfMeasurements.withProfiling)(this.setAbortReason.bind(this), ['vc']);
493
+ this.resetState = (0, _selfMeasurements.withProfiling)(this.resetState.bind(this), ['vc']);
494
+ this.setViewportSize = (0, _selfMeasurements.withProfiling)(this.setViewportSize.bind(this), ['vc']);
495
+ this.mapPixelsToHeatmap = (0, _selfMeasurements.withProfiling)(this.mapPixelsToHeatmap.bind(this), ['vc']); // TODO: confirm correct value of `this`
496
+ this.getElementRatio = (0, _selfMeasurements.withProfiling)(this.getElementRatio.bind(this), ['vc']); // TODO: confirm correct value of `this`
497
+ this.applyChangesToHeatMap = (0, _selfMeasurements.withProfiling)(this.applyChangesToHeatMap.bind(this), ['vc']);
498
+ this.abortReasonCallback = (0, _selfMeasurements.withProfiling)(this.abortReasonCallback.bind(this), ['vc']); // TODO: confirm correct value of `this`
499
+ this.attachAbortListeners = (0, _selfMeasurements.withProfiling)(this.attachAbortListeners.bind(this), ['vc']); // TODO: confirm correct value of `this`
500
+ this.detachAbortListeners = (0, _selfMeasurements.withProfiling)(this.detachAbortListeners.bind(this), ['vc']);
501
+ this.measureStart = (0, _selfMeasurements.withProfiling)(this.measureStart.bind(this), ['vc']);
502
+ this.measureStop = (0, _selfMeasurements.withProfiling)(this.measureStop.bind(this), ['vc']);
503
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
504
+ tags: ['vc']
505
+ });
464
506
  }
465
507
  return (0, _createClass2.default)(VCObserver, [{
466
508
  key: "start",
@@ -610,136 +652,133 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
610
652
  this.totalTime += performance.now() - this._startMeasureTimestamp;
611
653
  this._startMeasureTimestamp = -1;
612
654
  }
613
- }], [{
614
- key: "calculateVC",
615
- value: function calculateVC(_ref15) {
616
- var heatmap = _ref15.heatmap,
617
- _ref15$ssr = _ref15.ssr,
618
- ssr = _ref15$ssr === void 0 ? UNUSED_SECTOR : _ref15$ssr,
619
- componentsLog = _ref15.componentsLog,
620
- viewport = _ref15.viewport;
621
- var lastUpdate = {};
622
- var totalPainted = 0;
623
- if (ssr !== UNUSED_SECTOR) {
624
- var _window$document;
625
- var element = {
626
- __debug__element: new WeakRef((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.body),
627
- intersectionRect: {
628
- top: 0,
629
- left: 0,
630
- right: 0,
631
- bottom: 0,
632
- x: 0,
633
- y: 0,
634
- width: viewport.w,
635
- height: viewport.h,
636
- toJSON: function toJSON() {
637
- return {};
638
- }
639
- },
640
- targetName: 'SSR'
641
- };
642
- if (!componentsLog[ssr]) {
643
- componentsLog[ssr] = [];
655
+ }]);
656
+ }();
657
+ _VCObserver = VCObserver;
658
+ /** config * */
659
+ (0, _defineProperty2.default)(VCObserver, "VCParts", ['25', '50', '75', '80', '85', '90', '95', '98', '99']);
660
+ (0, _defineProperty2.default)(VCObserver, "calculateVC", (0, _selfMeasurements.withProfiling)(function calculateVC(_ref15) {
661
+ var heatmap = _ref15.heatmap,
662
+ _ref15$ssr = _ref15.ssr,
663
+ ssr = _ref15$ssr === void 0 ? UNUSED_SECTOR : _ref15$ssr,
664
+ componentsLog = _ref15.componentsLog,
665
+ viewport = _ref15.viewport;
666
+ var lastUpdate = {};
667
+ var totalPainted = 0;
668
+ if (ssr !== UNUSED_SECTOR) {
669
+ var _window$document;
670
+ var element = {
671
+ __debug__element: new WeakRef((_window$document = window.document) === null || _window$document === void 0 ? void 0 : _window$document.body),
672
+ intersectionRect: {
673
+ top: 0,
674
+ left: 0,
675
+ right: 0,
676
+ bottom: 0,
677
+ x: 0,
678
+ y: 0,
679
+ width: viewport.w,
680
+ height: viewport.h,
681
+ toJSON: function toJSON() {
682
+ return {};
644
683
  }
645
- componentsLog[ssr].push(element);
684
+ },
685
+ targetName: 'SSR'
686
+ };
687
+ if (!componentsLog[ssr]) {
688
+ componentsLog[ssr] = [];
689
+ }
690
+ componentsLog[ssr].push(element);
691
+ }
692
+ heatmap.forEach(function (line) {
693
+ line.forEach(function (entry) {
694
+ var rounded = Math.floor(entry === UNUSED_SECTOR && ssr !== UNUSED_SECTOR ? ssr : entry);
695
+ totalPainted += rounded !== UNUSED_SECTOR ? 1 : 0;
696
+ if (rounded !== UNUSED_SECTOR) {
697
+ lastUpdate[rounded] = lastUpdate[rounded] ? lastUpdate[rounded] + 1 : 1;
646
698
  }
647
- heatmap.forEach(function (line) {
648
- line.forEach(function (entry) {
649
- var rounded = Math.floor(entry === UNUSED_SECTOR && ssr !== UNUSED_SECTOR ? ssr : entry);
650
- totalPainted += rounded !== UNUSED_SECTOR ? 1 : 0;
651
- if (rounded !== UNUSED_SECTOR) {
652
- lastUpdate[rounded] = lastUpdate[rounded] ? lastUpdate[rounded] + 1 : 1;
653
- }
654
- });
655
- });
656
- var entries = Object.entries(lastUpdate).map(function (a) {
657
- return [parseInt(a[0], 10), a[1]];
658
- }).sort(function (a, b) {
659
- return a[0] > b[0] ? 1 : -1;
660
- });
661
- var VC = VCObserver.makeVCReturnObj();
662
- var VCBox = VCObserver.makeVCReturnObj();
699
+ });
700
+ });
701
+ var entries = Object.entries(lastUpdate).map(function (a) {
702
+ return [parseInt(a[0], 10), a[1]];
703
+ }).sort(function (a, b) {
704
+ return a[0] > b[0] ? 1 : -1;
705
+ });
706
+ var VC = _VCObserver.makeVCReturnObj();
707
+ var VCBox = _VCObserver.makeVCReturnObj();
663
708
 
664
- // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
665
- var isCalcSpeedIndexEnabled = (0, _platformFeatureFlags.fg)('ufo-calc-speed-index');
666
- var isFilterIgnoredItemsEnabled = (0, _platformFeatureFlags.fg)('platform_ufo_vc_filter_ignored_items');
667
- entries.reduce(function () {
668
- var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
669
- var v = arguments.length > 1 ? arguments[1] : undefined;
670
- var currRatio = v[1] / totalPainted;
671
- var VCRatio = currRatio + acc;
672
- if ((0, _platformFeatureFlags.fg)('platform_ufo_fix_vc_observer_rounding_error')) {
673
- var preciseCurrRatio = Math.round(100 * (v[1] / totalPainted));
674
- var preciseAccRatio = Math.round(acc * 100);
675
- VCRatio = (preciseCurrRatio + preciseAccRatio) / 100;
676
- }
677
- var time = v[0];
678
- VCObserver.VCParts.forEach(function (key) {
679
- var value = parseInt(key, 10);
680
- if ((VC[key] === null || VC[key] === undefined) && VCRatio >= value / 100) {
681
- var _componentsLog$time, _componentsLog$time2;
682
- VC[key] = time;
683
- VCBox[key] = isFilterIgnoredItemsEnabled ? (0, _toConsumableArray2.default)(new Set((_componentsLog$time = componentsLog[time]) === null || _componentsLog$time === void 0 ? void 0 : _componentsLog$time.filter(function (v) {
684
- return !v.ignoreReason;
685
- }).map(function (v) {
686
- return v.targetName;
687
- }))) : (0, _toConsumableArray2.default)(new Set((_componentsLog$time2 = componentsLog[time]) === null || _componentsLog$time2 === void 0 ? void 0 : _componentsLog$time2.map(function (v) {
688
- return v.targetName;
689
- })));
690
- }
691
- });
692
- return VCRatio;
693
- }, 0);
694
- var VCEntries = entries.reduce(function (acc, _ref16, i) {
695
- var _acc$abs, _componentsLog$timest, _componentsLog$timest2, _acc$rel$vc, _acc$rel;
696
- var _ref17 = (0, _slicedToArray2.default)(_ref16, 2),
697
- timestamp = _ref17[0],
698
- entryPainted = _ref17[1];
699
- var currentlyPainted = entryPainted + (((_acc$abs = acc.abs[i - 1]) === null || _acc$abs === void 0 ? void 0 : _acc$abs[1]) || 0);
700
- var currentlyPaintedRatio = Math.round(currentlyPainted / totalPainted * 1000) / 10;
701
- var logEntry = isFilterIgnoredItemsEnabled ? (0, _toConsumableArray2.default)(new Set((_componentsLog$timest = componentsLog[timestamp]) === null || _componentsLog$timest === void 0 ? void 0 : _componentsLog$timest.filter(function (v) {
709
+ // eslint-disable-next-line @atlaskit/platform/ensure-feature-flag-prefix
710
+ var isCalcSpeedIndexEnabled = (0, _platformFeatureFlags.fg)('ufo-calc-speed-index');
711
+ var isFilterIgnoredItemsEnabled = (0, _platformFeatureFlags.fg)('platform_ufo_vc_filter_ignored_items');
712
+ entries.reduce(function () {
713
+ var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
714
+ var v = arguments.length > 1 ? arguments[1] : undefined;
715
+ var currRatio = v[1] / totalPainted;
716
+ var VCRatio = currRatio + acc;
717
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_fix_vc_observer_rounding_error')) {
718
+ var preciseCurrRatio = Math.round(100 * (v[1] / totalPainted));
719
+ var preciseAccRatio = Math.round(acc * 100);
720
+ VCRatio = (preciseCurrRatio + preciseAccRatio) / 100;
721
+ }
722
+ var time = v[0];
723
+ _VCObserver.VCParts.forEach(function (key) {
724
+ var value = parseInt(key, 10);
725
+ if ((VC[key] === null || VC[key] === undefined) && VCRatio >= value / 100) {
726
+ var _componentsLog$time, _componentsLog$time2;
727
+ VC[key] = time;
728
+ VCBox[key] = isFilterIgnoredItemsEnabled ? (0, _toConsumableArray2.default)(new Set((_componentsLog$time = componentsLog[time]) === null || _componentsLog$time === void 0 ? void 0 : _componentsLog$time.filter(function (v) {
702
729
  return !v.ignoreReason;
703
730
  }).map(function (v) {
704
731
  return v.targetName;
705
- }))) : (0, _toConsumableArray2.default)(new Set((_componentsLog$timest2 = componentsLog[timestamp]) === null || _componentsLog$timest2 === void 0 ? void 0 : _componentsLog$timest2.map(function (v) {
732
+ }))) : (0, _toConsumableArray2.default)(new Set((_componentsLog$time2 = componentsLog[time]) === null || _componentsLog$time2 === void 0 ? void 0 : _componentsLog$time2.map(function (v) {
706
733
  return v.targetName;
707
734
  })));
708
- var ratioDelta = (currentlyPaintedRatio - ((_acc$rel$vc = (_acc$rel = acc.rel[i - 1]) === null || _acc$rel === void 0 ? void 0 : _acc$rel.vc) !== null && _acc$rel$vc !== void 0 ? _acc$rel$vc : 0)) / 100;
709
- if (isCalcSpeedIndexEnabled) {
710
- var speedIndex = timestamp * ratioDelta;
711
- acc.speedIndex += speedIndex;
712
- }
713
- acc.abs.push([timestamp, currentlyPainted]);
714
- acc.rel.push({
715
- time: timestamp,
716
- vc: currentlyPaintedRatio,
717
- elements: logEntry
718
- });
719
- return acc;
720
- }, {
721
- abs: [],
722
- rel: [],
723
- speedIndex: 0
724
- });
725
- VCEntries.speedIndex = Math.round(VCEntries.speedIndex);
726
- return {
727
- VC: VC,
728
- VCBox: VCBox,
729
- VCEntries: VCEntries,
730
- totalPainted: totalPainted
731
- };
735
+ }
736
+ });
737
+ return VCRatio;
738
+ }, 0);
739
+ var VCEntries = entries.reduce(function (acc, _ref16, i) {
740
+ var _acc$abs, _componentsLog$timest, _componentsLog$timest2, _acc$rel$vc, _acc$rel;
741
+ var _ref17 = (0, _slicedToArray2.default)(_ref16, 2),
742
+ timestamp = _ref17[0],
743
+ entryPainted = _ref17[1];
744
+ var currentlyPainted = entryPainted + (((_acc$abs = acc.abs[i - 1]) === null || _acc$abs === void 0 ? void 0 : _acc$abs[1]) || 0);
745
+ var currentlyPaintedRatio = Math.round(currentlyPainted / totalPainted * 1000) / 10;
746
+ var logEntry = isFilterIgnoredItemsEnabled ? (0, _toConsumableArray2.default)(new Set((_componentsLog$timest = componentsLog[timestamp]) === null || _componentsLog$timest === void 0 ? void 0 : _componentsLog$timest.filter(function (v) {
747
+ return !v.ignoreReason;
748
+ }).map(function (v) {
749
+ return v.targetName;
750
+ }))) : (0, _toConsumableArray2.default)(new Set((_componentsLog$timest2 = componentsLog[timestamp]) === null || _componentsLog$timest2 === void 0 ? void 0 : _componentsLog$timest2.map(function (v) {
751
+ return v.targetName;
752
+ })));
753
+ var ratioDelta = (currentlyPaintedRatio - ((_acc$rel$vc = (_acc$rel = acc.rel[i - 1]) === null || _acc$rel === void 0 ? void 0 : _acc$rel.vc) !== null && _acc$rel$vc !== void 0 ? _acc$rel$vc : 0)) / 100;
754
+ if (isCalcSpeedIndexEnabled) {
755
+ var speedIndex = timestamp * ratioDelta;
756
+ acc.speedIndex += speedIndex;
732
757
  }
758
+ acc.abs.push([timestamp, currentlyPainted]);
759
+ acc.rel.push({
760
+ time: timestamp,
761
+ vc: currentlyPaintedRatio,
762
+ elements: logEntry
763
+ });
764
+ return acc;
733
765
  }, {
734
- key: "makeVCReturnObj",
735
- value: function makeVCReturnObj() {
736
- var vc = {};
737
- VCObserver.VCParts.forEach(function (v) {
738
- vc[v] = null;
739
- });
740
- return vc;
741
- }
742
- }]);
743
- }();
744
- /** config * */
745
- (0, _defineProperty2.default)(VCObserver, "VCParts", ['25', '50', '75', '80', '85', '90', '95', '98', '99']);
766
+ abs: [],
767
+ rel: [],
768
+ speedIndex: 0
769
+ });
770
+ VCEntries.speedIndex = Math.round(VCEntries.speedIndex);
771
+ return {
772
+ VC: VC,
773
+ VCBox: VCBox,
774
+ VCEntries: VCEntries,
775
+ totalPainted: totalPainted
776
+ };
777
+ }, ['vc']));
778
+ (0, _defineProperty2.default)(VCObserver, "makeVCReturnObj", (0, _selfMeasurements.withProfiling)(function makeVCReturnObj() {
779
+ var vc = {};
780
+ _VCObserver.VCParts.forEach(function (v) {
781
+ vc[v] = null;
782
+ });
783
+ return vc;
784
+ }, ['vc']));
@@ -4,8 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isContainedWithinMediaWrapper = void 0;
7
+ var _selfMeasurements = require("../../../self-measurements");
7
8
  var _index = require("./index");
8
- var isContainedWithinMediaWrapper = exports.isContainedWithinMediaWrapper = function isContainedWithinMediaWrapper(node) {
9
+ var isContainedWithinMediaWrapper = exports.isContainedWithinMediaWrapper = (0, _selfMeasurements.withProfiling)(function isContainedWithinMediaWrapper(node) {
9
10
  while (node) {
10
11
  if (node instanceof Element && node.hasAttribute(_index.MEDIA_WRAPPER_TAG)) {
11
12
  return true;
@@ -13,4 +14,4 @@ var isContainedWithinMediaWrapper = exports.isContainedWithinMediaWrapper = func
13
14
  node = node.parentNode;
14
15
  }
15
16
  return false;
16
- };
17
+ });