@carbon/ibm-products 1.18.0 → 1.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/css/components/Datagrid/styles/datagrid.css +24 -4
  2. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  3. package/css/components/Datagrid/styles/index.css +24 -4
  4. package/css/components/Datagrid/styles/index.css.map +1 -1
  5. package/css/index-full-carbon.css +68 -11
  6. package/css/index-full-carbon.css.map +1 -1
  7. package/css/index-full-carbon.min.css +2 -2
  8. package/css/index-full-carbon.min.css.map +1 -1
  9. package/css/index-without-carbon.css +68 -11
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +2 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +68 -11
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +2 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +28 -3
  18. package/es/components/AddSelect/AddSelectList.js +32 -6
  19. package/es/components/AddSelect/AddSelectMetaPanel.js +54 -0
  20. package/es/components/AddSelect/AddSelectSidebar.js +19 -1
  21. package/es/components/DataSpreadsheet/DataSpreadsheet.js +2 -1
  22. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +5 -2
  23. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +10 -3
  24. package/es/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +8 -2
  25. package/es/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +1 -1
  26. package/es/components/Datagrid/Datagrid/Datagrid.js +1 -1
  27. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +22 -3
  28. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -3
  29. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  30. package/lib/components/AddSelect/AddSelect.js +28 -3
  31. package/lib/components/AddSelect/AddSelectList.js +30 -4
  32. package/lib/components/AddSelect/AddSelectMetaPanel.js +77 -0
  33. package/lib/components/AddSelect/AddSelectSidebar.js +20 -1
  34. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +2 -1
  35. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +5 -2
  36. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +10 -3
  37. package/lib/components/DataSpreadsheet/utils/getSpreadsheetWidth.js +8 -2
  38. package/lib/components/DataSpreadsheet/utils/handleHeaderCellSelection.js +1 -1
  39. package/lib/components/Datagrid/Datagrid/Datagrid.js +1 -1
  40. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +24 -3
  41. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +3 -3
  42. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -1
  43. package/package.json +6 -6
  44. package/scss/components/AddSelect/_add-select.scss +40 -6
  45. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +1 -1
  46. package/scss/components/Datagrid/_storybook-styles.scss +5 -0
  47. package/scss/components/Datagrid/styles/datagrid.scss +43 -5
@@ -7,8 +7,8 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
7
7
  // LICENSE file in the root directory of this source tree.
8
8
  //
9
9
  import React from 'react';
10
- import { Checkbox, RadioButton, StructuredListRow, StructuredListWrapper, StructuredListBody, StructuredListCell, Dropdown } from 'carbon-components-react';
11
- import { ChevronRight16 } from '@carbon/icons-react';
10
+ import { Button, Checkbox, RadioButton, StructuredListRow, StructuredListWrapper, StructuredListBody, StructuredListCell, Dropdown } from 'carbon-components-react';
11
+ import { ChevronRight16, View16 } from '@carbon/icons-react';
12
12
  import PropTypes from 'prop-types';
13
13
  import cx from 'classnames';
14
14
  import { UserProfileImage } from '../UserProfileImage';
@@ -16,10 +16,13 @@ import { pkg } from '../../settings';
16
16
  var componentName = 'AddSelectList';
