@redhat-cloud-services/frontend-components 3.4.3 → 3.4.7

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.
@@ -108,6 +108,7 @@ var ConditionalFilter = /*#__PURE__*/function (_Component) {
108
108
  return width <= _this.breakpointConstant;
109
109
  });
110
110
  _this.breakpointConstant = parseInt(_global_breakpoint_md["default"].value.replace('px', ''));
111
+ _this.containerRef = /*#__PURE__*/_react["default"].createRef();
111
112
  _this.state = {
112
113
  isOpen: false,
113
114
  stateValue: undefined,
@@ -221,10 +222,14 @@ var ConditionalFilter = /*#__PURE__*/function (_Component) {
221
222
  })
222
223
  })), ActiveComponent && /*#__PURE__*/_react["default"].createElement(_SplitItem.SplitItem, {
223
224
  isFilled: true
225
+ }, /*#__PURE__*/_react["default"].createElement("div", {
226
+ ref: this.containerRef
224
227
  }, /*#__PURE__*/_react["default"].createElement(ActiveComponent, (0, _extends2["default"])({}, activeItem.type !== _conditionalFilterConstants.conditionalFilterType.custom && {
225
228
  placeholder: placeholder || activeItem.placeholder || "Filter by ".concat(activeItem.label),
226
229
  id: activeItem.filterValues && activeItem.filterValues.id || currentValue
227
- }, activeItem.filterValues))))));
230
+ }, activeItem.filterValues, activeItem.type === _conditionalFilterConstants.conditionalFilterType.group && {
231
+ containerRef: this.containerRef.current
232
+ })))))));
228
233
  }
229
234
  }]);
230
235
  return ConditionalFilter;
@@ -64,7 +64,8 @@ var Group = function Group(_ref) {
64
64
  groups = _ref$groups === void 0 ? [] : _ref$groups,
65
65
  onChange = _ref.onChange,
66
66
  selected = _ref.selected,
67
- isFilterable = _ref.isFilterable;
67
+ isFilterable = _ref.isFilterable,
68
+ containerRef = _ref.containerRef;
68
69
 
69
70
  var _useState = (0, _react.useState)({}),
70
71
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -123,10 +124,7 @@ var Group = function Group(_ref) {
123
124
  ev.stopPropagation(); // Stop handleClickOutside from handling
124
125
 
125
126
  ev.persist();
126
-
127
- if (!(isOpen && toggleRef.current.contains(ev.target))) {
128
- setIsOpen(!isOpen);
129
- }
127
+ setIsOpen(!isOpen);
130
128
  };
131
129
 
132
130
  var groupMenuItems = (0, _groupFilterConstants.getGroupMenuItems)(groups, onChange, calculateSelection(selected));
@@ -177,6 +175,7 @@ var Group = function Group(_ref) {
177
175
  };
178
176
 
179
177
  return /*#__PURE__*/_react["default"].createElement(_Popper.Popper, {
178
+ appendTo: containerRef,
180
179
  trigger: /*#__PURE__*/_react["default"].createElement(_MenuToggle.MenuToggle, {
181
180
  ref: toggleRef,
182
181
  onClick: onToggleClick,
@@ -195,7 +194,7 @@ var Group = function Group(_ref) {
195
194
  }) : placeholder),
196
195
  popper: /*#__PURE__*/_react["default"].createElement(_Menu.Menu, {
197
196
  ref: menuRef,
198
- className: (0, _classnames["default"])(className, {
197
+ className: (0, _classnames["default"])('ins-c-menu__scrollable', className, {
199
198
  'pf-m-expanded': isOpen
200
199
  })
201
200
  }, /*#__PURE__*/_react["default"].createElement(_MenuContent.MenuContent, null, /*#__PURE__*/_react["default"].createElement(_MenuList.MenuList, null, menuItems.length > 0 && /*#__PURE__*/_react["default"].createElement(_MenuGroup.MenuGroup, null, renderItems(items)), groupMenuItems.map(function (group, groupKey) {
@@ -208,8 +207,7 @@ var Group = function Group(_ref) {
208
207
  className: "ins-c-menu__show--more"
209
208
  }, showMoreOptions, {
210
209
  onClick: function onClick(e) {
211
- setIsOpen(false);
212
- onShowMore(e);
210
+ return onShowMore(e);
213
211
  }
214
212
  }), showMoreTitle) : /*#__PURE__*/_react["default"].createElement("span", {
215
213
  hidden: true,
@@ -245,7 +243,8 @@ Group.propTypes = {
245
243
  }))
246
244
  })),
247
245
  onChange: _propTypes["default"].func.isRequired,
248
- selectedTags: _propTypes["default"].shape({})
246
+ selectedTags: _propTypes["default"].shape({}),
247
+ containerRef: _propTypes["default"].element
249
248
  };
250
249
  var _default = Group;
251
250
  exports["default"] = _default;
@@ -61,7 +61,11 @@
61
61
  border: none;
62
62
  }
63
63
 
64
- .pf-c-menu .ins-c-menu__show--more:hover {
64
+ .pf-c-menu.ins-c-menu__scrollable {
65
+ max-height: 416px;
66
+ overflow-y: auto;
67
+ }
68
+ .pf-c-menu .ins-c-menu__show--more {
65
69
  background: none;
66
70
  }
67
71
  .pf-c-menu .ins-c-menu__show--more .pf-c-menu__item-text {
@@ -70,8 +70,12 @@
70
70
  }
71
71
 
72
72
  .pf-c-menu {
73
+ &.ins-c-menu__scrollable {
74
+ max-height: 416px;
75
+ overflow-y: auto;
76
+ }
73
77
  .ins-c-menu__show--more {
74
- &:hover { background: none; }
78
+ background: none;
75
79
  .pf-c-menu__item-text{ color: var(--pf-global--active-color--100); }
76
80
  }
77
81
  }
@@ -76,6 +76,7 @@ var ConditionalFilter = /*#__PURE__*/function (_Component) {
76
76
  });
77
77
 
78
78
  _this.breakpointConstant = parseInt(globalBreakpointMd.value.replace('px', ''));
79
+ _this.containerRef = /*#__PURE__*/React.createRef();
79
80
  _this.state = {
80
81
  isOpen: false,
81
82
  stateValue: undefined,
@@ -190,10 +191,14 @@ var ConditionalFilter = /*#__PURE__*/function (_Component) {
190
191
  })
191
192
  })), ActiveComponent && /*#__PURE__*/React.createElement(SplitItem, {
192
193
  isFilled: true
194
+ }, /*#__PURE__*/React.createElement("div", {
195
+ ref: this.containerRef
193
196
  }, /*#__PURE__*/React.createElement(ActiveComponent, _extends({}, activeItem.type !== conditionalFilterType.custom && {
194
197
  placeholder: placeholder || activeItem.placeholder || "Filter by ".concat(activeItem.label),
195
198
  id: activeItem.filterValues && activeItem.filterValues.id || currentValue
196
- }, activeItem.filterValues))))));
199
+ }, activeItem.filterValues, activeItem.type === conditionalFilterType.group && {
200
+ containerRef: this.containerRef.current
201
+ })))))));
197
202
  }
