@atlaskit/react-ufo 3.12.3 → 3.12.5

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 (98) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +2 -1
  3. package/dist/cjs/create-payload/utils/get-vc-metrics.js +2 -1
  4. package/dist/cjs/create-post-interaction-log-payload/index.js +6 -7
  5. package/dist/cjs/interaction-metrics/post-interaction-log.js +3 -11
  6. package/dist/cjs/vc/index.js +4 -2
  7. package/dist/cjs/vc/vc-observer/getVCRevisionDebugDetails.js +41 -0
  8. package/dist/cjs/vc/vc-observer/index.js +59 -33
  9. package/dist/cjs/vc/vc-observer-new/index.js +13 -7
  10. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
  11. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  12. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -4
  13. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +108 -0
  14. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +16 -57
  15. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -5
  16. package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
  17. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -1
  18. package/dist/es2019/create-payload/utils/get-vc-metrics.js +1 -0
  19. package/dist/es2019/create-post-interaction-log-payload/index.js +6 -7
  20. package/dist/es2019/interaction-metrics/post-interaction-log.js +4 -13
  21. package/dist/es2019/vc/index.js +4 -2
  22. package/dist/es2019/vc/vc-observer/getVCRevisionDebugDetails.js +32 -0
  23. package/dist/es2019/vc/vc-observer/index.js +30 -1
  24. package/dist/es2019/vc/vc-observer-new/index.js +12 -6
  25. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +115 -17
  26. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  27. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +44 -1
  28. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +75 -0
  29. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -20
  30. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -5
  31. package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
  32. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +2 -1
  33. package/dist/esm/create-payload/utils/get-vc-metrics.js +2 -1
  34. package/dist/esm/create-post-interaction-log-payload/index.js +6 -7
  35. package/dist/esm/interaction-metrics/post-interaction-log.js +3 -11
  36. package/dist/esm/vc/index.js +4 -2
  37. package/dist/esm/vc/vc-observer/getVCRevisionDebugDetails.js +35 -0
  38. package/dist/esm/vc/vc-observer/index.js +59 -33
  39. package/dist/esm/vc/vc-observer-new/index.js +13 -7
  40. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
  41. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
  42. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -5
  43. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +106 -0
  44. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -55
  45. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -5
  46. package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
  47. package/dist/types/vc/types.d.ts +1 -0
  48. package/dist/types/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
  49. package/dist/types/vc/vc-observer/index.d.ts +1 -1
  50. package/dist/types/vc/vc-observer-new/index.d.ts +2 -0
  51. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
  52. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
  53. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
  54. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
  55. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
  56. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  57. package/dist/types/vc/vc-observer-new/types.d.ts +5 -1
  58. package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
  59. package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
  60. package/dist/types-ts4.5/vc/types.d.ts +1 -0
  61. package/dist/types-ts4.5/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
  62. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -1
  63. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +2 -0
  64. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
  65. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
  66. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
  67. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
  68. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
  69. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  70. package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +5 -1
  71. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
  72. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
  73. package/package.json +4 -4
  74. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -367
  75. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -398
  76. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -5
  77. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -152
  78. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -108
  79. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -248
  80. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -263
  81. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
  82. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -99
  83. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -60
  84. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -361
  85. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -391
  86. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
  87. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -145
  88. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -101
  89. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
  90. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
  91. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
  92. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
  93. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
  94. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
  95. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
  96. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
  97. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
  98. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
@@ -108,7 +108,9 @@ export default class ViewportObserver {
108
108
  });
