@carbon/ibm-products 1.22.0 → 1.23.0

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 (71) hide show
  1. package/css/components/Datagrid/styles/datagrid.css +4 -0
  2. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  3. package/css/components/Datagrid/styles/index.css +15 -0
  4. package/css/components/Datagrid/styles/index.css.map +1 -1
  5. package/css/components/Datagrid/styles/useExpandedRow.css +12 -0
  6. package/css/components/Datagrid/styles/useExpandedRow.css.map +1 -0
  7. package/css/index-full-carbon.css +46 -143
  8. package/css/index-full-carbon.css.map +1 -1
  9. package/css/index-full-carbon.min.css +3 -3
  10. package/css/index-full-carbon.min.css.map +1 -1
  11. package/css/index-without-carbon-released-only.css +25 -16
  12. package/css/index-without-carbon-released-only.css.map +1 -1
  13. package/css/index-without-carbon-released-only.min.css +2 -2
  14. package/css/index-without-carbon-released-only.min.css.map +1 -1
  15. package/css/index-without-carbon.css +41 -16
  16. package/css/index-without-carbon.css.map +1 -1
  17. package/css/index-without-carbon.min.css +2 -2
  18. package/css/index-without-carbon.min.css.map +1 -1
  19. package/css/index.css +44 -139
  20. package/css/index.css.map +1 -1
  21. package/css/index.min.css +3 -3
  22. package/css/index.min.css.map +1 -1
  23. package/es/components/AddSelect/AddSelect.js +57 -422
  24. package/es/components/AddSelect/AddSelectBody.js +349 -0
  25. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -31
  26. package/es/components/AddSelect/AddSelectColumn.js +91 -41
  27. package/es/components/AddSelect/AddSelectFilter.js +1 -2
  28. package/es/components/AddSelect/AddSelectList.js +10 -61
  29. package/es/components/AddSelect/AddSelectMetaPanel.js +1 -1
  30. package/es/components/AddSelect/AddSelectSidebar.js +20 -13
  31. package/es/components/AddSelect/AddSelectSort.js +2 -2
  32. package/es/components/AddSelect/add-select-utils.js +85 -59
  33. package/es/components/AddSelect/hooks/useParentSelect.js +16 -0
  34. package/es/components/AddSelect/hooks/usePath.js +66 -0
  35. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
  36. package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
  37. package/es/components/Datagrid/Datagrid/Datagrid.js +1 -1
  38. package/es/components/Datagrid/useExpandedRow.js +12 -4
  39. package/es/components/PageHeader/PageHeaderUtils.js +5 -0
  40. package/es/components/TagSet/TagSet.js +15 -5
  41. package/lib/components/AddSelect/AddSelect.js +54 -430
  42. package/lib/components/AddSelect/AddSelectBody.js +384 -0
  43. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +11 -30
  44. package/lib/components/AddSelect/AddSelectColumn.js +90 -39
  45. package/lib/components/AddSelect/AddSelectFilter.js +1 -2
  46. package/lib/components/AddSelect/AddSelectList.js +11 -60
  47. package/lib/components/AddSelect/AddSelectMetaPanel.js +1 -1
  48. package/lib/components/AddSelect/AddSelectSidebar.js +20 -13
  49. package/lib/components/AddSelect/AddSelectSort.js +2 -2
  50. package/lib/components/AddSelect/add-select-utils.js +88 -64
  51. package/lib/components/AddSelect/hooks/useParentSelect.js +27 -0
  52. package/lib/components/AddSelect/hooks/usePath.js +75 -0
  53. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
  54. package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
  55. package/lib/components/Datagrid/Datagrid/Datagrid.js +1 -1
  56. package/lib/components/Datagrid/useExpandedRow.js +20 -4
  57. package/lib/components/PageHeader/PageHeaderUtils.js +5 -0
  58. package/lib/components/TagSet/TagSet.js +15 -5
  59. package/package.json +16 -16
  60. package/scss/components/Cascade/_cascade.scss +2 -1
  61. package/scss/components/CreateInfluencer/_create-influencer.scss +0 -2
  62. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -1
  63. package/scss/components/Datagrid/_storybook-styles.scss +4 -0
  64. package/scss/components/Datagrid/styles/datagrid.scss +4 -0
  65. package/scss/components/Datagrid/styles/index.scss +1 -0
  66. package/scss/components/Datagrid/styles/useExpandedRow.scss +13 -0
  67. package/scss/components/InlineEdit/_inline-edit.scss +2 -1
  68. package/scss/components/OptionsTile/_options-tile.scss +1 -0
  69. package/scss/components/PageHeader/_page-header.scss +9 -4
  70. package/scss/components/SidePanel/_side-panel.scss +1 -2
  71. package/scss/components/TagSet/_tag-set.scss +4 -0