17
17
  export var AddSelectList = function AddSelectList(_ref) {
18
18
  var filteredItems = _ref.filteredItems,
19
+ metaIconDescription = _ref.metaIconDescription,
19
20
  modifiers = _ref.modifiers,
20
21
  multi = _ref.multi,
21
22
  multiSelection = _ref.multiSelection,
23
+ navIconDescription = _ref.navIconDescription,
22
24
  path = _ref.path,
25
+ setDisplayMetaPanel = _ref.setDisplayMetaPanel,
23
26
  setMultiSelection = _ref.setMultiSelection,
24
27
  setPath = _ref.setPath,
25
28
  setSingleSelection = _ref.setSingleSelection,
@@ -169,7 +172,7 @@ export var AddSelectList = function AddSelectList(_ref) {
169
172
  light: true,
170
173
  label: modifiers === null || modifiers === void 0 ? void 0 : modifiers.label,
171
174
  disabled: !isSelected(item.id),
172
- className: "".concat(blockClass, "-dropdown")
175
+ className: "".concat(blockClass, "-dropdown ").concat(blockClass, "-hidden-hover")
173
176
  })) : /*#__PURE__*/React.createElement(RadioButton, {
174
177
  className: "".concat(blockClass, "-radio"),
175
178
  name: "add-select-selections",
@@ -178,19 +181,42 @@ export var AddSelectList = function AddSelectList(_ref) {
178
181
  labelText: item.title,
179
182
  onChange: handleSingleSelection,
180
183
  selected: item.value === singleSelection
181
- }), item.children && /*#__PURE__*/React.createElement(ChevronRight16, {
184
+ }), item.children && /*#__PURE__*/React.createElement(Button, {
185
+ renderIcon: ChevronRight16,
186
+ iconDescription: navIconDescription,
187
+ tooltipPosition: "left",
188
+ tooltipAlignment: "center",
189
+ hasIconOnly: true,
182
190
  onClick: function onClick() {
183
191
  return onNavigateItem(item);
184
- }
185
- }))));
192
+ },
193
+ kind: "ghost",
194
+ size: "sm"
195
+ }), item.meta && /*#__PURE__*/React.createElement("div", {
196
+ className: "".concat(blockClass, "-hidden-hover")
197
+ }, /*#__PURE__*/React.createElement(Button, {
198
+ renderIcon: View16,
199
+ iconDescription: metaIconDescription,
200
+ tooltipPosition: "left",
201
+ tooltipAlignment: "center",
202
+ hasIconOnly: true,
203
+ onClick: function onClick() {
204
+ return setDisplayMetaPanel(item);
205
+ },
206
+ kind: "ghost",
207
+ size: "sm"
208
+ })))));
186
209
  }))));
187
210
  };
188
211
  AddSelectList.propTypes = {
189
212
  filteredItems: PropTypes.array,
213
+ metaIconDescription: PropTypes.string,
190
214
  modifiers: PropTypes.object,
191
215
  multi: PropTypes.bool,
192
216
  multiSelection: PropTypes.array,
217
+ navIconDescription: PropTypes.string,
193
218
  path: PropTypes.array,
219
+ setDisplayMetaPanel: PropTypes.func,
194
220
  setMultiSelection: PropTypes.func,
195
221
  setPath: PropTypes.func,
196
222
  setSingleSelection: PropTypes.func,
@@ -0,0 +1,54 @@
1
+ import React, { isValidElement } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Close16 } from '@carbon/icons-react';
4
+ import { Button } from 'carbon-components-react';
5
+ import { pkg } from '../../settings';
6
+ var componentName = 'AddSelectMetaPanel';
7
+ export var AddSelectMetaPanel = function AddSelectMetaPanel(_ref) {
8
+ var closeIconDescription = _ref.closeIconDescription,
9
+ meta = _ref.meta,
10
+ setDisplayMetaPanel = _ref.setDisplayMetaPanel,
11
+ title = _ref.title;
12
+ var blockClass = "".concat(pkg.prefix, "--add-select__meta-panel");
13
+
14
+ var onCloseHandler = function onCloseHandler() {
15
+ setDisplayMetaPanel({});
16
+ };
17
+
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ className: blockClass
20
+ }, /*#__PURE__*/React.createElement("div", {
21
+ className: "".concat(blockClass, "-header")
22
+ }, /*#__PURE__*/React.createElement("p", {
23
+ className: "".concat(blockClass, "-title")
24
+ }, title), /*#__PURE__*/React.createElement(Button, {
25
+ renderIcon: Close16,
26
+ iconDescription: closeIconDescription,
27
+ tooltipPosition: "left",
28
+ tooltipAlignment: "center",
29
+ hasIconOnly: true,
30
+ onClick: onCloseHandler,
31
+ kind: "ghost",
32
+ size: "sm"
33
+ })), /*#__PURE__*/isValidElement(meta) ? meta : meta.map(function (entry) {
34
+ return /*#__PURE__*/React.createElement("div", {
35
+ key: entry.id,
36
+ className: "".concat(blockClass, "-entry")
37
+ }, /*#__PURE__*/React.createElement("p", {
38
+ className: "".concat(blockClass, "-entry-title")
39
+ }, entry.title), /*#__PURE__*/React.createElement("p", {
40
+ className: "".concat(blockClass, "-entry-body")
41
+ }, entry.value));
42
+ }));
43
+ };
44
+ AddSelectMetaPanel.propTypes = {
45
+ closeIconDescription: PropTypes.string,
46
+ meta: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({
47
+ id: PropTypes.string,
48
+ title: PropTypes.string,
49
+ value: PropTypes.string
50
+ })), PropTypes.node]),
51
+ setDisplayMetaPanel: PropTypes.func,
52
+ title: PropTypes.string
53
+ };
54
+ AddSelectMetaPanel.displayName = componentName;
@@ -12,14 +12,19 @@ import { SubtractAlt32 } from '@carbon/icons-react';
12
12
  import PropTypes from 'prop-types';
