@patternfly/react-core 4.202.23 → 4.202.24

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.202.23",
3
+ "version": "4.202.24",
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,9 +34,9 @@
34
34
  "generate": "node scripts/copyStyles.js"
35
35
  },
36
36
  "dependencies": {
37
- "@patternfly/react-icons": "^4.53.23",
38
- "@patternfly/react-styles": "^4.52.23",
39
- "@patternfly/react-tokens": "^4.54.23",
37
+ "@patternfly/react-icons": "^4.53.24",
38
+ "@patternfly/react-styles": "^4.52.24",
39
+ "@patternfly/react-tokens": "^4.54.24",
40
40
  "focus-trap": "6.2.2",
41
41
  "react-dropzone": "9.0.0",
42
42
  "tippy.js": "5.1.2",
@@ -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": "542b9e9211edd7ff4b98f947f2943711a590bb54"
63
+ "gitHead": "73a1735a4abfde4bad7f3e762383e4b371ea6038"
64
64
  }
@@ -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
 
@@ -100,11 +100,14 @@ export class SelectToggle extends React.Component<SelectToggleProps> {
100
100
  }
101
101
 
102
102
  onDocClick = (event: Event) => {
103
- const { parentRef, menuRef, isOpen, onToggle, onClose } = this.props;
103
+ const { parentRef, menuRef, footerRef, isOpen, onToggle, onClose } = this.props;
104
104
  const clickedOnToggle = parentRef && parentRef.current && parentRef.current.contains(event.target as Node);
105
105
  const clickedWithinMenu =
106
106
  menuRef && menuRef.current && menuRef.current.contains && menuRef.current.contains(event.target as Node);
107
- if (isOpen && !(clickedOnToggle || clickedWithinMenu)) {
107
+ const clickedWithinFooter =
108
+ footerRef && footerRef.current && footerRef.current.contains && footerRef.current.contains(event.target as Node);
109
+
110
+ if (isOpen && !(clickedOnToggle || clickedWithinMenu || clickedWithinFooter)) {
108
111
  onToggle(false, event);
109
112
  onClose();
110
113
  }