@patternfly/react-core 4.236.7 → 4.236.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 +24 -0
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js +4 -3
- package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
- package/dist/esm/components/BackToTop/BackToTop.d.ts +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/esm/components/ContextSelector/ContextSelector.js +4 -3
- package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +2 -2
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/DropdownWithContext.js +2 -2
- package/dist/esm/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/esm/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
- package/dist/esm/components/Menu/MenuContent.d.ts +1 -1
- package/dist/esm/components/Menu/MenuGroup.d.ts +1 -1
- package/dist/esm/components/Menu/MenuInput.d.ts +1 -1
- package/dist/esm/components/Menu/MenuItem.d.ts +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts +2 -0
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.js +2 -2
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts +2 -0
- package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/esm/components/OptionsMenu/OptionsMenu.js +2 -2
- package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/esm/components/Panel/Panel.d.ts +1 -1
- package/dist/esm/components/Popover/Popover.d.ts +2 -0
- package/dist/esm/components/Popover/Popover.d.ts.map +1 -1
- package/dist/esm/components/Popover/Popover.js +2 -2
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Popover/PopoverCloseButton.d.ts.map +1 -1
- package/dist/esm/components/Popover/PopoverCloseButton.js +2 -11
- package/dist/esm/components/Popover/PopoverCloseButton.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +2 -2
- package/dist/esm/components/SearchInput/SearchInput.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 +4 -3
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.d.ts +2 -0
- package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/esm/components/Tabs/OverflowTab.js +2 -2
- package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/esm/components/Tabs/Tab.d.ts +1 -1
- package/dist/esm/components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/esm/components/TimePicker/TimePicker.js +5 -4
- package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts +2 -0
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +2 -2
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts +5 -19
- package/dist/esm/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/esm/helpers/FocusTrap/FocusTrap.js +10 -6
- package/dist/esm/helpers/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +5 -0
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +42 -7
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js +4 -3
- package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
- package/dist/js/components/BackToTop/BackToTop.d.ts +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.d.ts +2 -0
- package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
- package/dist/js/components/ContextSelector/ContextSelector.js +4 -3
- package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +2 -2
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
- package/dist/js/components/Dropdown/DropdownWithContext.js +2 -2
- package/dist/js/components/Dropdown/DropdownWithContext.js.map +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControl.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorControlsWrapper.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListItem.d.ts +1 -1
- package/dist/js/components/DualListSelector/DualListSelectorListWrapper.d.ts +1 -1
- package/dist/js/components/Menu/MenuContent.d.ts +1 -1
- package/dist/js/components/Menu/MenuGroup.d.ts +1 -1
- package/dist/js/components/Menu/MenuInput.d.ts +1 -1
- package/dist/js/components/Menu/MenuItem.d.ts +1 -1
- package/dist/js/components/Nav/NavItem.d.ts +2 -0
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.js +2 -2
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/NotificationDrawer/NotificationDrawer.d.ts +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts +2 -0
- package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
- package/dist/js/components/OptionsMenu/OptionsMenu.js +2 -2
- package/dist/js/components/OptionsMenu/OptionsMenu.js.map +1 -1
- package/dist/js/components/Panel/Panel.d.ts +1 -1
- package/dist/js/components/Popover/Popover.d.ts +2 -0
- package/dist/js/components/Popover/Popover.d.ts.map +1 -1
- package/dist/js/components/Popover/Popover.js +2 -2
- package/dist/js/components/Popover/Popover.js.map +1 -1
- package/dist/js/components/Popover/PopoverCloseButton.d.ts.map +1 -1
- package/dist/js/components/Popover/PopoverCloseButton.js +2 -11
- package/dist/js/components/Popover/PopoverCloseButton.js.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
- package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/js/components/SearchInput/SearchInput.js +2 -2
- package/dist/js/components/SearchInput/SearchInput.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 +4 -3
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.d.ts +2 -0
- package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
- package/dist/js/components/Tabs/OverflowTab.js +2 -2
- package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
- package/dist/js/components/Tabs/Tab.d.ts +1 -1
- package/dist/js/components/TimePicker/TimePicker.d.ts +3 -0
- package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
- package/dist/js/components/TimePicker/TimePicker.js +5 -4
- package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.d.ts +2 -0
- package/dist/js/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/js/components/Tooltip/Tooltip.js +2 -2
- package/dist/js/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/js/helpers/FocusTrap/FocusTrap.d.ts +5 -19
- package/dist/js/helpers/FocusTrap/FocusTrap.d.ts.map +1 -1
- package/dist/js/helpers/FocusTrap/FocusTrap.js +10 -7
- package/dist/js/helpers/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +5 -0
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +42 -7
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/umd/react-core.min.css +1072 -1072
- package/dist/umd/react-core.min.js +5 -5
- package/package.json +5 -5
- package/src/components/AlertGroup/examples/AlertGroup.md +52 -15
- package/src/components/ApplicationLauncher/ApplicationLauncher.tsx +6 -1
- package/src/components/ApplicationLauncher/__tests__/ApplicationLauncher.test.tsx +10 -1
- package/src/components/ApplicationLauncher/__tests__/__snapshots__/ApplicationLauncher.test.tsx.snap +153 -7
- package/src/components/ContextSelector/ContextSelector.tsx +6 -1
- package/src/components/ContextSelector/__tests__/ContextSelector.test.tsx +18 -1
- package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +144 -0
- package/src/components/Dropdown/Dropdown.tsx +9 -1
- package/src/components/Dropdown/DropdownWithContext.tsx +2 -0
- package/src/components/Dropdown/__tests__/Dropdown.test.tsx +16 -0
- package/src/components/Dropdown/__tests__/__snapshots__/Dropdown.test.tsx.snap +131 -7
- package/src/components/Nav/NavItem.tsx +4 -0
- package/src/components/Nav/__tests__/Nav.test.tsx +19 -0
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +111 -42
- package/src/components/OptionsMenu/OptionsMenu.tsx +4 -0
- package/src/components/OptionsMenu/__tests__/OptionsMenu.test.tsx +17 -0
- package/src/components/OptionsMenu/__tests__/__snapshots__/OptionsMenu.test.tsx.snap +216 -20
- package/src/components/Popover/Popover.tsx +4 -0
- package/src/components/Popover/PopoverCloseButton.tsx +6 -17
- package/src/components/Popover/__tests__/Popover.test.tsx +25 -0
- package/src/components/Popover/__tests__/__snapshots__/Popover.test.tsx.snap +10 -0
- package/src/components/SearchInput/SearchInput.tsx +4 -0
- package/src/components/SearchInput/__tests__/SearchInput.test.tsx +27 -1
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +130 -6
- package/src/components/Select/Select.tsx +6 -1
- package/src/components/Select/__tests__/Select.test.tsx +23 -7
- package/src/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +152 -46
- package/src/components/Tabs/OverflowTab.tsx +4 -0
- package/src/components/Tabs/__tests__/OverflowTab.test.tsx +31 -7
- package/src/components/Tabs/__tests__/__snapshots__/OverflowTab.test.tsx.snap +89 -0
- package/src/components/TimePicker/TimePicker.tsx +6 -1
- package/src/components/TimePicker/__tests__/TimePicker.test.tsx +16 -1
- package/src/components/Tooltip/Tooltip.tsx +4 -0
- package/src/components/Tooltip/__tests__/Tooltip.test.tsx +21 -0
- package/src/components/Tooltip/__tests__/__snapshots__/Tooltip.test.tsx.snap +10 -0
- package/src/helpers/FocusTrap/FocusTrap.tsx +21 -5
- package/src/helpers/Popper/Popper.tsx +54 -12
|
@@ -47,6 +47,8 @@ export interface OptionsMenuProps
|
|
|
47
47
|
* menuAppendTo={document.getElementById('target')}
|
|
48
48
|
*/
|
|
49
49
|
menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
|
|
50
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
51
|
+
removeFindDomNode?: boolean;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
|
|
@@ -61,6 +63,7 @@ export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
|
|
|
61
63
|
menuAppendTo = 'inline',
|
|
62
64
|
ouiaId,
|
|
63
65
|
ouiaSafe = true,
|
|
66
|
+
removeFindDomNode = false,
|
|
64
67
|
...props
|
|
65
68
|
}: OptionsMenuProps) => (
|
|
66
69
|
<DropdownContext.Provider
|
|
@@ -88,6 +91,7 @@ export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
|
|
|
88
91
|
isGrouped={isGrouped}
|
|
89
92
|
toggle={toggle}
|
|
90
93
|
menuAppendTo={menuAppendTo}
|
|
94
|
+
removeFindDomNode={removeFindDomNode}
|
|
91
95
|
{...props}
|
|
92
96
|
/>
|
|
93
97
|
</DropdownContext.Provider>
|
|
@@ -31,6 +31,23 @@ describe('optionsMenu', () => {
|
|
|
31
31
|
expect(asFragment()).toMatchSnapshot();
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
+
test('renders in strict mode', () => {
|
|
35
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
36
|
+
const { asFragment } = render(
|
|
37
|
+
<React.StrictMode>
|
|
38
|
+
<OptionsMenu
|
|
39
|
+
removeFindDomNode
|
|
40
|
+
id="regular"
|
|
41
|
+
menuItems={menuItems}
|
|
42
|
+
isOpen
|
|
43
|
+
toggle={<OptionsMenuToggle>Options Menu</OptionsMenuToggle>}
|
|
44
|
+
/>
|
|
45
|
+
</React.StrictMode>
|
|
46
|
+
);
|
|
47
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
48
|
+
expect(asFragment()).toMatchSnapshot();
|
|
49
|
+
});
|
|
50
|
+
|
|
34
51
|
test('right aligned', () => {
|
|
35
52
|
const { asFragment } = render(
|
|
36
53
|
<OptionsMenu
|
|
@@ -4,7 +4,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
4
4
|
<DocumentFragment>
|
|
5
5
|
<div
|
|
6
6
|
class="pf-c-options-menu pf-m-expanded"
|
|
7
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
7
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-7"
|
|
8
8
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
9
9
|
data-ouia-safe="true"
|
|
10
10
|
id="expanded"
|
|
@@ -14,7 +14,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
14
14
|
aria-haspopup="listbox"
|
|
15
15
|
aria-label="Options menu"
|
|
16
16
|
class="pf-c-options-menu__toggle"
|
|
17
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
17
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-7"
|
|
18
18
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
19
19
|
data-ouia-safe="true"
|
|
20
20
|
id="expanded-toggle"
|
|
@@ -68,7 +68,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
68
68
|
<button
|
|
69
69
|
aria-disabled="false"
|
|
70
70
|
class="pf-c-options-menu__menu-item"
|
|
71
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
71
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-13"
|
|
72
72
|
data-ouia-component-type="PF4/DropdownItem"
|
|
73
73
|
data-ouia-safe="true"
|
|
74
74
|
role="menuitem"
|
|
@@ -85,7 +85,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
85
85
|
<button
|
|
86
86
|
aria-disabled="false"
|
|
87
87
|
class="pf-c-options-menu__menu-item"
|
|
88
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
88
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-14"
|
|
89
89
|
data-ouia-component-type="PF4/DropdownItem"
|
|
90
90
|
data-ouia-safe="true"
|
|
91
91
|
role="menuitem"
|
|
@@ -102,7 +102,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
102
102
|
<button
|
|
103
103
|
aria-disabled="true"
|
|
104
104
|
class="pf-m-disabled pf-c-options-menu__menu-item"
|
|
105
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
105
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-15"
|
|
106
106
|
data-ouia-component-type="PF4/DropdownItem"
|
|
107
107
|
data-ouia-safe="true"
|
|
108
108
|
role="menuitem"
|
|
@@ -119,7 +119,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
119
119
|
<button
|
|
120
120
|
aria-disabled="false"
|
|
121
121
|
class="pf-c-options-menu__menu-item"
|
|
122
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
122
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-16"
|
|
123
123
|
data-ouia-component-type="PF4/DropdownItem"
|
|
124
124
|
data-ouia-safe="true"
|
|
125
125
|
role="menuitem"
|
|
@@ -158,7 +158,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
158
158
|
<button
|
|
159
159
|
aria-disabled="false"
|
|
160
160
|
class="pf-c-options-menu__menu-item"
|
|
161
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
161
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-17"
|
|
162
162
|
data-ouia-component-type="PF4/DropdownItem"
|
|
163
163
|
data-ouia-safe="true"
|
|
164
164
|
role="menuitem"
|
|
@@ -175,7 +175,7 @@ exports[`optionsMenu expanded 1`] = `
|
|
|
175
175
|
<button
|
|
176
176
|
aria-disabled="false"
|
|
177
177
|
class="pf-c-options-menu__menu-item"
|
|
178
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
178
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-18"
|
|
179
179
|
data-ouia-component-type="PF4/DropdownItem"
|
|
180
180
|
data-ouia-safe="true"
|
|
181
181
|
role="menuitem"
|
|
@@ -200,7 +200,7 @@ exports[`optionsMenu isDisabled 1`] = `
|
|
|
200
200
|
<DocumentFragment>
|
|
201
201
|
<div
|
|
202
202
|
class="pf-c-options-menu"
|
|
203
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
203
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-10"
|
|
204
204
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
205
205
|
data-ouia-safe="true"
|
|
206
206
|
id="disabled"
|
|
@@ -210,7 +210,7 @@ exports[`optionsMenu isDisabled 1`] = `
|
|
|
210
210
|
aria-haspopup="listbox"
|
|
211
211
|
aria-label="Options menu"
|
|
212
212
|
class="pf-c-options-menu__toggle"
|
|
213
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
213
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-9"
|
|
214
214
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
215
215
|
data-ouia-safe="true"
|
|
216
216
|
disabled=""
|
|
@@ -246,7 +246,7 @@ exports[`optionsMenu open up 1`] = `
|
|
|
246
246
|
<DocumentFragment>
|
|
247
247
|
<div
|
|
248
248
|
class="pf-c-options-menu pf-m-top"
|
|
249
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
249
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-5"
|
|
250
250
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
251
251
|
data-ouia-safe="true"
|
|
252
252
|
id="openUp"
|
|
@@ -256,7 +256,7 @@ exports[`optionsMenu open up 1`] = `
|
|
|
256
256
|
aria-haspopup="listbox"
|
|
257
257
|
aria-label="Options menu"
|
|
258
258
|
class="pf-c-options-menu__toggle"
|
|
259
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
259
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-5"
|
|
260
260
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
261
261
|
data-ouia-safe="true"
|
|
262
262
|
id="openUp-toggle"
|
|
@@ -291,7 +291,7 @@ exports[`optionsMenu plain 1`] = `
|
|
|
291
291
|
<DocumentFragment>
|
|
292
292
|
<div
|
|
293
293
|
class="pf-c-options-menu"
|
|
294
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
294
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-8"
|
|
295
295
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
296
296
|
data-ouia-safe="true"
|
|
297
297
|
id="plain"
|
|
@@ -301,7 +301,7 @@ exports[`optionsMenu plain 1`] = `
|
|
|
301
301
|
aria-haspopup="listbox"
|
|
302
302
|
aria-label="Options menu"
|
|
303
303
|
class="pf-c-options-menu__toggle pf-m-plain"
|
|
304
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
304
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-8"
|
|
305
305
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
306
306
|
data-ouia-safe="true"
|
|
307
307
|
id="plain-toggle"
|
|
@@ -358,11 +358,207 @@ exports[`optionsMenu regular 1`] = `
|
|
|
358
358
|
</DocumentFragment>
|
|
359
359
|
`;
|
|
360
360
|
|
|
361
|
+
exports[`optionsMenu renders in strict mode 1`] = `
|
|
362
|
+
<DocumentFragment>
|
|
363
|
+
<div
|
|
364
|
+
class="pf-c-options-menu pf-m-expanded"
|
|
365
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-3"
|
|
366
|
+
data-ouia-component-type="PF4/OptionsMenu"
|
|
367
|
+
data-ouia-safe="true"
|
|
368
|
+
id="regular"
|
|
369
|
+
>
|
|
370
|
+
<button
|
|
371
|
+
aria-expanded="true"
|
|
372
|
+
aria-haspopup="listbox"
|
|
373
|
+
aria-label="Options menu"
|
|
374
|
+
class="pf-c-options-menu__toggle"
|
|
375
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-3"
|
|
376
|
+
data-ouia-component-type="PF4/DropdownToggle"
|
|
377
|
+
data-ouia-safe="true"
|
|
378
|
+
id="regular-toggle"
|
|
379
|
+
type="button"
|
|
380
|
+
>
|
|
381
|
+
<span
|
|
382
|
+
class="pf-c-options-menu__toggle-text"
|
|
383
|
+
/>
|
|
384
|
+
<span
|
|
385
|
+
class="pf-c-options-menu__toggle-icon"
|
|
386
|
+
>
|
|
387
|
+
<svg
|
|
388
|
+
aria-hidden="true"
|
|
389
|
+
fill="currentColor"
|
|
390
|
+
height="1em"
|
|
391
|
+
role="img"
|
|
392
|
+
style="vertical-align: -0.125em;"
|
|
393
|
+
viewBox="0 0 320 512"
|
|
394
|
+
width="1em"
|
|
395
|
+
>
|
|
396
|
+
<path
|
|
397
|
+
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"
|
|
398
|
+
/>
|
|
399
|
+
</svg>
|
|
400
|
+
</span>
|
|
401
|
+
</button>
|
|
402
|
+
<ul
|
|
403
|
+
aria-labelledby="regular-toggle"
|
|
404
|
+
class="pf-c-options-menu__menu"
|
|
405
|
+
role="menu"
|
|
406
|
+
>
|
|
407
|
+
<section
|
|
408
|
+
class="pf-c-options-menu__group"
|
|
409
|
+
index="0"
|
|
410
|
+
role="none"
|
|
411
|
+
>
|
|
412
|
+
<h1
|
|
413
|
+
class="pf-c-options-menu__group-title"
|
|
414
|
+
>
|
|
415
|
+
Sort order
|
|
416
|
+
</h1>
|
|
417
|
+
<ul
|
|
418
|
+
aria-label=""
|
|
419
|
+
class=""
|
|
420
|
+
role="group"
|
|
421
|
+
>
|
|
422
|
+
<li
|
|
423
|
+
id=""
|
|
424
|
+
role="none"
|
|
425
|
+
>
|
|
426
|
+
<button
|
|
427
|
+
aria-disabled="false"
|
|
428
|
+
class="pf-c-options-menu__menu-item"
|
|
429
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-2"
|
|
430
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
431
|
+
data-ouia-safe="true"
|
|
432
|
+
role="menuitem"
|
|
433
|
+
tabindex="-1"
|
|
434
|
+
type="button"
|
|
435
|
+
>
|
|
436
|
+
Name
|
|
437
|
+
</button>
|
|
438
|
+
</li>
|
|
439
|
+
<li
|
|
440
|
+
id=""
|
|
441
|
+
role="none"
|
|
442
|
+
>
|
|
443
|
+
<button
|
|
444
|
+
aria-disabled="false"
|
|
445
|
+
class="pf-c-options-menu__menu-item"
|
|
446
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-4"
|
|
447
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
448
|
+
data-ouia-safe="true"
|
|
449
|
+
role="menuitem"
|
|
450
|
+
tabindex="-1"
|
|
451
|
+
type="button"
|
|
452
|
+
>
|
|
453
|
+
Date
|
|
454
|
+
</button>
|
|
455
|
+
</li>
|
|
456
|
+
<li
|
|
457
|
+
id=""
|
|
458
|
+
role="none"
|
|
459
|
+
>
|
|
460
|
+
<button
|
|
461
|
+
aria-disabled="true"
|
|
462
|
+
class="pf-m-disabled pf-c-options-menu__menu-item"
|
|
463
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-6"
|
|
464
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
465
|
+
data-ouia-safe="true"
|
|
466
|
+
role="menuitem"
|
|
467
|
+
tabindex="-1"
|
|
468
|
+
type="button"
|
|
469
|
+
>
|
|
470
|
+
Disabled
|
|
471
|
+
</button>
|
|
472
|
+
</li>
|
|
473
|
+
<li
|
|
474
|
+
id=""
|
|
475
|
+
role="none"
|
|
476
|
+
>
|
|
477
|
+
<button
|
|
478
|
+
aria-disabled="false"
|
|
479
|
+
class="pf-c-options-menu__menu-item"
|
|
480
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-8"
|
|
481
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
482
|
+
data-ouia-safe="true"
|
|
483
|
+
role="menuitem"
|
|
484
|
+
tabindex="-1"
|
|
485
|
+
type="button"
|
|
486
|
+
>
|
|
487
|
+
Size
|
|
488
|
+
</button>
|
|
489
|
+
</li>
|
|
490
|
+
</ul>
|
|
491
|
+
</section>
|
|
492
|
+
<li
|
|
493
|
+
class="pf-c-divider"
|
|
494
|
+
index="1"
|
|
495
|
+
role="separator"
|
|
496
|
+
/>
|
|
497
|
+
<section
|
|
498
|
+
class="pf-c-options-menu__group"
|
|
499
|
+
index="2"
|
|
500
|
+
role="none"
|
|
501
|
+
>
|
|
502
|
+
<h1
|
|
503
|
+
class="pf-c-options-menu__group-title"
|
|
504
|
+
>
|
|
505
|
+
Sort direction
|
|
506
|
+
</h1>
|
|
507
|
+
<ul
|
|
508
|
+
aria-label=""
|
|
509
|
+
class=""
|
|
510
|
+
role="group"
|
|
511
|
+
>
|
|
512
|
+
<li
|
|
513
|
+
id=""
|
|
514
|
+
role="none"
|
|
515
|
+
>
|
|
516
|
+
<button
|
|
517
|
+
aria-disabled="false"
|
|
518
|
+
class="pf-c-options-menu__menu-item"
|
|
519
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-10"
|
|
520
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
521
|
+
data-ouia-safe="true"
|
|
522
|
+
role="menuitem"
|
|
523
|
+
tabindex="-1"
|
|
524
|
+
type="button"
|
|
525
|
+
>
|
|
526
|
+
Ascending
|
|
527
|
+
</button>
|
|
528
|
+
</li>
|
|
529
|
+
<li
|
|
530
|
+
id=""
|
|
531
|
+
role="none"
|
|
532
|
+
>
|
|
533
|
+
<button
|
|
534
|
+
aria-disabled="false"
|
|
535
|
+
class="pf-c-options-menu__menu-item"
|
|
536
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-12"
|
|
537
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
538
|
+
data-ouia-safe="true"
|
|
539
|
+
role="menuitem"
|
|
540
|
+
tabindex="-1"
|
|
541
|
+
type="button"
|
|
542
|
+
>
|
|
543
|
+
Descending
|
|
544
|
+
</button>
|
|
545
|
+
</li>
|
|
546
|
+
<li
|
|
547
|
+
class="pf-c-divider"
|
|
548
|
+
role="separator"
|
|
549
|
+
/>
|
|
550
|
+
</ul>
|
|
551
|
+
</section>
|
|
552
|
+
</ul>
|
|
553
|
+
</div>
|
|
554
|
+
</DocumentFragment>
|
|
555
|
+
`;
|
|
556
|
+
|
|
361
557
|
exports[`optionsMenu right aligned + open up 1`] = `
|
|
362
558
|
<DocumentFragment>
|
|
363
559
|
<div
|
|
364
560
|
class="pf-c-options-menu pf-m-top pf-m-align-right"
|
|
365
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
561
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-6"
|
|
366
562
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
367
563
|
data-ouia-safe="true"
|
|
368
564
|
id="rightAlignedOpenUp"
|
|
@@ -372,7 +568,7 @@ exports[`optionsMenu right aligned + open up 1`] = `
|
|
|
372
568
|
aria-haspopup="listbox"
|
|
373
569
|
aria-label="Options menu"
|
|
374
570
|
class="pf-c-options-menu__toggle"
|
|
375
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
571
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-6"
|
|
376
572
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
377
573
|
data-ouia-safe="true"
|
|
378
574
|
id="rightAlignedOpenUp-toggle"
|
|
@@ -407,7 +603,7 @@ exports[`optionsMenu right aligned 1`] = `
|
|
|
407
603
|
<DocumentFragment>
|
|
408
604
|
<div
|
|
409
605
|
class="pf-c-options-menu pf-m-align-right"
|
|
410
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
606
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-4"
|
|
411
607
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
412
608
|
data-ouia-safe="true"
|
|
413
609
|
id="rightAligned"
|
|
@@ -417,7 +613,7 @@ exports[`optionsMenu right aligned 1`] = `
|
|
|
417
613
|
aria-haspopup="listbox"
|
|
418
614
|
aria-label="Options menu"
|
|
419
615
|
class="pf-c-options-menu__toggle"
|
|
420
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
616
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-4"
|
|
421
617
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
422
618
|
data-ouia-safe="true"
|
|
423
619
|
id="rightAligned-toggle"
|
|
@@ -452,14 +648,14 @@ exports[`optionsMenu text 1`] = `
|
|
|
452
648
|
<DocumentFragment>
|
|
453
649
|
<div
|
|
454
650
|
class="pf-c-options-menu"
|
|
455
|
-
data-ouia-component-id="OUIA-Generated-OptionsMenu-
|
|
651
|
+
data-ouia-component-id="OUIA-Generated-OptionsMenu-9"
|
|
456
652
|
data-ouia-component-type="PF4/OptionsMenu"
|
|
457
653
|
data-ouia-safe="true"
|
|
458
654
|
id="text"
|
|
459
655
|
>
|
|
460
656
|
<div
|
|
461
657
|
class="pf-c-options-menu__toggle pf-m-text"
|
|
462
|
-
id="pf-dropdown-toggle-id-
|
|
658
|
+
id="pf-dropdown-toggle-id-8"
|
|
463
659
|
>
|
|
464
660
|
<span
|
|
465
661
|
class="pf-c-options-menu__toggle-text"
|
|
@@ -203,6 +203,8 @@ export interface PopoverProps {
|
|
|
203
203
|
boundary?: 'scrollParent' | 'window' | 'viewport' | HTMLElement;
|
|
204
204
|
/** @deprecated - no longer used */
|
|
205
205
|
tippyProps?: Partial<TippyProps>;
|
|
206
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
207
|
+
removeFindDomNode?: boolean;
|
|
206
208
|
}
|
|
207
209
|
|
|
208
210
|
const alertStyle = {
|
|
@@ -252,6 +254,7 @@ export const Popover: React.FunctionComponent<PopoverProps> = ({
|
|
|
252
254
|
reference,
|
|
253
255
|
hasNoPadding = false,
|
|
254
256
|
hasAutoWidth = false,
|
|
257
|
+
removeFindDomNode = false,
|
|
255
258
|
...rest
|
|
256
259
|
}: PopoverProps) => {
|
|
257
260
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -466,6 +469,7 @@ export const Popover: React.FunctionComponent<PopoverProps> = ({
|
|
|
466
469
|
enableFlip={enableFlip}
|
|
467
470
|
zIndex={zIndex}
|
|
468
471
|
flipBehavior={flipBehavior}
|
|
472
|
+
removeFindDomNode={removeFindDomNode}
|
|
469
473
|
/>
|
|
470
474
|
</PopoverContext.Provider>
|
|
471
475
|
);
|
|
@@ -1,27 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Button } from '../Button';
|
|
3
3
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
4
|
-
import { FindRefWrapper } from '../../helpers/Popper/FindRefWrapper';
|
|
5
4
|
|
|
6
5
|
export const PopoverCloseButton: React.FunctionComponent<PopoverCloseButtonProps> = ({
|
|
7
6
|
onClose = () => undefined as void,
|
|
8
7
|
...props
|
|
9
|
-
}: PopoverCloseButtonProps) =>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
}, [closeButtonElement]);
|
|
17
|
-
return (
|
|
18
|
-
<FindRefWrapper onFoundRef={(foundRef: any) => setCloseButtonElement(foundRef)}>
|
|
19
|
-
<Button variant="plain" aria-label {...props} style={{ pointerEvents: 'auto' }}>
|
|
20
|
-
<TimesIcon />
|
|
21
|
-
</Button>
|
|
22
|
-
</FindRefWrapper>
|
|
23
|
-
);
|
|
24
|
-
};
|
|
8
|
+
}: PopoverCloseButtonProps) => (
|
|
9
|
+
<Button onClick={onClose} variant="plain" aria-label {...props} style={{ pointerEvents: 'auto' }}>
|
|
10
|
+
<TimesIcon />
|
|
11
|
+
</Button>
|
|
12
|
+
);
|
|
13
|
+
|
|
25
14
|
PopoverCloseButton.displayName = 'PopoverCloseButton';
|
|
26
15
|
|
|
27
16
|
export interface PopoverCloseButtonProps {
|
|
@@ -90,3 +90,28 @@ test('popover can close from content (uncontrolled)', () => {
|
|
|
90
90
|
);
|
|
91
91
|
expect(asFragment()).toMatchSnapshot();
|
|
92
92
|
});
|
|
93
|
+
|
|
94
|
+
test('popover renders in strict mode', () => {
|
|
95
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
96
|
+
const { asFragment } = render(
|
|
97
|
+
<React.StrictMode>
|
|
98
|
+
<Popover
|
|
99
|
+
id="test"
|
|
100
|
+
position="top"
|
|
101
|
+
isVisible
|
|
102
|
+
hideOnOutsideClick
|
|
103
|
+
headerContent={<div>Popover Header</div>}
|
|
104
|
+
bodyContent={
|
|
105
|
+
<div>
|
|
106
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id feugiat augue, nec fringilla turpis.
|
|
107
|
+
</div>
|
|
108
|
+
}
|
|
109
|
+
removeFindDomNode
|
|
110
|
+
>
|
|
111
|
+
<div>Toggle Popover</div>
|
|
112
|
+
</Popover>
|
|
113
|
+
</React.StrictMode>
|
|
114
|
+
);
|
|
115
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
116
|
+
expect(asFragment()).toMatchSnapshot();
|
|
117
|
+
});
|
|
@@ -33,3 +33,13 @@ exports[`popover renders close-button, header and body 1`] = `
|
|
|
33
33
|
</div>
|
|
34
34
|
</DocumentFragment>
|
|
35
35
|
`;
|
|
36
|
+
|
|
37
|
+
exports[`popover renders in strict mode 1`] = `
|
|
38
|
+
<DocumentFragment>
|
|
39
|
+
<div>
|
|
40
|
+
<div>
|
|
41
|
+
Toggle Popover
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</DocumentFragment>
|
|
45
|
+
`;
|
|
@@ -90,6 +90,8 @@ export interface SearchInputProps extends Omit<React.HTMLProps<HTMLDivElement>,
|
|
|
90
90
|
* appendTo={document.getElementById('target')}
|
|
91
91
|
*/
|
|
92
92
|
appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
|
|
93
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
94
|
+
removeFindDomNode?: boolean;
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
|
|
@@ -120,6 +122,7 @@ const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
|
|
|
120
122
|
submitSearchButtonLabel = 'Search',
|
|
121
123
|
isDisabled = false,
|
|
122
124
|
appendTo,
|
|
125
|
+
removeFindDomNode = false,
|
|
123
126
|
...props
|
|
124
127
|
}: SearchInputProps) => {
|
|
125
128
|
const [isSearchMenuOpen, setIsSearchMenuOpen] = React.useState(false);
|
|
@@ -316,6 +319,7 @@ const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
|
|
|
316
319
|
isVisible={isSearchMenuOpen}
|
|
317
320
|
enableFlip={true}
|
|
318
321
|
appendTo={() => appendTo || searchInputRef.current}
|
|
322
|
+
removeFindDomNode={removeFindDomNode}
|
|
319
323
|
/>
|
|
320
324
|
</div>
|
|
321
325
|
);
|
|
@@ -33,6 +33,32 @@ describe('SearchInput', () => {
|
|
|
33
33
|
expect(screen.getByTestId('test-id').querySelector('.pf-c-badge')).toBeInTheDocument();
|
|
34
34
|
});
|
|
35
35
|
|
|
36
|
+
test('renders search input in strict mode', async () => {
|
|
37
|
+
const user = userEvent.setup();
|
|
38
|
+
|
|
39
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
40
|
+
const { asFragment } = render(
|
|
41
|
+
<React.StrictMode>
|
|
42
|
+
<SearchInput
|
|
43
|
+
attributes={[
|
|
44
|
+
{ attr: 'username', display: 'Username' },
|
|
45
|
+
{ attr: 'firstname', display: 'First name' }
|
|
46
|
+
]}
|
|
47
|
+
advancedSearchDelimiter=":"
|
|
48
|
+
value="username:player firstname:john"
|
|
49
|
+
onChange={props.onChange}
|
|
50
|
+
onSearch={props.onSearch}
|
|
51
|
+
onClear={props.onClear}
|
|
52
|
+
removeFindDomNode
|
|
53
|
+
/>
|
|
54
|
+
</React.StrictMode>
|
|
55
|
+
);
|
|
56
|
+
await user.click(screen.getByRole('button', { name: 'Search' }));
|
|
57
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
58
|
+
expect(props.onSearch).toHaveBeenCalled();
|
|
59
|
+
expect(asFragment()).toMatchSnapshot();
|
|
60
|
+
});
|
|
61
|
+
|
|
36
62
|
test('navigable search results', async () => {
|
|
37
63
|
const user = userEvent.setup();
|
|
38
64
|
|
|
@@ -110,7 +136,7 @@ describe('SearchInput', () => {
|
|
|
110
136
|
await user.click(screen.getByRole('button', { name: 'Search' }));
|
|
111
137
|
|
|
112
138
|
await user.click(screen.getByRole('button', { name: 'Open advanced search' }));
|
|
113
|
-
expect(screen.getByTestId('test-id')).toContainElement(screen.getByText('First name'))
|
|
139
|
+
expect(screen.getByTestId('test-id')).toContainElement(screen.getByText('First name'));
|
|
114
140
|
|
|
115
141
|
expect(props.onSearch).toHaveBeenCalled();
|
|
116
142
|
expect(asFragment()).toMatchSnapshot();
|