@carbon/ibm-products 2.0.0-rc.8 → 2.0.0-rc.9

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 (68) hide show
  1. package/css/index-full-carbon.css +67 -21
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +4 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon.css +67 -21
  6. package/css/index-without-carbon.css.map +1 -1
  7. package/css/index-without-carbon.min.css +4 -2
  8. package/css/index-without-carbon.min.css.map +1 -1
  9. package/css/index.css +67 -21
  10. package/css/index.css.map +1 -1
  11. package/css/index.min.css +4 -2
  12. package/css/index.min.css.map +1 -1
  13. package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
  14. package/es/components/AddSelect/AddSelect.js +6 -3
  15. package/es/components/AddSelect/AddSelectBody.js +50 -26
  16. package/es/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
  17. package/es/components/AddSelect/AddSelectColumn.js +3 -3
  18. package/es/components/AddSelect/AddSelectFilter.js +5 -3
  19. package/es/components/AddSelect/AddSelectList.js +6 -5
  20. package/es/components/AddSelect/AddSelectMetaPanel.js +6 -0
  21. package/es/components/AddSelect/AddSelectSidebar.js +5 -2
  22. package/es/components/AddSelect/AddSelectSort.js +1 -1
  23. package/es/components/AddSelect/add-select-utils.js +7 -0
  24. package/es/components/AddSelect/hooks/useItemSort.js +6 -0
  25. package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
  26. package/es/components/AddSelect/hooks/usePath.js +15 -1
  27. package/es/components/AddSelect/index.js +1 -1
  28. package/es/components/CreateFullPage/CreateFullPage.js +4 -1
  29. package/es/components/Datagrid/Datagrid/DatagridRow.js +41 -2
  30. package/es/components/Datagrid/useNestedRows.js +14 -2
  31. package/es/components/Datagrid/utils/DatagridActions.js +130 -46
  32. package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
  33. package/es/components/MultiAddSelect/index.js +6 -0
  34. package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
  35. package/es/components/SingleAddSelect/index.js +6 -0
  36. package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
  37. package/lib/components/AddSelect/AddSelect.js +5 -2
  38. package/lib/components/AddSelect/AddSelectBody.js +45 -25
  39. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
  40. package/lib/components/AddSelect/AddSelectColumn.js +2 -2
  41. package/lib/components/AddSelect/AddSelectFilter.js +4 -2
  42. package/lib/components/AddSelect/AddSelectList.js +5 -4
  43. package/lib/components/AddSelect/AddSelectMetaPanel.js +6 -0
  44. package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
  45. package/lib/components/AddSelect/AddSelectSort.js +1 -1
  46. package/lib/components/AddSelect/add-select-utils.js +7 -0
  47. package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
  48. package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
  49. package/lib/components/AddSelect/hooks/usePath.js +9 -1
  50. package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
  51. package/lib/components/Datagrid/Datagrid/DatagridRow.js +42 -2
  52. package/lib/components/Datagrid/useNestedRows.js +15 -2
  53. package/lib/components/Datagrid/utils/DatagridActions.js +134 -44
  54. package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
  55. package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
  56. package/package.json +2 -2
  57. package/scss/components/AddSelect/_add-select.scss +24 -25
  58. package/scss/components/AddSelect/_index.scss +1 -1
  59. package/scss/components/AddSelect/_storybook-styles.scss +1 -1
  60. package/scss/components/Datagrid/_storybook-styles.scss +5 -0
  61. package/scss/components/Datagrid/styles/_datagrid.scss +49 -4
  62. package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
  63. package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
  64. package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
  65. package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
  66. package/scss/components/SingleAddSelect/_index.scss +7 -0
  67. package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
  68. package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
@@ -1,4 +1,4 @@
1
- import _extends from "@babel/runtime/helpers/extends";
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
 
