@patternfly/react-core 4.202.22 → 4.202.25

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 (174) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/esm/components/DataList/DataListCheck.d.ts +6 -2
  3. package/dist/esm/components/DataList/DataListCheck.d.ts.map +1 -1
  4. package/dist/esm/components/DataList/DataListCheck.js +1 -1
  5. package/dist/esm/components/DataList/DataListCheck.js.map +1 -1
  6. package/dist/esm/components/DescriptionList/DescriptionListGroup.d.ts +1 -1
  7. package/dist/esm/components/DescriptionList/DescriptionListGroup.d.ts.map +1 -1
  8. package/dist/esm/components/DescriptionList/DescriptionListGroup.js.map +1 -1
  9. package/dist/esm/components/Drawer/DrawerActions.d.ts +1 -1
  10. package/dist/esm/components/Drawer/DrawerActions.d.ts.map +1 -1
  11. package/dist/esm/components/Drawer/DrawerActions.js.map +1 -1
  12. package/dist/esm/components/Drawer/DrawerCloseButton.d.ts +1 -1
  13. package/dist/esm/components/Drawer/DrawerCloseButton.d.ts.map +1 -1
  14. package/dist/esm/components/Drawer/DrawerCloseButton.js.map +1 -1
  15. package/dist/esm/components/Drawer/DrawerContent.d.ts +1 -1
  16. package/dist/esm/components/Drawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/esm/components/Drawer/DrawerContent.js.map +1 -1
  18. package/dist/esm/components/Drawer/DrawerContentBody.d.ts +1 -1
  19. package/dist/esm/components/Drawer/DrawerContentBody.d.ts.map +1 -1
  20. package/dist/esm/components/Drawer/DrawerContentBody.js.map +1 -1
  21. package/dist/esm/components/Drawer/DrawerHead.d.ts +1 -1
  22. package/dist/esm/components/Drawer/DrawerHead.d.ts.map +1 -1
  23. package/dist/esm/components/Drawer/DrawerHead.js.map +1 -1
  24. package/dist/esm/components/Drawer/DrawerMain.d.ts +1 -1
  25. package/dist/esm/components/Drawer/DrawerMain.d.ts.map +1 -1
  26. package/dist/esm/components/Drawer/DrawerMain.js.map +1 -1
  27. package/dist/esm/components/Drawer/DrawerPanelBody.d.ts +1 -1
  28. package/dist/esm/components/Drawer/DrawerPanelBody.d.ts.map +1 -1
  29. package/dist/esm/components/Drawer/DrawerPanelBody.js.map +1 -1
  30. package/dist/esm/components/Drawer/DrawerSection.d.ts +1 -1
  31. package/dist/esm/components/Drawer/DrawerSection.d.ts.map +1 -1
  32. package/dist/esm/components/Drawer/DrawerSection.js.map +1 -1
  33. package/dist/esm/components/Dropdown/BadgeToggle.js +1 -1
  34. package/dist/esm/components/Dropdown/BadgeToggle.js.map +1 -1
  35. package/dist/esm/components/Dropdown/Dropdown.js +1 -1
  36. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  37. package/dist/esm/components/Dropdown/DropdownItem.js +1 -1
  38. package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
  39. package/dist/esm/components/Dropdown/DropdownSeparator.js +1 -1
  40. package/dist/esm/components/Dropdown/DropdownSeparator.js.map +1 -1
  41. package/dist/esm/components/Dropdown/DropdownToggle.js +1 -1
  42. package/dist/esm/components/Dropdown/DropdownToggle.js.map +1 -1
  43. package/dist/esm/components/Dropdown/KebabToggle.js +1 -1
  44. package/dist/esm/components/Dropdown/KebabToggle.js.map +1 -1
  45. package/dist/esm/components/DualListSelector/DualListSelector.d.ts +1 -3
  46. package/dist/esm/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  47. package/dist/esm/components/DualListSelector/DualListSelector.js +25 -23
  48. package/dist/esm/components/DualListSelector/DualListSelector.js.map +1 -1
  49. package/dist/esm/components/OverflowMenu/OverflowMenuContent.d.ts +1 -1
  50. package/dist/esm/components/OverflowMenu/OverflowMenuContent.d.ts.map +1 -1
  51. package/dist/esm/components/OverflowMenu/OverflowMenuContent.js.map +1 -1
  52. package/dist/esm/components/OverflowMenu/OverflowMenuControl.d.ts +1 -1
  53. package/dist/esm/components/OverflowMenu/OverflowMenuControl.d.ts.map +1 -1
  54. package/dist/esm/components/OverflowMenu/OverflowMenuControl.js.map +1 -1
  55. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +1 -1
  56. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  57. package/dist/esm/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  58. package/dist/esm/components/OverflowMenu/OverflowMenuGroup.d.ts +1 -1
  59. package/dist/esm/components/OverflowMenu/OverflowMenuGroup.d.ts.map +1 -1
  60. package/dist/esm/components/OverflowMenu/OverflowMenuGroup.js.map +1 -1
  61. package/dist/esm/components/OverflowMenu/OverflowMenuItem.d.ts +1 -1
  62. package/dist/esm/components/OverflowMenu/OverflowMenuItem.d.ts.map +1 -1
  63. package/dist/esm/components/OverflowMenu/OverflowMenuItem.js.map +1 -1
  64. package/dist/esm/components/Select/Select.d.ts +2 -0
  65. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  66. package/dist/esm/components/Select/Select.js +3 -3
  67. package/dist/esm/components/Select/Select.js.map +1 -1
  68. package/dist/esm/components/Select/SelectToggle.d.ts +2 -0
  69. package/dist/esm/components/Select/SelectToggle.d.ts.map +1 -1
  70. package/dist/esm/components/Select/SelectToggle.js +6 -5
  71. package/dist/esm/components/Select/SelectToggle.js.map +1 -1
  72. package/dist/esm/components/Tabs/TabContent.js.map +1 -1
  73. package/dist/js/components/DataList/DataListCheck.d.ts +6 -2
  74. package/dist/js/components/DataList/DataListCheck.d.ts.map +1 -1
  75. package/dist/js/components/DataList/DataListCheck.js +1 -1
  76. package/dist/js/components/DataList/DataListCheck.js.map +1 -1
  77. package/dist/js/components/DescriptionList/DescriptionListGroup.d.ts +1 -1
  78. package/dist/js/components/DescriptionList/DescriptionListGroup.d.ts.map +1 -1
  79. package/dist/js/components/DescriptionList/DescriptionListGroup.js.map +1 -1
  80. package/dist/js/components/Drawer/DrawerActions.d.ts +1 -1
  81. package/dist/js/components/Drawer/DrawerActions.d.ts.map +1 -1
  82. package/dist/js/components/Drawer/DrawerActions.js.map +1 -1
  83. package/dist/js/components/Drawer/DrawerCloseButton.d.ts +1 -1
  84. package/dist/js/components/Drawer/DrawerCloseButton.d.ts.map +1 -1
  85. package/dist/js/components/Drawer/DrawerCloseButton.js.map +1 -1
  86. package/dist/js/components/Drawer/DrawerContent.d.ts +1 -1
  87. package/dist/js/components/Drawer/DrawerContent.d.ts.map +1 -1
  88. package/dist/js/components/Drawer/DrawerContent.js.map +1 -1
  89. package/dist/js/components/Drawer/DrawerContentBody.d.ts +1 -1
  90. package/dist/js/components/Drawer/DrawerContentBody.d.ts.map +1 -1
  91. package/dist/js/components/Drawer/DrawerContentBody.js.map +1 -1
  92. package/dist/js/components/Drawer/DrawerHead.d.ts +1 -1
  93. package/dist/js/components/Drawer/DrawerHead.d.ts.map +1 -1
  94. package/dist/js/components/Drawer/DrawerHead.js.map +1 -1
  95. package/dist/js/components/Drawer/DrawerMain.d.ts +1 -1
  96. package/dist/js/components/Drawer/DrawerMain.d.ts.map +1 -1
  97. package/dist/js/components/Drawer/DrawerMain.js.map +1 -1
  98. package/dist/js/components/Drawer/DrawerPanelBody.d.ts +1 -1
  99. package/dist/js/components/Drawer/DrawerPanelBody.d.ts.map +1 -1
  100. package/dist/js/components/Drawer/DrawerPanelBody.js.map +1 -1
  101. package/dist/js/components/Drawer/DrawerSection.d.ts +1 -1
  102. package/dist/js/components/Drawer/DrawerSection.d.ts.map +1 -1
  103. package/dist/js/components/Drawer/DrawerSection.js.map +1 -1
  104. package/dist/js/components/Dropdown/BadgeToggle.js +1 -1
  105. package/dist/js/components/Dropdown/BadgeToggle.js.map +1 -1
  106. package/dist/js/components/Dropdown/Dropdown.js +1 -1
  107. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  108. package/dist/js/components/Dropdown/DropdownItem.js +1 -1
  109. package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
  110. package/dist/js/components/Dropdown/DropdownSeparator.js +1 -1
  111. package/dist/js/components/Dropdown/DropdownSeparator.js.map +1 -1
  112. package/dist/js/components/Dropdown/DropdownToggle.js +1 -1
  113. package/dist/js/components/Dropdown/DropdownToggle.js.map +1 -1
  114. package/dist/js/components/Dropdown/KebabToggle.js +1 -1
  115. package/dist/js/components/Dropdown/KebabToggle.js.map +1 -1
  116. package/dist/js/components/DualListSelector/DualListSelector.d.ts +1 -3
  117. package/dist/js/components/DualListSelector/DualListSelector.d.ts.map +1 -1
  118. package/dist/js/components/DualListSelector/DualListSelector.js +25 -23
  119. package/dist/js/components/DualListSelector/DualListSelector.js.map +1 -1
  120. package/dist/js/components/OverflowMenu/OverflowMenuContent.d.ts +1 -1
  121. package/dist/js/components/OverflowMenu/OverflowMenuContent.d.ts.map +1 -1
  122. package/dist/js/components/OverflowMenu/OverflowMenuContent.js.map +1 -1
  123. package/dist/js/components/OverflowMenu/OverflowMenuControl.d.ts +1 -1
  124. package/dist/js/components/OverflowMenu/OverflowMenuControl.d.ts.map +1 -1
  125. package/dist/js/components/OverflowMenu/OverflowMenuControl.js.map +1 -1
  126. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts +1 -1
  127. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.d.ts.map +1 -1
  128. package/dist/js/components/OverflowMenu/OverflowMenuDropdownItem.js.map +1 -1
  129. package/dist/js/components/OverflowMenu/OverflowMenuGroup.d.ts +1 -1
  130. package/dist/js/components/OverflowMenu/OverflowMenuGroup.d.ts.map +1 -1
  131. package/dist/js/components/OverflowMenu/OverflowMenuGroup.js.map +1 -1
  132. package/dist/js/components/OverflowMenu/OverflowMenuItem.d.ts +1 -1
  133. package/dist/js/components/OverflowMenu/OverflowMenuItem.d.ts.map +1 -1
  134. package/dist/js/components/OverflowMenu/OverflowMenuItem.js.map +1 -1
  135. package/dist/js/components/Select/Select.d.ts +2 -0
  136. package/dist/js/components/Select/Select.d.ts.map +1 -1
  137. package/dist/js/components/Select/Select.js +3 -3
  138. package/dist/js/components/Select/Select.js.map +1 -1
  139. package/dist/js/components/Select/SelectToggle.d.ts +2 -0
  140. package/dist/js/components/Select/SelectToggle.d.ts.map +1 -1
  141. package/dist/js/components/Select/SelectToggle.js +6 -5
  142. package/dist/js/components/Select/SelectToggle.js.map +1 -1
  143. package/dist/js/components/Tabs/TabContent.js.map +1 -1
  144. package/dist/styles/base.css +5 -0
  145. package/dist/umd/react-core.css +3 -3
  146. package/dist/umd/react-core.js +41 -38
  147. package/dist/umd/react-core.min.css +72 -72
  148. package/dist/umd/react-core.min.js +1 -1
  149. package/package.json +6 -6
  150. package/src/components/DataList/DataListCheck.tsx +8 -3
  151. package/src/components/DescriptionList/DescriptionListGroup.tsx +1 -1
  152. package/src/components/Drawer/DrawerActions.tsx +1 -1
  153. package/src/components/Drawer/DrawerCloseButton.tsx +1 -1
  154. package/src/components/Drawer/DrawerContent.tsx +1 -1
  155. package/src/components/Drawer/DrawerContentBody.tsx +1 -1
  156. package/src/components/Drawer/DrawerHead.tsx +1 -1
  157. package/src/components/Drawer/DrawerMain.tsx +1 -1
  158. package/src/components/Drawer/DrawerPanelBody.tsx +1 -1
  159. package/src/components/Drawer/DrawerSection.tsx +1 -1
  160. package/src/components/Dropdown/BadgeToggle.tsx +1 -1
  161. package/src/components/Dropdown/Dropdown.tsx +1 -1
  162. package/src/components/Dropdown/DropdownItem.tsx +1 -1
  163. package/src/components/Dropdown/DropdownSeparator.tsx +1 -1
  164. package/src/components/Dropdown/DropdownToggle.tsx +1 -1
  165. package/src/components/Dropdown/KebabToggle.tsx +1 -1
  166. package/src/components/DualListSelector/DualListSelector.tsx +26 -23
  167. package/src/components/OverflowMenu/OverflowMenuContent.tsx +1 -1
  168. package/src/components/OverflowMenu/OverflowMenuControl.tsx +1 -1
  169. package/src/components/OverflowMenu/OverflowMenuDropdownItem.tsx +1 -1
  170. package/src/components/OverflowMenu/OverflowMenuGroup.tsx +1 -1
  171. package/src/components/OverflowMenu/OverflowMenuItem.tsx +1 -1
  172. package/src/components/Select/Select.tsx +4 -0
  173. package/src/components/Select/SelectToggle.tsx +10 -2
  174. package/src/components/Tabs/TabContent.tsx +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.202.22",
