@atlaskit/react-ufo 3.4.14 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/CHANGELOG.md +22 -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 +27 -20
  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 +8 -5
  45. package/dist/cjs/segment/segment.js +9 -5
  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 -26
  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 +170 -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 -8
  67. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +17 -2
  68. package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +7 -7
  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 +33 -18
  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 +7 -4
  136. package/dist/es2019/segment/segment.js +9 -5
  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 -25
  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 +158 -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 -7
  158. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +17 -2
  159. package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +7 -7
  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 +27 -20
  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 +7 -4
  227. package/dist/esm/segment/segment.js +9 -5
  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 -25
  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 +170 -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 -7
  249. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +17 -2
  250. package/dist/esm/vc/vc-observer/revisions/fy25_01.js +7 -7
  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 +12 -12
@@ -8,6 +8,7 @@ exports.EditorLnvHandler = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _selfMeasurements = require("../../../../self-measurements");
11
12
  var placeholderDataKey = 'editorLnvPlaceholder'; // data-editor-lnv-placeholder
12
13
  var replaceDataKey = 'editorLnvPlaceholderReplace'; // data-editor-lnv-placeholder-replace
13
14
  var EditorLnvHandler = exports.EditorLnvHandler = /*#__PURE__*/function () {
@@ -72,11 +73,27 @@ var EditorLnvHandler = exports.EditorLnvHandler = /*#__PURE__*/function () {
72
73
  return;
73
74
  }
74
75
  });
76
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('EditorLnvHandler constructor');
75
77
  this.intersectionObserver = new IntersectionObserver(function (entries) {
76
78
  return entries.filter(function (entry) {
77
79
  return entry.intersectionRatio > 0;
78
80
  }).forEach(_this.intersectionObserverCallback);
79
81
  });
82
+ this.shouldHandleAddedNode = (0, _selfMeasurements.withProfiling)(this.shouldHandleAddedNode.bind(this), ['vc']);
83
+ this.handleAddedNode = (0, _selfMeasurements.withProfiling)(this.handleAddedNode.bind(this), ['vc']);
84
+ this.clear = (0, _selfMeasurements.withProfiling)(this.clear.bind(this), ['vc']);
85
+ this.handleAddedPlaceholderNode = (0, _selfMeasurements.withProfiling)(this.handleAddedPlaceholderNode.bind(this), ['vc']);
86
+ this.handleAddedReplaceNode = (0, _selfMeasurements.withProfiling)(this.handleAddedReplaceNode.bind(this), ['vc']);
87
+ this.isExistingPlaceholder = (0, _selfMeasurements.withProfiling)(this.isExistingPlaceholder.bind(this), ['vc']);
88
+ this.registerPlaceholder = (0, _selfMeasurements.withProfiling)(this.registerPlaceholder.bind(this), ['vc']);
89
+ this.getSize = (0, _selfMeasurements.withProfiling)(this.getSize.bind(this), ['vc']);
90
+ this.isAddedPlaceholderMatchingSize = (0, _selfMeasurements.withProfiling)(this.isAddedPlaceholderMatchingSize.bind(this), ['vc']);
91
+ this.isAddedReplaceMatchingSize = (0, _selfMeasurements.withProfiling)(this.isAddedReplaceMatchingSize.bind(this), ['vc']);
92
+ this.areRectsSameSize = (0, _selfMeasurements.withProfiling)(this.areRectsSameSize.bind(this), ['vc']);
93
+ this.intersectionObserverCallback = (0, _selfMeasurements.withProfiling)(this.intersectionObserverCallback.bind(this), ['vc']);
94
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
95
+ tags: ['vc']
96
+ });
80
97
  }
