@atlaskit/react-ufo 3.4.0 → 3.4.2
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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -2
- package/dist/cjs/create-payload/index.js +136 -76
- package/dist/cjs/segment/segment.js +29 -4
- package/dist/cjs/vc/vc-observer/index.js +71 -46
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +18 -11
- package/dist/cjs/vc/vc-observer-new/get-element-name.js +52 -65
- package/dist/cjs/vc/vc-observer-new/get-unique-element-name.js +80 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +7 -2
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +6 -4
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +17 -9
- package/dist/es2019/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -2
- package/dist/es2019/create-payload/index.js +39 -3
- package/dist/es2019/segment/segment.js +29 -3
- package/dist/es2019/vc/vc-observer/index.js +39 -12
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +14 -7
- package/dist/es2019/vc/vc-observer-new/get-element-name.js +51 -65
- package/dist/es2019/vc/vc-observer-new/get-unique-element-name.js +74 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +6 -4
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +17 -9
- package/dist/esm/additional-payload/utils/lighthouse-metrics/utils/observer/index.js +8 -2
- package/dist/esm/create-payload/index.js +136 -76
- package/dist/esm/segment/segment.js +29 -4
- package/dist/esm/vc/vc-observer/index.js +71 -46
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +18 -11
- package/dist/esm/vc/vc-observer-new/get-element-name.js +52 -65
- package/dist/esm/vc/vc-observer-new/get-unique-element-name.js +74 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +6 -1
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +6 -4
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +17 -9
- package/dist/types/assets/utils.d.ts +1 -1
- package/dist/types/interaction-context/index.d.ts +2 -0
- package/dist/types/segment/segment.d.ts +2 -1
- package/dist/types/vc/vc-observer-new/get-unique-element-name.d.ts +8 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +1 -0
- package/dist/types-ts4.5/assets/utils.d.ts +1 -1
- package/dist/types-ts4.5/interaction-context/index.d.ts +2 -0
- package/dist/types-ts4.5/segment/segment.d.ts +2 -1
- package/dist/types-ts4.5/vc/vc-observer-new/get-unique-element-name.d.ts +8 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/fy25_03/index.d.ts +1 -0
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 3.4.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#126657](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/126657)
|
|
8
|
+
[`801d3cfb7f8d0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/801d3cfb7f8d0) -
|
|
9
|
+
Added LCP to page load events
|
|
10
|
+
|
|
11
|
+
## 3.4.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#124988](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/124988)
|
|
16
|
+
[`fa5bc92ae734d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/fa5bc92ae734d) -
|
|
17
|
+
Deduplicate nth-child(n) selectors produced by TTVC v3 debug info
|
|
18
|
+
|
|
3
19
|
## 3.4.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
|
@@ -8,6 +8,10 @@ var _const = require("../../const");
|
|
|
8
8
|
var _buffer = require("../buffer");
|
|
9
9
|
var pe = null;
|
|
10
10
|
var getObserver = function getObserver() {
|
|
11
|
+
if (typeof PerformanceObserver !== 'function') {
|
|
12
|
+
// Only instantiate the IntersectionObserver if it's supported
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
11
15
|
if (pe !== null) {
|
|
12
16
|
return pe;
|
|
13
17
|
}
|
|
@@ -24,13 +28,15 @@ var getObserver = function getObserver() {
|
|
|
24
28
|
return pe;
|
|
25
29
|
};
|
|
26
30
|
var startLSObserver = exports.startLSObserver = function startLSObserver() {
|
|
27
|
-
|
|
31
|
+
var _getObserver;
|
|
32
|
+
(_getObserver = getObserver()) === null || _getObserver === void 0 || _getObserver.observe({
|
|
28
33
|
type: _const.PerformanceObserverEntryTypes.LayoutShift,
|
|
29
34
|
buffered: true
|
|
30
35
|
});
|
|
31
36
|
};
|
|
32
37
|
var startLTObserver = exports.startLTObserver = function startLTObserver() {
|
|
33
|
-
|
|
38
|
+
var _getObserver2;
|
|
39
|
+
(_getObserver2 = getObserver()) === null || _getObserver2 === void 0 || _getObserver2.observe({
|
|
34
40
|
type: _const.PerformanceObserverEntryTypes.LongTask,
|
|
35
41
|
buffered: true
|
|
36
42
|
});
|
|
@@ -7,12 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.createExperimentalMetricsPayload = createExperimentalMetricsPayload;
|
|
9
9
|
exports.createPayloads = createPayloads;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
14
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
16
16
|
var _bowserUltralight = _interopRequireDefault(require("bowser-ultralight"));
|
|
17
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
18
|
var _additionalPayload = require("../additional-payload");
|
|
@@ -158,21 +158,80 @@ var getSSRSuccess = function getSSRSuccess(type) {
|
|
|
158
158
|
var getSSRFeatureFlags = function getSSRFeatureFlags(type) {
|
|
159
159
|
return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
|
|
160
160
|
};
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
161
|
+
var getLCP = function getLCP(end) {
|
|
162
|
+
return new Promise(function (resolve) {
|
|
163
|
+
var observer;
|
|
164
|
+
var timeout = setTimeout(function () {
|
|
165
|
+
var _observer;
|
|
166
|
+
(_observer = observer) === null || _observer === void 0 || _observer.disconnect();
|
|
167
|
+
resolve(null);
|
|
168
|
+
}, 200);
|
|
169
|
+
observer = new PerformanceObserver(function (list) {
|
|
170
|
+
var entries = Array.from(list.getEntries());
|
|
171
|
+
var lastEntry = entries.reduce(function (agg, entry) {
|
|
172
|
+
// Use the latest LCP candidate before TTAI
|
|
173
|
+
if (entry.startTime <= end && (agg === null || agg.startTime < entry.startTime)) {
|
|
174
|
+
return entry;
|
|
175
|
+
}
|
|
176
|
+
return agg;
|
|
177
|
+
}, null);
|
|
178
|
+
clearTimeout(timeout);
|
|
179
|
+
if (!lastEntry || lastEntry === null) {
|
|
180
|
+
resolve(null);
|
|
181
|
+
} else {
|
|
182
|
+
resolve(lastEntry.startTime);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
observer.observe({
|
|
186
|
+
type: "largest-contentful-paint",
|
|
187
|
+
buffered: true
|
|
188
|
+
});
|
|
173
189
|
});
|
|
174
|
-
return metrics;
|
|
175
190
|
};
|
|
191
|
+
var getPaintMetrics = /*#__PURE__*/function () {
|
|
192
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(type, end) {
|
|
193
|
+
var metrics, lcp;
|
|
194
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
195
|
+
while (1) switch (_context.prev = _context.next) {
|
|
196
|
+
case 0:
|
|
197
|
+
if (!(type !== 'page_load')) {
|
|
198
|
+
_context.next = 2;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
return _context.abrupt("return", {});
|
|
202
|
+
case 2:
|
|
203
|
+
metrics = {};
|
|
204
|
+
performance.getEntriesByType('paint').forEach(function (entry) {
|
|
205
|
+
if (entry.name === 'first-paint') {
|
|
206
|
+
metrics['metric:fp'] = Math.round(entry.startTime);
|
|
207
|
+
}
|
|
208
|
+
if (entry.name === 'first-contentful-paint') {
|
|
209
|
+
metrics['metric:fcp'] = Math.round(entry.startTime);
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
if (!(0, _platformFeatureFlags.fg)('ufo_lcp')) {
|
|
213
|
+
_context.next = 9;
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
_context.next = 7;
|
|
217
|
+
return getLCP(end);
|
|
218
|
+
case 7:
|
|
219
|
+
lcp = _context.sent;
|
|
220
|
+
if (lcp) {
|
|
221
|
+
metrics['metric:lcp'] = Math.round(lcp);
|
|
222
|
+
}
|
|
223
|
+
case 9:
|
|
224
|
+
return _context.abrupt("return", metrics);
|
|
225
|
+
case 10:
|
|
226
|
+
case "end":
|
|
227
|
+
return _context.stop();
|
|
228
|
+
}
|
|
229
|
+
}, _callee);
|
|
230
|
+
}));
|
|
231
|
+
return function getPaintMetrics(_x, _x2) {
|
|
232
|
+
return _ref2.apply(this, arguments);
|
|
233
|
+
};
|
|
234
|
+
}();
|
|
176
235
|
var getTTAI = function getTTAI(interaction) {
|
|
177
236
|
var start = interaction.start,
|
|
178
237
|
end = interaction.end;
|
|
@@ -329,10 +388,10 @@ var getTracingContextData = function getTracingContextData(interaction) {
|
|
|
329
388
|
function optimizeCustomData(interaction) {
|
|
330
389
|
var customData = interaction.customData,
|
|
331
390
|
legacyMetrics = interaction.legacyMetrics;
|
|
332
|
-
var customDataMap = customData.reduce(function (result,
|
|
391
|
+
var customDataMap = customData.reduce(function (result, _ref3) {
|
|
333
392
|
var _result$get$data, _result$get;
|
|
334
|
-
var labelStack =
|
|
335
|
-
data =
|
|
393
|
+
var labelStack = _ref3.labelStack,
|
|
394
|
+
data = _ref3.data;
|
|
336
395
|
var label = (0, _utils.stringifyLabelStackFully)(labelStack);
|
|
337
396
|
var value = (_result$get$data = (_result$get = result.get(label)) === null || _result$get === void 0 ? void 0 : _result$get.data) !== null && _result$get$data !== void 0 ? _result$get$data : {};
|
|
338
397
|
result.set(label, {
|
|
@@ -364,12 +423,12 @@ function optimizeCustomData(interaction) {
|
|
|
364
423
|
return (0, _toConsumableArray2.default)(customDataMap.values());
|
|
365
424
|
}
|
|
366
425
|
function optimizeReactProfilerTimings(reactProfilerTimings, interactionStart, reactUFOVersion) {
|
|
367
|
-
var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result,
|
|
368
|
-
var labelStack =
|
|
369
|
-
startTime =
|
|
370
|
-
commitTime =
|
|
371
|
-
actualDuration =
|
|
372
|
-
type =
|
|
426
|
+
var reactProfilerTimingsMap = reactProfilerTimings.reduce(function (result, _ref4) {
|
|
427
|
+
var labelStack = _ref4.labelStack,
|
|
428
|
+
startTime = _ref4.startTime,
|
|
429
|
+
commitTime = _ref4.commitTime,
|
|
430
|
+
actualDuration = _ref4.actualDuration,
|
|
431
|
+
type = _ref4.type;
|
|
373
432
|
if (labelStack && startTime >= interactionStart) {
|
|
374
433
|
var label = (0, _utils.stringifyLabelStackFully)(labelStack);
|
|
375
434
|
var start = Math.round(startTime);
|
|
@@ -515,10 +574,10 @@ function optimizeCustomTimings(customTimings, interactionStart) {
|
|
|
515
574
|
}, []);
|
|
516
575
|
}
|
|
517
576
|
function optimizeMarks(marks, reactUFOVersion) {
|
|
518
|
-
return marks.map(function (
|
|
519
|
-
var labelStack =
|
|
520
|
-
time =
|
|
521
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
577
|
+
return marks.map(function (_ref5) {
|
|
578
|
+
var labelStack = _ref5.labelStack,
|
|
579
|
+
time = _ref5.time,
|
|
580
|
+
others = (0, _objectWithoutProperties2.default)(_ref5, _excluded);
|
|
522
581
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
523
582
|
labelStack: labelStack && (0, _utils.optimizeLabelStack)(labelStack, reactUFOVersion),
|
|
524
583
|
time: Math.round(time)
|
|
@@ -526,10 +585,10 @@ function optimizeMarks(marks, reactUFOVersion) {
|
|
|
526
585
|
});
|
|
527
586
|
}
|
|
528
587
|
function optimizeApdex(apdex, reactUFOVersion) {
|
|
529
|
-
return apdex.map(function (
|
|
530
|
-
var stopTime =
|
|
531
|
-
labelStack =
|
|
532
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
588
|
+
return apdex.map(function (_ref6) {
|
|
589
|
+
var stopTime = _ref6.stopTime,
|
|
590
|
+
labelStack = _ref6.labelStack,
|
|
591
|
+
others = (0, _objectWithoutProperties2.default)(_ref6, _excluded2);
|
|
533
592
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
534
593
|
stopTime: Math.round(stopTime)
|
|
535
594
|
}, labelStack ? {
|
|
@@ -643,20 +702,20 @@ function getErrorCounts(interaction) {
|
|
|
643
702
|
'ufo:errors:count': interaction.errors.length
|
|
644
703
|
};
|
|
645
704
|
}
|
|
646
|
-
function createInteractionMetricsPayload(
|
|
705
|
+
function createInteractionMetricsPayload(_x3, _x4, _x5) {
|
|
647
706
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
648
707
|
}
|
|
649
708
|
function _createInteractionMetricsPayload() {
|
|
650
|
-
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
709
|
+
_createInteractionMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(interaction, interactionId, experimental) {
|
|
651
710
|
var _window$location, _config$additionalPay;
|
|
652
|
-
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, payload;
|
|
653
|
-
return _regenerator.default.wrap(function
|
|
654
|
-
while (1) switch (
|
|
711
|
+
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, pageVisibilityAtTTI, pageVisibilityAtTTAI, segments, segmentTree, isDetailedPayload, isPageLoad, calculatePageVisibilityFromTheStartOfPageLoad, moreAccuratePageVisibilityAtTTI, moreAccuratePageVisibilityAtTTAI, labelStack, getInitialPageLoadSSRMetrics, pageLoadInteractionMetrics, getDetailedInteractionMetrics, getPageLoadDetailedInteractionMetrics, newUFOName, resourceTimings, _yield$Promise$all, _yield$Promise$all2, vcMetrics, experimentalMetrics, paintMetrics, payload;
|
|
712
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
713
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
655
714
|
case 0:
|
|
656
715
|
interactionPayloadStart = performance.now();
|
|
657
716
|
config = (0, _config.getConfig)();
|
|
658
717
|
if (config) {
|
|
659
|
-
|
|
718
|
+
_context2.next = 4;
|
|
660
719
|
break;
|
|
661
720
|
}
|
|
662
721
|
throw Error('UFO Configuration not provided');
|
|
@@ -699,9 +758,9 @@ function _createInteractionMetricsPayload() {
|
|
|
699
758
|
var spans = [].concat((0, _toConsumableArray2.default)(interaction.spans), (0, _toConsumableArray2.default)(_interactionMetrics.interactionSpans));
|
|
700
759
|
_interactionMetrics.interactionSpans.length = 0;
|
|
701
760
|
return {
|
|
702
|
-
errors: interaction.errors.map(function (
|
|
703
|
-
var labelStack =
|
|
704
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
761
|
+
errors: interaction.errors.map(function (_ref7) {
|
|
762
|
+
var labelStack = _ref7.labelStack,
|
|
763
|
+
others = (0, _objectWithoutProperties2.default)(_ref7, _excluded3);
|
|
705
764
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
706
765
|
labelStack: labelStack && (0, _utils.optimizeLabelStack)(labelStack, (0, _constants.getReactUFOVersion)(interaction.type))
|
|
707
766
|
});
|
|
@@ -734,13 +793,14 @@ function _createInteractionMetricsPayload() {
|
|
|
734
793
|
}
|
|
735
794
|
newUFOName = (0, _utils.sanitizeUfoName)(ufoName);
|
|
736
795
|
resourceTimings = getResourceTimings(start, end);
|
|
737
|
-
|
|
738
|
-
return Promise.all([(0, _getVcMetrics.default)(interaction), experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : Promise.resolve(undefined)]);
|
|
796
|
+
_context2.next = 24;
|
|
797
|
+
return Promise.all([(0, _getVcMetrics.default)(interaction), experimental ? (0, _createExperimentalInteractionMetricsPayload.getExperimentalVCMetrics)(interaction) : Promise.resolve(undefined), getPaintMetrics(type, end)]);
|
|
739
798
|
case 24:
|
|
740
|
-
_yield$Promise$all =
|
|
741
|
-
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all,
|
|
799
|
+
_yield$Promise$all = _context2.sent;
|
|
800
|
+
_yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 3);
|
|
742
801
|
vcMetrics = _yield$Promise$all2[0];
|
|
743
802
|
experimentalMetrics = _yield$Promise$all2[1];
|
|
803
|
+
paintMetrics = _yield$Promise$all2[2];
|
|
744
804
|
payload = {
|
|
745
805
|
actionSubject: 'experience',
|
|
746
806
|
action: 'measured',
|
|
@@ -761,7 +821,7 @@ function _createInteractionMetricsPayload() {
|
|
|
761
821
|
'event:region': config.region || 'unknown',
|
|
762
822
|
'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
|
|
763
823
|
'experience:name': newUFOName
|
|
764
|
-
}, getBrowserMetadata()), getSSRProperties(type)), getAssetsMetrics(interaction, pageLoadInteractionMetrics === null || pageLoadInteractionMetrics === void 0 ? void 0 : pageLoadInteractionMetrics.SSRDoneTime)), getPPSMetrics(interaction)),
|
|
824
|
+
}, getBrowserMetadata()), getSSRProperties(type)), getAssetsMetrics(interaction, pageLoadInteractionMetrics === null || pageLoadInteractionMetrics === void 0 ? void 0 : pageLoadInteractionMetrics.SSRDoneTime)), getPPSMetrics(interaction)), paintMetrics), getNavigationMetrics(type)), vcMetrics), experimentalMetrics), (_config$additionalPay = config.additionalPayloadData) === null || _config$additionalPay === void 0 ? void 0 : _config$additionalPay.call(config, interaction)), getTracingContextData(interaction)), getStylesheetMetrics()), getErrorCounts(interaction)), {}, {
|
|
765
825
|
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
766
826
|
namePrefix: config.namePrefix || '',
|
|
767
827
|
segmentPrefix: config.segmentPrefix || '',
|
|
@@ -783,9 +843,9 @@ function _createInteractionMetricsPayload() {
|
|
|
783
843
|
apdex: optimizeApdex(interaction.apdex, (0, _constants.getReactUFOVersion)(interaction.type)),
|
|
784
844
|
end: Math.round(end),
|
|
785
845
|
start: Math.round(start),
|
|
786
|
-
segments: (0, _constants.getReactUFOVersion)(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (
|
|
787
|
-
var labelStack =
|
|
788
|
-
others = (0, _objectWithoutProperties2.default)(
|
|
846
|
+
segments: (0, _constants.getReactUFOVersion)(interaction.type) === '2.0.0' ? segmentTree : segments.map(function (_ref8) {
|
|
847
|
+
var labelStack = _ref8.labelStack,
|
|
848
|
+
others = (0, _objectWithoutProperties2.default)(_ref8, _excluded4);
|
|
789
849
|
return _objectSpread(_objectSpread({}, others), {}, {
|
|
790
850
|
labelStack: (0, _utils.optimizeLabelStack)(labelStack, (0, _constants.getReactUFOVersion)(interaction.type))
|
|
791
851
|
});
|
|
@@ -806,53 +866,53 @@ function _createInteractionMetricsPayload() {
|
|
|
806
866
|
expTTAI = undefined;
|
|
807
867
|
}
|
|
808
868
|
payload.attributes.properties['event:sizeInKb'] = getPayloadSize(payload.attributes.properties);
|
|
809
|
-
return
|
|
810
|
-
case
|
|
869
|
+
return _context2.abrupt("return", payload);
|
|
870
|
+
case 33:
|
|
811
871
|
case "end":
|
|
812
|
-
return
|
|
872
|
+
return _context2.stop();
|
|
813
873
|
}
|
|
814
|
-
},
|
|
874
|
+
}, _callee2);
|
|
815
875
|
}));
|
|
816
876
|
return _createInteractionMetricsPayload.apply(this, arguments);
|
|
817
877
|
}
|
|
818
|
-
function createPayloads(
|
|
878
|
+
function createPayloads(_x6, _x7) {
|
|
819
879
|
return _createPayloads.apply(this, arguments);
|
|
820
880
|
}
|
|
821
881
|
function _createPayloads() {
|
|
822
|
-
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
882
|
+
_createPayloads = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(interactionId, interaction) {
|
|
823
883
|
var ufoNameOverride, modifiedInteraction, interactionMetricsPayload;
|
|
824
|
-
return _regenerator.default.wrap(function
|
|
825
|
-
while (1) switch (
|
|
884
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
885
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
826
886
|
case 0:
|
|
827
887
|
ufoNameOverride = getUfoNameOverride(interaction);
|
|
828
888
|
modifiedInteraction = _objectSpread(_objectSpread({}, interaction), {}, {
|
|
829
889
|
ufoName: ufoNameOverride
|
|
830
890
|
});
|
|
831
|
-
|
|
891
|
+
_context3.next = 4;
|
|
832
892
|
return createInteractionMetricsPayload(modifiedInteraction, interactionId);
|
|
833
893
|
case 4:
|
|
834
|
-
interactionMetricsPayload =
|
|
835
|
-
return
|
|
894
|
+
interactionMetricsPayload = _context3.sent;
|
|
895
|
+
return _context3.abrupt("return", [interactionMetricsPayload]);
|
|
836
896
|
case 6:
|
|
837
897
|
case "end":
|
|
838
|
-
return
|
|
898
|
+
return _context3.stop();
|
|
839
899
|
}
|
|
840
|
-
},
|
|
900
|
+
}, _callee3);
|
|
841
901
|
}));
|
|
842
902
|
return _createPayloads.apply(this, arguments);
|
|
843
903
|
}
|
|
844
|
-
function createExperimentalMetricsPayload(
|
|
904
|
+
function createExperimentalMetricsPayload(_x8, _x9) {
|
|
845
905
|
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
846
906
|
}
|
|
847
907
|
function _createExperimentalMetricsPayload() {
|
|
848
|
-
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function
|
|
908
|
+
_createExperimentalMetricsPayload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(interactionId, interaction) {
|
|
849
909
|
var config, ufoName, rate, pageVisibilityState, result;
|
|
850
|
-
return _regenerator.default.wrap(function
|
|
851
|
-
while (1) switch (
|
|
910
|
+
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
911
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
852
912
|
case 0:
|
|
853
913
|
config = (0, _config.getConfig)();
|
|
854
914
|
if (config) {
|
|
855
|
-
|
|
915
|
+
_context4.next = 3;
|
|
856
916
|
break;
|
|
857
917
|
}
|
|
858
918
|
throw Error('UFO Configuration not provided');
|
|
@@ -860,28 +920,28 @@ function _createExperimentalMetricsPayload() {
|
|
|
860
920
|
ufoName = (0, _utils.sanitizeUfoName)(interaction.ufoName);
|
|
861
921
|
rate = (0, _config.getExperimentalInteractionRate)(ufoName, interaction.type);
|
|
862
922
|
if ((0, _coinflip.default)(rate)) {
|
|
863
|
-
|
|
923
|
+
_context4.next = 7;
|
|
864
924
|
break;
|
|
865
925
|
}
|
|
866
|
-
return
|
|
926
|
+
return _context4.abrupt("return", null);
|
|
867
927
|
case 7:
|
|
868
928
|
pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
869
929
|
if (!(pageVisibilityState !== 'visible')) {
|
|
870
|
-
|
|
930
|
+
_context4.next = 10;
|
|
871
931
|
break;
|
|
872
932
|
}
|
|
873
|
-
return
|
|
933
|
+
return _context4.abrupt("return", null);
|
|
874
934
|
case 10:
|
|
875
|
-
|
|
935
|
+
_context4.next = 12;
|
|
876
936
|
return createInteractionMetricsPayload(interaction, interactionId, true);
|
|
877
937
|
case 12:
|
|
878
|
-
result =
|
|
879
|
-
return
|
|
938
|
+
result = _context4.sent;
|
|
939
|
+
return _context4.abrupt("return", result);
|
|
880
940
|
case 14:
|
|
881
941
|
case "end":
|
|
882
|
-
return
|
|
942
|
+
return _context4.stop();
|
|
883
943
|
}
|
|
884
|
-
},
|
|
944
|
+
}, _callee4);
|
|
885
945
|
}));
|
|
886
946
|
return _createExperimentalMetricsPayload.apply(this, arguments);
|
|
887
947
|
}
|
|
@@ -35,16 +35,40 @@ var AsyncSegmentHighlight = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
|
35
35
|
};
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
|
+
var noopIdMap = new Map();
|
|
38
39
|
|
|
39
40
|
/** A portion of the page we apply measurement to */
|
|
40
41
|
function UFOSegment(_ref) {
|
|
41
42
|
var _getConfig2;
|
|
42
43
|
var segmentName = _ref.name,
|
|
43
|
-
children = _ref.children
|
|
44
|
+
children = _ref.children,
|
|
45
|
+
_ref$mode = _ref.mode,
|
|
46
|
+
mode = _ref$mode === void 0 ? 'single' : _ref$mode;
|
|
44
47
|
var parentContext = (0, _react.useContext)(_interactionContext.default);
|
|
48
|
+
var segmentIdMap = (0, _react.useMemo)(function () {
|
|
49
|
+
if (!(0, _platformFeatureFlags.fg)('platform_ufo_segment_list_mode')) {
|
|
50
|
+
// just in case we cause rerender issues, use noop map
|
|
51
|
+
return noopIdMap;
|
|
52
|
+
}
|
|
53
|
+
if (!(parentContext !== null && parentContext !== void 0 && parentContext.segmentIdMap)) {
|
|
54
|
+
return new Map();
|
|
55
|
+
}
|
|
56
|
+
return parentContext.segmentIdMap;
|
|
57
|
+
}, [parentContext]);
|
|
45
58
|
var segmentId = (0, _react.useMemo)(function () {
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
if (!(0, _platformFeatureFlags.fg)('platform_ufo_segment_list_mode')) {
|
|
60
|
+
return (0, _shortId.default)();
|
|
61
|
+
}
|
|
62
|
+
if (mode === 'single') {
|
|
63
|
+
return (0, _shortId.default)();
|
|
64
|
+
}
|
|
65
|
+
if (segmentIdMap.has(segmentName)) {
|
|
66
|
+
return segmentIdMap.get(segmentName);
|
|
67
|
+
}
|
|
68
|
+
var newSegmentId = (0, _shortId.default)();
|
|
69
|
+
segmentIdMap.set(segmentName, newSegmentId);
|
|
70
|
+
return newSegmentId;
|
|
71
|
+
}, [mode, segmentName, segmentIdMap]);
|
|
48
72
|
var labelStack = (0, _react.useMemo)(function () {
|
|
49
73
|
return parentContext !== null && parentContext !== void 0 && parentContext.labelStack ? [].concat((0, _toConsumableArray2.default)(parentContext.labelStack), [{
|
|
50
74
|
name: segmentName,
|
|
@@ -132,6 +156,7 @@ function UFOSegment(_ref) {
|
|
|
132
156
|
}
|
|
133
157
|
return {
|
|
134
158
|
labelStack: labelStack,
|
|
159
|
+
segmentIdMap: segmentIdMap,
|
|
135
160
|
hold: function hold() {
|
|
136
161
|
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'unknown';
|
|
137
162
|
return this._internalHold(this.labelStack, name);
|
|
@@ -232,7 +257,7 @@ function UFOSegment(_ref) {
|
|
|
232
257
|
_internalHoldByID: _internalHoldByID,
|
|
233
258
|
complete: complete
|
|
234
259
|
};
|
|
235
|
-
}, [parentContext, labelStack, interactionId]);
|
|
260
|
+
}, [parentContext, labelStack, segmentIdMap, interactionId]);
|
|
236
261
|
var hasMounted = (0, _react.useRef)(false);
|
|
237
262
|
var onRender = (0, _react.useCallback)(function (_id, phase, actualDuration, baseDuration, startTime, commitTime) {
|
|
238
263
|
var _getConfig;
|