@patternfly/react-core 5.3.3 → 5.4.0-prerelease.10
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 +52 -6
- package/CONTRIBUTING.md +0 -2
- package/README.md +1 -1
- 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/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +10 -5
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts +4 -4
- package/dist/esm/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/esm/components/Label/Label.js +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/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/esm/components/NumberInput/NumberInput.js +4 -3
- package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
- package/dist/esm/components/Page/Page.d.ts +6 -0
- package/dist/esm/components/Page/Page.d.ts.map +1 -1
- package/dist/esm/components/Page/Page.js +3 -3
- package/dist/esm/components/Page/Page.js.map +1 -1
- package/dist/esm/components/Pagination/Navigation.d.ts +3 -3
- package/dist/esm/components/Pagination/Navigation.d.ts.map +1 -1
- package/dist/esm/components/Pagination/Navigation.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.d.ts +1 -1
- package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js +2 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts +1 -0
- package/dist/esm/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js +2 -4
- package/dist/esm/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +2 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +3 -3
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts +4 -0
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +17 -0
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/TreeView/TreeView.d.ts +13 -0
- package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeView.js +2 -2
- package/dist/esm/components/TreeView/TreeView.js.map +1 -1
- package/dist/esm/components/TreeView/TreeViewList.d.ts +13 -0
- package/dist/esm/components/TreeView/TreeViewList.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeViewList.js +2 -2
- package/dist/esm/components/TreeView/TreeViewList.js.map +1 -1
- package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/esm/components/TreeView/TreeViewListItem.js +8 -8
- package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
- package/dist/esm/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/esm/components/Truncate/Truncate.js +54 -12
- package/dist/esm/components/Truncate/Truncate.js.map +1 -1
- package/dist/esm/components/Wizard/Wizard.d.ts +5 -1
- package/dist/esm/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/esm/components/Wizard/Wizard.js +9 -2
- package/dist/esm/components/Wizard/Wizard.js.map +1 -1
- package/dist/esm/components/Wizard/WizardBody.js +8 -9
- package/dist/esm/components/Wizard/WizardBody.js.map +1 -1
- package/dist/esm/components/Wizard/WizardContext.d.ts +8 -0
- package/dist/esm/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/esm/components/Wizard/WizardContext.js +4 -2
- package/dist/esm/components/Wizard/WizardContext.js.map +1 -1
- package/dist/esm/components/Wizard/WizardNavItem.d.ts.map +1 -1
- package/dist/esm/components/Wizard/WizardNavItem.js +10 -17
- package/dist/esm/components/Wizard/WizardNavItem.js.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.js +10 -5
- package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts +4 -4
- package/dist/js/components/Drawer/DrawerPanelContent.d.ts.map +1 -1
- package/dist/js/components/Label/Label.js +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/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/js/components/NumberInput/NumberInput.js +4 -3
- package/dist/js/components/NumberInput/NumberInput.js.map +1 -1
- package/dist/js/components/Page/Page.d.ts +6 -0
- package/dist/js/components/Page/Page.d.ts.map +1 -1
- package/dist/js/components/Page/Page.js +3 -3
- package/dist/js/components/Page/Page.js.map +1 -1
- package/dist/js/components/Pagination/Navigation.d.ts +3 -3
- package/dist/js/components/Pagination/Navigation.d.ts.map +1 -1
- package/dist/js/components/Pagination/Navigation.js.map +1 -1
- package/dist/js/components/Pagination/Pagination.d.ts +1 -1
- package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/js/components/Pagination/Pagination.js +2 -1
- package/dist/js/components/Pagination/Pagination.js.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts +1 -0
- package/dist/js/components/Pagination/PaginationOptionsMenu.d.ts.map +1 -1
- package/dist/js/components/Pagination/PaginationOptionsMenu.js +2 -4
- package/dist/js/components/Pagination/PaginationOptionsMenu.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +2 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js +3 -3
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.d.ts +4 -0
- package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tabs.js +17 -0
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/components/TreeView/TreeView.d.ts +13 -0
- package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeView.js +2 -2
- package/dist/js/components/TreeView/TreeView.js.map +1 -1
- package/dist/js/components/TreeView/TreeViewList.d.ts +13 -0
- package/dist/js/components/TreeView/TreeViewList.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeViewList.js +2 -2
- package/dist/js/components/TreeView/TreeViewList.js.map +1 -1
- package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
- package/dist/js/components/TreeView/TreeViewListItem.js +8 -8
- package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
- package/dist/js/components/Truncate/Truncate.d.ts.map +1 -1
- package/dist/js/components/Truncate/Truncate.js +54 -12
- package/dist/js/components/Truncate/Truncate.js.map +1 -1
- package/dist/js/components/Wizard/Wizard.d.ts +5 -1
- package/dist/js/components/Wizard/Wizard.d.ts.map +1 -1
- package/dist/js/components/Wizard/Wizard.js +9 -2
- package/dist/js/components/Wizard/Wizard.js.map +1 -1
- package/dist/js/components/Wizard/WizardBody.js +8 -9
- package/dist/js/components/Wizard/WizardBody.js.map +1 -1
- package/dist/js/components/Wizard/WizardContext.d.ts +8 -0
- package/dist/js/components/Wizard/WizardContext.d.ts.map +1 -1
- package/dist/js/components/Wizard/WizardContext.js +4 -2
- package/dist/js/components/Wizard/WizardContext.js.map +1 -1
- package/dist/js/components/Wizard/WizardNavItem.d.ts.map +1 -1
- package/dist/js/components/Wizard/WizardNavItem.js +10 -17
- package/dist/js/components/Wizard/WizardNavItem.js.map +1 -1
- package/dist/umd/react-core.min.js +9 -9
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +7 -8
- package/src/components/Checkbox/examples/Checkbox.md +14 -0
- package/src/components/Checkbox/examples/CheckboxLabelWraps.tsx +11 -0
- package/src/components/Checkbox/examples/CheckboxReversed.tsx +6 -0
- package/src/components/CodeBlock/examples/CodeBlock.md +6 -0
- package/src/components/CodeBlock/examples/CodeBlockBasic.tsx +1 -1
- package/src/components/CodeBlock/examples/CodeBlockExpandable.tsx +3 -3
- package/src/components/DatePicker/DatePicker.tsx +11 -5
- package/src/components/Drawer/DrawerPanelContent.tsx +4 -4
- package/src/components/Label/Label.tsx +1 -1
- package/src/components/Label/__tests__/Label.test.tsx +88 -1
- package/src/components/MenuToggle/MenuToggle.tsx +1 -0
- package/src/components/NumberInput/NumberInput.tsx +5 -3
- package/src/components/Page/Page.tsx +14 -1
- package/src/components/Pagination/Navigation.tsx +12 -12
- package/src/components/Pagination/Pagination.tsx +3 -1
- package/src/components/Pagination/PaginationOptionsMenu.tsx +13 -14
- package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +36 -38
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +714 -754
- package/src/components/Radio/examples/Radio.md +11 -0
- package/src/components/Select/Select.tsx +5 -2
- package/src/components/Select/examples/SelectMultiTypeahead.tsx +111 -66
- package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +103 -60
- package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +125 -79
- package/src/components/Select/examples/SelectTypeahead.tsx +113 -69
- package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +115 -75
- package/src/components/Tabs/Tabs.tsx +21 -0
- package/src/components/ToggleGroup/examples/ToggleGroup.md +33 -8
- package/src/components/TreeView/TreeView.tsx +23 -1
- package/src/components/TreeView/TreeViewList.tsx +24 -1
- package/src/components/TreeView/TreeViewListItem.tsx +13 -7
- package/src/components/TreeView/__tests__/__snapshots__/TreeViewList.test.tsx.snap +2 -0
- package/src/components/TreeView/__tests__/__snapshots__/TreeViewListItem.test.tsx.snap +2 -0
- package/src/components/TreeView/examples/TreeView.md +12 -2
- package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +86 -0
- package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +9 -1
- package/src/components/TreeView/examples/{TreeViewDefault.tsx → TreeViewSingleSelectable.tsx} +8 -2
- package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +8 -1
- package/src/components/TreeView/examples/TreeViewWithBadges.tsx +9 -1
- package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +1 -1
- package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +9 -1
- package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
- package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +8 -1
- package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
- package/src/components/Truncate/Truncate.tsx +73 -7
- package/src/components/Truncate/__tests__/Truncate.test.tsx +6 -0
- package/src/components/Wizard/Wizard.tsx +15 -0
- package/src/components/Wizard/WizardBody.tsx +9 -9
- package/src/components/Wizard/WizardContext.tsx +14 -2
- package/src/components/Wizard/WizardNavItem.tsx +7 -21
- package/src/components/Wizard/__tests__/Wizard.test.tsx +4 -4
- package/src/components/Wizard/examples/Wizard.md +29 -1
- package/src/components/Wizard/examples/WizardFocusOnNextBack.tsx +16 -0
- package/src/components/Wizard/examples/WizardWithCustomFooter.tsx +3 -3
- package/src/deprecated/components/ApplicationLauncher/examples/ApplicationLauncher.md +1 -0
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.
|
|
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.9","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.
|
|
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.9","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.
|
|
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.9","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.4.0-prerelease.10",
|
|
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",
|
|
@@ -40,28 +40,27 @@
|
|
|
40
40
|
"scripts": {
|
|
41
41
|
"build:umd": "rollup -c --environment IS_PRODUCTION",
|
|
42
42
|
"build:single:packages": "node ../../scripts/build-single-packages.js --config single-packages.config.json",
|
|
43
|
-
"clean": "rimraf dist components layouts helpers next deprecated
|
|
43
|
+
"clean": "rimraf dist components layouts helpers next deprecated",
|
|
44
44
|
"generate": "node scripts/copyStyles.js",
|
|
45
45
|
"subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json",
|
|
46
46
|
"clean:exports": "node scripts/cleanDistExports.js"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@patternfly/react-icons": "^5.3
|
|
50
|
-
"@patternfly/react-styles": "^5.3
|
|
51
|
-
"@patternfly/react-tokens": "^5.3
|
|
49
|
+
"@patternfly/react-icons": "^5.4.0-prerelease.3",
|
|
50
|
+
"@patternfly/react-styles": "^5.4.0-prerelease.3",
|
|
51
|
+
"@patternfly/react-tokens": "^5.4.0-prerelease.3",
|
|
52
52
|
"focus-trap": "7.5.2",
|
|
53
53
|
"react-dropzone": "^14.2.3",
|
|
54
54
|
"tslib": "^2.5.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@patternfly/patternfly": "5.
|
|
57
|
+
"@patternfly/patternfly": "5.4.0-prerelease.2",
|
|
58
58
|
"@rollup/plugin-commonjs": "^25.0.0",
|
|
59
59
|
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
60
60
|
"@rollup/plugin-replace": "^5.0.2",
|
|
61
61
|
"css": "^2.2.3",
|
|
62
62
|
"fs-extra": "^11.1.1",
|
|
63
63
|
"glob": "^7.1.2",
|
|
64
|
-
"rimraf": "^3.0.2",
|
|
65
64
|
"rollup": "^3.21.5",
|
|
66
65
|
"rollup-plugin-scss": "^4.0.0",
|
|
67
66
|
"rollup-plugin-svg": "2.0.0",
|
|
@@ -72,5 +71,5 @@
|
|
|
72
71
|
"react": "^17 || ^18",
|
|
73
72
|
"react-dom": "^17 || ^18"
|
|
74
73
|
},
|
|
75
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "63b697da491be753f6b0e24bf7814ad691828cb4"
|
|
76
75
|
}
|
|
@@ -20,6 +20,20 @@ propComponents: ['Checkbox']
|
|
|
20
20
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
### Reversed
|
|
24
|
+
|
|
25
|
+
```ts file="./CheckboxReversed.tsx"
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Label wraps
|
|
30
|
+
|
|
31
|
+
You can expand the clickable area of a checkbox so that it spans wider than the checkbox label by adding the `isLabelWrapped` property. This allows users to select a checkbox by clicking the checkbox itself, the label, or the area between the checkbox and the label.
|
|
32
|
+
|
|
33
|
+
```ts file="./CheckboxLabelWraps.tsx"
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
|
|
23
37
|
### Disabled
|
|
24
38
|
|
|
25
39
|
```ts file='./CheckboxDisabled.tsx'
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Checkbox } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
export const CheckboxLabelWraps: React.FunctionComponent = () => (
|
|
5
|
+
<Checkbox
|
|
6
|
+
isLabelWrapped
|
|
7
|
+
label="Label wraps input example"
|
|
8
|
+
id="checkbox-label-wraps-input"
|
|
9
|
+
name="checkbox-label-wraps-input"
|
|
10
|
+
/>
|
|
11
|
+
);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Checkbox } from '@patternfly/react-core';
|
|
3
|
+
|
|
4
|
+
export const CheckboxReversed: React.FunctionComponent = () => (
|
|
5
|
+
<Checkbox isLabelBeforeButton label="Reversed checkbox example" id="checkbox-reversed" name="checkbox-reversed" />
|
|
6
|
+
);
|
|
@@ -8,14 +8,20 @@ propComponents: ['CodeBlock', 'CodeBlockAction', 'CodeBlockCode']
|
|
|
8
8
|
import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
|
|
9
9
|
import PlayIcon from '@patternfly/react-icons/dist/esm/icons/play-icon';
|
|
10
10
|
|
|
11
|
+
**Important note:** to format code exactly as it is, you should use String.raw\`your code here\`.
|
|
12
|
+
|
|
13
|
+
Using **String.raw\`\`** will keep all the special characters like `\n` or `\t`.
|
|
14
|
+
|
|
11
15
|
## Examples
|
|
12
16
|
|
|
13
17
|
### Basic
|
|
14
18
|
|
|
15
19
|
```ts file="./CodeBlockBasic.tsx"
|
|
20
|
+
|
|
16
21
|
```
|
|
17
22
|
|
|
18
23
|
### Expandable
|
|
19
24
|
|
|
20
25
|
```ts file="./CodeBlockExpandable.tsx"
|
|
26
|
+
|
|
21
27
|
```
|
|
@@ -14,7 +14,7 @@ export const BasicCodeBlock: React.FunctionComponent = () => {
|
|
|
14
14
|
setCopied(true);
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
const code = `apiVersion: helm.openshift.io/v1beta1/
|
|
17
|
+
const code = String.raw`apiVersion: helm.openshift.io/v1beta1/
|
|
18
18
|
kind: HelmChartRepository
|
|
19
19
|
metadata:
|
|
20
20
|
name: azure-sample-repo0oooo00ooo
|
|
@@ -27,7 +27,7 @@ export const ExpandableCodeBlock: React.FunctionComponent = () => {
|
|
|
27
27
|
setCopied(true);
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
const copyBlock = `apiVersion: helm.openshift.io/v1beta1/
|
|
30
|
+
const copyBlock = String.raw`apiVersion: helm.openshift.io/v1beta1/
|
|
31
31
|
kind: HelmChartRepository
|
|
32
32
|
metadata:
|
|
33
33
|
name: azure-sample-repo
|
|
@@ -35,11 +35,11 @@ spec:
|
|
|
35
35
|
connectionConfig:
|
|
36
36
|
url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs`;
|
|
37
37
|
|
|
38
|
-
const code = `apiVersion: helm.openshift.io/v1beta1/
|
|
38
|
+
const code = String.raw`apiVersion: helm.openshift.io/v1beta1/
|
|
39
39
|
kind: HelmChartRepository
|
|
40
40
|
metadata:
|
|
41
41
|
name: azure-sample-repo`;
|
|
42
|
-
const expandedCode = `spec:
|
|
42
|
+
const expandedCode = String.raw`spec:
|
|
43
43
|
connectionConfig:
|
|
44
44
|
url: https://raw.githubusercontent.com/Azure-Samples/helm-charts/master/docs`;
|
|
45
45
|
|
|
@@ -144,18 +144,24 @@ const DatePickerBase = (
|
|
|
144
144
|
setValueDate(dateParse(valueProp));
|
|
145
145
|
}, [valueProp]);
|
|
146
146
|
|
|
147
|
+
React.useEffect(() => {
|
|
148
|
+
if (isValidDate(valueDate)) {
|
|
149
|
+
applyValidators(valueDate);
|
|
150
|
+
}
|
|
151
|
+
}, [validators]);
|
|
152
|
+
|
|
147
153
|
React.useEffect(() => {
|
|
148
154
|
setPristine(!value);
|
|
149
155
|
const newValueDate = dateParse(value);
|
|
150
156
|
if (errorText && isValidDate(newValueDate)) {
|
|
151
|
-
|
|
157
|
+
applyValidators(newValueDate);
|
|
152
158
|
}
|
|
153
159
|
if (value === '' && !pristine && !textInputFocused) {
|
|
154
160
|
dateIsRequired ? setErrorText(emptyDateText) : setErrorText('');
|
|
155
161
|
}
|
|
156
162
|
}, [value]);
|
|
157
163
|
|
|
158
|
-
const
|
|
164
|
+
const applyValidators = (date: Date) => {
|
|
159
165
|
setErrorText(validators.map((validator) => validator(date)).join('\n') || '');
|
|
160
166
|
};
|
|
161
167
|
|
|
@@ -179,7 +185,7 @@ const DatePickerBase = (
|
|
|
179
185
|
onBlur(event, value, onBlurDateArg);
|
|
180
186
|
|
|
181
187
|
if (dateIsValid) {
|
|
182
|
-
|
|
188
|
+
applyValidators(newValueDate);
|
|
183
189
|
}
|
|
184
190
|
|
|
185
191
|
if (!dateIsValid && !pristine) {
|
|
@@ -195,7 +201,7 @@ const DatePickerBase = (
|
|
|
195
201
|
const newValue = dateFormat(newValueDate);
|
|
196
202
|
setValue(newValue);
|
|
197
203
|
setValueDate(newValueDate);
|
|
198
|
-
|
|
204
|
+
applyValidators(newValueDate);
|
|
199
205
|
setPopoverOpen(false);
|
|
200
206
|
onChange(null, newValue, new Date(newValueDate));
|
|
201
207
|
};
|
|
@@ -203,7 +209,7 @@ const DatePickerBase = (
|
|
|
203
209
|
const onKeyPress = (ev: React.KeyboardEvent<HTMLInputElement>) => {
|
|
204
210
|
if (ev.key === 'Enter' && value) {
|
|
205
211
|
if (isValidDate(valueDate)) {
|
|
206
|
-
|
|
212
|
+
applyValidators(valueDate);
|
|
207
213
|
} else {
|
|
208
214
|
setErrorText(invalidFormatText);
|
|
209
215
|
}
|
|
@@ -37,13 +37,13 @@ export interface DrawerPanelContentProps extends Omit<React.HTMLProps<HTMLDivEle
|
|
|
37
37
|
isResizable?: boolean;
|
|
38
38
|
/** Callback for resize end. */
|
|
39
39
|
onResize?: (event: MouseEvent | TouchEvent | React.KeyboardEvent, width: number, id: string) => void;
|
|
40
|
-
/** The minimum size of a drawer
|
|
40
|
+
/** The minimum size of a drawer. */
|
|
41
41
|
minSize?: string;
|
|
42
|
-
/** The starting size of a
|
|
42
|
+
/** The starting size of a drawer. */
|
|
43
43
|
defaultSize?: string;
|
|
44
|
-
/** The maximum size of a drawer
|
|
44
|
+
/** The maximum size of a drawer. */
|
|
45
45
|
maxSize?: string;
|
|
46
|
-
/** The increment amount for keyboard drawer resizing
|
|
46
|
+
/** The increment amount for keyboard drawer resizing. */
|
|
47
47
|
increment?: number;
|
|
48
48
|
/** Aria label for the resizable drawer splitter. */
|
|
49
49
|
resizeAriaLabel?: string;
|
|
@@ -284,7 +284,7 @@ export const Label: React.FunctionComponent<LabelProps> = ({
|
|
|
284
284
|
...editableProps
|
|
285
285
|
}),
|
|
286
286
|
...(isClickableDisabled && isButton && { disabled: true }),
|
|
287
|
-
...(isClickableDisabled && href && {
|
|
287
|
+
...(isClickableDisabled && href && { tabIndex: -1, 'aria-disabled': true })
|
|
288
288
|
};
|
|
289
289
|
|
|
290
290
|
let labelComponentChild = (
|
|
@@ -142,6 +142,93 @@ describe('Label', () => {
|
|
|
142
142
|
|
|
143
143
|
await user.click(label);
|
|
144
144
|
|
|
145
|
-
expect(mockCallback).
|
|
145
|
+
expect(mockCallback).toHaveBeenCalledTimes(1);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
test('disabled clickable label does not call passed callback on click', async () => {
|
|
149
|
+
const mockCallback = jest.fn();
|
|
150
|
+
const user = userEvent.setup();
|
|
151
|
+
|
|
152
|
+
render(
|
|
153
|
+
<Label isDisabled onClick={mockCallback}>
|
|
154
|
+
Click me
|
|
155
|
+
</Label>
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
const label = screen.getByText('Click me');
|
|
159
|
+
|
|
160
|
+
await user.click(label);
|
|
161
|
+
|
|
162
|
+
expect(mockCallback).not.toHaveBeenCalled();
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
test('disabled clickable label is a disabled button', async () => {
|
|
166
|
+
const mockCallback = jest.fn();
|
|
167
|
+
|
|
168
|
+
render(
|
|
169
|
+
<Label isDisabled onClick={mockCallback}>
|
|
170
|
+
Click me
|
|
171
|
+
</Label>
|
|
172
|
+
);
|
|
173
|
+
|
|
174
|
+
const labelButton = screen.getByRole('button');
|
|
175
|
+
|
|
176
|
+
expect(labelButton).toHaveAttribute('disabled');
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
test('link label is an anchor', () => {
|
|
180
|
+
const href = '#example';
|
|
181
|
+
|
|
182
|
+
render(<Label href={href}>Click me</Label>);
|
|
183
|
+
|
|
184
|
+
const anchor = screen.getByRole('link', { name: 'Click me' });
|
|
185
|
+
|
|
186
|
+
expect(anchor).toBeInTheDocument();
|
|
187
|
+
expect(anchor).toHaveAttribute('href', href);
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
test('disabled link label is an anchor with aria-disabled attribute', () => {
|
|
191
|
+
const href = '#example';
|
|
192
|
+
|
|
193
|
+
render(
|
|
194
|
+
<Label isDisabled href={href}>
|
|
195
|
+
Click me
|
|
196
|
+
</Label>
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
const anchor = screen.getByRole('link', { name: 'Click me' });
|
|
200
|
+
|
|
201
|
+
expect(anchor).toBeInTheDocument();
|
|
202
|
+
expect(anchor).toHaveAttribute('href', href);
|
|
203
|
+
expect(anchor).toHaveAttribute('tabIndex', '-1');
|
|
204
|
+
expect(anchor).toHaveAttribute('aria-disabled', 'true');
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
test('disabled removable clickable label has a disabled close button', async () => {
|
|
208
|
+
const mockCallback = jest.fn();
|
|
209
|
+
|
|
210
|
+
render(
|
|
211
|
+
<Label isDisabled onClick={mockCallback} onClose={mockCallback}>
|
|
212
|
+
Click me
|
|
213
|
+
</Label>
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
const closeButton = screen.getByLabelText('Close Click me');
|
|
217
|
+
|
|
218
|
+
expect(closeButton).toBeDisabled();
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
test('disabled removable link label has a disabled close button', async () => {
|
|
222
|
+
const mockCallback = jest.fn();
|
|
223
|
+
|
|
224
|
+
render(
|
|
225
|
+
<Label isDisabled href="#" onClose={mockCallback}>
|
|
226
|
+
Click me
|
|
227
|
+
</Label>
|
|
228
|
+
);
|
|
229
|
+
|
|
230
|
+
const closeButton = screen.getByLabelText('Close Click me');
|
|
231
|
+
|
|
232
|
+
expect(closeButton).toBeDisabled();
|
|
146
233
|
});
|
|
147
234
|
});
|
|
@@ -67,8 +67,10 @@ const defaultKeyDownHandler = (args: DefaultKeyDownHandlerArgs) => (event: React
|
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
+
const DEFAULT_VALUE = 0;
|
|
71
|
+
|
|
70
72
|
export const NumberInput: React.FunctionComponent<NumberInputProps> = ({
|
|
71
|
-
value =
|
|
73
|
+
value = DEFAULT_VALUE,
|
|
72
74
|
className,
|
|
73
75
|
widthChars,
|
|
74
76
|
isDisabled = false,
|
|
@@ -121,7 +123,7 @@ export const NumberInput: React.FunctionComponent<NumberInputProps> = ({
|
|
|
121
123
|
<Button
|
|
122
124
|
variant="control"
|
|
123
125
|
aria-label={minusBtnAriaLabel}
|
|
124
|
-
isDisabled={isDisabled || value <= min}
|
|
126
|
+
isDisabled={isDisabled || (typeof value === 'number' ? value : DEFAULT_VALUE) <= min}
|
|
125
127
|
onClick={(evt) => onMinus(evt, inputName)}
|
|
126
128
|
{...minusBtnProps}
|
|
127
129
|
>
|
|
@@ -149,7 +151,7 @@ export const NumberInput: React.FunctionComponent<NumberInputProps> = ({
|
|
|
149
151
|
<Button
|
|
150
152
|
variant="control"
|
|
151
153
|
aria-label={plusBtnAriaLabel}
|
|
152
|
-
isDisabled={isDisabled || value >= max}
|
|
154
|
+
isDisabled={isDisabled || (typeof value === 'number' ? value : DEFAULT_VALUE) >= max}
|
|
153
155
|
onClick={(evt) => onPlus(evt, inputName)}
|
|
154
156
|
{...plusBtnProps}
|
|
155
157
|
>
|
|
@@ -27,6 +27,12 @@ export interface PageProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
27
27
|
notificationDrawer?: React.ReactNode;
|
|
28
28
|
/** Flag indicating Notification drawer in expanded */
|
|
29
29
|
isNotificationDrawerExpanded?: boolean;
|
|
30
|
+
/** Sets default drawer size */
|
|
31
|
+
drawerDefaultSize?: string;
|
|
32
|
+
/** Sets the minimum drawer size*/
|
|
33
|
+
drawerMinSize?: string;
|
|
34
|
+
/** Sets the maximum drawer size */
|
|
35
|
+
drawerMaxSize?: string;
|
|
30
36
|
/** Flag indicating if breadcrumb width should be limited */
|
|
31
37
|
isBreadcrumbWidthLimited?: boolean;
|
|
32
38
|
/** Callback when notification drawer panel is finished expanding. */
|
|
@@ -219,6 +225,9 @@ class Page extends React.Component<PageProps, PageState> {
|
|
|
219
225
|
notificationDrawer,
|
|
220
226
|
isNotificationDrawerExpanded,
|
|
221
227
|
onNotificationDrawerExpand,
|
|
228
|
+
drawerDefaultSize,
|
|
229
|
+
drawerMinSize,
|
|
230
|
+
drawerMaxSize,
|
|
222
231
|
isTertiaryNavWidthLimited,
|
|
223
232
|
skipToContent,
|
|
224
233
|
role,
|
|
@@ -310,7 +319,11 @@ class Page extends React.Component<PageProps, PageState> {
|
|
|
310
319
|
</Component>
|
|
311
320
|
);
|
|
312
321
|
|
|
313
|
-
const panelContent =
|
|
322
|
+
const panelContent = (
|
|
323
|
+
<DrawerPanelContent defaultSize={drawerDefaultSize} minSize={drawerMinSize} maxSize={drawerMaxSize}>
|
|
324
|
+
{notificationDrawer}
|
|
325
|
+
</DrawerPanelContent>
|
|
326
|
+
);
|
|
314
327
|
|
|
315
328
|
return (
|
|
316
329
|
<PageContextProvider value={context}>
|
|
@@ -29,7 +29,7 @@ export interface NavigationProps extends React.HTMLProps<HTMLElement> {
|
|
|
29
29
|
/** Label for the English word "of". */
|
|
30
30
|
ofWord?: string;
|
|
31
31
|
/** The number of the current page. */
|
|
32
|
-
page:
|
|
32
|
+
page: number;
|
|
33
33
|
/** The title of a page displayed beside the page number. */
|
|
34
34
|
pagesTitle?: string;
|
|
35
35
|
/** The title of a page displayed beside the page number (the plural form). */
|
|
@@ -55,13 +55,13 @@ export interface NavigationProps extends React.HTMLProps<HTMLElement> {
|
|
|
55
55
|
/** Function called when user clicks to navigate to previous page. */
|
|
56
56
|
onPreviousClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
|
|
57
57
|
/** Function called when user inputs page number. */
|
|
58
|
-
onPageInput?: (event: React.
|
|
58
|
+
onPageInput?: (event: React.KeyboardEvent<HTMLInputElement>, page: number) => void;
|
|
59
59
|
/** Function called when page is changed. */
|
|
60
60
|
onSetPage: OnSetPage;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
export interface NavigationState {
|
|
64
|
-
userInputPage?:
|
|
64
|
+
userInputPage?: number | string;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
@@ -93,7 +93,7 @@ class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
|
93
93
|
onPageInput: () => undefined as any
|
|
94
94
|
};
|
|
95
95
|
|
|
96
|
-
private static parseInteger(input:
|
|
96
|
+
private static parseInteger(input: number | string, lastPage: number): number {
|
|
97
97
|
// eslint-disable-next-line radix
|
|
98
98
|
let inputPage = Number.parseInt(input as string, 10);
|
|
99
99
|
if (!Number.isNaN(inputPage)) {
|
|
@@ -105,14 +105,14 @@ class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
|
105
105
|
|
|
106
106
|
private onChange(event: React.FormEvent<HTMLInputElement>, lastPage: number): void {
|
|
107
107
|
const inputPage = Navigation.parseInteger(event.currentTarget.value, lastPage);
|
|
108
|
-
this.setState({ userInputPage: Number.isNaN(inputPage
|
|
108
|
+
this.setState({ userInputPage: Number.isNaN(inputPage) ? event.currentTarget.value : inputPage });
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
private onKeyDown(
|
|
112
112
|
event: React.KeyboardEvent<HTMLInputElement>,
|
|
113
|
-
page: number
|
|
113
|
+
page: number,
|
|
114
114
|
lastPage: number,
|
|
115
|
-
onPageInput: (event: React.
|
|
115
|
+
onPageInput: (event: React.KeyboardEvent<HTMLInputElement>, page: number) => void
|
|
116
116
|
): void {
|
|
117
117
|
const allowedKeys = [
|
|
118
118
|
'Tab',
|
|
@@ -126,9 +126,9 @@ class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
|
126
126
|
'ArrowDown'
|
|
127
127
|
];
|
|
128
128
|
if (event.key === KeyTypes.Enter) {
|
|
129
|
-
const inputPage = Navigation.parseInteger(this.state.userInputPage, lastPage)
|
|
130
|
-
onPageInput(event, Number.isNaN(inputPage) ?
|
|
131
|
-
this.handleNewPage(event, Number.isNaN(inputPage) ?
|
|
129
|
+
const inputPage = Navigation.parseInteger(this.state.userInputPage, lastPage);
|
|
130
|
+
onPageInput(event, Number.isNaN(inputPage) ? page : inputPage);
|
|
131
|
+
this.handleNewPage(event, Number.isNaN(inputPage) ? page : inputPage);
|
|
132
132
|
} else if (!/^\d*$/.test(event.key) && !allowedKeys.includes(event.key)) {
|
|
133
133
|
event.preventDefault();
|
|
134
134
|
}
|
|
@@ -206,7 +206,7 @@ class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
|
206
206
|
isDisabled={isDisabled || page === firstPage || page === 0}
|
|
207
207
|
data-action="previous"
|
|
208
208
|
onClick={(event) => {
|
|
209
|
-
const newPage =
|
|
209
|
+
const newPage = page - 1 >= 1 ? page - 1 : 1;
|
|
210
210
|
onPreviousClick(event, newPage);
|
|
211
211
|
this.handleNewPage(event, newPage);
|
|
212
212
|
this.setState({ userInputPage: newPage });
|
|
@@ -244,7 +244,7 @@ class Navigation extends React.Component<NavigationProps, NavigationState> {
|
|
|
244
244
|
aria-label={toNextPageAriaLabel}
|
|
245
245
|
data-action="next"
|
|
246
246
|
onClick={(event) => {
|
|
247
|
-
const newPage =
|
|
247
|
+
const newPage = page + 1 <= lastPage ? page + 1 : lastPage;
|
|
248
248
|
onNextClick(event, newPage);
|
|
249
249
|
this.handleNewPage(event, newPage);
|
|
250
250
|
this.setState({ userInputPage: newPage });
|
|
@@ -148,7 +148,7 @@ export interface PaginationProps extends React.HTMLProps<HTMLDivElement>, OUIAPr
|
|
|
148
148
|
/** Function called when user clicks on navigate to next page. */
|
|
149
149
|
onNextClick?: (event: React.SyntheticEvent<HTMLButtonElement>, page: number) => void;
|
|
150
150
|
/** Function called when user inputs page number. */
|
|
151
|
-
onPageInput?: (event: React.
|
|
151
|
+
onPageInput?: (event: React.KeyboardEvent<HTMLInputElement>, page: number) => void;
|
|
152
152
|
/** Function called when user selects number of items per page. */
|
|
153
153
|
onPerPageSelect?: OnPerPageSelect;
|
|
154
154
|
/** Function called when user clicks on navigate to previous page. */
|
|
@@ -232,6 +232,7 @@ export const Pagination: React.FunctionComponent<PaginationProps> = ({
|
|
|
232
232
|
...props
|
|
233
233
|
}: PaginationProps) => {
|
|
234
234
|
const paginationRef = React.useRef<HTMLDivElement>(null);
|
|
235
|
+
const containerRef = React.useRef<HTMLDivElement>(null);
|
|
235
236
|
|
|
236
237
|
const getLastPage = () =>
|
|
237
238
|
// when itemCount is not known let's set lastPage as page+1 as we don't know the total count
|
|
@@ -335,6 +336,7 @@ export const Pagination: React.FunctionComponent<PaginationProps> = ({
|
|
|
335
336
|
widgetId={`${widgetId}-${variant}`}
|
|
336
337
|
toggleTemplate={toggleTemplate}
|
|
337
338
|
isDisabled={isDisabled}
|
|
339
|
+
containerRef={containerRef}
|
|
338
340
|
/>
|
|
339
341
|
)}
|
|
340
342
|
<Navigation
|
|
@@ -52,6 +52,7 @@ export interface PaginationOptionsMenuProps extends React.HTMLProps<HTMLDivEleme
|
|
|
52
52
|
onPerPageSelect?: OnPerPageSelect;
|
|
53
53
|
/** Label for the English word "of". */
|
|
54
54
|
ofWord?: string;
|
|
55
|
+
containerRef?: React.RefObject<HTMLDivElement>;
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMenuProps> = ({
|
|
@@ -74,12 +75,12 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
74
75
|
isLastFullPageShown = false,
|
|
75
76
|
itemsTitle = 'items',
|
|
76
77
|
toggleTemplate,
|
|
77
|
-
onPerPageSelect = () => null as any
|
|
78
|
+
onPerPageSelect = () => null as any,
|
|
79
|
+
containerRef
|
|
78
80
|
}: PaginationOptionsMenuProps) => {
|
|
79
81
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
80
82
|
const toggleRef = React.useRef<HTMLButtonElement>(null);
|
|
81
83
|
const menuRef = React.useRef<HTMLDivElement>(null);
|
|
82
|
-
const containerRef = React.useRef<HTMLDivElement>(null);
|
|
83
84
|
|
|
84
85
|
const onToggle = () => {
|
|
85
86
|
setIsOpen((prevState) => !prevState);
|
|
@@ -208,18 +209,16 @@ export const PaginationOptionsMenu: React.FunctionComponent<PaginationOptionsMen
|
|
|
208
209
|
);
|
|
209
210
|
|
|
210
211
|
return (
|
|
211
|
-
<
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
/>
|
|
222
|
-
</div>
|
|
212
|
+
<Popper
|
|
213
|
+
trigger={toggle}
|
|
214
|
+
triggerRef={toggleRef}
|
|
215
|
+
popper={menu}
|
|
216
|
+
popperRef={menuRef}
|
|
217
|
+
isVisible={isOpen}
|
|
218
|
+
direction={dropDirection}
|
|
219
|
+
appendTo={containerRef?.current || undefined}
|
|
220
|
+
minWidth={minWidth !== undefined ? minWidth : 'revert'}
|
|
221
|
+
/>
|
|
223
222
|
);
|
|
224
223
|
};
|
|
225
224
|
|
|
@@ -2,48 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`PaginationOptionsMenu should match snapshot (auto-generated) 1`] = `
|
|
4
4
|
<DocumentFragment>
|
|
5
|
-
<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
<button
|
|
6
|
+
aria-expanded="false"
|
|
7
|
+
aria-haspopup="listbox"
|
|
8
|
+
class="pf-v5-c-menu-toggle pf-m-plain pf-m-text"
|
|
9
|
+
id="''-toggle"
|
|
10
|
+
type="button"
|
|
11
|
+
>
|
|
12
|
+
<span
|
|
13
|
+
class="pf-v5-c-menu-toggle__text"
|
|
14
|
+
>
|
|
15
|
+
<b>
|
|
16
|
+
0 - 0
|
|
17
|
+
</b>
|
|
18
|
+
Custom toggle template of
|
|
19
|
+
<b>
|
|
20
|
+
0
|
|
21
|
+
</b>
|
|
22
|
+
'items'
|
|
23
|
+
</span>
|
|
24
|
+
<span
|
|
25
|
+
class="pf-v5-c-menu-toggle__controls"
|
|
12
26
|
>
|
|
13
27
|
<span
|
|
14
|
-
class="pf-v5-c-menu-
|
|
15
|
-
>
|
|
16
|
-
<b>
|
|
17
|
-
0 - 0
|
|
18
|
-
</b>
|
|
19
|
-
Custom toggle template of
|
|
20
|
-
<b>
|
|
21
|
-
0
|
|
22
|
-
</b>
|
|
23
|
-
'items'
|
|
24
|
-
</span>
|
|
25
|
-
<span
|
|
26
|
-
class="pf-v5-c-menu-toggle__controls"
|
|
28
|
+
class="pf-v5-c-menu-toggle__toggle-icon"
|
|
27
29
|
>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
+
<svg
|
|
31
|
+
aria-hidden="true"
|
|
32
|
+
class="pf-v5-svg"
|
|
33
|
+
fill="currentColor"
|
|
34
|
+
height="1em"
|
|
35
|
+
role="img"
|
|
36
|
+
viewBox="0 0 320 512"
|
|
37
|
+
width="1em"
|
|
30
38
|
>
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
height="1em"
|
|
36
|
-
role="img"
|
|
37
|
-
viewBox="0 0 320 512"
|
|
38
|
-
width="1em"
|
|
39
|
-
>
|
|
40
|
-
<path
|
|
41
|
-
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"
|
|
42
|
-
/>
|
|
43
|
-
</svg>
|
|
44
|
-
</span>
|
|
39
|
+
<path
|
|
40
|
+
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"
|
|
41
|
+
/>
|
|
42
|
+
</svg>
|
|
45
43
|
</span>
|
|
46
|
-
</
|
|
47
|
-
</
|
|
44
|
+
</span>
|
|
45
|
+
</button>
|
|
48
46
|
</DocumentFragment>
|
|
49
47
|
`;
|