3
+ "version": "4.202.25",
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",
@@ -34,16 +34,16 @@
34
34
  "generate": "node scripts/copyStyles.js"
35
35
  },
36
36
  "dependencies": {
37
- "@patternfly/react-icons": "^4.53.22",
38
- "@patternfly/react-styles": "^4.52.22",
39
- "@patternfly/react-tokens": "^4.54.22",
37
+ "@patternfly/react-icons": "^4.53.25",
38
+ "@patternfly/react-styles": "^4.52.25",
39
+ "@patternfly/react-tokens": "^4.54.25",
40
40
  "focus-trap": "6.2.2",
41
41
  "react-dropzone": "9.0.0",
42
42
  "tippy.js": "5.1.2",
43
43
  "tslib": "^2.0.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@patternfly/patternfly": "4.185.2",
46
+ "@patternfly/patternfly": "4.186.0",
47
47
  "@rollup/plugin-commonjs": "^21.0.0",
48
48
  "@rollup/plugin-node-resolve": "^13.0.0",
49
49
  "@rollup/plugin-replace": "^3.0.0",
@@ -60,5 +60,5 @@
60
60
  "react": "^16.8.0 || ^17.0.0",
61
61
  "react-dom": "^16.8.0 || ^17.0.0"
62
62
  },