81
98
  return (0, _createClass2.default)(EditorLnvHandler, [{
82
99
  key: "shouldHandleAddedNode",
@@ -10,6 +10,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
12
  var _config = require("../../../config");
13
+ var _selfMeasurements = require("../../../self-measurements");
13
14
  var _vcUtils = require("../media-wrapper/vc-utils");
14
15
  var _editorLnv = require("./editor-lnv");
15
16
  var _isNonVisualStyleMutation = _interopRequireDefault(require("./non-visual-styles/is-non-visual-style-mutation"));
@@ -21,7 +22,7 @@ var state = {
21
22
  waitingForFirstRender: 2,
22
23
  ignoring: 3
23
24
  };
24
- function isElementVisible(target) {
25
+ var isElementVisible = (0, _selfMeasurements.withProfiling)(function isElementVisible(target) {
25
26
  if (!target || typeof target.checkVisibility !== 'function') {
26
27
  return true;
27
28
  }
@@ -31,13 +32,13 @@ function isElementVisible(target) {
31
32
  visibilityProperty: true
32
33
  });
33
34
  return isVisible;
34
- }
35
- function isInsideEditorContainer(target) {
35
+ }, ['vc']);
36
+ var isInsideEditorContainer = (0, _selfMeasurements.withProfiling)(function isInsideEditorContainer(target) {
36
37
  if (!target || typeof target.closest !== 'function') {
37
38
  return false;
38
39
  }
39
40
  return Boolean(target.closest('.ProseMirror'));
40
- }
41
+ }, ['vc']);
41
42
  var Observers = exports.Observers = /*#__PURE__*/function () {
42
43
  function Observers(opts) {
43
44
  var _this = this;
@@ -63,20 +64,51 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
63
64
  (0, _defineProperty2.default)(this, "subscribeResults", function (cb) {
64
65
  _this.callbacks.add(cb);
65
66
  });
66
- (0, _defineProperty2.default)(this, "observeElement", function (node, mutation, type, ignoreReason) {
67
+ (0, _defineProperty2.default)(this, "observeElement", function (node, mutation, type, ignoreReason, attributeName) {
67
68
  var _this$intersectionObs;
69
+ var oldValue = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
70
+ var newValue = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
68
71
  (_this$intersectionObs = _this.intersectionObserver) === null || _this$intersectionObs === void 0 || _this$intersectionObs.observe(node);
69
- _this.observedMutations.set(node, {
70
- mutation: mutation,
71
- ignoreReason: ignoreReason,
72
- type: type
73
- });
72
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_log_attr_mutation_values')) {
73
+ _this.observedMutations.set(node, {
74
+ mutation: mutation,
75
+ ignoreReason: ignoreReason,
76
+ type: type,
77
+ attributeName: attributeName,
78
+ oldValue: oldValue,
79
+ newValue: newValue
80
+ });
81
+ } else {
82
+ _this.observedMutations.set(node, {
83
+ mutation: mutation,
84
+ ignoreReason: ignoreReason,
85
+ type: type
86
+ });
87
+ }
74
88
  });
89
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('Observers constructor');
75
90
  this.selectorConfig = _objectSpread(_objectSpread({}, this.selectorConfig), opts.selectorConfig);
76
91
  this.intersectionObserver = this.getIntersectionObserver();
77
92
  this.mutationObserver = this.getMutationObserver();
78
93
  this.ssrPlaceholderHandler = new _ssrPlaceholders.SSRPlaceholderHandlers();
79
94
  this.editorLnvHandler = new _editorLnv.EditorLnvHandler();
95
+ this.isBrowserSupported = (0, _selfMeasurements.withProfiling)(this.isBrowserSupported.bind(this), ['vc']);
96
+ this.observe = (0, _selfMeasurements.withProfiling)(this.observe.bind(this), ['vc']);
97
+ this.disconnect = (0, _selfMeasurements.withProfiling)(this.disconnect.bind(this), ['vc']);
98
+ this.subscribeResults = (0, _selfMeasurements.withProfiling)(this.subscribeResults.bind(this), ['vc']);
99
+ this.getTotalTime = (0, _selfMeasurements.withProfiling)(this.getTotalTime.bind(this), ['vc']);
100
+ this.setReactRootElement = (0, _selfMeasurements.withProfiling)(this.setReactRootElement.bind(this), ['vc']);
101
+ this.setReactRootRenderStart = (0, _selfMeasurements.withProfiling)(this.setReactRootRenderStart.bind(this), ['vc']);
102
+ this.setReactRootRenderStop = (0, _selfMeasurements.withProfiling)(this.setReactRootRenderStop.bind(this), ['vc']);
103
+ this.observeElement = (0, _selfMeasurements.withProfiling)(this.observeElement.bind(this), ['vc']);
104
+ this.getMutationObserver = (0, _selfMeasurements.withProfiling)(this.getMutationObserver.bind(this), ['vc']);
105
+ this.getElementName = (0, _selfMeasurements.withProfiling)(this.getElementName.bind(this), ['vc']);
106
+ this.getIntersectionObserver = (0, _selfMeasurements.withProfiling)(this.getIntersectionObserver.bind(this), ['vc']);
107
+ this.measureStart = (0, _selfMeasurements.withProfiling)(this.measureStart.bind(this), ['vc']);
108
+ this.measureStop = (0, _selfMeasurements.withProfiling)(this.measureStop.bind(this), ['vc']);
109
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
110
+ tags: ['vc']
111
+ });
80
112
  }
81
113
  return (0, _createClass2.default)(Observers, [{
82
114
  key: "isBrowserSupported",
@@ -142,8 +174,12 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
142
174
  key: "getMutationObserver",
143
175
  value: function getMutationObserver() {
144
176
  var _this2 = this;
177
+ if (!this.isBrowserSupported()) {
178
+ return null;
179
+ }
145
180
  var shouldHandleEditorLnvLocal = (0, _config.shouldHandleEditorLnv)();
146
- return this.isBrowserSupported() ? new MutationObserver(function (mutations) {
181
+ return new MutationObserver(function (mutations) {
182
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('mutationObserverCallback');
147
183
  _this2.measureStart();
148
184
  mutations.forEach(function (mutation) {
149
185
  // patching element if timestamp not automatically added
@@ -212,34 +248,48 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
212
248
  });
213
249
  } else if (mutation.type === 'attributes') {
214
250
  if (mutation.target instanceof HTMLElement) {
251
+ var attributeName = mutation.attributeName;
215
252
  if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_ignore_same_value_mutation')) {
216
253
  var _mutation$oldValue;
217
254
  /*
218
- "MutationObserver was explicitly designed to work that way, but I can't now recall the reasoning.
219
- I think it might have been something along the lines that for consistency every setAttribute call should create a record.
220
- Conceptually there is after all a mutation: there is an old value replaced with a new one,
221
- and whether or not they are the same doesn't really matter.
222
- And Custom elements should work the same way as MutationObserver."
223
- https://github.com/whatwg/dom/issues/520#issuecomment-336574796
224
- */
255
+ "MutationObserver was explicitly designed to work that way, but I can't now recall the reasoning.
256
+ I think it might have been something along the lines that for consistency every setAttribute call should create a record.
257
+ Conceptually there is after all a mutation: there is an old value replaced with a new one,
258
+ and whether or not they are the same doesn't really matter.
259
+ And Custom elements should work the same way as MutationObserver."
260
+ https://github.com/whatwg/dom/issues/520#issuecomment-336574796
261
+ */
225
262
  var oldValue = (_mutation$oldValue = mutation.oldValue) !== null && _mutation$oldValue !== void 0 ? _mutation$oldValue : undefined;
226
- var newValue = mutation.attributeName ? mutation.target.getAttribute(mutation.attributeName) : undefined;
263
+ var newValue = attributeName ? mutation.target.getAttribute(attributeName) : undefined;
227
264
  if (oldValue !== newValue) {
228
265
  if ((0, _isNonVisualStyleMutation.default)(mutation)) {
229
266
  ignoreReason = 'non-visual-style';
230
267
  }
231
- _this2.observeElement(mutation.target, mutation, 'attr', ignoreReason);
268
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_fix_ignore_image_mutation')) {
269
+ if ((0, _vcUtils.isContainedWithinMediaWrapper)(mutation.target)) {
270
+ ignoreReason = 'image';
271
+ }
272
+ }
273
+ _this2.observeElement(mutation.target, mutation, 'attr', ignoreReason, attributeName, oldValue, newValue);
232
274
  }
233
275
  } else {
234
276
  if ((0, _isNonVisualStyleMutation.default)(mutation)) {
235
277
  ignoreReason = 'non-visual-style';
236
278
  }
237
- _this2.observeElement(mutation.target, mutation, 'attr', ignoreReason);
279
+ if ((0, _platformFeatureFlags.fg)('platform_ufo_vc_fix_ignore_image_mutation')) {
280
+ if ((0, _vcUtils.isContainedWithinMediaWrapper)(mutation.target)) {
281
+ ignoreReason = 'image';
282
+ }
283
+ }
284
+ _this2.observeElement(mutation.target, mutation, 'attr', ignoreReason, attributeName);
238
285
  }
239
286
  }
240
287
  }
241
288
  });
242
- }) : null;
289
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
290
+ tags: ['vc']
291
+ });
292
+ });
243
293
  }
