@atlaskit/react-ufo 4.1.12 → 4.2.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-payload/index.js +22 -4
  3. package/dist/cjs/create-payload/utils/add-performance-measures.js +62 -0
  4. package/dist/cjs/interaction-metrics/index.js +26 -2
  5. package/dist/cjs/interaction-metrics-init/index.js +1 -2
  6. package/dist/cjs/vc/index.js +7 -59
  7. package/dist/cjs/vc/vc-observer/index.js +1 -3
  8. package/dist/cjs/vc/vc-observer/observers/index.js +2 -3
  9. package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
  10. package/dist/cjs/vc/vc-observer-new/index.js +2 -6
  11. package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +8 -14
  12. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +25 -0
  13. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +63 -0
  14. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +28 -0
  15. package/dist/es2019/create-payload/index.js +21 -3
  16. package/dist/es2019/create-payload/utils/add-performance-measures.js +54 -0
  17. package/dist/es2019/interaction-metrics/index.js +26 -2
  18. package/dist/es2019/interaction-metrics-init/index.js +1 -2
  19. package/dist/es2019/vc/index.js +4 -54
  20. package/dist/es2019/vc/vc-observer/index.js +1 -3
  21. package/dist/es2019/vc/vc-observer/observers/index.js +2 -3
  22. package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +3 -12
  23. package/dist/es2019/vc/vc-observer-new/index.js +2 -6
  24. package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +6 -15
  25. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
  26. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
  27. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
  28. package/dist/esm/create-payload/index.js +22 -4
  29. package/dist/esm/create-payload/utils/add-performance-measures.js +56 -0
  30. package/dist/esm/interaction-metrics/index.js +26 -2
  31. package/dist/esm/interaction-metrics-init/index.js +1 -2
  32. package/dist/esm/vc/index.js +7 -59
  33. package/dist/esm/vc/vc-observer/index.js +1 -3
  34. package/dist/esm/vc/vc-observer/observers/index.js +2 -3
  35. package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
  36. package/dist/esm/vc/vc-observer-new/index.js +2 -6
  37. package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +6 -14
  38. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
  39. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
  40. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
  41. package/dist/types/config/index.d.ts +0 -4
  42. package/dist/types/create-payload/utils/add-performance-measures.d.ts +2 -0
  43. package/dist/types/ssr/index.d.ts +7 -1
  44. package/dist/types/vc/index.d.ts +0 -1
  45. package/dist/types/vc/types.d.ts +0 -4
  46. package/dist/types/vc/vc-observer/observers/index.d.ts +0 -4
  47. package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
  48. package/dist/types/vc/vc-observer-new/index.d.ts +0 -4
  49. package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
  50. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
  51. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
  52. package/dist/types/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
  53. package/dist/types-ts4.5/config/index.d.ts +0 -4
  54. package/dist/types-ts4.5/create-payload/utils/add-performance-measures.d.ts +2 -0
  55. package/dist/types-ts4.5/ssr/index.d.ts +7 -1
  56. package/dist/types-ts4.5/vc/index.d.ts +0 -1
  57. package/dist/types-ts4.5/vc/types.d.ts +0 -4
  58. package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -4
  59. package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
  60. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +0 -4
  61. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
  62. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
  63. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
  64. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
  65. package/package.json +1 -1
  66. package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -69
  67. package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -60
  68. package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -62
  69. package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
  70. package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
@@ -4,13 +4,8 @@ type Rect = {
4
4
  width: number;
5
5
  height: number;
6
6
  };
7
- type DisableSizeAndPositionCheckType = {
8
- v: boolean;
9
- h: boolean;
10
- };
11
7
  type SSRPlaceholderHandlersConfig = {
12
8
  enablePageLayoutPlaceholder?: boolean;
13
- disableSizeAndPositionCheck?: DisableSizeAndPositionCheckType;
14
9
  };
