@atlaskit/react-ufo 4.1.13 → 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.
- package/CHANGELOG.md +8 -0
- package/dist/cjs/interaction-metrics/index.js +1 -2
- package/dist/cjs/interaction-metrics-init/index.js +1 -2
- package/dist/cjs/vc/index.js +4 -12
- package/dist/cjs/vc/vc-observer/index.js +1 -3
- package/dist/cjs/vc/vc-observer/observers/index.js +2 -3
- package/dist/cjs/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
- package/dist/cjs/vc/vc-observer-new/index.js +2 -6
- package/dist/cjs/vc/vc-observer-new/viewport-observer/index.js +8 -14
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +25 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +63 -0
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +28 -0
- package/dist/es2019/interaction-metrics/index.js +1 -2
- package/dist/es2019/interaction-metrics-init/index.js +1 -2
- package/dist/es2019/vc/index.js +4 -12
- package/dist/es2019/vc/vc-observer/index.js +1 -3
- package/dist/es2019/vc/vc-observer/observers/index.js +2 -3
- package/dist/es2019/vc/vc-observer/observers/ssr-placeholders/index.js +3 -12
- package/dist/es2019/vc/vc-observer-new/index.js +2 -6
- package/dist/es2019/vc/vc-observer-new/viewport-observer/index.js +6 -15
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
- package/dist/esm/interaction-metrics/index.js +1 -2
- package/dist/esm/interaction-metrics-init/index.js +1 -2
- package/dist/esm/vc/index.js +4 -12
- package/dist/esm/vc/vc-observer/index.js +1 -3
- package/dist/esm/vc/vc-observer/observers/index.js +2 -3
- package/dist/esm/vc/vc-observer/observers/ssr-placeholders/index.js +3 -13
- package/dist/esm/vc/vc-observer-new/index.js +2 -6
- package/dist/esm/vc/vc-observer-new/viewport-observer/index.js +6 -14
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.js +19 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component.js +55 -0
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.js +21 -0
- package/dist/types/config/index.d.ts +0 -4
- package/dist/types/vc/types.d.ts +0 -4
- package/dist/types/vc/vc-observer/observers/index.d.ts +0 -4
- package/dist/types/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
- package/dist/types/vc/vc-observer-new/index.d.ts +0 -4
- package/dist/types/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
- package/dist/types-ts4.5/config/index.d.ts +0 -4
- package/dist/types-ts4.5/vc/types.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/index.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer/observers/ssr-placeholders/index.d.ts +1 -7
- package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +0 -4
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/index.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-fiber-within-component.d.ts +1 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component.d.ts +4 -0
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/find-fiber-with-cache.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -69
- package/dist/es2019/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -60
- package/dist/esm/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.js +0 -62
- package/dist/types/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
- package/dist/types-ts4.5/vc/vc-observer-new/viewport-observer/utils/check-within-component-and-extract-child-props.d.ts +0 -8
|
@@ -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
|
-
};
|