@atlaskit/react-ufo 3.3.2 → 3.3.3

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.
Files changed (53) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/create-payload/index.js +43 -15
  3. package/dist/cjs/interaction-metrics-init/index.js +11 -9
  4. package/dist/cjs/vc/index.js +6 -2
  5. package/dist/cjs/vc/vc-observer-new/get-element-name.js +19 -6
  6. package/dist/cjs/vc/vc-observer-new/index.js +6 -3
  7. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
  8. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
  9. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
  10. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
  11. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
  12. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +5 -1
  13. package/dist/es2019/create-payload/index.js +3 -2
  14. package/dist/es2019/interaction-metrics-init/index.js +11 -9
  15. package/dist/es2019/vc/index.js +6 -2
  16. package/dist/es2019/vc/vc-observer-new/get-element-name.js +19 -6
  17. package/dist/es2019/vc/vc-observer-new/index.js +7 -3
  18. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -0
  19. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +1 -2
  20. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +15 -12
  21. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +5 -4
  22. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -2
  23. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +5 -1
  24. package/dist/esm/create-payload/index.js +43 -15
  25. package/dist/esm/interaction-metrics-init/index.js +11 -9
  26. package/dist/esm/vc/index.js +6 -2
  27. package/dist/esm/vc/vc-observer-new/get-element-name.js +19 -6
  28. package/dist/esm/vc/vc-observer-new/index.js +6 -3
  29. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
  30. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
  31. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
  32. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
  33. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
  34. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +5 -1
  35. package/dist/types/config/index.d.ts +1 -0
  36. package/dist/types/create-payload/index.d.ts +1 -1
  37. package/dist/types/vc/vc-observer-new/index.d.ts +3 -2
  38. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
  39. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  40. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -1
  41. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
  42. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
  43. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  44. package/dist/types-ts4.5/config/index.d.ts +1 -0
  45. package/dist/types-ts4.5/create-payload/index.d.ts +1 -1
  46. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +3 -2
  47. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
  48. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  49. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -1
  50. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
  51. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
  52. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  53. package/package.json +2 -2
@@ -9,11 +9,11 @@ export default function calculateTTVCPercentiles(_x) {
9
9
  }