13
13
  import { NoDataEmptyState } from '../../components/EmptyStates/NoDataEmptyState';
14
14
  import { pkg } from '../../settings';
15
+ import { AddSelectMetaPanel } from './AddSelectMetaPanel';
15
16
  var componentName = 'AddSelectSidebar';
16
17
  export var AddSelectSidebar = function AddSelectSidebar(_ref) {
17
- var influencerTitle = _ref.influencerTitle,
18
+ var closeIconDescription = _ref.closeIconDescription,
19
+ displayMetalPanel = _ref.displayMetalPanel,
20
+ influencerTitle = _ref.influencerTitle,
18
21
  items = _ref.items,
22
+ metaPanelTitle = _ref.metaPanelTitle,
19
23
  multiSelection = _ref.multiSelection,
20
24
  noSelectionDescription = _ref.noSelectionDescription,
21
25
  noSelectionTitle = _ref.noSelectionTitle,
22
26
  removeIconDescription = _ref.removeIconDescription,
27
+ setDisplayMetaPanel = _ref.setDisplayMetaPanel,
23
28
  setMultiSelection = _ref.setMultiSelection;
24
29
  var blockClass = "".concat(pkg.prefix, "--add-select__sidebar");
25
30
 
@@ -69,6 +74,15 @@ export var AddSelectSidebar = function AddSelectSidebar(_ref) {
69
74
  }));
70
75
  };
71
76
 
77
+ if (Object.keys(displayMetalPanel).length !== 0) {
78
+ return /*#__PURE__*/React.createElement(AddSelectMetaPanel, {
79
+ closeIconDescription: closeIconDescription,
80
+ meta: displayMetalPanel.meta,
81
+ setDisplayMetaPanel: setDisplayMetaPanel,
82
+ title: metaPanelTitle
83
+ });
84
+ }
85
+
72
86
  return /*#__PURE__*/React.createElement("div", {
73
87
  className: blockClass
74
88
  }, /*#__PURE__*/React.createElement("div", {
@@ -103,12 +117,16 @@ export var AddSelectSidebar = function AddSelectSidebar(_ref) {
103
117
  })));
104
118
  };
105
119
  AddSelectSidebar.propTypes = {
120
+ closeIconDescription: PropTypes.string,
121
+ displayMetalPanel: PropTypes.object,
106
122
  influencerTitle: PropTypes.string,
107
123
  items: PropTypes.array,
124
+ metaPanelTitle: PropTypes.string,
108
125
  multiSelection: PropTypes.array,
109
126
  noSelectionDescription: PropTypes.string,
110
127
  noSelectionTitle: PropTypes.string,
111
128
  removeIconDescription: PropTypes.string,
129
+ setDisplayMetaPanel: PropTypes.func,
112
130
  setMultiSelection: PropTypes.func
113
131
  };
114
132
  AddSelectSidebar.displayName = componentName;