@@ -13,447 +13,59 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
17
 
20
18
  var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
- var _classnames = _interopRequireDefault(require("classnames"));
25
-
26
- var _carbonComponentsReact = require("carbon-components-react");
27
-
28
- var _Tearsheet = require("../../components/Tearsheet");
29
-
30
- var _NoDataEmptyState = require("../../components/EmptyStates/NoDataEmptyState");
22
+ var _AddSelectBody = require("./AddSelectBody");
31
23
 
32
24
  var _settings = require("../../settings");
33
25
 
34
- var _AddSelectSidebar = require("./AddSelectSidebar");
35
-
36
- var _AddSelectBreadcrumbs = require("./AddSelectBreadcrumbs");
37
-
38
- var _AddSelectList = require("./AddSelectList");
39
-
40
- var _AddSelectColumn = require("./AddSelectColumn");
41
-
42
26
  var _addSelectUtils = require("./add-select-utils");
43
27
 
44
- var _AddSelectFilter = require("./AddSelectFilter");
45
-
46
- var _AddSelectSort = require("./AddSelectSort");
47
-
48
- var _useItemSort2 = require("./hooks/useItemSort");
49
-
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"];
28
+ var _excluded = ["items"];
51
29
 
52
30
  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
31
 
54
32
  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; }
55
33
 
34
+ var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
56
35
  var componentName = 'AddSelect';
57
36
  var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
