@atlaskit/react-ufo 2.7.0 → 2.8.1
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 +20 -0
- package/dist/cjs/config/index.js +18 -40
- package/dist/cjs/create-payload/common/utils/index.js +2 -66
- package/dist/cjs/create-payload/index.js +78 -55
- package/dist/cjs/interaction-metrics/common/constants.js +3 -8
- package/dist/cjs/interaction-metrics/index.js +238 -166
- package/dist/cjs/interaction-metrics-init/index.js +9 -31
- package/dist/cjs/load-hold/UFOLoadHold.js +3 -5
- package/dist/cjs/segment/segment.js +8 -9
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +23 -13
- package/dist/es2019/config/index.js +0 -22
- package/dist/es2019/create-payload/common/utils/index.js +1 -68
- package/dist/es2019/create-payload/index.js +77 -48
- package/dist/es2019/interaction-metrics/common/constants.js +2 -7
- package/dist/es2019/interaction-metrics/index.js +131 -91
- package/dist/es2019/interaction-metrics-init/index.js +8 -28
- package/dist/es2019/load-hold/UFOLoadHold.js +3 -5
- package/dist/es2019/segment/segment.js +11 -8
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +18 -8
- package/dist/esm/config/index.js +18 -39
- package/dist/esm/create-payload/common/utils/index.js +1 -63
- package/dist/esm/create-payload/index.js +78 -53
- package/dist/esm/interaction-metrics/common/constants.js +2 -7
- package/dist/esm/interaction-metrics/index.js +158 -86
- package/dist/esm/interaction-metrics-init/index.js +8 -28
- package/dist/esm/load-hold/UFOLoadHold.js +3 -5
- package/dist/esm/segment/segment.js +8 -9
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +23 -13
- package/dist/types/common/common/types.d.ts +4 -6
- package/dist/types/config/index.d.ts +0 -6
- package/dist/types/create-payload/common/utils/index.d.ts +0 -9
- package/dist/types/create-payload/index.d.ts +5660 -13
- package/dist/types/interaction-context/index.d.ts +0 -1
- package/dist/types/interaction-metrics/common/constants.d.ts +3 -32
- package/dist/types/interaction-metrics/index.d.ts +17 -1
- package/dist/types/load-hold/UFOLoadHold.d.ts +2 -1
- package/dist/types-ts4.5/common/common/types.d.ts +4 -6
- package/dist/types-ts4.5/config/index.d.ts +0 -6
- package/dist/types-ts4.5/create-payload/common/utils/index.d.ts +0 -9
- package/dist/types-ts4.5/create-payload/index.d.ts +5660 -13
- package/dist/types-ts4.5/interaction-context/index.d.ts +0 -1
- package/dist/types-ts4.5/interaction-metrics/common/constants.d.ts +3 -32
- package/dist/types-ts4.5/interaction-metrics/index.d.ts +17 -1
- package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +2 -1
- package/package.json +2 -3
- package/create-experimental-interaction-metrics-payload/package.json +0 -15
- package/dist/cjs/create-experimental-interaction-metrics-payload/index.js +0 -100
- package/dist/cjs/interaction-metrics/common/index.js +0 -151
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +0 -71
- package/dist/es2019/interaction-metrics/common/index.js +0 -103
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +0 -90
- package/dist/esm/interaction-metrics/common/index.js +0 -132
- package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +0 -16
- package/dist/types/interaction-metrics/common/index.d.ts +0 -16
- package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +0 -16
- package/dist/types-ts4.5/interaction-metrics/common/index.d.ts +0 -16
|
@@ -27,7 +27,6 @@ export interface UFOInteractionContextType extends InteractionContextType {
|
|
|
27
27
|
startTime?: number;
|
|
28
28
|
stopTime: number;
|
|
29
29
|
}): void;
|
|
30
|
-
holdExperimental?(name: string): void | (() => void);
|
|
31
30
|
}
|
|
32
31
|
declare const _default: Context<UFOInteractionContextType | null>;
|
|
33
32
|
export default _default;
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
import type { InteractionMetrics
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export declare const CLEANUP_TIMEOUT: number;
|
|
5
|
-
export declare const CLEANUP_TIMEOUT_AFTER_APDEX: number;
|
|
6
|
-
export type SegmentObserver = {
|
|
7
|
-
onAdd: (segment: SegmentInfo) => void;
|
|
8
|
-
onRemove: (segment: SegmentInfo) => void;
|
|
9
|
-
};
|
|
10
|
-
export declare const interactionQueue: {
|
|
11
|
-
id: string;
|
|
12
|
-
data: InteractionMetrics;
|
|
13
|
-
}[];
|
|
14
|
-
export declare const segmentCache: Map<string, SegmentInfo>;
|
|
15
|
-
export declare const segmentObservers: SegmentObserver[];
|
|
16
|
-
export declare const moduleLoadingRequests: Record<string, {
|
|
17
|
-
start: number;
|
|
18
|
-
timeoutId: ReturnType<typeof setTimeout> | number | undefined;
|
|
19
|
-
}>;
|
|
20
|
-
declare global {
|
|
21
|
-
interface Window {
|
|
22
|
-
__REACT_UFO_ENABLE_PERF_TRACING?: boolean;
|
|
23
|
-
__UFO_COMPACT_PAYLOAD__?: boolean;
|
|
24
|
-
__CRITERION__?: {
|
|
25
|
-
addFeatureFlagAccessed?: (flagName: string, flagValue: FeatureFlagValue) => void;
|
|
26
|
-
addUFOHold?: (id: string, name: string, labelStack: string, startTime: number) => void;
|
|
27
|
-
removeUFOHold?: (id: string) => void;
|
|
28
|
-
getFeatureFlagOverride?: (flagName: string) => boolean | undefined;
|
|
29
|
-
getExperimentValueOverride?: <T>(experimentName: string, parameterName: string) => T;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
import type { InteractionMetrics } from '../../common';
|
|
2
|
+
declare const interactions: Map<string, InteractionMetrics>;
|
|
3
|
+
export default interactions;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { AbortReasonType, ApdexType, BM3Event, CustomData, CustomTiming, InteractionError, InteractionMetrics, InteractionType, LifecycleMarkType, LoadProfilerEventInfo, Mark, MarkType, PostInteractionLogOutput, ReactProfilerTiming, RequestInfo, Span, SpanType } from '../common';
|
|
2
2
|
import { type TraceIdContext } from '../experience-trace-id-context';
|
|
3
|
+
import { type FeatureFlagValue } from '../feature-flags-accessed';
|
|
3
4
|
import type { LabelStack } from '../interaction-context';
|
|
5
|
+
import PostInteractionLog from './post-interaction-log';
|
|
4
6
|
export type { InteractionMetrics, LifecycleMarkType, Span, Mark, MarkType, InteractionType, AbortReasonType, ReactProfilerTiming, RequestInfo, ApdexType, CustomData, CustomTiming, InteractionError, };
|
|
7
|
+
export declare const postInteractionLog: PostInteractionLog;
|
|
5
8
|
export declare function getActiveInteraction(): InteractionMetrics | undefined;
|
|
6
9
|
export declare function remove(interactionId: string): void;
|
|
7
10
|
export declare function updatePageLoadInteractionName(ufoName: string, routeName?: string | null | undefined): void;
|
|
@@ -15,7 +18,7 @@ export declare function addSpanToAll(type: SpanType, name: string, labelStack: L
|
|
|
15
18
|
export declare function addPreload(moduleId: string, timestamp: number): void;
|
|
16
19
|
export declare function addLoad(identifier: string, start: number, end: number): void;
|
|
17
20
|
export declare function extractModuleName(input: string): string;
|
|
18
|
-
export declare function addHold(interactionId: string, labelStack: LabelStack, name: string
|
|
21
|
+
export declare function addHold(interactionId: string, labelStack: LabelStack, name: string): () => void;
|
|
19
22
|
export declare function addHoldByID(interactionId: string, labelStack: LabelStack, name: string, id: string, ignoreOnSubmit?: boolean): () => void;
|
|
20
23
|
export declare function removeHoldByID(interactionId: string, id: string): void;
|
|
21
24
|
export declare function getCurrentInteractionType(interactionId: string): InteractionType | null;
|
|
@@ -49,5 +52,18 @@ export declare function addRequestInfo(interactionId: string, labelStack: LabelS
|
|
|
49
52
|
export declare function addSegment(labelStack: LabelStack): void;
|
|
50
53
|
export declare function removeSegment(labelStack: LabelStack): void;
|
|
51
54
|
export declare function addRedirect(interactionId: string, fromUfoName: string, nextUfoName: string, nextRouteName: string, time: number): void;
|
|
55
|
+
declare global {
|
|
56
|
+
interface Window {
|
|
57
|
+
__REACT_UFO_ENABLE_PERF_TRACING?: boolean;
|
|
58
|
+
__UFO_COMPACT_PAYLOAD__?: boolean;
|
|
59
|
+
__CRITERION__?: {
|
|
60
|
+
addFeatureFlagAccessed?: (flagName: string, flagValue: FeatureFlagValue) => void;
|
|
61
|
+
addUFOHold?: (id: string, name: string, labelStack: string, startTime: number) => void;
|
|
62
|
+
removeUFOHold?: (id: string) => void;
|
|
63
|
+
getFeatureFlagOverride?: (flagName: string) => boolean | undefined;
|
|
64
|
+
getExperimentValueOverride?: <T>(experimentName: string, parameterName: string) => T;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
52
68
|
export declare const interactionSpans: Span[];
|
|
53
69
|
export declare function addCustomSpans(name: string, start: number, end?: number, size?: number, labelStack?: LabelStack): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/react-ufo",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "Parts of React UFO that are publicly available",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -32,7 +32,6 @@
|
|
|
32
32
|
"./coinflip": "./src/coinflip/index.ts",
|
|
33
33
|
"./common": "./src/common/index.ts",
|
|
34
34
|
"./config": "./src/config/index.ts",
|
|
35
|
-
"./create-experimental-interaction-metrics-payload": "./src/create-experimental-interaction-metrics-payload/index.ts",
|
|
36
35
|
"./create-payload": "./src/create-payload/index.ts",
|
|
37
36
|
"./create-post-interaction-log-payload": "./src/create-post-interaction-log-payload/index.ts",
|
|
38
37
|
"./custom-data": "./src/custom-data/index.ts",
|
|
@@ -74,7 +73,7 @@
|
|
|
74
73
|
".": "./src/index.ts"
|
|
75
74
|
},
|
|
76
75
|
"dependencies": {
|
|
77
|
-
"@atlaskit/interaction-context": "^2.
|
|
76
|
+
"@atlaskit/interaction-context": "^2.4.0",
|
|
78
77
|
"@atlaskit/platform-feature-flags": "^0.3.0",
|
|
79
78
|
"@babel/runtime": "^7.0.0",
|
|
80
79
|
"bind-event-listener": "^3.0.0",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@atlaskit/react-ufo/create-experimental-interaction-metrics-payload",
|
|
3
|
-
"main": "../dist/cjs/create-experimental-interaction-metrics-payload/index.js",
|
|
4
|
-
"module": "../dist/esm/create-experimental-interaction-metrics-payload/index.js",
|
|
5
|
-
"module:es2019": "../dist/es2019/create-experimental-interaction-metrics-payload/index.js",
|
|
6
|
-
"sideEffects": false,
|
|
7
|
-
"types": "../dist/types/create-experimental-interaction-metrics-payload/index.d.ts",
|
|
8
|
-
"typesVersions": {
|
|
9
|
-
">=4.5 <5.4": {
|
|
10
|
-
"*": [
|
|
11
|
-
"../dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts"
|
|
12
|
-
]
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.getExperimentalVCMetrics = exports.experimentalVC = exports.ExperimentalVCMetrics = void 0;
|
|
8
|
-
exports.installInteractionSink = installInteractionSink;
|
|
9
|
-
exports.onExperimentalInteractionComplete = onExperimentalInteractionComplete;
|
|
10
|
-
exports.sinkExperimentalHandler = sinkExperimentalHandler;
|
|
11
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
var _utils = require("../create-payload/common/utils");
|
|
15
|
-
var _vcObserver = require("../vc/vc-observer");
|
|
16
|
-
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
|
-
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; }
|
|
18
|
-
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; } } }; }
|
|
19
|
-
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; } }
|
|
20
|
-
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; }
|
|
21
|
-
var interactionBuffer = [];
|
|
22
|
-
var bufferInteractionData = function bufferInteractionData(interactionId, data) {
|
|
23
|
-
interactionBuffer.push({
|
|
24
|
-
interactionId: interactionId,
|
|
25
|
-
data: data
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
function clearInteractionBuffer() {
|
|
29
|
-
interactionBuffer.length = 0;
|
|
30
|
-
}
|
|
31
|
-
function appendInteractionData(interactionId, data) {
|
|
32
|
-
bufferInteractionData(interactionId, data);
|
|
33
|
-
}
|
|
34
|
-
function installInteractionSink(handler) {
|
|
35
|
-
var _iterator = _createForOfIteratorHelper(interactionBuffer),
|
|
36
|
-
_step;
|
|
37
|
-
try {
|
|
38
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
39
|
-
var _step$value = _step.value,
|
|
40
|
-
_interactionId = _step$value.interactionId,
|
|
41
|
-
data = _step$value.data;
|
|
42
|
-
handler(_interactionId, data);
|
|
43
|
-
}
|
|
44
|
-
} catch (err) {
|
|
45
|
-
_iterator.e(err);
|
|
46
|
-
} finally {
|
|
47
|
-
_iterator.f();
|
|
48
|
-
}
|
|
49
|
-
clearInteractionBuffer();
|
|
50
|
-
bufferInteractionData = handler;
|
|
51
|
-
}
|
|
52
|
-
function sinkExperimentalHandler(sinkFn) {
|
|
53
|
-
installInteractionSink(sinkFn);
|
|
54
|
-
}
|
|
55
|
-
function onExperimentalInteractionComplete(interactionId, data) {
|
|
56
|
-
var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
|
|
57
|
-
if (data.ufoName) {
|
|
58
|
-
data.end = endTime;
|
|
59
|
-
appendInteractionData(interactionId, data);
|
|
60
|
-
clearInteractionBuffer();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
var ExperimentalVCMetrics = exports.ExperimentalVCMetrics = /*#__PURE__*/function () {
|
|
64
|
-
function ExperimentalVCMetrics() {
|
|
65
|
-
(0, _classCallCheck2.default)(this, ExperimentalVCMetrics);
|
|
66
|
-
(0, _defineProperty2.default)(this, "vcObserver", null);
|
|
67
|
-
}
|
|
68
|
-
return (0, _createClass2.default)(ExperimentalVCMetrics, [{
|
|
69
|
-
key: "initialize",
|
|
70
|
-
value: function initialize(options) {
|
|
71
|
-
if (this.vcObserver === null) {
|
|
72
|
-
this.vcObserver = new _vcObserver.VCObserver(_objectSpread(_objectSpread({}, options), {}, {
|
|
73
|
-
isPostInteraction: true
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
return this;
|
|
77
|
-
}
|
|
78
|
-
}, {
|
|
79
|
-
key: "start",
|
|
80
|
-
value: function start(_ref) {
|
|
81
|
-
var _this$vcObserver;
|
|
82
|
-
var startTime = _ref.startTime;
|
|
83
|
-
(_this$vcObserver = this.vcObserver) === null || _this$vcObserver === void 0 || _this$vcObserver.start({
|
|
84
|
-
startTime: startTime
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}]);
|
|
88
|
-
}();
|
|
89
|
-
var experimentalVC = exports.experimentalVC = new ExperimentalVCMetrics();
|
|
90
|
-
var getExperimentalVCMetrics = exports.getExperimentalVCMetrics = function getExperimentalVCMetrics(interaction) {
|
|
91
|
-
if (experimentalVC.vcObserver) {
|
|
92
|
-
var _result$metricsVc;
|
|
93
|
-
var result = (0, _utils.calculateVCMetrics)(interaction, 'ufo-experimental', experimentalVC.vcObserver.getVCResult);
|
|
94
|
-
experimentalVC.vcObserver.stop();
|
|
95
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
96
|
-
'metric:experimental:vc90': result === null || result === void 0 || (_result$metricsVc = result['metrics:vc']) === null || _result$metricsVc === void 0 ? void 0 : _result$metricsVc['90']
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
return null;
|
|
100
|
-
};
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.addHoldCriterion = addHoldCriterion;
|
|
8
|
-
exports.addSegmentObserver = addSegmentObserver;
|
|
9
|
-
exports.callCancelCallbacks = callCancelCallbacks;
|
|
10
|
-
exports.callCleanUpCallbacks = callCleanUpCallbacks;
|
|
11
|
-
exports.getSegmentCacheKey = getSegmentCacheKey;
|
|
12
|
-
exports.isPerformanceTracingEnabled = isPerformanceTracingEnabled;
|
|
13
|
-
exports.isSegmentLabel = isSegmentLabel;
|
|
14
|
-
exports.labelStackToIdString = labelStackToIdString;
|
|
15
|
-
exports.labelStackToString = labelStackToString;
|
|
16
|
-
exports.pushToQueue = void 0;
|
|
17
|
-
exports.reactProfilerTimingMap = reactProfilerTimingMap;
|
|
18
|
-
exports.removeHoldCriterion = removeHoldCriterion;
|
|
19
|
-
exports.removeSegmentObserver = removeSegmentObserver;
|
|
20
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
21
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
22
|
-
var _config = require("../../config");
|
|
23
|
-
var _constants = require("./constants");
|
|
24
|
-
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; } } }; }
|
|
25
|
-
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; } }
|
|
26
|
-
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; }
|
|
27
|
-
function isPerformanceTracingEnabled() {
|
|
28
|
-
var _getConfig;
|
|
29
|
-
return ((_getConfig = (0, _config.getConfig)()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
|
|
30
|
-
}
|
|
31
|
-
function labelStackToString(labelStack, name) {
|
|
32
|
-
var _stack$map;
|
|
33
|
-
var stack = (0, _toConsumableArray2.default)(labelStack !== null && labelStack !== void 0 ? labelStack : []);
|
|
34
|
-
if (name) {
|
|
35
|
-
stack.push({
|
|
36
|
-
name: name
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
return (_stack$map = stack.map(function (l) {
|
|
40
|
-
return l.name;
|
|
41
|
-
})) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
|
|
42
|
-
}
|
|
43
|
-
function labelStackToIdString(labelStack) {
|
|
44
|
-
var _labelStack$map;
|
|
45
|
-
return labelStack === null || labelStack === void 0 || (_labelStack$map = labelStack.map(function (l) {
|
|
46
|
-
return 'segmentId' in l ? "".concat(l.name, ":").concat(l.segmentId) : "".concat(l.name);
|
|
47
|
-
})) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
|
|
48
|
-
}
|
|
49
|
-
function addSegmentObserver(observer) {
|
|
50
|
-
_constants.segmentObservers.push(observer);
|
|
51
|
-
var _iterator = _createForOfIteratorHelper(_constants.segmentCache.values()),
|
|
52
|
-
_step;
|
|
53
|
-
try {
|
|
54
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
55
|
-
var segmentInfo = _step.value;
|
|
56
|
-
observer.onAdd(segmentInfo);
|
|
57
|
-
}
|
|
58
|
-
} catch (err) {
|
|
59
|
-
_iterator.e(err);
|
|
60
|
-
} finally {
|
|
61
|
-
_iterator.f();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
function removeSegmentObserver(observer) {
|
|
65
|
-
var index = _constants.segmentObservers.findIndex(function (obs) {
|
|
66
|
-
return obs === observer;
|
|
67
|
-
});
|
|
68
|
-
if (index !== -1) {
|
|
69
|
-
_constants.segmentObservers.splice(index, 1);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
function addHoldCriterion(id, labelStack, name, startTime) {
|
|
73
|
-
var _window$__CRITERION__;
|
|
74
|
-
if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
|
|
78
|
-
}
|
|
79
|
-
function removeHoldCriterion(id) {
|
|
80
|
-
var _window$__CRITERION__2;
|
|
81
|
-
if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
window.__CRITERION__.removeUFOHold(id);
|
|
85
|
-
}
|
|
86
|
-
var pushToQueue = exports.pushToQueue = function pushToQueue(id, data) {
|
|
87
|
-
_constants.interactionQueue.push({
|
|
88
|
-
id: id,
|
|
89
|
-
data: data
|
|
90
|
-
});
|
|
91
|
-
};
|
|
92
|
-
function callCleanUpCallbacks(interaction) {
|
|
93
|
-
interaction.cleanupCallbacks.reverse().forEach(function (cleanUpCallback) {
|
|
94
|
-
cleanUpCallback();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
function reactProfilerTimingMap(data) {
|
|
98
|
-
var profilerTimingMap = new Map();
|
|
99
|
-
data.reactProfilerTimings.forEach(function (profilerTiming) {
|
|
100
|
-
var labelStackId = labelStackToIdString(profilerTiming.labelStack);
|
|
101
|
-
if (labelStackId) {
|
|
102
|
-
var _profilerTimingMap$ge, _timing$start, _timing$end;
|
|
103
|
-
var timing = (_profilerTimingMap$ge = profilerTimingMap.get(labelStackId)) !== null && _profilerTimingMap$ge !== void 0 ? _profilerTimingMap$ge : {
|
|
104
|
-
labelStack: profilerTiming.labelStack
|
|
105
|
-
};
|
|
106
|
-
timing.start = profilerTiming.startTime < ((_timing$start = timing.start) !== null && _timing$start !== void 0 ? _timing$start : Number.MAX_SAFE_INTEGER) ? profilerTiming.startTime : timing.start;
|
|
107
|
-
timing.end = profilerTiming.commitTime > ((_timing$end = timing.end) !== null && _timing$end !== void 0 ? _timing$end : Number.MIN_SAFE_INTEGER) ? profilerTiming.commitTime : timing.end;
|
|
108
|
-
profilerTimingMap.set(labelStackId, timing);
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
try {
|
|
112
|
-
// for Firefox 102 and older
|
|
113
|
-
var _iterator2 = _createForOfIteratorHelper(profilerTimingMap.entries()),
|
|
114
|
-
_step2;
|
|
115
|
-
try {
|
|
116
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
117
|
-
var _step2$value = (0, _slicedToArray2.default)(_step2.value, 2),
|
|
118
|
-
_step2$value$ = _step2$value[1],
|
|
119
|
-
labelStack = _step2$value$.labelStack,
|
|
120
|
-
start = _step2$value$.start,
|
|
121
|
-
end = _step2$value$.end;
|
|
122
|
-
performance.measure("\uD83D\uDEF8 ".concat(labelStackToString(labelStack), " [segment_ttai]"), {
|
|
123
|
-
start: start,
|
|
124
|
-
end: end
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
} catch (err) {
|
|
128
|
-
_iterator2.e(err);
|
|
129
|
-
} finally {
|
|
130
|
-
_iterator2.f();
|
|
131
|
-
}
|
|
132
|
-
} catch (e) {
|
|
133
|
-
// do nothing
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
function callCancelCallbacks(interaction) {
|
|
137
|
-
interaction.cancelCallbacks.reverse().forEach(function (cancelCallback) {
|
|
138
|
-
cancelCallback();
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
function isSegmentLabel(obj) {
|
|
142
|
-
return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
|
|
143
|
-
}
|
|
144
|
-
function getSegmentCacheKey(labelStack) {
|
|
145
|
-
return labelStack.map(function (l) {
|
|
146
|
-
if (isSegmentLabel(l)) {
|
|
147
|
-
return "".concat(l.name, "_").concat(l.segmentId);
|
|
148
|
-
}
|
|
149
|
-
return l.name;
|
|
150
|
-
}).join('|');
|
|
151
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
import { calculateVCMetrics } from '../create-payload/common/utils';
|
|
3
|
-
import { VCObserver } from '../vc/vc-observer';
|
|
4
|
-
const interactionBuffer = [];
|
|
5
|
-
let bufferInteractionData = (interactionId, data) => {
|
|
6
|
-
interactionBuffer.push({
|
|
7
|
-
interactionId,
|
|
8
|
-
data
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
function clearInteractionBuffer() {
|
|
12
|
-
interactionBuffer.length = 0;
|
|
13
|
-
}
|
|
14
|
-
function appendInteractionData(interactionId, data) {
|
|
15
|
-
bufferInteractionData(interactionId, data);
|
|
16
|
-
}
|
|
17
|
-
export function installInteractionSink(handler) {
|
|
18
|
-
for (const {
|
|
19
|
-
interactionId,
|
|
20
|
-
data
|
|
21
|
-
} of interactionBuffer) {
|
|
22
|
-
handler(interactionId, data);
|
|
23
|
-
}
|
|
24
|
-
clearInteractionBuffer();
|
|
25
|
-
bufferInteractionData = handler;
|
|
26
|
-
}
|
|
27
|
-
export function sinkExperimentalHandler(sinkFn) {
|
|
28
|
-
installInteractionSink(sinkFn);
|
|
29
|
-
}
|
|
30
|
-
export function onExperimentalInteractionComplete(interactionId, data, endTime = performance.now()) {
|
|
31
|
-
if (data.ufoName) {
|
|
32
|
-
data.end = endTime;
|
|
33
|
-
appendInteractionData(interactionId, data);
|
|
34
|
-
clearInteractionBuffer();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
export class ExperimentalVCMetrics {
|
|
38
|
-
constructor() {
|
|
39
|
-
_defineProperty(this, "vcObserver", null);
|
|
40
|
-
}
|
|
41
|
-
initialize(options) {
|
|
42
|
-
if (this.vcObserver === null) {
|
|
43
|
-
this.vcObserver = new VCObserver({
|
|
44
|
-
...options,
|
|
45
|
-
isPostInteraction: true
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
return this;
|
|
49
|
-
}
|
|
50
|
-
start({
|
|
51
|
-
startTime
|
|
52
|
-
}) {
|
|
53
|
-
var _this$vcObserver;
|
|
54
|
-
(_this$vcObserver = this.vcObserver) === null || _this$vcObserver === void 0 ? void 0 : _this$vcObserver.start({
|
|
55
|
-
startTime
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
export const experimentalVC = new ExperimentalVCMetrics();
|
|
60
|
-
export const getExperimentalVCMetrics = interaction => {
|
|
61
|
-
if (experimentalVC.vcObserver) {
|
|
62
|
-
var _result$metricsVc;
|
|
63
|
-
const result = calculateVCMetrics(interaction, 'ufo-experimental', experimentalVC.vcObserver.getVCResult);
|
|
64
|
-
experimentalVC.vcObserver.stop();
|
|
65
|
-
return {
|
|
66
|
-
...result,
|
|
67
|
-
'metric:experimental:vc90': result === null || result === void 0 ? void 0 : (_result$metricsVc = result['metrics:vc']) === null || _result$metricsVc === void 0 ? void 0 : _result$metricsVc['90']
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
return null;
|
|
71
|
-
};
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { getConfig } from '../../config';
|
|
2
|
-
import { interactionQueue, segmentCache, segmentObservers } from './constants';
|
|
3
|
-
export function isPerformanceTracingEnabled() {
|
|
4
|
-
var _getConfig;
|
|
5
|
-
return ((_getConfig = getConfig()) === null || _getConfig === void 0 ? void 0 : _getConfig.enableAdditionalPerformanceMarks) || window.__REACT_UFO_ENABLE_PERF_TRACING || process.env.NODE_ENV !== 'production';
|
|
6
|
-
}
|
|
7
|
-
export function labelStackToString(labelStack, name) {
|
|
8
|
-
var _stack$map;
|
|
9
|
-
const stack = [...(labelStack !== null && labelStack !== void 0 ? labelStack : [])];
|
|
10
|
-
if (name) {
|
|
11
|
-
stack.push({
|
|
12
|
-
name
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
return (_stack$map = stack.map(l => l.name)) === null || _stack$map === void 0 ? void 0 : _stack$map.join('/');
|
|
16
|
-
}
|
|
17
|
-
export function labelStackToIdString(labelStack) {
|
|
18
|
-
var _labelStack$map;
|
|
19
|
-
return labelStack === null || labelStack === void 0 ? void 0 : (_labelStack$map = labelStack.map(l => 'segmentId' in l ? `${l.name}:${l.segmentId}` : `${l.name}`)) === null || _labelStack$map === void 0 ? void 0 : _labelStack$map.join('/');
|
|
20
|
-
}
|
|
21
|
-
export function addSegmentObserver(observer) {
|
|
22
|
-
segmentObservers.push(observer);
|
|
23
|
-
for (const segmentInfo of segmentCache.values()) {
|
|
24
|
-
observer.onAdd(segmentInfo);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export function removeSegmentObserver(observer) {
|
|
28
|
-
const index = segmentObservers.findIndex(obs => obs === observer);
|
|
29
|
-
if (index !== -1) {
|
|
30
|
-
segmentObservers.splice(index, 1);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export function addHoldCriterion(id, labelStack, name, startTime) {
|
|
34
|
-
var _window$__CRITERION__;
|
|
35
|
-
if (!((_window$__CRITERION__ = window.__CRITERION__) !== null && _window$__CRITERION__ !== void 0 && _window$__CRITERION__.addUFOHold)) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
window.__CRITERION__.addUFOHold(id, labelStackToString(labelStack), name, startTime);
|
|
39
|
-
}
|
|
40
|
-
export function removeHoldCriterion(id) {
|
|
41
|
-
var _window$__CRITERION__2;
|
|
42
|
-
if (!((_window$__CRITERION__2 = window.__CRITERION__) !== null && _window$__CRITERION__2 !== void 0 && _window$__CRITERION__2.removeUFOHold)) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
window.__CRITERION__.removeUFOHold(id);
|
|
46
|
-
}
|
|
47
|
-
export const pushToQueue = (id, data) => {
|
|
48
|
-
interactionQueue.push({
|
|
49
|
-
id,
|
|
50
|
-
data
|
|
51
|
-
});
|
|
52
|
-
};
|
|
53
|
-
export function callCleanUpCallbacks(interaction) {
|
|
54
|
-
interaction.cleanupCallbacks.reverse().forEach(cleanUpCallback => {
|
|
55
|
-
cleanUpCallback();
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
export function reactProfilerTimingMap(data) {
|
|
59
|
-
const profilerTimingMap = new Map();
|
|
60
|
-
data.reactProfilerTimings.forEach(profilerTiming => {
|
|
61
|
-
const labelStackId = labelStackToIdString(profilerTiming.labelStack);
|
|
62
|
-
if (labelStackId) {
|
|
63
|
-
var _profilerTimingMap$ge, _timing$start, _timing$end;
|
|
64
|
-
const timing = (_profilerTimingMap$ge = profilerTimingMap.get(labelStackId)) !== null && _profilerTimingMap$ge !== void 0 ? _profilerTimingMap$ge : {
|
|
65
|
-
labelStack: profilerTiming.labelStack
|
|
66
|
-
};
|
|
67
|
-
timing.start = profilerTiming.startTime < ((_timing$start = timing.start) !== null && _timing$start !== void 0 ? _timing$start : Number.MAX_SAFE_INTEGER) ? profilerTiming.startTime : timing.start;
|
|
68
|
-
timing.end = profilerTiming.commitTime > ((_timing$end = timing.end) !== null && _timing$end !== void 0 ? _timing$end : Number.MIN_SAFE_INTEGER) ? profilerTiming.commitTime : timing.end;
|
|
69
|
-
profilerTimingMap.set(labelStackId, timing);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
try {
|
|
73
|
-
// for Firefox 102 and older
|
|
74
|
-
for (const [, {
|
|
75
|
-
labelStack,
|
|
76
|
-
start,
|
|
77
|
-
end
|
|
78
|
-
}] of profilerTimingMap.entries()) {
|
|
79
|
-
performance.measure(`🛸 ${labelStackToString(labelStack)} [segment_ttai]`, {
|
|
80
|
-
start,
|
|
81
|
-
end
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
} catch (e) {
|
|
85
|
-
// do nothing
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
export function callCancelCallbacks(interaction) {
|
|
89
|
-
interaction.cancelCallbacks.reverse().forEach(cancelCallback => {
|
|
90
|
-
cancelCallback();
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
export function isSegmentLabel(obj) {
|
|
94
|
-
return obj && typeof obj.name === 'string' && typeof obj.segmentId === 'string';
|
|
95
|
-
}
|
|
96
|
-
export function getSegmentCacheKey(labelStack) {
|
|
97
|
-
return labelStack.map(l => {
|
|
98
|
-
if (isSegmentLabel(l)) {
|
|
99
|
-
return `${l.name}_${l.segmentId}`;
|
|
100
|
-
}
|
|
101
|
-
return l.name;
|
|
102
|
-
}).join('|');
|
|
103
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
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
|
-
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
|
-
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; } } }; }
|
|
7
|
-
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; } }
|
|
8
|
-
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; }
|
|
9
|
-
import { calculateVCMetrics } from '../create-payload/common/utils';
|
|
10
|
-
import { VCObserver } from '../vc/vc-observer';
|
|
11
|
-
var interactionBuffer = [];
|
|
12
|
-
var bufferInteractionData = function bufferInteractionData(interactionId, data) {
|
|
13
|
-
interactionBuffer.push({
|
|
14
|
-
interactionId: interactionId,
|
|
15
|
-
data: data
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
function clearInteractionBuffer() {
|
|
19
|
-
interactionBuffer.length = 0;
|
|
20
|
-
}
|
|
21
|
-
function appendInteractionData(interactionId, data) {
|
|
22
|
-
bufferInteractionData(interactionId, data);
|
|
23
|
-
}
|
|
24
|
-
export function installInteractionSink(handler) {
|
|
25
|
-
var _iterator = _createForOfIteratorHelper(interactionBuffer),
|
|
26
|
-
_step;
|
|
27
|
-
try {
|
|
28
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
29
|
-
var _step$value = _step.value,
|
|
30
|
-
_interactionId = _step$value.interactionId,
|
|
31
|
-
data = _step$value.data;
|
|
32
|
-
handler(_interactionId, data);
|
|
33
|
-
}
|
|
34
|
-
} catch (err) {
|
|
35
|
-
_iterator.e(err);
|
|
36
|
-
} finally {
|
|
37
|
-
_iterator.f();
|
|
38
|
-
}
|
|
39
|
-
clearInteractionBuffer();
|
|
40
|
-
bufferInteractionData = handler;
|
|
41
|
-
}
|
|
42
|
-
export function sinkExperimentalHandler(sinkFn) {
|
|
43
|
-
installInteractionSink(sinkFn);
|
|
44
|
-
}
|
|
45
|
-
export function onExperimentalInteractionComplete(interactionId, data) {
|
|
46
|
-
var endTime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : performance.now();
|
|
47
|
-
if (data.ufoName) {
|
|
48
|
-
data.end = endTime;
|
|
49
|
-
appendInteractionData(interactionId, data);
|
|
50
|
-
clearInteractionBuffer();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
export var ExperimentalVCMetrics = /*#__PURE__*/function () {
|
|
54
|
-
function ExperimentalVCMetrics() {
|
|
55
|
-
_classCallCheck(this, ExperimentalVCMetrics);
|
|
56
|
-
_defineProperty(this, "vcObserver", null);
|
|
57
|
-
}
|
|
58
|
-
return _createClass(ExperimentalVCMetrics, [{
|
|
59
|
-
key: "initialize",
|
|
60
|
-
value: function initialize(options) {
|
|
61
|
-
if (this.vcObserver === null) {
|
|
62
|
-
this.vcObserver = new VCObserver(_objectSpread(_objectSpread({}, options), {}, {
|
|
63
|
-
isPostInteraction: true
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
}, {
|
|
69
|
-
key: "start",
|
|
70
|
-
value: function start(_ref) {
|
|
71
|
-
var _this$vcObserver;
|
|
72
|
-
var startTime = _ref.startTime;
|
|
73
|
-
(_this$vcObserver = this.vcObserver) === null || _this$vcObserver === void 0 || _this$vcObserver.start({
|
|
74
|
-
startTime: startTime
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}]);
|
|
78
|
-
}();
|
|
79
|
-
export var experimentalVC = new ExperimentalVCMetrics();
|
|
80
|
-
export var getExperimentalVCMetrics = function getExperimentalVCMetrics(interaction) {
|
|
81
|
-
if (experimentalVC.vcObserver) {
|
|
82
|
-
var _result$metricsVc;
|
|
83
|
-
var result = calculateVCMetrics(interaction, 'ufo-experimental', experimentalVC.vcObserver.getVCResult);
|
|
84
|
-
experimentalVC.vcObserver.stop();
|
|
85
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
86
|
-
'metric:experimental:vc90': result === null || result === void 0 || (_result$metricsVc = result['metrics:vc']) === null || _result$metricsVc === void 0 ? void 0 : _result$metricsVc['90']
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
return null;
|
|
90
|
-
};
|