@@ -780,7 +780,8 @@ export var DataSpreadsheet = /*#__PURE__*/React.forwardRef(function (_ref, ref)
780
780
  totalVisibleColumns: totalVisibleColumns,
781
781
  updateActiveCellCoordinates: updateActiveCellCoordinates,
782
782
  setHeaderCellHoldActive: setHeaderCellHoldActive,
783
- headerCellHoldActive: headerCellHoldActive
783
+ headerCellHoldActive: headerCellHoldActive,
784
+ visibleColumns: visibleColumns
784
785
  }), /*#__PURE__*/React.createElement(DataSpreadsheetBody, {
785
786
  activeCellCoordinates: activeCellCoordinates,
786
787
  ref: spreadsheetRef,
@@ -371,6 +371,8 @@ export var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
371
371
  width: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.rowHeaderWidth
372
372
  }
373
373
  }, index + 1)), row.cells.map(function (cell, index) {
374
+ var _cell$column;
375
+
374
376
  return /*#__PURE__*/React.createElement("div", _extends({
375
377
  key: "cell_".concat(index),
376
378
  "aria-colindex": index + 1
@@ -378,7 +380,7 @@ export var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
378
380
  role: "gridcell",
379
381
  style: _objectSpread(_objectSpread({}, cell.getCellProps().style), {}, {
380
382
  display: 'grid',
381
- minWidth: defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width
383
+ minWidth: (cell === null || cell === void 0 ? void 0 : (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : _cell$column.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width)
382
384
  })
383
385
  }), /*#__PURE__*/React.createElement("button", {
384
386
  id: "".concat(blockClass, "__cell--").concat(cell.row.index, "--").concat(index),
@@ -407,7 +409,8 @@ export var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
407
409
  scrollBarSizeValue: scrollBarSize,
408
410
  totalVisibleColumns: totalVisibleColumns,
409
411
  defaultColumn: defaultColumn,
410
- totalColumnsWidth: totalColumnsWidth
412
+ totalColumnsWidth: totalColumnsWidth,
413
+ visibleColumns: visibleColumns
411
414
  }),
412
415
  outerRef: contentScrollRef
413
416
  }, rows !== null && rows !== void 0 && rows.length ? RenderRow : RenderEmptyRows));
@@ -41,7 +41,8 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
41
41
  totalVisibleColumns = _ref.totalVisibleColumns,
42
42
  updateActiveCellCoordinates = _ref.updateActiveCellCoordinates,
43
43
  setHeaderCellHoldActive = _ref.setHeaderCellHoldActive,
44
- headerCellHoldActive = _ref.headerCellHoldActive;
44
+ headerCellHoldActive = _ref.headerCellHoldActive,
45
+ visibleColumns = _ref.visibleColumns;
45
46
 
46
47
  var _useState = useState(0),
47
48
  _useState2 = _slicedToArray(_useState, 2),
@@ -144,7 +145,8 @@ export var DataSpreadsheetHeader = /*#__PURE__*/forwardRef(function (_ref, ref)
144
145
  headerGroup: headerGroup,
145
146
  scrollBarSizeValue: scrollBarSizeValue,
146
147
  totalVisibleColumns: totalVisibleColumns,
147
- defaultColumn: defaultColumn
148
+ defaultColumn: defaultColumn,
149
+ visibleColumns: visibleColumns
148
150
  }),
149
151
  overflow: 'hidden'
150
152
  }),
@@ -279,5 +281,10 @@ DataSpreadsheetHeader.propTypes = {
279
281
  /**
280
282
  * Function used to update the active cell coordinates
281
283
  */
282
- updateActiveCellCoordinates: PropTypes.func
284
+ updateActiveCellCoordinates: PropTypes.func,
285
+
286
+ /**
287
+ * Array of visible columns provided by react-table useTable hook
288
+ */
289
+ visibleColumns: PropTypes.array
283
290
  };
