@patternfly/react-core 6.0.0-alpha.83 → 6.0.0-alpha.85
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 +17 -0
- package/components/package.json +1 -8
- package/deprecated/package.json +1 -8
- package/dist/dynamic/components/AboutModal/package.json +1 -8
- package/dist/dynamic/components/Accordion/package.json +1 -8
- package/dist/dynamic/components/ActionList/package.json +1 -8
- package/dist/dynamic/components/Alert/package.json +1 -8
- package/dist/dynamic/components/Avatar/package.json +1 -8
- package/dist/dynamic/components/BackToTop/package.json +1 -8
- package/dist/dynamic/components/Backdrop/package.json +1 -8
- package/dist/dynamic/components/BackgroundImage/package.json +1 -8
- package/dist/dynamic/components/Badge/package.json +1 -8
- package/dist/dynamic/components/Banner/package.json +1 -8
- package/dist/dynamic/components/Brand/package.json +1 -8
- package/dist/dynamic/components/Breadcrumb/package.json +1 -8
- package/dist/dynamic/components/Button/package.json +1 -8
- package/dist/dynamic/components/CalendarMonth/package.json +1 -8
- package/dist/dynamic/components/Card/package.json +1 -8
- package/dist/dynamic/components/Checkbox/package.json +1 -8
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -8
- package/dist/dynamic/components/CodeBlock/package.json +1 -8
- package/dist/dynamic/components/Content/package.json +1 -8
- package/dist/dynamic/components/DataList/package.json +1 -8
- package/dist/dynamic/components/DatePicker/package.json +1 -8
- package/dist/dynamic/components/DescriptionList/package.json +1 -8
- package/dist/dynamic/components/Divider/package.json +1 -8
- package/dist/dynamic/components/Drawer/package.json +1 -8
- package/dist/dynamic/components/Dropdown/package.json +1 -8
- package/dist/dynamic/components/DualListSelector/package.json +1 -8
- package/dist/dynamic/components/EmptyState/package.json +1 -8
- package/dist/dynamic/components/ExpandableSection/package.json +1 -8
- package/dist/dynamic/components/FileUpload/package.json +1 -8
- package/dist/dynamic/components/Form/package.json +1 -8
- package/dist/dynamic/components/FormSelect/package.json +1 -8
- package/dist/dynamic/components/HelperText/package.json +1 -8
- package/dist/dynamic/components/Hint/package.json +1 -8
- package/dist/dynamic/components/Icon/package.json +1 -8
- package/dist/dynamic/components/InputGroup/package.json +1 -8
- package/dist/dynamic/components/JumpLinks/package.json +1 -8
- package/dist/dynamic/components/Label/package.json +1 -8
- package/dist/dynamic/components/List/package.json +1 -8
- package/dist/dynamic/components/LoginPage/package.json +1 -8
- package/dist/dynamic/components/Masthead/package.json +1 -8
- package/dist/dynamic/components/Menu/package.json +1 -8
- package/dist/dynamic/components/MenuToggle/package.json +1 -8
- package/dist/dynamic/components/Modal/package.json +1 -8
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -8
- package/dist/dynamic/components/Nav/package.json +1 -8
- package/dist/dynamic/components/NotificationBadge/package.json +1 -8
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -8
- package/dist/dynamic/components/NumberInput/package.json +1 -8
- package/dist/dynamic/components/OverflowMenu/package.json +1 -8
- package/dist/dynamic/components/Page/package.json +1 -8
- package/dist/dynamic/components/Pagination/package.json +1 -8
- package/dist/dynamic/components/Panel/package.json +1 -8
- package/dist/dynamic/components/Popover/package.json +1 -8
- package/dist/dynamic/components/Progress/package.json +1 -8
- package/dist/dynamic/components/ProgressStepper/package.json +1 -8
- package/dist/dynamic/components/Radio/package.json +1 -8
- package/dist/dynamic/components/SearchInput/package.json +1 -8
- package/dist/dynamic/components/Select/package.json +1 -8
- package/dist/dynamic/components/Sidebar/package.json +1 -8
- package/dist/dynamic/components/SimpleList/package.json +1 -8
- package/dist/dynamic/components/Skeleton/package.json +1 -8
- package/dist/dynamic/components/SkipToContent/package.json +1 -8
- package/dist/dynamic/components/Slider/package.json +1 -8
- package/dist/dynamic/components/Spinner/package.json +1 -8
- package/dist/dynamic/components/Switch/package.json +1 -8
- package/dist/dynamic/components/Tabs/package.json +1 -8
- package/dist/dynamic/components/TextArea/package.json +1 -8
- package/dist/dynamic/components/TextInput/package.json +1 -8
- package/dist/dynamic/components/TextInputGroup/package.json +1 -8
- package/dist/dynamic/components/Tile/package.json +1 -8
- package/dist/dynamic/components/TimePicker/package.json +1 -8
- package/dist/dynamic/components/Timestamp/package.json +1 -8
- package/dist/dynamic/components/Title/package.json +1 -8
- package/dist/dynamic/components/ToggleGroup/package.json +1 -8
- package/dist/dynamic/components/Toolbar/package.json +1 -8
- package/dist/dynamic/components/Tooltip/package.json +1 -8
- package/dist/dynamic/components/TreeView/package.json +1 -8
- package/dist/dynamic/components/Truncate/package.json +1 -8
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -8
- package/dist/dynamic/components/Wizard/package.json +1 -8
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -8
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -8
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -8
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -8
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -8
- package/dist/dynamic/deprecated/components/package.json +1 -8
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -8
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -8
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -8
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -8
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -8
- package/dist/dynamic/helpers/constants/package.json +1 -8
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -8
- package/dist/dynamic/helpers/fileUtils/package.json +1 -8
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -8
- package/dist/dynamic/helpers/package.json +1 -8
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -8
- package/dist/dynamic/helpers/typeUtils/package.json +1 -8
- package/dist/dynamic/helpers/useInterval/package.json +1 -8
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -8
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -8
- package/dist/dynamic/helpers/util/package.json +1 -8
- package/dist/dynamic/layouts/Bullseye/package.json +1 -8
- package/dist/dynamic/layouts/Flex/package.json +1 -8
- package/dist/dynamic/layouts/Gallery/package.json +1 -8
- package/dist/dynamic/layouts/Grid/package.json +1 -8
- package/dist/dynamic/layouts/Level/package.json +1 -8
- package/dist/dynamic/layouts/Split/package.json +1 -8
- package/dist/dynamic/layouts/Stack/package.json +1 -8
- package/dist/dynamic/styles/package.json +1 -8
- package/dist/esm/components/Accordion/AccordionContent.d.ts +3 -0
- package/dist/esm/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/esm/components/Accordion/AccordionContent.js +2 -2
- package/dist/esm/components/Accordion/AccordionContent.js.map +1 -1
- package/dist/esm/components/Accordion/AccordionExpandableContentBody.d.ts +1 -1
- package/dist/esm/components/Accordion/AccordionExpandableContentBody.d.ts.map +1 -1
- package/dist/esm/components/Accordion/AccordionExpandableContentBody.js +5 -1
- package/dist/esm/components/Accordion/AccordionExpandableContentBody.js.map +1 -1
- package/dist/esm/components/Accordion/AccordionItem.d.ts +1 -1
- package/dist/esm/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/esm/components/Accordion/AccordionItem.js +8 -4
- package/dist/esm/components/Accordion/AccordionItem.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 +19 -16
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/esm/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/esm/components/Wizard/Wizard.js +5 -1
- package/dist/esm/components/Wizard/Wizard.js.map +1 -1
- package/dist/esm/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/esm/components/Wizard/WizardContext.js +4 -0
- package/dist/esm/components/Wizard/WizardContext.js.map +1 -1
- package/dist/esm/components/Wizard/WizardStep.d.ts +2 -2
- package/dist/esm/components/Wizard/WizardStep.d.ts.map +1 -1
- package/dist/esm/components/Wizard/WizardToggle.d.ts.map +1 -1
- package/dist/esm/components/Wizard/WizardToggle.js +1 -2
- package/dist/esm/components/Wizard/WizardToggle.js.map +1 -1
- package/dist/js/components/Accordion/AccordionContent.d.ts +3 -0
- package/dist/js/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/js/components/Accordion/AccordionContent.js +2 -2
- package/dist/js/components/Accordion/AccordionContent.js.map +1 -1
- package/dist/js/components/Accordion/AccordionExpandableContentBody.d.ts +1 -1
- package/dist/js/components/Accordion/AccordionExpandableContentBody.d.ts.map +1 -1
- package/dist/js/components/Accordion/AccordionExpandableContentBody.js +4 -1
- package/dist/js/components/Accordion/AccordionExpandableContentBody.js.map +1 -1
- package/dist/js/components/Accordion/AccordionItem.d.ts +1 -1
- package/dist/js/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/js/components/Accordion/AccordionItem.js +7 -4
- package/dist/js/components/Accordion/AccordionItem.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 +19 -16
- package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/js/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/js/components/Wizard/Wizard.js +5 -1
- package/dist/js/components/Wizard/Wizard.js.map +1 -1
- package/dist/js/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/js/components/Wizard/WizardContext.js +4 -0
- package/dist/js/components/Wizard/WizardContext.js.map +1 -1
- package/dist/js/components/Wizard/WizardStep.d.ts +2 -2
- package/dist/js/components/Wizard/WizardStep.d.ts.map +1 -1
- package/dist/js/components/Wizard/WizardToggle.d.ts.map +1 -1
- package/dist/js/components/Wizard/WizardToggle.js +1 -2
- package/dist/js/components/Wizard/WizardToggle.js.map +1 -1
- package/dist/umd/assets/{output-ZK-DtcVp.css → output-CNxOEygf.css} +7815 -7815
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -8
- package/layouts/package.json +1 -8
- package/next/package.json +1 -8
- package/package.json +2 -2
- package/src/components/Accordion/AccordionContent.tsx +9 -2
- package/src/components/Accordion/AccordionExpandableContentBody.tsx +8 -3
- package/src/components/Accordion/AccordionItem.tsx +6 -3
- package/src/components/Accordion/__tests__/AccordionItem.test.tsx +6 -0
- package/src/components/Pagination/Pagination.tsx +4 -0
- package/src/components/Pagination/PaginationOptionsMenu.tsx +42 -34
- package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +42 -38
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +854 -774
- package/src/components/Wizard/Wizard.tsx +6 -1
- package/src/components/Wizard/WizardContext.tsx +5 -0
- package/src/components/Wizard/WizardStep.tsx +2 -2
- package/src/components/Wizard/WizardToggle.tsx +1 -2
- package/src/components/Wizard/__tests__/WizardStep.test.tsx +0 -5
- package/src/components/Wizard/examples/Wizard.md +0 -2
- package/src/components/Wizard/examples/WizardStepDrawerContent.tsx +13 -3
- package/src/components/Wizard/examples/WizardValidateOnButtonPress.tsx +15 -4
- package/src/components/Wizard/examples/WizardWithCustomFooter.tsx +24 -9
- package/src/demos/examples/Wizard/InModalWithDrawer.tsx +10 -5
- package/src/demos/examples/Wizard/InModalWithDrawerInformationalStep.tsx +10 -5
- package/src/demos/examples/Wizard/InPageWithDrawer.tsx +10 -5
- package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +10 -5
package/helpers/package.json
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@patternfly/react-core-helpers",
|
|
3
|
-
"main": "../dist/js/helpers/index.js",
|
|
4
|
-
"module": "../dist/esm/helpers/index.js",
|
|
5
|
-
"typings": "../dist/esm/helpers/index.d.ts",
|
|
6
|
-
"version": "6.0.0-alpha.82",
|
|
7
|
-
"private": true
|
|
8
|
-
}
|
|
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":"6.0.0-alpha.84","private":true}
|
package/layouts/package.json
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@patternfly/react-core-layouts",
|
|
3
|
-
"main": "../dist/js/layouts/index.js",
|
|
4
|
-
"module": "../dist/esm/layouts/index.js",
|
|
5
|
-
"typings": "../dist/esm/layouts/index.d.ts",
|
|
6
|
-
"version": "6.0.0-alpha.82",
|
|
7
|
-
"private": true
|
|
8
|
-
}
|
|
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":"6.0.0-alpha.84","private":true}
|
package/next/package.json
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@patternfly/react-core-next",
|
|
3
|
-
"main": "../dist/js/next/index.js",
|
|
4
|
-
"module": "../dist/esm/next/index.js",
|
|
5
|
-
"typings": "../dist/esm/next/index.d.ts",
|
|
6
|
-
"version": "6.0.0-alpha.82",
|
|
7
|
-
"private": true
|
|
8
|
-
}
|
|
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":"6.0.0-alpha.84","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.0.0-alpha.
|
|
3
|
+
"version": "6.0.0-alpha.85",
|
|
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",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"react": "^17 || ^18",
|
|
65
65
|
"react-dom": "^17 || ^18"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "c3878e74a655cae5c081b3f2b799f060ccd47fed"
|
|
68
68
|
}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Accordion/accordion';
|
|
4
4
|
import { AccordionContext, AccordionItemContext } from './AccordionContext';
|
|
5
|
-
import { AccordionExpandableContentBody } from './AccordionExpandableContentBody';
|
|
5
|
+
import { AccordionExpandableContentBody, AccordionExpandableContentBodyProps } from './AccordionExpandableContentBody';
|
|
6
6
|
|
|
7
7
|
export interface AccordionContentProps extends React.HTMLProps<HTMLDivElement> {
|
|
8
8
|
/** Content rendered inside the Accordion */
|
|
@@ -21,6 +21,8 @@ export interface AccordionContentProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
21
21
|
component?: React.ElementType;
|
|
22
22
|
/** Flag indicating content is custom. Expanded content Body wrapper will be removed from children. This allows multiple bodies to be rendered as content. */
|
|
23
23
|
isCustomContent?: React.ReactNode;
|
|
24
|
+
/** Props passed to the AccordionExpandableContentBody **/
|
|
25
|
+
contentBodyProps?: AccordionExpandableContentBodyProps;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
export const AccordionContent: React.FunctionComponent<AccordionContentProps> = ({
|
|
@@ -32,6 +34,7 @@ export const AccordionContent: React.FunctionComponent<AccordionContentProps> =
|
|
|
32
34
|
'aria-label': ariaLabel = '',
|
|
33
35
|
'aria-labelledby': ariaLabelledby,
|
|
34
36
|
component,
|
|
37
|
+
contentBodyProps,
|
|
35
38
|
...props
|
|
36
39
|
}: AccordionContentProps) => {
|
|
37
40
|
const [hasScrollbar, setHasScrollbar] = React.useState(false);
|
|
@@ -64,7 +67,11 @@ export const AccordionContent: React.FunctionComponent<AccordionContentProps> =
|
|
|
64
67
|
{...(hasScrollbar && Container === 'div' && { role: 'region' })}
|
|
65
68
|
{...props}
|
|
66
69
|
>
|
|
67
|
-
{isCustomContent ?
|
|
70
|
+
{isCustomContent ? (
|
|
71
|
+
children
|
|
72
|
+
) : (
|
|
73
|
+
<AccordionExpandableContentBody {...contentBodyProps}>{children}</AccordionExpandableContentBody>
|
|
74
|
+
)}
|
|
68
75
|
</Container>
|
|
69
76
|
);
|
|
70
77
|
}}
|
|
@@ -2,12 +2,17 @@ import * as React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Accordion/accordion';
|
|
4
4
|
|
|
5
|
-
export interface AccordionExpandableContentBodyProps {
|
|
5
|
+
export interface AccordionExpandableContentBodyProps extends React.HTMLProps<HTMLDivElement> {
|
|
6
6
|
/** Content rendered inside the accordion content body */
|
|
7
7
|
children?: React.ReactNode;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export const AccordionExpandableContentBody: React.FunctionComponent<AccordionExpandableContentBodyProps> = ({
|
|
11
|
-
children = null
|
|
12
|
-
|
|
11
|
+
children = null,
|
|
12
|
+
...props
|
|
13
|
+
}: AccordionExpandableContentBodyProps) => (
|
|
14
|
+
<div className={css(styles.accordionExpandableContentBody)} {...props}>
|
|
15
|
+
{children}
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
13
18
|
AccordionExpandableContentBody.displayName = 'AccordionExpandableContentBody';
|
|
@@ -3,7 +3,7 @@ import { css } from '@patternfly/react-styles';
|
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/Accordion/accordion';
|
|
4
4
|
import { AccordionItemContext } from './AccordionContext';
|
|
5
5
|
|
|
6
|
-
export interface AccordionItemProps {
|
|
6
|
+
export interface AccordionItemProps extends React.HTMLProps<HTMLDivElement> {
|
|
7
7
|
/** Content rendered inside the accordion item. */
|
|
8
8
|
children?: React.ReactNode;
|
|
9
9
|
/** Additional classes added to the accordion item. */
|
|
@@ -15,14 +15,17 @@ export interface AccordionItemProps {
|
|
|
15
15
|
export const AccordionItem: React.FunctionComponent<AccordionItemProps> = ({
|
|
16
16
|
children = null,
|
|
17
17
|
className,
|
|
18
|
-
isExpanded: isExpandedProp = false
|
|
18
|
+
isExpanded: isExpandedProp = false,
|
|
19
|
+
...props
|
|
19
20
|
}: AccordionItemProps) => (
|
|
20
21
|
<AccordionItemContext.Provider
|
|
21
22
|
value={{
|
|
22
23
|
isExpanded: isExpandedProp
|
|
23
24
|
}}
|
|
24
25
|
>
|
|
25
|
-
<div className={css(styles.accordionItem, isExpandedProp && styles.modifiers.expanded, className)}
|
|
26
|
+
<div className={css(styles.accordionItem, isExpandedProp && styles.modifiers.expanded, className)} {...props}>
|
|
27
|
+
{children}
|
|
28
|
+
</div>
|
|
26
29
|
</AccordionItemContext.Provider>
|
|
27
30
|
);
|
|
28
31
|
AccordionItem.displayName = 'AccordionItem';
|
|
@@ -28,6 +28,12 @@ test(`Renders with additional classes when className is passed`, () => {
|
|
|
28
28
|
expect(screen.getByText('Test')).toHaveClass('custom-class');
|
|
29
29
|
});
|
|
30
30
|
|
|
31
|
+
test(`Spreads props if others are passed`, () => {
|
|
32
|
+
render(<AccordionItem data-testId="testId">Test</AccordionItem>);
|
|
33
|
+
|
|
34
|
+
expect(screen.getByTestId('testId')).toBeInTheDocument();
|
|
35
|
+
});
|
|
36
|
+
|
|
31
37
|
test('Matches the snapshot', () => {
|
|
32
38
|
const { asFragment } = render(<AccordionItem>Test</AccordionItem>);
|
|
33
39
|
expect(asFragment()).toMatchSnapshot();
|
|
@@ -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);
|
|
@@ -336,6 +339,7 @@ export const Pagination: React.FunctionComponent<PaginationProps> = ({
|
|
|
336
339
|
toggleTemplate={toggleTemplate}
|
|
337
340
|
isDisabled={isDisabled}
|
|
338
341
|
containerRef={containerRef}
|
|
342
|
+
appendTo={menuAppendTo}
|
|
339
343
|
/>
|
|
340
344
|
)}
|
|
341
345
|
<Navigation
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
|
+
import styles from '@patternfly/react-styles/css/components/Pagination/pagination';
|
|
3
4
|
import { Menu, MenuContent, MenuList, MenuItem } from '../Menu';
|
|
4
5
|
import { MenuToggle } from '../MenuToggle';
|
|
5
6
|
import { Popper } from '../../helpers/Popper/Popper';
|
|
@@ -52,7 +53,10 @@ export interface PaginationOptionsMenuProps extends React.HTMLProps<HTMLDivEleme
|
|
|
52
53
|
onPerPageSelect?: OnPerPageSelect;
|
|
53
54
|
/** Label for the English word "of". */
|
|
54
55
|
ofWord?: string;
|
|
56
|
+
/** React ref for the container to append the options menu to. This is a static ref provided by the main pagination component. */
|
|
55
57
|
containerRef?: React.RefObject<HTMLDivElement>;
|
|
58
|
+
/** @beta The container to append the pagination options menu to. Overrides the containerRef prop. */
|
|
59
|
+
appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMenuProps> = ({
|
|
@@ -76,7 +80,8 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
76
80
|
itemsTitle = '',
|
|
77
81
|
toggleTemplate,
|
|
78
82
|
onPerPageSelect = () => null as any,
|
|
79
|
-
containerRef
|
|
83
|
+
containerRef,
|
|
84
|
+
appendTo
|
|
80
85
|
}: PaginationOptionsMenuProps) => {
|
|
81
86
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
82
87
|
const toggleRef = React.useRef<HTMLButtonElement>(null);
|
|
@@ -166,38 +171,40 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
166
171
|
));
|
|
167
172
|
|
|
168
173
|
const toggle = (
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
174
|
+
<div className={css(styles.paginationPageMenu)}>
|
|
175
|
+
<MenuToggle
|
|
176
|
+
ref={toggleRef}
|
|
177
|
+
onClick={onToggle}
|
|
178
|
+
{...(optionsToggleAriaLabel && { 'aria-label': optionsToggleAriaLabel })}
|
|
179
|
+
isDisabled={isDisabled || (itemCount && itemCount <= 0)}
|
|
180
|
+
isExpanded={isOpen}
|
|
181
|
+
{...(widgetId && { id: `${widgetId}-toggle` })}
|
|
182
|
+
variant="plainText"
|
|
183
|
+
aria-haspopup="listbox"
|
|
184
|
+
>
|
|
185
|
+
{toggleTemplate &&
|
|
186
|
+
typeof toggleTemplate === 'string' &&
|
|
187
|
+
fillTemplate(toggleTemplate, { firstIndex, lastIndex, ofWord, itemCount, itemsTitle })}
|
|
188
|
+
{toggleTemplate &&
|
|
189
|
+
typeof toggleTemplate !== 'string' &&
|
|
190
|
+
(toggleTemplate as (props: PaginationToggleTemplateProps) => React.ReactElement)({
|
|
191
|
+
firstIndex,
|
|
192
|
+
lastIndex,
|
|
193
|
+
ofWord,
|
|
194
|
+
itemCount,
|
|
195
|
+
itemsTitle
|
|
196
|
+
})}
|
|
197
|
+
{!toggleTemplate && (
|
|
198
|
+
<ToggleTemplate
|
|
199
|
+
firstIndex={firstIndex}
|
|
200
|
+
lastIndex={lastIndex}
|
|
201
|
+
ofWord={ofWord}
|
|
202
|
+
itemCount={itemCount}
|
|
203
|
+
itemsTitle={itemsTitle}
|
|
204
|
+
/>
|
|
205
|
+
)}
|
|
206
|
+
</MenuToggle>
|
|
207
|
+
</div>
|
|
201
208
|
);
|
|
202
209
|
|
|
203
210
|
const menu = (
|
|
@@ -208,6 +215,7 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
208
215
|
</Menu>
|
|
209
216
|
);
|
|
210
217
|
|
|
218
|
+
const containerToAppendTo = appendTo ?? (containerRef?.current || undefined);
|
|
211
219
|
return (
|
|
212
220
|
<Popper
|
|
213
221
|
trigger={toggle}
|
|
@@ -216,7 +224,7 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
216
224
|
popperRef={menuRef}
|
|
217
225
|
isVisible={isOpen}
|
|
218
226
|
direction={dropDirection}
|
|
219
|
-
appendTo={
|
|
227
|
+
appendTo={containerToAppendTo}
|
|
220
228
|
minWidth={minWidth !== undefined ? minWidth : 'revert'}
|
|
221
229
|
/>
|
|
222
230
|
);
|
|
@@ -2,49 +2,53 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`PaginationOptionsMenu should match snapshot (auto-generated) 1`] = `
|
|
4
4
|
<DocumentFragment>
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
aria-haspopup="listbox"
|
|
8
|
-
class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
|
|
9
|
-
data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
|
|
10
|
-
data-ouia-component-type="PF6/MenuToggle"
|
|
11
|
-
data-ouia-safe="true"
|
|
12
|
-
id="''-toggle"
|
|
13
|
-
type="button"
|
|
5
|
+
<div
|
|
6
|
+
class="pf-v6-c-pagination__page-menu"
|
|
14
7
|
>
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</b>
|
|
25
|
-
'items'
|
|
26
|
-
</span>
|
|
27
|
-
<span
|
|
28
|
-
class="pf-v6-c-menu-toggle__controls"
|
|
8
|
+
<button
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
aria-haspopup="listbox"
|
|
11
|
+
class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
|
|
12
|
+
data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
|
|
13
|
+
data-ouia-component-type="PF6/MenuToggle"
|
|
14
|
+
data-ouia-safe="true"
|
|
15
|
+
id="''-toggle"
|
|
16
|
+
type="button"
|
|
29
17
|
>
|
|
30
18
|
<span
|
|
31
|
-
class="pf-v6-c-menu-
|
|
19
|
+
class="pf-v6-c-menu-toggle__text"
|
|
20
|
+
>
|
|
21
|
+
<b>
|
|
22
|
+
0 - 0
|
|
23
|
+
</b>
|
|
24
|
+
Custom toggle template of
|
|
25
|
+
<b>
|
|
26
|
+
0
|
|
27
|
+
</b>
|
|
28
|
+
'items'
|
|
29
|
+
</span>
|
|
30
|
+
<span
|
|
31
|
+
class="pf-v6-c-menu-toggle__controls"
|
|
32
32
|
>
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
class="pf-v6-svg"
|
|
36
|
-
fill="currentColor"
|
|
37
|
-
height="1em"
|
|
38
|
-
role="img"
|
|
39
|
-
viewBox="0 0 320 512"
|
|
40
|
-
width="1em"
|
|
33
|
+
<span
|
|
34
|
+
class="pf-v6-c-menu-toggle__toggle-icon"
|
|
41
35
|
>
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
<svg
|
|
37
|
+
aria-hidden="true"
|
|
38
|
+
class="pf-v6-svg"
|
|
39
|
+
fill="currentColor"
|
|
40
|
+
height="1em"
|
|
41
|
+
role="img"
|
|
42
|
+
viewBox="0 0 320 512"
|
|
43
|
+
width="1em"
|
|
44
|
+
>
|
|
45
|
+
<path
|
|
46
|
+
d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"
|
|
47
|
+
/>
|
|
48
|
+
</svg>
|
|
49
|
+
</span>
|
|
46
50
|
</span>
|
|
47
|
-
</
|
|
48
|
-
</
|
|
51
|
+
</button>
|
|
52
|
+
</div>
|
|
49
53
|
</DocumentFragment>
|
|
50
54
|
`;
|