3
3
  /**
4
4
  * Copyright IBM Corp. 2020, 2022
@@ -6,9 +6,9 @@ import _extends from "@babel/runtime/helpers/extends";
6
6
  * This source code is licensed under the Apache-2.0 license found in the
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
- import React from 'react';
10
- import { DataTable, Button } from '@carbon/react';
11
- import { Download, Filter, Add, Restart } from '@carbon/react/icons';
9
+ import React, { useLayoutEffect, useState } from 'react';
10
+ import { DataTable, Button, OverflowMenu, OverflowMenuItem, ComposedModal, ModalBody, ModalHeader, ModalFooter, Dropdown } from '@carbon/react';
11
+ import { Download, Filter, Add, Restart, ChevronDown } from '@carbon/react/icons';
12
12
  import { action } from '@storybook/addon-actions';
13
13
  import { pkg } from '../../../settings';
14
14
  import { ButtonMenu, ButtonMenuItem } from '../../ButtonMenu';
@@ -39,23 +39,42 @@ export var DatagridActions = function DatagridActions(datagridState) {
39
39
  var searchForAColumn = 'Search';
40
40
  var isNothingSelected = selectedFlatRows.length === 0;
41
41
  var style = {
42
- 'button:nth-child(1) > span:nth-child(1)': {
42
+ 'button:nthChild(1) > span:nthChild(1)': {
43
43
  bottom: '-37px'
44
44
  }
45
45
  };
46
+
47
+ var _useState = useState(false),
48
+ _useState2 = _slicedToArray(_useState, 2),
49
+ modalOpen = _useState2[0],
50
+ setModalOpen = _useState2[1];
51
+
52
+ var _useState3 = useState(window.innerWidth),
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ size = _useState4[0],
55
+ setSize = _useState4[1];
56
+
57
+ useLayoutEffect(function () {
58
+ function updateSize() {
59
+ setSize(window.innerWidth);
60
+ }
61
+
62
+ window.addEventListener('resize', updateSize);
63
+ return function () {
64
+ return window.removeEventListener('resize', updateSize);
65
+ };
66
+ }, []);
67
+ var mobileToolbar = size < 672 ? true : false;
68
+ var items = ['Option 1', 'Option 2', 'Option 3'];
46
69
  return isNothingSelected && (useDenseHeader && useDenseHeader ? /*#__PURE__*/React.createElement(TableToolbarContent, {
47
70
  size: "sm"
48
- }, /*#__PURE__*/React.createElement("div", {
71
+ }, !mobileToolbar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
49
72
  style: style
50
73
  }, /*#__PURE__*/React.createElement(Button, {
51
74
  kind: "ghost",
52
75
  hasIconOnly: true,
53
76
  tooltipPosition: "bottom",
54
- renderIcon: function renderIcon(props) {
55
- return /*#__PURE__*/React.createElement(Download, _extends({
56
- size: 16
57
- }, props));
58
- },
77
+ renderIcon: Download,
59
78
  iconDescription: 'Download CSV',
60
79
  onClick: downloadCsv
61
80
  })), /*#__PURE__*/React.createElement("div", {
@@ -64,11 +83,7 @@ export var DatagridActions = function DatagridActions(datagridState) {
64
83
  kind: "ghost",
65
84
  hasIconOnly: true,
66
85
  tooltipPosition: "bottom",
67
- renderIcon: function renderIcon(props) {
68
- return /*#__PURE__*/React.createElement(Filter, _extends({
69
- size: 16
70
- }, props));
71
- },
86
+ renderIcon: Filter,
72
87
  iconDescription: 'Left panel',
73
88
  onClick: leftPanelClick
74
89
  })), /*#__PURE__*/React.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/React.createElement("div", {
@@ -76,30 +91,49 @@ export var DatagridActions = function DatagridActions(datagridState) {
76
91
  className: "".concat(blockClass, "__toolbar-divider")
77
92
  }, /*#__PURE__*/React.createElement(Button, {
78
93
  kind: "ghost",
79
- renderIcon: function renderIcon(props) {
80
- return /*#__PURE__*/React.createElement(Add, _extends({
81
- size: 16
82
- }, props));
83
- },
94
+ renderIcon: Add,
84
95
  iconDescription: 'Action'
85
96
  }, "Ghost button")), CustomizeColumnsButton && /*#__PURE__*/React.createElement("div", {
86
97
  style: style
87
- }, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
98
+ }, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/React.createElement(OverflowMenu, {
99
+ ariaLabel: "Tools",
100
+ size: "md",
101
+ flipped: true
102
+ }, /*#__PURE__*/React.createElement(OverflowMenuItem, {
103
+ itemText: "Filter",
104
+ hasDivider: true,
105
+ requireTitle: true,
106
+ onClick: function onClick() {
107
+ return setModalOpen(true);
108
+ }
109
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
110
+ itemText: "Export",
111
+ hasDivider: true,
112
+ requireTitle: true
113
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
114
+ itemText: "Settings",
115
+ hasDivider: true,
116
+ requireTitle: true
117
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
118
+ itemText: "Import items",
119
+ hasDivider: true,
120
+ requireTitle: true
121
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
122
+ itemText: "Create",
123
+ hasDivider: true,
124
+ requireTitle: true
125
+ }))) : !mobileToolbar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
88
126
  kind: "ghost",