10
10
  function _calculateTTVCPercentiles() {
11
11
  _calculateTTVCPercentiles = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
12
- var orderedEntries, viewport, percentiles, sortedPercentiles, viewportArea, checkpoints, activeRects, removeActiveRect, domElementsBuffer, i, iEntry, iEntryData, rect, elementName, exclusionArea, currentArea, currVCPercent, matchesAnyCheckpoints, _checkpoint, domElements;
12
+ var orderedEntries, viewport, percentiles, startTime, sortedPercentiles, viewportArea, checkpoints, activeRects, removeActiveRect, domElementsBuffer, i, iEntry, iEntryData, rect, elementName, exclusionArea, currentArea, currVCPercent, matchesAnyCheckpoints, _checkpoint, domElements;
13
13
  return _regeneratorRuntime.wrap(function _callee$(_context) {
14
14
  while (1) switch (_context.prev = _context.next) {
15
15
  case 0:
16
- orderedEntries = _ref.orderedEntries, viewport = _ref.viewport, percentiles = _ref.percentiles;
16
+ orderedEntries = _ref.orderedEntries, viewport = _ref.viewport, percentiles = _ref.percentiles, startTime = _ref.startTime;
17
17
  sortedPercentiles = _toConsumableArray(percentiles).sort(function (a, b) {
18
18
  return a - b;
19
19
  });
@@ -69,7 +69,7 @@ function _calculateTTVCPercentiles() {
69
69
  case 25:
70
70
  matchesAnyCheckpoints = true;
71
71
  checkpoints[_checkpoint.toString()] = {
72
- t: iEntry.time,
72
+ t: Math.round(iEntry.time - startTime),
73
73
  e: domElements
74
74
  };
75
75
  _context.next = 20;
@@ -15,6 +15,9 @@ var WindowEventObserver = /*#__PURE__*/function () {
15
15
  var unbindCallback = bind(window, {
16
16
  type: type,
17
17
  listener: function listener(event) {
18
+ if (!event.isTrusted) {
19
+ return;
20
+ }
18
21
  _this.onEvent({
19
22
  time: event.timeStamp,
20
23
  type: type,
@@ -22,7 +25,8 @@ var WindowEventObserver = /*#__PURE__*/function () {
22
25
  });
23
26
  },
24
27
  options: {
25
- passive: true
28
+ passive: true,
29
+ once: true
26
30
  }
27
31
  });
28
32
  this.unbindFns.push(unbindCallback);
@@ -68,6 +68,7 @@ export type Config = {
68
68
  readonly ssr?: boolean;
69
69
  readonly ssrWhitelist?: string[];
70
70
  readonly stopVCAtInteractionFinish?: boolean;
71
+ readonly enableVCObserverNew?: boolean;
71
72
  };
72
73
  readonly postInteractionLog?: {
73
74
  readonly enabled?: boolean;
@@ -23188,4 +23188,4 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
23188
23188
  'experience:name': string;
23189
23189
  };
23190
23190
  };
23191
- }> | null;
23191
+ } | null>;
@@ -5,13 +5,14 @@ export type VCObserverNewConfig = {
5
5
  selectorConfig?: SelectorConfig;
6
6
  };
7
7
  export default class VCObserverNew {
8
- startTime: number;
9
8
  private selectorConfig;
10
9
  private viewportObserver;
11
10
  private windowEventObserver;
12
11
  private entriesTimeline;
13
12
  constructor(config: VCObserverNewConfig);
14
- start(): void;
13
+ start({ startTime }: {
14
+ startTime: DOMHighResTimeStamp;
15
+ }): void;
15
16
  stop(): void;
16
17
  getVCResult(param: VCObserverGetVCResultParam): Promise<RevisionPayloadEntry[]>;
17
18
  private getElementName;
@@ -5,5 +5,5 @@ export default abstract class AbstractVCCalculatorBase implements VCCalculator {
5
5
  constructor(revisionNo: string);
6
6
  protected abstract isEntryIncluded(entry: VCObserverEntry): boolean;
7
7
  protected abstract isVCClean(filteredEntries: ReadonlyArray<VCObserverEntry>): boolean;
8
- calculate({ orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
8
+ calculate({ startTime, stopTime, orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
9
9
  }
@@ -1,4 +1,4 @@
1
1
  import type { RevisionPayloadVCDetails } from '../../types';
2
2
  import type { CalcTTVCPercentilesArg } from '../types';
3
- export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
- export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number): RevisionPayloadVCDetails;
3
+ export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, startTime, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
+ export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number, startTime: DOMHighResTimeStamp): RevisionPayloadVCDetails;
@@ -1,8 +1,9 @@
1
1
  import type { VCObserverEntry } from '../../../types';
2
2
  import type { RevisionPayloadVCDetails } from '../../types';
3
3
  import type { Viewport } from './types';
4
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
4
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
5
5
  orderedEntries: ReadonlyArray<VCObserverEntry>;
6
6
  viewport: Viewport;
7
7
  percentiles: number[];
8
+ startTime: DOMHighResTimeStamp;
8
9
  }): Promise<RevisionPayloadVCDetails>;
@@ -16,8 +16,9 @@ export type CheckpointMetrics = {
16
16
  e: DOMSelector[];
17
17
  };
18
18
  };
19
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
19
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
20
20
  orderedEntries: ReadonlyArray<VCObserverEntry>;
21
21
  viewport: Viewport;
22
22
  percentiles: number[];
23
+ startTime: DOMHighResTimeStamp;
23
24
  }): Promise<CheckpointMetrics>;
@@ -4,6 +4,8 @@ export type CalcTTVCPercentilesArg = {
4
4
  width: number;
5
5
  height: number;
6
6
  };
7
+ startTime: DOMHighResTimeStamp;
8
+ stopTime: DOMHighResTimeStamp;
7
9
  orderedEntries: ReadonlyArray<VCObserverEntry>;
8
10
  percentiles: number[];
9
11
  };
@@ -13,6 +13,8 @@ export type RevisionPayloadEntry = {
13
13
  };
14
14
  export type RevisionPayload = RevisionPayloadEntry[];
15
15
  export type VCCalculatorParam = {
16
+ startTime: DOMHighResTimeStamp;
17
+ stopTime: DOMHighResTimeStamp;
16
18
  orderedEntries: ReadonlyArray<VCObserverEntry>;
17
19
  };
18
20
  export interface VCCalculator {
@@ -68,6 +68,7 @@ export type Config = {
68
68
  readonly ssr?: boolean;
69
69
  readonly ssrWhitelist?: string[];
70
70
  readonly stopVCAtInteractionFinish?: boolean;
71
+ readonly enableVCObserverNew?: boolean;
71
72
  };
72
73
  readonly postInteractionLog?: {
73
74
  readonly enabled?: boolean;
@@ -23188,4 +23188,4 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
23188
23188
  'experience:name': string;
23189
23189
  };
23190
23190
  };
23191
- }> | null;
23191
+ } | null>;
@@ -5,13 +5,14 @@ export type VCObserverNewConfig = {
5
5
  selectorConfig?: SelectorConfig;
6
6
  };