@@ -11,7 +11,8 @@ export var getSpreadsheetWidth = function getSpreadsheetWidth(_ref) {
11
11
  scrollBarSizeValue = _ref.scrollBarSizeValue,
12
12
  totalVisibleColumns = _ref.totalVisibleColumns,
13
13
  defaultColumn = _ref.defaultColumn,
14
- totalColumnsWidth = _ref.totalColumnsWidth;
14
+ totalColumnsWidth = _ref.totalColumnsWidth,
15
+ visibleColumns = _ref.visibleColumns;
15
16
  var additionalWidth = scrollBarSizeValue + defaultColumn.rowHeaderWidth;
16
17
 
17
18
  if (!totalVisibleColumns) {
@@ -25,6 +26,11 @@ export var getSpreadsheetWidth = function getSpreadsheetWidth(_ref) {
25
26
  }
26
27
 
27
28
  if (totalVisibleColumns) {
28
- return totalVisibleColumns * (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width) + additionalWidth;
29
+ var totalVisibleColumnWidth = visibleColumns.map(function (item, index) {
30
+ return index <= totalVisibleColumns - 1 && ((item === null || item === void 0 ? void 0 : item.width) || (defaultColumn === null || defaultColumn === void 0 ? void 0 : defaultColumn.width));
31
+ }).reduce(function (prev, curr) {
32
+ return prev + curr;
33
+ }, 0);
34
+ return totalVisibleColumnWidth + additionalWidth;
29
35
  }
30
36
  };
@@ -55,7 +55,7 @@ export var handleHeaderCellSelection = function handleHeaderCellSelection(_ref)
55
55
  matcher: tempMatcher,
56
56
  header: {
57
57
  type: type,
58
- index: index
58
+ index: type === 'column' ? columnValue : rowValue
59
59
  }
60
60
  };