244
294
  }, {
245
295
  key: "getElementName",
@@ -272,7 +322,11 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
272
322
  key: "getIntersectionObserver",
273
323
  value: function getIntersectionObserver() {
274
324
  var _this3 = this;
275
- return this.isBrowserSupported() ? new IntersectionObserver(function (entries) {
325
+ if (!this.isBrowserSupported()) {
326
+ return null;
327
+ }
328
+ return new IntersectionObserver(function (entries) {
329
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('intersectionObserverCallback');
276
330
  _this3.measureStart();
277
331
  entries.forEach(function (_ref2) {
278
332
  var isIntersecting = _ref2.isIntersecting,
@@ -303,7 +357,7 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
303
357
  } catch (e) {
304
358
  elementName = 'error';
305
359
  }
306
- callback(data.mutation.timestamp || performance.now(), ir, elementName, target, data.type, data.ignoreReason);
360
+ callback(data.mutation.timestamp || performance.now(), ir, elementName, target, data.type, data.ignoreReason, data.attributeName, data.oldValue, data.newValue);
307
361
  });
308
362
  _this3.elementsInView.add(target);
309
363
  } else {
@@ -311,7 +365,10 @@ var Observers = exports.Observers = /*#__PURE__*/function () {
311
365
  }
312
366
  });
313
367
  _this3.measureStop();
314
- }) : null;
368
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
369
+ tags: ['vc']
370
+ });
371
+ });
315
372
  }
