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