61
61
  setSelectionAreas(function (prev) {
@@ -60,7 +60,7 @@ export var Datagrid = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
60
60
  return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
61
61
  id: tableId,
62
62
  ref: ref,
63
- className: cx(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"))
63
+ className: cx(className, blockClass, withVirtualScroll ? "".concat(blockClass, "__datagridWrap") : "".concat(blockClass, "__datagridWrap-simple"), !isFetching && rows.length === 0 ? "".concat(blockClass, "__empty-state") : '')
64
64
  }, getDevtoolsProps(componentName)), /*#__PURE__*/React.createElement(DatagridToolbar, datagridState), leftPanel && /*#__PURE__*/React.createElement("div", {
65
65
  className: "".concat(blockClass, "__grid-container ").concat(blockClass, "__displayFlex")
66
66
  }, leftPanel && leftPanel.isOpen && /*#__PURE__*/React.createElement("div", {
@@ -1,3 +1,5 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+
1
3
  /*
2
4
  * Licensed Materials - Property of IBM
3
5
  * 5724-Q36
@@ -7,13 +9,30 @@
7
9
  */
8
10
  import React from 'react';
9
11
  import { pkg } from '../../../settings';
12
+ import { DataTable } from 'carbon-components-react';
13
+ import { NoDataEmptyState } from '../../EmptyStates/NoDataEmptyState';
10
14
  var blockClass = "".concat(pkg.prefix, "--datagrid");
15
+ var TableBody = DataTable.TableBody,
16
+ TableRow = DataTable.TableRow,
17
+ TableCell = DataTable.TableCell;
11
18
 
12
19
  var DatagridEmptyBody = function DatagridEmptyBody(datagridState) {
13
- var EmptyState = datagridState.EmptyState;
14
- return /*#__PURE__*/React.createElement("div", {
20
+ var getTableBodyProps = datagridState.getTableBodyProps,
21
+ headers = datagridState.headers,
22
+ emptyStateTitle = datagridState.emptyStateTitle,
23
+ emptyStateDescription = datagridState.emptyStateDescription,
24
+ emptyStateSize = datagridState.emptyStateSize,
25
+ illustrationTheme = datagridState.illustrationTheme;
26
+ return /*#__PURE__*/React.createElement(TableBody, _extends({}, getTableBodyProps(), {
15
27
  className: "".concat(blockClass, "__empty-state-body")
16
- }, EmptyState);
28
+ }), /*#__PURE__*/React.createElement(TableRow, null, /*#__PURE__*/React.createElement(TableCell, {
29
+ colSpan: headers.length
30
+ }, /*#__PURE__*/React.createElement(NoDataEmptyState, {
31
+ illustrationTheme: illustrationTheme,
32
+ size: emptyStateSize,
33
+ title: emptyStateTitle,
34
+ subtitle: emptyStateDescription
35
+ }))));
17
36
  };
18
37
 
19
38
  export default DatagridEmptyBody;
@@ -54,9 +54,9 @@ var RowSizeDropdown = function RowSizeDropdown(_ref) {
54
54
 
55
55
  RowSizeDropdown.propTypes = {
56
56
  buttonLabel: PropTypes.string,
57
- datagridName: PropTypes.string.isRequired,
58
- light: PropTypes.bool.isRequired,
57
+ datagridName: PropTypes.string,
58
+ light: PropTypes.bool,
59
59
  onChange: PropTypes.func.isRequired,
60
- selectedOption: PropTypes.string.isRequired
60
+ selectedOption: PropTypes.string
61
61
  };
62
62
  export default RowSizeDropdown;
@@ -128,7 +128,7 @@ RowSizeRadioGroup.defaultProps = {
128
128
  };
129
129
  RowSizeRadioGroup.propTypes = {
130
130
  buttonRef: PropTypes.any.isRequired,
131
- datagridName: PropTypes.string.isRequired,
131
+ datagridName: PropTypes.string,
132
132
  hideRadioGroup: PropTypes.func.isRequired,
133
133
  legendText: PropTypes.string,
134
134
  onChange: PropTypes.func.isRequired,
@@ -47,7 +47,7 @@ var _AddSelectSort = require("./AddSelectSort");
47
47
 
48
48
  var _useItemSort2 = require("./hooks/useItemSort");
49
49
 
50
- var _excluded = ["className", "clearFiltersText", "columnInputPlaceholder", "description", "globalFilters", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "influencerTitle", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "removeIconDescription", "searchResultsLabel", "title"];
50
+ var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "description", "globalFilters", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "removeIconDescription", "searchResultsLabel", "title"];
51
51
 
52
52
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
53
53
 
@@ -59,6 +59,7 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
59
59
 
60
60
  var className = _ref.className,
61
61
  clearFiltersText = _ref.clearFiltersText,
62
+ closeIconDescription = _ref.closeIconDescription,
62
63
  columnInputPlaceholder = _ref.columnInputPlaceholder,
63
64
  description = _ref.description,
64
65
  globalFilters = _ref.globalFilters,
@@ -72,7 +73,10 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
72
73
  influencerTitle = _ref.influencerTitle,
73
74
  items = _ref.items,
74
75
  itemsLabel = _ref.itemsLabel,
76
+ metaIconDescription = _ref.metaIconDescription,
77
+ metaPanelTitle = _ref.metaPanelTitle,
75
78
  multi = _ref.multi,
79
+ navIconDescription = _ref.navIconDescription,
76
80
  noResultsDescription = _ref.noResultsDescription,
77
81
  noResultsTitle = _ref.noResultsTitle,
78
82
  noSelectionDescription = _ref.noSelectionDescription,
@@ -134,6 +138,11 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
134
138
  appliedGlobalFilters = _useState18[0],
135
139
  setAppliedGlobalFilters = _useState18[1];
136
140
 
141
+ var _useState19 = (0, _react.useState)({}),
142
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
143
+ displayMetalPanel = _useState20[0],
144
+ setDisplayMetaPanel = _useState20[1];
145
+
137
146
  var _useItemSort = (0, _useItemSort2.useItemSort)(),
138
147
  sortDirection = _useItemSort.sortDirection,
139
148
  setSortDirection = _useItemSort.setSortDirection,
@@ -256,13 +265,16 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
256
265
 
257
266
  var itemsToDisplay = getDisplayItems();
258
267
  var commonListProps = {
268
+ metaIconDescription: metaIconDescription,
259
269
  multi: multi,
260
270
  multiSelection: multiSelection,
271
+ navIconDescription: navIconDescription,
261
272
  path: path,
262
273
  setMultiSelection: setMultiSelection,
263
274
  setPath: setPath,
264
275
  setSingleSelection: setSingleSelection,
265
- singleSelection: singleSelection
276
+ singleSelection: singleSelection,
277
+ setDisplayMetaPanel: setDisplayMetaPanel
266
278
  }; // handlers
267
279
 
268
280
  var handleSearch = function handleSearch(term) {
@@ -297,13 +309,17 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
297
309
  portalTarget: portalTarget
298
310
  };
299
311
  var sidebarProps = {
312
+ closeIconDescription: closeIconDescription,
300
313
  influencerTitle: influencerTitle,
301
314
  items: flatItems,
315
+ metaPanelTitle: metaPanelTitle,
302
316
  multiSelection: multiSelection,
303
317
  noSelectionDescription: noSelectionDescription,
304
318
  noSelectionTitle: noSelectionTitle,
305
319
  removeIconDescription: removeIconDescription,
306
- setMultiSelection: setMultiSelection
320
+ setMultiSelection: setMultiSelection,
321
+ displayMetalPanel: displayMetalPanel,
322
+ setDisplayMetaPanel: setDisplayMetaPanel
307
323
  };
308
324
 
309
325
  var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
@@ -405,6 +421,7 @@ exports.AddSelect = AddSelect;
405
421
  AddSelect.propTypes = {
406
422
  className: _propTypes.default.string,
407
423
  clearFiltersText: _propTypes.default.string,
424
+ closeIconDescription: _propTypes.default.string,
408
425
  columnInputPlaceholder: _propTypes.default.string,
409
426
  description: _propTypes.default.string,
410
427
  globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
@@ -435,13 +452,21 @@ AddSelect.propTypes = {
435
452
  children: _propTypes.default.object,
436
453
  icon: _propTypes.default.object,
437
454
  id: _propTypes.default.string.isRequired,
455
+ meta: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
456
+ id: _propTypes.default.string,
457
+ title: _propTypes.default.string,
458
+ value: _propTypes.default.string
459
+ })), _propTypes.default.node]),
438
460
  subtitle: _propTypes.default.string,
439
461
  title: _propTypes.default.string.isRequired,
440
462
  value: _propTypes.default.string.isRequired
441
463
  }))
