@patternfly/react-core 5.4.0-prerelease.24 → 5.4.0-prerelease.26
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 +12 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/Chip/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/DragDrop/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/Text/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/Tile/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
- package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
- package/dist/dynamic/deprecated/components/Select/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/favorites/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/next/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/next/components/Modal/package.json +1 -1
- package/dist/dynamic/next/components/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/DragDrop/Draggable.js +1 -1
- package/dist/esm/components/DragDrop/Draggable.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.d.ts +2 -0
- package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js +2 -2
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts +3 -0
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js +3 -2
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/js/components/DragDrop/Draggable.js +1 -1
- package/dist/js/components/DragDrop/Draggable.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/js/components/Pagination/Pagination.d.ts +2 -0
- package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/js/components/Pagination/Pagination.js +2 -2
- package/dist/js/components/Pagination/Pagination.js.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts +3 -0
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.js +3 -2
- package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/umd/assets/{output-B0L3RBT7.css → output-DCAtJqEL.css} +3162 -3162
- package/dist/umd/react-core.min.js +2 -2
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +6 -6
- package/scripts/copyStyles.js +3 -3
- package/src/components/DragDrop/Draggable.tsx +1 -1
- package/src/components/DragDrop/examples/DragDropMultipleLists.tsx +6 -6
- package/src/components/EmptyState/__tests__/Generated/EmptyStateIcon.test.tsx +3 -17
- package/src/components/MenuToggle/MenuToggle.tsx +1 -2
- package/src/components/OverflowMenu/__tests__/Generated/OverflowMenuDropdownItem.test.tsx +1 -3
- package/src/components/Pagination/Pagination.tsx +4 -0
- package/src/components/Pagination/PaginationOptionsMenu.tsx +7 -2
- package/src/components/Pagination/__tests__/Generated/PaginationOptionsMenu.test.tsx +2 -2
package/helpers/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.4.0-prerelease.
|
|
1
|
+
{"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"5.4.0-prerelease.25","private":true}
|
package/layouts/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.4.0-prerelease.
|
|
1
|
+
{"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"5.4.0-prerelease.25","private":true}
|
package/next/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.4.0-prerelease.
|
|
1
|
+
{"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"5.4.0-prerelease.25","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "5.4.0-prerelease.
|
|
3
|
+
"version": "5.4.0-prerelease.26",
|
|
4
4
|
"description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
|
|
5
5
|
"main": "dist/js/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -46,15 +46,15 @@
|
|
|
46
46
|
"clean:exports": "node scripts/cleanDistExports.js"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@patternfly/react-icons": "^5.4.0-prerelease.
|
|
50
|
-
"@patternfly/react-styles": "^5.4.0-prerelease.
|
|
51
|
-
"@patternfly/react-tokens": "^5.4.0-prerelease.
|
|
49
|
+
"@patternfly/react-icons": "^5.4.0-prerelease.10",
|
|
50
|
+
"@patternfly/react-styles": "^5.4.0-prerelease.11",
|
|
51
|
+
"@patternfly/react-tokens": "^5.4.0-prerelease.10",
|
|
52
52
|
"focus-trap": "7.5.4",
|
|
53
53
|
"react-dropzone": "^14.2.3",
|
|
54
54
|
"tslib": "^2.6.3"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@patternfly/patternfly": "5.4.0-prerelease.
|
|
57
|
+
"@patternfly/patternfly": "5.4.0-prerelease.8",
|
|
58
58
|
"css": "^3.0.0",
|
|
59
59
|
"fs-extra": "^11.2.0"
|
|
60
60
|
},
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
"react": "^17 || ^18",
|
|
63
63
|
"react-dom": "^17 || ^18"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "d3d18bd882ec62e99f62b5c182a6b942ef110f54"
|
|
66
66
|
}
|
package/scripts/copyStyles.js
CHANGED
|
@@ -32,10 +32,10 @@ for (const [targetCss, baseCss] of Object.entries(baseCssFiles)) {
|
|
|
32
32
|
const ast = parseCSS(css);
|
|
33
33
|
|
|
34
34
|
// Core provides font awesome fonts and utlities. React does not use these
|
|
35
|
-
ast.stylesheet.rules = ast.stylesheet.rules.filter(rule => {
|
|
35
|
+
ast.stylesheet.rules = ast.stylesheet.rules.filter((rule) => {
|
|
36
36
|
switch (rule.type) {
|
|
37
37
|
case 'rule':
|
|
38
|
-
return !rule.selectors.some(sel => unusedSelectorRegEx.test(sel));
|
|
38
|
+
return !rule.selectors.some((sel) => unusedSelectorRegEx.test(sel));
|
|
39
39
|
case 'keyframes':
|
|
40
40
|
return !unusedKeyFramesRegEx.test(rule.name);
|
|
41
41
|
case 'charset':
|
|
@@ -43,7 +43,7 @@ for (const [targetCss, baseCss] of Object.entries(baseCssFiles)) {
|
|
|
43
43
|
return false;
|
|
44
44
|
case 'font-face':
|
|
45
45
|
// eslint-disable-next-line no-case-declarations
|
|
46
|
-
const fontFamilyDecl = rule.declarations.find(decl => decl.property === 'font-family');
|
|
46
|
+
const fontFamilyDecl = rule.declarations.find((decl) => decl.property === 'font-family');
|
|
47
47
|
return !unusedFontFamilyRegEx.test(fontFamilyDecl.value);
|
|
48
48
|
default:
|
|
49
49
|
return true;
|
|
@@ -117,7 +117,7 @@ export const Draggable: React.FunctionComponent<DraggableProps> = ({
|
|
|
117
117
|
index
|
|
118
118
|
};
|
|
119
119
|
const dest =
|
|
120
|
-
hoveringDroppableId !== null
|
|
120
|
+
hoveringDroppableId !== null
|
|
121
121
|
? {
|
|
122
122
|
droppableId: hoveringDroppableId,
|
|
123
123
|
index: hoveringIndex
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { DragDrop, Draggable, Droppable,
|
|
2
|
+
import { DragDrop, Draggable, Droppable, Flex } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
interface ItemType {
|
|
5
5
|
id: string;
|
|
@@ -85,19 +85,19 @@ export const DragDropMultipleLists: React.FunctionComponent = () => {
|
|
|
85
85
|
|
|
86
86
|
return (
|
|
87
87
|
<DragDrop onDrop={onDrop}>
|
|
88
|
-
<
|
|
88
|
+
<Flex alignItems={{ default: 'alignItemsStretch' }} flexWrap={{ default: 'nowrap' }}>
|
|
89
89
|
{Object.entries(items).map(([key, subitems]) => (
|
|
90
|
-
<
|
|
91
|
-
<Droppable zone="multizone" droppableId={key}>
|
|
90
|
+
<Flex key={key} fullWidth={{ default: 'fullWidth' }} alignItems={{ default: 'alignItemsStretch' }}>
|
|
91
|
+
<Droppable zone="multizone" droppableId={key} style={{ flexGrow: '1' }}>
|
|
92
92
|
{(subitems as ItemType[]).map(({ id, content }) => (
|
|
93
93
|
<Draggable key={id} style={{ padding: '8px' }}>
|
|
94
94
|
{content}
|
|
95
95
|
</Draggable>
|
|
96
96
|
))}
|
|
97
97
|
</Droppable>
|
|
98
|
-
</
|
|
98
|
+
</Flex>
|
|
99
99
|
))}
|
|
100
|
-
</
|
|
100
|
+
</Flex>
|
|
101
101
|
</DragDrop>
|
|
102
102
|
);
|
|
103
103
|
};
|
|
@@ -3,31 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { render } from '@testing-library/react';
|
|
6
|
-
import
|
|
6
|
+
import UserIcon from '@patternfly/react-icons/dist/esm/icons/user-icon';
|
|
7
7
|
import { EmptyStateIcon } from '../../EmptyStateIcon';
|
|
8
8
|
// any missing imports can usually be resolved by adding them here
|
|
9
9
|
import { Spinner } from '../../../Spinner/Spinner';
|
|
10
10
|
|
|
11
11
|
it('EmptyStateIcon should match snapshot (auto-generated)', () => {
|
|
12
|
-
const { asFragment } = render(
|
|
13
|
-
<EmptyStateIcon
|
|
14
|
-
color={'string'}
|
|
15
|
-
title={'string'}
|
|
16
|
-
className={"''"}
|
|
17
|
-
icon={UserIcon}
|
|
18
|
-
/>
|
|
19
|
-
);
|
|
12
|
+
const { asFragment } = render(<EmptyStateIcon color={'string'} title={'string'} className={"''"} icon={UserIcon} />);
|
|
20
13
|
expect(asFragment()).toMatchSnapshot();
|
|
21
14
|
});
|
|
22
15
|
|
|
23
16
|
it('EmptyStateIcon should match snapshot for variant container', () => {
|
|
24
|
-
const { asFragment } = render(
|
|
25
|
-
<EmptyStateIcon
|
|
26
|
-
color={'string'}
|
|
27
|
-
title={'string'}
|
|
28
|
-
className={"''"}
|
|
29
|
-
icon={Spinner}
|
|
30
|
-
/>
|
|
31
|
-
);
|
|
17
|
+
const { asFragment } = render(<EmptyStateIcon color={'string'} title={'string'} className={"''"} icon={Spinner} />);
|
|
32
18
|
expect(asFragment()).toMatchSnapshot();
|
|
33
19
|
});
|
|
@@ -201,13 +201,12 @@ class MenuToggleBase extends React.Component<MenuToggleProps, MenuToggleState> {
|
|
|
201
201
|
>
|
|
202
202
|
{splitButtonOptions?.items}
|
|
203
203
|
<button
|
|
204
|
-
className={css(styles.menuToggleButton)}
|
|
204
|
+
className={css(styles.menuToggleButton, children && styles.modifiers.text)}
|
|
205
205
|
type="button"
|
|
206
206
|
aria-expanded={isExpanded}
|
|
207
207
|
aria-label={ariaLabel}
|
|
208
208
|
disabled={isDisabled}
|
|
209
209
|
onClick={onClick}
|
|
210
|
-
{...(children && { style: { display: 'flex', paddingLeft: 'var(--pf-v5-global--spacer--sm)' } })}
|
|
211
210
|
{...otherProps}
|
|
212
211
|
{...ouiaProps}
|
|
213
212
|
>
|
|
@@ -6,9 +6,7 @@ import { OverflowMenuDropdownItem } from '../../OverflowMenuDropdownItem';
|
|
|
6
6
|
|
|
7
7
|
describe('OverflowMenuDropdownItem', () => {
|
|
8
8
|
it('should match snapshot', () => {
|
|
9
|
-
const { asFragment } = render(
|
|
10
|
-
<OverflowMenuDropdownItem itemId="id" children={'any'} isShared={false} />
|
|
11
|
-
);
|
|
9
|
+
const { asFragment } = render(<OverflowMenuDropdownItem itemId="id" children={'any'} isShared={false} />);
|
|
12
10
|
expect(asFragment()).toMatchSnapshot();
|
|
13
11
|
});
|
|
14
12
|
});
|
|
@@ -169,6 +169,8 @@ export interface PaginationProps extends React.HTMLProps<HTMLDivElement>, OUIAPr
|
|
|
169
169
|
ouiaId?: number | string;
|
|
170
170
|
/** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
|
|
171
171
|
ouiaSafe?: boolean;
|
|
172
|
+
/** @beta The container to append the pagination options menu to. */
|
|
173
|
+
menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline';
|
|
172
174
|
}
|
|
173
175
|
|
|
174
176
|
const handleInputWidth = (lastPage: number, node: HTMLDivElement) => {
|
|
@@ -229,6 +231,7 @@ export const Pagination: React.FunctionComponent<PaginationProps> = ({
|
|
|
229
231
|
ouiaSafe = true,
|
|
230
232
|
usePageInsets,
|
|
231
233
|
inset,
|
|
234
|
+
menuAppendTo,
|
|
232
235
|
...props
|
|
233
236
|
}: PaginationProps) => {
|
|
234
237
|
const paginationRef = React.useRef<HTMLDivElement>(null);
|
|
@@ -337,6 +340,7 @@ export const Pagination: React.FunctionComponent<PaginationProps> = ({
|
|
|
337
340
|
toggleTemplate={toggleTemplate}
|
|
338
341
|
isDisabled={isDisabled}
|
|
339
342
|
containerRef={containerRef}
|
|
343
|
+
appendTo={menuAppendTo}
|
|
340
344
|
/>
|
|
341
345
|
)}
|
|
342
346
|
<Navigation
|
|
@@ -52,7 +52,10 @@ export interface PaginationOptionsMenuProps extends React.HTMLProps<HTMLDivEleme
|
|
|
52
52
|
onPerPageSelect?: OnPerPageSelect;
|
|
53
53
|
/** Label for the English word "of". */
|
|
54
54
|
ofWord?: string;
|
|
55
|
+
/** React ref for the container to append the options menu to. This is a static ref provided by the main pagination component. */
|
|
55
56
|
containerRef?: React.RefObject<HTMLDivElement>;
|
|
57
|
+
/** @beta The container to append the pagination options menu to. Overrides the containerRef prop. */
|
|
58
|
+
appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
|
|
56
59
|
}
|
|
57
60
|
|
|
58
61
|
export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMenuProps> = ({
|
|
@@ -76,7 +79,8 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
76
79
|
itemsTitle = '',
|
|
77
80
|
toggleTemplate,
|
|
78
81
|
onPerPageSelect = () => null as any,
|
|
79
|
-
containerRef
|
|
82
|
+
containerRef,
|
|
83
|
+
appendTo
|
|
80
84
|
}: PaginationOptionsMenuProps) => {
|
|
81
85
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
82
86
|
const toggleRef = React.useRef<HTMLButtonElement>(null);
|
|
@@ -208,6 +212,7 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
208
212
|
</Menu>
|
|
209
213
|
);
|
|
210
214
|
|
|
215
|
+
const containerToAppendTo = appendTo ?? (containerRef?.current || undefined);
|
|
211
216
|
return (
|
|
212
217
|
<Popper
|
|
213
218
|
trigger={toggle}
|
|
@@ -216,7 +221,7 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
216
221
|
popperRef={menuRef}
|
|
217
222
|
isVisible={isOpen}
|
|
218
223
|
direction={dropDirection}
|
|
219
|
-
appendTo={
|
|
224
|
+
appendTo={containerToAppendTo}
|
|
220
225
|
minWidth={minWidth !== undefined ? minWidth : 'revert'}
|
|
221
226
|
/>
|
|
222
227
|
);
|
|
@@ -29,8 +29,8 @@ it('PaginationOptionsMenu should match snapshot (auto-generated)', () => {
|
|
|
29
29
|
<React.Fragment>
|
|
30
30
|
<b>
|
|
31
31
|
{firstIndex} - {lastIndex}
|
|
32
|
-
</b>
|
|
33
|
-
of<b>{itemCount}</b> {itemsTitle}
|
|
32
|
+
</b>
|
|
33
|
+
Custom toggle template of<b>{itemCount}</b> {itemsTitle}
|
|
34
34
|
</React.Fragment>
|
|
35
35
|
)}
|
|
36
36
|
onPerPageSelect={() => null as any}
|