63
- "gitHead": "666820fe0384d9c5cc9c52dee3a7b5fdb836d32d"
63
+ "gitHead": "f4aec59972ec2640390a7b52697920440c90e771"
64
64
  }
@@ -9,9 +9,13 @@ export interface DataListCheckProps extends Omit<React.HTMLProps<HTMLInputElemen
9
9
  isValid?: boolean;
10
10
  /** Flag to show if the DataList checkbox is disabled */
11
11
  isDisabled?: boolean;
12
- /** Flag to show if the DataList checkbox is checked */
12
+ /** Flag to show if the DataList checkbox is checked when it is controlled by React state.
13
+ * To make the DataList checkbox uncontrolled, instead use the checked prop, but do not use both.
14
+ */
13
15
  isChecked?: boolean;
14
- /** Flag to set default value of DataList checkbox when it is uncontrolled by React state */
16
+ /** Flag to set default value of DataList checkbox when it is uncontrolled by React state.
17
+ * To make the DataList checkbox controlled, instead use the isChecked prop, but do not use both.
18
+ */
15
19
  checked?: boolean;
16
20
  /** A callback for when the DataList checkbox selection changes */
17
21
  onChange?: (checked: boolean, event: React.FormEvent<HTMLInputElement>) => void;
@@ -40,7 +44,8 @@ export const DataListCheck: React.FunctionComponent<DataListCheckProps> = ({
40
44
  onChange={event => onChange(event.currentTarget.checked, event)}
41
45
  aria-invalid={!isValid}
42
46
  disabled={isDisabled}
43
- checked={isChecked || checked}
47
+ {...(checked !== null && { defaultChecked: checked })}
48
+ {...(isChecked !== null && { checked: isChecked })}
44
49
  />
45
50
  </div>
46
51
  );
@@ -9,7 +9,7 @@ export interface DescriptionListGroupProps extends React.HTMLProps<HTMLDivElemen
9
9
  className?: string;
10
10
  }
