@atlaskit/react-ufo 3.6.7 → 3.8.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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/config/index.js +0 -9
- package/dist/cjs/create-payload/index.js +6 -4
- package/dist/cjs/interaction-metrics/index.js +57 -17
- package/dist/cjs/interaction-metrics-init/index.js +11 -0
- package/dist/cjs/interactions-performance-observer/index.js +51 -0
- package/dist/cjs/segment/segment.js +0 -8
- package/dist/cjs/vc/vc-observer/observers/index.js +4 -18
- package/dist/cjs/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/es2019/config/index.js +0 -8
- package/dist/es2019/create-payload/index.js +5 -1
- package/dist/es2019/interaction-metrics/index.js +30 -0
- package/dist/es2019/interaction-metrics-init/index.js +11 -0
- package/dist/es2019/interactions-performance-observer/index.js +30 -0
- package/dist/es2019/segment/segment.js +0 -8
- package/dist/es2019/vc/vc-observer/observers/index.js +0 -15
- package/dist/es2019/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/esm/config/index.js +0 -8
- package/dist/esm/create-payload/index.js +6 -4
- package/dist/esm/interaction-metrics/index.js +55 -16
- package/dist/esm/interaction-metrics-init/index.js +11 -0
- package/dist/esm/interactions-performance-observer/index.js +44 -0
- package/dist/esm/segment/segment.js +0 -8
- package/dist/esm/vc/vc-observer/observers/index.js +4 -18
- package/dist/esm/vc/vc-observer/revisions/fy25_01.js +1 -1
- package/dist/types/common/common/types.d.ts +7 -0
- package/dist/types/common/vc/types.d.ts +1 -1
- package/dist/types/config/index.d.ts +0 -2
- package/dist/types/create-payload/index.d.ts +256 -0
- package/dist/types/interaction-metrics/index.d.ts +2 -0
- package/dist/types/interactions-performance-observer/index.d.ts +2 -0
- package/dist/types/vc/vc-observer/observers/index.d.ts +0 -1
- package/dist/types-ts4.5/common/common/types.d.ts +7 -0
- package/dist/types-ts4.5/common/vc/types.d.ts +1 -1
- package/dist/types-ts4.5/config/index.d.ts +0 -2
- package/dist/types-ts4.5/create-payload/index.d.ts +256 -0
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +2 -0
- package/dist/types-ts4.5/interactions-performance-observer/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -1
- package/package.json +5 -5
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/index.js +0 -186
- package/dist/cjs/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -68
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/index.js +0 -140
- package/dist/es2019/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -41
- package/dist/esm/vc/vc-observer/observers/editor-lnv/index.js +0 -180
- package/dist/esm/vc/vc-observer/observers/editor-lnv/test-utils.js +0 -58
- package/dist/types/vc/vc-observer/observers/editor-lnv/index.d.ts +0 -24
- package/dist/types/vc/vc-observer/observers/editor-lnv/test-utils.d.ts +0 -35
- package/dist/types-ts4.5/vc/vc-observer/observers/editor-lnv/index.d.ts +0 -24
- package/dist/types-ts4.5/vc/vc-observer/observers/editor-lnv/test-utils.d.ts +0 -35
|
@@ -694,7 +694,7 @@ function createInteractionMetricsPayload(_x3, _x4, _x5) {
|
|
|
694
694
|
function _createInteractionMetricsPayload() {
|
|
695
695
|
_createInteractionMetricsPayload = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(interaction, interactionId, experimental) {
|
|
696
696
|
var _window$location, _config$additionalPay;
|
|
697
|
-
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;
|
|
697
|
+
var interactionPayloadStart, config, end, start, ufoName, knownSegments, rate, type, abortReason, routeName, featureFlags, previousInteractionName, isPreviousInteractionAborted, abortedByInteractionName, responsiveness, 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;
|
|
698
698
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
699
699
|
while (1) switch (_context2.prev = _context2.next) {
|
|
700
700
|
case 0:
|
|
@@ -706,7 +706,7 @@ function _createInteractionMetricsPayload() {
|
|
|
706
706
|
}
|
|
707
707
|
throw Error('UFO Configuration not provided');
|
|
708
708
|
case 4:
|
|
709
|
-
end = interaction.end, start = interaction.start, ufoName = interaction.ufoName, knownSegments = interaction.knownSegments, rate = interaction.rate, type = interaction.type, abortReason = interaction.abortReason, routeName = interaction.routeName, featureFlags = interaction.featureFlags, previousInteractionName = interaction.previousInteractionName, isPreviousInteractionAborted = interaction.isPreviousInteractionAborted, abortedByInteractionName = interaction.abortedByInteractionName;
|
|
709
|
+
end = interaction.end, start = interaction.start, ufoName = interaction.ufoName, knownSegments = interaction.knownSegments, rate = interaction.rate, type = interaction.type, abortReason = interaction.abortReason, routeName = interaction.routeName, featureFlags = interaction.featureFlags, previousInteractionName = interaction.previousInteractionName, isPreviousInteractionAborted = interaction.isPreviousInteractionAborted, abortedByInteractionName = interaction.abortedByInteractionName, responsiveness = interaction.responsiveness;
|
|
710
710
|
pageVisibilityAtTTI = getPageVisibilityUpToTTI(interaction);
|
|
711
711
|
pageVisibilityAtTTAI = getPageVisibilityUpToTTAI(interaction);
|
|
712
712
|
segments = config.killswitchNestedSegments ? [] : knownSegments;
|
|
@@ -808,7 +808,7 @@ function _createInteractionMetricsPayload() {
|
|
|
808
808
|
'experience:key': experimental ? 'custom.experimental-interaction-metrics' : 'custom.interaction-metrics',
|
|
809
809
|
'experience:name': newUFOName
|
|
810
810
|
}, 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)), {}, {
|
|
811
|
-
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
811
|
+
interactionMetrics: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
812
812
|
namePrefix: config.namePrefix || '',
|
|
813
813
|
segmentPrefix: config.segmentPrefix || '',
|
|
814
814
|
interactionId: interactionId,
|
|
@@ -839,7 +839,9 @@ function _createInteractionMetricsPayload() {
|
|
|
839
839
|
marks: optimizeMarks(interaction.marks, getReactUFOPayloadVersion(interaction.type)),
|
|
840
840
|
customData: optimizeCustomData(interaction),
|
|
841
841
|
reactProfilerTimings: optimizeReactProfilerTimings(interaction.reactProfilerTimings, start, getReactUFOPayloadVersion(interaction.type))
|
|
842
|
-
},
|
|
842
|
+
}, responsiveness ? {
|
|
843
|
+
responsiveness: responsiveness
|
|
844
|
+
} : {}), labelStack), pageLoadInteractionMetrics), getDetailedInteractionMetrics(resourceTimings)), getPageLoadDetailedInteractionMetrics()), getBm3TrackerTimings(interaction)), {}, {
|
|
843
845
|
'metric:ttai': experimental ? regularTTAI || expTTAI : undefined,
|
|
844
846
|
'metric:experimental:ttai': expTTAI
|
|
845
847
|
}),
|
|
@@ -39,6 +39,45 @@ function isPerformanceTracingEnabled() {
|
|
|
39
39
|
var _getConfig;
|
|
40
40
|
return ((_getConfig = getConfig()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
|
|
41
41
|
}
|
|
42
|
+
var performanceEventObserver;
|
|
43
|
+
export var getPerformanceObserver = function getPerformanceObserver() {
|
|
44
|
+
performanceEventObserver = performanceEventObserver || new PerformanceObserver(function (entries) {
|
|
45
|
+
var list = entries.getEntries();
|
|
46
|
+
var _iterator = _createForOfIteratorHelper(list),
|
|
47
|
+
_step;
|
|
48
|
+
try {
|
|
49
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
50
|
+
var entry = _step.value;
|
|
51
|
+
if (entry.name === 'click') {
|
|
52
|
+
setInteractionPerformanceEvent(entry);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
} catch (err) {
|
|
56
|
+
_iterator.e(err);
|
|
57
|
+
} finally {
|
|
58
|
+
_iterator.f();
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return performanceEventObserver;
|
|
62
|
+
};
|
|
63
|
+
export var setInteractionPerformanceEvent = function setInteractionPerformanceEvent(entry) {
|
|
64
|
+
var interaction = getActiveInteraction();
|
|
65
|
+
if ((interaction === null || interaction === void 0 ? void 0 : interaction.type) === 'press') {
|
|
66
|
+
var responsiveness = interaction.responsiveness || {};
|
|
67
|
+
// if happens there is another event interaction that has started after
|
|
68
|
+
// the initial one, we don't want to replace the values if they have already
|
|
69
|
+
// been set up
|
|
70
|
+
responsiveness.experimentalInputToNextPaint = responsiveness.experimentalInputToNextPaint || entry.duration;
|
|
71
|
+
responsiveness.inputDelay = responsiveness.experimentalInputToNextPaint || entry.processingStart - entry.startTime;
|
|
72
|
+
interaction.responsiveness = responsiveness;
|
|
73
|
+
// if the entry start time is lower than the one in the interaction
|
|
74
|
+
// it means the interaction start time is not accurate, we assign
|
|
75
|
+
// this value which will match the timestamp in the event
|
|
76
|
+
if (entry.startTime < interaction.start) {
|
|
77
|
+
interaction.start = entry.startTime;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
42
81
|
function labelStackToString(labelStack, name) {
|
|
43
82
|
var _stack$map;
|
|
44
83
|
var stack = _toConsumableArray(labelStack !== null && labelStack !== void 0 ? labelStack : []);
|
|
@@ -59,17 +98,17 @@ function labelStackToIdString(labelStack) {
|
|
|
59
98
|
}
|
|
60
99
|
function addSegmentObserver(observer) {
|
|
61
100
|
segmentObservers.push(observer);
|
|
62
|
-
var
|
|
63
|
-
|
|
101
|
+
var _iterator2 = _createForOfIteratorHelper(segmentCache.values()),
|
|
102
|
+
_step2;
|
|
64
103
|
try {
|
|
65
|
-
for (
|
|
66
|
-
var segmentInfo =
|
|
104
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
105
|
+
var segmentInfo = _step2.value;
|
|
67
106
|
observer.onAdd(segmentInfo);
|
|
68
107
|
}
|
|
69
108
|
} catch (err) {
|
|
70
|
-
|
|
109
|
+
_iterator2.e(err);
|
|
71
110
|
} finally {
|
|
72
|
-
|
|
111
|
+
_iterator2.f();
|
|
73
112
|
}
|
|
74
113
|
}
|
|
75
114
|
function removeSegmentObserver(observer) {
|
|
@@ -486,24 +525,24 @@ function finishInteraction(id, data) {
|
|
|
486
525
|
});
|
|
487
526
|
try {
|
|
488
527
|
// for Firefox 102 and older
|
|
489
|
-
var
|
|
490
|
-
|
|
528
|
+
var _iterator3 = _createForOfIteratorHelper(profilerTimingMap.entries()),
|
|
529
|
+
_step3;
|
|
491
530
|
try {
|
|
492
|
-
for (
|
|
493
|
-
var
|
|
494
|
-
|
|
495
|
-
labelStack =
|
|
496
|
-
start =
|
|
497
|
-
end =
|
|
531
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
532
|
+
var _step3$value = _slicedToArray(_step3.value, 2),
|
|
533
|
+
_step3$value$ = _step3$value[1],
|
|
534
|
+
labelStack = _step3$value$.labelStack,
|
|
535
|
+
start = _step3$value$.start,
|
|
536
|
+
end = _step3$value$.end;
|
|
498
537
|
performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack), " [segment_ttai]"), {
|
|
499
538
|
start: start,
|
|
500
539
|
end: end
|
|
501
540
|
});
|
|
502
541
|
}
|
|
503
542
|
} catch (err) {
|
|
504
|
-
|
|
543
|
+
_iterator3.e(err);
|
|
505
544
|
} finally {
|
|
506
|
-
|
|
545
|
+
_iterator3.f();
|
|
507
546
|
}
|
|
508
547
|
} catch (e) {
|
|
509
548
|
// do nothing
|
|
@@ -5,6 +5,7 @@ import { setUFOConfig } from '../config';
|
|
|
5
5
|
import { experimentalVC, sinkExperimentalHandler } from '../create-experimental-interaction-metrics-payload';
|
|
6
6
|
import { setupHiddenTimingCapture } from '../hidden-timing';
|
|
7
7
|
import { postInteractionLog, sinkInteractionHandler, sinkPostInteractionLogHandler } from '../interaction-metrics';
|
|
8
|
+
import { getPerformanceObserver } from '../interactions-performance-observer';
|
|
8
9
|
import { getVCObserver } from '../vc';
|
|
9
10
|
import scheduleIdleCallback from './schedule-idle-callback';
|
|
10
11
|
var initialized = false;
|
|
@@ -98,6 +99,16 @@ export function init(analyticsWebClientAsync, config) {
|
|
|
98
99
|
setupHiddenTimingCapture();
|
|
99
100
|
startLighthouseObserver();
|
|
100
101
|
initialized = true;
|
|
102
|
+
if (fg('platform_ufo_enable_events_observer')) {
|
|
103
|
+
if (typeof PerformanceObserver !== 'undefined') {
|
|
104
|
+
var observer = getPerformanceObserver();
|
|
105
|
+
observer.observe({
|
|
106
|
+
type: 'event',
|
|
107
|
+
buffered: true,
|
|
108
|
+
durationThreshold: 16
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
101
112
|
Promise.all([analyticsWebClientAsync, import( /* webpackChunkName: "create-payloads" */'../create-payload'), import( /* webpackChunkName: "create-post-interaction-log-payload" */'../create-post-interaction-log-payload')]).then(function (_ref) {
|
|
102
113
|
var _ref2 = _slicedToArray(_ref, 3),
|
|
103
114
|
awc = _ref2[0],
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
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; }
|
|
3
|
+
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; }
|
|
4
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
5
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
6
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
|
+
import { getActiveInteraction } from '../interaction-metrics';
|
|
8
|
+
var performanceEventObserver;
|
|
9
|
+
export var getPerformanceObserver = function getPerformanceObserver() {
|
|
10
|
+
performanceEventObserver = performanceEventObserver || new PerformanceObserver(function (entries) {
|
|
11
|
+
var list = entries.getEntries();
|
|
12
|
+
var _iterator = _createForOfIteratorHelper(list),
|
|
13
|
+
_step;
|
|
14
|
+
try {
|
|
15
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
16
|
+
var entry = _step.value;
|
|
17
|
+
if (entry.name === 'click') {
|
|
18
|
+
setInteractionPerformanceEvent(entry);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
} catch (err) {
|
|
22
|
+
_iterator.e(err);
|
|
23
|
+
} finally {
|
|
24
|
+
_iterator.f();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return performanceEventObserver;
|
|
28
|
+
};
|
|
29
|
+
export var setInteractionPerformanceEvent = function setInteractionPerformanceEvent(entry) {
|
|
30
|
+
var interaction = getActiveInteraction();
|
|
31
|
+
if ((interaction === null || interaction === void 0 ? void 0 : interaction.type) === 'press') {
|
|
32
|
+
var _interaction$responsi, _interaction$responsi2;
|
|
33
|
+
// if happens there is another event interaction that has started after
|
|
34
|
+
// the initial one, we don't want to replace the values if they have already been set up
|
|
35
|
+
interaction.responsiveness = _objectSpread(_objectSpread({}, interaction.responsiveness), {}, {
|
|
36
|
+
experimentalInputToNextPaint: ((_interaction$responsi = interaction.responsiveness) === null || _interaction$responsi === void 0 ? void 0 : _interaction$responsi.experimentalInputToNextPaint) || entry.duration,
|
|
37
|
+
inputDelay: ((_interaction$responsi2 = interaction.responsiveness) === null || _interaction$responsi2 === void 0 ? void 0 : _interaction$responsi2.inputDelay) || entry.processingStart - entry.startTime
|
|
38
|
+
});
|
|
39
|
+
// if the entry start time is lower than the one in the interaction
|
|
40
|
+
// it means the interaction start time is not accurate, we assign
|
|
41
|
+
// this value which will match the timestamp in the event
|
|
42
|
+
interaction.start = Math.min(interaction.start, entry.startTime);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
@@ -23,7 +23,6 @@ var AsyncSegmentHighlight = /*#__PURE__*/lazy(function () {
|
|
|
23
23
|
};
|
|
24
24
|
});
|
|
25
25
|
});
|
|
26
|
-
var noopIdMap = new Map();
|
|
27
26
|
|
|
28
27
|
// KARL TODO: finish self profiling
|
|
29
28
|
/** A portion of the page we apply measurement to */
|
|
@@ -35,19 +34,12 @@ export default function UFOSegment(_ref) {
|
|
|
35
34
|
mode = _ref$mode === void 0 ? 'single' : _ref$mode;
|
|
36
35
|
var parentContext = useContext(UFOInteractionContext);
|
|
37
36
|
var segmentIdMap = useMemo(function () {
|
|
38
|
-
if (!fg('platform_ufo_segment_list_mode')) {
|
|
39
|
-
// just in case we cause rerender issues, use noop map
|
|
40
|
-
return noopIdMap;
|
|
41
|
-
}
|
|
42
37
|
if (!(parentContext !== null && parentContext !== void 0 && parentContext.segmentIdMap)) {
|
|
43
38
|
return new Map();
|
|
44
39
|
}
|
|
45
40
|
return parentContext.segmentIdMap;
|
|
46
41
|
}, [parentContext]);
|
|
47
42
|
var segmentId = useMemo(function () {
|
|
48
|
-
if (!fg('platform_ufo_segment_list_mode')) {
|
|
49
|
-
return generateId();
|
|
50
|
-
}
|
|
51
43
|
if (mode === 'single') {
|
|
52
44
|
return generateId();
|
|
53
45
|
}
|
|
@@ -4,9 +4,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
4
4
|
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; }
|
|
5
5
|
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; }
|
|
6
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
7
|
-
import { shouldHandleEditorLnv } from '../../../config';
|
|
8
7
|
import { isContainedWithinMediaWrapper } from '../media-wrapper/vc-utils';
|
|
9
|
-
import { EditorLnvHandler } from './editor-lnv';
|
|
10
8
|
import isNonVisualStyleMutation from './non-visual-styles/is-non-visual-style-mutation';
|
|
11
9
|
import { SSRPlaceholderHandlers } from './ssr-placeholders';
|
|
12
10
|
var state = {
|
|
@@ -76,7 +74,6 @@ export var Observers = /*#__PURE__*/function () {
|
|
|
76
74
|
this.intersectionObserver = this.getIntersectionObserver();
|
|
77
75
|
this.mutationObserver = this.getMutationObserver();
|
|
78
76
|
this.ssrPlaceholderHandler = new SSRPlaceholderHandlers();
|
|
79
|
-
this.editorLnvHandler = new EditorLnvHandler();
|
|
80
77
|
}
|
|
81
78
|
return _createClass(Observers, [{
|
|
82
79
|
key: "isBrowserSupported",
|
|
@@ -113,7 +110,6 @@ export var Observers = /*#__PURE__*/function () {
|
|
|
113
110
|
this.callbacks = new Set();
|
|
114
111
|
this.ssr.reactRootElement = null;
|
|
115
112
|
this.ssrPlaceholderHandler.clear();
|
|
116
|
-
this.editorLnvHandler.clear();
|
|
117
113
|
}
|
|
118
114
|
}, {
|
|
119
115
|
key: "getTotalTime",
|
|
@@ -145,7 +141,6 @@ export var Observers = /*#__PURE__*/function () {
|
|
|
145
141
|
if (!this.isBrowserSupported()) {
|
|
146
142
|
return null;
|
|
147
143
|
}
|
|
148
|
-
var shouldHandleEditorLnvLocal = shouldHandleEditorLnv();
|
|
149
144
|
return new MutationObserver(function (mutations) {
|
|
150
145
|
_this2.measureStart();
|
|
151
146
|
mutations.forEach(function (mutation) {
|
|
@@ -191,15 +186,6 @@ export var Observers = /*#__PURE__*/function () {
|
|
|
191
186
|
});
|
|
192
187
|
return;
|
|
193
188
|
}
|
|
194
|
-
if (shouldHandleEditorLnvLocal) {
|
|
195
|
-
if (_this2.editorLnvHandler.shouldHandleAddedNode(node)) {
|
|
196
|
-
_this2.editorLnvHandler.handleAddedNode(node).then(function (_ref) {
|
|
197
|
-
var shouldIgnore = _ref.shouldIgnore;
|
|
198
|
-
_this2.observeElement(node, mutation, 'html', shouldIgnore ? 'editor-lazy-node-view' : ignoreReason);
|
|
199
|
-
});
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
189
|
_this2.observeElement(node, mutation, 'html', ignoreReason);
|
|
204
190
|
}
|
|
205
191
|
if (node instanceof Text && node.parentElement != null) {
|
|
@@ -277,10 +263,10 @@ export var Observers = /*#__PURE__*/function () {
|
|
|
277
263
|
}
|
|
278
264
|
return new IntersectionObserver(function (entries) {
|
|
279
265
|
_this3.measureStart();
|
|
280
|
-
entries.forEach(function (
|
|
281
|
-
var isIntersecting =
|
|
282
|
-
ir =
|
|
283
|
-
target =
|
|
266
|
+
entries.forEach(function (_ref) {
|
|
267
|
+
var isIntersecting = _ref.isIntersecting,
|
|
268
|
+
ir = _ref.intersectionRect,
|
|
269
|
+
target = _ref.target;
|
|
284
270
|
var data = _this3.observedMutations.get(target);
|
|
285
271
|
_this3.observedMutations.delete(target);
|
|
286
272
|
if (isIntersecting && ir.width > 0 && ir.height > 0) {
|
|
@@ -7,7 +7,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
7
7
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
9
|
import { ViewportUpdateClassifier } from './ViewportUpdateClassifier';
|
|
10
|
-
var legacyIgnoreReasons = ['image', 'ssr-hydration'
|
|
10
|
+
var legacyIgnoreReasons = ['image', 'ssr-hydration'];
|
|
11
11
|
export var FY25_01Classifier = /*#__PURE__*/function (_ViewportUpdateClassi) {
|
|
12
12
|
function FY25_01Classifier() {
|
|
13
13
|
var _this;
|
|
@@ -82,6 +82,12 @@ export interface Redirect {
|
|
|
82
82
|
fromInteractionName: string;
|
|
83
83
|
time: number;
|
|
84
84
|
}
|
|
85
|
+
export type ResponsivenessMetric = {
|
|
86
|
+
experimentalInputToNextPaint?: number;
|
|
87
|
+
inputDelay?: number;
|
|
88
|
+
visuallyComplete?: number;
|
|
89
|
+
totalBlockingTime?: number;
|
|
90
|
+
};
|
|
85
91
|
export interface InteractionMetrics {
|
|
86
92
|
id: string;
|
|
87
93
|
start: number;
|
|
@@ -138,6 +144,7 @@ export interface InteractionMetrics {
|
|
|
138
144
|
* ]
|
|
139
145
|
* ```
|
|
140
146
|
*/
|
|
147
|
+
responsiveness?: ResponsivenessMetric;
|
|
141
148
|
labelStack: LabelStack | null;
|
|
142
149
|
routeName: string | null;
|
|
143
150
|
featureFlags?: {
|
|
@@ -37,7 +37,7 @@ export type VCEntryType = {
|
|
|
37
37
|
vc: number;
|
|
38
38
|
elements: string[];
|
|
39
39
|
};
|
|
40
|
-
export type VCIgnoreReason = 'image' | 'ssr-hydration' | '
|
|
40
|
+
export type VCIgnoreReason = 'image' | 'ssr-hydration' | 'not-visible' | 'non-visual-style' | '';
|
|
41
41
|
export type ComponentsLogEntry = {
|
|
42
42
|
type?: string;
|
|
43
43
|
targetName: string;
|
|
@@ -90,7 +90,6 @@ export type Config = {
|
|
|
90
90
|
readonly shouldCalculateLighthouseMetricsFromTTAI?: boolean;
|
|
91
91
|
readonly timeWindowForLateMutationsInMilliseconds?: number;
|
|
92
92
|
readonly manuallyTrackReactProfilerMounts?: boolean;
|
|
93
|
-
readonly enableEditorLnvHandler?: boolean;
|
|
94
93
|
/**
|
|
95
94
|
* @private
|
|
96
95
|
* @deprecated setting this will do nothing now
|
|
@@ -112,5 +111,4 @@ export declare function getRemoveInteractionsUFOPrefixes(): boolean;
|
|
|
112
111
|
export declare function getUfoNameOverrides(): UFONameOverride | undefined;
|
|
113
112
|
export declare function getDoNotAbortActivePressInteraction(): string[] | undefined;
|
|
114
113
|
export declare function getDoNotAbortActivePressInteractionOnTransition(): string[] | undefined;
|
|
115
|
-
export declare function shouldHandleEditorLnv(): boolean;
|
|
116
114
|
export {};
|