109
109
  _defineProperty(this, "handleAttributeMutation", ({
110
110
  target,
111
- attributeName
111
+ attributeName,
112
+ oldValue,
113
+ newValue
112
114
  }) => {
113
115
  var _this$intersectionObs4;
114
116
  (_this$intersectionObs4 = this.intersectionObserver) === null || _this$intersectionObs4 === void 0 ? void 0 : _this$intersectionObs4.watchAndTag(target, ({
@@ -119,7 +121,9 @@ export default class ViewportObserver {
119
121
  return {
120
122
  type: 'mutation:media',
121
123
  mutationData: {
122
- attributeName
124
+ attributeName,
125
+ oldValue,
126
+ newValue
123
127
  }
124
128
  };
125
129
  }
@@ -131,7 +135,9 @@ export default class ViewportObserver {
131
135
  return {
132
136
  type: 'mutation:attribute:non-visual-style',
133
137
  mutationData: {
134
- attributeName
138
+ attributeName,
139
+ oldValue,
140
+ newValue
135
141
  }
136
142
  };
137
143
  }
@@ -140,14 +146,18 @@ export default class ViewportObserver {
140
146
  return {
141
147
  type: 'mutation:attribute:no-layout-shift',
142
148
  mutationData: {
143
- attributeName
149
+ attributeName,
150
+ oldValue,
151
+ newValue
144
152
  }
145
153
  };
146
154
  }
147
155
  return {
148
156
  type: 'mutation:attribute',
149
157
  mutationData: {
150
- attributeName
158
+ attributeName,
159
+ oldValue,
160
+ newValue
151
161
  }
152
162
  };
153
163
  });
@@ -30,7 +30,9 @@ function createMutationObserver({
30
30
  var _mut$attributeName;
31
31
  onAttributeMutation({
32
32
  target: mut.target,
33
- attributeName: (_mut$attributeName = mut.attributeName) !== null && _mut$attributeName !== void 0 ? _mut$attributeName : 'unknown'
33
+ attributeName: (_mut$attributeName = mut.attributeName) !== null && _mut$attributeName !== void 0 ? _mut$attributeName : 'unknown',
34
+ oldValue,
35
+ newValue
34
36
  });
35
37
  }
36
38
  continue;
@@ -101,7 +101,8 @@ function _getExperimentalVCMetrics() {
101
101
  isEventAborted: !!interaction.abortReason,
102
102
  prefix: prefix,
103
103
  vc: interaction.vc,
104
- experienceKey: interaction.ufoName
104
+ experienceKey: interaction.ufoName,
105
+ interactionId: interaction.id
105
106
  });
106
107
  case 4:
107
108
  result = _context.sent;
@@ -58,7 +58,8 @@ function _getVCMetrics() {
58
58
  prefix: prefix,
59
59
  vc: interaction.vc,
60
60
  isEventAborted: interactionStatus.originalInteractionStatus !== 'SUCCEEDED',
61
- experienceKey: interaction.ufoName
61
+ experienceKey: interaction.ufoName,
62
+ interactionId: interaction.id
62
63
  }, ssr));
63
64
  case 18:
64
65
  result = _context.sent;
@@ -129,13 +129,12 @@ function createPostInteractionLogPayload(_ref2) {
129
129
 
130
130
  // Align post-interaction-logs closer to UFO event behaviour,
131
131
  // e.g. also check for aborted or failed events
132
- if (fg('platform_ufo_vc_align_revisions_on_watchdog_event')) {
133
- if (lastInteractionFinish.abortReason) {
134
- return null;
135
- }
136
- if (lastInteractionFinish.errors.length > 0) {
137
- return null;
138
- }
132
+
133
+ if (lastInteractionFinish.abortReason) {
134
+ return null;
135
+ }
136
+ if (lastInteractionFinish.errors.length > 0) {
137
+ return null;
139
138
  }
140
139
  var maxEndTimeFromProfiler = reactProfilerTimings ? Math.max.apply(Math, _toConsumableArray(reactProfilerTimings.map(function (t) {
141
140
  return t.commitTime;
@@ -5,10 +5,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
6
  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; }
7
7
  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) { _defineProperty(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; }
8
- import { fg } from '@atlaskit/platform-feature-flags';
9
8
  import { getConfig } from '../config';
10
9
  import { VCObserverWrapper } from '../vc';
11
- import { VCObserver } from '../vc/vc-observer';
12
10
  var POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT = 3000;
13
11
  var PostInteractionLog = /*#__PURE__*/function () {
14
12
  function PostInteractionLog() {
@@ -38,15 +36,9 @@ var PostInteractionLog = /*#__PURE__*/function () {
38
36
  return _createClass(PostInteractionLog, [{
39
37
  key: "initializeVCObserver",
40
38
  value: function initializeVCObserver(options) {
41
- if (fg('platform_ufo_vc_align_revisions_on_watchdog_event')) {
42
- this.vcObserver = new VCObserverWrapper(_objectSpread(_objectSpread({}, options), {}, {
43
- isPostInteraction: true
44
- }));
45
- } else if (this.vcObserver === null) {
46
- this.vcObserver = new VCObserver(_objectSpread(_objectSpread({}, options), {}, {
47
- isPostInteraction: true
48
- }));
49
- }
39
+ this.vcObserver = new VCObserverWrapper(_objectSpread(_objectSpread({}, options), {}, {
40
+ isPostInteraction: true
41
+ }));
50
42
  }
51
43
  }, {
52
44
  key: "startVCObserver",
@@ -122,7 +122,8 @@ export var VCObserverWrapper = /*#__PURE__*/function () {
122
122
  _context.next = 13;
123
123
  return (_this$newVCObserver5 = this.newVCObserver) === null || _this$newVCObserver5 === void 0 ? void 0 : _this$newVCObserver5.getVCResult({
124
124
  start: param.start,
125
- stop: param.stop
125
+ stop: param.stop,
126
+ interactionId: param.interactionId
126
127
  });
127
128
  case 13:
128
129
  _context.t1 = _context.sent;
@@ -149,7 +150,8 @@ export var VCObserverWrapper = /*#__PURE__*/function () {
149
150
  _context.next = 28;
150
151
  return (_this$newVCObserver6 = this.newVCObserver) === null || _this$newVCObserver6 === void 0 ? void 0 : _this$newVCObserver6.getVCResult({
151
152
  start: param.start,
152
- stop: param.stop
153
+ stop: param.stop,
154
+ interactionId: param.interactionId
153
155
  });
154
156
  case 28:
155
157
  newResult = _context.sent;
@@ -0,0 +1,35 @@
1
+ export function getVCRevisionDebugDetails(_ref) {
2
+ var revision = _ref.revision,
3
+ isClean = _ref.isClean,
4
+ abortReason = _ref.abortReason,
5
+ VCEntries = _ref.VCEntries,
6
+ componentsLog = _ref.componentsLog,
7
+ interactionId = _ref.interactionId;
8
+ return {
9
+ revision: revision,
10
+ isClean: isClean,
11
+ abortReason: abortReason,
12
+ vcLogs: VCEntries.map(function (entry) {
13
+ return {
14
+ time: entry.time,
15
+ viewportPercentage: entry.vc,
16
+ entries: entry.elements.map(function (element) {
17
+ var _componentsLog$entry$;
18
+ var logEntry = (_componentsLog$entry$ = componentsLog[entry.time]) === null || _componentsLog$entry$ === void 0 ? void 0 : _componentsLog$entry$.find(function (log) {
19
+ return log.targetName === element;
20
+ });
21
+ return {
22
+ elementName: element,
23
+ type: logEntry === null || logEntry === void 0 ? void 0 : logEntry.type,
24
+ rect: logEntry === null || logEntry === void 0 ? void 0 : logEntry.intersectionRect,
25
+ visible: true,
26
+ attributeName: logEntry === null || logEntry === void 0 ? void 0 : logEntry.attributeName,
27
+ oldValue: logEntry === null || logEntry === void 0 ? void 0 : logEntry.oldValue,
28
+ newValue: logEntry === null || logEntry === void 0 ? void 0 : logEntry.newValue
29
+ };
30
+ })
31
+ };
32
+ }),
33
+ interactionId: interactionId
34
+ };
35
+ }
@@ -13,6 +13,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
13
13
  import { isVCRevisionEnabled } from '../../config';
14
14
  import { getActiveInteraction } from '../../interaction-metrics';
15
15
  import { attachAbortListeners } from './attachAbortListeners';
16
+ import { getVCRevisionDebugDetails } from './getVCRevisionDebugDetails';
16
17
  import { getVCRevisionsData } from './getVCRevisionsData';
17
18
  import { getViewportHeight, getViewportWidth } from './getViewport';
18
19
  import { MultiRevisionHeatmap } from './heatmap/heatmap';
@@ -99,11 +100,11 @@ export var VCObserver = /*#__PURE__*/function () {
99
100
  });
100
101
  _defineProperty(this, "getVCResult", /*#__PURE__*/function () {
101
102
  var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
102
- var start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, startTime, fullPrefix, rawData, abortReason, abortReasonInfo, heatmap, heatmapNext, outOfBoundaryInfo, totalTime, componentsLog, viewport, devToolsEnabled, ratios, multiHeatmap, isTTVCv1Disabled, vcAbortedResultWithRevisions, ttvcV1Result, VC, VCBox, VCEntries, totalPainted, _componentsLog, vcNext, outOfBoundary, stopTime, ttvcV1DevToolInfo, ttvcV2DevToolInfo, isVCClean, revisionsData, speedIndex, isTTVCv3Enabled;
103
+ var start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, interactionId, startTime, fullPrefix, rawData, abortReason, abortReasonInfo, heatmap, heatmapNext, outOfBoundaryInfo, totalTime, componentsLog, viewport, devToolsEnabled, ratios, multiHeatmap, isTTVCv1Disabled, vcAbortedResultWithRevisions, ttvcV1Result, VC, VCBox, VCEntries, totalPainted, _componentsLog, vcNext, outOfBoundary, stopTime, ttvcV1DevToolInfo, ttvcV2DevToolInfo, _ufo_devtool_onVCRev2, _ref10, _ufo_devtool_onVCRev, _ref9, isVCClean, revisionsData, speedIndex, isTTVCv3Enabled;
103
104
  return _regeneratorRuntime.wrap(function _callee$(_context) {
104
105
  while (1) switch (_context.prev = _context.next) {
105
106
  case 0:
106
- start = _ref3.start, stop = _ref3.stop, tti = _ref3.tti, prefix = _ref3.prefix, ssr = _ref3.ssr, vc = _ref3.vc, isEventAborted = _ref3.isEventAborted, experienceKey = _ref3.experienceKey;
107
+ start = _ref3.start, stop = _ref3.stop, tti = _ref3.tti, prefix = _ref3.prefix, ssr = _ref3.ssr, vc = _ref3.vc, isEventAborted = _ref3.isEventAborted, experienceKey = _ref3.experienceKey, interactionId = _ref3.interactionId;
107
108
  startTime = performance.now(); // add local measurement
108
109
  fullPrefix = prefix !== undefined && prefix !== '' ? "".concat(prefix, ":") : '';
109
110
  rawData = vc !== undefined ? vc : _this.getVCRawData();
@@ -280,6 +281,31 @@ export var VCObserver = /*#__PURE__*/function () {
280
281
  entries: isTTVCv1Disabled ? vcNext.VCEntries.rel : VCEntries.rel
281
282
  }
282
283
  }));
284
+
285
+ // Add devtool callback for both v1 and v2
286
+ if (typeof window.__ufo_devtool_onVCRevisionReady__ === 'function' && fg('platform_ufo_ttvc_v3_devtool')) {
287
+ // Handle v1 if not disabled
288
+ if (!isTTVCv1Disabled) {
289
+ (_ufo_devtool_onVCRev = (_ref9 = window).__ufo_devtool_onVCRevisionReady__) === null || _ufo_devtool_onVCRev === void 0 || _ufo_devtool_onVCRev.call(_ref9, getVCRevisionDebugDetails({
290
+ revision: 'fy25.01',
291
+ isClean: !abortReasonInfo,
292
+ abortReason: abortReason.reason,
293
+ VCEntries: VCEntries.rel,
294
+ componentsLog: componentsLog,
295
+ interactionId: interactionId
296
+ }));
297
+ }
298
+
299
+ // Handle v2
300
+ (_ufo_devtool_onVCRev2 = (_ref10 = window).__ufo_devtool_onVCRevisionReady__) === null || _ufo_devtool_onVCRev2 === void 0 || _ufo_devtool_onVCRev2.call(_ref10, getVCRevisionDebugDetails({
301
+ revision: 'fy25.02',
302
+ isClean: !abortReasonInfo,
303
+ abortReason: abortReason.reason,
304
+ VCEntries: vcNext.VCEntries.rel,
305
+ componentsLog: componentsLog,
306
+ interactionId: interactionId
307
+ }));
308
+ }
283
309
  }
284
310
  } catch (e) {
285
311
  /* do nothing */
@@ -380,16 +406,16 @@ export var VCObserver = /*#__PURE__*/function () {
380
406
  });
381
407
  }
382
408
  });
383
- _defineProperty(this, "onViewportChangeDetected", function (_ref9) {
384
- var element = _ref9.element,
385
- type = _ref9.type,
386
- ignoreReason = _ref9.ignoreReason,
387
- timestamp = _ref9.timestamp,
388
- targetName = _ref9.targetName,
389
- intersectionRect = _ref9.intersectionRect,
390
- attributeName = _ref9.attributeName,
391
- oldValue = _ref9.oldValue,
392
- newValue = _ref9.newValue;
409
+ _defineProperty(this, "onViewportChangeDetected", function (_ref11) {
410
+ var element = _ref11.element,
411
+ type = _ref11.type,
412
+ ignoreReason = _ref11.ignoreReason,
413
+ timestamp = _ref11.timestamp,
414
+ targetName = _ref11.targetName,
415
+ intersectionRect = _ref11.intersectionRect,
416
+ attributeName = _ref11.attributeName,
417
+ oldValue = _ref11.oldValue,
418
+ newValue = _ref11.newValue;
393
419
  if (_this.multiHeatmap === null) {
394
420
  return;
395
421
  }
@@ -474,10 +500,10 @@ export var VCObserver = /*#__PURE__*/function () {
474
500
  var unbinds = attachAbortListeners(window, _this.viewport, _this.abortReasonCallback);
475
501
  if ((_window = window) !== null && _window !== void 0 && _window.__SSR_ABORT_LISTENERS__) {
476
502
  var _window2;
477
- Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (_ref10) {
478
- var _ref11 = _slicedToArray(_ref10, 2),
479
- key = _ref11[0],
480
- time = _ref11[1];
503
+ Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (_ref12) {
504
+ var _ref13 = _slicedToArray(_ref12, 2),
505
+ key = _ref13[0],
506
+ time = _ref13[1];
481
507
  if (time) {
482
508
  _this.abortReasonCallback(key, time);
483
509
  }
@@ -510,8 +536,8 @@ export var VCObserver = /*#__PURE__*/function () {
510
536
  }
511
537
  return _createClass(VCObserver, [{
512
538
  key: "start",
513
- value: function start(_ref12) {
514
- var startTime = _ref12.startTime;
539
+ value: function start(_ref14) {
540
+ var startTime = _ref14.startTime;
515
541
  this.active = true;
516
542
  if (this.observers.isBrowserSupported()) {
517
543
  this.setViewportSize();
@@ -533,12 +559,12 @@ export var VCObserver = /*#__PURE__*/function () {
533
559
  }, {
534
560
  key: "getIgnoredElements",
535
561
  value: function getIgnoredElements(componentsLog) {
536
- return Object.values(componentsLog).flat().filter(function (_ref13) {
537
- var ignoreReason = _ref13.ignoreReason;
562
+ return Object.values(componentsLog).flat().filter(function (_ref15) {
563
+ var ignoreReason = _ref15.ignoreReason;
538
564
  return Boolean(ignoreReason);
539
- }).map(function (_ref14) {
540
- var targetName = _ref14.targetName,
541
- ignoreReason = _ref14.ignoreReason;
565
+ }).map(function (_ref16) {
566
+ var targetName = _ref16.targetName,
567
+ ignoreReason = _ref16.ignoreReason;
542
568
  return {
543
569
  targetName: targetName,
544
570
  ignoreReason: ignoreReason
@@ -661,12 +687,12 @@ export var VCObserver = /*#__PURE__*/function () {
661
687
  }
662
688
  }], [{
663
689
  key: "calculateVC",
664
- value: function calculateVC(_ref15) {
665
- var heatmap = _ref15.heatmap,
666
- _ref15$ssr = _ref15.ssr,
667
- ssr = _ref15$ssr === void 0 ? UNUSED_SECTOR : _ref15$ssr,
668
- componentsLog = _ref15.componentsLog,
669
- viewport = _ref15.viewport;
690
+ value: function calculateVC(_ref17) {
691
+ var heatmap = _ref17.heatmap,
692
+ _ref17$ssr = _ref17.ssr,
693
+ ssr = _ref17$ssr === void 0 ? UNUSED_SECTOR : _ref17$ssr,
694
+ componentsLog = _ref17.componentsLog,
695
+ viewport = _ref17.viewport;
670
696
  var lastUpdate = {};
671
697
  var totalPainted = 0;
672
698
  if (ssr !== UNUSED_SECTOR) {
@@ -732,11 +758,11 @@ export var VCObserver = /*#__PURE__*/function () {
732
758
  });
733
759
  return VCRatio;
734
760
  }, 0);
735
- var VCEntries = entries.reduce(function (acc, _ref16, i) {
761
+ var VCEntries = entries.reduce(function (acc, _ref18, i) {
736
762
  var _acc$abs, _componentsLog$timest, _acc$rel$vc, _acc$rel;
737
- var _ref17 = _slicedToArray(_ref16, 2),
738
- timestamp = _ref17[0],
739
- entryPainted = _ref17[1];
763
+ var _ref19 = _slicedToArray(_ref18, 2),
764
+ timestamp = _ref19[0],
765
+ entryPainted = _ref19[1];
740
766
  var currentlyPainted = entryPainted + (((_acc$abs = acc.abs[i - 1]) === null || _acc$abs === void 0 ? void 0 : _acc$abs[1]) || 0);
741
767
  var currentlyPaintedRatio = Math.round(currentlyPainted / totalPainted * 1000) / 10;
742
768
  var logEntry = _toConsumableArray(new Set((_componentsLog$timest = componentsLog[timestamp]) === null || _componentsLog$timest === void 0 ? void 0 : _componentsLog$timest.filter(function (v) {
@@ -17,12 +17,14 @@ var DEFAULT_SELECTOR_CONFIG = {
17
17
  };
18
18
  var VCObserverNew = /*#__PURE__*/function () {
19
19
  function VCObserverNew(config) {
20
- var _config$selectorConfi,
20
+ var _config$isPostInterac,
21
+ _config$selectorConfi,
21
22
  _this = this;
22
23
  _classCallCheck(this, VCObserverNew);
23
24
  _defineProperty(this, "viewportObserver", null);
24
25
  _defineProperty(this, "windowEventObserver", null);
25
26
  this.entriesTimeline = new EntriesTimeline();
27
+ this.isPostInteraction = (_config$isPostInterac = config.isPostInteraction) !== null && _config$isPostInterac !== void 0 ? _config$isPostInterac : false;
26
28
  this.selectorConfig = (_config$selectorConfi = config.selectorConfig) !== null && _config$selectorConfi !== void 0 ? _config$selectorConfi : DEFAULT_SELECTOR_CONFIG;
27
29
  this.viewportObserver = new ViewportObserver({
28
30
  onChange: function onChange(onChangeArg) {
@@ -40,13 +42,15 @@ var VCObserverNew = /*#__PURE__*/function () {
40
42
  }
41
43
  _this.entriesTimeline.push({
42
44
  time: time,
43
- type: type,
44
45
  data: {
46
+ type: type,
45
47
  elementName: elementName,
46
48
  rect: rect,
47
49
  previousRect: previousRect,
48
50
  visible: visible,
49
- attributeName: mutationData === null || mutationData === void 0 ? void 0 : mutationData.attributeName
51
+ attributeName: mutationData === null || mutationData === void 0 ? void 0 : mutationData.attributeName,
52
+ oldValue: mutationData === null || mutationData === void 0 ? void 0 : mutationData.oldValue,
53
+ newValue: mutationData === null || mutationData === void 0 ? void 0 : mutationData.newValue
50
54
  }
51
55
  });
52
56
  }
@@ -57,8 +61,8 @@ var VCObserverNew = /*#__PURE__*/function () {
57
61
  type = _ref.type;
58
62
  _this.entriesTimeline.push({
59
63
  time: time,
60
- type: 'window:event',
61
64
  data: {
65
+ type: 'window:event',
62
66
  eventType: type
63
67
  }
64
68
  });
@@ -85,11 +89,11 @@ var VCObserverNew = /*#__PURE__*/function () {
85
89
  key: "getVCResult",
86
90
  value: function () {
87
91
  var _getVCResult = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(param) {
88
- var start, stop, results, calculator_fy25_03, orderedEntries, fy25_03;
92
+ var start, stop, interactionId, results, calculator_fy25_03, orderedEntries, fy25_03;
89
93
  return _regeneratorRuntime.wrap(function _callee$(_context) {
90
94
  while (1) switch (_context.prev = _context.next) {
91
95
  case 0:
92
- start = param.start, stop = param.stop;
96
+ start = param.start, stop = param.stop, interactionId = param.interactionId;
93
97
  results = [];
94
98
  calculator_fy25_03 = new VCCalculator_FY25_03();
95
99
  orderedEntries = this.entriesTimeline.getOrderedEntries({
@@ -100,7 +104,9 @@ var VCObserverNew = /*#__PURE__*/function () {
100
104
  return calculator_fy25_03.calculate({
101
105
  orderedEntries: orderedEntries,
102
106
  startTime: start,
103
- stopTime: stop
107
+ stopTime: stop,
108
+ interactionId: interactionId,
109
+ isPostInteraction: this.isPostInteraction
104
110
  });
105
111
  case 6:
106
112
  fy25_03 = _context.sent;