442
464
  }),
443
465
  itemsLabel: _propTypes.default.string,
466
+ metaIconDescription: _propTypes.default.string,
467
+ metaPanelTitle: _propTypes.default.string,
444
468
  multi: _propTypes.default.bool,
469
+ navIconDescription: _propTypes.default.string,
445
470
  noResultsDescription: _propTypes.default.string,
446
471
  noResultsTitle: _propTypes.default.string,
447
472
  noSelectionDescription: _propTypes.default.string,
@@ -35,10 +35,13 @@ var componentName = 'AddSelectList';
35
35
 
36
36
  var AddSelectList = function AddSelectList(_ref) {
37
37
  var filteredItems = _ref.filteredItems,
38
+ metaIconDescription = _ref.metaIconDescription,
38
39
  modifiers = _ref.modifiers,
39
40
  multi = _ref.multi,
40
41
  multiSelection = _ref.multiSelection,
42
+ navIconDescription = _ref.navIconDescription,
41
43
  path = _ref.path,
44
+ setDisplayMetaPanel = _ref.setDisplayMetaPanel,
42
45
  setMultiSelection = _ref.setMultiSelection,
43
46
  setPath = _ref.setPath,
44
47
  setSingleSelection = _ref.setSingleSelection,
@@ -186,7 +189,7 @@ var AddSelectList = function AddSelectList(_ref) {
186
189
  light: true,
187
190
  label: modifiers === null || modifiers === void 0 ? void 0 : modifiers.label,
188
191
  disabled: !isSelected(item.id),
189
- className: "".concat(blockClass, "-dropdown")
192
+ className: "".concat(blockClass, "-dropdown ").concat(blockClass, "-hidden-hover")
190
193
  })) : /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
191
194
  className: "".concat(blockClass, "-radio"),
192
195
  name: "add-select-selections",
@@ -195,21 +198,44 @@ var AddSelectList = function AddSelectList(_ref) {
195
198
  labelText: item.title,
196
199
  onChange: handleSingleSelection,
197
200
  selected: item.value === singleSelection
198
- }), item.children && /*#__PURE__*/_react.default.createElement(_iconsReact.ChevronRight16, {
201
+ }), item.children && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
202
+ renderIcon: _iconsReact.ChevronRight16,
203
+ iconDescription: navIconDescription,
204
+ tooltipPosition: "left",
205
+ tooltipAlignment: "center",
206
+ hasIconOnly: true,
199
207
  onClick: function onClick() {
200
208
  return onNavigateItem(item);
201
- }
202
- }))));
209
+ },
210
+ kind: "ghost",
211
+ size: "sm"
212
+ }), item.meta && /*#__PURE__*/_react.default.createElement("div", {
213
+ className: "".concat(blockClass, "-hidden-hover")
214
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
215
+ renderIcon: _iconsReact.View16,
216
+ iconDescription: metaIconDescription,
217
+ tooltipPosition: "left",
218
+ tooltipAlignment: "center",
219
+ hasIconOnly: true,
220
+ onClick: function onClick() {
221
+ return setDisplayMetaPanel(item);
222
+ },
223
+ kind: "ghost",
224
+ size: "sm"
225
+ })))));
203
226
  }))));
