@carbon/ibm-products 1.18.0 → 1.18.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 (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;