@dreamcommerce/aurora 2.23.6 → 2.23.7
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/build/cjs/packages/aurora/src/components/dropdown/components/content.js +21 -7
- package/build/cjs/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
- package/build/esm/packages/aurora/src/components/dropdown/components/content.js +21 -7
- package/build/esm/packages/aurora/src/components/dropdown/components/content.js.map +1 -1
- package/package.json +1 -1
|
@@ -81,6 +81,11 @@ var Content = function Content(_ref) {
|
|
|
81
81
|
parentScrollTop = _useState4[0],
|
|
82
82
|
setParentScrollTop = _useState4[1];
|
|
83
83
|
|
|
84
|
+
var _useState5 = React.useState(false),
|
|
85
|
+
_useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
|
|
86
|
+
fitOnBottomOfScrollableParent = _useState6[0],
|
|
87
|
+
setFitOnBottomOfScrollableParent = _useState6[1];
|
|
88
|
+
|
|
84
89
|
var dropdownIdRef = React.useRef("dropdown-".concat(v4['default']()));
|
|
85
90
|
|
|
86
91
|
var _useDropdownsManagerC = use_dropdowns_manager_context.useDropdownsManagerContext(),
|
|
@@ -90,15 +95,15 @@ var Content = function Content(_ref) {
|
|
|
90
95
|
|
|
91
96
|
var dropdown = getDropdown(dropdownIdRef.current);
|
|
92
97
|
|
|
93
|
-
var
|
|
98
|
+
var _useState7 = React.useState({
|
|
94
99
|
top: '0px',
|
|
95
100
|
bottom: '0px',
|
|
96
101
|
left: '0px',
|
|
97
102
|
zIndex: constants.DROPDOWN_Z_INDEX
|
|
98
103
|
}),
|
|
99
|
-
|
|
100
|
-
styles =
|
|
101
|
-
setStyles =
|
|
104
|
+
_useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
|
|
105
|
+
styles = _useState8[0],
|
|
106
|
+
setStyles = _useState8[1];
|
|
102
107
|
|
|
103
108
|
var windowYScroll = window.scrollY;
|
|
104
109
|
var windowHeightMinusYOffset = window.innerHeight - windowYScroll;
|
|
@@ -133,7 +138,7 @@ var Content = function Content(_ref) {
|
|
|
133
138
|
|
|
134
139
|
var checkIfIsOutsideBottomViewport = function checkIfIsOutsideBottomViewport() {
|
|
135
140
|
if (!contentRef.current || !bounding || !isOpen) return;
|
|
136
|
-
return bounding.height + bounding.top + constants.DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight;
|
|
141
|
+
return bounding.height + bounding.top + constants.DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight && !fitOnBottomOfScrollableParent;
|
|
137
142
|
};
|
|
138
143
|
|
|
139
144
|
var dropdownIsOutsideTopViewport = checkIfIsOutsideTopViewport();
|
|
@@ -202,7 +207,7 @@ var Content = function Content(_ref) {
|
|
|
202
207
|
|
|
203
208
|
if (verticalPosition === 'bottom') {
|
|
204
209
|
setBottomPosition();
|
|
205
|
-
if (dropdownIsOutsideBottomViewport) setTopPosition();
|
|
210
|
+
if (dropdownIsOutsideBottomViewport && !fitOnBottomOfScrollableParent) setTopPosition();
|
|
206
211
|
}
|
|
207
212
|
|
|
208
213
|
screenWidthName === responsive_breakpoints.SCREEN_XS ? setStyles({
|
|
@@ -217,12 +222,13 @@ var Content = function Content(_ref) {
|
|
|
217
222
|
zIndex: zIndex
|
|
218
223
|
});
|
|
219
224
|
}
|
|
220
|
-
}, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop]);
|
|
225
|
+
}, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop, fitOnBottomOfScrollableParent]);
|
|
221
226
|
React.useEffect(function () {
|
|
222
227
|
var _UiDomUtils$getFirstS;
|
|
223
228
|
|
|
224
229
|
if (!(wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current) || !isOpen) return;
|
|
225
230
|
var scrollableParent = (_UiDomUtils$getFirstS = utilities$1.UiDomUtils.getFirstScrollableParent(wrapperRef.current)) !== null && _UiDomUtils$getFirstS !== void 0 ? _UiDomUtils$getFirstS : document.body;
|
|
231
|
+
var wrapperRect = wrapperRef.current.getBoundingClientRect();
|
|
226
232
|
|
|
227
233
|
var handleWindowScroll = function handleWindowScroll() {
|
|
228
234
|
if (typeof toggleDropdown === 'function' && shouldCloseOnScroll) {
|
|
@@ -238,6 +244,14 @@ var Content = function Content(_ref) {
|
|
|
238
244
|
once: true
|
|
239
245
|
});
|
|
240
246
|
scrollableParent.addEventListener('scroll', setParentScrollTopValue);
|
|
247
|
+
requestAnimationFrame(function () {
|
|
248
|
+
var _contentRef$current;
|
|
249
|
+
|
|
250
|
+
var scrollableParentHeight = scrollableParent === null || scrollableParent === void 0 ? void 0 : scrollableParent.scrollHeight;
|
|
251
|
+
var scrollableParentBottomSpace = scrollableParentHeight - (wrapperRect.bottom - scrollableParent.offsetTop + scrollableParent.scrollTop);
|
|
252
|
+
var dropdownHeight = contentRef === null || contentRef === void 0 || (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight;
|
|
253
|
+
if (dropdownHeight) setFitOnBottomOfScrollableParent(scrollableParentBottomSpace > dropdownHeight);
|
|
254
|
+
});
|
|
241
255
|
return function () {
|
|
242
256
|
scrollableParent.removeEventListener('scroll', handleWindowScroll);
|
|
243
257
|
scrollableParent.removeEventListener('scroll', setParentScrollTopValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -72,6 +72,11 @@ var Content = function Content(_ref) {
|
|
|
72
72
|
parentScrollTop = _useState4[0],
|
|
73
73
|
setParentScrollTop = _useState4[1];
|
|
74
74
|
|
|
75
|
+
var _useState5 = useState(false),
|
|
76
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
77
|
+
fitOnBottomOfScrollableParent = _useState6[0],
|
|
78
|
+
setFitOnBottomOfScrollableParent = _useState6[1];
|
|
79
|
+
|
|
75
80
|
var dropdownIdRef = useRef("dropdown-".concat(v4()));
|
|
76
81
|
|
|
77
82
|
var _useDropdownsManagerC = useDropdownsManagerContext(),
|
|
@@ -81,15 +86,15 @@ var Content = function Content(_ref) {
|
|
|
81
86
|
|
|
82
87
|
var dropdown = getDropdown(dropdownIdRef.current);
|
|
83
88
|
|
|
84
|
-
var
|
|
89
|
+
var _useState7 = useState({
|
|
85
90
|
top: '0px',
|
|
86
91
|
bottom: '0px',
|
|
87
92
|
left: '0px',
|
|
88
93
|
zIndex: DROPDOWN_Z_INDEX
|
|
89
94
|
}),
|
|
90
|
-
|
|
91
|
-
styles =
|
|
92
|
-
setStyles =
|
|
95
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
96
|
+
styles = _useState8[0],
|
|
97
|
+
setStyles = _useState8[1];
|
|
93
98
|
|
|
94
99
|
var windowYScroll = window.scrollY;
|
|
95
100
|
var windowHeightMinusYOffset = window.innerHeight - windowYScroll;
|
|
@@ -124,7 +129,7 @@ var Content = function Content(_ref) {
|
|
|
124
129
|
|
|
125
130
|
var checkIfIsOutsideBottomViewport = function checkIfIsOutsideBottomViewport() {
|
|
126
131
|
if (!contentRef.current || !bounding || !isOpen) return;
|
|
127
|
-
return bounding.height + bounding.top + DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight;
|
|
132
|
+
return bounding.height + bounding.top + DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight && !fitOnBottomOfScrollableParent;
|
|
128
133
|
};
|
|
129
134
|
|
|
130
135
|
var dropdownIsOutsideTopViewport = checkIfIsOutsideTopViewport();
|
|
@@ -193,7 +198,7 @@ var Content = function Content(_ref) {
|
|
|
193
198
|
|
|
194
199
|
if (verticalPosition === 'bottom') {
|
|
195
200
|
setBottomPosition();
|
|
196
|
-
if (dropdownIsOutsideBottomViewport) setTopPosition();
|
|
201
|
+
if (dropdownIsOutsideBottomViewport && !fitOnBottomOfScrollableParent) setTopPosition();
|
|
197
202
|
}
|
|
198
203
|
|
|
199
204
|
screenWidthName === SCREEN_XS ? setStyles({
|
|
@@ -208,12 +213,13 @@ var Content = function Content(_ref) {
|
|
|
208
213
|
zIndex: zIndex
|
|
209
214
|
});
|
|
210
215
|
}
|
|
211
|
-
}, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop]);
|
|
216
|
+
}, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop, fitOnBottomOfScrollableParent]);
|
|
212
217
|
useEffect(function () {
|
|
213
218
|
var _UiDomUtils$getFirstS;
|
|
214
219
|
|
|
215
220
|
if (!(wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current) || !isOpen) return;
|
|
216
221
|
var scrollableParent = (_UiDomUtils$getFirstS = UiDomUtils.getFirstScrollableParent(wrapperRef.current)) !== null && _UiDomUtils$getFirstS !== void 0 ? _UiDomUtils$getFirstS : document.body;
|
|
222
|
+
var wrapperRect = wrapperRef.current.getBoundingClientRect();
|
|
217
223
|
|
|
218
224
|
var handleWindowScroll = function handleWindowScroll() {
|
|
219
225
|
if (typeof toggleDropdown === 'function' && shouldCloseOnScroll) {
|
|
@@ -229,6 +235,14 @@ var Content = function Content(_ref) {
|
|
|
229
235
|
once: true
|
|
230
236
|
});
|
|
231
237
|
scrollableParent.addEventListener('scroll', setParentScrollTopValue);
|
|
238
|
+
requestAnimationFrame(function () {
|
|
239
|
+
var _contentRef$current;
|
|
240
|
+
|
|
241
|
+
var scrollableParentHeight = scrollableParent === null || scrollableParent === void 0 ? void 0 : scrollableParent.scrollHeight;
|
|
242
|
+
var scrollableParentBottomSpace = scrollableParentHeight - (wrapperRect.bottom - scrollableParent.offsetTop + scrollableParent.scrollTop);
|
|
243
|
+
var dropdownHeight = contentRef === null || contentRef === void 0 || (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight;
|
|
244
|
+
if (dropdownHeight) setFitOnBottomOfScrollableParent(scrollableParentBottomSpace > dropdownHeight);
|
|
245
|
+
});
|
|
232
246
|
return function () {
|
|
233
247
|
scrollableParent.removeEventListener('scroll', handleWindowScroll);
|
|
234
248
|
scrollableParent.removeEventListener('scroll', setParentScrollTopValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|