89
127
  hasIconOnly: true,
90
128
  tooltipPosition: "bottom",
91
- renderIcon: function renderIcon(props) {
92
- return /*#__PURE__*/React.createElement(Filter, _extends({
93
- size: 16
94
- }, props));
95
- },
129
+ renderIcon: Filter,
96
130
  iconDescription: 'Left panel',
97
131
  onClick: leftPanelClick
98
132
  }), /*#__PURE__*/React.createElement(TableToolbarContent, null, /*#__PURE__*/React.createElement(TableToolbarSearch, {
99
- size: "lg",
133
+ size: "xl",
100
134
  id: "columnSearch",
101
135
  persistent: true,
102
- placeholder: searchForAColumn,
136
+ placeHolderText: searchForAColumn,
103
137
  onChange: function onChange(e) {
104
138
  return setGlobalFilter(e.target.value);
105
139
  }
@@ -109,11 +143,7 @@ export var DatagridActions = function DatagridActions(datagridState) {
109
143
  kind: "ghost",
110
144
  hasIconOnly: true,
111
145
  tooltipPosition: "bottom",
112
- renderIcon: function renderIcon(props) {
113
- return /*#__PURE__*/React.createElement(Restart, _extends({
114
- size: 16
115
- }, props));
116
- },
146
+ renderIcon: Restart,
117
147
  iconDescription: 'Refresh',
118
148
  onClick: refreshColumns
119
149
  })), /*#__PURE__*/React.createElement("div", {
@@ -122,23 +152,14 @@ export var DatagridActions = function DatagridActions(datagridState) {
122
152
  kind: "ghost",
123
153
  hasIconOnly: true,
124
154
  tooltipPosition: "bottom",
125
- renderIcon: function renderIcon(props) {
126
- return /*#__PURE__*/React.createElement(Download, _extends({
127
- size: 16
128
- }, props));
129
- },
155
+ renderIcon: Download,
130
156
  iconDescription: 'Download CSV',
131
157
  onClick: downloadCsv
132
158
  })), CustomizeColumnsButton && /*#__PURE__*/React.createElement("div", {
133
159
  style: style
134
160
  }, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/React.createElement(ButtonMenu, {
135
- menuAriaLabel: "Primary action button menu",
136
161
  label: "Primary button",
137
- renderIcon: function renderIcon(props) {
138
- return /*#__PURE__*/React.createElement(Add, _extends({
139
- size: 16
140
- }, props));
141
- }
162
+ renderIcon: Add
142
163
  }, /*#__PURE__*/React.createElement(ButtonMenuItem, {
143
164
  itemText: "Option 1",
144
165
  onClick: action("Click on ButtonMenu Option 1")
@@ -148,5 +169,68 @@ export var DatagridActions = function DatagridActions(datagridState) {
148
169
  }), /*#__PURE__*/React.createElement(ButtonMenuItem, {
149
170
  itemText: "Option 3",
150
171
  onClick: action("Click on ButtonMenu Option 3")
151
- })))));
172
+ })))) : /*#__PURE__*/React.createElement(TableToolbarContent, null, /*#__PURE__*/React.createElement(TableToolbarSearch, {
173
+ size: "xl",
174
+ id: "columnSearch",
175
+ persistent: true,
176
+ placeHolderText: searchForAColumn,
177
+ onChange: function onChange(e) {
178
+ return setGlobalFilter(e.target.value);
179
+ }
180
+ }), /*#__PURE__*/React.createElement(OverflowMenu, {
181
+ ariaLabel: "Tools",
182
+ size: "lg",
183
+ flipped: true,
184
+ renderIcon: ChevronDown,
185
+ className: "".concat(blockClass, "__toolbar-menu__trigger"),
186
+ menuOptionsClass: "".concat(blockClass, "__toolbar-options")
187
+ }, /*#__PURE__*/React.createElement(OverflowMenuItem, {
188
+ itemText: "Filter",
189
+ hasDivider: true,
190
+ requireTitle: true,
191
+ onClick: function onClick() {
192
+ return setModalOpen(true);
193
+ }
194
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
195
+ itemText: "Export",
196
+ hasDivider: true,
197
+ requireTitle: true
198
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
199
+ itemText: "Settings",
200
+ hasDivider: true,
201
+ requireTitle: true
202
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
203
+ itemText: "Import items",
204
+ hasDivider: true,
205
+ requireTitle: true
206
+ }), /*#__PURE__*/React.createElement(OverflowMenuItem, {
207
+ itemText: "Create",
208
+ hasDivider: true,
209
+ requireTitle: true
210
+ })), modalOpen && /*#__PURE__*/React.createElement(ComposedModal, {
211
+ size: "lg",
212
+ open: modalOpen && modalOpen,
213
+ onClose: function onClose() {
214
+ return setModalOpen(false);
215
+ },
216
+ className: "".concat(blockClass, "__mobile-toolbar-modal")
217
+ }, /*#__PURE__*/React.createElement(ModalHeader, null, /*#__PURE__*/React.createElement("h4", null, "Filters")), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement(Dropdown, {
218
+ initialSelectedItem: items[2],
219
+ items: items,
220
+ titleText: "Label",
221
+ id: "filter1"
222
+ }), /*#__PURE__*/React.createElement(Dropdown, {
223
+ initialSelectedItem: items[2],
224
+ items: items,
225
+ titleText: "Label",
226
+ id: "filter2"
227
+ }), /*#__PURE__*/React.createElement(Dropdown, {
228
+ initialSelectedItem: items[2],
229
+ items: items,
230
+ titleText: "Label",
231
+ id: "filter3"
232
+ })), /*#__PURE__*/React.createElement(ModalFooter, {
233
+ primaryButtonText: "Apply",
234
+ secondaryButtonText: "Cancel"
235
+ }))));
152
236
  };
