@atlaskit/react-ufo 4.15.0 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/create-payload/index.js +18 -791
  3. package/dist/cjs/create-payload/utils/get-visibility-state-from-performance.js +1 -0
  4. package/dist/cjs/interaction-id-context/index.js +2 -1
  5. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +4 -0
  6. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
  7. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +7 -0
  8. package/dist/es2019/create-payload/index.js +20 -712
  9. package/dist/es2019/create-payload/utils/get-visibility-state-from-performance.js +1 -0
  10. package/dist/es2019/interaction-id-context/index.js +2 -1
  11. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +4 -0
  12. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
  13. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +7 -0
  14. package/dist/esm/create-payload/index.js +18 -783
  15. package/dist/esm/create-payload/utils/get-visibility-state-from-performance.js +1 -0
  16. package/dist/esm/interaction-id-context/index.js +2 -1
  17. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +4 -0
  18. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +1 -1
  19. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/get-mutated-elements.js +7 -0
  20. package/dist/types/assets/utils.d.ts +1 -1
  21. package/dist/types/create-experimental-interaction-metrics-payload/index.d.ts +2 -1
  22. package/dist/types/create-interaction-extra-metrics-payload/index.d.ts +17 -14
  23. package/dist/types/create-payload/index.d.ts +8598 -8594
  24. package/dist/types/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.d.ts +2 -1
  25. package/dist/types/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  26. package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
  27. package/dist/types/create-payload/utils/optimize-apdex.d.ts +2 -1
  28. package/dist/types/create-payload/utils/optimize-marks.d.ts +4 -3
  29. package/dist/types/create-post-interaction-log-payload/index.d.ts +5 -4
  30. package/dist/types/experience-trace-id-context/index.d.ts +2 -1
  31. package/dist/types/ignore-holds/index.d.ts +1 -1
  32. package/dist/types/interaction-id-context/index.d.ts +3 -2
  33. package/dist/types/label/UFOLabel.d.ts +1 -1
  34. package/dist/types/load-hold/UFOLoadHold.d.ts +1 -1
  35. package/dist/types/placeholder/loosely-lazy/wait-context.d.ts +2 -1
  36. package/dist/types/report-error/index.d.ts +1 -1
  37. package/dist/types/trace-interaction/internal/map-to-interaction-type.d.ts +1 -1
  38. package/dist/types/typing-performance-tracing/index.d.ts +2 -1
  39. package/dist/types/vc/vc-observer/media-wrapper/MediaWrapper.d.ts +1 -1
  40. package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +3 -3
  41. package/dist/types/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +1 -1
  42. package/dist/types-ts4.5/assets/utils.d.ts +1 -1
  43. package/dist/types-ts4.5/create-experimental-interaction-metrics-payload/index.d.ts +2 -1
  44. package/dist/types-ts4.5/create-interaction-extra-metrics-payload/index.d.ts +17 -14
  45. package/dist/types-ts4.5/create-payload/index.d.ts +8598 -8594
  46. package/dist/types-ts4.5/create-payload/utils/get-more-accurate-page-visibility-up-to-ttai.d.ts +2 -1
  47. package/dist/types-ts4.5/create-payload/utils/get-page-visibility-up-to-ttai.d.ts +2 -1
  48. package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +1 -1
  49. package/dist/types-ts4.5/create-payload/utils/optimize-apdex.d.ts +2 -1
  50. package/dist/types-ts4.5/create-payload/utils/optimize-marks.d.ts +4 -3
  51. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +5 -4
  52. package/dist/types-ts4.5/experience-trace-id-context/index.d.ts +2 -1
  53. package/dist/types-ts4.5/ignore-holds/index.d.ts +1 -1
  54. package/dist/types-ts4.5/interaction-id-context/index.d.ts +3 -2
  55. package/dist/types-ts4.5/label/UFOLabel.d.ts +1 -1
  56. package/dist/types-ts4.5/load-hold/UFOLoadHold.d.ts +1 -1
  57. package/dist/types-ts4.5/placeholder/loosely-lazy/wait-context.d.ts +2 -1
  58. package/dist/types-ts4.5/report-error/index.d.ts +1 -1
  59. package/dist/types-ts4.5/trace-interaction/internal/map-to-interaction-type.d.ts +1 -1
  60. package/dist/types-ts4.5/typing-performance-tracing/index.d.ts +2 -1
  61. package/dist/types-ts4.5/vc/vc-observer/media-wrapper/MediaWrapper.d.ts +1 -1
  62. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +3 -3
  63. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/performance-observer/index.d.ts +1 -1
  64. package/package.json +4 -1