58
- var _cx;
59
-
60
- var className = _ref.className,
61
- clearFiltersText = _ref.clearFiltersText,
62
- closeIconDescription = _ref.closeIconDescription,
63
- columnInputPlaceholder = _ref.columnInputPlaceholder,
64
- description = _ref.description,
65
- globalFilters = _ref.globalFilters,
66
- globalFiltersIconDescription = _ref.globalFiltersIconDescription,
67
- globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
68
- globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
69
- globalFiltersSecondaryButtonText = _ref.globalFiltersSecondaryButtonText,
70
- globalSearchLabel = _ref.globalSearchLabel,
71
- globalSearchPlaceholder = _ref.globalSearchPlaceholder,
72
- globalSortBy = _ref.globalSortBy,
73
- influencerTitle = _ref.influencerTitle,
74
- items = _ref.items,
75
- itemsLabel = _ref.itemsLabel,
76
- metaIconDescription = _ref.metaIconDescription,
77
- metaPanelTitle = _ref.metaPanelTitle,
78
- multi = _ref.multi,
79
- navIconDescription = _ref.navIconDescription,
80
- noResultsDescription = _ref.noResultsDescription,
81
- noResultsTitle = _ref.noResultsTitle,
82
- noSelectionDescription = _ref.noSelectionDescription,
83
- noSelectionTitle = _ref.noSelectionTitle,
84
- onClose = _ref.onClose,
85
- onCloseButtonText = _ref.onCloseButtonText,
86
- onSubmit = _ref.onSubmit,
87
- onSubmitButtonText = _ref.onSubmitButtonText,
88
- open = _ref.open,
89
- portalTarget = _ref.portalTarget,
90
- removeIconDescription = _ref.removeIconDescription,
91
- searchResultsLabel = _ref.searchResultsLabel,
92
- title = _ref.title,
93
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
94
- var blockClass = "".concat(_settings.pkg.prefix, "--add-select"); // hooks
95
-
96
- var _useState = (0, _react.useState)([]),
97
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
98
- path = _useState2[0],
99
- setPath = _useState2[1];
100
-
101
- var _useState3 = (0, _react.useState)(''),
102
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
103
- singleSelection = _useState4[0],
104
- setSingleSelection = _useState4[1];
105
-
106
- var _useState5 = (0, _react.useState)([]),
107
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
108
- multiSelection = _useState6[0],
109
- setMultiSelection = _useState6[1];
110
-
111
- var _useState7 = (0, _react.useState)(''),
112
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
113
- searchTerm = _useState8[0],
114
- setSearchTerm = _useState8[1];
115
-
116
- var _useState9 = (0, _react.useState)({}),
117
- _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
118
- normalizedItems = _useState10[0],
119
- setNormalizedItems = _useState10[1];
120
-
121
- var _useState11 = (0, _react.useState)(false),
122
- _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
123
- useNormalizedItems = _useState12[0],
124
- setUsedNormalizedItems = _useState12[1];
125
-
126
- var _useState13 = (0, _react.useState)([]),
127
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
128
- flatItems = _useState14[0],
129
- setFlatItems = _useState14[1];
130
-
131
- var _useState15 = (0, _react.useState)([]),
132
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
133
- globalFilterOpts = _useState16[0],
134
- setGlobalFilterOpts = _useState16[1];
135
-
136
- var _useState17 = (0, _react.useState)({}),
137
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
138
- appliedGlobalFilters = _useState18[0],
139
- setAppliedGlobalFilters = _useState18[1];
140
-
141
- var _useState19 = (0, _react.useState)({}),
142
- _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
143
- displayMetalPanel = _useState20[0],
144
- setDisplayMetaPanel = _useState20[1];
145
-
146
- var _useItemSort = (0, _useItemSort2.useItemSort)(),
147
- sortDirection = _useItemSort.sortDirection,
148
- setSortDirection = _useItemSort.setSortDirection,
149
- sortAttribute = _useItemSort.sortAttribute,
150
- setSortAttribute = _useItemSort.setSortAttribute;
151
-
152
- var _useState21 = (0, _react.useState)([]),
153
- _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
154
- appliedModifiers = _useState22[0],
155
- setAppliedModifiers = _useState22[1];
156
-
157
- (0, _react.useEffect)(function () {
158
- var entries = items.entries; // flatItems is just a single array of all entries including children
159
-
160
- var flattenedItems = (0, _addSelectUtils.flatten)(entries);
161
-
162
- if (multi) {
163
- if (globalFilters !== null && globalFilters !== void 0 && globalFilters.length) {
164
- var globalFilterValues = (0, _addSelectUtils.getGlobalFilterValues)(globalFilters, flattenedItems);
165
- setGlobalFilterOpts(globalFilterValues);
166
- }
167
-
168
- if (items.modifiers) {
169
- var modifiersToApply = flattenedItems.map(function (item) {
170
- var modifierAttribute = items.modifiers.id;
171
- return (0, _defineProperty2.default)({
172
- id: item.id
173
- }, modifierAttribute, item[modifierAttribute]);
174
- });
175
- setAppliedModifiers(modifiersToApply);
176
- } // multi select with nested data needs to be normalized
177
-
178
-
179
- if (entries.find(function (entry) {
180
- return entry.children;
181
- })) {
182
- var newItems = (0, _addSelectUtils.normalize)(items);
183
- setNormalizedItems(newItems);
184
- setUsedNormalizedItems(true);
185
- }
186
- }
187
-
188
- setFlatItems(flattenedItems);
189
- }, [items, multi, globalFilters]); // used to generate columns of results for multi select with hierarchy
190
-
191
- var getPages = function getPages() {
192
- var pages = [];
193
- var itemIds = Object.keys(normalizedItems); // top level items are just items with no parents so they're the top results
194
-
195
- var topLevelItems = [];
196
- itemIds.forEach(function (itemId) {
197
- if (!normalizedItems[itemId].parent) {
198
- topLevelItems.push(normalizedItems[itemId]);
199
- }
200
- });
201
- pages.push(topLevelItems);
202
-
203
- if (path.length) {
204
- /**
205
- * the path is set when you initially traverse the child entries
206
- * path is an array of item id's
207
- * when a path is present the normalized items are searched
208
- * any item who's has a matching parent id is added to the results
209
- * in the end you have an array of arrays for each column of the hierarchy
210
- */
211
- var pathIds = path.map(function (p) {
212
- return p.id;
213
- });
214
- pathIds.forEach(function (pathId) {
215
- var entries = [];
216
- itemIds.forEach(function (itemId) {
217
- if (normalizedItems[itemId].parent === pathId) {
218
- entries.push(normalizedItems[itemId]);
219
- }
220
- });
221
- pages.push(entries);
222
- });
223
- }
224
-
225
- return pages;
226
- }; // item filtering
227
-
228
-
229
- var getFilteredItems = function getFilteredItems() {
230
- var entries = items.entries;
231
- var hasPath = path.length > 0;
232
- /**
233
- * how to traverse the levels of items-
234
- * the path represents the ids of each level / item / breadcrumb
235
- * using this path we can drill down into the items until we get to the last one the user selected
236
- */
237
-
238
- var itemsToFilter = hasPath ? path.reduce(function (prev, cur) {
239
- var _prev$find, _prev$find$children;
240
-
241
- return (_prev$find = prev.find(function (item) {
242
- return item.id === cur.id;
243
- })) === null || _prev$find === void 0 ? void 0 : (_prev$find$children = _prev$find.children) === null || _prev$find$children === void 0 ? void 0 : _prev$find$children.entries;
244
- }, entries) : entries;
245
- var results = itemsToFilter.filter(function (item) {
246
- if (!searchTerm) {
247
- return item;
248
- } // otherwise use the default label filter
249
-
250
-
251
- return item.title.toLowerCase().includes(searchTerm);
252
- });
253
- return results;
254
- };
255
-
256
- var sortFn = (0, _addSelectUtils.sortItems)(sortAttribute, sortDirection);
257
-
258
- var getDisplayItems = function getDisplayItems() {
259
- if (useNormalizedItems) {
260
- // when global search or filter is in use the results are not in column format
261
- var filters = Object.keys(appliedGlobalFilters);
262
-
263
- if (searchTerm || filters.length) {
264
- var results = flatItems.filter(function (item) {
265
- return item.title.toLowerCase().includes(searchTerm);
266
- }).filter(function (item) {
267
- return filters.every(function (filter) {
268
- return item[filter] === appliedGlobalFilters[filter];
269
- });
270
- }).sort(sortFn);
271
- return results;
272
- }
273
-
274
- return getPages();
275
- }
276
-
277
- return getFilteredItems();
278
- }; // only multi select with hierarchy requires the the normalized items
279
-
280
-
281
- var itemsToDisplay = getDisplayItems();
282
- var commonListProps = {
283
- metaIconDescription: metaIconDescription,
284
- multi: multi,
285
- multiSelection: multiSelection,
286
- navIconDescription: navIconDescription,
287
- path: path,
288
- setMultiSelection: setMultiSelection,
289
- setPath: setPath,
290
- setSingleSelection: setSingleSelection,
291
- singleSelection: singleSelection,
292
- setDisplayMetaPanel: setDisplayMetaPanel
293
- }; // handlers
294
-
295
- var handleSearch = function handleSearch(term) {
296
- setSearchTerm(term);
297
- };
298
-
299
- var handleFilter = function handleFilter(filters) {
300
- setAppliedGlobalFilters(filters);
301
- };
302
-
303
- var submitHandler = function submitHandler() {
304
- if (multi && appliedModifiers.length > 0) {
305
- var selections = multiSelection.map(function (item) {
306
- return appliedModifiers.find(function (mod) {
307
- return mod.id === item;
308
- });
309
- });
310
- onSubmit(selections);
311
- } else if (multi && appliedModifiers.length === 0) {
312
- onSubmit(multiSelection);
313
- } else {
314
- onSubmit(singleSelection);
315
- }
316
- };
317
-
318
- 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));
319
- var commonTearsheetProps = {
320
- className: classNames,
321
- open: open,
322
- title: title,
323
- description: description,
324
- closeIconDescription: 'temp description',
325
- actions: [{
326
- label: onCloseButtonText,
327
- kind: 'secondary',
328
- onClick: onClose
329
- }, {
330
- label: onSubmitButtonText,
331
- kind: 'primary',
332
- onClick: submitHandler,
333
- disabled: multi ? multiSelection.length === 0 : !singleSelection
334
- }],
335
- portalTarget: portalTarget
336
- };
337
- var sidebarProps = {
338
- closeIconDescription: closeIconDescription,
339
- influencerTitle: influencerTitle,
340
- items: flatItems,
341
- metaPanelTitle: metaPanelTitle,
342
- multiSelection: multiSelection,
343
- noSelectionDescription: noSelectionDescription,
344
- noSelectionTitle: noSelectionTitle,
345
- removeIconDescription: removeIconDescription,
346
- setMultiSelection: setMultiSelection,
347
- displayMetalPanel: displayMetalPanel,
348
- setDisplayMetaPanel: setDisplayMetaPanel,
349
- modifiers: items.modifiers,
350
- appliedModifiers: appliedModifiers
351
- };
352
-
353
- var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
354
- if (searchTerm) {
355
- return false;
356
- }
357
-
358
- if (path.length) {
359
- return true;
360
- }
361
-
362
- return false;
363
- };
364
-
365
- var setShowTags = function setShowTags() {
366
- if (searchTerm) {
367
- return true;
368
- }
369
-
370
- if (useNormalizedItems) {
371
- return false;
372
- }
373
-
374
- return true;
375
- };
376
-
377
- var hasResults = itemsToDisplay.length > 0;
378
- var globalFiltersApplied = Object.keys(appliedGlobalFilters).length > 0;
379
- var showBreadsCrumbs = setShowBreadsCrumbs();
380
- var showSort = (searchTerm || globalFiltersApplied) && hasResults;
381
- var showTags = setShowTags(); // main content
382
-
383
- var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
384
- className: "".concat(blockClass, "__header")
385
- }, /*#__PURE__*/_react.default.createElement(_AddSelectFilter.AddSelectFilter, {
386
- inputLabel: globalSearchLabel,
387
- inputPlaceholder: globalSearchPlaceholder,
388
- searchTerm: searchTerm,
389
- handleSearch: handleSearch,
390
- multi: multi,
391
- filterOpts: globalFilterOpts,
392
- handleFilter: handleFilter,
393
- primaryButtonText: globalFiltersPrimaryButtonText,
394
- secondaryButtonText: globalFiltersSecondaryButtonText,
395
- placeholder: globalFiltersPlaceholderText,
396
- iconDescription: globalFiltersIconDescription,
397
- appliedFilters: appliedGlobalFilters,
398
- hasFiltersApplied: globalFiltersApplied,
399
- clearFiltersText: clearFiltersText
400
- }), /*#__PURE__*/_react.default.createElement("div", {
401
- className: "".concat(blockClass, "__sub-header")
402
- }, /*#__PURE__*/_react.default.createElement("div", {
403
- className: "".concat(blockClass, "__tag-container")
404
- }, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
405
- itemsLabel: itemsLabel,
406
- path: path,
407
- setPath: setPath
408
- }) : /*#__PURE__*/_react.default.createElement("p", {
409
- className: "".concat(blockClass, "__tag-container-label")
410
- }, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
411
- type: "gray",
412
- size: "sm"
413
- }, itemsToDisplay.length)), showSort && /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
414
- items: itemsToDisplay,
415
- setSortAttribute: setSortAttribute,
416
- setSortDirection: setSortDirection,
417
- sortAttribute: sortAttribute,
418
- sortDirection: sortDirection,
419
- sortBy: globalSortBy
420
- }))), useNormalizedItems && !searchTerm && !globalFiltersApplied ? /*#__PURE__*/_react.default.createElement("div", {
421
- className: "".concat(blockClass, "__columns")
422
- }, itemsToDisplay.map(function (page, idx) {
423
- var _path;
424
-
425
- return /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
426
- key: idx,
427
- filteredItems: page,
428
- header: idx === 0 ? itemsLabel : (_path = path[idx - 1]) === null || _path === void 0 ? void 0 : _path.title,
429
- columnInputPlaceholder: columnInputPlaceholder
430
- }));
431
- })) : /*#__PURE__*/_react.default.createElement("div", null, hasResults ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
432
- filteredItems: itemsToDisplay,
433
- modifiers: items.modifiers,
434
- appliedModifiers: appliedModifiers,
435
- setAppliedModifiers: setAppliedModifiers
436
- })) : /*#__PURE__*/_react.default.createElement("div", {
437
- className: "".concat(blockClass, "__body")
438
- }, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
439
- subtitle: noResultsDescription,
440
- title: noResultsTitle
441
- }))));
442
-
443
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
444
- ref: ref
445
- }, rest), multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
446
- influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
447
- influencerPosition: "right"
448
- }), body) : /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body));
37
+ var _props$globalFilters;
38
+
39
+ var items = _ref.items,
40
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
+ var useNormalizedItems = !!items.entries.find(function (item) {
42
+ return item.children;
43
+ });
44
+ var normalizedItems = useNormalizedItems ? (0, _addSelectUtils.normalize)(items) : null;
45
+ var globalFilterOpts = props.multi && (_props$globalFilters = props.globalFilters) !== null && _props$globalFilters !== void 0 && _props$globalFilters.length ? (0, _addSelectUtils.getGlobalFilterValues)(props.globalFilters, normalizedItems) : null;
46
+ var defaultModifiers = props.multi && items.modifiers ? items.entries.map(function (item) {
47
+ var modifierAttribute = items.modifiers.id;
48
+ return (0, _defineProperty2.default)({
49
+ id: item.id
50
+ }, modifierAttribute, item[modifierAttribute]);
51
+ }) : null;
52
+ return /*#__PURE__*/_react.default.createElement(_AddSelectBody.AddSelectBody, (0, _extends2.default)({}, props, {
53
+ className: blockClass,
54
+ ref: ref,
55
+ items: items,
56
+ normalizedItems: normalizedItems,
57
+ useNormalizedItems: useNormalizedItems,
58
+ globalFilterOpts: globalFilterOpts,
59
+ defaultModifiers: defaultModifiers
60
+ }));
449
61
  });
