@atlaskit/react-ufo 4.10.0 → 4.10.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 +19 -0
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +10 -7
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +13 -9
- package/dist/cjs/interaction-metrics/index.js +6 -4
- package/dist/cjs/interaction-metrics/post-interaction-log.js +13 -6
- package/dist/cjs/vc/index.js +4 -1
- package/dist/cjs/vc/vc-observer-new/index.js +10 -4
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +11 -18
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +14 -16
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +50 -0
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +5 -2
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +5 -2
- package/dist/es2019/interaction-metrics/index.js +6 -4
- package/dist/es2019/interaction-metrics/post-interaction-log.js +7 -1
- package/dist/es2019/vc/index.js +4 -1
- package/dist/es2019/vc/vc-observer-new/index.js +11 -2
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +10 -15
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +11 -11
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +27 -0
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +10 -7
- package/dist/esm/create-payload/utils/get-vc-metrics.js +13 -9
- package/dist/esm/interaction-metrics/index.js +6 -4
- package/dist/esm/interaction-metrics/post-interaction-log.js +13 -6
- package/dist/esm/vc/index.js +4 -1
- package/dist/esm/vc/vc-observer-new/index.js +10 -4
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +11 -18
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +14 -16
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +43 -0
- package/dist/types/common/common/types.d.ts +1 -0
- package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +1 -0
- package/dist/types/create-payload/index.d.ts +384 -0
- package/dist/types/interaction-metrics/index.d.ts +2 -2
- package/dist/types/vc/types.d.ts +4 -0
- package/dist/types/vc/vc-observer/getVCRevisionDebugDetails.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +4 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +4 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.d.ts +6 -0
- package/dist/types-ts4.5/common/common/types.d.ts +1 -0
- package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +1 -0
- package/dist/types-ts4.5/create-payload/index.d.ts +384 -0
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +2 -2
- package/dist/types-ts4.5/vc/types.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionDebugDetails.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.d.ts +6 -0
- package/package.json +1 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @atlaskit/ufo-interaction-ignore
|
|
2
2
|
|
|
3
|
+
## 4.10.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`4b8df6fc79b12`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4b8df6fc79b12) -
|
|
8
|
+
Add interactionType to VC debugData
|
|
9
|
+
- [`4b8df6fc79b12`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4b8df6fc79b12) -
|
|
10
|
+
bugfixes on VC debug data
|
|
11
|
+
|
|
12
|
+
## 4.10.1
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`092ad737a2396`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/092ad737a2396) -
|
|
17
|
+
handle nested display contents elements in TTVC v4
|
|
18
|
+
- [`63743e34fad29`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/63743e34fad29) -
|
|
19
|
+
Add an optional arg to func addError and addErrorToAll so that to error hash can be included in
|
|
20
|
+
UFO messages
|
|
21
|
+
|
|
3
22
|
## 4.10.0
|
|
4
23
|
|
|
5
24
|
### Minor Changes
|
|
@@ -95,18 +95,19 @@ function getExperimentalVCMetrics(_x) {
|
|
|
95
95
|
}
|
|
96
96
|
function _getExperimentalVCMetrics() {
|
|
97
97
|
_getExperimentalVCMetrics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(interaction) {
|
|
98
|
-
var vcObserver, _interaction$apdex, prefix, result, VC
|
|
98
|
+
var vcObserver, pageVisibilityUpToTTAI, _interaction$apdex, prefix, result, VC;
|
|
99
99
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
100
100
|
while (1) switch (_context.prev = _context.next) {
|
|
101
101
|
case 0:
|
|
102
102
|
// Use per-interaction VC observer if available, otherwise fall back to global experimentalVC
|
|
103
103
|
vcObserver = interaction.experimentalVCObserver || experimentalVC.vcObserver;
|
|
104
|
+
pageVisibilityUpToTTAI = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
104
105
|
if (!vcObserver) {
|
|
105
106
|
_context.next = 13;
|
|
106
107
|
break;
|
|
107
108
|
}
|
|
108
109
|
prefix = 'ufo-experimental';
|
|
109
|
-
_context.next =
|
|
110
|
+
_context.next = 6;
|
|
110
111
|
return vcObserver.getVCResult({
|
|
111
112
|
start: interaction.start,
|
|
112
113
|
stop: interaction.end,
|
|
@@ -115,18 +116,20 @@ function _getExperimentalVCMetrics() {
|
|
|
115
116
|
prefix: prefix,
|
|
116
117
|
vc: interaction.vc,
|
|
117
118
|
experienceKey: interaction.ufoName,
|
|
118
|
-
interactionId: interaction.id
|
|
119
|
+
interactionId: interaction.id,
|
|
120
|
+
interactionType: interaction.type,
|
|
121
|
+
isPageVisible: pageVisibilityUpToTTAI === 'visible',
|
|
122
|
+
interactionAbortReason: interaction.abortReason
|
|
119
123
|
});
|
|
120
|
-
case
|
|
124
|
+
case 6:
|
|
121
125
|
result = _context.sent;
|
|
122
126
|
VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
123
127
|
if (!(!VC || !(result !== null && result !== void 0 && result["".concat(prefix, ":vc:clean")]))) {
|
|
124
|
-
_context.next =
|
|
128
|
+
_context.next = 10;
|
|
125
129
|
break;
|
|
126
130
|
}
|
|
127
131
|
return _context.abrupt("return", result);
|
|
128
|
-
case
|
|
129
|
-
pageVisibilityUpToTTAI = (0, _hiddenTiming.getPageVisibilityState)(interaction.start, interaction.end);
|
|
132
|
+
case 10:
|
|
130
133
|
if (!(interaction.abortReason || pageVisibilityUpToTTAI !== 'visible')) {
|
|
131
134
|
_context.next = 12;
|
|
132
135
|
break;
|
|
@@ -26,6 +26,7 @@ function _getVCMetrics() {
|
|
|
26
26
|
config,
|
|
27
27
|
interactionStatus,
|
|
28
28
|
pageVisibilityUpToTTAI,
|
|
29
|
+
isPageVisible,
|
|
29
30
|
shouldReportVCMetrics,
|
|
30
31
|
observer,
|
|
31
32
|
isSSREnabled,
|
|
@@ -56,14 +57,15 @@ function _getVCMetrics() {
|
|
|
56
57
|
case 7:
|
|
57
58
|
interactionStatus = (0, _getInteractionStatus.default)(interaction);
|
|
58
59
|
pageVisibilityUpToTTAI = (0, _getPageVisibilityUpToTtai.default)(interaction);
|
|
59
|
-
|
|
60
|
+
isPageVisible = pageVisibilityUpToTTAI === 'visible';
|
|
61
|
+
shouldReportVCMetrics = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && isPageVisible; // Use per-interaction VC observer if available, otherwise fall back to global
|
|
60
62
|
observer = interaction.vcObserver;
|
|
61
63
|
if (observer) {
|
|
62
|
-
_context.next =
|
|
64
|
+
_context.next = 14;
|
|
63
65
|
break;
|
|
64
66
|
}
|
|
65
67
|
return _context.abrupt("return", {});
|
|
66
|
-
case
|
|
68
|
+
case 14:
|
|
67
69
|
isSSREnabled = interaction.type === 'page_load' && ((config === null || config === void 0 ? void 0 : config.ssr) || (config === null || config === void 0 || (_config$vc$ssrWhiteli = config.vc.ssrWhitelist) === null || _config$vc$ssrWhiteli === void 0 ? void 0 : _config$vc$ssrWhiteli.includes(interaction.ufoName)));
|
|
68
70
|
ssr = interaction.type === 'page_load' && isSSREnabled ? {
|
|
69
71
|
ssr: (0, _getSsrDoneTimeValue.default)(config)
|
|
@@ -71,7 +73,7 @@ function _getVCMetrics() {
|
|
|
71
73
|
_interactionMetrics.postInteractionLog.setVCObserverSSRConfig(ssr);
|
|
72
74
|
tti = (_interaction$apdex = interaction.apdex) === null || _interaction$apdex === void 0 || (_interaction$apdex = _interaction$apdex[0]) === null || _interaction$apdex === void 0 ? void 0 : _interaction$apdex.stopTime;
|
|
73
75
|
prefix = 'ufo';
|
|
74
|
-
_context.next =
|
|
76
|
+
_context.next = 21;
|
|
75
77
|
return observer.getVCResult(_objectSpread(_objectSpread({
|
|
76
78
|
start: interaction.start,
|
|
77
79
|
stop: interaction.end,
|
|
@@ -85,9 +87,11 @@ function _getVCMetrics() {
|
|
|
85
87
|
includeSSRRatio: (_config$vc3 = config.vc) === null || _config$vc3 === void 0 ? void 0 : _config$vc3.includeSSRRatio
|
|
86
88
|
}, ssr), {}, {
|
|
87
89
|
include3p: include3p,
|
|
88
|
-
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
|
|
90
|
+
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch,
|
|
91
|
+
interactionType: interaction.type,
|
|
92
|
+
isPageVisible: isPageVisible
|
|
89
93
|
}));
|
|
90
|
-
case
|
|
94
|
+
case 21:
|
|
91
95
|
result = _context.sent;
|
|
92
96
|
observer.stop(interaction.ufoName);
|
|
93
97
|
if (!include3p) {
|
|
@@ -100,15 +104,15 @@ function _getVCMetrics() {
|
|
|
100
104
|
return revision === mostRecentVCRevision;
|
|
101
105
|
});
|
|
102
106
|
if (!(!shouldReportVCMetrics || !(mostRecentVCRevisionPayload !== null && mostRecentVCRevisionPayload !== void 0 && mostRecentVCRevisionPayload.clean))) {
|
|
103
|
-
_context.next =
|
|
107
|
+
_context.next = 28;
|
|
104
108
|
break;
|
|
105
109
|
}
|
|
106
110
|
return _context.abrupt("return", result);
|
|
107
|
-
case
|
|
111
|
+
case 28:
|
|
108
112
|
return _context.abrupt("return", _objectSpread(_objectSpread({}, result), {}, {
|
|
109
113
|
'metric:vc90': mostRecentVCRevisionPayload['metric:vc90']
|
|
110
114
|
}));
|
|
111
|
-
case
|
|
115
|
+
case 29:
|
|
112
116
|
case "end":
|
|
113
117
|
return _context.stop();
|
|
114
118
|
}
|
|
@@ -588,7 +588,7 @@ var ModuleLoadingProfiler = exports.ModuleLoadingProfiler = {
|
|
|
588
588
|
removeHoldByID(currentInteractionId, id);
|
|
589
589
|
}
|
|
590
590
|
};
|
|
591
|
-
function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
|
|
591
|
+
function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError, errorHash) {
|
|
592
592
|
var interaction = _constants.interactions.get(interactionId);
|
|
593
593
|
if (interaction != null) {
|
|
594
594
|
interaction.errors.push({
|
|
@@ -597,18 +597,20 @@ function addError(interactionId, name, labelStack, errorType, errorMessage, erro
|
|
|
597
597
|
errorType: errorType,
|
|
598
598
|
errorMessage: errorMessage,
|
|
599
599
|
errorStack: errorStack,
|
|
600
|
-
forcedError: forcedError
|
|
600
|
+
forcedError: forcedError,
|
|
601
|
+
errorHash: errorHash
|
|
601
602
|
});
|
|
602
603
|
}
|
|
603
604
|
}
|
|
604
|
-
function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
|
|
605
|
+
function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack, errorHash) {
|
|
605
606
|
_constants.interactions.forEach(function (interaction) {
|
|
606
607
|
interaction.errors.push({
|
|
607
608
|
name: name,
|
|
608
609
|
labelStack: labelStack,
|
|
609
610
|
errorType: errorType,
|
|
610
611
|
errorMessage: errorMessage,
|
|
611
|
-
errorStack: errorStack
|
|
612
|
+
errorStack: errorStack,
|
|
613
|
+
errorHash: errorHash
|
|
612
614
|
});
|
|
613
615
|
});
|
|
614
616
|
}
|
|
@@ -12,6 +12,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
14
|
var _config = require("../config");
|
|
15
|
+
var _hiddenTiming = require("../hidden-timing");
|
|
15
16
|
var _vc = require("../vc");
|
|
16
17
|
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; }
|
|
17
18
|
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) { (0, _defineProperty2.default)(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; }
|
|
@@ -122,7 +123,7 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
122
123
|
value: (function () {
|
|
123
124
|
var _sendPostInteractionLog = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
124
125
|
var _this$vcObserver4, _config$vc, _config$vc2, _this$vcObserver5;
|
|
125
|
-
var _this$vcObserver3, config, postInteractionFinishVCResult;
|
|
126
|
+
var _this$vcObserver3, pageVisibilityState, isPageVisible, config, postInteractionFinishVCResult;
|
|
126
127
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
127
128
|
while (1) switch (_context.prev = _context.next) {
|
|
128
129
|
case 0:
|
|
@@ -134,9 +135,11 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
134
135
|
(_this$vcObserver3 = this.vcObserver) === null || _this$vcObserver3 === void 0 || _this$vcObserver3.stop();
|
|
135
136
|
return _context.abrupt("return");
|
|
136
137
|
case 4:
|
|
138
|
+
pageVisibilityState = (0, _hiddenTiming.getPageVisibilityState)(this.lastInteractionFinish.start, this.lastInteractionFinish.end);
|
|
139
|
+
isPageVisible = pageVisibilityState === 'visible';
|
|
137
140
|
config = (0, _config.getConfig)();
|
|
138
|
-
_context.next =
|
|
139
|
-
return (_this$vcObserver4 = this.vcObserver) === null || _this$vcObserver4 === void 0 ? void 0 : _this$vcObserver4.getVCResult(_objectSpread({
|
|
141
|
+
_context.next = 9;
|
|
142
|
+
return (_this$vcObserver4 = this.vcObserver) === null || _this$vcObserver4 === void 0 ? void 0 : _this$vcObserver4.getVCResult(_objectSpread(_objectSpread({
|
|
140
143
|
start: this.lastInteractionFinish.start,
|
|
141
144
|
stop: performance.now(),
|
|
142
145
|
tti: -1,
|
|
@@ -147,8 +150,12 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
147
150
|
interactionId: this.lastInteractionFinish.id,
|
|
148
151
|
includeSSRInV3: config === null || config === void 0 || (_config$vc = config.vc) === null || _config$vc === void 0 ? void 0 : _config$vc.includeSSRInV3,
|
|
149
152
|
includeSSRRatio: config === null || config === void 0 || (_config$vc2 = config.vc) === null || _config$vc2 === void 0 ? void 0 : _config$vc2.includeSSRRatio
|
|
150
|
-
}, this.vcObserverSSRConfig)
|
|
151
|
-
|
|
153
|
+
}, this.vcObserverSSRConfig), {}, {
|
|
154
|
+
interactionType: this.lastInteractionFinish.type,
|
|
155
|
+
isPageVisible: isPageVisible,
|
|
156
|
+
interactionAbortReason: this.lastInteractionFinish.abortReason
|
|
157
|
+
}));
|
|
158
|
+
case 9:
|
|
152
159
|
postInteractionFinishVCResult = _context.sent;
|
|
153
160
|
(_this$vcObserver5 = this.vcObserver) === null || _this$vcObserver5 === void 0 || _this$vcObserver5.stop();
|
|
154
161
|
this.sinkHandlerFn({
|
|
@@ -158,7 +165,7 @@ var PostInteractionLog = exports.default = /*#__PURE__*/function () {
|
|
|
158
165
|
lastInteractionFinishVCResult: this.lastInteractionFinishVCResult
|
|
159
166
|
});
|
|
160
167
|
this.reset();
|
|
161
|
-
case
|
|
168
|
+
case 13:
|
|
162
169
|
case "end":
|
|
163
170
|
return _context.stop();
|
|
164
171
|
}
|
package/dist/cjs/vc/index.js
CHANGED
|
@@ -152,7 +152,10 @@ var VCObserverWrapper = exports.VCObserverWrapper = /*#__PURE__*/function () {
|
|
|
152
152
|
interactionId: param.interactionId,
|
|
153
153
|
ssr: param.includeSSRInV3 ? param.ssr : undefined,
|
|
154
154
|
include3p: include3p,
|
|
155
|
-
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
|
|
155
|
+
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch,
|
|
156
|
+
interactionType: param.interactionType,
|
|
157
|
+
isPageVisible: param.isPageVisible,
|
|
158
|
+
interactionAbortReason: param.interactionAbortReason
|
|
156
159
|
});
|
|
157
160
|
case 12:
|
|
158
161
|
_context.t1 = _context.sent;
|
|
@@ -238,11 +238,11 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
238
238
|
key: "getVCResult",
|
|
239
239
|
value: function () {
|
|
240
240
|
var _getVCResult = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(param) {
|
|
241
|
-
var start, stop, interactionId, include3p, excludeSmartAnswersInSearch, results, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext;
|
|
241
|
+
var start, stop, interactionId, interactionType, interactionAbortReason, isPageVisible, include3p, excludeSmartAnswersInSearch, results, calculator_fy25_03, orderedEntries, fy25_03, calculator_next, vcNext;
|
|
242
242
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
243
243
|
while (1) switch (_context.prev = _context.next) {
|
|
244
244
|
case 0:
|
|
245
|
-
start = param.start, stop = param.stop, interactionId = param.interactionId, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
|
|
245
|
+
start = param.start, stop = param.stop, interactionId = param.interactionId, interactionType = param.interactionType, interactionAbortReason = param.interactionAbortReason, isPageVisible = param.isPageVisible, include3p = param.include3p, excludeSmartAnswersInSearch = param.excludeSmartAnswersInSearch;
|
|
246
246
|
results = [];
|
|
247
247
|
this.addStartEntry(start);
|
|
248
248
|
calculator_fy25_03 = new _fy25_.default();
|
|
@@ -259,9 +259,12 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
259
259
|
startTime: start,
|
|
260
260
|
stopTime: stop,
|
|
261
261
|
interactionId: interactionId,
|
|
262
|
+
interactionType: interactionType,
|
|
262
263
|
isPostInteraction: this.isPostInteraction,
|
|
263
264
|
include3p: include3p,
|
|
264
|
-
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch
|
|
265
|
+
excludeSmartAnswersInSearch: excludeSmartAnswersInSearch,
|
|
266
|
+
isPageVisible: isPageVisible,
|
|
267
|
+
interactionAbortReason: interactionAbortReason
|
|
265
268
|
});
|
|
266
269
|
case 8:
|
|
267
270
|
fy25_03 = _context.sent;
|
|
@@ -281,8 +284,11 @@ var VCObserverNew = exports.default = /*#__PURE__*/function () {
|
|
|
281
284
|
startTime: start,
|
|
282
285
|
stopTime: stop,
|
|
283
286
|
interactionId: interactionId,
|
|
287
|
+
interactionType: interactionType,
|
|
284
288
|
isPostInteraction: this.isPostInteraction,
|
|
285
|
-
include3p: include3p
|
|
289
|
+
include3p: include3p,
|
|
290
|
+
isPageVisible: isPageVisible,
|
|
291
|
+
interactionAbortReason: interactionAbortReason
|
|
286
292
|
});
|
|
287
293
|
case 14:
|
|
288
294
|
vcNext = _context.sent;
|
|
@@ -13,9 +13,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
13
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
-
var _getPageVisibilityUpToTtai = _interopRequireDefault(require("../../../create-payload/utils/get-page-visibility-up-to-ttai"));
|
|
17
|
-
var _interactionIdContext = require("../../../interaction-id-context");
|
|
18
|
-
var _constants = require("../../../interaction-metrics/common/constants");
|
|
19
16
|
var _trackDisplayContentOccurrence = require("../viewport-observer/utils/track-display-content-occurrence");
|
|
20
17
|
var _percentileCalc = require("./percentile-calc");
|
|
21
18
|
var _getViewportHeight = _interopRequireDefault(require("./utils/get-viewport-height"));
|
|
@@ -111,9 +108,9 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
111
108
|
}, {
|
|
112
109
|
key: "calculateWithDebugInfo",
|
|
113
110
|
value: function () {
|
|
114
|
-
var _calculateWithDebugInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, allEntries, include3p, excludeSmartAnswersInSearch) {
|
|
111
|
+
var _calculateWithDebugInfo = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionType, isPageVisible, interactionId, dirtyReason, allEntries, include3p, excludeSmartAnswersInSearch, interactionAbortReason) {
|
|
115
112
|
var _window, _window2, _window6, _window8;
|
|
116
|
-
var percentiles, viewportEntries, vcLogs, vcDetails, percentileIndex, entryDataBuffer, _iterator4, _step4, _entry3, time, viewportPercentage, entries, elementNames, previousResult, i, percentile, enhancedVcLogs, shouldCalculate3p, shouldCalculateDebugDetails, _window3, _window4, _window5, sortedVcLogs, maxViewportPercentageAtTime, maxSoFar, _iterator5, _step5, log, getBiggestPreviousViewportPercentage, ignoredEntriesByTime, _iterator6, _step6, _entry4, _ignoredEntriesByTime, _viewportData$rect, _viewportData$previou, viewportData, timestamp, additionalVcLogs, _iterator7, _step7, _step7$value, _timestamp, ignoredEntries, _viewportPercentage, v3RevisionDebugDetails,
|
|
113
|
+
var percentiles, viewportEntries, vcLogs, vcDetails, percentileIndex, entryDataBuffer, _iterator4, _step4, _entry3, time, viewportPercentage, entries, elementNames, previousResult, i, percentile, enhancedVcLogs, shouldCalculate3p, shouldCalculateDebugDetails, _window3, _window4, _window5, sortedVcLogs, maxViewportPercentageAtTime, maxSoFar, _iterator5, _step5, log, getBiggestPreviousViewportPercentage, ignoredEntriesByTime, _iterator6, _step6, _entry4, _ignoredEntriesByTime, _viewportData$rect, _viewportData$previou, viewportData, timestamp, additionalVcLogs, _iterator7, _step7, _step7$value, _timestamp, ignoredEntries, _viewportPercentage, v3RevisionDebugDetails, _window7, _window7$__ufo_devtoo, _window9, _window9$__on_ufo_vc_;
|
|
117
114
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
118
115
|
while (1) switch (_context.prev = _context.next) {
|
|
119
116
|
case 0:
|
|
@@ -314,17 +311,13 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
314
311
|
v3RevisionDebugDetails = null;
|
|
315
312
|
if (shouldCalculateDebugDetails) {
|
|
316
313
|
if ((0, _platformFeatureFlags.fg)('platform_ufo_unify_abort_status_in_ttvc_debug_data')) {
|
|
317
|
-
// NOTE: using this instead of directly calling `getActiveInteraction()` to get around circular dependencies
|
|
318
|
-
activeInteractionId = (0, _interactionIdContext.getInteractionId)();
|
|
319
|
-
activeInteraction = _constants.interactions.get((_activeInteractionId$ = activeInteractionId.current) !== null && _activeInteractionId$ !== void 0 ? _activeInteractionId$ : '');
|
|
320
|
-
pageVisibilityUpToTTAI = activeInteraction ? (0, _getPageVisibilityUpToTtai.default)(activeInteraction) : null;
|
|
321
|
-
isBackgrounded = pageVisibilityUpToTTAI !== 'visible';
|
|
322
314
|
v3RevisionDebugDetails = {
|
|
323
315
|
revision: this.revisionNo,
|
|
324
|
-
isClean: isVCClean && !
|
|
325
|
-
abortReason:
|
|
316
|
+
isClean: isVCClean && !interactionAbortReason && isPageVisible,
|
|
317
|
+
abortReason: !isPageVisible ? 'browser_backgrounded' : dirtyReason !== null && dirtyReason !== void 0 ? dirtyReason : interactionAbortReason,
|
|
326
318
|
vcLogs: enhancedVcLogs,
|
|
327
|
-
interactionId: interactionId
|
|
319
|
+
interactionId: interactionId,
|
|
320
|
+
interactionType: interactionType
|
|
328
321
|
};
|
|
329
322
|
} else {
|
|
330
323
|
v3RevisionDebugDetails = {
|
|
@@ -371,7 +364,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
371
364
|
}
|
|
372
365
|
}, _callee, this, [[10, 22, 25, 28]]);
|
|
373
366
|
}));
|
|
374
|
-
function calculateWithDebugInfo(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0) {
|
|
367
|
+
function calculateWithDebugInfo(_x, _x2, _x3, _x4, _x5, _x6, _x7, _x8, _x9, _x0, _x1, _x10, _x11) {
|
|
375
368
|
return _calculateWithDebugInfo.apply(this, arguments);
|
|
376
369
|
}
|
|
377
370
|
return calculateWithDebugInfo;
|
|
@@ -383,11 +376,11 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
383
376
|
var _this = this,
|
|
384
377
|
_vcDetails$90$t,
|
|
385
378
|
_vcDetails$;
|
|
386
|
-
var startTime, stopTime, orderedEntries, interactionId, isPostInteraction, include3p, excludeSmartAnswersInSearch, filteredEntries, isVCClean, dirtyReason, getVCCleanStatusResult, vcDetails, result;
|
|
379
|
+
var startTime, stopTime, orderedEntries, interactionId, isPostInteraction, include3p, excludeSmartAnswersInSearch, interactionType, isPageVisible, interactionAbortReason, filteredEntries, isVCClean, dirtyReason, getVCCleanStatusResult, vcDetails, result;
|
|
387
380
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
388
381
|
while (1) switch (_context2.prev = _context2.next) {
|
|
389
382
|
case 0:
|
|
390
|
-
startTime = _ref.startTime, stopTime = _ref.stopTime, orderedEntries = _ref.orderedEntries, interactionId = _ref.interactionId, isPostInteraction = _ref.isPostInteraction, include3p = _ref.include3p, excludeSmartAnswersInSearch = _ref.excludeSmartAnswersInSearch;
|
|
383
|
+
startTime = _ref.startTime, stopTime = _ref.stopTime, orderedEntries = _ref.orderedEntries, interactionId = _ref.interactionId, isPostInteraction = _ref.isPostInteraction, include3p = _ref.include3p, excludeSmartAnswersInSearch = _ref.excludeSmartAnswersInSearch, interactionType = _ref.interactionType, isPageVisible = _ref.isPageVisible, interactionAbortReason = _ref.interactionAbortReason;
|
|
391
384
|
filteredEntries = orderedEntries.filter(function (entry) {
|
|
392
385
|
return _this.isEntryIncluded(entry, include3p, excludeSmartAnswersInSearch);
|
|
393
386
|
});
|
|
@@ -407,7 +400,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
407
400
|
});
|
|
408
401
|
case 7:
|
|
409
402
|
_context2.next = 9;
|
|
410
|
-
return this.calculateWithDebugInfo(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionId, dirtyReason, orderedEntries, include3p, excludeSmartAnswersInSearch);
|
|
403
|
+
return this.calculateWithDebugInfo(filteredEntries, startTime, stopTime, isPostInteraction, isVCClean, interactionType, isPageVisible, interactionId, dirtyReason, orderedEntries, include3p, excludeSmartAnswersInSearch, interactionAbortReason);
|
|
411
404
|
case 9:
|
|
412
405
|
vcDetails = _context2.sent;
|
|
413
406
|
result = {
|
|
@@ -430,7 +423,7 @@ var AbstractVCCalculatorBase = exports.default = /*#__PURE__*/function () {
|
|
|
430
423
|
}
|
|
431
424
|
}, _callee2, this);
|
|
432
425
|
}));
|
|
433
|
-
function calculate(
|
|
426
|
+
function calculate(_x12) {
|
|
434
427
|
return _calculate.apply(this, arguments);
|
|
435
428
|
}
|
|
436
429
|
return calculate;
|
|
@@ -21,6 +21,7 @@ var _mutationObserver = _interopRequireDefault(require("./mutation-observer"));
|
|
|
21
21
|
var _performanceObserver = _interopRequireDefault(require("./performance-observer"));
|
|
22
22
|
var _checkDisplayContent = _interopRequireDefault(require("./utils/check-display-content"));
|
|
23
23
|
var _checkWithinComponent2 = _interopRequireWildcard(require("./utils/check-within-component"));
|
|
24
|
+
var _getMutatedElements = require("./utils/get-mutated-elements");
|
|
24
25
|
var _isInVcIgnoreIfNoLayoutShiftMarker = _interopRequireDefault(require("./utils/is-in-vc-ignore-if-no-layout-shift-marker"));
|
|
25
26
|
var _trackDisplayContentOccurrence = _interopRequireDefault(require("./utils/track-display-content-occurrence"));
|
|
26
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -126,7 +127,7 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
126
127
|
_iterator = _createForOfIteratorHelper(addedNodes);
|
|
127
128
|
_context2.prev = 4;
|
|
128
129
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
129
|
-
var addedNodeRef, addedNode, ssrState, SSRStateEnum, _this$intersectionObs, _this$intersectionObs2, ssrPlaceholderHandler, _this$intersectionObs3, result, _this$intersectionObs4, sameDeletedNode, isInIgnoreLsMarker, _this$intersectionObs5, _this$intersectionObs6, _checkWithinComponent, isWithinThirdPartySegment, _this$intersectionObs7,
|
|
130
|
+
var addedNodeRef, addedNode, ssrState, SSRStateEnum, _this$intersectionObs, _this$intersectionObs2, ssrPlaceholderHandler, _this$intersectionObs3, result, _this$intersectionObs4, sameDeletedNode, isInIgnoreLsMarker, _this$intersectionObs5, _this$intersectionObs6, _checkWithinComponent, isWithinThirdPartySegment, _this$intersectionObs7, _iterator2, _step2, _step2$value, isDisplayContentsElementChildren, element, _this$intersectionObs8, _this$intersectionObs9, validTargets, _iterator3, _step3, _this$intersectionObs0, validTarget, _this$intersectionObs1;
|
|
130
131
|
return _regenerator.default.wrap(function _loop$(_context) {
|
|
131
132
|
while (1) switch (_context.prev = _context.next) {
|
|
132
133
|
case 0:
|
|
@@ -239,22 +240,20 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
239
240
|
return _context.abrupt("return", 0);
|
|
240
241
|
case 45:
|
|
241
242
|
if ((0, _platformFeatureFlags.fg)('platform_ufo_vcnext_v4_enabled')) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
243
|
+
_iterator2 = _createForOfIteratorHelper((0, _getMutatedElements.getMutatedElements)(addedNode));
|
|
244
|
+
try {
|
|
245
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
246
|
+
_step2$value = _step2.value, isDisplayContentsElementChildren = _step2$value.isDisplayContentsElementChildren, element = _step2$value.element;
|
|
247
|
+
if (isDisplayContentsElementChildren) {
|
|
248
|
+
(_this$intersectionObs8 = _this.intersectionObserver) === null || _this$intersectionObs8 === void 0 || _this$intersectionObs8.watchAndTag(element, 'mutation:display-contents-children-element');
|
|
249
|
+
} else {
|
|
250
|
+
(_this$intersectionObs9 = _this.intersectionObserver) === null || _this$intersectionObs9 === void 0 || _this$intersectionObs9.watchAndTag(element, createElementMutationsWatcher(removedNodeRects));
|
|
250
251
|
}
|
|
251
|
-
} catch (err) {
|
|
252
|
-
_iterator2.e(err);
|
|
253
|
-
} finally {
|
|
254
|
-
_iterator2.f();
|
|
255
252
|
}
|
|
256
|
-
}
|
|
257
|
-
|
|
253
|
+
} catch (err) {
|
|
254
|
+
_iterator2.e(err);
|
|
255
|
+
} finally {
|
|
256
|
+
_iterator2.f();
|
|
258
257
|
}
|
|
259
258
|
} else {
|
|
260
259
|
if ((0, _platformFeatureFlags.fg)('platform_ufo_display_content_resolution_ttvc_v3')) {
|
|
@@ -401,7 +400,6 @@ var ViewportObserver = exports.default = /*#__PURE__*/function () {
|
|
|
401
400
|
}
|
|
402
401
|
};
|
|
403
402
|
});
|
|
404
|
-
// }
|
|
405
403
|
});
|
|
406
404
|
(0, _defineProperty2.default)(this, "handleLayoutShift", function (_ref8) {
|
|
407
405
|
var time = _ref8.time,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getMutatedElements = getMutatedElements;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
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; } } }; }
|
|
10
|
+
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; } }
|
|
11
|
+
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; }
|
|
12
|
+
var MAX_NESTED_LEVELS_OF_DISPLAY_CONTENT_ELEMENTS_HANDLED = 3;
|
|
13
|
+
function getMutatedElements(element) {
|
|
14
|
+
var _window;
|
|
15
|
+
var depthLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
16
|
+
if (((_window = window) === null || _window === void 0 || (_window = _window.getComputedStyle(element)) === null || _window === void 0 ? void 0 : _window.display) === 'contents') {
|
|
17
|
+
var mutatedElements = [];
|
|
18
|
+
var nestedDisplayContentsElementChildren = [];
|
|
19
|
+
var _iterator = _createForOfIteratorHelper(element.children),
|
|
20
|
+
_step;
|
|
21
|
+
try {
|
|
22
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
23
|
+
var _window2;
|
|
24
|
+
var child = _step.value;
|
|
25
|
+
if (((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.getComputedStyle(child)) === null || _window2 === void 0 ? void 0 : _window2.display) === 'contents') {
|
|
26
|
+
nestedDisplayContentsElementChildren.push(child);
|
|
27
|
+
}
|
|
28
|
+
mutatedElements.push({
|
|
29
|
+
element: child,
|
|
30
|
+
isDisplayContentsElementChildren: true
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
_iterator.e(err);
|
|
35
|
+
} finally {
|
|
36
|
+
_iterator.f();
|
|
37
|
+
}
|
|
38
|
+
if (depthLevel < MAX_NESTED_LEVELS_OF_DISPLAY_CONTENT_ELEMENTS_HANDLED && nestedDisplayContentsElementChildren.length > 0) {
|
|
39
|
+
return [].concat(mutatedElements, (0, _toConsumableArray2.default)(nestedDisplayContentsElementChildren.map(function (element) {
|
|
40
|
+
return getMutatedElements(element, depthLevel + 1);
|
|
41
|
+
}).flat()));
|
|
42
|
+
}
|
|
43
|
+
return mutatedElements;
|
|
44
|
+
} else {
|
|
45
|
+
return [{
|
|
46
|
+
element: element,
|
|
47
|
+
isDisplayContentsElementChildren: false
|
|
48
|
+
}];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -60,6 +60,7 @@ export const experimentalVC = new ExperimentalVCMetrics();
|
|
|
60
60
|
export async function getExperimentalVCMetrics(interaction) {
|
|
61
61
|
// Use per-interaction VC observer if available, otherwise fall back to global experimentalVC
|
|
62
62
|
const vcObserver = interaction.experimentalVCObserver || experimentalVC.vcObserver;
|
|
63
|
+
const pageVisibilityUpToTTAI = getPageVisibilityState(interaction.start, interaction.end);
|
|
63
64
|
if (vcObserver) {
|
|
64
65
|
var _interaction$apdex, _interaction$apdex$;
|
|
65
66
|
const prefix = 'ufo-experimental';
|
|
@@ -71,13 +72,15 @@ export async function getExperimentalVCMetrics(interaction) {
|
|
|
71
72
|
prefix,
|
|
72
73
|
vc: interaction.vc,
|
|
73
74
|
experienceKey: interaction.ufoName,
|
|
74
|
-
interactionId: interaction.id
|
|
75
|
+
interactionId: interaction.id,
|
|
76
|
+
interactionType: interaction.type,
|
|
77
|
+
isPageVisible: pageVisibilityUpToTTAI === 'visible',
|
|
78
|
+
interactionAbortReason: interaction.abortReason
|
|
75
79
|
});
|
|
76
80
|
const VC = result === null || result === void 0 ? void 0 : result['metrics:vc'];
|
|
77
81
|
if (!VC || !(result !== null && result !== void 0 && result[`${prefix}:vc:clean`])) {
|
|
78
82
|
return result;
|
|
79
83
|
}
|
|
80
|
-
const pageVisibilityUpToTTAI = getPageVisibilityState(interaction.start, interaction.end);
|
|
81
84
|
if (interaction.abortReason || pageVisibilityUpToTTAI !== 'visible') {
|
|
82
85
|
return result;
|
|
83
86
|
}
|
|
@@ -14,7 +14,8 @@ async function getVCMetrics(interaction, include3p = false, excludeSmartAnswersI
|
|
|
14
14
|
}
|
|
15
15
|
const interactionStatus = getInteractionStatus(interaction);
|
|
16
16
|
const pageVisibilityUpToTTAI = getPageVisibilityUpToTTAI(interaction);
|
|
17
|
-
const
|
|
17
|
+
const isPageVisible = pageVisibilityUpToTTAI === 'visible';
|
|
18
|
+
const shouldReportVCMetrics = interactionStatus.originalInteractionStatus === 'SUCCEEDED' && isPageVisible;
|
|
18
19
|
|
|
19
20
|
// Use per-interaction VC observer if available, otherwise fall back to global
|
|
20
21
|
const observer = interaction.vcObserver;
|
|
@@ -41,7 +42,9 @@ async function getVCMetrics(interaction, include3p = false, excludeSmartAnswersI
|
|
|
41
42
|
includeSSRRatio: (_config$vc3 = config.vc) === null || _config$vc3 === void 0 ? void 0 : _config$vc3.includeSSRRatio,
|
|
42
43
|
...ssr,
|
|
43
44
|
include3p,
|
|
44
|
-
excludeSmartAnswersInSearch
|
|
45
|
+
excludeSmartAnswersInSearch,
|
|
46
|
+
interactionType: interaction.type,
|
|
47
|
+
isPageVisible
|
|
45
48
|
});
|
|
46
49
|
observer.stop(interaction.ufoName);
|
|
47
50
|
if (!include3p) {
|
|
@@ -507,7 +507,7 @@ export const ModuleLoadingProfiler = {
|
|
|
507
507
|
removeHoldByID(currentInteractionId, id);
|
|
508
508
|
}
|
|
509
509
|
};
|
|
510
|
-
export function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError) {
|
|
510
|
+
export function addError(interactionId, name, labelStack, errorType, errorMessage, errorStack, forcedError, errorHash) {
|
|
511
511
|
const interaction = interactions.get(interactionId);
|
|
512
512
|
if (interaction != null) {
|
|
513
513
|
interaction.errors.push({
|
|
@@ -516,18 +516,20 @@ export function addError(interactionId, name, labelStack, errorType, errorMessag
|
|
|
516
516
|
errorType,
|
|
517
517
|
errorMessage,
|
|
518
518
|
errorStack,
|
|
519
|
-
forcedError
|
|
519
|
+
forcedError,
|
|
520
|
+
errorHash
|
|
520
521
|
});
|
|
521
522
|
}
|
|
522
523
|
}
|
|
523
|
-
export function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack) {
|
|
524
|
+
export function addErrorToAll(name, labelStack, errorType, errorMessage, errorStack, errorHash) {
|
|
524
525
|
interactions.forEach(interaction => {
|
|
525
526
|
interaction.errors.push({
|
|
526
527
|
name,
|
|
527
528
|
labelStack,
|
|
528
529
|
errorType,
|
|
529
530
|
errorMessage,
|
|
530
|
-
errorStack
|
|
531
|
+
errorStack,
|
|
532
|
+
errorHash
|
|
531
533
|
});
|
|
532
534
|
});
|
|
533
535
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
3
|
import { getConfig } from '../config';
|
|
4
|
+
import { getPageVisibilityState } from '../hidden-timing';
|
|
4
5
|
import { VCObserverWrapper } from '../vc';
|
|
5
6
|
const POST_INTERACTION_LOG_SEND_DEFAULT_TIMEOUT = 3000;
|
|
6
7
|
export default class PostInteractionLog {
|
|
@@ -96,6 +97,8 @@ export default class PostInteractionLog {
|
|
|
96
97
|
(_this$vcObserver3 = this.vcObserver) === null || _this$vcObserver3 === void 0 ? void 0 : _this$vcObserver3.stop();
|
|
97
98
|
return;
|
|
98
99
|
}
|
|
100
|
+
const pageVisibilityState = getPageVisibilityState(this.lastInteractionFinish.start, this.lastInteractionFinish.end);
|
|
101
|
+
const isPageVisible = pageVisibilityState === 'visible';
|
|
99
102
|
const config = getConfig();
|
|
100
103
|
const postInteractionFinishVCResult = await ((_this$vcObserver4 = this.vcObserver) === null || _this$vcObserver4 === void 0 ? void 0 : _this$vcObserver4.getVCResult({
|
|
101
104
|
start: this.lastInteractionFinish.start,
|
|
@@ -108,7 +111,10 @@ export default class PostInteractionLog {
|
|
|
108
111
|
interactionId: this.lastInteractionFinish.id,
|
|
109
112
|
includeSSRInV3: config === null || config === void 0 ? void 0 : (_config$vc = config.vc) === null || _config$vc === void 0 ? void 0 : _config$vc.includeSSRInV3,
|
|
110
113
|
includeSSRRatio: config === null || config === void 0 ? void 0 : (_config$vc2 = config.vc) === null || _config$vc2 === void 0 ? void 0 : _config$vc2.includeSSRRatio,
|
|
111
|
-
...this.vcObserverSSRConfig
|
|
114
|
+
...this.vcObserverSSRConfig,
|
|
115
|
+
interactionType: this.lastInteractionFinish.type,
|
|
116
|
+
isPageVisible,
|
|
117
|
+
interactionAbortReason: this.lastInteractionFinish.abortReason
|
|
112
118
|
}));
|
|
113
119
|
(_this$vcObserver5 = this.vcObserver) === null || _this$vcObserver5 === void 0 ? void 0 : _this$vcObserver5.stop();
|
|
114
120
|
this.sinkHandlerFn({
|
package/dist/es2019/vc/index.js
CHANGED
|
@@ -105,7 +105,10 @@ export class VCObserverWrapper {
|
|
|
105
105
|
interactionId: param.interactionId,
|
|
106
106
|
ssr: param.includeSSRInV3 ? param.ssr : undefined,
|
|
107
107
|
include3p,
|
|
108
|
-
excludeSmartAnswersInSearch
|
|
108
|
+
excludeSmartAnswersInSearch,
|
|
109
|
+
interactionType: param.interactionType,
|
|
110
|
+
isPageVisible: param.isPageVisible,
|
|
111
|
+
interactionAbortReason: param.interactionAbortReason
|
|
109
112
|
})) : [];
|
|
110
113
|
if (!v3Result) {
|
|
111
114
|
return v1v2Result !== null && v1v2Result !== void 0 ? v1v2Result : {};
|