@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
@@ -13,447 +13,58 @@ 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", "globalFilters"];
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,
37
+ var items = _ref.items,
65
38
  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));
39
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
+ var useNormalizedItems = !!items.entries.find(function (item) {
41
+ return item.children;
42
+ });
43
+ var normalizedItems = useNormalizedItems ? (0, _addSelectUtils.normalize)(items) : null;
44
+ var globalFilterOpts = props.multi && globalFilters !== null && globalFilters !== void 0 && globalFilters.length ? (0, _addSelectUtils.getGlobalFilterValues)(globalFilters, normalizedItems) : null;
45
+ var defaultModifiers = props.multi && items.modifiers ? items.entries.map(function (item) {
46
+ var modifierAttribute = items.modifiers.id;
47
+ return (0, _defineProperty2.default)({
48
+ id: item.id
49
+ }, modifierAttribute, item[modifierAttribute]);
50
+ }) : [];
51
+ return /*#__PURE__*/_react.default.createElement(_AddSelectBody.AddSelectBody, (0, _extends2.default)({}, props, {
52
+ className: blockClass,
53
+ ref: ref,
54
+ items: items,
55
+ normalizedItems: normalizedItems,
56
+ useNormalizedItems: useNormalizedItems,
57
+ globalFilterOpts: globalFilterOpts,
58
+ defaultModifiers: defaultModifiers
59
+ }));
449
60
  });
450
61
  exports.AddSelect = AddSelect;
451
62
  AddSelect.propTypes = {
452
63
  className: _propTypes.default.string,
453
64
  clearFiltersText: _propTypes.default.string,
454
- closeIconDescription: _propTypes.default.string,
65
+ closeIconDescription: _propTypes.default.string.isRequired,
455
66
  columnInputPlaceholder: _propTypes.default.string,
456
- description: _propTypes.default.string,
67
+ description: _propTypes.default.string.isRequired,
457
68
  globalFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
458
69
  id: _propTypes.default.string,
459
70
  label: _propTypes.default.string
@@ -462,7 +73,7 @@ AddSelect.propTypes = {
462
73
  globalFiltersPlaceholderText: _propTypes.default.string,
463
74
  globalFiltersPrimaryButtonText: _propTypes.default.string,
464
75
  globalFiltersSecondaryButtonText: _propTypes.default.string,
465
- globalSearchLabel: _propTypes.default.string,
76
+ globalSearchLabel: _propTypes.default.string.isRequired,
466
77
  globalSearchPlaceholder: _propTypes.default.string,
467
78
  globalSortBy: _propTypes.default.array,
468
79
  influencerTitle: _propTypes.default.string,
@@ -491,34 +102,45 @@ AddSelect.propTypes = {
491
102
  subtitle: _propTypes.default.string,
492
103
  title: _propTypes.default.string.isRequired,
493
104
  value: _propTypes.default.string.isRequired
494
- }))
495
- }),
496
- itemsLabel: _propTypes.default.string,
105
+ })).isRequired
106
+ }).isRequired,
107
+ itemsLabel: _propTypes.default.string.isRequired,
497
108
  metaIconDescription: _propTypes.default.string,
498
109
  metaPanelTitle: _propTypes.default.string,
499
- multi: _propTypes.default.bool,
110
+ multi: _propTypes.default.bool.isRequired,
500
111
  navIconDescription: _propTypes.default.string,
501
- noResultsDescription: _propTypes.default.string,
502
- noResultsTitle: _propTypes.default.string,
112
+ noResultsDescription: _propTypes.default.string.isRequired,
113
+ noResultsTitle: _propTypes.default.string.isRequired,
503
114
  noSelectionDescription: _propTypes.default.string,
504
115
  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,
116
+ onClose: _propTypes.default.func.isRequired,
117
+ onCloseButtonText: _propTypes.default.string.isRequired,
118
+ onSubmit: _propTypes.default.func.isRequired,
119
+ onSubmitButtonText: _propTypes.default.string.isRequired,
120
+ open: _propTypes.default.bool.isRequired,
510
121
 
511
122
  /**
512
123
  * portal target for the all tags modal
513
124
  */
514
125
  portalTarget: _propTypes.default.node,
515
- removeIconDescription: _propTypes.default.string,
516
126
  searchResultsLabel: _propTypes.default.string,
517
- title: _propTypes.default.string
127
+ title: _propTypes.default.string.isRequired
518
128
  };
519
129
  AddSelect.defaultProps = {
130
+ closeIconDescription: '',
131
+ description: '',
132
+ itemsLabel: '',
520
133
  items: {
521
134
  entries: []
522
- }
135
+ },
136
+ multi: false,
137
+ noResultsDescription: '',
138
+ noResultsTitle: '',
139
+ onClose: function onClose() {},
140
+ onCloseButtonText: '',
141
+ onSubmit: function onSubmit() {},
142
+ onSubmitButtonText: '',
143
+ open: false,
144
+ title: ''
523
145
  };
524
146
  AddSelect.displayName = componentName;