15
10
  export declare class SSRPlaceholderHandlers {
16
11
  private staticPlaceholders;
@@ -20,8 +15,7 @@ export declare class SSRPlaceholderHandlers {
20
15
  private intersectionObserver;
21
16
  private EQUALITY_THRESHOLD;
22
17
  private enablePageLayoutPlaceholder;
23
- private disableSizeAndPositionCheck;
24
- constructor({ enablePageLayoutPlaceholder, disableSizeAndPositionCheck, }: SSRPlaceholderHandlersConfig);
18
+ constructor({ enablePageLayoutPlaceholder, }: SSRPlaceholderHandlersConfig);
25
19
  private getPlaceholderId;
26
20
  private getPlaceholderReplacementId;
27
21
  clear(): void;
@@ -7,10 +7,6 @@ export type VCObserverNewConfig = {
7
7
  isPostInteraction?: boolean;
8
8
  SSRConfig?: {
9
9
  enablePageLayoutPlaceholder?: boolean;
10
- disableSizeAndPositionCheck?: {
11
- v: boolean;
12
- h: boolean;
13
- };
14
10
  };
15
11
  ssrPlaceholderHandler?: SSRPlaceholderHandlers | null;
16
12
  };
@@ -18,6 +18,7 @@ export default class ViewportObserver {
18
18
  private mutationObserver;
19
19
  private performanceObserver;
20
20
  private mapVisibleNodeRects;
21
+ private mapIs3pResult;
21
22
  private onChange;
22
23
  private isStarted;
23
24
  private getSSRState?;
@@ -0,0 +1 @@
1
+ export default function checkFiberWithinComponent(fiber: any, targetComponentName: string, maxLevel: number): boolean;
@@ -0,0 +1,4 @@
1
+ export declare function cleanupCaches(resultCache: WeakMap<HTMLElement, boolean>): void;
2
+ export default function checkWithinComponent(node: HTMLElement, targetComponentName: string, resultCache: WeakMap<HTMLElement, boolean>): {
3
+ isWithin: boolean;
4
+ };
@@ -0,0 +1 @@
1
+ export default function findFiberWithCache(element: HTMLElement, maxLevel: number, checkedNodes: HTMLElement[]): any | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "4.1.12",
3
+ "version": "4.2.0",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = checkWithinComponentAndExtractChildProps;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
- var _findReactFiber = _interopRequireDefault(require("./find-react-fiber"));
11
- var _getComponentName = _interopRequireDefault(require("./get-component-name"));
12
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
- var DEFAULT_MAX_LEVEL = 20;
15
- // Using the React Fiber tree to traverse up the DOM and check if a node is within a specific component
16
- // and extract child component props if needed.
17
- function checkWithinComponentAndExtractChildProps(node, targetComponentName, childComponentConfig) {
18
- var fiber = null;
19
- if ((0, _platformFeatureFlags.fg)('platform_ufo_handle_non_react_element_for_3p')) {
20
- // Walk up the DOM tree to find React fiber (handles non-React-rendered elements)
21
- var currentElement = node;
22
- var levelsTraversed = 0;
23
- while (currentElement && !fiber && levelsTraversed < DEFAULT_MAX_LEVEL) {
24
- fiber = (0, _findReactFiber.default)(currentElement);
25
- if (!fiber) {
26
- currentElement = currentElement.parentElement;
27
- }
28
- levelsTraversed++;
29
- }
30
- } else {
31
- fiber = (0, _findReactFiber.default)(node);
32
- }
33
-
34
- // If no React fiber found, return false
35
- if (!fiber) {
36
- return {
37
- isWithin: false
38
- };
39
- }
40
-
41
- // Traverse up the fiber tree
42
- var currentFiber = fiber;
43
- var childProp;
44
- while (currentFiber) {
45
- var componentName = (0, _getComponentName.default)(currentFiber);
46
-
47
- // Check if this is a child component we're looking for
48
- if (childComponentConfig && componentName === childComponentConfig.componentName) {
49
- var props = currentFiber.memoizedProps || currentFiber.pendingProps;
50
- if (props && props[childComponentConfig.propName] !== undefined) {
51
- // Overwrite with the nearest child prop (closest to the target component)
52
- childProp = childComponentConfig.extractValue ? childComponentConfig.extractValue(props) : props[childComponentConfig.propName];
53
- }
54
- }
55
-
56
- // Check if we found the target component
57
- if (componentName === targetComponentName) {
58
- return _objectSpread({
59
- isWithin: true
60
- }, childComponentConfig && {
61
- childProp: childProp
62
- });
63
- }
64
- currentFiber = currentFiber.return;
65
- }
66
- return {
67
- isWithin: false
68
- };
69
- }
@@ -1,60 +0,0 @@
1
- import { fg } from '@atlaskit/platform-feature-flags';
2
- import findReactFiber from './find-react-fiber';
3
- import getComponentName from './get-component-name';
4
- const DEFAULT_MAX_LEVEL = 20;
5
- // Using the React Fiber tree to traverse up the DOM and check if a node is within a specific component
6
- // and extract child component props if needed.
7
- export default function checkWithinComponentAndExtractChildProps(node, targetComponentName, childComponentConfig) {
8
- let fiber = null;
9
- if (fg('platform_ufo_handle_non_react_element_for_3p')) {
10
- // Walk up the DOM tree to find React fiber (handles non-React-rendered elements)
11
- let currentElement = node;
12
- let levelsTraversed = 0;
13
- while (currentElement && !fiber && levelsTraversed < DEFAULT_MAX_LEVEL) {
14
- fiber = findReactFiber(currentElement);
15
- if (!fiber) {
16
- currentElement = currentElement.parentElement;
17
- }
18
- levelsTraversed++;
19
- }
20
- } else {
21
- fiber = findReactFiber(node);
22
- }
23
-
24
- // If no React fiber found, return false
25
- if (!fiber) {
26
- return {
27
- isWithin: false
28
- };
29
- }
30
-
31
- // Traverse up the fiber tree
32
- let currentFiber = fiber;
33
- let childProp;
34
- while (currentFiber) {
35
- const componentName = getComponentName(currentFiber);
36
-
37
- // Check if this is a child component we're looking for
38
- if (childComponentConfig && componentName === childComponentConfig.componentName) {
39
- const props = currentFiber.memoizedProps || currentFiber.pendingProps;
40
- if (props && props[childComponentConfig.propName] !== undefined) {
41
- // Overwrite with the nearest child prop (closest to the target component)
42
- childProp = childComponentConfig.extractValue ? childComponentConfig.extractValue(props) : props[childComponentConfig.propName];
43
- }
44
- }
45
-
46
- // Check if we found the target component
47
- if (componentName === targetComponentName) {
48
- return {
49
- isWithin: true,
50
- ...(childComponentConfig && {
51
- childProp: childProp
52
- })
53
- };
54
- }
55
- currentFiber = currentFiber.return;
56
- }
57
- return {
58
- isWithin: false
59
- };
60
- }
@@ -1,62 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { fg } from '@atlaskit/platform-feature-flags';
5
- import findReactFiber from './find-react-fiber';
6
- import getComponentName from './get-component-name';
7
- var DEFAULT_MAX_LEVEL = 20;
8
- // Using the React Fiber tree to traverse up the DOM and check if a node is within a specific component
9
- // and extract child component props if needed.
10
- export default function checkWithinComponentAndExtractChildProps(node, targetComponentName, childComponentConfig) {
11
- var fiber = null;
12
- if (fg('platform_ufo_handle_non_react_element_for_3p')) {
13
- // Walk up the DOM tree to find React fiber (handles non-React-rendered elements)
14
- var currentElement = node;
15
- var levelsTraversed = 0;
16
- while (currentElement && !fiber && levelsTraversed < DEFAULT_MAX_LEVEL) {
17
- fiber = findReactFiber(currentElement);
18
- if (!fiber) {
19
- currentElement = currentElement.parentElement;
20
- }
21
- levelsTraversed++;
22
- }
23
- } else {
24
- fiber = findReactFiber(node);
25
- }
26
-
27
- // If no React fiber found, return false
28
- if (!fiber) {
29
- return {
30
- isWithin: false
31
- };
32
- }
33
-
34
- // Traverse up the fiber tree
35
- var currentFiber = fiber;
36
- var childProp;
37
- while (currentFiber) {
38
- var componentName = getComponentName(currentFiber);
39
-
40
- // Check if this is a child component we're looking for
41
- if (childComponentConfig && componentName === childComponentConfig.componentName) {
42
- var props = currentFiber.memoizedProps || currentFiber.pendingProps;
43
- if (props && props[childComponentConfig.propName] !== undefined) {
44
- // Overwrite with the nearest child prop (closest to the target component)
45
- childProp = childComponentConfig.extractValue ? childComponentConfig.extractValue(props) : props[childComponentConfig.propName];
46
- }
47
- }
48
-
49
- // Check if we found the target component
50
- if (componentName === targetComponentName) {
51
- return _objectSpread({
52
- isWithin: true
53
- }, childComponentConfig && {
54
- childProp: childProp
55
- });
56
- }
57
- currentFiber = currentFiber.return;
58
- }
59
- return {
60
- isWithin: false
61
- };
62
- }
@@ -1,8 +0,0 @@
1
- export default function checkWithinComponentAndExtractChildProps<T = string>(node: HTMLElement, targetComponentName: string, childComponentConfig?: {
2
- componentName: string;
3
- propName: string;
4
- extractValue?: (props: any) => T;
5
- }): {
6
- isWithin: boolean;
7
- childProp?: T;
8
- };
@@ -1,8 +0,0 @@
1
- export default function checkWithinComponentAndExtractChildProps<T = string>(node: HTMLElement, targetComponentName: string, childComponentConfig?: {
2
- componentName: string;
3
- propName: string;
4
- extractValue?: (props: any) => T;
5
- }): {
6
- isWithin: boolean;
7
- childProp?: T;
8
- };