7
7
  export default class VCObserverNew {
8
- startTime: number;
9
8
  private selectorConfig;
10
9
  private viewportObserver;
11
10
  private windowEventObserver;
12
11
  private entriesTimeline;
13
12
  constructor(config: VCObserverNewConfig);
14
- start(): void;
13
+ start({ startTime }: {
14
+ startTime: DOMHighResTimeStamp;
15
+ }): void;
15
16
  stop(): void;
16
17
  getVCResult(param: VCObserverGetVCResultParam): Promise<RevisionPayloadEntry[]>;
17
18
  private getElementName;
@@ -5,5 +5,5 @@ export default abstract class AbstractVCCalculatorBase implements VCCalculator {
5
5
  constructor(revisionNo: string);
6
6
  protected abstract isEntryIncluded(entry: VCObserverEntry): boolean;
7
7
  protected abstract isVCClean(filteredEntries: ReadonlyArray<VCObserverEntry>): boolean;
8
- calculate({ orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
8
+ calculate({ startTime, stopTime, orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
9
9
  }
@@ -1,4 +1,4 @@
1
1
  import type { RevisionPayloadVCDetails } from '../../types';
2
2
  import type { CalcTTVCPercentilesArg } from '../types';
3
- export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
- export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number): RevisionPayloadVCDetails;
3
+ export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, startTime, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
+ export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number, startTime: DOMHighResTimeStamp): RevisionPayloadVCDetails;
@@ -1,8 +1,9 @@
1
1
  import type { VCObserverEntry } from '../../../types';
2
2
  import type { RevisionPayloadVCDetails } from '../../types';
3
3
  import type { Viewport } from './types';
4
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
4
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
5
5
  orderedEntries: ReadonlyArray<VCObserverEntry>;
6
6
  viewport: Viewport;
7
7
  percentiles: number[];
8
+ startTime: DOMHighResTimeStamp;
8
9
  }): Promise<RevisionPayloadVCDetails>;
@@ -16,8 +16,9 @@ export type CheckpointMetrics = {
16
16
  e: DOMSelector[];
17
17
  };
18
18
  };
19
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
19
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
20
20
  orderedEntries: ReadonlyArray<VCObserverEntry>;
21
21
  viewport: Viewport;
22
22
  percentiles: number[];
23
+ startTime: DOMHighResTimeStamp;
23
24
  }): Promise<CheckpointMetrics>;
@@ -4,6 +4,8 @@ export type CalcTTVCPercentilesArg = {
4
4
  width: number;
5
5
  height: number;
6
6
  };
7
+ startTime: DOMHighResTimeStamp;
8
+ stopTime: DOMHighResTimeStamp;
7
9
  orderedEntries: ReadonlyArray<VCObserverEntry>;
8
10
  percentiles: number[];
9
11
  };
@@ -13,6 +13,8 @@ export type RevisionPayloadEntry = {
13
13
  };
14
14
  export type RevisionPayload = RevisionPayloadEntry[];
15
15
  export type VCCalculatorParam = {
16
+ startTime: DOMHighResTimeStamp;
17
+ stopTime: DOMHighResTimeStamp;
16
18
  orderedEntries: ReadonlyArray<VCObserverEntry>;
17
19
  };
18
20
  export interface VCCalculator {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -86,7 +86,7 @@
86
86
  "react": "^18.2.0"
87
87
  },
88
88
  "devDependencies": {
89
- "@af/integration-testing": "*",
89
+ "@af/integration-testing": "^0.5.0",
90
90
  "@testing-library/react": "^13.4.0",
91
91
  "@types/is-ci": "^3.0.0",
92
92
  "is-ci": "^3.0.1"