@atlaskit/react-ufo 2.4.7 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/common/constants.js +1 -1
  3. package/dist/cjs/config/index.js +18 -40
  4. package/dist/cjs/create-payload/common/utils/index.js +1 -85
  5. package/dist/cjs/create-payload/index.js +77 -37
  6. package/dist/cjs/interaction-metrics/common/constants.js +1 -7
  7. package/dist/cjs/interaction-metrics/index.js +205 -140
  8. package/dist/cjs/interaction-metrics-init/index.js +9 -27
  9. package/dist/cjs/load-hold/UFOLoadHold.js +4 -3
  10. package/dist/cjs/segment/segment.js +9 -7
  11. package/dist/cjs/trace-pageload/index.js +1 -2
  12. package/dist/cjs/vc/vc-observer/index.js +48 -33
  13. package/dist/es2019/common/constants.js +1 -1
  14. package/dist/es2019/config/index.js +0 -22
  15. package/dist/es2019/create-payload/common/utils/index.js +1 -86
  16. package/dist/es2019/create-payload/index.js +74 -28
  17. package/dist/es2019/interaction-metrics/common/constants.js +0 -6
  18. package/dist/es2019/interaction-metrics/index.js +130 -93
  19. package/dist/es2019/interaction-metrics-init/index.js +8 -21
  20. package/dist/es2019/load-hold/UFOLoadHold.js +4 -3
  21. package/dist/es2019/segment/segment.js +12 -6
  22. package/dist/es2019/trace-pageload/index.js +1 -1
  23. package/dist/es2019/vc/vc-observer/index.js +17 -5
  24. package/dist/esm/common/constants.js +1 -1
  25. package/dist/esm/config/index.js +18 -39
  26. package/dist/esm/create-payload/common/utils/index.js +1 -80
  27. package/dist/esm/create-payload/index.js +75 -33
  28. package/dist/esm/interaction-metrics/common/constants.js +0 -6
  29. package/dist/esm/interaction-metrics/index.js +157 -88
  30. package/dist/esm/interaction-metrics-init/index.js +10 -24
  31. package/dist/esm/load-hold/UFOLoadHold.js +4 -3
  32. package/dist/esm/segment/segment.js +9 -7
  33. package/dist/esm/trace-pageload/index.js +1 -1
  34. package/dist/esm/vc/vc-observer/index.js +48 -33
  35. package/dist/types/common/common/types.d.ts +4 -6
  36. package/dist/types/config/index.d.ts +0 -6
  37. package/dist/types/create-payload/common/utils/index.d.ts +0 -12
  38. package/dist/types/create-payload/index.d.ts +5660 -13
  39. package/dist/types/interaction-metrics/common/constants.d.ts +1 -31
  40. package/dist/types/interaction-metrics/index.d.ts +15 -4
  41. package/dist/types/load-hold/UFOLoadHold.d.ts +2 -1
  42. package/dist/types/trace-pageload/index.d.ts +0 -1
  43. package/dist/types/vc/vc-observer/index.d.ts +1 -1
  44. package/dist/types-ts4.5/common/common/types.d.ts +4 -6
  45. package/dist/types-ts4.5/config/index.d.ts +0 -6
  46. package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +0 -12
  47. package/dist/types-ts4.5/create-payload/index.d.ts +5660 -13
  48. package/dist/types-ts4.5/interaction-metrics/common/constants.d.ts +1 -31
  49. package/dist/types-ts4.5/interaction-metrics/index.d.ts +15 -4
  50. package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +2 -1
  51. package/dist/types-ts4.5/trace-pageload/index.d.ts +0 -1
  52. package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -1
  53. package/package.json +6 -4
  54. package/create-experimental-interaction-metrics-payload/package.json +0 -15
  55. package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +0 -89
  56. package/dist/cjs/interaction-metrics/common/index.js +0 -151
  57. package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +0 -67
  58. package/dist/es2019/interaction-metrics/common/index.js +0 -103
  59. package/dist/esm/create-experimental-interaction-metrics-payload/index.js +0 -81
  60. package/dist/esm/interaction-metrics/common/index.js +0 -132
  61. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +0 -31
  62. package/dist/types/interaction-metrics/common/index.d.ts +0 -16
  63. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +0 -31
  64. package/dist/types-ts4.5/interaction-metrics/common/index.d.ts +0 -16
