@fluentui/react-portal 9.0.0-beta.1 → 9.0.0-beta.5
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 +185 -1
- package/CHANGELOG.md +55 -2
- package/dist/react-portal.d.ts +2 -1
- package/lib/components/Portal/Portal.d.ts +2 -1
- package/lib/components/Portal/Portal.js +6 -4
- package/lib/components/Portal/Portal.js.map +1 -1
- package/lib/components/Portal/renderPortal.js +6 -2
- package/lib/components/Portal/renderPortal.js.map +1 -1
- package/lib/components/Portal/usePortal.js +22 -16
- 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.d.ts +2 -1
- package/lib-commonjs/components/Portal/Portal.js +16 -7
- 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.js +16 -5
- package/lib-commonjs/components/Portal/renderPortal.js.map +1 -1
- package/lib-commonjs/components/Portal/usePortal.js +36 -21
- 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 +11 -10
- 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,7 +2,191 @@
|
|
2
2
|
"name": "@fluentui/react-portal",
|
3
3
|
"entries": [
|
4
4
|
{
|
5
|
-
"date": "
|
5
|
+
"date": "Thu, 25 Nov 2021 08:31:33 GMT",
|
6
|
+
"tag": "@fluentui/react-portal_v9.0.0-beta.5",
|
7
|
+
"version": "9.0.0-beta.5",
|
8
|
+
"comments": {
|
9
|
+
"none": [
|
10
|
+
{
|
11
|
+
"author": "lingfangao@hotmail.com",
|
12
|
+
"package": "@fluentui/react-portal",
|
13
|
+
"commit": "8a141d14f3a14de2e1c4691dad908622f310a9d1",
|
14
|
+
"comment": "Migrate package to use solution tsconfigs"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"prerelease": [
|
18
|
+
{
|
19
|
+
"author": "beachball",
|
20
|
+
"package": "@fluentui/react-portal",
|
21
|
+
"comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.4",
|
22
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"author": "beachball",
|
26
|
+
"package": "@fluentui/react-portal",
|
27
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.4",
|
28
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"author": "beachball",
|
32
|
+
"package": "@fluentui/react-portal",
|
33
|
+
"comment": "Bump @fluentui/react-tabster to v9.0.0-beta.5",
|
34
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
35
|
+
},
|
36
|
+
{
|
37
|
+
"author": "beachball",
|
38
|
+
"package": "@fluentui/react-portal",
|
39
|
+
"comment": "Bump @fluentui/react-utilities to v9.0.0-beta.4",
|
40
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"author": "beachball",
|
44
|
+
"package": "@fluentui/react-portal",
|
45
|
+
"comment": "Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.4",
|
46
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"author": "beachball",
|
50
|
+
"package": "@fluentui/react-portal",
|
51
|
+
"comment": "Bump @fluentui/babel-make-styles to v9.0.0-beta.4",
|
52
|
+
"commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
|
53
|
+
}
|
54
|
+
]
|
55
|
+
}
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"date": "Fri, 12 Nov 2021 13:25:29 GMT",
|
59
|
+
"tag": "@fluentui/react-portal_v9.0.0-beta.4",
|
60
|
+
"version": "9.0.0-beta.4",
|
61
|
+
"comments": {
|
62
|
+
"none": [
|
63
|
+
{
|
64
|
+
"author": "lingfangao@hotmail.com",
|
65
|
+
"package": "@fluentui/react-portal",
|
66
|
+
"commit": "00f70581480b536e723fb69edf0ae617beac4807",
|
67
|
+
"comment": "Remove beta release tag"
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"author": "mgodbolt@microsoft.com",
|
71
|
+
"package": "@fluentui/react-portal",
|
72
|
+
"commit": "7fafe76eb2c09f9d17a03c11ba73729d91ef411e",
|
73
|
+
"comment": "update docs descriptions"
|
74
|
+
}
|
75
|
+
],
|
76
|
+
"prerelease": [
|
77
|
+
{
|
78
|
+
"author": "gcox@microsoft.com",
|
79
|
+
"package": "@fluentui/react-portal",
|
80
|
+
"commit": "c9bd5b5a02ae94a8239ce1b56cac2f0d0dbd3586",
|
81
|
+
"comment": "Updated beta and RC components to ES2019"
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"author": "gcox@microsoft.com",
|
85
|
+
"package": "@fluentui/react-portal",
|
86
|
+
"commit": "36404e1921159b0a69b4824ae86e6276e0723ea2",
|
87
|
+
"comment": "Broke up stories added codesandbox refs"
|
88
|
+
},
|
89
|
+
{
|
90
|
+
"author": "beachball",
|
91
|
+
"package": "@fluentui/react-portal",
|
92
|
+
"comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.3",
|
93
|
+
"commit": "742342e52c65066f779232e4e1302fedf0dd460d"
|
94
|
+
},
|
95
|
+
{
|
96
|
+
"author": "beachball",
|
97
|
+
"package": "@fluentui/react-portal",
|
98
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.3",
|
99
|
+
"commit": "742342e52c65066f779232e4e1302fedf0dd460d"
|
100
|
+
},
|
101
|
+
{
|
102
|
+
"author": "beachball",
|
103
|
+
"package": "@fluentui/react-portal",
|
104
|
+
"comment": "Bump @fluentui/react-tabster to v9.0.0-beta.4",
|
105
|
+
"commit": "742342e52c65066f779232e4e1302fedf0dd460d"
|
106
|
+
},
|
107
|
+
{
|
108
|
+
"author": "beachball",
|
109
|
+
"package": "@fluentui/react-portal",
|
110
|
+
"comment": "Bump @fluentui/react-utilities to v9.0.0-beta.3",
|
111
|
+
"commit": "742342e52c65066f779232e4e1302fedf0dd460d"
|
112
|
+
},
|
113
|
+
{
|
114
|
+
"author": "beachball",
|
115
|
+
"package": "@fluentui/react-portal",
|
116
|
+
"comment": "Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.3",
|
117
|
+
"commit": "742342e52c65066f779232e4e1302fedf0dd460d"
|
118
|
+
}
|
119
|
+
]
|
120
|
+
}
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"date": "Wed, 27 Oct 2021 12:14:21 GMT",
|
124
|
+
"tag": "@fluentui/react-portal_v9.0.0-beta.3",
|
125
|
+
"version": "9.0.0-beta.3",
|
126
|
+
"comments": {
|
127
|
+
"prerelease": [
|
128
|
+
{
|
129
|
+
"author": "gcox@microsoft.com",
|
130
|
+
"package": "@fluentui/react-portal",
|
131
|
+
"commit": "d730088d7f6e5965ba5d5ed0d449e250f171d791",
|
132
|
+
"comment": "Removed duplicate 'Portal' from story names"
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"author": "peter@draxler.ml",
|
136
|
+
"package": "@fluentui/react-portal",
|
137
|
+
"commit": "f6db7c8d6b7db0902775e7857b62b745be35b59a",
|
138
|
+
"comment": "added styling of documentation"
|
139
|
+
},
|
140
|
+
{
|
141
|
+
"author": "beachball",
|
142
|
+
"package": "@fluentui/react-portal",
|
143
|
+
"comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.2",
|
144
|
+
"commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"author": "beachball",
|
148
|
+
"package": "@fluentui/react-portal",
|
149
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.2",
|
150
|
+
"commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
|
151
|
+
},
|
152
|
+
{
|
153
|
+
"author": "beachball",
|
154
|
+
"package": "@fluentui/react-portal",
|
155
|
+
"comment": "Bump @fluentui/react-tabster to v9.0.0-beta.3",
|
156
|
+
"commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"author": "beachball",
|
160
|
+
"package": "@fluentui/react-portal",
|
161
|
+
"comment": "Bump @fluentui/react-utilities to v9.0.0-beta.2",
|
162
|
+
"commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
|
163
|
+
},
|
164
|
+
{
|
165
|
+
"author": "beachball",
|
166
|
+
"package": "@fluentui/react-portal",
|
167
|
+
"comment": "Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.2",
|
168
|
+
"commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
|
169
|
+
}
|
170
|
+
]
|
171
|
+
}
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"date": "Tue, 12 Oct 2021 19:45:58 GMT",
|
175
|
+
"tag": "@fluentui/react-portal_v9.0.0-beta.2",
|
176
|
+
"version": "9.0.0-beta.2",
|
177
|
+
"comments": {
|
178
|
+
"prerelease": [
|
179
|
+
{
|
180
|
+
"author": "beachball",
|
181
|
+
"package": "@fluentui/react-portal",
|
182
|
+
"comment": "Bump @fluentui/react-tabster to v9.0.0-beta.2",
|
183
|
+
"commit": "bdd19e2bb827fc1d8eb329e6ed48cd0542048358"
|
184
|
+
}
|
185
|
+
]
|
186
|
+
}
|
187
|
+
},
|
188
|
+
{
|
189
|
+
"date": "Wed, 06 Oct 2021 10:37:22 GMT",
|
6
190
|
"tag": "@fluentui/react-portal_v9.0.0-beta.1",
|
7
191
|
"version": "9.0.0-beta.1",
|
8
192
|
"comments": {
|
package/CHANGELOG.md
CHANGED
@@ -1,12 +1,65 @@
|
|
1
1
|
# Change Log - @fluentui/react-portal
|
2
2
|
|
3
|
-
This log was last generated on
|
3
|
+
This log was last generated on Thu, 25 Nov 2021 08:31:33 GMT and should not be manually modified.
|
4
4
|
|
5
5
|
<!-- Start content -->
|
6
6
|
|
7
|
+
## [9.0.0-beta.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.5)
|
8
|
+
|
9
|
+
Thu, 25 Nov 2021 08:31:33 GMT
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.4..@fluentui/react-portal_v9.0.0-beta.5)
|
11
|
+
|
12
|
+
### Changes
|
13
|
+
|
14
|
+
- Bump @fluentui/react-make-styles to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
15
|
+
- Bump @fluentui/react-shared-contexts to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
16
|
+
- Bump @fluentui/react-tabster to v9.0.0-beta.5 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
17
|
+
- Bump @fluentui/react-utilities to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
18
|
+
- Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
19
|
+
- Bump @fluentui/babel-make-styles to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
|
20
|
+
|
21
|
+
## [9.0.0-beta.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.4)
|
22
|
+
|
23
|
+
Fri, 12 Nov 2021 13:25:29 GMT
|
24
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.3..@fluentui/react-portal_v9.0.0-beta.4)
|
25
|
+
|
26
|
+
### Changes
|
27
|
+
|
28
|
+
- Updated beta and RC components to ES2019 ([PR #20405](https://github.com/microsoft/fluentui/pull/20405) by gcox@microsoft.com)
|
29
|
+
- Broke up stories added codesandbox refs ([PR #20372](https://github.com/microsoft/fluentui/pull/20372) by gcox@microsoft.com)
|
30
|
+
- Bump @fluentui/react-make-styles to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
|
31
|
+
- Bump @fluentui/react-shared-contexts to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
|
32
|
+
- Bump @fluentui/react-tabster to v9.0.0-beta.4 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
|
33
|
+
- Bump @fluentui/react-utilities to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
|
34
|
+
- Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
|
35
|
+
|
36
|
+
## [9.0.0-beta.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.3)
|
37
|
+
|
38
|
+
Wed, 27 Oct 2021 12:14:21 GMT
|
39
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.2..@fluentui/react-portal_v9.0.0-beta.3)
|
40
|
+
|
41
|
+
### Changes
|
42
|
+
|
43
|
+
- Removed duplicate 'Portal' from story names ([PR #20270](https://github.com/microsoft/fluentui/pull/20270) by gcox@microsoft.com)
|
44
|
+
- added styling of documentation ([PR #20193](https://github.com/microsoft/fluentui/pull/20193) by peter@draxler.ml)
|
45
|
+
- Bump @fluentui/react-make-styles to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
|
46
|
+
- Bump @fluentui/react-shared-contexts to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
|
47
|
+
- Bump @fluentui/react-tabster to v9.0.0-beta.3 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
|
48
|
+
- Bump @fluentui/react-utilities to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
|
49
|
+
- Bump @fluentui/jest-serializer-make-styles to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
|
50
|
+
|
51
|
+
## [9.0.0-beta.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.2)
|
52
|
+
|
53
|
+
Tue, 12 Oct 2021 19:45:58 GMT
|
54
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-beta.1..@fluentui/react-portal_v9.0.0-beta.2)
|
55
|
+
|
56
|
+
### Changes
|
57
|
+
|
58
|
+
- Bump @fluentui/react-tabster to v9.0.0-beta.2 ([PR #20132](https://github.com/microsoft/fluentui/pull/20132) by beachball)
|
59
|
+
|
7
60
|
## [9.0.0-beta.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-portal_v9.0.0-beta.1)
|
8
61
|
|
9
|
-
Wed, 06 Oct 2021 10:
|
62
|
+
Wed, 06 Oct 2021 10:37:22 GMT
|
10
63
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-portal_v9.0.0-alpha.61..@fluentui/react-portal_v9.0.0-beta.1)
|
11
64
|
|
12
65
|
### Changes
|
package/dist/react-portal.d.ts
CHANGED
@@ -9,7 +9,8 @@ import * as React_2 from 'react';
|
|
9
9
|
export declare function elementContains(parent: HTMLElement | null, child: HTMLElement | null): boolean;
|
10
10
|
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* A portal provides a way to render children into a DOM node
|
13
|
+
* that exists outside the DOM hierarchy of the parent component.
|
13
14
|
*/
|
14
15
|
export declare const Portal: React_2.FC<PortalProps>;
|
15
16
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import type { PortalProps } from './Portal.types';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* A portal provides a way to render children into a DOM node
|
5
|
+
* that exists outside the DOM hierarchy of the parent component.
|
5
6
|
*/
|
6
7
|
export declare const Portal: React.FC<PortalProps>;
|
@@ -1,11 +1,13 @@
|
|
1
1
|
import { usePortal } from './usePortal';
|
2
2
|
import { renderPortal } from './renderPortal';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* A portal provides a way to render children into a DOM node
|
5
|
+
* that exists outside the DOM hierarchy of the parent component.
|
5
6
|
*/
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
|
8
|
+
export const Portal = props => {
|
9
|
+
const state = usePortal(props);
|
10
|
+
return renderPortal(state);
|
9
11
|
};
|
10
12
|
Portal.displayName = 'Portal';
|
11
13
|
//# sourceMappingURL=Portal.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"sources":["../../../src/components/Portal/Portal.tsx"],"names":[],"mappings":"AAEA,SAAS,SAAT,QAA0B,aAA1B;AACA,SAAS,YAAT,QAA6B,gBAA7B;AAGA;;;AAGG;;AACH,OAAO,MAAM,MAAM,GAA0B,KAAK,IAAG;AACnD,QAAM,KAAK,GAAG,SAAS,CAAC,KAAD,CAAvB;AAEA,SAAO,YAAY,CAAC,KAAD,CAAnB;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 = 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,YAAY,GAAI,KAAD,IAA2C;AACrE,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":""}
|
@@ -9,21 +9,27 @@ import { setVirtualParent } from '../../virtualParent/index';
|
|
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 = 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,SAAS,GAAI,KAAD,IAAoC;AAC3D,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,6 +1,7 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import type { PortalProps } from './Portal.types';
|
3
3
|
/**
|
4
|
-
*
|
4
|
+
* A portal provides a way to render children into a DOM node
|
5
|
+
* that exists outside the DOM hierarchy of the parent component.
|
5
6
|
*/
|
6
7
|
export declare const Portal: React.FC<PortalProps>;
|