198
203
  }]);
199
204
 
@@ -31,7 +31,8 @@ var Group = function Group(_ref) {
31
31
  groups = _ref$groups === void 0 ? [] : _ref$groups,
32
32
  onChange = _ref.onChange,
33
33
  selected = _ref.selected,
34
- isFilterable = _ref.isFilterable;
34
+ isFilterable = _ref.isFilterable,
35
+ containerRef = _ref.containerRef;
35
36
 
36
37
  var _useState = useState({}),
37
38
  _useState2 = _slicedToArray(_useState, 2),
@@ -90,10 +91,7 @@ var Group = function Group(_ref) {
90
91
  ev.stopPropagation(); // Stop handleClickOutside from handling
91
92
 
92
93
  ev.persist();
93
-
94
- if (!(isOpen && toggleRef.current.contains(ev.target))) {
95
- setIsOpen(!isOpen);
96
- }
94
+ setIsOpen(!isOpen);
97
95
  };
98
96
 
99
97
  var groupMenuItems = getGroupMenuItems(groups, onChange, calculateSelection(selected));
@@ -144,6 +142,7 @@ var Group = function Group(_ref) {
144
142
  };
145
143
 
146
144
  return /*#__PURE__*/React.createElement(Popper, {
145
+ appendTo: containerRef,
147
146
  trigger: /*#__PURE__*/React.createElement(MenuToggle, {
148
147
  ref: toggleRef,
149
148
  onClick: onToggleClick,
@@ -162,7 +161,7 @@ var Group = function Group(_ref) {
162
161
  }) : placeholder),
163
162
  popper: /*#__PURE__*/React.createElement(Menu, {
164
163
  ref: menuRef,
165
- className: classNames(className, {
164
+ className: classNames('ins-c-menu__scrollable', className, {
166
165
  'pf-m-expanded': isOpen
167
166
  })
168
167
  }, /*#__PURE__*/React.createElement(MenuContent, null, /*#__PURE__*/React.createElement(MenuList, null, menuItems.length > 0 && /*#__PURE__*/React.createElement(MenuGroup, null, renderItems(items)), groupMenuItems.map(function (group, groupKey) {
@@ -175,8 +174,7 @@ var Group = function Group(_ref) {
175
174
  className: "ins-c-menu__show--more"
176
175
  }, showMoreOptions, {
177
176
  onClick: function onClick(e) {
178
- setIsOpen(false);
179
- onShowMore(e);
177
+ return onShowMore(e);
180
178
  }
181
179
  }), showMoreTitle) : /*#__PURE__*/React.createElement("span", {
182
180
  hidden: true,
@@ -212,6 +210,7 @@ Group.propTypes = {
212
210
  }))
213
211
  })),
214
212
  onChange: PropTypes.func.isRequired,
215
- selectedTags: PropTypes.shape({})
213
+ selectedTags: PropTypes.shape({}),
214
+ containerRef: PropTypes.element
216
215
  };
217
216
  export default Group;
package/index.css CHANGED
@@ -132,7 +132,11 @@ i.ins-battery svg {
132
132
  border: none;
133
133
  }
134
134
 
135
- .pf-c-menu .ins-c-menu__show--more:hover {
135
+ .pf-c-menu.ins-c-menu__scrollable {
136
+ max-height: 416px;
137
+ overflow-y: auto;
138
+ }
139
+ .pf-c-menu .ins-c-menu__show--more {
136
140
  background: none;
137
141
  }
138
142
  .pf-c-menu .ins-c-menu__show--more .pf-c-menu__item-text {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redhat-cloud-services/frontend-components",
3
- "version": "3.4.3",
3
+ "version": "3.4.7",
4
4
  "description": "Common components for RedHat Cloud Services project.",
5
5
  "main": "index.js",
6
6
  "module": "esm/index.js",