@@ -26,14 +26,6 @@ function sinkInteraction(instance, payloadPackage) {
26
26
  });
27
27
  });
28
28
  }
29
- function sinkExperimentalInteractionMetrics(instance, payloadPackage) {
30
- (0, _interactionMetrics.sinkExperimentalHandler)(function (interactionId, interaction) {
31
- (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, function () {
32
- var payload = payloadPackage.createExperimentalInteractionMetricsPayload(interactionId, interaction);
33
- instance.sendOperationalEvent(payload);
34
- });
35
- });
36
- }
37
29
  function sinkPostInteractionLog(instance, createPostInteractionLogPayload) {
38
30
  (0, _interactionMetrics.sinkPostInteractionLogHandler)(function (logOutput) {
39
31
  (0, _scheduler.unstable_scheduleCallback)(_scheduler.unstable_IdlePriority, function () {
@@ -64,43 +56,33 @@ var init = exports.init = function init(analyticsWebClientAsync, config) {
64
56
  _interactionMetrics.postInteractionLog.startVCObserver({
65
57
  startTime: 0
66
58
  });
67
- _interactionMetrics.experimentalInteractionLog.initializeVCObserver(vcOptions).startVCObserver({
68
- startTime: 0
69
- });
70
59
  }
71
60
  (0, _hiddenTiming.setupHiddenTimingCapture)();
72
61
  (0, _additionalPayload.startLighthouseObserver)();
73
62
  initialized = true;
74
- Promise.all([analyticsWebClientAsync, Promise.resolve().then(function () {
63
+ Promise.all([analyticsWebClientAsync, // eslint-disable-next-line import/dynamic-import-chunkname
64
+ Promise.resolve().then(function () {
75
65
  return _interopRequireWildcard(require( /* webpackChunkName: "create-payloads" */'../create-payload'));
76
- }), Promise.resolve().then(function () {
77
- return _interopRequireWildcard(require( /* webpackChunkName: "create-experimental-interaction-metrics-payload" */'../create-experimental-interaction-metrics-payload'));
78
- }), Promise.resolve().then(function () {
79
- return _interopRequireWildcard(require( /* webpackChunkName: "create-post-interaction-log-payload" */'../create-post-interaction-log-payload'));
66
+ }), // eslint-disable-next-line import/dynamic-import-chunkname
67
+ Promise.resolve().then(function () {
68
+ return _interopRequireWildcard(require( /* webpackChunkName: "create-post-intreaction-log-payload" */'../create-post-interaction-log-payload'));
80
69
  })]).then(function (_ref) {
81
- var _ref2 = (0, _slicedToArray2.default)(_ref, 4),
70
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 3),
82
71
  awc = _ref2[0],
83
72
  payloadPackage = _ref2[1],
84
- createExperimentalInteractionMetricsPayload = _ref2[2],
85
- createPostInteractionLogPayloadPackage = _ref2[3];
73
+ createPostInteractionLogPayloadPackage = _ref2[2];
86
74
  if (awc.getAnalyticsWebClientPromise) {
87
75
  awc.getAnalyticsWebClientPromise().then(function (client) {
88
- var _config$experimentalI, _config$postInteracti;
76
+ var _config$postInteracti;
89
77
  var instance = client.getInstance();
90
78
  sinkInteraction(instance, payloadPackage);
91
- if (config !== null && config !== void 0 && (_config$experimentalI = config.experimentalInteractionMetrics) !== null && _config$experimentalI !== void 0 && _config$experimentalI.enabled) {
92
- sinkExperimentalInteractionMetrics(instance, createExperimentalInteractionMetricsPayload);
93
- }
94
79
  if ((_config$postInteracti = config.postInteractionLog) !== null && _config$postInteracti !== void 0 && _config$postInteracti.enabled) {
95
80
  sinkPostInteractionLog(instance, createPostInteractionLogPayloadPackage.default);
96
81
  }
97
82
  });
98
83
  } else if (awc.sendOperationalEvent) {
99
- var _config$experimentalI2, _config$postInteracti2;
84
+ var _config$postInteracti2;
100
85
  sinkInteraction(awc, payloadPackage);
101
- if (config !== null && config !== void 0 && (_config$experimentalI2 = config.experimentalInteractionMetrics) !== null && _config$experimentalI2 !== void 0 && _config$experimentalI2.enabled) {
102
- sinkExperimentalInteractionMetrics(awc, createExperimentalInteractionMetricsPayload);
103
- }
104
86
  if ((_config$postInteracti2 = config.postInteractionLog) !== null && _config$postInteracti2 !== void 0 && _config$postInteracti2.enabled) {
105
87
  sinkPostInteractionLog(awc, createPostInteractionLogPayloadPackage.default);
106
88
  }
@@ -32,7 +32,8 @@ var useLayoutEffectSAFE = typeof window === 'undefined' ? _react.useEffect : _re
32
32
  * return (
33
33
  * <>
34
34
  * <Skeleton />
35
- * <UFOLoadHold name="card" />
35
+ * <UFOLoadHold name="card">
36
+ * </UFOLoadHold>
36
37
  * )
37
38
  * }
38
39
  * ```
@@ -67,8 +68,8 @@ function UFOLoadHold(_ref) {
67
68
  // react-18: useId instead
68
69
  var context = (0, _react.useContext)(_interactionContext.default);
69
70
  useLayoutEffectSAFE(function () {
70
- if (hold && context != null) {
71
- return context.hold(name, experimental);
71
+ if (hold && !experimental && context != null) {
72
+ return context.hold(name);
72
73
  }
73
74
  }, [hold, context, name]);
74
75
 
@@ -91,14 +91,15 @@ function UFOSegment(_ref) {
91
91
  }
92
92
  }
93
93
  }
94
- function _internalHold(labelStack, name) {
95
- var experimental = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
94
+ function _internalHold(labelStack, name
95
+ // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
96
+ ) {
96
97
  if (interactionId.current != null) {
97
98
  if (parentContext) {
98
- return parentContext._internalHold(labelStack, name, experimental);
99
+ return parentContext._internalHold(labelStack, name);
99
100
  } else {
100
101
  var capturedInteractionId = interactionId.current;
101
- var disposeHold = (0, _interactionMetrics.addHold)(interactionId.current, labelStack, name, experimental);
102
+ var disposeHold = (0, _interactionMetrics.addHold)(interactionId.current, labelStack, name);
102
103
  return function () {
103
104
  if (capturedInteractionId === interactionId.current) {
104
105
  disposeHold();
@@ -107,7 +108,9 @@ function UFOSegment(_ref) {
107
108
  }
108
109
  }
109
110
  }
110
- function _internalHoldByID(labelStack, id, name, remove) {
111
+ function _internalHoldByID(labelStack, id, name, remove
112
+ // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
113
+ ) {
111
114
  if (interactionId.current != null) {
112
115
  if (parentContext) {
113
116
  parentContext._internalHoldByID(labelStack, name, id, remove);
@@ -130,8 +133,7 @@ function UFOSegment(_ref) {
130
133
  labelStack: labelStack,
131
134
  hold: function hold() {
132
135
  var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unknown';
133
- var experimental = arguments.length > 1 ? arguments[1] : undefined;
134
- return this._internalHold(this.labelStack, name, experimental);
136
+ return this._internalHold(this.labelStack, name);
135
137
  },
136
138
  addHoldByID: function addHoldByID(labelStack, id) {
137
139
  var name = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'unknown';
@@ -4,7 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.AWAITING_PAGELOAD_NAME = void 0;
8
7
  exports.default = traceUFOPageLoad;
9
8
  exports.updatePageloadName = updatePageloadName;
10
9
  var _uuid = require("uuid");
@@ -14,7 +13,7 @@ var _experienceTraceIdContext = require("../experience-trace-id-context");
14
13
  var _interactionIdContext = require("../interaction-id-context");
15
14
  var _interactionMetrics = require("../interaction-metrics");
16
15
  var _routeNameContext = _interopRequireDefault(require("../route-name-context"));
17
- var AWAITING_PAGELOAD_NAME = exports.AWAITING_PAGELOAD_NAME = 'awaiting_pageload_name';
16
+ var AWAITING_PAGELOAD_NAME = 'awaiting_pageload_name';
18
17
  function traceUFOPageLoad(ufoName) {
19
18
  var routeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ufoName;
20
19
  var activeInteraction = (0, _interactionMetrics.getActiveInteraction)();
@@ -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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
14
  var _attachAbortListeners = require("./attachAbortListeners");
14
15
  var _getViewport = require("./getViewport");
15
16
  var _observers = require("./observers");
@@ -70,7 +71,7 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
70
71
  var info = _this.abortReason.info !== '' ? " ".concat(_this.abortReason.info) : '';
71
72
  return "".concat(_this.abortReason.reason).concat(info);
72
73
  });
73
- (0, _defineProperty2.default)(this, "getVCRawData", function () {
74
+ (0, _defineProperty2.default)(this, "getVCRawData", function (stopTime) {
74
75
  _this.measureStart();
75
76
  if (!_this.active) {
76
77
  _this.measureStop();
@@ -79,6 +80,20 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
79
80
  _this.stop();
80
81
  var abortReasonInfo = _this.getAbortReasonInfo();
81
82
  _this.measureStop();
83
+ var componentsLog = {};
84
+ if (stopTime && (0, _platformFeatureFlags.fg)('ufo-remove-vc-component-observations-after-ttai')) {
85
+ Object.entries(_this.componentsLog).forEach(function (_ref3) {
86
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
87
+ _timestamp = _ref4[0],
88
+ value = _ref4[1];
89
+ var timestamp = Number(_timestamp);
90
+ if (stopTime > timestamp) {
91
+ componentsLog[timestamp] = value;
92
+ }
93
+ });
94
+ } else {
95
+ componentsLog = _objectSpread({}, _this.componentsLog);
96
+ }
82
97
  return {
83
98
  abortReasonInfo: abortReasonInfo,
84
99
  abortReason: _objectSpread({}, _this.abortReason),
@@ -86,25 +101,25 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
86
101
  heatmapNext: _this.heatmapNext,
87
102
  outOfBoundaryInfo: _this.outOfBoundaryInfo,
88
103
  totalTime: Math.round(_this.totalTime + _this.observers.getTotalTime()),
89
- componentsLog: _objectSpread({}, _this.componentsLog),
104
+ componentsLog: componentsLog,
90
105
  viewport: _objectSpread({}, _this.viewport),
91
106
  oldDomUpdatesEnabled: _this.oldDomUpdatesEnabled,
92
107
  devToolsEnabled: _this.devToolsEnabled,
93
108
  ratios: _this.vcRatios
94
109
  };
95
110
  });
96
- (0, _defineProperty2.default)(this, "getVCResult", function (_ref3) {
111
+ (0, _defineProperty2.default)(this, "getVCResult", function (_ref5) {
97
112
  var _objectSpread2, _objectSpread3;
98
- var start = _ref3.start,
99
- stop = _ref3.stop,
100
- tti = _ref3.tti,
101
- prefix = _ref3.prefix,
102
- ssr = _ref3.ssr,
103
- vc = _ref3.vc;
113
+ var start = _ref5.start,
114
+ stop = _ref5.stop,
115
+ tti = _ref5.tti,
116
+ prefix = _ref5.prefix,
117
+ ssr = _ref5.ssr,
118
+ vc = _ref5.vc;
104
119
  var startTime = performance.now();
105
120
  // add local measurement
106
121
  var fullPrefix = prefix !== undefined && prefix !== '' ? "".concat(prefix, ":") : '';
107
- var rawData = vc !== undefined ? vc : _this.getVCRawData();
122
+ var rawData = vc !== undefined ? vc : _this.getVCRawData(stop);
108
123
  if (rawData === null) {
109
124
  return {};
110
125
  }
@@ -119,14 +134,14 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
119
134
  devToolsEnabled = rawData.devToolsEnabled,
120
135
  ratios = rawData.ratios;
121
136
  if (abortReasonInfo !== null && abortReason.blocking) {
122
- var _ref4;
137
+ var _ref6;
123
138
  // exposing data to devtools
124
139
  try {
125
140
  if (devToolsEnabled && !_this.isPostInteraction) {
126
141
  window.__vcNotAvailableReason = abortReasonInfo;
127
142
  }
128
143
  } catch (e) {}
129
- return _ref4 = {}, (0, _defineProperty2.default)(_ref4, "".concat(fullPrefix, "vc:state"), false), (0, _defineProperty2.default)(_ref4, "".concat(fullPrefix, "vc:abort:reason"), abortReasonInfo), (0, _defineProperty2.default)(_ref4, "".concat(fullPrefix, "vc:abort:timestamp"), abortReason.timestamp), _ref4;
144
+ return _ref6 = {}, (0, _defineProperty2.default)(_ref6, "".concat(fullPrefix, "vc:state"), false), (0, _defineProperty2.default)(_ref6, "".concat(fullPrefix, "vc:abort:reason"), abortReasonInfo), (0, _defineProperty2.default)(_ref6, "".concat(fullPrefix, "vc:abort:timestamp"), abortReason.timestamp), _ref6;
130
145
  }
131
146
  var _VCObserver$calculate = VCObserver.calculateVC({
132
147
  heatmap: heatmap,
@@ -281,10 +296,10 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
281
296
  var unbinds = (0, _attachAbortListeners.attachAbortListeners)(window, _this.viewport, _this.abortReasonCallback);
282
297
  if ((_window = window) !== null && _window !== void 0 && _window.__SSR_ABORT_LISTENERS__) {
283
298
  var _window2;
284
- Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (_ref6) {
285
- var _ref7 = (0, _slicedToArray2.default)(_ref6, 2),
286
- key = _ref7[0],
287
- time = _ref7[1];
299
+ Object.entries(window.__SSR_ABORT_LISTENERS__.aborts).forEach(function (_ref8) {
300
+ var _ref9 = (0, _slicedToArray2.default)(_ref8, 2),
301
+ key = _ref9[0],
302
+ time = _ref9[1];
288
303
  if (time) {
289
304
  _this.abortReasonCallback(key, time);
290
305
  }
@@ -312,8 +327,8 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
312
327
  }
313
328
  (0, _createClass2.default)(VCObserver, [{
314
329
  key: "start",
315
- value: function start(_ref8) {
316
- var startTime = _ref8.startTime;
330
+ value: function start(_ref10) {
331
+ var startTime = _ref10.startTime;
317
332
  this.active = true;
318
333
  if (this.observers.isBrowserSupported()) {
319
334
  this.setViewportSize();
@@ -335,12 +350,12 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
335
350
  }, {
336
351
  key: "getIgnoredElements",
337
352
  value: function getIgnoredElements(componentsLog) {
338
- return Object.values(componentsLog).flat().filter(function (_ref9) {
339
- var ignoreReason = _ref9.ignoreReason;
353
+ return Object.values(componentsLog).flat().filter(function (_ref11) {
354
+ var ignoreReason = _ref11.ignoreReason;
340
355
  return Boolean(ignoreReason);
341
- }).map(function (_ref10) {
342
- var targetName = _ref10.targetName,
343
- ignoreReason = _ref10.ignoreReason;
356
+ }).map(function (_ref12) {
357
+ var targetName = _ref12.targetName,
358
+ ignoreReason = _ref12.ignoreReason;
344
359
  return {
345
360
  targetName: targetName,
346
361
  ignoreReason: ignoreReason
@@ -461,12 +476,12 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
461
476
  }
462
477
  }], [{
463
478
  key: "calculateVC",
464
- value: function calculateVC(_ref11) {
465
- var heatmap = _ref11.heatmap,
466
- _ref11$ssr = _ref11.ssr,
467
- ssr = _ref11$ssr === void 0 ? UNUSED_SECTOR : _ref11$ssr,
468
- componentsLog = _ref11.componentsLog,
469
- viewport = _ref11.viewport;
479
+ value: function calculateVC(_ref13) {
480
+ var heatmap = _ref13.heatmap,
481
+ _ref13$ssr = _ref13.ssr,
482
+ ssr = _ref13$ssr === void 0 ? UNUSED_SECTOR : _ref13$ssr,
483
+ componentsLog = _ref13.componentsLog,
484
+ viewport = _ref13.viewport;
470
485
  var lastUpdate = {};
471
486
  var totalPainted = 0;
472
487
  if (ssr !== UNUSED_SECTOR) {
@@ -526,11 +541,11 @@ var VCObserver = exports.VCObserver = /*#__PURE__*/function () {
526
541
  });
527
542
  return VCRatio;
528
543
  }, 0);
529
- var VCEntries = entries.reduce(function (acc, _ref12, i) {
544
+ var VCEntries = entries.reduce(function (acc, _ref14, i) {
530
545
  var _acc$abs, _componentsLog$timest;
531
- var _ref13 = (0, _slicedToArray2.default)(_ref12, 2),
532
- timestamp = _ref13[0],
533
- entryPainted = _ref13[1];
546
+ var _ref15 = (0, _slicedToArray2.default)(_ref14, 2),
547
+ timestamp = _ref15[0],
548
+ entryPainted = _ref15[1];
534
549
  var currentlyPainted = entryPainted + (((_acc$abs = acc.abs[i - 1]) === null || _acc$abs === void 0 ? void 0 : _acc$abs[1]) || 0);
535
550
  var currentlyPaintedRatio = Math.round(currentlyPainted / totalPainted * 1000) / 10;
536
551
  var logEntry = (_componentsLog$timest = componentsLog[timestamp]) === null || _componentsLog$timest === void 0 ? void 0 : _componentsLog$timest.map(function (v) {
@@ -1,2 +1,2 @@
1
1
  import { fg } from '@atlaskit/platform-feature-flags';
2
- export const REACT_UFO_VERSION = fg('react-ufo-payload-segment-compressed') ? '2.0.0' : '1.0.1';
2
+ export const REACT_UFO_VERSION = fg('enable-react-ufo-payload-segment-compressed') ? '2.0.0' : '1.0.1';
@@ -67,28 +67,6 @@ export function getInteractionRate(name, interactionKind) {
67
67
  return 0;
68
68
  }
69
69
  }
70
- export function getExperimentalInteractionRate(name, interactionType) {
71
- try {
72
- if (!config) {
73
- return 0;
74
- }
75
- const {
76
- experimentalInteractionMetrics
77
- } = config;
78
- if (!(experimentalInteractionMetrics !== null && experimentalInteractionMetrics !== void 0 && experimentalInteractionMetrics.enabled)) {
79
- return 0;
80
- }
81
- if (experimentalInteractionMetrics.rates && typeof experimentalInteractionMetrics.rates[name] === 'number') {
82
- return experimentalInteractionMetrics.rates[name];
83
- }
84
- if (experimentalInteractionMetrics.kind && typeof experimentalInteractionMetrics.kind[interactionType] === 'number') {
85
- return experimentalInteractionMetrics.kind[interactionType];
86
- }
87
- return 0;
88
- } catch (e) {
89
- return 0;
90
- }
91
- }
92
70
  export function getPostInteractionRate(name, interactionType) {
93
71
  try {
94
72
  if (!config) {
@@ -1,11 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */
2
-
3
2
  import { REACT_UFO_VERSION } from '../../../common/constants';
4
- import { getConfig } from '../../../config';
5
- import { getPageVisibilityState } from '../../../hidden-timing';
6
- import { experimentalInteractionLog, postInteractionLog } from '../../../interaction-metrics';
7
- import * as ssr from '../../../ssr';
8
- import { getVCObserver } from '../../../vc';
9
3
  export const sanitizeUfoName = name => {
10
4
  return name.replace(/_/g, '-');
11
5
  };
@@ -59,83 +53,4 @@ export function optimizeLabelStack(labelStack) {
59
53
  s: ls.segmentId
60
54
  } : {})
61
55
  }));
62
- }
63
- export const getInteractionStatus = interaction => {
64
- const originalInteractionStatus = interaction.abortReason ? 'ABORTED' : 'SUCCEEDED';
65
- const hasBm3TTI = interaction.apdex.length > 0;
66
- const overrideStatus = hasBm3TTI ? 'SUCCEEDED' : originalInteractionStatus;
67
- return {
68
- originalInteractionStatus,
69
- overrideStatus
70
- };
71
- };
72
- export const getPageVisibilityUpToTTAI = interaction => {
73
- const {
74
- start,
75
- end
76
- } = interaction;
77
- return getPageVisibilityState(start, end);
78
- };
79
- export const calculateVCMetrics = (interaction, prefix, getVCResultFn) => {
80
- var _interaction$apdex, _interaction$apdex$;
81
- const result = getVCResultFn({
82
- start: interaction.start,
83
- stop: interaction.end,
84
- tti: (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 ? void 0 : (_interaction$apdex$ = _interaction$apdex[0]) === null || _interaction$apdex$ === void 0 ? void 0 : _interaction$apdex$.stopTime,
85
- prefix,
86
- vc: interaction.vc
87
- });
88
- const VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
89
- if (!VC || !(result !== null && result !== void 0 && result[`${prefix}:vc:clean`])) {
90
- return result;
91
- }
92
- const interactionStatus = getInteractionStatus(interaction);
93
- const pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
94
- if (interactionStatus.originalInteractionStatus !== 'SUCCEEDED' || pageVisibilityUpToTTAI !== 'visible') {
95
- return result;
96
- }
97
- return result;
98
- };
99
- export function getSSRDoneTimeValue(config) {
100
- var _config$ssr, _config$ssr2;
101
- return config !== null && config !== void 0 && (_config$ssr = config.ssr) !== null && _config$ssr !== void 0 && _config$ssr.getSSRDoneTime ? config === null || config === void 0 ? void 0 : (_config$ssr2 = config.ssr) === null || _config$ssr2 === void 0 ? void 0 : _config$ssr2.getSSRDoneTime() : ssr.getSSRDoneTime();
102
- }
103
- export const getVCMetrics = interaction => {
104
- var _config$vc, _result$metricsVc;
105
- const config = getConfig();
106
- if (!(config !== null && config !== void 0 && (_config$vc = config.vc) !== null && _config$vc !== void 0 && _config$vc.enabled)) {
107
- return {};
108
- }
109
- if (interaction.type !== 'page_load' && interaction.type !== 'transition') {
110
- return {};
111
- }
112
- const ssr = interaction.type === 'page_load' && config !== null && config !== void 0 && config.ssr ? {
113
- ssr: getSSRDoneTimeValue(config)
114
- } : null;
115
- postInteractionLog.setVCObserverSSRConfig(ssr);
116
- const result = calculateVCMetrics(interaction, 'ufo', getVCObserver().getVCResult);
117
- return {
118
- ...result,
119
- 'metric:vc90': result === null || result === void 0 ? void 0 : (_result$metricsVc = result['metrics:vc']) === null || _result$metricsVc === void 0 ? void 0 : _result$metricsVc['90']
120
- };
121
- };
122
- export const getExperimentalVCMetrics = interaction => {
123
- if (experimentalInteractionLog.vcObserver) {
124
- var _result$metricsVc2;
125
- const result = calculateVCMetrics(interaction, 'ufo-experimental', experimentalInteractionLog.vcObserver.getVCResult);
126
- return {
127
- ...result,
128
- 'metric:experimental:vc90': result === null || result === void 0 ? void 0 : (_result$metricsVc2 = result['metrics:vc']) === null || _result$metricsVc2 === void 0 ? void 0 : _result$metricsVc2['90']
129
- };
130
- }
131
- return null;
132
- };
133
- export const getTTAI = interaction => {
134
- const {
135
- start,
136
- end
137
- } = interaction;
138
- const interactionStatus = getInteractionStatus(interaction);
139
- const pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
140
- return interactionStatus.originalInteractionStatus === 'SUCCEEDED' && pageVisibilityUpToTTAI === 'visible' ? Math.round(end - start) : undefined;
141
- };
56
+ }