@@ -1,4 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ //
3
+ // Copyright IBM Corp. 2022, 2022
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
2
8
  import React, { forwardRef } from 'react';
3
9
  import PropTypes from 'prop-types';
4
10
  import { AddSelect } from '../AddSelect';
@@ -64,6 +70,11 @@ MultiAddSelect.propTypes = {
64
70
  */
65
71
  globalSearchPlaceholder: PropTypes.string,
66
72
 
73
+ /**
74
+ * the theme for the empty state illustration
75
+ */
76
+ illustrationTheme: PropTypes.oneOf(['light', 'dark']),
77
+
67
78
  /**
68
79
  * title that displays in the sidebar / influencer
69
80
  */
@@ -84,7 +95,8 @@ MultiAddSelect.propTypes = {
84
95
  avatar: PropTypes.shape({
85
96
  alt: PropTypes.string,
86
97
  icon: PropTypes.func,
87
- src: PropTypes.string
98
+ src: PropTypes.string,
99
+ theme: PropTypes.oneOf(['light', 'dark'])
88
100
  }),
89
101
  children: PropTypes.object,
90
102
  icon: PropTypes.func,
@@ -145,15 +157,10 @@ MultiAddSelect.propTypes = {
145
157
  */
146
158
  open: PropTypes.bool,
147
159
 
148
- /**
149
- * description for the remove item icon
150
- */
151
- removeIconDescription: PropTypes.string,
152
-
153
160
  /**
154
161
  * text that displays when displaying filtered items
155
162
  */
156
- searchResultsLabel: PropTypes.string,
163
+ searchResultsTitle: PropTypes.string,
157
164
 
158
165
  /**
159
166
  * header text
@@ -1 +1,7 @@
1
+ //
2
+ // Copyright IBM Corp. 2022, 2022
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
1
7
  export { MultiAddSelect } from './MultiAddSelect';
@@ -1,4 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ //
3
+ // Copyright IBM Corp. 2022
4
+ //
5
+ // This source code is licensed under the Apache-2.0 license found in the
6
+ // LICENSE file in the root directory of this source tree.
7
+ //
2
8
  import React, { forwardRef } from 'react';
3
9
  import PropTypes from 'prop-types';
4
10
  import { AddSelect } from '../AddSelect';
@@ -1 +1,7 @@
1
+ //
2
+ // Copyright IBM Corp. 2022
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
1
7
  export { SingleAddSelect } from './SingleAddSelect';
@@ -59,6 +59,7 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
59
59
  var ItemIcon = item.props.renderIcon;
60
60
  return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, {
61
61
  className: "".concat(blockClass, "__item"),
62
+ onClick: item.props.onClick,
62
63
  itemText: /*#__PURE__*/_react.default.createElement("div", {
63
64
  className: "".concat(blockClass, "__item-content"),
64
65
  "aria-describedby": "".concat(internalId.current, "-").concat(index, "--item-label")
@@ -67,12 +67,14 @@ AddSelect.propTypes = {
67
67
  label: _propTypes.default.string
68
68
  })),
69
69
  globalFiltersIconDescription: _propTypes.default.string,
70
+ globalFiltersLabel: _propTypes.default.string,
70
71
  globalFiltersPlaceholderText: _propTypes.default.string,
71
72
  globalFiltersPrimaryButtonText: _propTypes.default.string,
72
73
  globalFiltersSecondaryButtonText: _propTypes.default.string,
73
74
  globalSearchLabel: _propTypes.default.string.isRequired,
74
75
  globalSearchPlaceholder: _propTypes.default.string,
75
76
  globalSortBy: _propTypes.default.array,
77
+ illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
76
78
  influencerTitle: _propTypes.default.string,
77
79
  items: _propTypes.default.shape({
78
80
  modifiers: _propTypes.default.shape({
@@ -86,7 +88,8 @@ AddSelect.propTypes = {
86
88
  avatar: _propTypes.default.shape({
87
89
  alt: _propTypes.default.string,
88
90
  icon: _propTypes.default.func,
89
- src: _propTypes.default.string
91
+ src: _propTypes.default.string,
92
+ theme: _propTypes.default.oneOf(['light', 'dark'])
90
93
  }),
91
94
  children: _propTypes.default.object,
92
95
  icon: _propTypes.default.func,
@@ -120,7 +123,7 @@ AddSelect.propTypes = {
120
123
  * portal target for the all tags modal
121
124
  */
122
125
  portalTarget: _propTypes.default.node,
123
- searchResultsLabel: _propTypes.default.string,
126
+ searchResultsTitle: _propTypes.default.string,
124
127
  sortByLabel: _propTypes.default.string,
125
128
  title: _propTypes.default.string.isRequired
126
129
  };
@@ -51,16 +51,19 @@ var _usePath2 = _interopRequireDefault(require("./hooks/usePath"));
51
51
 
52
52
  var _settings = require("../../settings");
53
53
 
54
- var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "globalFilterOpts", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "searchResultsLabel", "sortByLabel", "title", "useNormalizedItems"];
54
+ var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "globalFilterOpts", "globalFiltersLabel", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "illustrationTheme", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "searchResultsTitle", "title", "useNormalizedItems"];
55
55
 
56
56
  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); }
57
57
 
58
58
  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; }
59
59
 
60
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
61
+
62
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
63
+
60
64
  var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
61
65
  var componentName = 'AddSelectBody';
62
-
63
- var AddSelectBody = function AddSelectBody(_ref) {
66
+ var AddSelectBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
64
67
  var _cx, _path$;
65
68
 
66
69
  var className = _ref.className,
@@ -71,6 +74,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
71
74
  description = _ref.description,
72
75
  filterByLabel = _ref.filterByLabel,
73
76
  globalFilterOpts = _ref.globalFilterOpts,
77
+ globalFiltersLabel = _ref.globalFiltersLabel,
74
78
  globalFiltersIconDescription = _ref.globalFiltersIconDescription,
75
79
  globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
76
80
  globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
@@ -78,6 +82,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
78
82
  globalSearchLabel = _ref.globalSearchLabel,
79
83
  globalSearchPlaceholder = _ref.globalSearchPlaceholder,
80
84
  globalSortBy = _ref.globalSortBy,
85
+ illustrationTheme = _ref.illustrationTheme,
81
86
  influencerTitle = _ref.influencerTitle,
82
87
  items = _ref.items,
83
88
  itemsLabel = _ref.itemsLabel,
@@ -96,8 +101,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
96
101
  onSubmitButtonText = _ref.onSubmitButtonText,
97
102
  open = _ref.open,
98
103
  portalTarget = _ref.portalTarget,
99
- searchResultsLabel = _ref.searchResultsLabel,
100
- sortByLabel = _ref.sortByLabel,
104
+ searchResultsTitle = _ref.searchResultsTitle,
101
105
  title = _ref.title,
102
106
  useNormalizedItems = _ref.useNormalizedItems,
103
107
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -146,7 +150,8 @@ var AddSelectBody = function AddSelectBody(_ref) {
146
150
  var _usePath = (0, _usePath2.default)(itemsLabel),
147
151
  path = _usePath.path,
148
152
  setPath = _usePath.setPath,
149
- pathOnclick = _usePath.pathOnclick;
153
+ pathOnclick = _usePath.pathOnclick,
154
+ resetPath = _usePath.resetPath;
150
155
 
151
156
  var resetState = function resetState() {
152
157
  setSingleSelection('');
@@ -154,6 +159,11 @@ var AddSelectBody = function AddSelectBody(_ref) {
154
159
  setSearchTerm('');
155
160
  setAppliedGlobalFilters({});
156
161
  setDisplayMetaPanel({});
162
+ setAppliedModifiers(defaultModifiers);
163
+ setSortAttribute('');
164
+ setSortDirection('');
165
+ setParentSelected(null);
166
+ resetPath();
157
167
  };
158
168
 
159
169
  var onCloseHandler = function onCloseHandler() {
@@ -161,7 +171,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
161
171
  onClose();
162
172
  };
163
173
 
164
- var classNames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
174
+ var tearsheetClassnames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
165
175
  var globalFilterKeys = Object.keys(appliedGlobalFilters);
166
176
  var globalFiltersApplied = globalFilterKeys.length > 0; // handlers
167
177
 
@@ -235,12 +245,12 @@ var AddSelectBody = function AddSelectBody(_ref) {
235
245
  setDisplayMetaPanel: setDisplayMetaPanel,
236
246
  parentId: path[0].id
237
247
  };
238
- var commonTearsheetProps = {
239
- className: classNames,
248
+
249
+ var commonTearsheetProps = _objectSpread(_objectSpread({}, rest), {}, {
250
+ className: tearsheetClassnames,
240
251
  open: open,
241
252
  title: title,
242
253
  description: description,
243
- closeIconDescription: 'temp description',
244
254
  actions: [{
245
255
  label: onCloseButtonText,
246
256
  kind: 'secondary',
@@ -251,12 +261,15 @@ var AddSelectBody = function AddSelectBody(_ref) {
251
261
  onClick: submitHandler,
252
262
  disabled: multi ? multiSelection.length === 0 : !singleSelection
253
263
  }],
254
- portalTarget: portalTarget
255
- };
264
+ portalTarget: portalTarget,
265
+ ref: ref
266
+ });
267
+
256
268
  var sidebarProps = {
257
269
  appliedModifiers: appliedModifiers,
258
270
  closeIconDescription: closeIconDescription,
259
271
  displayMetalPanel: displayMetalPanel,
272
+ illustrationTheme: illustrationTheme,
260
273
  influencerTitle: influencerTitle,
261
274
  items: useNormalizedItems ? normalizedItems : items.entries,
262
275
  metaPanelTitle: metaPanelTitle,
@@ -277,6 +290,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
277
290
  handleSearch: handleSearch,
278
291
  multi: multi,
279
292
  filterOpts: globalFilterOpts,
293
+ filtersLabel: globalFiltersLabel,
280
294
  handleFilter: handleFilter,
281
295
  primaryButtonText: globalFiltersPrimaryButtonText,
282
296
  secondaryButtonText: globalFiltersSecondaryButtonText,
@@ -288,14 +302,14 @@ var AddSelectBody = function AddSelectBody(_ref) {
288
302
  }), /*#__PURE__*/_react.default.createElement("div", {
289
303
  className: (0, _classnames.default)("".concat(blockClass, "__sub-header"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__sub-header-multi"), multi))
290
304
  }, /*#__PURE__*/_react.default.createElement("div", {
291
- className: "".concat(blockClass, "__tag-container")
305
+ className: "".concat(blockClass, "__tags")
292
306
  }, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
293
307
  path: path,
294
308
  onClick: pathOnclick,
295
309
  multi: multi
296
310
  }) : /*#__PURE__*/_react.default.createElement("p", {
297
- className: "".concat(blockClass, "__tag-container-label")
298
- }, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
311
+ className: "".concat(blockClass, "__tags-label")
312
+ }, searchTerm ? searchResultsTitle : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
299
313
  type: "gray",
300
314
  size: "sm"
301
315
  }, itemsToDisplay.length)), showSort && /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
@@ -304,8 +318,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
304
318
  setSortDirection: setSortDirection,
305
319
  sortAttribute: sortAttribute,
306
320
  sortDirection: sortDirection,
307
- sortBy: globalSortBy,
308
- sortByLabel: sortByLabel
321
+ sortBy: globalSortBy
309
322
  }))), displayColumnView ? /*#__PURE__*/_react.default.createElement("div", {
310
323
  className: "".concat(blockClass, "__columns")
311
324
  }, /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
@@ -325,15 +338,19 @@ var AddSelectBody = function AddSelectBody(_ref) {
325
338
  className: "".concat(blockClass, "__body")
326
339
  }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
327
340
  subtitle: noResultsDescription,
328
- title: noResultsTitle
341
+ title: noResultsTitle,
342
+ illustrationTheme: illustrationTheme
329
343
  }))));
