@atlaskit/react-ufo 3.12.4 → 3.13.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/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/cjs/create-payload/utils/get-vc-metrics.js +2 -1
- package/dist/cjs/vc/index.js +4 -2
- package/dist/cjs/vc/vc-observer/getVCRevisionDebugDetails.js +41 -0
- package/dist/cjs/vc/vc-observer/index.js +63 -33
- package/dist/cjs/vc/vc-observer/observers/index.js +3 -2
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +38 -12
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -0
- package/dist/cjs/vc/vc-observer-new/index.js +13 -7
- package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
- package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -4
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +108 -0
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +16 -57
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/cjs/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/es2019/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/es2019/create-payload/utils/get-vc-metrics.js +1 -0
- package/dist/es2019/vc/index.js +4 -2
- package/dist/es2019/vc/vc-observer/getVCRevisionDebugDetails.js +32 -0
- package/dist/es2019/vc/vc-observer/index.js +36 -1
- package/dist/es2019/vc/vc-observer/observers/index.js +2 -1
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +38 -13
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -1
- package/dist/es2019/vc/vc-observer-new/index.js +12 -6
- package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +115 -17
- package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +44 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +75 -0
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -20
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/es2019/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/esm/create-experimental-interaction-metrics-payload/index.js +2 -1
- package/dist/esm/create-payload/utils/get-vc-metrics.js +2 -1
- package/dist/esm/vc/index.js +4 -2
- package/dist/esm/vc/vc-observer/getVCRevisionDebugDetails.js +35 -0
- package/dist/esm/vc/vc-observer/index.js +63 -33
- package/dist/esm/vc/vc-observer/observers/index.js +3 -2
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +38 -12
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.js +9 -0
- package/dist/esm/vc/vc-observer-new/index.js +13 -7
- package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +211 -36
- package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +4 -4
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +94 -5
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.js +106 -0
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/index.js +2 -55
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +15 -5
- package/dist/esm/vc/vc-observer-new/viewport-observer/mutation-observer/index.js +3 -1
- package/dist/types/config/index.d.ts +1 -0
- package/dist/types/vc/types.d.ts +2 -0
- package/dist/types/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
- package/dist/types/vc/vc-observer/index.d.ts +1 -1
- package/dist/types/vc/vc-observer/observers/index.d.ts +3 -0
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +4 -1
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -1
- package/dist/types/vc/vc-observer-new/index.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
- package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/types.d.ts +5 -1
- package/dist/types/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
- package/dist/types-ts4.5/config/index.d.ts +1 -0
- package/dist/types-ts4.5/vc/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer/getVCRevisionDebugDetails.d.ts +30 -0
- package/dist/types-ts4.5/vc/vc-observer/index.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +3 -0
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +4 -1
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/ssr-scripts/collectSSRPlaceholderDimensions.d.ts +1 -1
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +4 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +5 -1
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/test-with-debug-info.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/index.d.ts +2 -4
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +20 -2
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/types.d.ts +5 -1
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/mutation-observer/index.d.ts +2 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/types.d.ts +2 -0
- package/package.json +4 -1
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -367
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -398
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -5
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -152
- package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -108
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -248
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -263
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -99
- package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -60
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.js +0 -361
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +0 -391
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.js +0 -1
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.js +0 -145
- package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +0 -101
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
- package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/heatmap.d.ts +0 -39
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +0 -10
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/types.d.ts +0 -43
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/calc-union-area.d.ts +0 -12
- package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +0 -25
|
@@ -1,55 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import calcUsingCanvas from './canvas-heatmap';
|
|
4
|
-
import calcUsingOldHeatmap from './heatmap';
|
|
5
|
-
import calcUsingRectSweepingLine from './rect-sweeping-line';
|
|
6
|
-
function calculateTTVCPercentiles(_x) {
|
|
7
|
-
return _calculateTTVCPercentiles.apply(this, arguments);
|
|
8
|
-
}
|
|
9
|
-
function _calculateTTVCPercentiles() {
|
|
10
|
-
_calculateTTVCPercentiles = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(arg) {
|
|
11
|
-
var algo, vcDetails, _vcDetails, _vcDetails2;
|
|
12
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
13
|
-
while (1) switch (_context.prev = _context.next) {
|
|
14
|
-
case 0:
|
|
15
|
-
algo = 'canvas_heatmap';
|
|
16
|
-
if (!(algo === 'canvas_heatmap')) {
|
|
17
|
-
_context.next = 6;
|
|
18
|
-
break;
|
|
19
|
-
}
|
|
20
|
-
_context.next = 4;
|
|
21
|
-
return calcUsingCanvas(arg);
|
|
22
|
-
case 4:
|
|
23
|
-
vcDetails = _context.sent;
|
|
24
|
-
return _context.abrupt("return", vcDetails);
|
|
25
|
-
case 6:
|
|
26
|
-
if (!(algo === 'rect_sweeping')) {
|
|
27
|
-
_context.next = 11;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
_context.next = 9;
|
|
31
|
-
return calcUsingRectSweepingLine(arg);
|
|
32
|
-
case 9:
|
|
33
|
-
_vcDetails = _context.sent;
|
|
34
|
-
return _context.abrupt("return", _vcDetails);
|
|
35
|
-
case 11:
|
|
36
|
-
if (!(algo === 'old_heatmap')) {
|
|
37
|
-
_context.next = 16;
|
|
38
|
-
break;
|
|
39
|
-
}
|
|
40
|
-
_context.next = 14;
|
|
41
|
-
return calcUsingOldHeatmap(arg);
|
|
42
|
-
case 14:
|
|
43
|
-
_vcDetails2 = _context.sent;
|
|
44
|
-
return _context.abrupt("return", _vcDetails2);
|
|
45
|
-
case 16:
|
|
46
|
-
throw new Error('unexpected Error algo not chosen correctly');
|
|
47
|
-
case 17:
|
|
48
|
-
case "end":
|
|
49
|
-
return _context.stop();
|
|
50
|
-
}
|
|
51
|
-
}, _callee);
|
|
52
|
-
}));
|
|
53
|
-
return _calculateTTVCPercentiles.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
export default calculateTTVCPercentiles;
|
|
1
|
+
export { default as calculateTTVCPercentiles } from './canvas-heatmap';
|
|
2
|
+
export { calculateTTVCPercentilesWithDebugInfo } from './canvas-heatmap';
|
|
@@ -116,7 +116,9 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
116
116
|
_defineProperty(this, "handleAttributeMutation", function (_ref5) {
|
|
117
117
|
var _this$intersectionObs4;
|
|
118
118
|
var target = _ref5.target,
|
|
119
|
-
attributeName = _ref5.attributeName
|
|
119
|
+
attributeName = _ref5.attributeName,
|
|
120
|
+
oldValue = _ref5.oldValue,
|
|
121
|
+
newValue = _ref5.newValue;
|
|
120
122
|
(_this$intersectionObs4 = _this.intersectionObserver) === null || _this$intersectionObs4 === void 0 || _this$intersectionObs4.watchAndTag(target, function (_ref6) {
|
|
121
123
|
var target = _ref6.target,
|
|
122
124
|
rect = _ref6.rect;
|
|
@@ -124,7 +126,9 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
124
126
|
return {
|
|
125
127
|
type: 'mutation:media',
|
|
126
128
|
mutationData: {
|
|
127
|
-
attributeName: attributeName
|
|
129
|
+
attributeName: attributeName,
|
|
130
|
+
oldValue: oldValue,
|
|
131
|
+
newValue: newValue
|
|
128
132
|
}
|
|
129
133
|
};
|
|
130
134
|
}
|
|
@@ -136,7 +140,9 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
136
140
|
return {
|
|
137
141
|
type: 'mutation:attribute:non-visual-style',
|
|
138
142
|
mutationData: {
|
|
139
|
-
attributeName: attributeName
|
|
143
|
+
attributeName: attributeName,
|
|
144
|
+
oldValue: oldValue,
|
|
145
|
+
newValue: newValue
|
|
140
146
|
}
|
|
141
147
|
};
|
|
142
148
|
}
|
|
@@ -145,14 +151,18 @@ var ViewportObserver = /*#__PURE__*/function () {
|
|
|
145
151
|
return {
|
|
146
152
|
type: 'mutation:attribute:no-layout-shift',
|
|
147
153
|
mutationData: {
|
|
148
|
-
attributeName: attributeName
|
|
154
|
+
attributeName: attributeName,
|
|
155
|
+
oldValue: oldValue,
|
|
156
|
+
newValue: newValue
|
|
149
157
|
}
|
|
150
158
|
};
|
|
151
159
|
}
|
|
152
160
|
return {
|
|
153
161
|
type: 'mutation:attribute',
|
|
154
162
|
mutationData: {
|
|
155
|
-
attributeName: attributeName
|
|
163
|
+
attributeName: attributeName,
|
|
164
|
+
oldValue: oldValue,
|
|
165
|
+
newValue: newValue
|
|
156
166
|
}
|
|
157
167
|
};
|
|
158
168
|
});
|
|
@@ -36,7 +36,9 @@ function createMutationObserver(_ref) {
|
|
|
36
36
|
var _mut$attributeName;
|
|
37
37
|
onAttributeMutation({
|
|
38
38
|
target: mut.target,
|
|
39
|
-
attributeName: (_mut$attributeName = mut.attributeName) !== null && _mut$attributeName !== void 0 ? _mut$attributeName : 'unknown'
|
|
39
|
+
attributeName: (_mut$attributeName = mut.attributeName) !== null && _mut$attributeName !== void 0 ? _mut$attributeName : 'unknown',
|
|
40
|
+
oldValue: oldValue,
|
|
41
|
+
newValue: newValue
|
|
40
42
|
});
|
|
41
43
|
}
|
|
42
44
|
continue;
|
|
@@ -73,6 +73,7 @@ export type Config = {
|
|
|
73
73
|
readonly selectorConfig?: SelectorConfig;
|
|
74
74
|
readonly ssr?: boolean;
|
|
75
75
|
readonly ssrWhitelist?: string[];
|
|
76
|
+
readonly ssrEnablePageLayoutPlaceholder?: boolean;
|
|
76
77
|
readonly stopVCAtInteractionFinish?: boolean;
|
|
77
78
|
/**
|
|
78
79
|
* The revisions of TTVC that will be calculated
|
package/dist/types/vc/types.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type GetVCResultType = {
|
|
|
8
8
|
ssr?: number;
|
|
9
9
|
vc?: VCRawDataType | null;
|
|
10
10
|
experienceKey: string;
|
|
11
|
+
interactionId?: string;
|
|
11
12
|
};
|
|
12
13
|
export type SelectorConfig = {
|
|
13
14
|
id: boolean;
|
|
@@ -22,6 +23,7 @@ export type VCObserverOptions = {
|
|
|
22
23
|
devToolsEnabled?: boolean | undefined;
|
|
23
24
|
selectorConfig?: SelectorConfig | undefined;
|
|
24
25
|
isPostInteraction?: boolean;
|
|
26
|
+
ssrEnablePageLayoutPlaceholder?: boolean;
|
|
25
27
|
};
|
|
26
28
|
export interface VCObserverInterface {
|
|
27
29
|
start(startArg: {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ComponentsLogType, VCEntryType } from '../../common/vc/types';
|
|
2
|
+
import type { VCObserverEntryType } from '../vc-observer-new/types';
|
|
3
|
+
interface VCRevisionDebugDetails {
|
|
4
|
+
revision: string;
|
|
5
|
+
isClean: boolean;
|
|
6
|
+
abortReason: string | null;
|
|
7
|
+
vcLogs: Array<{
|
|
8
|
+
time: number;
|
|
9
|
+
viewportPercentage: number;
|
|
10
|
+
entries: Array<{
|
|
11
|
+
elementName: string;
|
|
12
|
+
type: VCObserverEntryType;
|
|
13
|
+
rect: DOMRect;
|
|
14
|
+
visible: boolean;
|
|
15
|
+
attributeName?: string | null;
|
|
16
|
+
oldValue?: string | null;
|
|
17
|
+
newValue?: string | null;
|
|
18
|
+
}>;
|
|
19
|
+
}>;
|
|
20
|
+
interactionId?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function getVCRevisionDebugDetails({ revision, isClean, abortReason, VCEntries, componentsLog, interactionId, }: {
|
|
23
|
+
revision: string;
|
|
24
|
+
isClean: boolean;
|
|
25
|
+
abortReason: string | null;
|
|
26
|
+
VCEntries: VCEntryType[];
|
|
27
|
+
componentsLog: ComponentsLogType;
|
|
28
|
+
interactionId?: string;
|
|
29
|
+
}): VCRevisionDebugDetails;
|
|
30
|
+
export {};
|
|
@@ -41,7 +41,7 @@ export declare class VCObserver implements VCObserverInterface {
|
|
|
41
41
|
targetName: string;
|
|
42
42
|
ignoreReason: VCIgnoreReason | undefined;
|
|
43
43
|
}[];
|
|
44
|
-
getVCResult: ({ start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, }: GetVCResultType) => Promise<VCResult>;
|
|
44
|
+
getVCResult: ({ start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, interactionId, }: GetVCResultType) => Promise<VCResult>;
|
|
45
45
|
static calculateVC({ heatmap, ssr, componentsLog, viewport, }: {
|
|
46
46
|
heatmap: number[][];
|
|
47
47
|
ssr?: number;
|
|
@@ -9,6 +9,9 @@ export type SelectorConfig = {
|
|
|
9
9
|
};
|
|
10
10
|
type ConstructorOptions = {
|
|
11
11
|
selectorConfig: SelectorConfig;
|
|
12
|
+
SSRConfig?: {
|
|
13
|
+
enablePageLayoutPlaceholder: boolean;
|
|
14
|
+
};
|
|
12
15
|
};
|
|
13
16
|
export declare class Observers implements BrowserObservers {
|
|
14
17
|
private intersectionObserver;
|
|
@@ -11,7 +11,10 @@ export declare class SSRPlaceholderHandlers {
|
|
|
11
11
|
private reactValidateCallbacks;
|
|
12
12
|
private intersectionObserver;
|
|
13
13
|
private EQUALITY_THRESHOLD;
|
|
14
|
-
|
|
14
|
+
private enablePageLayoutPlaceholder;
|
|
15
|
+
constructor(enablePageLayoutPlaceholder?: boolean);
|
|
16
|
+
private getPlaceholderId;
|
|
17
|
+
private getPlaceholderReplacementId;
|
|
15
18
|
clear(): void;
|
|
16
19
|
isPlaceholder(element: HTMLElement): boolean;
|
|
17
20
|
isPlaceholderReplacement(element: HTMLElement): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function collectSSRPlaceholderDimensions(document: Document, window: Window): void;
|
|
1
|
+
export declare function collectSSRPlaceholderDimensions(document: Document, window: Window, enablePageLayoutPlaceholder?: boolean): void;
|
|
@@ -3,12 +3,14 @@ import { type SelectorConfig } from './get-element-name';
|
|
|
3
3
|
import type { VCObserverGetVCResultParam } from './types';
|
|
4
4
|
export type VCObserverNewConfig = {
|
|
5
5
|
selectorConfig?: SelectorConfig;
|
|
6
|
+
isPostInteraction?: boolean;
|
|
6
7
|
};
|
|
7
8
|
export default class VCObserverNew {
|
|
8
9
|
private selectorConfig;
|
|
9
10
|
private viewportObserver;
|
|
10
11
|
private windowEventObserver;
|
|
11
12
|
private entriesTimeline;
|
|
13
|
+
private isPostInteraction;
|
|
12
14
|
constructor(config: VCObserverNewConfig);
|
|
13
15
|
start({ startTime }: {
|
|
14
16
|
startTime: DOMHighResTimeStamp;
|
|
@@ -10,5 +10,8 @@ export default abstract class AbstractVCCalculatorBase implements VCCalculator {
|
|
|
10
10
|
isVCClean: boolean;
|
|
11
11
|
dirtyReason?: VCAbortReason;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
private filterViewportEntries;
|
|
14
|
+
private calculateBasic;
|
|
15
|
+
private calculateWithDebugInfo;
|
|
16
|
+
calculate({ startTime, stopTime, orderedEntries, interactionId, isPostInteraction, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
|
|
14
17
|
}
|
package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { RevisionPayloadVCDetails } from '../../../../../common/vc/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ViewportEntryData } from '../../../types';
|
|
3
|
+
import type { CalcTTVCPercentilesArg, CalcTTVCPercentilesArgWithDebugInfo, PercentileCalcResult } from '../types';
|
|
3
4
|
declare function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, startTime, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
|
|
5
|
+
declare function calculateTTVCPercentilesWithDebugInfo({ viewport, orderedEntries, startTime, }: CalcTTVCPercentilesArgWithDebugInfo): Promise<PercentileCalcResult>;
|
|
4
6
|
export default calculateTTVCPercentiles;
|
|
5
7
|
export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number, startTime: DOMHighResTimeStamp): RevisionPayloadVCDetails;
|
|
8
|
+
export declare function calculatePercentilesWithDebugInfo(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, ViewportEntryData[]>, totalPixels: number, startTime: DOMHighResTimeStamp): PercentileCalcResult;
|
|
9
|
+
export { calculateTTVCPercentilesWithDebugInfo };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
declare function calculateTTVCPercentiles(arg: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails | null>;
|
|
4
|
-
export default calculateTTVCPercentiles;
|
|
1
|
+
export { default as calculateTTVCPercentiles } from './canvas-heatmap';
|
|
2
|
+
export { calculateTTVCPercentilesWithDebugInfo } from './canvas-heatmap';
|
|
@@ -1,11 +1,29 @@
|
|
|
1
|
-
import type { VCObserverEntry } from '../../types';
|
|
1
|
+
import type { VCObserverEntry, ViewportEntryData } from '../../types';
|
|
2
2
|
export type CalcTTVCPercentilesArg = {
|
|
3
3
|
viewport: {
|
|
4
4
|
width: number;
|
|
5
5
|
height: number;
|
|
6
6
|
};
|
|
7
|
+
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
8
|
+
percentiles: number[];
|
|
7
9
|
startTime: DOMHighResTimeStamp;
|
|
8
10
|
stopTime: DOMHighResTimeStamp;
|
|
11
|
+
};
|
|
12
|
+
export type CalcTTVCPercentilesArgWithDebugInfo = {
|
|
13
|
+
viewport: {
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
};
|
|
9
17
|
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
10
|
-
|
|
18
|
+
startTime: DOMHighResTimeStamp;
|
|
19
|
+
stopTime: DOMHighResTimeStamp;
|
|
11
20
|
};
|
|
21
|
+
export interface PercentileCalcResultItem {
|
|
22
|
+
time: number;
|
|
23
|
+
viewportPercentage: number;
|
|
24
|
+
entries: ViewportEntryData[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ordered by time
|
|
28
|
+
*/
|
|
29
|
+
export type PercentileCalcResult = PercentileCalcResultItem[];
|
|
@@ -4,6 +4,8 @@ export type VCCalculatorParam = {
|
|
|
4
4
|
startTime: DOMHighResTimeStamp;
|
|
5
5
|
stopTime: DOMHighResTimeStamp;
|
|
6
6
|
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
7
|
+
interactionId?: string;
|
|
8
|
+
isPostInteraction: boolean;
|
|
7
9
|
};
|
|
8
10
|
export interface VCCalculator {
|
|
9
11
|
calculate(param: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import type { ObservedWindowEvent } from './window-event-observer';
|
|
2
2
|
export type VCObserverEntryType = 'mutation:child-element' | 'mutation:remount' | 'mutation:element' | 'mutation:element-replacement' | 'mutation:attribute:no-layout-shift' | 'mutation:attribute:non-visual-style' | 'mutation:attribute' | 'mutation:media' | 'layout-shift' | 'window:event' | 'unknown';
|
|
3
3
|
export type ViewportEntryData = {
|
|
4
|
+
readonly type: VCObserverEntryType;
|
|
4
5
|
readonly elementName: string;
|
|
5
6
|
readonly rect: DOMRect;
|
|
6
7
|
readonly previousRect?: DOMRect | undefined;
|
|
7
8
|
readonly visible: boolean;
|
|
8
9
|
readonly attributeName?: string | null | undefined;
|
|
10
|
+
readonly oldValue?: string | null | undefined;
|
|
11
|
+
readonly newValue?: string | null | undefined;
|
|
9
12
|
};
|
|
10
13
|
export type WindowEventEntryData = {
|
|
14
|
+
readonly type: VCObserverEntryType;
|
|
11
15
|
readonly eventType: ObservedWindowEvent;
|
|
12
16
|
};
|
|
13
17
|
export type VCObserverEntry = {
|
|
14
18
|
readonly time: DOMHighResTimeStamp;
|
|
15
|
-
readonly type: VCObserverEntryType;
|
|
16
19
|
readonly data: ViewportEntryData | WindowEventEntryData;
|
|
17
20
|
};
|
|
18
21
|
export type VCObserverGetVCResultParam = {
|
|
19
22
|
start: number;
|
|
20
23
|
stop: number;
|
|
24
|
+
interactionId?: string;
|
|
21
25
|
};
|
|
@@ -2,6 +2,8 @@ export type CreateMutationObserverProps = {
|
|
|
2
2
|
onAttributeMutation: (props: {
|
|
3
3
|
target: HTMLElement;
|
|
4
4
|
attributeName: string;
|
|
5
|
+
oldValue?: string | undefined | null;
|
|
6
|
+
newValue?: string | undefined | null;
|
|
5
7
|
}) => void;
|
|
6
8
|
onMutationFinished?: (props: {
|
|
7
9
|
targets: Array<HTMLElement>;
|
|
@@ -3,6 +3,8 @@ export type MutationRecordWithTimestamp = MutationRecord & {
|
|
|
3
3
|
};
|
|
4
4
|
export type AttributeMutationData = {
|
|
5
5
|
attributeName: string;
|
|
6
|
+
oldValue?: string | undefined | null;
|
|
7
|
+
newValue?: string | undefined | null;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
10
|
* Add here when there are more type of mutation data
|
|
@@ -73,6 +73,7 @@ export type Config = {
|
|
|
73
73
|
readonly selectorConfig?: SelectorConfig;
|
|
74
74
|
readonly ssr?: boolean;
|
|
75
75
|
readonly ssrWhitelist?: string[];
|
|
76
|
+
readonly ssrEnablePageLayoutPlaceholder?: boolean;
|
|
76
77
|
readonly stopVCAtInteractionFinish?: boolean;
|
|
77
78
|
/**
|
|
78
79
|
* The revisions of TTVC that will be calculated
|
|
@@ -8,6 +8,7 @@ export type GetVCResultType = {
|
|
|
8
8
|
ssr?: number;
|
|
9
9
|
vc?: VCRawDataType | null;
|
|
10
10
|
experienceKey: string;
|
|
11
|
+
interactionId?: string;
|
|
11
12
|
};
|
|
12
13
|
export type SelectorConfig = {
|
|
13
14
|
id: boolean;
|
|
@@ -22,6 +23,7 @@ export type VCObserverOptions = {
|
|
|
22
23
|
devToolsEnabled?: boolean | undefined;
|
|
23
24
|
selectorConfig?: SelectorConfig | undefined;
|
|
24
25
|
isPostInteraction?: boolean;
|
|
26
|
+
ssrEnablePageLayoutPlaceholder?: boolean;
|
|
25
27
|
};
|
|
26
28
|
export interface VCObserverInterface {
|
|
27
29
|
start(startArg: {
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ComponentsLogType, VCEntryType } from '../../common/vc/types';
|
|
2
|
+
import type { VCObserverEntryType } from '../vc-observer-new/types';
|
|
3
|
+
interface VCRevisionDebugDetails {
|
|
4
|
+
revision: string;
|
|
5
|
+
isClean: boolean;
|
|
6
|
+
abortReason: string | null;
|
|
7
|
+
vcLogs: Array<{
|
|
8
|
+
time: number;
|
|
9
|
+
viewportPercentage: number;
|
|
10
|
+
entries: Array<{
|
|
11
|
+
elementName: string;
|
|
12
|
+
type: VCObserverEntryType;
|
|
13
|
+
rect: DOMRect;
|
|
14
|
+
visible: boolean;
|
|
15
|
+
attributeName?: string | null;
|
|
16
|
+
oldValue?: string | null;
|
|
17
|
+
newValue?: string | null;
|
|
18
|
+
}>;
|
|
19
|
+
}>;
|
|
20
|
+
interactionId?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function getVCRevisionDebugDetails({ revision, isClean, abortReason, VCEntries, componentsLog, interactionId, }: {
|
|
23
|
+
revision: string;
|
|
24
|
+
isClean: boolean;
|
|
25
|
+
abortReason: string | null;
|
|
26
|
+
VCEntries: VCEntryType[];
|
|
27
|
+
componentsLog: ComponentsLogType;
|
|
28
|
+
interactionId?: string;
|
|
29
|
+
}): VCRevisionDebugDetails;
|
|
30
|
+
export {};
|
|
@@ -51,7 +51,7 @@ export declare class VCObserver implements VCObserverInterface {
|
|
|
51
51
|
targetName: string;
|
|
52
52
|
ignoreReason: VCIgnoreReason | undefined;
|
|
53
53
|
}[];
|
|
54
|
-
getVCResult: ({ start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, }: GetVCResultType) => Promise<VCResult>;
|
|
54
|
+
getVCResult: ({ start, stop, tti, prefix, ssr, vc, isEventAborted, experienceKey, interactionId, }: GetVCResultType) => Promise<VCResult>;
|
|
55
55
|
static calculateVC({ heatmap, ssr, componentsLog, viewport, }: {
|
|
56
56
|
heatmap: number[][];
|
|
57
57
|
ssr?: number;
|
|
@@ -9,6 +9,9 @@ export type SelectorConfig = {
|
|
|
9
9
|
};
|
|
10
10
|
type ConstructorOptions = {
|
|
11
11
|
selectorConfig: SelectorConfig;
|
|
12
|
+
SSRConfig?: {
|
|
13
|
+
enablePageLayoutPlaceholder: boolean;
|
|
14
|
+
};
|
|
12
15
|
};
|
|
13
16
|
export declare class Observers implements BrowserObservers {
|
|
14
17
|
private intersectionObserver;
|
|
@@ -11,7 +11,10 @@ export declare class SSRPlaceholderHandlers {
|
|
|
11
11
|
private reactValidateCallbacks;
|
|
12
12
|
private intersectionObserver;
|
|
13
13
|
private EQUALITY_THRESHOLD;
|
|
14
|
-
|
|
14
|
+
private enablePageLayoutPlaceholder;
|
|
15
|
+
constructor(enablePageLayoutPlaceholder?: boolean);
|
|
16
|
+
private getPlaceholderId;
|
|
17
|
+
private getPlaceholderReplacementId;
|
|
15
18
|
clear(): void;
|
|
16
19
|
isPlaceholder(element: HTMLElement): boolean;
|
|
17
20
|
isPlaceholderReplacement(element: HTMLElement): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function collectSSRPlaceholderDimensions(document: Document, window: Window): void;
|
|
1
|
+
export declare function collectSSRPlaceholderDimensions(document: Document, window: Window, enablePageLayoutPlaceholder?: boolean): void;
|
|
@@ -3,12 +3,14 @@ import { type SelectorConfig } from './get-element-name';
|
|
|
3
3
|
import type { VCObserverGetVCResultParam } from './types';
|
|
4
4
|
export type VCObserverNewConfig = {
|
|
5
5
|
selectorConfig?: SelectorConfig;
|
|
6
|
+
isPostInteraction?: boolean;
|
|
6
7
|
};
|
|
7
8
|
export default class VCObserverNew {
|
|
8
9
|
private selectorConfig;
|
|
9
10
|
private viewportObserver;
|
|
10
11
|
private windowEventObserver;
|
|
11
12
|
private entriesTimeline;
|
|
13
|
+
private isPostInteraction;
|
|
12
14
|
constructor(config: VCObserverNewConfig);
|
|
13
15
|
start({ startTime }: {
|
|
14
16
|
startTime: DOMHighResTimeStamp;
|
package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts
CHANGED
|
@@ -10,5 +10,8 @@ export default abstract class AbstractVCCalculatorBase implements VCCalculator {
|
|
|
10
10
|
isVCClean: boolean;
|
|
11
11
|
dirtyReason?: VCAbortReason;
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
private filterViewportEntries;
|
|
14
|
+
private calculateBasic;
|
|
15
|
+
private calculateWithDebugInfo;
|
|
16
|
+
calculate({ startTime, stopTime, orderedEntries, interactionId, isPostInteraction, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
|
|
14
17
|
}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { RevisionPayloadVCDetails } from '../../../../../common/vc/types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ViewportEntryData } from '../../../types';
|
|
3
|
+
import type { CalcTTVCPercentilesArg, CalcTTVCPercentilesArgWithDebugInfo, PercentileCalcResult } from '../types';
|
|
3
4
|
declare function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, startTime, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
|
|
5
|
+
declare function calculateTTVCPercentilesWithDebugInfo({ viewport, orderedEntries, startTime, }: CalcTTVCPercentilesArgWithDebugInfo): Promise<PercentileCalcResult>;
|
|
4
6
|
export default calculateTTVCPercentiles;
|
|
5
7
|
export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number, startTime: DOMHighResTimeStamp): RevisionPayloadVCDetails;
|
|
8
|
+
export declare function calculatePercentilesWithDebugInfo(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, ViewportEntryData[]>, totalPixels: number, startTime: DOMHighResTimeStamp): PercentileCalcResult;
|
|
9
|
+
export { calculateTTVCPercentilesWithDebugInfo };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
declare function calculateTTVCPercentiles(arg: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails | null>;
|
|
4
|
-
export default calculateTTVCPercentiles;
|
|
1
|
+
export { default as calculateTTVCPercentiles } from './canvas-heatmap';
|
|
2
|
+
export { calculateTTVCPercentilesWithDebugInfo } from './canvas-heatmap';
|
|
@@ -1,11 +1,29 @@
|
|
|
1
|
-
import type { VCObserverEntry } from '../../types';
|
|
1
|
+
import type { VCObserverEntry, ViewportEntryData } from '../../types';
|
|
2
2
|
export type CalcTTVCPercentilesArg = {
|
|
3
3
|
viewport: {
|
|
4
4
|
width: number;
|
|
5
5
|
height: number;
|
|
6
6
|
};
|
|
7
|
+
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
8
|
+
percentiles: number[];
|
|
7
9
|
startTime: DOMHighResTimeStamp;
|
|
8
10
|
stopTime: DOMHighResTimeStamp;
|
|
11
|
+
};
|
|
12
|
+
export type CalcTTVCPercentilesArgWithDebugInfo = {
|
|
13
|
+
viewport: {
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
};
|
|
9
17
|
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
10
|
-
|
|
18
|
+
startTime: DOMHighResTimeStamp;
|
|
19
|
+
stopTime: DOMHighResTimeStamp;
|
|
11
20
|
};
|
|
21
|
+
export interface PercentileCalcResultItem {
|
|
22
|
+
time: number;
|
|
23
|
+
viewportPercentage: number;
|
|
24
|
+
entries: ViewportEntryData[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Ordered by time
|
|
28
|
+
*/
|
|
29
|
+
export type PercentileCalcResult = PercentileCalcResultItem[];
|
|
@@ -4,6 +4,8 @@ export type VCCalculatorParam = {
|
|
|
4
4
|
startTime: DOMHighResTimeStamp;
|
|
5
5
|
stopTime: DOMHighResTimeStamp;
|
|
6
6
|
orderedEntries: ReadonlyArray<VCObserverEntry>;
|
|
7
|
+
interactionId?: string;
|
|
8
|
+
isPostInteraction: boolean;
|
|
7
9
|
};
|
|
8
10
|
export interface VCCalculator {
|
|
9
11
|
calculate(param: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import type { ObservedWindowEvent } from './window-event-observer';
|
|
2
2
|
export type VCObserverEntryType = 'mutation:child-element' | 'mutation:remount' | 'mutation:element' | 'mutation:element-replacement' | 'mutation:attribute:no-layout-shift' | 'mutation:attribute:non-visual-style' | 'mutation:attribute' | 'mutation:media' | 'layout-shift' | 'window:event' | 'unknown';
|
|
3
3
|
export type ViewportEntryData = {
|
|
4
|
+
readonly type: VCObserverEntryType;
|
|
4
5
|
readonly elementName: string;
|
|
5
6
|
readonly rect: DOMRect;
|
|
6
7
|
readonly previousRect?: DOMRect | undefined;
|
|
7
8
|
readonly visible: boolean;
|
|
8
9
|
readonly attributeName?: string | null | undefined;
|
|
10
|
+
readonly oldValue?: string | null | undefined;
|
|
11
|
+
readonly newValue?: string | null | undefined;
|
|
9
12
|
};
|
|
10
13
|
export type WindowEventEntryData = {
|
|
14
|
+
readonly type: VCObserverEntryType;
|
|
11
15
|
readonly eventType: ObservedWindowEvent;
|
|
12
16
|
};
|
|
13
17
|
export type VCObserverEntry = {
|
|
14
18
|
readonly time: DOMHighResTimeStamp;
|
|
15
|
-
readonly type: VCObserverEntryType;
|
|
16
19
|
readonly data: ViewportEntryData | WindowEventEntryData;
|
|
17
20
|
};
|
|
18
21
|
export type VCObserverGetVCResultParam = {
|
|
19
22
|
start: number;
|
|
20
23
|
stop: number;
|
|
24
|
+
interactionId?: string;
|
|
21
25
|
};
|
|
@@ -2,6 +2,8 @@ export type CreateMutationObserverProps = {
|
|
|
2
2
|
onAttributeMutation: (props: {
|
|
3
3
|
target: HTMLElement;
|
|
4
4
|
attributeName: string;
|
|
5
|
+
oldValue?: string | undefined | null;
|
|
6
|
+
newValue?: string | undefined | null;
|
|
5
7
|
}) => void;
|
|
6
8
|
onMutationFinished?: (props: {
|
|
7
9
|
targets: Array<HTMLElement>;
|
|
@@ -3,6 +3,8 @@ export type MutationRecordWithTimestamp = MutationRecord & {
|
|
|
3
3
|
};
|
|
4
4
|
export type AttributeMutationData = {
|
|
5
5
|
attributeName: string;
|
|
6
|
+
oldValue?: string | undefined | null;
|
|
7
|
+
newValue?: string | undefined | null;
|
|
6
8
|
};
|
|
7
9
|
/**
|
|
8
10
|
* Add here when there are more type of mutation data
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/react-ufo",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "Parts of React UFO that are publicly available",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -162,6 +162,9 @@
|
|
|
162
162
|
},
|
|
163
163
|
"platform_ufo_post_interaction_use_vc_rev": {
|
|
164
164
|
"type": "boolean"
|
|
165
|
+
},
|
|
166
|
+
"platform_ufo_ttvc_v3_devtool": {
|
|
167
|
+
"type": "boolean"
|
|
165
168
|
}
|
|
166
169
|
}
|
|
167
170
|
}
|