@@ -4,6 +4,7 @@ export function getVisibilityStateFromPerformance(stop) {
4
4
  if (!results || results.length === 0) {
5
5
  return null;
6
6
  }
7
+ // @ts-ignore
7
8
  return results.reduce(function () {
8
9
  var acc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
9
10
  var _ref = arguments.length > 1 ? arguments[1] : undefined,
@@ -63,7 +63,8 @@ export var subscribeToInteractionIdChanges = function subscribeToInteractionIdCh
63
63
  };
64
64
 
65
65
  // We use a context to allow modals to have their own lifecycle
66
- export default /*#__PURE__*/createContext(DefaultInteractionID);
66
+ var _default_1 = /*#__PURE__*/createContext(DefaultInteractionID);
67
+ export default _default_1;
67
68
  export var getInteractionId = function getInteractionId() {
68
69
  return DefaultInteractionID;
69
70
  };
@@ -1,6 +1,7 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import { fg } from '@atlaskit/platform-feature-flags';
4
5
  var ANCESTOR_LOOKUP_LIMIT = 10;
5
6
  var PAGE_LAYOUT_ID = 'page-layout.root';
6
7
  export var SSRPlaceholderHandlers = /*#__PURE__*/function () {
@@ -283,6 +284,9 @@ export var SSRPlaceholderHandlers = /*#__PURE__*/function () {
283
284
  }, {
284
285
  key: "getEffectiveBoundingRect",
285
286
  value: function getEffectiveBoundingRect(el) {
287
+ if (fg('platform_ufo_disable_vcnext_observations')) {
288
+ return el.getBoundingClientRect();
289
+ }
286
290
  var computedStyle = window.getComputedStyle(el);
287
291
 
288
292
  // If element has display: contents, collect bounding rect from children
@@ -58,7 +58,7 @@ var VCCalculator_FY25_03 = /*#__PURE__*/function (_AbstractVCCalculator) {
58
58
  if (entry.data.type === 'mutation:media' && fg('media-perf-uplift-mutation-fix')) {
59
59
  var entryData = entry.data;
60
60
  var attributeName = entryData.attributeName;
61
- if (attributeName && (/data-(test|file|context|cursor)-\S+/g.test(attributeName) || attributeName === 'alt' || (attributeName === 'localid' || attributeName === 'contenteditable' || attributeName === 'anchor-name') && expVal('platform_editor_media_vc_fixes', 'isEnabled', false))) {
61
+ if (attributeName && (/data-(test|file|context)-\S+/g.test(attributeName) || attributeName === 'data-cursor' || attributeName === 'alt' || (attributeName === 'localid' || attributeName === 'contenteditable' || attributeName === 'anchor-name') && expVal('platform_editor_media_vc_fixes', 'isEnabled', false))) {
62
62
  return false;
63
63
  }
64
64
 
@@ -2,10 +2,17 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  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; } } }; }
3
3
  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; } }
4
4
  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; }
5
+ import { fg } from '@atlaskit/platform-feature-flags';
5
6
  var MAX_NESTED_LEVELS_OF_DISPLAY_CONTENT_ELEMENTS_HANDLED = 3;
6
7
  export function getMutatedElements(element) {
7
8
  var _window;
8
9
  var depthLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
10
+ if (fg('platform_ufo_disable_vcnext_observations')) {
11
+ return [{
12
+ element: element,
13
+ isDisplayContentsElementChildren: false
14
+ }];
15
+ }
9
16
  if (((_window = window) === null || _window === void 0 || (_window = _window.getComputedStyle(element)) === null || _window === void 0 ? void 0 : _window.display) === 'contents') {
10
17
  var mutatedElements = [];
11
18
  var nestedDisplayContentsElementChildren = [];
@@ -3,7 +3,7 @@ export declare const cacheableTypes: string[];
3
3
  export declare const MEMORY_KEY = "mem";
4
4
  export declare const DISK_KEY = "disk";
5
5
  export declare const NETWORK_KEY = "net";
6
- export declare function calculateTransferType(name: string, type: string, duration: number, size: number | undefined): "disk" | "mem" | "net" | null;
6
+ export declare function calculateTransferType(name: string, type: string, duration: number, size: number | undefined): 'mem' | 'disk' | 'net' | null;
7
7
  export declare function getTypeOfRequest({ name, initiatorType: type }: ResourceEntry): string;
8
8
  export declare function checkIfTimingsAvailable(entry: ResourceEntry): boolean;
9
9
  export declare function round(n: number): number;
@@ -1,4 +1,5 @@
1
1
  import type { InteractionMetrics } from '../common';
2
+ import type { VCResult } from '../common/vc/types';
2
3
  import type { VCObserverOptions } from '../vc/types';
3
4
  import { VCObserver } from '../vc/vc-observer';
4
5
  type InteractionMetricsHandler = (interactionId: string, interaction: InteractionMetrics) => void | Promise<void>;
@@ -13,5 +14,5 @@ export declare class ExperimentalVCMetrics {
13
14
  }): void;
14
15
  }
15
16
  export declare const experimentalVC: ExperimentalVCMetrics;
16
- export declare function getExperimentalVCMetrics(interaction: InteractionMetrics): Promise<import("../common/vc/types").VCResult | null>;
17
+ export declare function getExperimentalVCMetrics(interaction: InteractionMetrics): Promise<VCResult | null>;
17
18
  export {};
@@ -1,6 +1,9 @@
1
- import type { InteractionMetrics } from '../common';
1
+ import type { AbortReasonType, CustomData, HoldActive, InteractionMetrics, MarkType } from '../common';
2
+ import type { PageVisibility } from '../common/react-ufo-payload-schema';
2
3
  import type { VCResult } from '../common/vc/types';
4
+ import type { OptimizedLabelStack } from '../create-payload/common/types';
3
5
  import type { LabelStack } from '../interaction-context';
6
+ import type { UFOSegmentType } from '../segment/segment';
4
7
  declare function createInteractionExtraLogPayload(interactionId: string, interaction: InteractionMetrics, lastInteractionFinish: InteractionMetrics | null, lastInteractionFinishVCResult?: VCResult): Promise<{
5
8
  actionSubject: string;
6
9
  action: string;
@@ -23,7 +26,7 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
23
26
  interactionMetrics: {
24
27
  errors: {
25
28
  labelStack: string | {
26
- t?: import("../segment/segment").UFOSegmentType | undefined;
29
+ t?: UFOSegmentType | undefined;
27
30
  s?: string | undefined;
28
31
  n: string;
29
32
  }[] | null;
@@ -35,38 +38,38 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
35
38
  errorHash?: string;
36
39
  errorStatusCode?: number;
37
40
  }[];
38
- holdActive: import("../common").HoldActive[];
41
+ holdActive: HoldActive[];
39
42
  holdInfo: any[];
40
43
  spans: {
41
- labelStack: import("../create-payload/common/types").OptimizedLabelStack;
44
+ labelStack: OptimizedLabelStack;
42
45
  startTime: number;
43
46
  endTime: number;
44
47
  type: string;
45
48
  }[];
46
49
  requestInfo: {
47
- labelStack: import("../create-payload/common/types").OptimizedLabelStack;
50
+ labelStack: OptimizedLabelStack;
48
51
  startTime: number;
49
52
  endTime: number;
50
53
  }[];
51
54
  customTimings: {
52
- labelStack: import("../create-payload/common/types").OptimizedLabelStack;
55
+ labelStack: OptimizedLabelStack;
53
56
  startTime: number;
54
57
  endTime: number;
55
58
  }[];
56
59
  segments: {};
57
60
  marks: {
58
61
  labelStack: string | {
59
- t?: import("../segment/segment").UFOSegmentType | undefined;
62
+ t?: UFOSegmentType | undefined;
60
63
  s?: string | undefined;
61
64
  n: string;
62
65
  }[] | null;
63
66
  time: number;
64
- type: import("../common").MarkType;
67
+ type: MarkType;
65
68
  name: string;
66
69
  }[];
67
70
  apdex: {
68
71
  labelStack?: string | {
69
- t?: import("../segment/segment").UFOSegmentType | undefined;
72
+ t?: UFOSegmentType | undefined;
70
73
  s?: string | undefined;
71
74
  n: string;
72
75
  }[] | undefined;
@@ -77,18 +80,18 @@ declare function createInteractionExtraLogPayload(interactionId: string, interac
77
80
  reactProfilerTimings: any[];
78
81
  customData: {
79
82
  labelStack: LabelStack;
80
- data: import("../common").CustomData;
83
+ data: CustomData;
81
84
  }[];
82
85
  'metric:vc90'?: number | null;
83
86
  namePrefix: string;
84
87
  segmentPrefix: string;
85
88
  interactionId: string;
86
- pageVisibilityAtTTAI: import("../common/react-ufo-payload-schema").PageVisibility;
87
- experimental__pageVisibilityAtTTAI: import("../common/react-ufo-payload-schema").PageVisibility | null;
89
+ pageVisibilityAtTTAI: PageVisibility;
90
+ experimental__pageVisibilityAtTTAI: PageVisibility | null;
88
91
  rate: number;
89
92
  routeName: string | null;
90
- type: "page_load" | "transition";
91
- abortReason: import("../common").AbortReasonType | undefined;
93
+ type: 'page_load' | 'transition';
94
+ abortReason: AbortReasonType | undefined;
92
95
  previousInteractionName: string | undefined;
93
96
  isPreviousInteractionAborted: boolean;
94
97
  abortedByInteractionName: string | undefined;