@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.
- package/css/components/Datagrid/styles/datagrid.css +4 -0
- package/css/components/Datagrid/styles/datagrid.css.map +1 -1
- package/css/components/Datagrid/styles/index.css +15 -0
- package/css/components/Datagrid/styles/index.css.map +1 -1
- package/css/components/Datagrid/styles/useExpandedRow.css +12 -0
- package/css/components/Datagrid/styles/useExpandedRow.css.map +1 -0
- package/css/index-full-carbon.css +46 -143
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +3 -3
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +25 -16
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +2 -2
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +41 -16
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +2 -2
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +44 -139
- package/css/index.css.map +1 -1
- package/css/index.min.css +3 -3
- package/css/index.min.css.map +1 -1
- package/es/components/AddSelect/AddSelect.js +57 -422
- package/es/components/AddSelect/AddSelectBody.js +349 -0
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -31
- package/es/components/AddSelect/AddSelectColumn.js +91 -41
- package/es/components/AddSelect/AddSelectFilter.js +1 -2
- package/es/components/AddSelect/AddSelectList.js +10 -61
- package/es/components/AddSelect/AddSelectMetaPanel.js +1 -1
- package/es/components/AddSelect/AddSelectSidebar.js +20 -13
- package/es/components/AddSelect/AddSelectSort.js +2 -2
- package/es/components/AddSelect/add-select-utils.js +85 -59
- package/es/components/AddSelect/hooks/useParentSelect.js +16 -0
- package/es/components/AddSelect/hooks/usePath.js +66 -0
- package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
- package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
- package/es/components/Datagrid/Datagrid/Datagrid.js +1 -1
- package/es/components/Datagrid/useExpandedRow.js +12 -4
- package/es/components/PageHeader/PageHeaderUtils.js +5 -0
- package/es/components/TagSet/TagSet.js +15 -5
- package/lib/components/AddSelect/AddSelect.js +54 -430
- package/lib/components/AddSelect/AddSelectBody.js +384 -0
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +11 -30
- package/lib/components/AddSelect/AddSelectColumn.js +90 -39
- package/lib/components/AddSelect/AddSelectFilter.js +1 -2
- package/lib/components/AddSelect/AddSelectList.js +11 -60
- package/lib/components/AddSelect/AddSelectMetaPanel.js +1 -1
- package/lib/components/AddSelect/AddSelectSidebar.js +20 -13
- package/lib/components/AddSelect/AddSelectSort.js +2 -2
- package/lib/components/AddSelect/add-select-utils.js +88 -64
- package/lib/components/AddSelect/hooks/useParentSelect.js +27 -0
- package/lib/components/AddSelect/hooks/usePath.js +75 -0
- package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
- package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
- package/lib/components/Datagrid/Datagrid/Datagrid.js +1 -1
- package/lib/components/Datagrid/useExpandedRow.js +20 -4
- package/lib/components/PageHeader/PageHeaderUtils.js +5 -0
- package/lib/components/TagSet/TagSet.js +15 -5
- package/package.json +16 -16
- package/scss/components/Cascade/_cascade.scss +2 -1
- package/scss/components/CreateInfluencer/_create-influencer.scss +0 -2
- package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -1
- package/scss/components/Datagrid/_storybook-styles.scss +4 -0
- package/scss/components/Datagrid/styles/datagrid.scss +4 -0
- package/scss/components/Datagrid/styles/index.scss +1 -0
- package/scss/components/Datagrid/styles/useExpandedRow.scss +13 -0
- package/scss/components/InlineEdit/_inline-edit.scss +2 -1
- package/scss/components/OptionsTile/_options-tile.scss +1 -0
- package/scss/components/PageHeader/_page-header.scss +9 -4
- package/scss/components/SidePanel/_side-panel.scss +1 -2
- package/scss/components/TagSet/_tag-set.scss +4 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.AddSelectBody = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
19
|
+
|
|
20
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
+
|
|
22
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
23
|
+
|
|
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");
|
|
31
|
+
|
|
32
|
+
var _AddSelectSidebar = require("./AddSelectSidebar");
|
|
33
|
+
|
|
34
|
+
var _AddSelectBreadcrumbs = require("./AddSelectBreadcrumbs");
|
|
35
|
+
|
|
36
|
+
var _AddSelectList = require("./AddSelectList");
|
|
37
|
+
|
|
38
|
+
var _AddSelectColumn = require("./AddSelectColumn");
|
|
39
|
+
|
|
40
|
+
var _AddSelectFilter = require("./AddSelectFilter");
|
|
41
|
+
|
|
42
|
+
var _AddSelectSort = require("./AddSelectSort");
|
|
43
|
+
|
|
44
|
+
var _addSelectUtils = require("./add-select-utils");
|
|
45
|
+
|
|
46
|
+
var _useItemSort2 = require("./hooks/useItemSort");
|
|
47
|
+
|
|
48
|
+
var _useParentSelect2 = _interopRequireDefault(require("./hooks/useParentSelect"));
|
|
49
|
+
|
|
50
|
+
var _usePath2 = _interopRequireDefault(require("./hooks/usePath"));
|
|
51
|
+
|
|
52
|
+
var _settings = require("../../settings");
|
|
53
|
+
|
|
54
|
+
var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "globalFilterOpts", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "removeIconDescription", "searchResultsLabel", "title", "useNormalizedItems"];
|
|
55
|
+
|
|
56
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
57
|
+
|
|
58
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
59
|
+
|
|
60
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
|
|
61
|
+
var componentName = 'AddSelectBody';
|
|
62
|
+
|
|
63
|
+
var AddSelectBody = function AddSelectBody(_ref) {
|
|
64
|
+
var _cx, _path$;
|
|
65
|
+
|
|
66
|
+
var className = _ref.className,
|
|
67
|
+
clearFiltersText = _ref.clearFiltersText,
|
|
68
|
+
closeIconDescription = _ref.closeIconDescription,
|
|
69
|
+
columnInputPlaceholder = _ref.columnInputPlaceholder,
|
|
70
|
+
defaultModifiers = _ref.defaultModifiers,
|
|
71
|
+
description = _ref.description,
|
|
72
|
+
globalFilterOpts = _ref.globalFilterOpts,
|
|
73
|
+
globalFiltersIconDescription = _ref.globalFiltersIconDescription,
|
|
74
|
+
globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
|
|
75
|
+
globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
|
|
76
|
+
globalFiltersSecondaryButtonText = _ref.globalFiltersSecondaryButtonText,
|
|
77
|
+
globalSearchLabel = _ref.globalSearchLabel,
|
|
78
|
+
globalSearchPlaceholder = _ref.globalSearchPlaceholder,
|
|
79
|
+
globalSortBy = _ref.globalSortBy,
|
|
80
|
+
influencerTitle = _ref.influencerTitle,
|
|
81
|
+
items = _ref.items,
|
|
82
|
+
itemsLabel = _ref.itemsLabel,
|
|
83
|
+
metaIconDescription = _ref.metaIconDescription,
|
|
84
|
+
metaPanelTitle = _ref.metaPanelTitle,
|
|
85
|
+
multi = _ref.multi,
|
|
86
|
+
navIconDescription = _ref.navIconDescription,
|
|
87
|
+
noResultsDescription = _ref.noResultsDescription,
|
|
88
|
+
noResultsTitle = _ref.noResultsTitle,
|
|
89
|
+
noSelectionDescription = _ref.noSelectionDescription,
|
|
90
|
+
noSelectionTitle = _ref.noSelectionTitle,
|
|
91
|
+
normalizedItems = _ref.normalizedItems,
|
|
92
|
+
onClose = _ref.onClose,
|
|
93
|
+
onCloseButtonText = _ref.onCloseButtonText,
|
|
94
|
+
onSubmit = _ref.onSubmit,
|
|
95
|
+
onSubmitButtonText = _ref.onSubmitButtonText,
|
|
96
|
+
open = _ref.open,
|
|
97
|
+
portalTarget = _ref.portalTarget,
|
|
98
|
+
removeIconDescription = _ref.removeIconDescription,
|
|
99
|
+
searchResultsLabel = _ref.searchResultsLabel,
|
|
100
|
+
title = _ref.title,
|
|
101
|
+
useNormalizedItems = _ref.useNormalizedItems,
|
|
102
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
103
|
+
|
|
104
|
+
// hooks
|
|
105
|
+
var _useState = (0, _react.useState)(''),
|
|
106
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
107
|
+
singleSelection = _useState2[0],
|
|
108
|
+
setSingleSelection = _useState2[1];
|
|
109
|
+
|
|
110
|
+
var _useState3 = (0, _react.useState)([]),
|
|
111
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
112
|
+
multiSelection = _useState4[0],
|
|
113
|
+
setMultiSelection = _useState4[1];
|
|
114
|
+
|
|
115
|
+
var _useState5 = (0, _react.useState)(''),
|
|
116
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
117
|
+
searchTerm = _useState6[0],
|
|
118
|
+
setSearchTerm = _useState6[1];
|
|
119
|
+
|
|
120
|
+
var _useState7 = (0, _react.useState)({}),
|
|
121
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
122
|
+
appliedGlobalFilters = _useState8[0],
|
|
123
|
+
setAppliedGlobalFilters = _useState8[1];
|
|
124
|
+
|
|
125
|
+
var _useState9 = (0, _react.useState)({}),
|
|
126
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
127
|
+
displayMetalPanel = _useState10[0],
|
|
128
|
+
setDisplayMetaPanel = _useState10[1];
|
|
129
|
+
|
|
130
|
+
var _useState11 = (0, _react.useState)(defaultModifiers),
|
|
131
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
132
|
+
appliedModifiers = _useState12[0],
|
|
133
|
+
setAppliedModifiers = _useState12[1];
|
|
134
|
+
|
|
135
|
+
var _useItemSort = (0, _useItemSort2.useItemSort)(),
|
|
136
|
+
sortDirection = _useItemSort.sortDirection,
|
|
137
|
+
setSortDirection = _useItemSort.setSortDirection,
|
|
138
|
+
sortAttribute = _useItemSort.sortAttribute,
|
|
139
|
+
setSortAttribute = _useItemSort.setSortAttribute;
|
|
140
|
+
|
|
141
|
+
var _useParentSelect = (0, _useParentSelect2.default)(),
|
|
142
|
+
parentSelected = _useParentSelect.parentSelected,
|
|
143
|
+
setParentSelected = _useParentSelect.setParentSelected;
|
|
144
|
+
|
|
145
|
+
var _usePath = (0, _usePath2.default)(itemsLabel),
|
|
146
|
+
path = _usePath.path,
|
|
147
|
+
setPath = _usePath.setPath,
|
|
148
|
+
pathOnclick = _usePath.pathOnclick;
|
|
149
|
+
|
|
150
|
+
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));
|
|
151
|
+
var globalFilterKeys = Object.keys(appliedGlobalFilters);
|
|
152
|
+
var globalFiltersApplied = globalFilterKeys.length > 0; // handlers
|
|
153
|
+
|
|
154
|
+
var handleSearch = function handleSearch(term) {
|
|
155
|
+
setSearchTerm(term);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
var handleFilter = function handleFilter(filters) {
|
|
159
|
+
setAppliedGlobalFilters(filters);
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var submitHandler = function submitHandler() {
|
|
163
|
+
if (multi && appliedModifiers.length > 0) {
|
|
164
|
+
var selections = multiSelection.map(function (item) {
|
|
165
|
+
return appliedModifiers.find(function (mod) {
|
|
166
|
+
return mod.id === item;
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
onSubmit(selections);
|
|
170
|
+
} else if (multi && appliedModifiers.length === 0) {
|
|
171
|
+
onSubmit(multiSelection);
|
|
172
|
+
} else {
|
|
173
|
+
onSubmit(singleSelection);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
|
|
178
|
+
if (searchTerm || globalFiltersApplied || !path || path.length === 0) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return true;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
var setShowTags = function setShowTags() {
|
|
186
|
+
if (searchTerm) {
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (useNormalizedItems) {
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return true;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var parentSelectionHandler = function parentSelectionHandler(id, title, parentId) {
|
|
198
|
+
setParentSelected(id);
|
|
199
|
+
setPath(id, title, parentId);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
var sortFn = (0, _addSelectUtils.sortItems)(sortAttribute, sortDirection);
|
|
203
|
+
var itemsToDisplay = (0, _addSelectUtils.getFilteredItems)(useNormalizedItems, normalizedItems, searchTerm, globalFiltersApplied, globalFilterKeys, appliedGlobalFilters, sortFn, multi, items, path);
|
|
204
|
+
var hasResults = itemsToDisplay.length > 0;
|
|
205
|
+
var showBreadsCrumbs = setShowBreadsCrumbs();
|
|
206
|
+
var showSort = (searchTerm || globalFiltersApplied) && hasResults;
|
|
207
|
+
var showTags = setShowTags();
|
|
208
|
+
var commonListProps = {
|
|
209
|
+
metaIconDescription: metaIconDescription,
|
|
210
|
+
multi: multi,
|
|
211
|
+
multiSelection: multiSelection,
|
|
212
|
+
navIconDescription: navIconDescription,
|
|
213
|
+
path: path,
|
|
214
|
+
setMultiSelection: setMultiSelection,
|
|
215
|
+
setPath: setPath,
|
|
216
|
+
setSingleSelection: setSingleSelection,
|
|
217
|
+
singleSelection: singleSelection,
|
|
218
|
+
setDisplayMetaPanel: setDisplayMetaPanel,
|
|
219
|
+
parentId: path[0].id
|
|
220
|
+
};
|
|
221
|
+
var commonTearsheetProps = {
|
|
222
|
+
className: classNames,
|
|
223
|
+
open: open,
|
|
224
|
+
title: title,
|
|
225
|
+
description: description,
|
|
226
|
+
closeIconDescription: 'temp description',
|
|
227
|
+
actions: [{
|
|
228
|
+
label: onCloseButtonText,
|
|
229
|
+
kind: 'secondary',
|
|
230
|
+
onClick: onClose
|
|
231
|
+
}, {
|
|
232
|
+
label: onSubmitButtonText,
|
|
233
|
+
kind: 'primary',
|
|
234
|
+
onClick: submitHandler,
|
|
235
|
+
disabled: multi ? multiSelection.length === 0 : !singleSelection
|
|
236
|
+
}],
|
|
237
|
+
portalTarget: portalTarget
|
|
238
|
+
};
|
|
239
|
+
var sidebarProps = {
|
|
240
|
+
closeIconDescription: closeIconDescription,
|
|
241
|
+
influencerTitle: influencerTitle,
|
|
242
|
+
items: useNormalizedItems ? normalizedItems : items.entries,
|
|
243
|
+
metaPanelTitle: metaPanelTitle,
|
|
244
|
+
multiSelection: multiSelection,
|
|
245
|
+
noSelectionDescription: noSelectionDescription,
|
|
246
|
+
noSelectionTitle: noSelectionTitle,
|
|
247
|
+
removeIconDescription: removeIconDescription,
|
|
248
|
+
setMultiSelection: setMultiSelection,
|
|
249
|
+
displayMetalPanel: displayMetalPanel,
|
|
250
|
+
setDisplayMetaPanel: setDisplayMetaPanel,
|
|
251
|
+
modifiers: items.modifiers,
|
|
252
|
+
appliedModifiers: appliedModifiers
|
|
253
|
+
};
|
|
254
|
+
var displayColumnView = multi && useNormalizedItems && !searchTerm && !globalFiltersApplied; // main content
|
|
255
|
+
|
|
256
|
+
var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
257
|
+
className: "".concat(blockClass, "__header")
|
|
258
|
+
}, /*#__PURE__*/_react.default.createElement(_AddSelectFilter.AddSelectFilter, {
|
|
259
|
+
inputLabel: globalSearchLabel,
|
|
260
|
+
inputPlaceholder: globalSearchPlaceholder,
|
|
261
|
+
searchTerm: searchTerm,
|
|
262
|
+
handleSearch: handleSearch,
|
|
263
|
+
multi: multi,
|
|
264
|
+
filterOpts: globalFilterOpts,
|
|
265
|
+
handleFilter: handleFilter,
|
|
266
|
+
primaryButtonText: globalFiltersPrimaryButtonText,
|
|
267
|
+
secondaryButtonText: globalFiltersSecondaryButtonText,
|
|
268
|
+
placeholder: globalFiltersPlaceholderText,
|
|
269
|
+
iconDescription: globalFiltersIconDescription,
|
|
270
|
+
appliedFilters: appliedGlobalFilters,
|
|
271
|
+
hasFiltersApplied: globalFiltersApplied,
|
|
272
|
+
clearFiltersText: clearFiltersText
|
|
273
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
274
|
+
className: "".concat(blockClass, "__sub-header")
|
|
275
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
276
|
+
className: "".concat(blockClass, "__tag-container")
|
|
277
|
+
}, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
|
|
278
|
+
path: path,
|
|
279
|
+
onClick: pathOnclick
|
|
280
|
+
}) : /*#__PURE__*/_react.default.createElement("p", {
|
|
281
|
+
className: "".concat(blockClass, "__tag-container-label")
|
|
282
|
+
}, searchTerm ? searchResultsLabel : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
|
283
|
+
type: "gray",
|
|
284
|
+
size: "sm"
|
|
285
|
+
}, itemsToDisplay.length)), showSort && /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
|
|
286
|
+
items: itemsToDisplay,
|
|
287
|
+
setSortAttribute: setSortAttribute,
|
|
288
|
+
setSortDirection: setSortDirection,
|
|
289
|
+
sortAttribute: sortAttribute,
|
|
290
|
+
sortDirection: sortDirection,
|
|
291
|
+
sortBy: globalSortBy
|
|
292
|
+
}))), displayColumnView ? /*#__PURE__*/_react.default.createElement("div", {
|
|
293
|
+
className: "".concat(blockClass, "__columns")
|
|
294
|
+
}, /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
|
|
295
|
+
items: itemsToDisplay,
|
|
296
|
+
columnInputPlaceholder: columnInputPlaceholder,
|
|
297
|
+
header: (_path$ = path[0]) === null || _path$ === void 0 ? void 0 : _path$.title
|
|
298
|
+
}))) : /*#__PURE__*/_react.default.createElement("div", null, hasResults ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
|
|
299
|
+
filteredItems: itemsToDisplay,
|
|
300
|
+
modifiers: items.modifiers,
|
|
301
|
+
appliedModifiers: appliedModifiers,
|
|
302
|
+
setAppliedModifiers: setAppliedModifiers,
|
|
303
|
+
setParentSelected: parentSelectionHandler,
|
|
304
|
+
parentSelected: parentSelected,
|
|
305
|
+
parentId: parentSelected || path[0].id
|
|
306
|
+
})) : /*#__PURE__*/_react.default.createElement("div", {
|
|
307
|
+
className: "".concat(blockClass, "__body")
|
|
308
|
+
}, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
|
|
309
|
+
subtitle: noResultsDescription,
|
|
310
|
+
title: noResultsTitle
|
|
311
|
+
}))));
|
|
312
|
+
|
|
313
|
+
return /*#__PURE__*/_react.default.createElement("div", rest, multi ? /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
|
|
314
|
+
influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
|
|
315
|
+
influencerPosition: "right"
|
|
316
|
+
}), body) : /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body));
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
exports.AddSelectBody = AddSelectBody;
|
|
320
|
+
AddSelectBody.propTypes = {
|
|
321
|
+
className: _propTypes.default.string,
|
|
322
|
+
clearFiltersText: _propTypes.default.string,
|
|
323
|
+
closeIconDescription: _propTypes.default.string,
|
|
324
|
+
columnInputPlaceholder: _propTypes.default.string,
|
|
325
|
+
defaultModifiers: _propTypes.default.array,
|
|
326
|
+
description: _propTypes.default.string,
|
|
327
|
+
globalFilterOpts: _propTypes.default.array,
|
|
328
|
+
globalFiltersIconDescription: _propTypes.default.string,
|
|
329
|
+
globalFiltersPlaceholderText: _propTypes.default.string,
|
|
330
|
+
globalFiltersPrimaryButtonText: _propTypes.default.string,
|
|
331
|
+
globalFiltersSecondaryButtonText: _propTypes.default.string,
|
|
332
|
+
globalSearchLabel: _propTypes.default.string,
|
|
333
|
+
globalSearchPlaceholder: _propTypes.default.string,
|
|
334
|
+
globalSortBy: _propTypes.default.array,
|
|
335
|
+
influencerTitle: _propTypes.default.string,
|
|
336
|
+
items: _propTypes.default.shape({
|
|
337
|
+
modifiers: _propTypes.default.shape({
|
|
338
|
+
id: _propTypes.default.string,
|
|
339
|
+
label: _propTypes.default.string,
|
|
340
|
+
options: _propTypes.default.array
|
|
341
|
+
}),
|
|
342
|
+
sortBy: _propTypes.default.array,
|
|
343
|
+
filterBy: _propTypes.default.array,
|
|
344
|
+
entries: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
345
|
+
avatar: _propTypes.default.shape({
|
|
346
|
+
alt: _propTypes.default.string,
|
|
347
|
+
icon: _propTypes.default.object,
|
|
348
|
+
src: _propTypes.default.string
|
|
349
|
+
}),
|
|
350
|
+
children: _propTypes.default.object,
|
|
351
|
+
icon: _propTypes.default.object,
|
|
352
|
+
id: _propTypes.default.string.isRequired,
|
|
353
|
+
meta: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
|
|
354
|
+
id: _propTypes.default.string,
|
|
355
|
+
title: _propTypes.default.string,
|
|
356
|
+
value: _propTypes.default.string
|
|
357
|
+
})), _propTypes.default.node]),
|
|
358
|
+
subtitle: _propTypes.default.string,
|
|
359
|
+
title: _propTypes.default.string.isRequired,
|
|
360
|
+
value: _propTypes.default.string.isRequired
|
|
361
|
+
}))
|
|
362
|
+
}),
|
|
363
|
+
itemsLabel: _propTypes.default.string,
|
|
364
|
+
metaIconDescription: _propTypes.default.string,
|
|
365
|
+
metaPanelTitle: _propTypes.default.string,
|
|
366
|
+
multi: _propTypes.default.bool,
|
|
367
|
+
navIconDescription: _propTypes.default.string,
|
|
368
|
+
noResultsDescription: _propTypes.default.string,
|
|
369
|
+
noResultsTitle: _propTypes.default.string,
|
|
370
|
+
noSelectionDescription: _propTypes.default.string,
|
|
371
|
+
noSelectionTitle: _propTypes.default.string,
|
|
372
|
+
normalizedItems: _propTypes.default.object,
|
|
373
|
+
onClose: _propTypes.default.func,
|
|
374
|
+
onCloseButtonText: _propTypes.default.string,
|
|
375
|
+
onSubmit: _propTypes.default.func,
|
|
376
|
+
onSubmitButtonText: _propTypes.default.string,
|
|
377
|
+
open: _propTypes.default.bool,
|
|
378
|
+
portalTarget: _propTypes.default.node,
|
|
379
|
+
removeIconDescription: _propTypes.default.string,
|
|
380
|
+
searchResultsLabel: _propTypes.default.string,
|
|
381
|
+
title: _propTypes.default.string,
|
|
382
|
+
useNormalizedItems: _propTypes.default.bool
|
|
383
|
+
};
|
|
384
|
+
_AddSelectBreadcrumbs.AddSelectBreadcrumbs.displayName = componentName;
|
|
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.AddSelectBreadcrumbs = void 0;
|
|
9
9
|
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
|
|
12
10
|
var _react = _interopRequireDefault(require("react"));
|
|
13
11
|
|
|
14
12
|
var _carbonComponentsReact = require("carbon-components-react");
|
|
@@ -24,47 +22,30 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
24
22
|
var componentName = 'AddSelectBreadcrumbs';
|
|
25
23
|
|
|
26
24
|
var AddSelectBreadcrumbs = function AddSelectBreadcrumbs(_ref) {
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
setPath = _ref.setPath;
|
|
30
|
-
|
|
31
|
-
var clickHandler = function clickHandler(id) {
|
|
32
|
-
var pathIdx = path.findIndex(function (entry) {
|
|
33
|
-
return entry.id === id;
|
|
34
|
-
});
|
|
35
|
-
var finalPath = (0, _toConsumableArray2.default)(path).splice(0, pathIdx + 1);
|
|
36
|
-
setPath(finalPath);
|
|
37
|
-
};
|
|
25
|
+
var path = _ref.path,
|
|
26
|
+
onClick = _ref.onClick;
|
|
38
27
|
|
|
39
|
-
var
|
|
40
|
-
|
|
28
|
+
var clickHandler = function clickHandler(idx) {
|
|
29
|
+
onClick(idx);
|
|
41
30
|
};
|
|
42
31
|
|
|
43
32
|
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Breadcrumb, {
|
|
44
33
|
noTrailingSlash: true
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
}, itemsLabel), path.map(function (entry, idx, arr) {
|
|
48
|
-
var isCurrentPage = idx === arr.length - 1;
|
|
49
|
-
|
|
50
|
-
var crumbHandler = function crumbHandler() {
|
|
51
|
-
if (!isCurrentPage) {
|
|
52
|
-
clickHandler(entry.id);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
34
|
+
}, path.map(function (entry, idx) {
|
|
35
|
+
var isCurrentPage = idx === path.length - 1;
|
|
56
36
|
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.BreadcrumbItem, {
|
|
57
37
|
key: entry.id,
|
|
58
38
|
isCurrentPage: isCurrentPage,
|
|
59
|
-
onClick:
|
|
39
|
+
onClick: function onClick() {
|
|
40
|
+
return clickHandler(idx);
|
|
41
|
+
}
|
|
60
42
|
}, entry.title);
|
|
61
43
|
}));
|
|
62
44
|
};
|
|
63
45
|
|
|
64
46
|
exports.AddSelectBreadcrumbs = AddSelectBreadcrumbs;
|
|
65
47
|
AddSelectBreadcrumbs.propTypes = {
|
|
66
|
-
|
|
67
|
-
path: _propTypes.default.array
|
|
68
|
-
setPath: _propTypes.default.func
|
|
48
|
+
onClick: _propTypes.default.func,
|
|
49
|
+
path: _propTypes.default.array
|
|
69
50
|
};
|
|
70
51
|
AddSelectBreadcrumbs.displayName = componentName;
|
|
@@ -37,33 +37,37 @@ var _useItemSort2 = require("./hooks/useItemSort");
|
|
|
37
37
|
|
|
38
38
|
var _uuidv = _interopRequireDefault(require("../../global/js/utils/uuidv4"));
|
|
39
39
|
|
|
40
|
-
var
|
|
40
|
+
var _useParentSelect2 = _interopRequireDefault(require("./hooks/useParentSelect"));
|
|
41
|
+
|
|
42
|
+
var _excluded = ["columnInputPlaceholder", "header", "items", "multiSelection", "parentId", "path", "setMultiSelection", "setPath"];
|
|
41
43
|
|
|
42
44
|
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); }
|
|
43
45
|
|
|
44
46
|
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; }
|
|
45
47
|
|
|
46
|
-
var
|
|
48
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
|
|
49
|
+
var colClass = "".concat(blockClass, "__column");
|
|
50
|
+
var componentName = 'AddSelectColumn';
|
|
47
51
|
|
|
48
52
|
var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
49
|
-
var _filteredItems$find;
|
|
50
|
-
|
|
51
53
|
var columnInputPlaceholder = _ref.columnInputPlaceholder,
|
|
52
|
-
filteredItems = _ref.filteredItems,
|
|
53
54
|
header = _ref.header,
|
|
55
|
+
items = _ref.items,
|
|
54
56
|
multiSelection = _ref.multiSelection,
|
|
57
|
+
parentId = _ref.parentId,
|
|
58
|
+
path = _ref.path,
|
|
55
59
|
setMultiSelection = _ref.setMultiSelection,
|
|
60
|
+
setPath = _ref.setPath,
|
|
56
61
|
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
57
62
|
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
setAllSelected = _useState2[1];
|
|
63
|
+
var _useParentSelect = (0, _useParentSelect2.default)(),
|
|
64
|
+
parentSelected = _useParentSelect.parentSelected,
|
|
65
|
+
setParentSelected = _useParentSelect.setParentSelected;
|
|
62
66
|
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
searchTerm =
|
|
66
|
-
setSearchTerm =
|
|
67
|
+
var _useState = (0, _react.useState)(''),
|
|
68
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
69
|
+
searchTerm = _useState2[0],
|
|
70
|
+
setSearchTerm = _useState2[1];
|
|
67
71
|
|
|
68
72
|
var _useItemSort = (0, _useItemSort2.useItemSort)(),
|
|
69
73
|
sortDirection = _useItemSort.sortDirection,
|
|
@@ -71,29 +75,59 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
|
71
75
|
sortAttribute = _useItemSort.sortAttribute,
|
|
72
76
|
setSortAttribute = _useItemSort.setSortAttribute;
|
|
73
77
|
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
filters =
|
|
77
|
-
setFilters =
|
|
78
|
+
var _useState3 = (0, _react.useState)([]),
|
|
79
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
80
|
+
filters = _useState4[0],
|
|
81
|
+
setFilters = _useState4[1];
|
|
82
|
+
|
|
83
|
+
var entries = items.entries,
|
|
84
|
+
filterBy = items.filterBy,
|
|
85
|
+
sortBy = items.sortBy;
|
|
86
|
+
|
|
87
|
+
var getSelectedItem = function getSelectedItem() {
|
|
88
|
+
var _entries$find;
|
|
78
89
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
(0, _react.useEffect)(function () {
|
|
82
|
-
var isAllSelected = filteredItems.every(function (item) {
|
|
83
|
-
return multiSelection.includes(item.id);
|
|
90
|
+
var parentInPath = path.find(function (entry) {
|
|
91
|
+
return entry.parentId === parentId;
|
|
84
92
|
});
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
/**
|
|
94
|
+
* this check helps ensure that when the state of the open columns is cleared by global search
|
|
95
|
+
* that the columns are rebuilt from the data in the path array
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
if (parentInPath && !parentSelected) {
|
|
99
|
+
return entries.find(function (item) {
|
|
100
|
+
return item.id === parentInPath.id;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return (_entries$find = entries.find(function (item) {
|
|
105
|
+
return item.id === parentSelected;
|
|
106
|
+
})) !== null && _entries$find !== void 0 ? _entries$find : null;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var selectedItem = getSelectedItem();
|
|
110
|
+
/**
|
|
111
|
+
* this check helps prevent children from already being open when you switch from parents
|
|
112
|
+
* on the same level. for example- using the storybook example, if you click on folder 1,
|
|
113
|
+
* file 1, folder 2, and then folder 1 again file 1 children shouldn't be expanded. this
|
|
114
|
+
* check ensures that when a user navigates to parents on the same level that the open state
|
|
115
|
+
* of their children is cleared by referencing the path array.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
var itemInPath = selectedItem && path.find(function (entry) {
|
|
119
|
+
return entry.id === selectedItem.id;
|
|
120
|
+
});
|
|
121
|
+
var allSelected = entries.every(function (item) {
|
|
122
|
+
return multiSelection.includes(item.id);
|
|
123
|
+
}); // filtering
|
|
124
|
+
|
|
125
|
+
var filterByOpts = filterBy ? entries.map(function (item) {
|
|
126
|
+
return item[filterBy];
|
|
93
127
|
}) : [];
|
|
94
128
|
|
|
95
129
|
var selectAllHandler = function selectAllHandler(checked) {
|
|
96
|
-
var itemIds =
|
|
130
|
+
var itemIds = entries.map(function (item) {
|
|
97
131
|
return item.id;
|
|
98
132
|
});
|
|
99
133
|
|
|
@@ -138,12 +172,16 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
|
138
172
|
};
|
|
139
173
|
|
|
140
174
|
var sortFn = (0, _addSelectUtils.sortItems)(sortAttribute, sortDirection);
|
|
141
|
-
var
|
|
142
|
-
var colItems = filteredItems.filter(filterBySearch) // first check if the item meets the search
|
|
175
|
+
var colItems = entries.filter(filterBySearch) // first check if the item meets the search
|
|
143
176
|
.filter(filterByAttribute) // then check if the item is included in the filter
|
|
144
177
|
.sort(sortFn); // then sort the items by whatever criteria
|
|
145
178
|
|
|
146
|
-
|
|
179
|
+
var parentSelectionHandler = function parentSelectionHandler(id, title) {
|
|
180
|
+
setParentSelected(id);
|
|
181
|
+
setPath(id, title, parentId);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
147
185
|
className: colClass
|
|
148
186
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
149
187
|
className: "".concat(colClass, "-search-bar")
|
|
@@ -160,7 +198,7 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
|
160
198
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
161
199
|
className: "".concat(colClass, "-sort-filter")
|
|
162
200
|
}, /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
|
|
163
|
-
items:
|
|
201
|
+
items: entries,
|
|
164
202
|
setSortAttribute: setSortAttribute,
|
|
165
203
|
setSortDirection: setSortDirection,
|
|
166
204
|
sortAttribute: sortAttribute,
|
|
@@ -201,16 +239,29 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
|
201
239
|
})), /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
|
|
202
240
|
filteredItems: colItems,
|
|
203
241
|
setMultiSelection: setMultiSelection,
|
|
204
|
-
multiSelection: multiSelection
|
|
205
|
-
|
|
242
|
+
multiSelection: multiSelection,
|
|
243
|
+
setParentSelected: parentSelectionHandler
|
|
244
|
+
}))), selectedItem && itemInPath && /*#__PURE__*/_react.default.createElement(AddSelectColumn, (0, _extends2.default)({
|
|
245
|
+
columnInputPlaceholder: columnInputPlaceholder,
|
|
246
|
+
header: selectedItem.title,
|
|
247
|
+
items: selectedItem.children,
|
|
248
|
+
multiSelection: multiSelection,
|
|
249
|
+
setMultiSelection: setMultiSelection,
|
|
250
|
+
parentId: selectedItem.id,
|
|
251
|
+
setPath: setPath,
|
|
252
|
+
path: path
|
|
253
|
+
}, props)));
|
|
206
254
|
};
|
|
207
255
|
|
|
208
256
|
exports.AddSelectColumn = AddSelectColumn;
|
|
209
257
|
AddSelectColumn.propTypes = {
|
|
210
258
|
columnInputPlaceholder: _propTypes.default.string,
|
|
211
|
-
filteredItems: _propTypes.default.array,
|
|
212
259
|
header: _propTypes.default.string,
|
|
260
|
+
items: _propTypes.default.object,
|
|
213
261
|
multiSelection: _propTypes.default.array,
|
|
214
|
-
|
|
262
|
+
parentId: _propTypes.default.string,
|
|
263
|
+
path: _propTypes.default.array,
|
|
264
|
+
setMultiSelection: _propTypes.default.func,
|
|
265
|
+
setPath: _propTypes.default.func
|
|
215
266
|
};
|
|
216
267
|
AddSelectColumn.displayName = componentName;
|
|
@@ -33,6 +33,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
33
33
|
|
|
34
34
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
35
|
|
|
36
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__global-filter");
|
|
36
37
|
var componentName = 'AddSelectFilter';
|
|
37
38
|
|
|
38
39
|
var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
@@ -61,8 +62,6 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
|
61
62
|
open = _useState4[0],
|
|
62
63
|
setOpen = _useState4[1];
|
|
63
64
|
|
|
64
|
-
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__global-filter");
|
|
65
|
-
|
|
66
65
|
var searchHandler = function searchHandler(e) {
|
|
67
66
|
handleSearch(e.target.value);
|
|
68
67
|
};
|