@patternfly/react-core 4.236.7 → 4.236.8
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 +8 -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/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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "4.236.
|
|
3
|
+
"version": "4.236.8",
|
|
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",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"generate": "node scripts/copyStyles.js"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@patternfly/react-icons": "^4.87.
|
|
48
|
-
"@patternfly/react-styles": "^4.86.
|
|
49
|
-
"@patternfly/react-tokens": "^4.88.
|
|
47
|
+
"@patternfly/react-icons": "^4.87.8",
|
|
48
|
+
"@patternfly/react-styles": "^4.86.8",
|
|
49
|
+
"@patternfly/react-tokens": "^4.88.8",
|
|
50
50
|
"focus-trap": "6.9.2",
|
|
51
51
|
"react-dropzone": "9.0.0",
|
|
52
52
|
"tippy.js": "5.1.2",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"react": "^16.8.0 || ^17.0.0",
|
|
71
71
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "37520d7f027e9777fbd76f40485388b29d93e292"
|
|
74
74
|
}
|
|
@@ -61,6 +61,8 @@ export interface ApplicationLauncherProps
|
|
|
61
61
|
favoritesLabel?: string;
|
|
62
62
|
/** ID of toggle */
|
|
63
63
|
toggleId?: string;
|
|
64
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
65
|
+
removeFindDomNode?: boolean;
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
export class ApplicationLauncher extends React.Component<ApplicationLauncherProps> {
|
|
@@ -83,7 +85,8 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
83
85
|
searchPlaceholderText: 'Filter by name...',
|
|
84
86
|
searchNoResultsText: 'No results found',
|
|
85
87
|
favoritesLabel: 'Favorites',
|
|
86
|
-
menuAppendTo: 'inline'
|
|
88
|
+
menuAppendTo: 'inline',
|
|
89
|
+
removeFindDomNode: false
|
|
87
90
|
};
|
|
88
91
|
|
|
89
92
|
createSearchBox = () => {
|
|
@@ -129,6 +132,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
129
132
|
favoritesLabel,
|
|
130
133
|
searchNoResultsText,
|
|
131
134
|
menuAppendTo,
|
|
135
|
+
removeFindDomNode,
|
|
132
136
|
...props
|
|
133
137
|
} = this.props;
|
|
134
138
|
let renderableItems: React.ReactNode[] = [];
|
|
@@ -189,6 +193,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
|
|
|
189
193
|
className={className}
|
|
190
194
|
aria-label={ariaLabel}
|
|
191
195
|
menuAppendTo={menuAppendTo}
|
|
196
|
+
removeFindDomNode={removeFindDomNode}
|
|
192
197
|
toggle={
|
|
193
198
|
<DropdownToggle
|
|
194
199
|
id={toggleId}
|
|
@@ -55,8 +55,17 @@ describe('ApplicationLauncher', () => {
|
|
|
55
55
|
|
|
56
56
|
test('custom icon', () => {
|
|
57
57
|
const { asFragment } = render(
|
|
58
|
-
<
|
|
58
|
+
<React.StrictMode>
|
|
59
|
+
<ApplicationLauncher items={dropdownItems} isOpen toggleIcon={<HelpIcon id="test-icon" />} />
|
|
60
|
+
</React.StrictMode>
|
|
59
61
|
);
|
|
60
62
|
expect(asFragment()).toMatchSnapshot();
|
|
61
63
|
});
|
|
64
|
+
|
|
65
|
+
test('Renders in strict mode', () => {
|
|
66
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
67
|
+
const { asFragment } = render(<ApplicationLauncher removeFindDomNode isOpen items={dropdownItems} />);
|
|
68
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
69
|
+
expect(asFragment()).toMatchSnapshot();
|
|
70
|
+
});
|
|
62
71
|
});
|
package/src/components/ApplicationLauncher/__tests__/__snapshots__/ApplicationLauncher.test.tsx.snap
CHANGED
|
@@ -1,5 +1,151 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`ApplicationLauncher Renders in strict mode 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<nav
|
|
6
|
+
aria-label="Application launcher"
|
|
7
|
+
class="pf-c-app-launcher pf-m-expanded"
|
|
8
|
+
data-ouia-component-type="PF4/ApplicationLauncher"
|
|
9
|
+
data-ouia-safe="true"
|
|
10
|
+
>
|
|
11
|
+
<button
|
|
12
|
+
aria-expanded="true"
|
|
13
|
+
aria-haspopup="true"
|
|
14
|
+
aria-label="Application launcher"
|
|
15
|
+
class="pf-c-app-launcher__toggle"
|
|
16
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-8"
|
|
17
|
+
data-ouia-component-type="PF4/DropdownToggle"
|
|
18
|
+
data-ouia-safe="true"
|
|
19
|
+
id="pf-dropdown-toggle-id-7"
|
|
20
|
+
type="button"
|
|
21
|
+
>
|
|
22
|
+
<span>
|
|
23
|
+
<svg
|
|
24
|
+
aria-hidden="true"
|
|
25
|
+
fill="currentColor"
|
|
26
|
+
height="1em"
|
|
27
|
+
role="img"
|
|
28
|
+
style="vertical-align: -0.125em;"
|
|
29
|
+
viewBox="0 0 512 512"
|
|
30
|
+
width="1em"
|
|
31
|
+
>
|
|
32
|
+
<path
|
|
33
|
+
d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"
|
|
34
|
+
/>
|
|
35
|
+
</svg>
|
|
36
|
+
</span>
|
|
37
|
+
</button>
|
|
38
|
+
<ul
|
|
39
|
+
aria-labelledby="pf-dropdown-toggle-id-7"
|
|
40
|
+
class="pf-c-app-launcher__menu"
|
|
41
|
+
role="menu"
|
|
42
|
+
>
|
|
43
|
+
<li
|
|
44
|
+
role="none"
|
|
45
|
+
>
|
|
46
|
+
<a
|
|
47
|
+
aria-disabled="false"
|
|
48
|
+
class="pf-c-app-launcher__menu-item"
|
|
49
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-19"
|
|
50
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
51
|
+
data-ouia-safe="true"
|
|
52
|
+
role="menuitem"
|
|
53
|
+
tabindex="-1"
|
|
54
|
+
>
|
|
55
|
+
Link
|
|
56
|
+
</a>
|
|
57
|
+
</li>
|
|
58
|
+
<li
|
|
59
|
+
role="none"
|
|
60
|
+
>
|
|
61
|
+
<button
|
|
62
|
+
aria-disabled="false"
|
|
63
|
+
class="pf-c-app-launcher__menu-item"
|
|
64
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-20"
|
|
65
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
66
|
+
data-ouia-safe="true"
|
|
67
|
+
role="menuitem"
|
|
68
|
+
tabindex="-1"
|
|
69
|
+
type="button"
|
|
70
|
+
>
|
|
71
|
+
Action
|
|
72
|
+
</button>
|
|
73
|
+
</li>
|
|
74
|
+
<li
|
|
75
|
+
role="none"
|
|
76
|
+
>
|
|
77
|
+
<a
|
|
78
|
+
aria-disabled="true"
|
|
79
|
+
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
80
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-21"
|
|
81
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
82
|
+
data-ouia-safe="true"
|
|
83
|
+
role="menuitem"
|
|
84
|
+
tabindex="-1"
|
|
85
|
+
>
|
|
86
|
+
Disabled Link
|
|
87
|
+
</a>
|
|
88
|
+
</li>
|
|
89
|
+
<li
|
|
90
|
+
role="none"
|
|
91
|
+
>
|
|
92
|
+
<button
|
|
93
|
+
aria-disabled="true"
|
|
94
|
+
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
95
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-22"
|
|
96
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
97
|
+
data-ouia-safe="true"
|
|
98
|
+
role="menuitem"
|
|
99
|
+
tabindex="-1"
|
|
100
|
+
type="button"
|
|
101
|
+
>
|
|
102
|
+
Disabled Action
|
|
103
|
+
</button>
|
|
104
|
+
</li>
|
|
105
|
+
<li
|
|
106
|
+
role="none"
|
|
107
|
+
>
|
|
108
|
+
<div
|
|
109
|
+
class="pf-c-divider"
|
|
110
|
+
role="separator"
|
|
111
|
+
/>
|
|
112
|
+
</li>
|
|
113
|
+
<li
|
|
114
|
+
role="none"
|
|
115
|
+
>
|
|
116
|
+
<a
|
|
117
|
+
aria-disabled="false"
|
|
118
|
+
class="pf-c-app-launcher__menu-item"
|
|
119
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-23"
|
|
120
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
121
|
+
data-ouia-safe="true"
|
|
122
|
+
role="menuitem"
|
|
123
|
+
tabindex="-1"
|
|
124
|
+
>
|
|
125
|
+
Separated Link
|
|
126
|
+
</a>
|
|
127
|
+
</li>
|
|
128
|
+
<li
|
|
129
|
+
role="none"
|
|
130
|
+
>
|
|
131
|
+
<button
|
|
132
|
+
aria-disabled="false"
|
|
133
|
+
class="pf-c-app-launcher__menu-item"
|
|
134
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-24"
|
|
135
|
+
data-ouia-component-type="PF4/DropdownItem"
|
|
136
|
+
data-ouia-safe="true"
|
|
137
|
+
role="menuitem"
|
|
138
|
+
tabindex="-1"
|
|
139
|
+
type="button"
|
|
140
|
+
>
|
|
141
|
+
Separated Action
|
|
142
|
+
</button>
|
|
143
|
+
</li>
|
|
144
|
+
</ul>
|
|
145
|
+
</nav>
|
|
146
|
+
</DocumentFragment>
|
|
147
|
+
`;
|
|
148
|
+
|
|
3
149
|
exports[`ApplicationLauncher custom icon 1`] = `
|
|
4
150
|
<DocumentFragment>
|
|
5
151
|
<nav
|
|
@@ -13,7 +159,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
13
159
|
aria-haspopup="true"
|
|
14
160
|
aria-label="Application launcher"
|
|
15
161
|
class="pf-c-app-launcher__toggle"
|
|
16
|
-
data-ouia-component-id="OUIA-Generated-DropdownToggle-
|
|
162
|
+
data-ouia-component-id="OUIA-Generated-DropdownToggle-7"
|
|
17
163
|
data-ouia-component-type="PF4/DropdownToggle"
|
|
18
164
|
data-ouia-safe="true"
|
|
19
165
|
id="pf-dropdown-toggle-id-5"
|
|
@@ -47,7 +193,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
47
193
|
<a
|
|
48
194
|
aria-disabled="false"
|
|
49
195
|
class="pf-c-app-launcher__menu-item"
|
|
50
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
196
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-8"
|
|
51
197
|
data-ouia-component-type="PF4/DropdownItem"
|
|
52
198
|
data-ouia-safe="true"
|
|
53
199
|
role="menuitem"
|
|
@@ -62,7 +208,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
62
208
|
<button
|
|
63
209
|
aria-disabled="false"
|
|
64
210
|
class="pf-c-app-launcher__menu-item"
|
|
65
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
211
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-10"
|
|
66
212
|
data-ouia-component-type="PF4/DropdownItem"
|
|
67
213
|
data-ouia-safe="true"
|
|
68
214
|
role="menuitem"
|
|
@@ -78,7 +224,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
78
224
|
<a
|
|
79
225
|
aria-disabled="true"
|
|
80
226
|
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
81
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
227
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-12"
|
|
82
228
|
data-ouia-component-type="PF4/DropdownItem"
|
|
83
229
|
data-ouia-safe="true"
|
|
84
230
|
role="menuitem"
|
|
@@ -93,7 +239,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
93
239
|
<button
|
|
94
240
|
aria-disabled="true"
|
|
95
241
|
class="pf-m-disabled pf-c-app-launcher__menu-item"
|
|
96
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
242
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-14"
|
|
97
243
|
data-ouia-component-type="PF4/DropdownItem"
|
|
98
244
|
data-ouia-safe="true"
|
|
99
245
|
role="menuitem"
|
|
@@ -117,7 +263,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
117
263
|
<a
|
|
118
264
|
aria-disabled="false"
|
|
119
265
|
class="pf-c-app-launcher__menu-item"
|
|
120
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
266
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-16"
|
|
121
267
|
data-ouia-component-type="PF4/DropdownItem"
|
|
122
268
|
data-ouia-safe="true"
|
|
123
269
|
role="menuitem"
|
|
@@ -132,7 +278,7 @@ exports[`ApplicationLauncher custom icon 1`] = `
|
|
|
132
278
|
<button
|
|
133
279
|
aria-disabled="false"
|
|
134
280
|
class="pf-c-app-launcher__menu-item"
|
|
135
|
-
data-ouia-component-id="OUIA-Generated-DropdownItem-
|
|
281
|
+
data-ouia-component-id="OUIA-Generated-DropdownItem-18"
|
|
136
282
|
data-ouia-component-type="PF4/DropdownItem"
|
|
137
283
|
data-ouia-safe="true"
|
|
138
284
|
role="menuitem"
|
|
@@ -66,6 +66,8 @@ export interface ContextSelectorProps extends Omit<ToggleMenuBaseProps, 'menuApp
|
|
|
66
66
|
isFlipEnabled?: boolean;
|
|
67
67
|
/** Id of the context selector */
|
|
68
68
|
id?: string;
|
|
69
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
70
|
+
removeFindDomNode?: boolean;
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
export class ContextSelector extends React.Component<ContextSelectorProps, { ouiaStateId: string }> {
|
|
@@ -89,7 +91,8 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
89
91
|
footer: null as React.ReactNode,
|
|
90
92
|
isPlain: false,
|
|
91
93
|
isText: false,
|
|
92
|
-
isFlipEnabled: false
|
|
94
|
+
isFlipEnabled: false,
|
|
95
|
+
removeFindDomNode: false
|
|
93
96
|
};
|
|
94
97
|
constructor(props: ContextSelectorProps) {
|
|
95
98
|
super(props);
|
|
@@ -131,6 +134,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
131
134
|
disableFocusTrap,
|
|
132
135
|
isFlipEnabled,
|
|
133
136
|
id,
|
|
137
|
+
removeFindDomNode,
|
|
134
138
|
...props
|
|
135
139
|
} = this.props;
|
|
136
140
|
|
|
@@ -231,6 +235,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
|
|
|
231
235
|
popper={popperContainer}
|
|
232
236
|
appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
|
|
233
237
|
isVisible={isOpen}
|
|
238
|
+
removeFindDomNode={removeFindDomNode}
|
|
234
239
|
/>
|
|
235
240
|
);
|
|
236
241
|
}
|
|
@@ -21,7 +21,24 @@ describe('ContextSelector', () => {
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
test('Renders ContextSelector open', () => {
|
|
24
|
-
const { asFragment } = render(
|
|
24
|
+
const { asFragment } = render(
|
|
25
|
+
<ContextSelector isOpen id="render-open">
|
|
26
|
+
{items}
|
|
27
|
+
</ContextSelector>
|
|
28
|
+
);
|
|
29
|
+
expect(asFragment()).toMatchSnapshot();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
test('Renders in strict mode', () => {
|
|
33
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
34
|
+
const { asFragment } = render(
|
|
35
|
+
<React.StrictMode>
|
|
36
|
+
<ContextSelector removeFindDomNode isOpen id="render">
|
|
37
|
+
{items}
|
|
38
|
+
</ContextSelector>
|
|
39
|
+
</React.StrictMode>
|
|
40
|
+
);
|
|
41
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
25
42
|
expect(asFragment()).toMatchSnapshot();
|
|
26
43
|
});
|
|
27
44
|
|
package/src/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap
CHANGED
|
@@ -183,3 +183,147 @@ exports[`ContextSelector Renders ContextSelector open 1`] = `
|
|
|
183
183
|
</div>
|
|
184
184
|
</DocumentFragment>
|
|
185
185
|
`;
|
|
186
|
+
|
|
187
|
+
exports[`ContextSelector Renders in strict mode 1`] = `
|
|
188
|
+
<DocumentFragment>
|
|
189
|
+
<div
|
|
190
|
+
class="pf-c-context-selector pf-m-expanded"
|
|
191
|
+
data-ouia-component-id="OUIA-Generated-ContextSelector-4"
|
|
192
|
+
data-ouia-component-type="PF4/ContextSelector"
|
|
193
|
+
data-ouia-safe="true"
|
|
194
|
+
>
|
|
195
|
+
<button
|
|
196
|
+
aria-expanded="true"
|
|
197
|
+
aria-labelledby="pf-context-selector-label-id-render pf-context-selector-toggle-id-render"
|
|
198
|
+
class="pf-c-context-selector__toggle"
|
|
199
|
+
id="pf-context-selector-toggle-id-render"
|
|
200
|
+
type="button"
|
|
201
|
+
>
|
|
202
|
+
<span
|
|
203
|
+
class="pf-c-context-selector__toggle-text"
|
|
204
|
+
/>
|
|
205
|
+
<span
|
|
206
|
+
class="pf-c-context-selector__toggle-icon"
|
|
207
|
+
>
|
|
208
|
+
<svg
|
|
209
|
+
aria-hidden="true"
|
|
210
|
+
fill="currentColor"
|
|
211
|
+
height="1em"
|
|
212
|
+
role="img"
|
|
213
|
+
style="vertical-align: -0.125em;"
|
|
214
|
+
viewBox="0 0 320 512"
|
|
215
|
+
width="1em"
|
|
216
|
+
>
|
|
217
|
+
<path
|
|
218
|
+
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"
|
|
219
|
+
/>
|
|
220
|
+
</svg>
|
|
221
|
+
</span>
|
|
222
|
+
</button>
|
|
223
|
+
<div
|
|
224
|
+
class="pf-c-context-selector__menu"
|
|
225
|
+
id="render"
|
|
226
|
+
>
|
|
227
|
+
<div>
|
|
228
|
+
<div
|
|
229
|
+
class="pf-c-context-selector__menu-search"
|
|
230
|
+
>
|
|
231
|
+
<div
|
|
232
|
+
class="pf-c-input-group"
|
|
233
|
+
>
|
|
234
|
+
<input
|
|
235
|
+
aria-invalid="false"
|
|
236
|
+
aria-label="Search menu items"
|
|
237
|
+
class="pf-c-form-control"
|
|
238
|
+
data-ouia-component-id="OUIA-Generated-TextInputBase-3"
|
|
239
|
+
data-ouia-component-type="PF4/TextInput"
|
|
240
|
+
data-ouia-safe="true"
|
|
241
|
+
placeholder="Search"
|
|
242
|
+
type="search"
|
|
243
|
+
value=""
|
|
244
|
+
/>
|
|
245
|
+
<button
|
|
246
|
+
aria-disabled="false"
|
|
247
|
+
aria-label="Search menu items"
|
|
248
|
+
class="pf-c-button pf-m-control"
|
|
249
|
+
data-ouia-component-id="OUIA-Generated-Button-control-3"
|
|
250
|
+
data-ouia-component-type="PF4/Button"
|
|
251
|
+
data-ouia-safe="true"
|
|
252
|
+
type="button"
|
|
253
|
+
>
|
|
254
|
+
<svg
|
|
255
|
+
aria-hidden="true"
|
|
256
|
+
fill="currentColor"
|
|
257
|
+
height="1em"
|
|
258
|
+
role="img"
|
|
259
|
+
style="vertical-align: -0.125em;"
|
|
260
|
+
viewBox="0 0 512 512"
|
|
261
|
+
width="1em"
|
|
262
|
+
>
|
|
263
|
+
<path
|
|
264
|
+
d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"
|
|
265
|
+
/>
|
|
266
|
+
</svg>
|
|
267
|
+
</button>
|
|
268
|
+
</div>
|
|
269
|
+
</div>
|
|
270
|
+
<ul
|
|
271
|
+
class="pf-c-context-selector__menu-list"
|
|
272
|
+
role="menu"
|
|
273
|
+
>
|
|
274
|
+
<li
|
|
275
|
+
role="none"
|
|
276
|
+
>
|
|
277
|
+
<button
|
|
278
|
+
class="pf-c-context-selector__menu-list-item"
|
|
279
|
+
role="menuitem"
|
|
280
|
+
>
|
|
281
|
+
My Project
|
|
282
|
+
</button>
|
|
283
|
+
</li>
|
|
284
|
+
<li
|
|
285
|
+
role="none"
|
|
286
|
+
>
|
|
287
|
+
<button
|
|
288
|
+
class="pf-c-context-selector__menu-list-item"
|
|
289
|
+
role="menuitem"
|
|
290
|
+
>
|
|
291
|
+
OpenShift Cluster
|
|
292
|
+
</button>
|
|
293
|
+
</li>
|
|
294
|
+
<li
|
|
295
|
+
role="none"
|
|
296
|
+
>
|
|
297
|
+
<button
|
|
298
|
+
class="pf-c-context-selector__menu-list-item"
|
|
299
|
+
role="menuitem"
|
|
300
|
+
>
|
|
301
|
+
Production Ansible
|
|
302
|
+
</button>
|
|
303
|
+
</li>
|
|
304
|
+
<li
|
|
305
|
+
role="none"
|
|
306
|
+
>
|
|
307
|
+
<button
|
|
308
|
+
class="pf-c-context-selector__menu-list-item"
|
|
309
|
+
role="menuitem"
|
|
310
|
+
>
|
|
311
|
+
AWS
|
|
312
|
+
</button>
|
|
313
|
+
</li>
|
|
314
|
+
<li
|
|
315
|
+
role="none"
|
|
316
|
+
>
|
|
317
|
+
<button
|
|
318
|
+
class="pf-c-context-selector__menu-list-item"
|
|
319
|
+
role="menuitem"
|
|
320
|
+
>
|
|
321
|
+
Azure
|
|
322
|
+
</button>
|
|
323
|
+
</li>
|
|
324
|
+
</ul>
|
|
325
|
+
</div>
|
|
326
|
+
</div>
|
|
327
|
+
</div>
|
|
328
|
+
</DocumentFragment>
|
|
329
|
+
`;
|
|
@@ -60,6 +60,8 @@ export interface DropdownProps
|
|
|
60
60
|
* appended inline, e.g. `menuAppendTo="parent"`
|
|
61
61
|
*/
|
|
62
62
|
isFlipEnabled?: boolean;
|
|
63
|
+
/** @beta Opt-in for updated popper that does not use findDOMNode. */
|
|
64
|
+
removeFindDomNode?: boolean;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
@@ -72,6 +74,7 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
|
72
74
|
contextProps,
|
|
73
75
|
menuAppendTo = 'inline',
|
|
74
76
|
isFlipEnabled = false,
|
|
77
|
+
removeFindDomNode = false,
|
|
75
78
|
...props
|
|
76
79
|
}: DropdownProps) => (
|
|
77
80
|
<DropdownContext.Provider
|
|
@@ -97,7 +100,12 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
|
|
|
97
100
|
...contextProps
|
|
98
101
|
}}
|
|
99
102
|
>
|
|
100
|
-
<DropdownWithContext
|
|
103
|
+
<DropdownWithContext
|
|
104
|
+
menuAppendTo={menuAppendTo}
|
|
105
|
+
isFlipEnabled={isFlipEnabled}
|
|
106
|
+
removeFindDomNode={removeFindDomNode}
|
|
107
|
+
{...props}
|
|
108
|
+
/>
|
|
101
109
|
</DropdownContext.Provider>
|
|
102
110
|
);
|
|
103
111
|
Dropdown.displayName = 'Dropdown';
|
|
@@ -77,6 +77,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
|
|
|
77
77
|
autoFocus,
|
|
78
78
|
menuAppendTo,
|
|
79
79
|
isFlipEnabled,
|
|
80
|
+
removeFindDomNode,
|
|
80
81
|
...props
|
|
81
82
|
} = this.props;
|
|
82
83
|
const id = toggle.props.id || `pf-dropdown-toggle-id-${DropdownWithContext.currentId++}`;
|
|
@@ -174,6 +175,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
|
|
|
174
175
|
position={position}
|
|
175
176
|
appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
|
|
176
177
|
isVisible={isOpen}
|
|
178
|
+
removeFindDomNode={removeFindDomNode}
|
|
177
179
|
/>
|
|
178
180
|
);
|
|
179
181
|
}}
|
|
@@ -123,6 +123,22 @@ describe('Dropdown', () => {
|
|
|
123
123
|
);
|
|
124
124
|
expect(asFragment()).toMatchSnapshot();
|
|
125
125
|
});
|
|
126
|
+
|
|
127
|
+
test('Renders in strict mode', () => {
|
|
128
|
+
const consoleError = jest.spyOn(console, 'error');
|
|
129
|
+
const { asFragment } = render(
|
|
130
|
+
<React.StrictMode>
|
|
131
|
+
<Dropdown
|
|
132
|
+
isOpen
|
|
133
|
+
dropdownItems={dropdownItems}
|
|
134
|
+
toggle={<DropdownToggle id="Dropdown Toggle">Dropdown</DropdownToggle>}
|
|
135
|
+
removeFindDomNode
|
|
136
|
+
/>
|
|
137
|
+
</React.StrictMode>
|
|
138
|
+
);
|
|
139
|
+
expect(consoleError).not.toHaveBeenCalled();
|
|
140
|
+
expect(asFragment()).toMatchSnapshot();
|
|
141
|
+
});
|
|
126
142
|
});
|
|
127
143
|
|
|
128
144
|
describe('KebabToggle', () => {
|