@atlaskit/react-ufo 3.12.3 → 3.12.5
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/create-post-interaction-log-payload/index.js +6 -7
- package/dist/cjs/interaction-metrics/post-interaction-log.js +3 -11
- 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 +59 -33
- 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/create-post-interaction-log-payload/index.js +6 -7
- package/dist/es2019/interaction-metrics/post-interaction-log.js +4 -13
- 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 +30 -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/create-post-interaction-log-payload/index.js +6 -7
- package/dist/esm/interaction-metrics/post-interaction-log.js +3 -11
- 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 +59 -33
- 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/vc/types.d.ts +1 -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-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/vc/types.d.ts +1 -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-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 -4
- 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
package/dist/types/vc/types.d.ts
CHANGED
|
@@ -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;
|
|
@@ -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
|
|
@@ -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;
|
|
@@ -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.12.
|
|
3
|
+
"version": "3.12.5",
|
|
4
4
|
"description": "Parts of React UFO that are publicly available",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -130,9 +130,6 @@
|
|
|
130
130
|
"platform_ufo_use_offscreen_canvas": {
|
|
131
131
|
"type": "boolean"
|
|
132
132
|
},
|
|
133
|
-
"platform_ufo_vc_align_revisions_on_watchdog_event": {
|
|
134
|
-
"type": "boolean"
|
|
135
|
-
},
|
|
136
133
|
"platform_ufo_canvas_heatmap_full_precision": {
|
|
137
134
|
"type": "boolean"
|
|
138
135
|
},
|
|
@@ -165,6 +162,9 @@
|
|
|
165
162
|
},
|
|
166
163
|
"platform_ufo_post_interaction_use_vc_rev": {
|
|
167
164
|
"type": "boolean"
|
|
165
|
+
},
|
|
166
|
+
"platform_ufo_ttvc_v3_devtool": {
|
|
167
|
+
"type": "boolean"
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
}
|