450
62
  exports.AddSelect = AddSelect;
451
63
  AddSelect.propTypes = {
452
64
  className: _propTypes.default.string,
453
65
  clearFiltersText: _propTypes.default.string,
454
- closeIconDescription: _propTypes.default.string,
66
+ closeIconDescription: _propTypes.default.string.isRequired,
455
67
  columnInputPlaceholder: _propTypes.default.string,
456
- description: _propTypes.default.string,
68
+ description: _propTypes.default.string.isRequired,
457
69
  globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
458
70
  id: _propTypes.default.string,
459
71
  label: _propTypes.default.string
@@ -491,22 +103,22 @@ AddSelect.propTypes = {
491
103
  subtitle: _propTypes.default.string,
492
104
  title: _propTypes.default.string.isRequired,
493
105
  value: _propTypes.default.string.isRequired
494
- }))
495
- }),
496
- itemsLabel: _propTypes.default.string,
106
+ })).isRequired
107
+ }).isRequired,
108
+ itemsLabel: _propTypes.default.string.isRequired,
497
109
  metaIconDescription: _propTypes.default.string,
498
110
  metaPanelTitle: _propTypes.default.string,
499
- multi: _propTypes.default.bool,
111
+ multi: _propTypes.default.bool.isRequired,
500
112
  navIconDescription: _propTypes.default.string,