330
344
 
331
- return /*#__PURE__*/_react.default.createElement("div", rest, multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
332
- influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
333
- influencerPosition: "right"
334
- }), body) : /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body));
335
- };
345
+ if (multi) {
346
+ return /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
347
+ influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
348
+ influencerPosition: "right"
349
+ }), body);
350
+ }
336
351
 
352
+ return /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body);
353
+ });
337
354
  exports.AddSelectBody = AddSelectBody;
338
355
  AddSelectBody.propTypes = {
339
356
  className: _propTypes.default.string,
@@ -345,12 +362,14 @@ AddSelectBody.propTypes = {
345
362
  filterByLabel: _propTypes.default.string,
346
363
  globalFilterOpts: _propTypes.default.array,
347
364
  globalFiltersIconDescription: _propTypes.default.string,
365
+ globalFiltersLabel: _propTypes.default.string,
348
366
  globalFiltersPlaceholderText: _propTypes.default.string,
349
367
  globalFiltersPrimaryButtonText: _propTypes.default.string,
350
368
  globalFiltersSecondaryButtonText: _propTypes.default.string,
351
369
  globalSearchLabel: _propTypes.default.string.isRequired,
352
370
  globalSearchPlaceholder: _propTypes.default.string,
353
371
  globalSortBy: _propTypes.default.array,
372
+ illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
354
373
  influencerTitle: _propTypes.default.string,
355
374
  items: _propTypes.default.shape({
356
375
  modifiers: _propTypes.default.shape({
@@ -364,7 +383,8 @@ AddSelectBody.propTypes = {
364
383
  avatar: _propTypes.default.shape({
365
384
  alt: _propTypes.default.string,
366
385
  icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
367
- src: _propTypes.default.string
386
+ src: _propTypes.default.string,
387
+ theme: _propTypes.default.oneOf(['light', 'dark'])
368
388
  }),
369
389
  children: _propTypes.default.object,
370
390
  icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
@@ -395,7 +415,7 @@ AddSelectBody.propTypes = {
395
415
  onSubmitButtonText: _propTypes.default.string,
396
416
  open: _propTypes.default.bool,
397
417
  portalTarget: _propTypes.default.node,
398
- searchResultsLabel: _propTypes.default.string,
418
+ searchResultsTitle: _propTypes.default.string,
399
419
  sortByLabel: _propTypes.default.string,
400
420
  title: _propTypes.default.string,
401
421
  useNormalizedItems: _propTypes.default.bool
@@ -20,7 +20,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
20
20
  var _settings = require("../../settings");
21
21
 
22
22
  //
23
- // Copyright IBM Corp. 2022
23
+ // Copyright IBM Corp. 2022, 2022
24
24
  //
25
25
  // This source code is licensed under the Apache-2.0 license found in the
26
26
  // LICENSE file in the root directory of this source tree.
@@ -235,14 +235,14 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
235
235
  }) ? true : false
236
236
  })));
237
237
  })))), /*#__PURE__*/_react.default.createElement("div", {
238
- className: "".concat(blockClass, "__tag-container")
238
+ className: "".concat(blockClass, "__tags")
239
239
  }, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
240
240
  id: "".concat((0, _uuidv.default)(), "-select-all"),
241
241
  className: "".concat(colClass, "__select-all"),
242
242
  checked: allSelected,
243
243
  onChange: selectAllHandler,
244
244
  labelText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
245
- className: "".concat(blockClass, "__tag-container-label")
245
+ className: "".concat(blockClass, "__tag-label")
246
246
  }, header), /*#__PURE__*/_react.default.createElement(_react2.Tag, {
247
247
  type: "gray",
248
248
  size: "sm"
@@ -42,6 +42,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
42
42
  var appliedFilters = _ref.appliedFilters,
43
43
  clearFiltersText = _ref.clearFiltersText,
44
44
  filterOpts = _ref.filterOpts,
45
+ filtersLabel = _ref.filtersLabel,
45
46
  handleFilter = _ref.handleFilter,
46
47
  handleSearch = _ref.handleSearch,
47
48
  hasFiltersApplied = _ref.hasFiltersApplied,
@@ -113,7 +114,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
113
114
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
114
115
  className: "".concat(blockClass, "-search")
115
116
  }, /*#__PURE__*/_react.default.createElement(_react2.Search, {
116
- id: "temp-id",
117
+ id: "add-select-global-search-filter",
117
118
  labelText: inputLabel,
118
119
  placeholder: inputPlaceholder,
119
120
  value: searchTerm,
@@ -137,7 +138,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
137
138
  className: blockClass
138
139
  }, /*#__PURE__*/_react.default.createElement("div", {
139
140
  className: "".concat(blockClass, "-content")
140
- }, /*#__PURE__*/_react.default.createElement("p", null, "Filters"), /*#__PURE__*/_react.default.createElement("div", {
141
+ }, /*#__PURE__*/_react.default.createElement("p", null, filtersLabel), /*#__PURE__*/_react.default.createElement("div", {
141
142
  className: "".concat(blockClass, "-opts")
142
143
  }, filterOpts.map(function (filterOpts) {
143
144
  return /*#__PURE__*/_react.default.createElement(_react2.Dropdown, {
@@ -188,6 +189,7 @@ AddSelectFilter.propTypes = {
188
189
  appliedFilters: _propTypes.default.object,
189
190
  clearFiltersText: _propTypes.default.string,
190
191
  filterOpts: _propTypes.default.array,
192
+ filtersLabel: _propTypes.default.string,
191
193
  handleFilter: _propTypes.default.func,
192
194
  handleSearch: _propTypes.default.func,
193
195
  hasFiltersApplied: _propTypes.default.bool,