316
373
  }, {
317
374
  key: "measureStart",
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = isNonVisualStyleMutation;
7
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
6
+ exports.default = void 0;
7
+ var _selfMeasurements = require("../../../../self-measurements");
8
8
  /**
9
9
  * Checks if a mutation record represents a non-visual style change
10
10
  * @param mutation - The mutation record to check
@@ -15,13 +15,9 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
15
15
  * - The changed attribute is either 'class' or 'style'
16
16
  */
17
17
 
18
- function isNonVisualStyleMutation(_ref) {
18
+ var isNonVisualStyleMutation = (0, _selfMeasurements.withProfiling)(function isNonVisualStyleMutation(_ref) {
19
19
  var target = _ref.target,
20
20
  attributeName = _ref.attributeName;
21
- var isNonVisualStyleMutationEnabled = (0, _platformFeatureFlags.fg)('platform_ufo_non_visual_style_mutation');
22
- if (!isNonVisualStyleMutationEnabled) {
23
- return false;
24
- }
25
21
  if (!(target instanceof Element)) {
26
22
  return false;
27
23
  }
@@ -32,4 +28,5 @@ function isNonVisualStyleMutation(_ref) {
32
28
  return false;
33
29
  }
34
30
  return true;
35
- }
31
+ }, ['vc']);
32
+ var _default = exports.default = isNonVisualStyleMutation;
@@ -8,7 +8,7 @@ exports.SSRPlaceholderHandlers = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
+ var _selfMeasurements = require("../../../../self-measurements");
12
12
  var ANCESTOR_LOOKUP_LIMIT = 10;
13
13
  var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/function () {
14
14
  function SSRPlaceholderHandlers() {
@@ -18,7 +18,7 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
18
18
  (0, _defineProperty2.default)(this, "callbacks", new Map());
19
19
  (0, _defineProperty2.default)(this, "getSizeCallbacks", new Map());
20
20
  (0, _defineProperty2.default)(this, "reactValidateCallbacks", new Map());
21
- (0, _defineProperty2.default)(this, "EQUALITY_THRESHOLD", (0, _platformFeatureFlags.fg)('platform_ufo_ssr_placeholder_round_rect_size_check') ? 1 : 0.1);
21
+ (0, _defineProperty2.default)(this, "EQUALITY_THRESHOLD", 1);
22
22
  (0, _defineProperty2.default)(this, "intersectionObserverCallback", function (_ref) {
23
23
  var _this$intersectionObs;
24
24
  var target = _ref.target,
@@ -70,6 +70,7 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
70
70
  _this.reactValidateCallbacks.delete(staticKey);
71
71
  }
72
72
  });
73
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('SSRPlaceholderHandlers constructor');
73
74
  if (typeof IntersectionObserver === 'function') {
74
75
  // Only instantiate the IntersectionObserver if it's supported
75
76
  this.intersectionObserver = new IntersectionObserver(function (entries) {
@@ -109,6 +110,20 @@ var SSRPlaceholderHandlers = exports.SSRPlaceholderHandlers = /*#__PURE__*/funct
109
110
  delete window.__SSR_PLACEHOLDERS_DIMENSIONS__;
110
111
  }
111
112
  }
113
+ this.clear = (0, _selfMeasurements.withProfiling)(this.clear.bind(this), ['vc']);
114
+ this.isPlaceholder = (0, _selfMeasurements.withProfiling)(this.isPlaceholder.bind(this), ['vc']);
115
+ this.isPlaceholderReplacement = (0, _selfMeasurements.withProfiling)(this.isPlaceholderReplacement.bind(this), ['vc']);
116
+ this.isPlaceholderIgnored = (0, _selfMeasurements.withProfiling)(this.isPlaceholderIgnored.bind(this), ['vc']);
117
+ this.findNearestPlaceholderContainerIfIgnored = (0, _selfMeasurements.withProfiling)(this.findNearestPlaceholderContainerIfIgnored.bind(this), ['vc']);
118
+ this.checkIfExistedAndSizeMatching = (0, _selfMeasurements.withProfiling)(this.checkIfExistedAndSizeMatching.bind(this), ['vc']);
119
+ this.getSize = (0, _selfMeasurements.withProfiling)(this.getSize.bind(this), ['vc']);
120
+ this.validateReactComponentMatchToPlaceholder = (0, _selfMeasurements.withProfiling)(this.validateReactComponentMatchToPlaceholder.bind(this), ['vc']);
121
+ this.hasSameSizePosition = (0, _selfMeasurements.withProfiling)(this.hasSameSizePosition.bind(this), ['vc']);
122
+ this.isDummyRect = (0, _selfMeasurements.withProfiling)(this.isDummyRect.bind(this), ['vc']);
123
+ this.intersectionObserverCallback = (0, _selfMeasurements.withProfiling)(this.intersectionObserverCallback.bind(this), ['vc']);
124
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
125
+ tags: ['vc']
126
+ });
112
127
  }
