@patternfly/react-core 4.277.0 → 4.278.1

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/components/InputGroup/InputGroup.d.ts.map +1 -1
  3. package/components/InputGroup/InputGroup.js +1 -12
  4. package/components/InputGroup/InputGroup.js.map +1 -1
  5. package/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  6. package/components/TreeView/TreeViewListItem.js +3 -3
  7. package/components/TreeView/TreeViewListItem.js.map +1 -1
  8. package/dist/esm/components/InputGroup/InputGroup.d.ts.map +1 -1
  9. package/dist/esm/components/InputGroup/InputGroup.js +1 -12
  10. package/dist/esm/components/InputGroup/InputGroup.js.map +1 -1
  11. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  12. package/dist/esm/components/TreeView/TreeViewListItem.js +3 -3
  13. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  14. package/dist/esm/next/components/Dropdown/Dropdown.d.ts +8 -0
  15. package/dist/esm/next/components/Dropdown/Dropdown.d.ts.map +1 -1
  16. package/dist/esm/next/components/Dropdown/Dropdown.js +11 -4
  17. package/dist/esm/next/components/Dropdown/Dropdown.js.map +1 -1
  18. package/dist/js/components/InputGroup/InputGroup.d.ts.map +1 -1
  19. package/dist/js/components/InputGroup/InputGroup.js +1 -12
  20. package/dist/js/components/InputGroup/InputGroup.js.map +1 -1
  21. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  22. package/dist/js/components/TreeView/TreeViewListItem.js +3 -3
  23. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  24. package/dist/js/next/components/Dropdown/Dropdown.d.ts +8 -0
  25. package/dist/js/next/components/Dropdown/Dropdown.d.ts.map +1 -1
  26. package/dist/js/next/components/Dropdown/Dropdown.js +11 -4
  27. package/dist/js/next/components/Dropdown/Dropdown.js.map +1 -1
  28. package/dist/umd/react-core.min.js +2 -2
  29. package/next/components/Dropdown/Dropdown.d.ts +8 -0
  30. package/next/components/Dropdown/Dropdown.d.ts.map +1 -1
  31. package/next/components/Dropdown/Dropdown.js +11 -4
  32. package/next/components/Dropdown/Dropdown.js.map +1 -1
  33. package/package.json +2 -2
  34. package/src/components/InputGroup/InputGroup.tsx +1 -17
  35. package/src/components/InputGroup/__tests__/InputGroup.test.tsx +7 -36
  36. package/src/components/NumberInput/__tests__/NumberInput.test.tsx +0 -1
  37. package/src/components/TreeView/TreeViewListItem.tsx +3 -1
  38. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +60 -0
  39. package/src/next/components/Dropdown/Dropdown.tsx +22 -10
@@ -32,6 +32,14 @@ export interface DropdownProps extends MenuProps, OUIAProps {
32
32
  ouiaSafe?: boolean;
33
33
  /** z-index of the dropdown menu */
34
34
  zIndex?: number;
35
+ /** The container to append the dropdown to. Defaults to 'inline'.
36
+ * If your dropdown is being cut off you can append it to an element higher up the DOM tree.
37
+ * Some examples:
38
+ * appendTo="inline"
39
+ * appendTo={() => document.body}
40
+ * appendTo={document.getElementById('target')}
41
+ */
42
+ appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
35
43
  }
36
44
 
37
45
  const DropdownBase: React.FunctionComponent<DropdownProps> = ({
@@ -48,6 +56,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
48
56
  ouiaId,
49
57
  ouiaSafe = true,
50
58
  zIndex = 9999,
59
+ appendTo = 'inline',
51
60
  ...props
52
61
  }: DropdownProps) => {
53
62
  const localMenuRef = React.useRef<HTMLDivElement>();
@@ -109,21 +118,24 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
109
118
  } as React.CSSProperties
110
119
  })}
111
120
  {...props}
121
+ {...ouiaProps}
112
122
  >
113
123
  <MenuContent>{children}</MenuContent>
114
124
  </Menu>
115
125
  );
116
- return (
117
- <div ref={containerRef} {...ouiaProps}>
118
- <Popper
119
- trigger={toggle(toggleRef)}
120
- removeFindDomNode
121
- popper={menu}
122
- appendTo={containerRef.current || undefined}
123
- isVisible={isOpen}
124
- zIndex={zIndex}
125
- />
126
+ const popperProps = {
127
+ trigger: toggle(toggleRef),
128
+ removeFindDomNode: true,
129
+ popper: menu,
130
+ isVisible: isOpen,
131
+ zIndex
132
+ };
133
+ return appendTo === 'inline' ? (
134
+ <div ref={containerRef}>
135
+ <Popper {...popperProps} appendTo={containerRef.current || undefined} />
126
136
  </div>
137
+ ) : (
138
+ <Popper {...popperProps} appendTo={appendTo} />
127
139
  );
128
140
  };
129
141