11
11
 
12
- export const DescriptionListGroup: React.FC<DescriptionListGroupProps> = ({
12
+ export const DescriptionListGroup: React.FunctionComponent<DescriptionListGroupProps> = ({
13
13
  className,
14
14
  children,
15
15
  ...props
@@ -9,7 +9,7 @@ export interface DrawerActionsProps extends React.HTMLProps<HTMLDivElement> {
9
9
  children?: React.ReactNode;
10
10
  }
11
11
 
12
- export const DrawerActions: React.SFC<DrawerActionsProps> = ({
12
+ export const DrawerActions: React.FunctionComponent<DrawerActionsProps> = ({
13
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
14
  className = '',
15
15
  children,
@@ -13,7 +13,7 @@ export interface DrawerCloseButtonProps extends React.HTMLProps<HTMLDivElement>
13
13
  'aria-label'?: string;
14
14
  }
15
15
 
16
- export const DrawerCloseButton: React.SFC<DrawerCloseButtonProps> = ({
16
+ export const DrawerCloseButton: React.FunctionComponent<DrawerCloseButtonProps> = ({
17
17
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
18
  className = '',
19
19
  onClose = () => undefined as any,
@@ -15,7 +15,7 @@ export interface DrawerContentProps extends React.HTMLProps<HTMLDivElement> {
15
15
  colorVariant?: DrawerColorVariant | 'light-200' | 'default';
16
16
  }
17
17
 
18
- export const DrawerContent: React.SFC<DrawerContentProps> = ({
18
+ export const DrawerContent: React.FunctionComponent<DrawerContentProps> = ({
19
19
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
20
  className = '',
21
21
  children,
@@ -11,7 +11,7 @@ export interface DrawerContentBodyProps extends React.HTMLProps<HTMLDivElement>
11
11
  hasPadding?: boolean;
12
12
  }
13
13
 
14
- export const DrawerContentBody: React.SFC<DrawerContentBodyProps> = ({
14
+ export const DrawerContentBody: React.FunctionComponent<DrawerContentBodyProps> = ({
15
15
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
16
  className = '',
17
17
  children,
@@ -12,7 +12,7 @@ export interface DrawerHeadProps extends React.HTMLProps<HTMLDivElement> {
12
12
  hasNoPadding?: boolean;
13
13
  }
14
14
 
15
- export const DrawerHead: React.SFC<DrawerHeadProps> = ({
15
+ export const DrawerHead: React.FunctionComponent<DrawerHeadProps> = ({
16
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
17
  className = '',
18
18
  children,
@@ -9,7 +9,7 @@ export interface DrawerMainProps extends React.HTMLProps<HTMLDivElement> {
9
9
  children?: React.ReactNode;
10
10
  }
11
11
 
12
- export const DrawerMain: React.SFC<DrawerMainProps> = ({
12
+ export const DrawerMain: React.FunctionComponent<DrawerMainProps> = ({
13
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
14
  className = '',
15
15
  children,
@@ -11,7 +11,7 @@ export interface DrawerPanelBodyProps extends React.HTMLProps<HTMLDivElement> {
11
11
  hasNoPadding?: boolean;
12
12
  }
13
13
 
14
- export const DrawerPanelBody: React.SFC<DrawerPanelBodyProps> = ({
14
+ export const DrawerPanelBody: React.FunctionComponent<DrawerPanelBodyProps> = ({
15
15
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
16
  className = '',
17
17
  children,
@@ -12,7 +12,7 @@ export interface DrawerSectionProps extends React.HTMLProps<HTMLDivElement> {
12
12
  colorVariant?: DrawerColorVariant | 'light-200' | 'default';
13
13
  }
14
14
 
15
- export const DrawerSection: React.SFC<DrawerSectionProps> = ({
15
+ export const DrawerSection: React.FunctionComponent<DrawerSectionProps> = ({
16
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
17
  className = '',
18
18
  children,
@@ -52,7 +52,7 @@ export const BadgeToggle: React.FunctionComponent<BadgeToggleProps> = ({
52
52
  bubbleEvent = false,
53
53
  onToggle = () => undefined as void,
54
54
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
55
- ref, // Types of Ref are different for React.FC vs React.Component
55
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
56
56
  ...props
57
57
  }: BadgeToggleProps) => (
58
58
  <Toggle
@@ -49,7 +49,7 @@ export interface DropdownProps extends ToggleMenuBaseProps, React.HTMLProps<HTML
49
49
  export const Dropdown: React.FunctionComponent<DropdownProps> = ({
50
50
  onSelect,
51
51
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
52
- ref, // Types of Ref are different for React.FC vs React.Component
52
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
53
53
  ouiaId,
54
54
  ouiaSafe,
55
55
  alignments,
@@ -63,7 +63,7 @@ export const DropdownItem: React.FunctionComponent<DropdownItemProps> = ({
63
63
  listItemClassName,
64
64
  onClick,
65
65
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
- ref, // Types of Ref are different for React.FC vs React.Component
66
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
67
67
  additionalChild,
68
68
  customChild,
69
69
  tabIndex = -1,
@@ -14,7 +14,7 @@ export interface SeparatorProps extends React.HTMLProps<HTMLAnchorElement>, OUIA
14
14
  export const DropdownSeparator: React.FunctionComponent<SeparatorProps> = ({
15
15
  className = '',
16
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
17
- ref, // Types of Ref are different for React.FC vs React.Component
17
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
18
18
  ouiaId,
19
19
  ouiaSafe,
20
20
  ...props
@@ -75,7 +75,7 @@ export const DropdownToggle: React.FunctionComponent<DropdownToggleProps> = ({
75
75
  ouiaId,
76
76
  ouiaSafe,
77
77
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
78
- ref, // Types of Ref are different for React.FC vs React.Component
78
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
79
79
  ...props
80
80
  }: DropdownToggleProps) => {
81
81
  const ouiaProps = useOUIAProps(DropdownToggle.displayName, ouiaId, ouiaSafe);
@@ -47,7 +47,7 @@ export const KebabToggle: React.FunctionComponent<KebabToggleProps> = ({
47
47
  bubbleEvent = false,
48
48
  onToggle = () => undefined as void,
49
49
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
50
- ref, // Types of Ref are different for React.FC vs React.Component
50
+ ref, // Types of Ref are different for React.FunctionComponent vs React.Component
51
51
  ...props
52
52
  }: KebabToggleProps) => (
53
53
  <Toggle
@@ -149,27 +149,30 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
149
149
  isTree: false,
150
150
  isDisabled: false
151
151
  };
152
- private originalAvailableCopy = JSON.parse(JSON.stringify(this.props.availableOptions));
153
- private originalChosenCopy = JSON.parse(JSON.stringify(this.props.chosenOptions));
154
152
 
155
153
  // If the DualListSelector uses trees, concat the two initial arrays and merge duplicate folder IDs
156
- private mergedCopy = this.props.isTree
157
- ? Object.values(
158
- (this.originalAvailableCopy as DualListSelectorTreeItemData[])
159
- .concat(this.originalChosenCopy as DualListSelectorTreeItemData[])
160
- .reduce((mapObj: any, item: DualListSelectorTreeItemData) => {
161
- const key = item.id;
162
- if (mapObj[key]) {
163
- // If map already has an item ID, add the dupe ID's children to the existing map
164
- mapObj[key].children.push(...item.children);
165
- } else {
166
- // Else clone the item data
167
- mapObj[key] = { ...item };
168
- }
169
- return mapObj;
170
- }, {})
171
- )
172
- : null;
154
+ private createMergedCopy() {
155
+ const copyOfAvailable = JSON.parse(JSON.stringify(this.props.availableOptions));
156
+ const copyOfChosen = JSON.parse(JSON.stringify(this.props.chosenOptions));
157
+
158
+ return this.props.isTree
159
+ ? Object.values(
160
+ (copyOfAvailable as DualListSelectorTreeItemData[])
161
+ .concat(copyOfChosen as DualListSelectorTreeItemData[])
162
+ .reduce((mapObj: any, item: DualListSelectorTreeItemData) => {
163
+ const key = item.id;
164
+ if (mapObj[key]) {
165
+ // If map already has an item ID, add the dupe ID's children to the existing map
166
+ mapObj[key].children.push(...item.children);
167
+ } else {
168
+ // Else clone the item data
169
+ mapObj[key] = { ...item };
170
+ }
171
+ return mapObj;
172
+ }, {})
173
+ )
174
+ : null;
175
+ }
173
176
 
174
177
  constructor(props: DualListSelectorProps) {
175
178
  super(props);
@@ -275,7 +278,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
275
278
 
276
279
  const currChosen = flattenTree(prevState.chosenOptions as DualListSelectorTreeItemData[]);
277
280
  const nextChosenOptions = currChosen.concat(movedOptions);
278
- const newChosen = this.mergedCopy
281
+ const newChosen = this.createMergedCopy()
279
282
  .map(opt => Object.assign({}, opt))
280
283
  .filter(item => filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextChosenOptions));
281
284
 
@@ -330,7 +333,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
330
333
  // Get next chosen options from current + new nodes and remap from base
331
334
  const currChosen = flattenTree(prevState.chosenOptions as DualListSelectorTreeItemData[]);
332
335
  const nextChosenOptions = currChosen.concat(prevState.availableTreeOptionsChecked);
333
- const newChosen = this.mergedCopy
336
+ const newChosen = this.createMergedCopy()
334
337
  .map(opt => Object.assign({}, opt))
335
338
  .filter(item => filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextChosenOptions));
336
339
 
@@ -383,7 +386,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
383
386
  .filter(item => filterRestTreeItems(item as DualListSelectorTreeItemData, movedOptions));
384
387
  const currAvailable = flattenTree(prevState.availableOptions as DualListSelectorTreeItemData[]);
385
388
  const nextAvailableOptions = currAvailable.concat(movedOptions);
386
- const newAvailable = this.mergedCopy
389
+ const newAvailable = this.createMergedCopy()
387
390
  .map(opt => Object.assign({}, opt))
388
391
  .filter(item => filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextAvailableOptions));
389
392
 
@@ -434,7 +437,7 @@ export class DualListSelector extends React.Component<DualListSelectorProps, Dua
434
437
  // Get next chosen options from current and remap from base
435
438
  const currAvailable = flattenTree(prevState.availableOptions as DualListSelectorTreeItemData[]);
436
439
  const nextAvailableOptions = currAvailable.concat(prevState.chosenTreeOptionsChecked);
437
- const newAvailable = this.mergedCopy
440
+ const newAvailable = this.createMergedCopy()
438
441
  .map(opt => Object.assign({}, opt))
439
442
  .filter(item => filterTreeItemsWithoutFolders(item as DualListSelectorTreeItemData, nextAvailableOptions));
440
443
 
@@ -12,7 +12,7 @@ export interface OverflowMenuContentProps extends React.HTMLProps<HTMLDivElement
12
12
  isPersistent?: boolean;
13
13
  }
14
14
 
15
- export const OverflowMenuContent: React.SFC<OverflowMenuContentProps> = ({
15
+ export const OverflowMenuContent: React.FunctionComponent<OverflowMenuContentProps> = ({
16
16
  className,
17
17
  children,
18
18
  isPersistent
@@ -12,7 +12,7 @@ export interface OverflowMenuControlProps extends React.HTMLProps<HTMLDivElement
12
12
  hasAdditionalOptions?: boolean;
13
13
  }
14
14
 
15
- export const OverflowMenuControl: React.SFC<OverflowMenuControlProps> = ({
15
+ export const OverflowMenuControl: React.FunctionComponent<OverflowMenuControlProps> = ({
16
16
  className,
17
17
  children,
18
18
  hasAdditionalOptions,
@@ -9,7 +9,7 @@ export interface OverflowMenuDropdownItemProps extends DropdownItemProps {
9
9
  index?: number;
10
10
  }
11
11
 
12
- export const OverflowMenuDropdownItem: React.SFC<OverflowMenuDropdownItemProps> = ({
12
+ export const OverflowMenuDropdownItem: React.FunctionComponent<OverflowMenuDropdownItemProps> = ({
13
13
  children,
14
14
  isShared = false,
15
15
  index,
@@ -14,7 +14,7 @@ export interface OverflowMenuGroupProps extends React.HTMLProps<HTMLDivElement>
14
14
  groupType?: 'button' | 'icon';
15
15
  }
16
16
 
17
- export const OverflowMenuGroup: React.FC<OverflowMenuGroupProps> = ({
17
+ export const OverflowMenuGroup: React.FunctionComponent<OverflowMenuGroupProps> = ({
18
18
  className,
19
19
  children,
20
20
  isPersistent = false,
@@ -12,7 +12,7 @@ export interface OverflowMenuItemProps extends React.HTMLProps<HTMLDivElement> {
12
12
  isPersistent?: boolean;
13
13
  }
14
14
 
15
- export const OverflowMenuItem: React.SFC<OverflowMenuItemProps> = ({
15
+ export const OverflowMenuItem: React.FunctionComponent<OverflowMenuItemProps> = ({
16
16
  className,
17
17
  children,
18
18
  isPersistent = false
@@ -123,6 +123,8 @@ export interface SelectProps
123
123
  ) => void;
124
124
  /** Callback for toggle button behavior */
125
125
  onToggle: (isExpanded: boolean, event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent | Event) => void;
126
+ /** Callback for toggle blur */
127
+ onBlur?: (event?: any) => void;
126
128
  /** Callback for typeahead clear button */
127
129
  onClear?: (event: React.MouseEvent) => void;
128
130
  /** Optional callback for custom filtering */
@@ -917,6 +919,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
917
919
  direction,
918
920
  onSelect,
919
921
  onClear,
922
+ onBlur,
920
923
  toggleId,
921
924
  isOpen,
922
925
  isGrouped,
@@ -1263,6 +1266,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
1263
1266
  onToggle={this.onToggle}
1264
1267
  onEnter={this.onEnter}
1265
1268
  onClose={this.onClose}
1269
+ onBlur={onBlur}
1266
1270
  variant={variant}
1267
1271
  aria-labelledby={`${ariaLabelledBy || ''} ${selectToggleId}`}
1268
1272
  aria-label={toggleAriaLabel}
@@ -23,6 +23,8 @@ export interface SelectToggleProps extends React.HTMLProps<HTMLElement> {
23
23
  onEnter?: () => void;
24
24
  /** Callback for toggle close */
25
25
  onClose?: () => void;
26
+ /** Callback for toggle blur */
27
+ onBlur?: (event?: any) => void;
26
28
  /** @hide Internal callback for toggle keyboard navigation */
27
29
  handleTypeaheadKeys?: (position: string, shiftKey?: boolean) => void;
28
30
  /** @hide Internal callback to move focus to last menu item */
@@ -100,11 +102,14 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
100
102
  }
101
103
 
102
104
  onDocClick = (event: Event) => {
103
- const { parentRef, menuRef, isOpen, onToggle, onClose } = this.props;
105
+ const { parentRef, menuRef, footerRef, isOpen, onToggle, onClose } = this.props;
104
106
  const clickedOnToggle = parentRef && parentRef.current && parentRef.current.contains(event.target as Node);
105
107
  const clickedWithinMenu =
106
108
  menuRef && menuRef.current && menuRef.current.contains && menuRef.current.contains(event.target as Node);
107
- if (isOpen && !(clickedOnToggle || clickedWithinMenu)) {
109
+ const clickedWithinFooter =
110
+ footerRef && footerRef.current && footerRef.current.contains && footerRef.current.contains(event.target as Node);
111
+
112
+ if (isOpen && !(clickedOnToggle || clickedWithinMenu || clickedWithinFooter)) {
108
113
  onToggle(false, event);
109
114
  onClose();
110
115
  }
@@ -244,6 +249,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
244
249
  onToggle,
245
250
  onEnter,
246
251
  onClose,
252
+ onBlur,
247
253
  onClickTypeaheadToggleButton,
248
254
  handleTypeaheadKeys,
249
255
  moveFocusToLastMenuItem,
@@ -289,6 +295,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
289
295
  className
290
296
  )}
291
297
  aria-label={ariaLabel}
298
+ onBlur={onBlur}
292
299
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
293
300
  onClick={event => {
294
301
  onToggle(!isOpen, event);
@@ -317,6 +324,7 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
317
324
  isTypeahead && styles.modifiers.typeahead,
318
325
  className
319
326
  )}
327
+ onBlur={onBlur}
320
328
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
321
329
  onClick={event => {
322
330
  if (!isDisabled) {
@@ -28,7 +28,7 @@ const variantStyle = {
28
28
  light300: styles.modifiers.light_300
29
29
  };
30
30
 
31
- const TabContentBase: React.FC<TabContentProps> = ({
31
+ const TabContentBase: React.FunctionComponent<TabContentProps> = ({
32
32
  id,
33
33
  activeKey,
34
34
  'aria-label': ariaLabel,