113
128
  return (0, _createClass2.default)(SSRPlaceholderHandlers, [{
114
129
  key: "clear",
@@ -11,7 +11,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
11
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
+ var _selfMeasurements = require("../../../self-measurements");
15
15
  var _ViewportUpdateClassifier = require("./ViewportUpdateClassifier");
16
16
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
17
17
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
@@ -32,6 +32,7 @@ var FY25_01Classifier = exports.FY25_01Classifier = /*#__PURE__*/function (_View
32
32
  }
33
33
  }]);
34
34
  _this.mergeConfig();
35
+ _this.VCCalculationMethod = (0, _selfMeasurements.withProfiling)(_this.VCCalculationMethod.bind(_this), ['vc']);
35
36
  return _this;
36
37
  }
37
38
  (0, _inherits2.default)(FY25_01Classifier, _ViewportUpdateClassi);
@@ -49,12 +50,11 @@ var FY25_01Classifier = exports.FY25_01Classifier = /*#__PURE__*/function (_View
49
50
  var v = arguments.length > 1 ? arguments[1] : undefined;
50
51
  var VCRatio = v[1] / totalPainted + acc;
51
52
  var time = v[0];
52
- if ((0, _platformFeatureFlags.fg)('platform_ufo_fix_vc_observer_rounding_error')) {
53
- // @todo apply fix to include small changes into accumulator
54
- var preciseCurrRatio = Math.round(100 * (v[1] / totalPainted));
55
- var preciseAccRatio = Math.round(acc * 100);
56
- VCRatio = (preciseCurrRatio + preciseAccRatio) / 100;
57
- }
53
+
54
+ // @todo apply fix to include small changes into accumulator
55
+ var preciseCurrRatio = Math.round(100 * (v[1] / totalPainted));
56
+ var preciseAccRatio = Math.round(acc * 100);
57
+ VCRatio = (preciseCurrRatio + preciseAccRatio) / 100;
58
58
  VCParts.forEach(function (value) {
59
59
  if ((VC[value] === null || VC[value] === undefined) && VCRatio >= value / 100) {
60
60
  var _componentsLog$time;
@@ -12,6 +12,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
12
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+ var _selfMeasurements = require("../../../self-measurements");
15
16
  var _fy25_ = require("./fy25_01");
16
17
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
17
18
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
@@ -32,6 +33,7 @@ var FY25_02Classifier = exports.FY25_02Classifier = /*#__PURE__*/function (_FY25
32
33
  }]);
33
34
  (0, _defineProperty2.default)(_this, "removedFilters", []);
34
35
  _this.mergeConfig();
36
+ _this.filterComponentsLog = (0, _selfMeasurements.withProfiling)(_this.filterComponentsLog.bind(_this), ['vc']);
35
37
  return _this;
36
38
  }
37
39
  (0, _inherits2.default)(FY25_02Classifier, _FY25_01Classifier);
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getRevisions = void 0;
7
7
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
+ var _selfMeasurements = require("../../../self-measurements");
8
9
  var _fy25_ = require("./fy25_01");
9
10
  var _fy25_2 = require("./fy25_02");
10
- var getRevisions = exports.getRevisions = function getRevisions() {
11
+ var getRevisions = exports.getRevisions = (0, _selfMeasurements.withProfiling)(function getRevisions() {
11
12
  if ((0, _platformFeatureFlags.fg)('platform_ufo_disable_ttvc_v1')) {
12
13
  return [{
13
14
  name: 'fy25.02',
@@ -21,4 +22,4 @@ var getRevisions = exports.getRevisions = function getRevisions() {
21
22
  name: 'fy25.02',
22
23
  classifier: _fy25_2.revFY25_02Classifier
23
24
  }];
24
- };
25
+ }, ['vc']);
@@ -8,12 +8,21 @@ exports.default = void 0;
8
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _selfMeasurements = require("../../../self-measurements");
11
12
  var EntriesTimeline = exports.default = /*#__PURE__*/function () {
12
13
  function EntriesTimeline() {
13
14
  (0, _classCallCheck2.default)(this, EntriesTimeline);
14
15
  (0, _defineProperty2.default)(this, "unorderedEntries", []);
15
16
  (0, _defineProperty2.default)(this, "sortedEntriesCache", new Map());
17
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('EntriesTimeline constructor');
16
18
  this.unorderedEntries = [];
19
+ this.push = (0, _selfMeasurements.withProfiling)(this.push.bind(this), ['vc']);
20
+ this.getCacheKey = (0, _selfMeasurements.withProfiling)(this.getCacheKey.bind(this), ['vc']);
21
+ this.getOrderedEntries = (0, _selfMeasurements.withProfiling)(this.getOrderedEntries.bind(this), ['vc']);
22
+ this.clear = (0, _selfMeasurements.withProfiling)(this.clear.bind(this), ['vc']);
23
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
24
+ tags: ['vc']
25
+ });
17
26
  }
18
27
  return (0, _createClass2.default)(EntriesTimeline, [{
19
28
  key: "push",
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = getElementName;
6
+ exports.default = void 0;
7
+ var _selfMeasurements = require("../../self-measurements");
7
8
  var nameCache = new WeakMap();
8
- function getElementName(selectorConfig, element) {
9
+ var getElementName = (0, _selfMeasurements.withProfiling)(function getElementName(selectorConfig, element) {
9
10
  if (!(element instanceof HTMLElement)) {
10
11
  return 'error';
11
12
  }
@@ -71,4 +72,5 @@ function getElementName(selectorConfig, element) {
71
72
  var name = "".concat(tagName).concat(attributes || classList);
72
73
  nameCache.set(element, name);
73
74
  return name;
74
- }
75
+ }, ['vc']);
76
+ var _default = exports.default = getElementName;
@@ -3,27 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = getElementName;
6
+ exports.default = void 0;
7
+ var _selfMeasurements = require("../../self-measurements");
7
8
  var nameCache = new WeakMap();
8
- function getAttributeSelector(element, attributeName) {
9
+ var getAttributeSelector = (0, _selfMeasurements.withProfiling)(function getAttributeSelector(element, attributeName) {
9
10
  var attrValue = element.getAttribute(attributeName);
10
11
  if (!attrValue) {
11
12
  return '';
12
13
  }
13
14
  return "[".concat(attributeName, "=\"").concat(attrValue, "\"]");
14
- }
15
- function isValidSelector(selector) {
15
+ }, ['vc']);
16
+ var isValidSelector = (0, _selfMeasurements.withProfiling)(function isValidSelector(selector) {
16
17
  try {
17
18
  document.querySelector(selector);
18
19
  return true;
19
20
  } catch (err) {
20
21
  return false;
21
22
  }
22
- }
23
- function isSelectorUnique(selector) {
23
+ }, ['vc']);
24
+ var isSelectorUnique = (0, _selfMeasurements.withProfiling)(function isSelectorUnique(selector) {
24
25
  return document.querySelectorAll(selector).length === 1;
25
- }
26
- function getUniqueSelector(selectorConfig, element) {
26
+ }, ['vc']);
27
+ var getUniqueSelector = (0, _selfMeasurements.withProfiling)(function getUniqueSelector(selectorConfig, element) {
27
28
  var currentElement = element;
28
29
  var parts = [];
29
30
  var MAX_DEPTH = 3;
@@ -65,8 +66,8 @@ function getUniqueSelector(selectorConfig, element) {
65
66
  }
66
67
  }
67
68
  return potentialSelector;
68
- }
69
- function getElementName(selectorConfig, element) {
69
+ }, ['vc']);
70
+ var getElementName = (0, _selfMeasurements.withProfiling)(function getElementName(selectorConfig, element) {
70
71
  if (!(element instanceof HTMLElement)) {
71
72
  return 'error';
72
73
  }
@@ -77,4 +78,5 @@ function getElementName(selectorConfig, element) {
77
78
  var uniqueSelector = getUniqueSelector(selectorConfig, element);
78
79
  nameCache.set(element, uniqueSelector);
79
80
  return uniqueSelector;
80
- }
81
+ }, ['vc']);
82
+ var _default = exports.default = getElementName;
@@ -10,6 +10,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+ var _selfMeasurements = require("../../self-measurements");
13
14
  var _entriesTimeline = _interopRequireDefault(require("./entries-timeline"));
14
15
  var _getElementName2 = _interopRequireDefault(require("./get-element-name"));
15
16
  var _fy25_ = _interopRequireDefault(require("./metric-calculator/fy25_03"));
@@ -29,6 +30,7 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
29
30
  (0, _classCallCheck2.default)(this, VCObserverNew);
30
31
  (0, _defineProperty2.default)(this, "viewportObserver", null);
31
32
  (0, _defineProperty2.default)(this, "windowEventObserver", null);
33
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('VCObserverNew constructor');
32
34
  this.entriesTimeline = new _entriesTimeline.default();
33
35
  this.selectorConfig = (_config$selectorConfi = config.selectorConfig) !== null && _config$selectorConfi !== void 0 ? _config$selectorConfi : DEFAULT_SELECTOR_CONFIG;
34
36
  this.viewportObserver = new _viewportObserver.default({
@@ -71,6 +73,13 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
71
73
  });
72
74
  }
73
75
  });
76
+ this.start = (0, _selfMeasurements.withProfiling)(this.start.bind(this), ['vc']);
77
+ this.stop = (0, _selfMeasurements.withProfiling)(this.stop.bind(this), ['vc']);
78
+ this.getVCResult = (0, _selfMeasurements.withProfiling)(this.getVCResult.bind(this), ['vc']);
79
+ this.getElementName = (0, _selfMeasurements.withProfiling)(this.getElementName.bind(this), ['vc']);
80
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
81
+ tags: ['vc']
82
+ });
74
83
  }
