@patternfly/react-core 4.244.1 → 4.245.0
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 +24 -0
- package/dist/esm/components/Alert/Alert.d.ts +4 -0
- package/dist/esm/components/Alert/Alert.d.ts.map +1 -1
- package/dist/esm/components/Alert/Alert.js.map +1 -1
- package/dist/esm/components/Alert/AlertActionCloseButton.js +2 -4
- package/dist/esm/components/Alert/AlertActionCloseButton.js.map +1 -1
- package/dist/esm/components/Alert/AlertToggleExpandButton.js +1 -1
- package/dist/esm/components/Alert/AlertToggleExpandButton.js.map +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +4 -0
- package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/esm/components/Button/Button.d.ts +4 -0
- package/dist/esm/components/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/Card/Card.d.ts +4 -0
- package/dist/esm/components/Card/Card.d.ts.map +1 -1
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Chip/Chip.d.ts +2 -0
- package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
- package/dist/esm/components/Chip/Chip.js.map +1 -1
- package/dist/esm/components/ChipGroup/ChipGroup.d.ts +2 -0
- package/dist/esm/components/ChipGroup/ChipGroup.d.ts.map +1 -1
- package/dist/esm/components/ChipGroup/ChipGroup.js.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts +4 -0
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +4 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownItem.d.ts +4 -0
- package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownSeparator.d.ts +4 -0
- package/dist/esm/components/Dropdown/DropdownSeparator.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownSeparator.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownToggle.d.ts +4 -0
- package/dist/esm/components/Dropdown/DropdownToggle.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownToggle.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownToggleCheckbox.d.ts +4 -0
- package/dist/esm/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownToggleCheckbox.js.map +1 -1
- package/dist/esm/components/Form/Form.d.ts +4 -2
- package/dist/esm/components/Form/Form.d.ts.map +1 -1
- package/dist/esm/components/Form/Form.js +4 -3
- package/dist/esm/components/Form/Form.js.map +1 -1
- package/dist/esm/components/FormSelect/FormSelect.d.ts +4 -0
- package/dist/esm/components/FormSelect/FormSelect.d.ts.map +1 -1
- package/dist/esm/components/FormSelect/FormSelect.js.map +1 -1
- package/dist/esm/components/LoginPage/LoginForm.d.ts +1 -1
- package/dist/esm/components/LoginPage/LoginForm.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts +4 -0
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts +4 -0
- package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
- package/dist/esm/components/Modal/Modal.d.ts +4 -0
- package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
- package/dist/esm/components/Modal/Modal.js.map +1 -1
- package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts +2 -0
- package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
- package/dist/esm/components/Modal/ModalBoxCloseButton.js.map +1 -1
- package/dist/esm/components/Modal/ModalContent.d.ts +4 -0
- package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/esm/components/Modal/ModalContent.js.map +1 -1
- package/dist/esm/components/Nav/Nav.d.ts +4 -0
- package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
- package/dist/esm/components/Nav/Nav.js.map +1 -1
- package/dist/esm/components/Nav/NavExpandable.d.ts +2 -0
- package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts +4 -0
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts +4 -0
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/esm/components/OverflowMenu/OverflowMenu.d.ts +7 -1
- package/dist/esm/components/OverflowMenu/OverflowMenu.d.ts.map +1 -1
- package/dist/esm/components/OverflowMenu/OverflowMenu.js +36 -23
- package/dist/esm/components/OverflowMenu/OverflowMenu.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.d.ts +4 -0
- package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/esm/components/Pagination/Pagination.js.map +1 -1
- package/dist/esm/components/Radio/Radio.d.ts +4 -0
- package/dist/esm/components/Radio/Radio.d.ts.map +1 -1
- package/dist/esm/components/Radio/Radio.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +4 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Switch/Switch.d.ts +4 -0
- package/dist/esm/components/Switch/Switch.d.ts.map +1 -1
- package/dist/esm/components/Switch/Switch.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts +2 -0
- package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tab.js.map +1 -1
- package/dist/esm/components/Tabs/TabContent.d.ts +4 -0
- package/dist/esm/components/Tabs/TabContent.d.ts.map +1 -1
- package/dist/esm/components/Tabs/TabContent.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.map +1 -1
- package/dist/esm/components/Text/Text.d.ts +4 -0
- package/dist/esm/components/Text/Text.d.ts.map +1 -1
- package/dist/esm/components/Text/Text.js.map +1 -1
- package/dist/esm/components/TextInput/TextInput.d.ts +4 -0
- package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/esm/components/TextInput/TextInput.js.map +1 -1
- package/dist/esm/components/Title/Title.d.ts +4 -0
- package/dist/esm/components/Title/Title.d.ts.map +1 -1
- package/dist/esm/components/Title/Title.js.map +1 -1
- package/dist/esm/components/Toolbar/Toolbar.d.ts +4 -0
- package/dist/esm/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/Toolbar.js.map +1 -1
- package/dist/js/components/Alert/Alert.d.ts +4 -0
- package/dist/js/components/Alert/Alert.d.ts.map +1 -1
- package/dist/js/components/Alert/Alert.js.map +1 -1
- package/dist/js/components/Alert/AlertActionCloseButton.js +2 -4
- package/dist/js/components/Alert/AlertActionCloseButton.js.map +1 -1
- package/dist/js/components/Alert/AlertToggleExpandButton.js +1 -1
- package/dist/js/components/Alert/AlertToggleExpandButton.js.map +1 -1
- package/dist/js/components/Breadcrumb/Breadcrumb.d.ts +4 -0
- package/dist/js/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/js/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/js/components/Button/Button.d.ts +4 -0
- package/dist/js/components/Button/Button.d.ts.map +1 -1
- package/dist/js/components/Button/Button.js.map +1 -1
- package/dist/js/components/Card/Card.d.ts +4 -0
- package/dist/js/components/Card/Card.d.ts.map +1 -1
- package/dist/js/components/Card/Card.js.map +1 -1
- package/dist/js/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/js/components/Chip/Chip.d.ts +2 -0
- package/dist/js/components/Chip/Chip.d.ts.map +1 -1
- package/dist/js/components/Chip/Chip.js.map +1 -1
- package/dist/js/components/ChipGroup/ChipGroup.d.ts +2 -0
- package/dist/js/components/ChipGroup/ChipGroup.d.ts.map +1 -1
- package/dist/js/components/ChipGroup/ChipGroup.js.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts +4 -0
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +4 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownItem.d.ts +4 -0
- package/dist/js/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownSeparator.d.ts +4 -0
- package/dist/js/components/Dropdown/DropdownSeparator.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownSeparator.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownToggle.d.ts +4 -0
- package/dist/js/components/Dropdown/DropdownToggle.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownToggle.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownToggleCheckbox.d.ts +4 -0
- package/dist/js/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownToggleCheckbox.js.map +1 -1
- package/dist/js/components/Form/Form.d.ts +4 -2
- package/dist/js/components/Form/Form.d.ts.map +1 -1
- package/dist/js/components/Form/Form.js +4 -4
- package/dist/js/components/Form/Form.js.map +1 -1
- package/dist/js/components/FormSelect/FormSelect.d.ts +4 -0
- package/dist/js/components/FormSelect/FormSelect.d.ts.map +1 -1
- package/dist/js/components/FormSelect/FormSelect.js.map +1 -1
- package/dist/js/components/LoginPage/LoginForm.d.ts +1 -1
- package/dist/js/components/LoginPage/LoginForm.d.ts.map +1 -1
- package/dist/js/components/Menu/Menu.d.ts +4 -0
- package/dist/js/components/Menu/Menu.d.ts.map +1 -1
- package/dist/js/components/Menu/Menu.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts +4 -0
- package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
- package/dist/js/components/Modal/Modal.d.ts +4 -0
- package/dist/js/components/Modal/Modal.d.ts.map +1 -1
- package/dist/js/components/Modal/Modal.js.map +1 -1
- package/dist/js/components/Modal/ModalBoxCloseButton.d.ts +2 -0
- package/dist/js/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
- package/dist/js/components/Modal/ModalBoxCloseButton.js.map +1 -1
- package/dist/js/components/Modal/ModalContent.d.ts +4 -0
- package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/js/components/Modal/ModalContent.js.map +1 -1
- package/dist/js/components/Nav/Nav.d.ts +4 -0
- package/dist/js/components/Nav/Nav.d.ts.map +1 -1
- package/dist/js/components/Nav/Nav.js.map +1 -1
- package/dist/js/components/Nav/NavExpandable.d.ts +2 -0
- package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
- package/dist/js/components/Nav/NavExpandable.js.map +1 -1
- package/dist/js/components/Nav/NavItem.d.ts +4 -0
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts +4 -0
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/js/components/OverflowMenu/OverflowMenu.d.ts +7 -1
- package/dist/js/components/OverflowMenu/OverflowMenu.d.ts.map +1 -1
- package/dist/js/components/OverflowMenu/OverflowMenu.js +35 -22
- package/dist/js/components/OverflowMenu/OverflowMenu.js.map +1 -1
- package/dist/js/components/Pagination/Pagination.d.ts +4 -0
- package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/js/components/Pagination/Pagination.js.map +1 -1
- package/dist/js/components/Radio/Radio.d.ts +4 -0
- package/dist/js/components/Radio/Radio.d.ts.map +1 -1
- package/dist/js/components/Radio/Radio.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +4 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Switch/Switch.d.ts +4 -0
- package/dist/js/components/Switch/Switch.d.ts.map +1 -1
- package/dist/js/components/Switch/Switch.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts +2 -0
- package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/js/components/Tabs/Tab.js.map +1 -1
- package/dist/js/components/Tabs/TabContent.d.ts +4 -0
- package/dist/js/components/Tabs/TabContent.d.ts.map +1 -1
- package/dist/js/components/Tabs/TabContent.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.map +1 -1
- package/dist/js/components/Text/Text.d.ts +4 -0
- package/dist/js/components/Text/Text.d.ts.map +1 -1
- package/dist/js/components/Text/Text.js.map +1 -1
- package/dist/js/components/TextInput/TextInput.d.ts +4 -0
- package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/js/components/TextInput/TextInput.js.map +1 -1
- package/dist/js/components/Title/Title.d.ts +4 -0
- package/dist/js/components/Title/Title.d.ts.map +1 -1
- package/dist/js/components/Title/Title.js.map +1 -1
- package/dist/js/components/Toolbar/Toolbar.d.ts +4 -0
- package/dist/js/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/js/components/Toolbar/Toolbar.js.map +1 -1
- package/dist/umd/react-core.min.js +2 -2
- package/package.json +2 -2
- package/src/components/Alert/Alert.tsx +4 -0
- package/src/components/Alert/AlertActionCloseButton.tsx +2 -2
- package/src/components/Alert/AlertToggleExpandButton.tsx +2 -2
- package/src/components/Alert/__tests__/Alert.test.tsx +713 -199
- package/src/components/Alert/__tests__/AlertActionCloseButton.test.tsx +125 -0
- package/src/components/Alert/__tests__/AlertActionLink.test.tsx +59 -0
- package/src/components/Alert/__tests__/AlertIcon.test.tsx +83 -0
- package/src/components/Alert/__tests__/AlertToggleExpandButton.test.tsx +150 -0
- package/src/components/Alert/__tests__/__snapshots__/Alert.test.tsx.snap +12 -2569
- package/src/components/Alert/__tests__/__snapshots__/AlertActionCloseButton.test.tsx.snap +31 -0
- package/src/components/Alert/__tests__/__snapshots__/AlertActionLink.test.tsx.snap +17 -0
- package/src/components/Alert/__tests__/__snapshots__/AlertIcon.test.tsx.snap +11 -0
- package/src/components/Alert/__tests__/__snapshots__/AlertToggleExpandButton.test.tsx.snap +24 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +4 -0
- package/src/components/Button/Button.tsx +4 -0
- package/src/components/Card/Card.tsx +4 -0
- package/src/components/Checkbox/Checkbox.tsx +4 -0
- package/src/components/Chip/Chip.tsx +2 -0
- package/src/components/ChipGroup/ChipGroup.tsx +2 -0
- package/src/components/ContextSelector/ContextSelector.tsx +4 -0
- package/src/components/Dropdown/Dropdown.tsx +4 -0
- package/src/components/Dropdown/DropdownItem.tsx +4 -0
- package/src/components/Dropdown/DropdownSeparator.tsx +4 -0
- package/src/components/Dropdown/DropdownToggle.tsx +4 -0
- package/src/components/Dropdown/DropdownToggleCheckbox.tsx +4 -0
- package/src/components/Dropdown/examples/Dropdown.md +1 -1
- package/src/components/Form/Form.tsx +9 -2
- package/src/components/FormSelect/FormSelect.tsx +4 -0
- package/src/components/LoginPage/LoginForm.tsx +1 -1
- package/src/components/Menu/Menu.tsx +4 -0
- package/src/components/MenuToggle/MenuToggleCheckbox.tsx +4 -0
- package/src/components/Modal/Modal.tsx +4 -0
- package/src/components/Modal/ModalBoxCloseButton.tsx +2 -0
- package/src/components/Modal/ModalContent.tsx +4 -0
- package/src/components/Nav/Nav.tsx +4 -0
- package/src/components/Nav/NavExpandable.tsx +2 -0
- package/src/components/Nav/NavItem.tsx +4 -0
- package/src/components/OptionsMenu/OptionsMenu.tsx +4 -0
- package/src/components/OverflowMenu/OverflowMenu.tsx +46 -25
- package/src/components/OverflowMenu/__tests__/OverflowMenu.test.tsx +38 -0
- package/src/components/OverflowMenu/examples/OverflowMenu.md +127 -35
- package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +100 -0
- package/src/components/Pagination/Pagination.tsx +4 -0
- package/src/components/Radio/Radio.tsx +4 -0
- package/src/components/Select/Select.tsx +4 -0
- package/src/components/Switch/Switch.tsx +4 -0
- package/src/components/Tabs/Tab.tsx +2 -0
- package/src/components/Tabs/TabContent.tsx +4 -0
- package/src/components/Tabs/Tabs.tsx +4 -0
- package/src/components/Text/Text.tsx +4 -0
- package/src/components/TextInput/TextInput.tsx +4 -0
- package/src/components/Title/Title.tsx +4 -0
- package/src/components/Toolbar/Toolbar.tsx +4 -0
- package/src/demos/examples/DashboardHeader.js +35 -6
- package/src/helpers/OUIA/OUIA.md +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Matches the snapshot 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<button
|
|
6
|
+
aria-label="Close variantLabel alert: title"
|
|
7
|
+
>
|
|
8
|
+
<svg
|
|
9
|
+
aria-hidden="true"
|
|
10
|
+
fill="currentColor"
|
|
11
|
+
height="1em"
|
|
12
|
+
role="img"
|
|
13
|
+
style="vertical-align: -0.125em;"
|
|
14
|
+
viewBox="0 0 352 512"
|
|
15
|
+
width="1em"
|
|
16
|
+
>
|
|
17
|
+
<path
|
|
18
|
+
d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
|
|
19
|
+
/>
|
|
20
|
+
</svg>
|
|
21
|
+
</button>
|
|
22
|
+
<p>
|
|
23
|
+
variant: plain
|
|
24
|
+
</p>
|
|
25
|
+
<p
|
|
26
|
+
id="labelling-id"
|
|
27
|
+
>
|
|
28
|
+
Test label
|
|
29
|
+
</p>
|
|
30
|
+
</DocumentFragment>
|
|
31
|
+
`;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
|
+
|
|
3
|
+
exports[`Matches snapshot 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<button
|
|
6
|
+
aria-expanded="false"
|
|
7
|
+
aria-label="Toggle variantLabel alert: title"
|
|
8
|
+
>
|
|
9
|
+
<span
|
|
10
|
+
class="pf-c-alert__toggle-icon"
|
|
11
|
+
>
|
|
12
|
+
Icon mock
|
|
13
|
+
</span>
|
|
14
|
+
</button>
|
|
15
|
+
<p>
|
|
16
|
+
variant: plain
|
|
17
|
+
</p>
|
|
18
|
+
<p
|
|
19
|
+
id="labelling-id"
|
|
20
|
+
>
|
|
21
|
+
Test label
|
|
22
|
+
</p>
|
|
23
|
+
</DocumentFragment>
|
|
24
|
+
`;
|
|
@@ -10,6 +10,10 @@ export interface BreadcrumbProps extends React.HTMLProps<HTMLElement>, OUIAProps
|
|
|
10
10
|
className?: string;
|
|
11
11
|
/** Aria label added to the breadcrumb nav. */
|
|
12
12
|
'aria-label'?: string;
|
|
13
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
14
|
+
ouiaId?: number | string;
|
|
15
|
+
/** 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. */
|
|
16
|
+
ouiaSafe?: boolean;
|
|
13
17
|
}
|
|
14
18
|
|
|
15
19
|
export const Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({
|
|
@@ -80,6 +80,10 @@ export interface ButtonProps extends Omit<React.HTMLProps<HTMLButtonElement>, 'r
|
|
|
80
80
|
innerRef?: React.Ref<any>;
|
|
81
81
|
/** Adds count number to button */
|
|
82
82
|
countOptions?: BadgeCountObject;
|
|
83
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
84
|
+
ouiaId?: number | string;
|
|
85
|
+
/** 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. */
|
|
86
|
+
ouiaSafe?: boolean;
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
const ButtonBase: React.FunctionComponent<ButtonProps> = ({
|
|
@@ -42,6 +42,10 @@ export interface CardProps extends React.HTMLProps<HTMLElement>, OUIAProps {
|
|
|
42
42
|
selectableInputAriaLabel?: string;
|
|
43
43
|
/** Callback that executes when the selectable input is changed */
|
|
44
44
|
onSelectableInputChange?: (labelledBy: string, event: React.FormEvent<HTMLInputElement>) => void;
|
|
45
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
46
|
+
ouiaId?: number | string;
|
|
47
|
+
/** 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. */
|
|
48
|
+
ouiaSafe?: boolean;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
interface CardContextProps {
|
|
@@ -33,6 +33,10 @@ export interface CheckboxProps
|
|
|
33
33
|
body?: React.ReactNode;
|
|
34
34
|
/** Sets the input wrapper component to render. Defaults to <div> */
|
|
35
35
|
component?: React.ElementType;
|
|
36
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
37
|
+
ouiaId?: number | string;
|
|
38
|
+
/** 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. */
|
|
39
|
+
ouiaSafe?: boolean;
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
// tslint:disable-next-line:no-empty
|
|
@@ -41,6 +41,8 @@ export interface ChipProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
|
|
|
41
41
|
|
|
42
42
|
/** Css property expressed in percentage or any css unit that overrides the default value of the max-width of the chip's text */
|
|
43
43
|
textMaxWidth?: string;
|
|
44
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
45
|
+
ouiaId?: number | string;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
interface ChipState {
|
|
@@ -50,6 +50,8 @@ export interface ChipGroupProps extends React.HTMLProps<HTMLUListElement>, OUIAP
|
|
|
50
50
|
| 'left-end'
|
|
51
51
|
| 'right-start'
|
|
52
52
|
| 'right-end';
|
|
53
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
54
|
+
ouiaId?: number | string;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
interface ChipGroupState {
|
|
@@ -68,6 +68,10 @@ export interface ContextSelectorProps extends Omit<ToggleMenuBaseProps, 'menuApp
|
|
|
68
68
|
id?: string;
|
|
69
69
|
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
70
70
|
removeFindDomNode?: boolean;
|
|
71
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
72
|
+
ouiaId?: number | string;
|
|
73
|
+
/** 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. */
|
|
74
|
+
ouiaSafe?: boolean;
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
export class ContextSelector extends React.Component<ContextSelectorProps, { ouiaStateId: string }> {
|
|
@@ -62,6 +62,10 @@ export interface DropdownProps
|
|
|
62
62
|
isFlipEnabled?: boolean;
|
|
63
63
|
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
64
64
|
removeFindDomNode?: boolean;
|
|
65
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
66
|
+
ouiaId?: number | string;
|
|
67
|
+
/** 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. */
|
|
68
|
+
ouiaSafe?: boolean;
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
@@ -47,6 +47,10 @@ export interface DropdownItemProps extends Omit<InternalDropdownItemProps, 'tabI
|
|
|
47
47
|
autoFocus?: boolean;
|
|
48
48
|
/** A short description of the dropdown item, displayed under the dropdown item content */
|
|
49
49
|
description?: React.ReactNode;
|
|
50
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
51
|
+
ouiaId?: number | string;
|
|
52
|
+
/** 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. */
|
|
53
|
+
ouiaSafe?: boolean;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
export const DropdownItem: React.FunctionComponent<DropdownItemProps> = ({
|
|
@@ -9,6 +9,10 @@ export interface SeparatorProps extends React.HTMLProps<HTMLAnchorElement>, OUIA
|
|
|
9
9
|
className?: string;
|
|
10
10
|
/** Click event to pass to InternalDropdownItem */
|
|
11
11
|
onClick?: (event: React.MouseEvent<HTMLAnchorElement> | React.KeyboardEvent | MouseEvent) => void;
|
|
12
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
13
|
+
ouiaId?: number | string;
|
|
14
|
+
/** 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. */
|
|
15
|
+
ouiaSafe?: boolean;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
export const DropdownSeparator: React.FunctionComponent<SeparatorProps> = ({
|
|
@@ -49,6 +49,10 @@ export interface DropdownToggleProps extends React.HTMLProps<HTMLButtonElement>,
|
|
|
49
49
|
type?: 'button' | 'submit' | 'reset';
|
|
50
50
|
/** Callback called when the Enter key is pressed */
|
|
51
51
|
onEnter?: (event?: React.MouseEvent<HTMLButtonElement>) => void;
|
|
52
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
53
|
+
ouiaId?: number | string;
|
|
54
|
+
/** 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. */
|
|
55
|
+
ouiaSafe?: boolean;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
export const DropdownToggle: React.FunctionComponent<DropdownToggleProps> = ({
|
|
@@ -25,6 +25,10 @@ export interface DropdownToggleCheckboxProps
|
|
|
25
25
|
id: string;
|
|
26
26
|
/** Aria-label of the checkbox */
|
|
27
27
|
'aria-label': string;
|
|
28
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
29
|
+
ouiaId?: number | string;
|
|
30
|
+
/** 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. */
|
|
31
|
+
ouiaSafe?: boolean;
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
export class DropdownToggleCheckbox extends React.Component<DropdownToggleCheckboxProps, { ouiaStateId: string }> {
|
|
@@ -3,7 +3,7 @@ id: Dropdown
|
|
|
3
3
|
section: components
|
|
4
4
|
cssPrefix: pf-c-dropdown
|
|
5
5
|
propComponents:
|
|
6
|
-
['Dropdown', 'DropdownGroup', 'DropdownItem', 'DropdownToggle', 'DropdownToggleCheckbox', 'DropdownToggleAction']
|
|
6
|
+
['Dropdown', 'DropdownGroup', 'DropdownItem', 'DropdownToggle', 'DropdownToggleCheckbox', 'DropdownToggleAction', DropdownSeparator]
|
|
7
7
|
ouia: true
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/Form/form';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
|
|
5
|
-
export interface FormProps extends React.HTMLProps<HTMLFormElement> {
|
|
5
|
+
export interface FormProps extends Omit<React.HTMLProps<HTMLFormElement>, 'ref'> {
|
|
6
6
|
/** Anything that can be rendered as Form content. */
|
|
7
7
|
children?: React.ReactNode;
|
|
8
8
|
/** Additional classes added to the Form. */
|
|
@@ -13,14 +13,17 @@ export interface FormProps extends React.HTMLProps<HTMLFormElement> {
|
|
|
13
13
|
isWidthLimited?: boolean;
|
|
14
14
|
/** Sets a custom max-width for the form. */
|
|
15
15
|
maxWidth?: string;
|
|
16
|
+
/** @hide Forwarded ref */
|
|
17
|
+
innerRef?: React.Ref<any>;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
const FormBase: React.FunctionComponent<FormProps> = ({
|
|
19
21
|
children = null,
|
|
20
22
|
className = '',
|
|
21
23
|
isHorizontal = false,
|
|
22
24
|
isWidthLimited = false,
|
|
23
25
|
maxWidth = '',
|
|
26
|
+
innerRef,
|
|
24
27
|
...props
|
|
25
28
|
}: FormProps) => (
|
|
26
29
|
<form
|
|
@@ -38,8 +41,12 @@ export const Form: React.FunctionComponent<FormProps> = ({
|
|
|
38
41
|
(isWidthLimited || maxWidth) && styles.modifiers.limitWidth,
|
|
39
42
|
className
|
|
40
43
|
)}
|
|
44
|
+
ref={innerRef}
|
|
41
45
|
>
|
|
42
46
|
{children}
|
|
43
47
|
</form>
|
|
44
48
|
);
|
|
49
|
+
|
|
50
|
+
export const Form = React.forwardRef((props: FormProps, ref: React.Ref<any>) => <FormBase innerRef={ref} {...props} />);
|
|
51
|
+
|
|
45
52
|
Form.displayName = 'Form';
|
|
@@ -33,6 +33,10 @@ export interface FormSelectProps
|
|
|
33
33
|
onChange?: (value: string, event: React.FormEvent<HTMLSelectElement>) => void;
|
|
34
34
|
/** Custom flag to show that the FormSelect requires an associated id or aria-label. */
|
|
35
35
|
'aria-label'?: string;
|
|
36
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
37
|
+
ouiaId?: number | string;
|
|
38
|
+
/** 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. */
|
|
39
|
+
ouiaSafe?: boolean;
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
export class FormSelect extends React.Component<FormSelectProps, { ouiaStateId: string }> {
|
|
@@ -8,7 +8,7 @@ import { InputGroup } from '../InputGroup';
|
|
|
8
8
|
import EyeSlashIcon from '@patternfly/react-icons/dist/esm/icons/eye-slash-icon';
|
|
9
9
|
import EyeIcon from '@patternfly/react-icons/dist/esm/icons/eye-icon';
|
|
10
10
|
|
|
11
|
-
export interface LoginFormProps extends React.HTMLProps<HTMLFormElement> {
|
|
11
|
+
export interface LoginFormProps extends Omit<React.HTMLProps<HTMLFormElement>, 'ref'> {
|
|
12
12
|
/** Flag to indicate if the first dropdown item should not gain initial focus */
|
|
13
13
|
noAutoFocus?: boolean;
|
|
14
14
|
/** Additional classes added to the login main body's form */
|
|
@@ -59,6 +59,10 @@ export interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'r
|
|
|
59
59
|
isPlain?: boolean;
|
|
60
60
|
/** Indicates if the menu should be srollable */
|
|
61
61
|
isScrollable?: boolean;
|
|
62
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
63
|
+
ouiaId?: number | string;
|
|
64
|
+
/** 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. */
|
|
65
|
+
ouiaSafe?: boolean;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
export interface MenuState {
|
|
@@ -27,6 +27,10 @@ export interface MenuToggleCheckboxProps
|
|
|
27
27
|
children?: React.ReactNode;
|
|
28
28
|
/** Id of the checkbox */
|
|
29
29
|
id: string;
|
|
30
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
31
|
+
ouiaId?: number | string;
|
|
32
|
+
/** 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. */
|
|
33
|
+
ouiaSafe?: boolean;
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
export class MenuToggleCheckbox extends React.Component<MenuToggleCheckboxProps, { ouiaStateId: string }> {
|
|
@@ -72,6 +72,10 @@ export interface ModalProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
|
|
|
72
72
|
variant?: 'small' | 'medium' | 'large' | 'default';
|
|
73
73
|
/** Default width of the modal. */
|
|
74
74
|
width?: number | string;
|
|
75
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
76
|
+
ouiaId?: number | string;
|
|
77
|
+
/** 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. */
|
|
78
|
+
ouiaSafe?: boolean;
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
export enum ModalVariant {
|
|
@@ -8,6 +8,8 @@ export interface ModalBoxCloseButtonProps extends OUIAProps {
|
|
|
8
8
|
className?: string;
|
|
9
9
|
/** A callback for when the close button is clicked. */
|
|
10
10
|
onClose?: () => void;
|
|
11
|
+
/** Value to set the data-ouia-component-id.*/
|
|
12
|
+
ouiaId?: number | string;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
export const ModalBoxCloseButton: React.FunctionComponent<ModalBoxCloseButtonProps> = ({
|
|
@@ -79,6 +79,10 @@ export interface ModalContentProps extends OUIAProps {
|
|
|
79
79
|
variant?: 'small' | 'medium' | 'large' | 'default';
|
|
80
80
|
/** Default width of the modal. */
|
|
81
81
|
width?: number | string;
|
|
82
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
83
|
+
ouiaId?: number | string;
|
|
84
|
+
/** 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. */
|
|
85
|
+
ouiaSafe?: boolean;
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
export const ModalContent: React.FunctionComponent<ModalContentProps> = ({
|
|
@@ -36,6 +36,10 @@ export interface NavProps
|
|
|
36
36
|
theme?: 'dark' | 'light';
|
|
37
37
|
/** For horizontal navs */
|
|
38
38
|
variant?: 'default' | 'horizontal' | 'tertiary' | 'horizontal-subnav';
|
|
39
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
40
|
+
ouiaId?: number | string;
|
|
41
|
+
/** 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. */
|
|
42
|
+
ouiaSafe?: boolean;
|
|
39
43
|
}
|
|
40
44
|
|
|
41
45
|
export interface NavContextProps {
|
|
@@ -32,6 +32,8 @@ export interface NavExpandableProps
|
|
|
32
32
|
onExpand?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, val: boolean) => void;
|
|
33
33
|
/** Additional props added to the NavExpandable <button> */
|
|
34
34
|
buttonProps?: any;
|
|
35
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
36
|
+
ouiaId?: number | string;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
interface NavExpandableState {
|
|
@@ -34,6 +34,10 @@ export interface NavItemProps extends Omit<React.HTMLProps<HTMLAnchorElement>, '
|
|
|
34
34
|
onShowFlyout?: () => void;
|
|
35
35
|
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
36
36
|
removeFindDomNode?: boolean;
|
|
37
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
38
|
+
ouiaId?: number | string;
|
|
39
|
+
/** 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. */
|
|
40
|
+
ouiaSafe?: boolean;
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
export const NavItem: React.FunctionComponent<NavItemProps> = ({
|
|
@@ -49,6 +49,10 @@ export interface OptionsMenuProps
|
|
|
49
49
|
menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
|
|
50
50
|
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
51
51
|
removeFindDomNode?: boolean;
|
|
52
|
+
/** Value to overwrite the randomly generated data-ouia-component-id.*/
|
|
53
|
+
ouiaId?: number | string;
|
|
54
|
+
/** 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. */
|
|
55
|
+
ouiaSafe?: boolean;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
|
|
@@ -2,18 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import styles from '@patternfly/react-styles/css/components/OverflowMenu/overflow-menu';
|
|
3
3
|
import { css } from '@patternfly/react-styles';
|
|
4
4
|
import { OverflowMenuContext } from './OverflowMenuContext';
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import xl2Breakpoint from '@patternfly/react-tokens/dist/esm/global_breakpoint_2xl';
|
|
9
|
-
import { debounce, canUseDOM } from '../../helpers/util';
|
|
10
|
-
|
|
11
|
-
const breakpoints = {
|
|
12
|
-
md: mdBreakpoint,
|
|
13
|
-
lg: lgBreakpoint,
|
|
14
|
-
xl: xlBreakpoint,
|
|
15
|
-
'2xl': xl2Breakpoint
|
|
16
|
-
};
|
|
5
|
+
import { debounce } from '../../helpers/util';
|
|
6
|
+
import { globalWidthBreakpoints } from '../../helpers/constants';
|
|
7
|
+
import { getResizeObserver } from '../../helpers/resizeObserver';
|
|
17
8
|
|
|
18
9
|
export interface OverflowMenuProps extends React.HTMLProps<HTMLDivElement> {
|
|
19
10
|
/** Any elements that can be rendered in the menu */
|
|
@@ -21,11 +12,14 @@ export interface OverflowMenuProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
21
12
|
/** Additional classes added to the OverflowMenu. */
|
|
22
13
|
className?: string;
|
|
23
14
|
/** Indicates breakpoint at which to switch between horizontal menu and vertical dropdown */
|
|
24
|
-
breakpoint: 'md' | 'lg' | 'xl' | '2xl';
|
|
15
|
+
breakpoint: 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
16
|
+
/** A container reference to base the specified breakpoint on instead of the viewport width. */
|
|
17
|
+
breakpointReference?: HTMLElement | (() => HTMLElement) | React.RefObject<any>;
|
|
25
18
|
}
|
|
26
19
|
|
|
27
20
|
export interface OverflowMenuState extends React.HTMLProps<HTMLDivElement> {
|
|
28
21
|
isBelowBreakpoint: boolean;
|
|
22
|
+
breakpointRef: HTMLElement;
|
|
29
23
|
}
|
|
30
24
|
|
|
31
25
|
export class OverflowMenu extends React.Component<OverflowMenuProps, OverflowMenuState> {
|
|
@@ -33,40 +27,67 @@ export class OverflowMenu extends React.Component<OverflowMenuProps, OverflowMen
|
|
|
33
27
|
constructor(props: OverflowMenuProps) {
|
|
34
28
|
super(props);
|
|
35
29
|
this.state = {
|
|
36
|
-
isBelowBreakpoint: false
|
|
30
|
+
isBelowBreakpoint: false,
|
|
31
|
+
breakpointRef: undefined
|
|
37
32
|
};
|
|
38
33
|
}
|
|
39
34
|
|
|
35
|
+
observer: any = () => {};
|
|
36
|
+
|
|
37
|
+
getBreakpointRef() {
|
|
38
|
+
const { breakpointReference } = this.props;
|
|
39
|
+
|
|
40
|
+
if ((breakpointReference as React.RefObject<any>).current) {
|
|
41
|
+
return (breakpointReference as React.RefObject<any>).current;
|
|
42
|
+
} else if (typeof breakpointReference === 'function') {
|
|
43
|
+
return breakpointReference();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
40
47
|
componentDidMount() {
|
|
48
|
+
const reference = this.props.breakpointReference ? this.getBreakpointRef() : undefined;
|
|
49
|
+
|
|
50
|
+
this.setState({ breakpointRef: reference });
|
|
51
|
+
this.observer = getResizeObserver(reference, this.handleResizeWithDelay);
|
|
41
52
|
this.handleResize();
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
componentDidUpdate(prevProps: Readonly<OverflowMenuProps>, prevState: Readonly<OverflowMenuState>): void {
|
|
56
|
+
const reference = this.props.breakpointReference ? this.getBreakpointRef() : undefined;
|
|
57
|
+
|
|
58
|
+
if (prevState.breakpointRef !== reference) {
|
|
59
|
+
// To remove any previous observer/event listener from componentDidMount before adding a new one
|
|
60
|
+
this.observer();
|
|
61
|
+
this.setState({ breakpointRef: reference });
|
|
62
|
+
this.observer = getResizeObserver(reference, this.handleResizeWithDelay);
|
|
63
|
+
this.handleResize();
|
|
44
64
|
}
|
|
45
65
|
}
|
|
46
66
|
|
|
47
67
|
componentWillUnmount() {
|
|
48
|
-
|
|
49
|
-
window.removeEventListener('resize', this.handleResizeWithDelay);
|
|
50
|
-
}
|
|
68
|
+
this.observer();
|
|
51
69
|
}
|
|
52
70
|
|
|
53
71
|
handleResize = () => {
|
|
54
|
-
const
|
|
55
|
-
if (!
|
|
72
|
+
const breakpointWidth = globalWidthBreakpoints[this.props.breakpoint];
|
|
73
|
+
if (!breakpointWidth) {
|
|
56
74
|
// eslint-disable-next-line no-console
|
|
57
75
|
console.error('OverflowMenu will not be visible without a valid breakpoint.');
|
|
58
76
|
return;
|
|
59
77
|
}
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
78
|
+
|
|
79
|
+
const relativeWidth = this.state.breakpointRef ? this.state.breakpointRef.clientWidth : window.innerWidth;
|
|
80
|
+
const isBelowBreakpoint = relativeWidth < breakpointWidth;
|
|
81
|
+
if (this.state.isBelowBreakpoint !== isBelowBreakpoint) {
|
|
82
|
+
this.setState({ isBelowBreakpoint });
|
|
83
|
+
}
|
|
63
84
|
};
|
|
64
85
|
|
|
65
86
|
handleResizeWithDelay = debounce(this.handleResize, 250);
|
|
66
87
|
|
|
67
88
|
render() {
|
|
68
89
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
69
|
-
const { className, breakpoint, children, ...props } = this.props;
|
|
90
|
+
const { className, breakpoint, children, breakpointReference, ...props } = this.props;
|
|
70
91
|
|
|
71
92
|
return (
|
|
72
93
|
<div {...props} className={css(styles.overflowMenu, className)}>
|
|
@@ -4,6 +4,7 @@ import { render, screen } from '@testing-library/react';
|
|
|
4
4
|
|
|
5
5
|
import styles from '@patternfly/react-styles/css/components/OverflowMenu/overflow-menu';
|
|
6
6
|
import { OverflowMenu } from '../OverflowMenu';
|
|
7
|
+
import * as getResizeObserver from '../../../helpers/resizeObserver';
|
|
7
8
|
|
|
8
9
|
describe('OverflowMenu', () => {
|
|
9
10
|
test('md', () => {
|
|
@@ -42,4 +43,41 @@ describe('OverflowMenu', () => {
|
|
|
42
43
|
|
|
43
44
|
expect(myMock).toHaveBeenCalled();
|
|
44
45
|
});
|
|
46
|
+
|
|
47
|
+
test('should call resizeObserver on undefined containerRefElement', () => {
|
|
48
|
+
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
|
|
49
|
+
|
|
50
|
+
render(<OverflowMenu breakpoint={'md'} />);
|
|
51
|
+
|
|
52
|
+
expect(resizeObserver).toHaveBeenCalledWith(undefined, expect.any(Function));
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
test('should call resizeObserver on selector ref containerRefElement', () => {
|
|
56
|
+
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
|
|
57
|
+
|
|
58
|
+
render(
|
|
59
|
+
<div id="selector-ref-test">
|
|
60
|
+
<OverflowMenu breakpointReference={() => document.getElementById('selector-ref-test')} breakpoint={'md'}>
|
|
61
|
+
<div>Selector ref test</div>
|
|
62
|
+
</OverflowMenu>
|
|
63
|
+
</div>
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
const containerRef = screen.getByText('Selector ref test').parentElement?.parentElement;
|
|
67
|
+
|
|
68
|
+
expect(resizeObserver).toHaveBeenCalledWith(containerRef, expect.any(Function));
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test('should call resizeObserver on React ref containerRefElement', () => {
|
|
72
|
+
const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
|
|
73
|
+
const containerRef = React.createRef<HTMLDivElement>();
|
|
74
|
+
|
|
75
|
+
render(
|
|
76
|
+
<div ref={containerRef}>
|
|
77
|
+
<OverflowMenu breakpointReference={containerRef} breakpoint={'md'} />
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
expect(resizeObserver).toHaveBeenCalledWith(containerRef.current, expect.any(Function));
|
|
82
|
+
});
|
|
45
83
|
});
|