204
227
  };
205
228
 
206
229
  exports.AddSelectList = AddSelectList;
207
230
  AddSelectList.propTypes = {
208
231
  filteredItems: _propTypes.default.array,
232
+ metaIconDescription: _propTypes.default.string,
209
233
  modifiers: _propTypes.default.object,
210
234
  multi: _propTypes.default.bool,
211
235
  multiSelection: _propTypes.default.array,
236
+ navIconDescription: _propTypes.default.string,
212
237
  path: _propTypes.default.array,
238
+ setDisplayMetaPanel: _propTypes.default.func,
213
239
  setMultiSelection: _propTypes.default.func,
214
240
  setPath: _propTypes.default.func,
215
241
  setSingleSelection: _propTypes.default.func,
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.AddSelectMetaPanel = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _iconsReact = require("@carbon/icons-react");
17
+
18
+ var _carbonComponentsReact = require("carbon-components-react");
19
+
20
+ var _settings = require("../../settings");
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ var componentName = 'AddSelectMetaPanel';
27
+
28
+ var AddSelectMetaPanel = function AddSelectMetaPanel(_ref) {
29
+ var closeIconDescription = _ref.closeIconDescription,
30
+ meta = _ref.meta,
31
+ setDisplayMetaPanel = _ref.setDisplayMetaPanel,
32
+ title = _ref.title;
33
+ var blockClass = "".concat(_settings.pkg.prefix, "--add-select__meta-panel");
34
+
35
+ var onCloseHandler = function onCloseHandler() {
36
+ setDisplayMetaPanel({});
37
+ };
38
+
39
+ return /*#__PURE__*/_react.default.createElement("div", {
40
+ className: blockClass
41
+ }, /*#__PURE__*/_react.default.createElement("div", {
42
+ className: "".concat(blockClass, "-header")
43
+ }, /*#__PURE__*/_react.default.createElement("p", {
44
+ className: "".concat(blockClass, "-title")
45
+ }, title), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
46
+ renderIcon: _iconsReact.Close16,
47
+ iconDescription: closeIconDescription,
48
+ tooltipPosition: "left",
49
+ tooltipAlignment: "center",
50
+ hasIconOnly: true,
51
+ onClick: onCloseHandler,
52
+ kind: "ghost",
53
+ size: "sm"
54
+ })), /*#__PURE__*/(0, _react.isValidElement)(meta) ? meta : meta.map(function (entry) {
55
+ return /*#__PURE__*/_react.default.createElement("div", {
56
+ key: entry.id,
57
+ className: "".concat(blockClass, "-entry")
58
+ }, /*#__PURE__*/_react.default.createElement("p", {
59
+ className: "".concat(blockClass, "-entry-title")
60
+ }, entry.title), /*#__PURE__*/_react.default.createElement("p", {
61
+ className: "".concat(blockClass, "-entry-body")
62
+ }, entry.value));
63
+ }));
64
+ };
65
+
66
+ exports.AddSelectMetaPanel = AddSelectMetaPanel;
67
+ AddSelectMetaPanel.propTypes = {
68
+ closeIconDescription: _propTypes.default.string,
69
+ meta: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
70
+ id: _propTypes.default.string,
71
+ title: _propTypes.default.string,
72
+ value: _propTypes.default.string
73
+ })), _propTypes.default.node]),
74
+ setDisplayMetaPanel: _propTypes.default.func,
75
+ title: _propTypes.default.string
76
+ };
77
+ AddSelectMetaPanel.displayName = componentName;