@carbon/ibm-products 1.22.0 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
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;