501
- noResultsDescription: _propTypes.default.string,
502
- noResultsTitle: _propTypes.default.string,
113
+ noResultsDescription: _propTypes.default.string.isRequired,
114
+ noResultsTitle: _propTypes.default.string.isRequired,
503
115
  noSelectionDescription: _propTypes.default.string,
504
116
  noSelectionTitle: _propTypes.default.string,
505
- onClose: _propTypes.default.func,
506
- onCloseButtonText: _propTypes.default.string,
507
- onSubmit: _propTypes.default.func,
508
- onSubmitButtonText: _propTypes.default.string,
509
- open: _propTypes.default.bool,
117
+ onClose: _propTypes.default.func.isRequired,
118
+ onCloseButtonText: _propTypes.default.string.isRequired,
119
+ onSubmit: _propTypes.default.func.isRequired,
120
+ onSubmitButtonText: _propTypes.default.string.isRequired,
121
+ open: _propTypes.default.bool.isRequired,
510
122
 
511
123
  /**
512
124
  * portal target for the all tags modal
@@ -514,11 +126,23 @@ AddSelect.propTypes = {
514
126
  portalTarget: _propTypes.default.node,
515
127
  removeIconDescription: _propTypes.default.string,
516
128
  searchResultsLabel: _propTypes.default.string,
517
- title: _propTypes.default.string
129
+ title: _propTypes.default.string.isRequired
518
130
  };
519
131
  AddSelect.defaultProps = {
132
+ closeIconDescription: '',
133
+ description: '',
134
+ itemsLabel: '',
520
135
  items: {
521
136
  entries: []
522
- }
137
+ },
138
+ multi: false,
139
+ noResultsDescription: '',
140
+ noResultsTitle: '',
141
+ onClose: function onClose() {},
142
+ onCloseButtonText: '',
143
+ onSubmit: function onSubmit() {},
144
+ onSubmitButtonText: '',
145
+ open: false,
146
+ title: ''
523
147
  };
524
148
  AddSelect.displayName = componentName;