@fluentui/react-portal 0.0.0-nightly8faa94d11420211118.1 → 0.0.0-nightly946f57cad420220203.1
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.json +93 -14
- package/CHANGELOG.md +24 -10
- package/dist/react-portal.d.ts +3 -3
- package/lib/components/Portal/Portal.js +5 -4
- package/lib/components/Portal/Portal.js.map +1 -1
- package/lib/components/Portal/renderPortal.d.ts +1 -1
- package/lib/components/Portal/renderPortal.js +6 -2
- package/lib/components/Portal/renderPortal.js.map +1 -1
- package/lib/components/Portal/usePortal.d.ts +2 -2
- package/lib/components/Portal/usePortal.js +23 -17
- package/lib/components/Portal/usePortal.js.map +1 -1
- package/lib/components/Portal/usePortalMountNode.js +27 -21
- package/lib/components/Portal/usePortalMountNode.js.map +1 -1
- package/lib/virtualParent/elementContains.js +18 -14
- package/lib/virtualParent/elementContains.js.map +1 -1
- package/lib/virtualParent/getParent.js +2 -1
- package/lib/virtualParent/getParent.js.map +1 -1
- package/lib/virtualParent/getVirtualParent.js +8 -5
- package/lib/virtualParent/getVirtualParent.js.map +1 -1
- package/lib/virtualParent/isVirtualElement.js +1 -1
- package/lib/virtualParent/isVirtualElement.js.map +1 -1
- package/lib/virtualParent/setVirtualParent.js +11 -8
- package/lib/virtualParent/setVirtualParent.js.map +1 -1
- package/lib-commonjs/Portal.js +7 -2
- package/lib-commonjs/Portal.js.map +1 -1
- package/lib-commonjs/components/Portal/Portal.js +13 -5
- package/lib-commonjs/components/Portal/Portal.js.map +1 -1
- package/lib-commonjs/components/Portal/Portal.types.js +4 -1
- package/lib-commonjs/components/Portal/Portal.types.js.map +1 -1
- package/lib-commonjs/components/Portal/index.js +10 -2
- package/lib-commonjs/components/Portal/index.js.map +1 -1
- package/lib-commonjs/components/Portal/renderPortal.d.ts +1 -1
- package/lib-commonjs/components/Portal/renderPortal.js +18 -7
- package/lib-commonjs/components/Portal/renderPortal.js.map +1 -1
- package/lib-commonjs/components/Portal/usePortal.d.ts +2 -2
- package/lib-commonjs/components/Portal/usePortal.js +39 -24
- package/lib-commonjs/components/Portal/usePortal.js.map +1 -1
- package/lib-commonjs/components/Portal/usePortalMountNode.js +41 -26
- package/lib-commonjs/components/Portal/usePortalMountNode.js.map +1 -1
- package/lib-commonjs/index.js +22 -5
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/virtualParent/elementContains.js +26 -16
- package/lib-commonjs/virtualParent/elementContains.js.map +1 -1
- package/lib-commonjs/virtualParent/getParent.js +10 -3
- package/lib-commonjs/virtualParent/getParent.js.map +1 -1
- package/lib-commonjs/virtualParent/getVirtualParent.js +16 -7
- package/lib-commonjs/virtualParent/getVirtualParent.js.map +1 -1
- package/lib-commonjs/virtualParent/index.js +11 -2
- package/lib-commonjs/virtualParent/index.js.map +1 -1
- package/lib-commonjs/virtualParent/isVirtualElement.js +7 -2
- package/lib-commonjs/virtualParent/isVirtualElement.js.map +1 -1
- package/lib-commonjs/virtualParent/setVirtualParent.js +17 -9
- package/lib-commonjs/virtualParent/setVirtualParent.js.map +1 -1
- package/lib-commonjs/virtualParent/types.js +4 -1
- package/lib-commonjs/virtualParent/types.js.map +1 -1
- package/package.json +8 -9
- package/lib/common/isConformant.d.ts +0 -4
- package/lib/common/isConformant.js +0 -9
- package/lib/common/isConformant.js.map +0 -1
- package/lib-commonjs/common/isConformant.d.ts +0 -4
- package/lib-commonjs/common/isConformant.js +0 -13
- package/lib-commonjs/common/isConformant.js.map +0 -1
package/CHANGELOG.json
CHANGED
@@ -2,46 +2,125 @@
|
|
2
2
|
"name": "@fluentui/react-portal",
|
3
3
|
"entries": [
|
4
4
|
{
|
5
|
-
"date": "Thu,
|
6
|
-
"tag": "@fluentui/react-portal_v0.0.0-
|
7
|
-
"version": "0.0.0-
|
5
|
+
"date": "Thu, 03 Feb 2022 04:16:54 GMT",
|
6
|
+
"tag": "@fluentui/react-portal_v0.0.0-nightly946f57cad420220203.1",
|
7
|
+
"version": "0.0.0-nightly946f57cad420220203.1",
|
8
8
|
"comments": {
|
9
9
|
"prerelease": [
|
10
10
|
{
|
11
11
|
"author": "email not defined",
|
12
12
|
"package": "@fluentui/react-portal",
|
13
|
-
"commit": "
|
13
|
+
"commit": "1d230926e10b3b722bd932be1ec39faaf340671c",
|
14
14
|
"comment": "Release nightly v9"
|
15
15
|
},
|
16
|
+
{
|
17
|
+
"author": "behowell@microsoft.com",
|
18
|
+
"package": "@fluentui/react-portal",
|
19
|
+
"commit": "317209bb5cd57c40f35bc42060acb7e3cce5ec95",
|
20
|
+
"comment": "BREAKING: Rename component hooks add the suffix _unstable, as their API has not been finalized yet"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"author": "olfedias@microsoft.com",
|
24
|
+
"package": "@fluentui/react-portal",
|
25
|
+
"commit": "d525c8b2106551865d648873210a6b48c2326ecb",
|
26
|
+
"comment": "remove unused dependency on Griffel"
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"author": "beachball",
|
30
|
+
"package": "@fluentui/react-portal",
|
31
|
+
"comment": "Bump @fluentui/react-shared-contexts to v0.0.0-nightly946f57cad420220203.1",
|
32
|
+
"commit": "1d230926e10b3b722bd932be1ec39faaf340671c"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"author": "beachball",
|
36
|
+
"package": "@fluentui/react-portal",
|
37
|
+
"comment": "Bump @fluentui/react-tabster to v0.0.0-nightly946f57cad420220203.1",
|
38
|
+
"commit": "1d230926e10b3b722bd932be1ec39faaf340671c"
|
39
|
+
},
|
40
|
+
{
|
41
|
+
"author": "beachball",
|
42
|
+
"package": "@fluentui/react-portal",
|
43
|
+
"comment": "Bump @fluentui/react-utilities to v0.0.0-nightly946f57cad420220203.1",
|
44
|
+
"commit": "1d230926e10b3b722bd932be1ec39faaf340671c"
|
45
|
+
}
|
46
|
+
],
|
47
|
+
"none": [
|
48
|
+
{
|
49
|
+
"author": "olfedias@microsoft.com",
|
50
|
+
"package": "@fluentui/react-portal",
|
51
|
+
"commit": "f4883108ae74c089213780f09997115c0d547aef",
|
52
|
+
"comment": "update stories to not use CSS shorthands in styles"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"author": "Humberto.Morimoto@microsoft.com",
|
56
|
+
"package": "@fluentui/react-portal",
|
57
|
+
"commit": "60e153e786c586b867898109c07a51876d3bfd5a",
|
58
|
+
"comment": "Replacing use of functions in makeStyles with direct use of tokens"
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"author": "martinhochel@microsoft.com",
|
62
|
+
"package": "@fluentui/react-portal",
|
63
|
+
"commit": "8dfa712156b70414205b87b5b6d099367b0c297d",
|
64
|
+
"comment": "chore: use storybook runner for all vNext packages"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"author": "olfedias@microsoft.com",
|
68
|
+
"package": "@fluentui/react-portal",
|
69
|
+
"commit": "c061e98be4b4a718c72a144a1f60bb5515824612",
|
70
|
+
"comment": "remove inline-style-expand-shorthand from tsconfigs"
|
71
|
+
}
|
72
|
+
]
|
73
|
+
}
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"date": "Thu, 25 Nov 2021 08:34:15 GMT",
|
77
|
+
"tag": "@fluentui/react-portal_v9.0.0-beta.5",
|
78
|
+
"version": "9.0.0-beta.5",
|
79
|
+
"comments": {
|
80
|
+
"none": [
|
81
|
+
{
|
82
|
+
"author": "lingfangao@hotmail.com",
|
83
|
+
"package": "@fluentui/react-portal",
|
84
|
+
"commit": "8a141d14f3a14de2e1c4691dad908622f310a9d1",
|
85
|
+
"comment": "Migrate package to use solution tsconfigs"
|
86
|
+
}
|
87
|
+
],
|
88
|
+
"prerelease": [
|
89
|
+
{
|
90
|
+
"author": "beachball",
|
91
|
+
"package": "@fluentui/react-portal",
|
92
|
+
"comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.4",
|
93
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
94
|
+
},
|
16
95
|
{
|
17
96
|
"author": "beachball",
|
18
97
|
"package": "@fluentui/react-portal",
|
19
|
-
"comment": "Bump @fluentui/react-
|
20
|
-
"commit": "
|
98
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.4",
|
99
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
21
100
|
},
|
22
101
|
{
|
23
102
|
"author": "beachball",
|
24
103
|
"package": "@fluentui/react-portal",
|
25
|
-
"comment": "Bump @fluentui/react-
|
26
|
-
"commit": "
|
104
|
+
"comment": "Bump @fluentui/react-tabster to v9.0.0-beta.5",
|
105
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
27
106
|
},
|
28
107
|
{
|
29
108
|
"author": "beachball",
|
30
109
|
"package": "@fluentui/react-portal",
|
31
|
-
"comment": "Bump @fluentui/react-
|
32
|
-
"commit": "
|
110
|
+
"comment": "Bump @fluentui/react-utilities to v9.0.0-beta.4",
|
111
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
33
112
|
},
|
34
113
|
{
|
35
114
|
"author": "beachball",
|
36
115
|
"package": "@fluentui/react-portal",
|
37
|
-
"comment": "Bump @fluentui/
|
38
|
-
"commit": "
|
116
|
+
"comment": "Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.4",
|
117
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
39
118
|
},
|
40
119
|
{
|
41
120
|
"author": "beachball",
|
42
121
|
"package": "@fluentui/react-portal",
|
43
|
-
"comment": "Bump @fluentui/
|
44
|
-
"commit": "
|
122
|
+
"comment": "Bump @fluentui/babel-make-styles to v9.0.0-beta.4",
|
123
|
+
"commit": "48d236ac53a4950fabc3ddd52f91dac93ca0195b"
|
45
124
|
}
|
46
125
|
]
|
47
126
|
}
|
package/CHANGELOG.md
CHANGED
@@ -1,22 +1,36 @@
|
|
1
1
|
# Change Log - @fluentui/react-portal
|
2
2
|
|
3
|
-
This log was last generated on Thu,
|
3
|
+
This log was last generated on Thu, 03 Feb 2022 04:16:54 GMT and should not be manually modified.
|
4
4
|
|
5
5
|
<!-- Start content -->
|
6
6
|
|
7
|
-
## [0.0.0-
|
7
|
+
## [0.0.0-nightly946f57cad420220203.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v0.0.0-nightly946f57cad420220203.1)
|
8
8
|
|
9
|
-
Thu,
|
10
|
-
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.
|
9
|
+
Thu, 03 Feb 2022 04:16:54 GMT
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.5..@fluentui/react-portal_v0.0.0-nightly946f57cad420220203.1)
|
11
11
|
|
12
12
|
### Changes
|
13
13
|
|
14
|
-
- Release nightly v9 ([commit](https://github.com/microsoft/fluentui/commit/
|
15
|
-
-
|
16
|
-
-
|
17
|
-
- Bump @fluentui/react-
|
18
|
-
- Bump @fluentui/react-
|
19
|
-
- Bump @fluentui/
|
14
|
+
- Release nightly v9 ([commit](https://github.com/microsoft/fluentui/commit/1d230926e10b3b722bd932be1ec39faaf340671c) by email not defined)
|
15
|
+
- BREAKING: Rename component hooks add the suffix _unstable, as their API has not been finalized yet ([PR #21365](https://github.com/microsoft/fluentui/pull/21365) by behowell@microsoft.com)
|
16
|
+
- remove unused dependency on Griffel ([PR #21393](https://github.com/microsoft/fluentui/pull/21393) by olfedias@microsoft.com)
|
17
|
+
- Bump @fluentui/react-shared-contexts to v0.0.0-nightly946f57cad420220203.1 ([commit](https://github.com/microsoft/fluentui/commit/1d230926e10b3b722bd932be1ec39faaf340671c) by beachball)
|
18
|
+
- Bump @fluentui/react-tabster to v0.0.0-nightly946f57cad420220203.1 ([commit](https://github.com/microsoft/fluentui/commit/1d230926e10b3b722bd932be1ec39faaf340671c) by beachball)
|
19
|
+
- Bump @fluentui/react-utilities to v0.0.0-nightly946f57cad420220203.1 ([commit](https://github.com/microsoft/fluentui/commit/1d230926e10b3b722bd932be1ec39faaf340671c) by beachball)
|
20
|
+
|
21
|
+
## [9.0.0-beta.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.5)
|
22
|
+
|
23
|
+
Thu, 25 Nov 2021 08:34:15 GMT
|
24
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.4..@fluentui/react-portal_v9.0.0-beta.5)
|
25
|
+
|
26
|
+
### Changes
|
27
|
+
|
28
|
+
- Bump @fluentui/react-make-styles to v9.0.0-beta.4 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
29
|
+
- Bump @fluentui/react-shared-contexts to v9.0.0-beta.4 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
30
|
+
- Bump @fluentui/react-tabster to v9.0.0-beta.5 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
31
|
+
- Bump @fluentui/react-utilities to v9.0.0-beta.4 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
32
|
+
- Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.4 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
33
|
+
- Bump @fluentui/babel-make-styles to v9.0.0-beta.4 ([PR #20762](https://github.com/microsoft/fluentui/pull/20762) by beachball)
|
20
34
|
|
21
35
|
## [9.0.0-beta.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.4)
|
22
36
|
|
package/dist/react-portal.d.ts
CHANGED
@@ -40,7 +40,7 @@ export declare type PortalState = PortalCommons & {
|
|
40
40
|
/**
|
41
41
|
* Render the final JSX of Portal
|
42
42
|
*/
|
43
|
-
export declare const
|
43
|
+
export declare const renderPortal_unstable: (state: PortalState) => React_2.ReactElement;
|
44
44
|
|
45
45
|
/**
|
46
46
|
* Sets the virtual parent of an element.
|
@@ -53,10 +53,10 @@ export declare function setVirtualParent(child: HTMLElement, parent?: HTMLElemen
|
|
53
53
|
/**
|
54
54
|
* Create the state required to render Portal.
|
55
55
|
*
|
56
|
-
* The returned state can be modified with hooks such as usePortalStyles, before being passed to
|
56
|
+
* The returned state can be modified with hooks such as usePortalStyles, before being passed to renderPortal_unstable.
|
57
57
|
*
|
58
58
|
* @param props - props from this instance of Portal
|
59
59
|
*/
|
60
|
-
export declare const
|
60
|
+
export declare const usePortal_unstable: (props: PortalProps) => PortalState;
|
61
61
|
|
62
62
|
export { }
|
@@ -1,12 +1,13 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { usePortal_unstable } from './usePortal';
|
2
|
+
import { renderPortal_unstable } from './renderPortal';
|
3
3
|
/**
|
4
4
|
* A portal provides a way to render children into a DOM node
|
5
5
|
* that exists outside the DOM hierarchy of the parent component.
|
6
6
|
*/
|
7
|
+
|
7
8
|
export const Portal = props => {
|
8
|
-
|
9
|
-
|
9
|
+
const state = usePortal_unstable(props);
|
10
|
+
return renderPortal_unstable(state);
|
10
11
|
};
|
11
12
|
Portal.displayName = 'Portal';
|
12
13
|
//# sourceMappingURL=Portal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/Portal.tsx"],"names":[],"mappings":"AAEA,SAAS,kBAAT,QAAmC,aAAnC;AACA,SAAS,qBAAT,QAAsC,gBAAtC;AAGA;;;AAGG;;AACH,OAAO,MAAM,MAAM,GAA0B,KAAK,IAAG;AACnD,QAAM,KAAK,GAAG,kBAAkB,CAAC,KAAD,CAAhC;AAEA,SAAO,qBAAqB,CAAC,KAAD,CAA5B;AACD,CAJM;AAMP,MAAM,CAAC,WAAP,GAAqB,QAArB","sourceRoot":""}
|
@@ -3,7 +3,11 @@ import * as React from 'react';
|
|
3
3
|
/**
|
4
4
|
* Render the final JSX of Portal
|
5
5
|
*/
|
6
|
-
|
7
|
-
|
6
|
+
|
7
|
+
export const renderPortal_unstable = state => {
|
8
|
+
return /*#__PURE__*/React.createElement("span", {
|
9
|
+
hidden: true,
|
10
|
+
ref: state.virtualParentRootRef
|
11
|
+
}, state.shouldRender && state.mountNode && /*#__PURE__*/ReactDOM.createPortal(state.children, state.mountNode));
|
8
12
|
};
|
9
13
|
//# sourceMappingURL=renderPortal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/renderPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAZ,MAA0B,WAA1B;AACA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AAGA;;AAEG;;AACH,OAAO,MAAM,qBAAqB,GAAI,KAAD,IAA2C;AAC9E,sBACE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AAAM,IAAA,MAAM,EAAA,IAAZ;AAAa,IAAA,GAAG,EAAE,KAAK,CAAC;AAAxB,GAAA,EACG,KAAK,CAAC,YAAN,IAAsB,KAAK,CAAC,SAA5B,iBAAyC,QAAQ,CAAC,YAAT,CAAsB,KAAK,CAAC,QAA5B,EAAsC,KAAK,CAAC,SAA5C,CAD5C,CADF;AAKD,CANM","sourceRoot":""}
|
@@ -2,8 +2,8 @@ import type { PortalProps, PortalState } from './Portal.types';
|
|
2
2
|
/**
|
3
3
|
* Create the state required to render Portal.
|
4
4
|
*
|
5
|
-
* The returned state can be modified with hooks such as usePortalStyles, before being passed to
|
5
|
+
* The returned state can be modified with hooks such as usePortalStyles, before being passed to renderPortal_unstable.
|
6
6
|
*
|
7
7
|
* @param props - props from this instance of Portal
|
8
8
|
*/
|
9
|
-
export declare const
|
9
|
+
export declare const usePortal_unstable: (props: PortalProps) => PortalState;
|
@@ -5,25 +5,31 @@ import { setVirtualParent } from '../../virtualParent/index';
|
|
5
5
|
/**
|
6
6
|
* Create the state required to render Portal.
|
7
7
|
*
|
8
|
-
* The returned state can be modified with hooks such as usePortalStyles, before being passed to
|
8
|
+
* The returned state can be modified with hooks such as usePortalStyles, before being passed to renderPortal_unstable.
|
9
9
|
*
|
10
10
|
* @param props - props from this instance of Portal
|
11
11
|
*/
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
12
|
+
|
13
|
+
export const usePortal_unstable = props => {
|
14
|
+
const {
|
15
|
+
children,
|
16
|
+
mountNode
|
17
|
+
} = props;
|
18
|
+
const virtualParentRootRef = React.useRef(null);
|
19
|
+
const fallbackMountNode = usePortalMountNode({
|
20
|
+
disabled: !!mountNode
|
21
|
+
});
|
22
|
+
const state = {
|
23
|
+
children,
|
24
|
+
mountNode: mountNode !== null && mountNode !== void 0 ? mountNode : fallbackMountNode,
|
25
|
+
shouldRender: !useIsSSR(),
|
26
|
+
virtualParentRootRef
|
27
|
+
};
|
28
|
+
React.useEffect(() => {
|
29
|
+
if (state.virtualParentRootRef.current && state.mountNode) {
|
30
|
+
setVirtualParent(state.mountNode, state.virtualParentRootRef.current);
|
31
|
+
}
|
32
|
+
}, [state.virtualParentRootRef, state.mountNode]);
|
33
|
+
return state;
|
28
34
|
};
|
29
35
|
//# sourceMappingURL=usePortal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/usePortal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AACA,SAAS,kBAAT,QAAmC,sBAAnC;AACA,SAAS,gBAAT,QAAiC,2BAAjC;AAGA;;;;;;AAMG;;AACH,OAAO,MAAM,kBAAkB,GAAI,KAAD,IAAoC;AACpE,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA;AAAZ,MAA0B,KAAhC;AAEA,QAAM,oBAAoB,GAAG,KAAK,CAAC,MAAN,CAA8B,IAA9B,CAA7B;AACA,QAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAAE,IAAA,QAAQ,EAAE,CAAC,CAAC;AAAd,GAAD,CAA5C;AAEA,QAAM,KAAK,GAAgB;AACzB,IAAA,QADyB;AAEzB,IAAA,SAAS,EAAE,SAAS,KAAA,IAAT,IAAA,SAAS,KAAA,KAAA,CAAT,GAAA,SAAA,GAAa,iBAFC;AAGzB,IAAA,YAAY,EAAE,CAAC,QAAQ,EAHE;AAIzB,IAAA;AAJyB,GAA3B;AAOA,EAAA,KAAK,CAAC,SAAN,CAAgB,MAAK;AACnB,QAAI,KAAK,CAAC,oBAAN,CAA2B,OAA3B,IAAsC,KAAK,CAAC,SAAhD,EAA2D;AACzD,MAAA,gBAAgB,CAAC,KAAK,CAAC,SAAP,EAAkB,KAAK,CAAC,oBAAN,CAA2B,OAA7C,CAAhB;AACD;AACF,GAJD,EAIG,CAAC,KAAK,CAAC,oBAAP,EAA6B,KAAK,CAAC,SAAnC,CAJH;AAMA,SAAO,KAAP;AACD,CApBM","sourceRoot":""}
|
@@ -5,26 +5,32 @@ import { useKeyboardNavAttribute } from '@fluentui/react-tabster';
|
|
5
5
|
/**
|
6
6
|
* Creates a new element on a document.body to mount portals
|
7
7
|
*/
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
return
|
8
|
+
|
9
|
+
export const usePortalMountNode = options => {
|
10
|
+
const themeClassName = useThemeClassName();
|
11
|
+
const {
|
12
|
+
targetDocument,
|
13
|
+
dir
|
14
|
+
} = useFluent();
|
15
|
+
const element = React.useMemo(() => {
|
16
|
+
if (targetDocument === undefined || options.disabled) {
|
17
|
+
return undefined;
|
18
|
+
}
|
19
|
+
|
20
|
+
const newElement = targetDocument.createElement('div');
|
21
|
+
newElement.setAttribute('class', themeClassName);
|
22
|
+
newElement.setAttribute('dir', dir);
|
23
|
+
targetDocument.body.appendChild(newElement);
|
24
|
+
return newElement;
|
25
|
+
}, [targetDocument, themeClassName, dir, options.disabled]);
|
26
|
+
useKeyboardNavAttribute().current = element;
|
27
|
+
useIsomorphicLayoutEffect(() => {
|
28
|
+
return () => {
|
29
|
+
var _a;
|
30
|
+
|
31
|
+
(_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(element);
|
32
|
+
};
|
33
|
+
}, [element]);
|
34
|
+
return element;
|
29
35
|
};
|
30
36
|
//# sourceMappingURL=usePortalMountNode.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/usePortalMountNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,yBAAT,QAA0C,2BAA1C;AACA,SAAS,iBAAT,EAA4B,SAA5B,QAA6C,iCAA7C;AACA,SAAS,uBAAT,QAAwC,yBAAxC;AASA;;AAEG;;AACH,OAAO,MAAM,kBAAkB,GAAI,OAAD,IAAuC;AACvE,QAAM,cAAc,GAAG,iBAAiB,EAAxC;AACA,QAAM;AAAE,IAAA,cAAF;AAAkB,IAAA;AAAlB,MAA0B,SAAS,EAAzC;AAEA,QAAM,OAAO,GAAG,KAAK,CAAC,OAAN,CAAc,MAAK;AACjC,QAAI,cAAc,KAAK,SAAnB,IAAgC,OAAO,CAAC,QAA5C,EAAsD;AACpD,aAAO,SAAP;AACD;;AAED,UAAM,UAAU,GAAG,cAAc,CAAC,aAAf,CAA6B,KAA7B,CAAnB;AACA,IAAA,UAAU,CAAC,YAAX,CAAwB,OAAxB,EAAiC,cAAjC;AACA,IAAA,UAAU,CAAC,YAAX,CAAwB,KAAxB,EAA+B,GAA/B;AACA,IAAA,cAAc,CAAC,IAAf,CAAoB,WAApB,CAAgC,UAAhC;AAEA,WAAO,UAAP;AACD,GAXe,EAWb,CAAC,cAAD,EAAiB,cAAjB,EAAiC,GAAjC,EAAsC,OAAO,CAAC,QAA9C,CAXa,CAAhB;AAaC,EAAA,uBAAuB,GAA2C,OAAlE,GAA4E,OAA5E;AAED,EAAA,yBAAyB,CAAC,MAAK;AAC7B,WAAO,MAAK;;;AACV,OAAA,EAAA,GAAA,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,aAAT,MAAsB,IAAtB,IAAsB,EAAA,KAAA,KAAA,CAAtB,GAAsB,KAAA,CAAtB,GAAsB,EAAA,CAAE,WAAF,CAAc,OAAd,CAAtB;AACD,KAFD;AAGD,GAJwB,EAItB,CAAC,OAAD,CAJsB,CAAzB;AAMA,SAAO,OAAP;AACD,CA1BM","sourceRoot":""}
|
@@ -5,22 +5,26 @@ import { getParent } from './getParent';
|
|
5
5
|
*
|
6
6
|
* @returns true if the child can find the parent in its virtual hierarchy
|
7
7
|
*/
|
8
|
+
|
8
9
|
export function elementContains(parent, child) {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
if (!parent || !child) {
|
11
|
+
return false;
|
12
|
+
}
|
13
|
+
|
14
|
+
if (parent === child) {
|
15
|
+
return true;
|
16
|
+
} else {
|
17
|
+
while (child) {
|
18
|
+
const nextParent = getParent(child);
|
19
|
+
|
20
|
+
if (nextParent === parent) {
|
13
21
|
return true;
|
22
|
+
}
|
23
|
+
|
24
|
+
child = nextParent;
|
14
25
|
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
if (nextParent === parent) {
|
19
|
-
return true;
|
20
|
-
}
|
21
|
-
child = nextParent;
|
22
|
-
}
|
23
|
-
}
|
24
|
-
return false;
|
26
|
+
}
|
27
|
+
|
28
|
+
return false;
|
25
29
|
}
|
26
30
|
//# sourceMappingURL=elementContains.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/virtualParent/elementContains.ts"],"names":[],"mappings":"AAAA,SAAS,SAAT,QAA0B,aAA1B;AACA;;;;;AAKG;;AACH,OAAM,SAAU,eAAV,CAA0B,MAA1B,EAAsD,KAAtD,EAA+E;AACnF,MAAI,CAAC,MAAD,IAAW,CAAC,KAAhB,EAAuB;AACrB,WAAO,KAAP;AACD;;AAED,MAAI,MAAM,KAAK,KAAf,EAAsB;AACpB,WAAO,IAAP;AACD,GAFD,MAEO;AACL,WAAO,KAAP,EAAc;AACZ,YAAM,UAAU,GAAuB,SAAS,CAAC,KAAD,CAAhD;;AAEA,UAAI,UAAU,KAAK,MAAnB,EAA2B;AACzB,eAAO,IAAP;AACD;;AAED,MAAA,KAAK,GAAG,UAAR;AACD;AACF;;AAED,SAAO,KAAP;AACD","sourceRoot":""}
|
@@ -3,7 +3,8 @@ import { getVirtualParent } from './getVirtualParent';
|
|
3
3
|
* Gets the element which is the parent of a given element.
|
4
4
|
* This method prefers the virtual parent over real DOM parent when present.
|
5
5
|
*/
|
6
|
+
|
6
7
|
export function getParent(child) {
|
7
|
-
|
8
|
+
return child && getVirtualParent(child) || (child === null || child === void 0 ? void 0 : child.parentNode);
|
8
9
|
}
|
9
10
|
//# sourceMappingURL=getParent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/virtualParent/getParent.ts"],"names":[],"mappings":"AAAA,SAAS,gBAAT,QAAiC,oBAAjC;AAEA;;;AAGG;;AACH,OAAM,SAAU,SAAV,CAAoB,KAApB,EAA6C;AACjD,SAAQ,KAAK,IAAI,gBAAgB,CAAC,KAAD,CAA1B,KAAuC,KAAK,KAAA,IAAL,IAAA,KAAK,KAAA,KAAA,CAAL,GAAK,KAAA,CAAL,GAAA,KAAK,CAAE,UAA9C,CAAP;AACD","sourceRoot":""}
|
@@ -2,11 +2,14 @@ import { isVirtualElement } from './isVirtualElement';
|
|
2
2
|
/**
|
3
3
|
* Gets the virtual parent given the child element, if it exists.
|
4
4
|
*/
|
5
|
+
|
5
6
|
export function getVirtualParent(child) {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
let parent;
|
8
|
+
|
9
|
+
if (isVirtualElement(child)) {
|
10
|
+
parent = child._virtual.parent;
|
11
|
+
}
|
12
|
+
|
13
|
+
return parent;
|
11
14
|
}
|
12
15
|
//# sourceMappingURL=getVirtualParent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/virtualParent/getVirtualParent.ts"],"names":[],"mappings":"AAAA,SAAS,gBAAT,QAAiC,oBAAjC;AACA;;AAEG;;AACH,OAAM,SAAU,gBAAV,CAA2B,KAA3B,EAA6C;AACjD,MAAI,MAAJ;;AACA,MAAI,gBAAgB,CAAC,KAAD,CAApB,EAA6B;AAC3B,IAAA,MAAM,GAAG,KAAK,CAAC,QAAN,CAAe,MAAxB;AACD;;AACD,SAAO,MAAP;AACD","sourceRoot":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/virtualParent/isVirtualElement.ts"],"names":[],"mappings":"AAEA;;AAEG;AACH,OAAM,SAAU,gBAAV,CAA2B,OAA3B,EAAgE;AACpE,SAAO,OAAO,IAAI,CAAC,CAAkB,OAAQ,CAAC,QAA9C;AACD","sourceRoot":""}
|
@@ -5,13 +5,16 @@
|
|
5
5
|
* @param parent - The virtual parent, use `undefined` to remove a virtual parent relationship
|
6
6
|
*/
|
7
7
|
export function setVirtualParent(child, parent) {
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
virtualChild._virtual
|
8
|
+
if (!child) {
|
9
|
+
return;
|
10
|
+
}
|
11
|
+
|
12
|
+
const virtualChild = child;
|
13
|
+
|
14
|
+
if (!virtualChild._virtual) {
|
15
|
+
virtualChild._virtual = {};
|
16
|
+
}
|
17
|
+
|
18
|
+
virtualChild._virtual.parent = parent || undefined;
|
16
19
|
}
|
17
20
|
//# sourceMappingURL=setVirtualParent.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../src/virtualParent/setVirtualParent.ts"],"names":[],"mappings":"AAEA;;;;;AAKG;AACH,OAAM,SAAU,gBAAV,CAA2B,KAA3B,EAA+C,MAA/C,EAAmE;AACvE,MAAI,CAAC,KAAL,EAAY;AACV;AACD;;AAED,QAAM,YAAY,GAAmB,KAArC;;AAEA,MAAI,CAAC,YAAY,CAAC,QAAlB,EAA4B;AAC1B,IAAA,YAAY,CAAC,QAAb,GAAwB,EAAxB;AACD;;AAED,EAAA,YAAY,CAAC,QAAb,CAAsB,MAAtB,GAA+B,MAAM,IAAI,SAAzC;AACD","sourceRoot":""}
|
package/lib-commonjs/Portal.js
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
|
7
|
+
const tslib_1 = /*#__PURE__*/require("tslib");
|
8
|
+
|
4
9
|
tslib_1.__exportStar(require("./components/Portal/index"), exports);
|
5
10
|
//# sourceMappingURL=Portal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../src/Portal.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,2BAAA,CAAA,EAAA,OAAA","sourceRoot":""}
|
@@ -1,16 +1,24 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
3
6
|
exports.Portal = void 0;
|
4
|
-
|
5
|
-
const
|
7
|
+
|
8
|
+
const usePortal_1 = /*#__PURE__*/require("./usePortal");
|
9
|
+
|
10
|
+
const renderPortal_1 = /*#__PURE__*/require("./renderPortal");
|
6
11
|
/**
|
7
12
|
* A portal provides a way to render children into a DOM node
|
8
13
|
* that exists outside the DOM hierarchy of the parent component.
|
9
14
|
*/
|
15
|
+
|
16
|
+
|
10
17
|
const Portal = props => {
|
11
|
-
|
12
|
-
|
18
|
+
const state = usePortal_1.usePortal_unstable(props);
|
19
|
+
return renderPortal_1.renderPortal_unstable(state);
|
13
20
|
};
|
21
|
+
|
14
22
|
exports.Portal = Portal;
|
15
23
|
exports.Portal.displayName = 'Portal';
|
16
24
|
//# sourceMappingURL=Portal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/Portal.tsx"],"names":[],"mappings":";;;;;;;AAEA,MAAA,WAAA,gBAAA,OAAA,CAAA,aAAA,CAAA;;AACA,MAAA,cAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;AAGA;;;AAGG;;;AACI,MAAM,MAAM,GAA0B,KAAK,IAAG;AACnD,QAAM,KAAK,GAAG,WAAA,CAAA,kBAAA,CAAmB,KAAnB,CAAd;AAEA,SAAO,cAAA,CAAA,qBAAA,CAAsB,KAAtB,CAAP;AACD,CAJM;;AAAM,OAAA,CAAA,MAAA,GAAM,MAAN;AAMb,OAAA,CAAA,MAAA,CAAO,WAAP,GAAqB,QAArB","sourceRoot":""}
|