75
84
  return (0, _createClass2.default)(VCObserverNew, [{
76
85
  key: "start",
@@ -9,6 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _selfMeasurements = require("../../../self-measurements");
12
13
  var _percentileCalc = _interopRequireDefault(require("./percentile-calc"));
13
14
  var _getViewportHeight = _interopRequireDefault(require("./utils/get-viewport-height"));
14
15
  var _getViewportWidth = _interopRequireDefault(require("./utils/get-viewport-width"));
@@ -16,6 +17,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
16
17
  function AbstractVCCalculatorBase(revisionNo) {
17
18
  (0, _classCallCheck2.default)(this, AbstractVCCalculatorBase);
18
19
  this.revisionNo = revisionNo;
20
+ this.calculate = (0, _selfMeasurements.withProfiling)(this.calculate.bind(this), ['vc']);
19
21
  }
20
22
  return (0, _createClass2.default)(AbstractVCCalculatorBase, [{
21
23
  key: "calculate",
@@ -10,6 +10,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
10
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _selfMeasurements = require("../../../../self-measurements");
13
14
  var _abstractBaseVcCalculator = _interopRequireDefault(require("../abstract-base-vc-calculator"));
14
15
  var _isViewportEntryData = _interopRequireDefault(require("../utils/is-viewport-entry-data"));
15
16
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
@@ -24,8 +25,12 @@ var CONSIDERED_ENTRY_TYPE = ['mutation:child-element', 'mutation:element', 'muta
24
25
  var KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS = exports.KNOWN_ATTRIBUTES_THAT_DOES_NOT_CAUSE_LAYOUT_SHIFTS = ['data-drop-target-for-element', 'draggable'];
25
26
  var VCCalculator_FY25_03 = exports.default = /*#__PURE__*/function (_AbstractVCCalculator) {
26
27
  function VCCalculator_FY25_03() {
28
+ var _this;
27
29
  (0, _classCallCheck2.default)(this, VCCalculator_FY25_03);
28
- return _callSuper(this, VCCalculator_FY25_03, [REVISION_NO]);
30
+ _this = _callSuper(this, VCCalculator_FY25_03, [REVISION_NO]);
31
+ _this.isEntryIncluded = (0, _selfMeasurements.withProfiling)(_this.isEntryIncluded.bind(_this), ['vc']);
32
+ _this.isVCClean = (0, _selfMeasurements.withProfiling)(_this.isVCClean.bind(_this), ['vc']);
33
+ return _this;
29
34
  }
30
35
  (0, _inherits2.default)(VCCalculator_FY25_03, _AbstractVCCalculator);
31
36
  return (0, _createClass2.default)(VCCalculator_FY25_03, [{
@@ -4,13 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.ViewportCanvas = void 0;
8
- exports.calculateDrawnPixelsRaw = calculateDrawnPixelsRaw;
9
- exports.getRGBComponents = getRGBComponents;
7
+ exports.getRGBComponents = exports.calculateDrawnPixelsRaw = exports.ViewportCanvas = void 0;
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _selfMeasurements = require("../../../../../self-measurements");
14
13
  var _taskYield = _interopRequireDefault(require("../../utils/task-yield"));
15
14
  // 24-bit color value
16
15
  /**
@@ -38,6 +37,7 @@ var ViewportCanvas = exports.ViewportCanvas = /*#__PURE__*/function () {
38
37
  function ViewportCanvas(viewport) {
39
38
  var scaleFactor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
40
39
  (0, _classCallCheck2.default)(this, ViewportCanvas);
40
+ var operationTimer = (0, _selfMeasurements.markProfilingStart)('ViewportCanvas constructor');
41
41
  this.scaleFactor = scaleFactor;
42
42
  this.colorCounter = 1;
43
43
  this.colorTimeMap = new Map();
@@ -67,6 +67,14 @@ var ViewportCanvas = exports.ViewportCanvas = /*#__PURE__*/function () {
67
67
  this.ctx = ctx;
68
68
  this.ctx.globalCompositeOperation = 'source-over';
69
69
  this.clear();
70
+ this.getScaledDimensions = (0, _selfMeasurements.withProfiling)(this.getScaledDimensions.bind(this), ['vc']);
71
+ this.clear = (0, _selfMeasurements.withProfiling)(this.clear.bind(this), ['vc']);
72
+ this.generateColor = (0, _selfMeasurements.withProfiling)(this.generateColor.bind(this), ['vc']);
73
+ this.drawRect = (0, _selfMeasurements.withProfiling)(this.drawRect.bind(this), ['vc']);
74
+ this.getPixelCounts = (0, _selfMeasurements.withProfiling)(this.getPixelCounts.bind(this), ['vc']);
75
+ (0, _selfMeasurements.markProfilingEnd)(operationTimer, {
76
+ tags: ['vc']
77
+ });
70
78
  }
71
79
  return (0, _createClass2.default)(ViewportCanvas, [{
72
80
  key: "getScaledDimensions",
@@ -201,7 +209,7 @@ var ViewportCanvas = exports.ViewportCanvas = /*#__PURE__*/function () {
201
209
  * @param number - The input number to be split into RGB components.
202
210
  * @returns The RGB color string in the format "rgb(r, g, b)".
203
211
  */
204
- function getRGBComponents(n) {
212
+ var getRGBComponents = exports.getRGBComponents = (0, _selfMeasurements.withProfiling)(function getRGBComponents(n) {
205
213
  // Ensure the input is within the valid range for a 24-bit color
206
214
  if (n < 0 || n > 0xffffff) {
207
215
  throw new Error('Input number must be between 0 and 16777215 (inclusive).');
@@ -216,7 +224,7 @@ function getRGBComponents(n) {
216
224
  // Extract red component (bits 16-23)
217
225
  var red = n >> 16 & 0xff;
218
226
  return "rgb(".concat(red, ", ").concat(green, ", ").concat(blue, ")");
219
- }
227
+ }, ['vc']);
220
228
 
221
229
  /**
222
230
  * Calculates the number of pixels drawn for each color in the image data.
@@ -225,11 +233,8 @@ function getRGBComponents(n) {
225
233
  * @param arraySize - The amount of timestamps that were drawn in the viewport
226
234
  * @returns A Map containing color to pixel count mappings.
227
235
  */
228
- function calculateDrawnPixelsRaw(_x, _x2, _x3) {
229
- return _calculateDrawnPixelsRaw.apply(this, arguments);
230
- }
231
- function _calculateDrawnPixelsRaw() {
232
- _calculateDrawnPixelsRaw = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageData, scaleFactor, arraySize) {
236
+ var calculateDrawnPixelsRaw = exports.calculateDrawnPixelsRaw = (0, _selfMeasurements.withProfiling)( /*#__PURE__*/function () {
237
+ var _calculateDrawnPixelsRaw = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(imageData, scaleFactor, arraySize) {
233
238
  var data, arr, i, color, colorIndex;
234
239
  return _regenerator.default.wrap(function _callee2$(_context2) {
235
240
  while (1) switch (_context2.prev = _context2.next) {
@@ -271,5 +276,8 @@ function _calculateDrawnPixelsRaw() {
271
276
  }
272
277
  }, _callee2);
273
278
  }));
274
- return _calculateDrawnPixelsRaw.apply(this, arguments);
275
- }
279
+ function calculateDrawnPixelsRaw(_x, _x2, _x3) {
280
+ return _calculateDrawnPixelsRaw.apply(this, arguments);
281
+ }
282
+ return calculateDrawnPixelsRaw;
283
+ }(), ['vc']);