@carbon/ibm-products 1.8.0 → 1.9.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/index-full-carbon.css +82 -9
- 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 +1 -2
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +82 -9
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +3 -3
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +82 -9
- 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 +104 -16
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +4 -4
- package/es/components/AddSelect/AddSelectColumn.js +21 -0
- package/es/components/AddSelect/AddSelectList.js +67 -8
- package/es/components/AddSelect/AddSelectSidebar.js +7 -1
- package/es/components/DataSpreadsheet/DataSpreadsheet.js +42 -2
- package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +194 -10
- package/es/components/DataSpreadsheet/createActiveCellFn.js +1 -1
- package/es/components/DataSpreadsheet/createCellSelectionArea.js +45 -0
- package/es/components/InlineEdit/InlineEdit.js +23 -13
- package/es/global/js/utils/DisplayBox.js +31 -0
- package/es/global/js/utils/deepCloneObject.js +26 -0
- package/lib/components/AddSelect/AddSelect.js +102 -15
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +2 -3
- package/lib/components/AddSelect/AddSelectColumn.js +37 -0
- package/lib/components/AddSelect/AddSelectList.js +65 -8
- package/lib/components/AddSelect/AddSelectSidebar.js +7 -1
- package/lib/components/DataSpreadsheet/DataSpreadsheet.js +42 -2
- package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +198 -10
- package/lib/components/DataSpreadsheet/createActiveCellFn.js +1 -1
- package/lib/components/DataSpreadsheet/createCellSelectionArea.js +56 -0
- package/lib/components/InlineEdit/InlineEdit.js +23 -13
- package/lib/global/js/utils/DisplayBox.js +46 -0
- package/lib/global/js/utils/deepCloneObject.js +37 -0
- package/package.json +8 -8
- package/scss/components/ActionBar/_storybook-styles.scss +8 -0
- package/scss/components/ActionSet/_storybook-styles.scss +1 -3
- package/scss/components/AddSelect/_add-select.scss +58 -2
- package/scss/components/BreadcrumbWithOverflow/_storybook-styles.scss +8 -0
- package/scss/components/ButtonSetWithOverflow/_storybook-styles.scss +8 -0
- package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +18 -0
- package/scss/components/InlineEdit/_inline-edit.scss +11 -4
- package/scss/components/InlineEdit/_storybook-styles.scss +1 -0
- package/scss/components/TagSet/_storybook-styles.scss +8 -0
- package/scss/components/Tearsheet/_tearsheet.scss +1 -2
- package/scss/global/styles/_display-box.scss +62 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2022, 2022
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
import PropTypes from 'prop-types';
|
8
|
+
import React from 'react';
|
9
|
+
import cx from 'classnames';
|
10
|
+
var blockClass = 'ccs-sb--display-box';
|
11
|
+
export var DisplayBox = function DisplayBox(_ref) {
|
12
|
+
var children = _ref.children,
|
13
|
+
className = _ref.className,
|
14
|
+
msg = _ref.msg;
|
15
|
+
return /*#__PURE__*/React.createElement("div", {
|
16
|
+
className: cx(blockClass, className)
|
17
|
+
}, /*#__PURE__*/React.createElement("div", {
|
18
|
+
className: "".concat(blockClass, "__indicator")
|
19
|
+
}, /*#__PURE__*/React.createElement("div", {
|
20
|
+
className: "".concat(blockClass, "__message")
|
21
|
+
}, msg || /*#__PURE__*/React.createElement(React.Fragment, null, "width available to component", /*#__PURE__*/React.createElement("br", null), "(use containerWidth control to adjust)")), /*#__PURE__*/React.createElement("div", {
|
22
|
+
className: "".concat(blockClass, "__indicator--left")
|
23
|
+
}), /*#__PURE__*/React.createElement("div", {
|
24
|
+
className: "".concat(blockClass, "__indicator--right")
|
25
|
+
})), children);
|
26
|
+
};
|
27
|
+
DisplayBox.propTypes = {
|
28
|
+
children: PropTypes.node,
|
29
|
+
className: PropTypes.string,
|
30
|
+
msg: PropTypes.node
|
31
|
+
};
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Copyright IBM Corp. 2022, 2022
|
5
|
+
*
|
6
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
8
|
+
*/
|
9
|
+
// Utility to return a deep clone of a nested object or array.
|
10
|
+
export var deepCloneObject = function deepCloneObject(objectToClone) {
|
11
|
+
// Return the value if objectToClone is not an object
|
12
|
+
if (_typeof(objectToClone) !== 'object' || objectToClone === null) {
|
13
|
+
return objectToClone;
|
14
|
+
} // Create a new array/object to hold the values
|
15
|
+
|
16
|
+
|
17
|
+
var clonedObject = Array.isArray(objectToClone) ? [] : {};
|
18
|
+
|
19
|
+
for (var key in objectToClone) {
|
20
|
+
var value = objectToClone[key]; // Recursively check for nested objects/arrays
|
21
|
+
|
22
|
+
clonedObject[key] = deepCloneObject(value);
|
23
|
+
}
|
24
|
+
|
25
|
+
return clonedObject;
|
26
|
+
};
|
@@ -37,12 +37,19 @@ var _AddSelectBreadcrumbs = require("./AddSelectBreadcrumbs");
|
|
37
37
|
|
38
38
|
var _AddSelectList = require("./AddSelectList");
|
39
39
|
|
40
|
-
var
|
40
|
+
var _AddSelectColumn = require("./AddSelectColumn");
|
41
|
+
|
42
|
+
var _excluded = ["className", "description", "influencerTitle", "inputPlaceholder", "items", "itemsLabel", "multi", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "onClose", "onCloseButtonText", "onSearchFilter", "onSubmit", "onSubmitButtonText", "open", "removeIconDescription", "textInputLabel", "title"],
|
43
|
+
_excluded2 = ["children"];
|
41
44
|
|
42
45
|
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
46
|
|
44
47
|
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
48
|
|
49
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
50
|
+
|
51
|
+
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; }
|
52
|
+
|
46
53
|
var componentName = 'AddSelect'; // Default values for props
|
47
54
|
|
48
55
|
var defaults = {
|
@@ -93,7 +100,78 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
93
100
|
var _useState7 = (0, _react.useState)(''),
|
94
101
|
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
95
102
|
searchTerm = _useState8[0],
|
96
|
-
setSearchTerm = _useState8[1];
|
103
|
+
setSearchTerm = _useState8[1];
|
104
|
+
|
105
|
+
var _useState9 = (0, _react.useState)({}),
|
106
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
107
|
+
normalizedItems = _useState10[0],
|
108
|
+
setNormalizedItems = _useState10[1];
|
109
|
+
|
110
|
+
var _useState11 = (0, _react.useState)(false),
|
111
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
112
|
+
useNormalizedItems = _useState12[0],
|
113
|
+
setUsedNormalizedItems = _useState12[1];
|
114
|
+
|
115
|
+
(0, _react.useEffect)(function () {
|
116
|
+
var normalize = function normalize(arr, parentId) {
|
117
|
+
return arr.reduce(function (acc, cur) {
|
118
|
+
var children = cur.children,
|
119
|
+
item = (0, _objectWithoutProperties2.default)(cur, _excluded2);
|
120
|
+
acc[cur.id] = _objectSpread({}, item);
|
121
|
+
|
122
|
+
if (parentId) {
|
123
|
+
acc[cur.id].parent = parentId;
|
124
|
+
}
|
125
|
+
|
126
|
+
if (children) {
|
127
|
+
acc[cur.id].children = children.map(function (child) {
|
128
|
+
return child.id;
|
129
|
+
});
|
130
|
+
var child = normalize(children, cur.id);
|
131
|
+
return _objectSpread(_objectSpread({}, acc), child);
|
132
|
+
}
|
133
|
+
|
134
|
+
return acc;
|
135
|
+
}, {});
|
136
|
+
};
|
137
|
+
|
138
|
+
if (multi && items.find(function (item) {
|
139
|
+
return item.children;
|
140
|
+
})) {
|
141
|
+
var newItems = normalize(items);
|
142
|
+
setNormalizedItems(newItems);
|
143
|
+
setUsedNormalizedItems(true);
|
144
|
+
}
|
145
|
+
}, [items, multi]);
|
146
|
+
|
147
|
+
var getPages = function getPages() {
|
148
|
+
var results = [];
|
149
|
+
var itemIds = Object.keys(normalizedItems);
|
150
|
+
var topLevelItems = [];
|
151
|
+
itemIds.forEach(function (itemId) {
|
152
|
+
if (!normalizedItems[itemId].parent) {
|
153
|
+
topLevelItems.push(normalizedItems[itemId]);
|
154
|
+
}
|
155
|
+
});
|
156
|
+
results.push(topLevelItems);
|
157
|
+
|
158
|
+
if (path.length) {
|
159
|
+
var pathIds = path.map(function (p) {
|
160
|
+
return p.id;
|
161
|
+
});
|
162
|
+
pathIds.forEach(function (pathId) {
|
163
|
+
var childItems = [];
|
164
|
+
itemIds.forEach(function (itemId) {
|
165
|
+
if (normalizedItems[itemId].parent === pathId) {
|
166
|
+
childItems.push(normalizedItems[itemId]);
|
167
|
+
}
|
168
|
+
});
|
169
|
+
results.push(childItems);
|
170
|
+
});
|
171
|
+
}
|
172
|
+
|
173
|
+
return results;
|
174
|
+
}; // handlers
|
97
175
|
|
98
176
|
|
99
177
|
var handleSearch = function handleSearch(e) {
|
@@ -130,7 +208,16 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
130
208
|
return results;
|
131
209
|
};
|
132
210
|
|
133
|
-
var
|
211
|
+
var itemsToDisplay = useNormalizedItems ? getPages() : getFilteredItems();
|
212
|
+
var commonListProps = {
|
213
|
+
multi: multi,
|
214
|
+
multiSelection: multiSelection,
|
215
|
+
path: path,
|
216
|
+
setMultiSelection: setMultiSelection,
|
217
|
+
setPath: setPath,
|
218
|
+
setSingleSelection: setSingleSelection,
|
219
|
+
singleSelection: singleSelection
|
220
|
+
}; // main content
|
134
221
|
|
135
222
|
var body = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
136
223
|
className: "".concat(blockClass, "__header")
|
@@ -148,25 +235,25 @@ var AddSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
148
235
|
setPath: setPath
|
149
236
|
}) : /*#__PURE__*/_react.default.createElement("p", {
|
150
237
|
className: "".concat(blockClass, "__items-label")
|
151
|
-
}, itemsLabel), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
238
|
+
}, itemsLabel), !useNormalizedItems && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Tag, {
|
152
239
|
type: "gray",
|
153
240
|
size: "sm",
|
154
241
|
className: "".concat(blockClass, "__items-label-tag")
|
155
|
-
},
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
}) : /*#__PURE__*/_react.default.createElement("div", {
|
242
|
+
}, itemsToDisplay.length))), useNormalizedItems ? /*#__PURE__*/_react.default.createElement("div", {
|
243
|
+
className: "".concat(blockClass, "__columns")
|
244
|
+
}, itemsToDisplay.map(function (page, idx) {
|
245
|
+
return /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
|
246
|
+
key: idx,
|
247
|
+
filteredItems: page
|
248
|
+
}));
|
249
|
+
})) : /*#__PURE__*/_react.default.createElement("div", null, itemsToDisplay.length > 0 ? /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, commonListProps, {
|
250
|
+
filteredItems: itemsToDisplay
|
251
|
+
})) : /*#__PURE__*/_react.default.createElement("div", {
|
165
252
|
className: "".concat(blockClass, "__body")
|
166
253
|
}, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
|
167
254
|
subtitle: noResultsDescription,
|
168
255
|
title: noResultsTitle
|
169
|
-
})));
|
256
|
+
}))));
|
170
257
|
|
171
258
|
var commonTearsheetProps = {
|
172
259
|
open: open,
|
@@ -29,11 +29,10 @@ var AddSelectBreadcrumbs = function AddSelectBreadcrumbs(_ref) {
|
|
29
29
|
setPath = _ref.setPath;
|
30
30
|
|
31
31
|
var clickHandler = function clickHandler(id) {
|
32
|
-
var
|
33
|
-
var pathIdx = newPath.findIndex(function (entry) {
|
32
|
+
var pathIdx = path.findIndex(function (entry) {
|
34
33
|
return entry.id === id;
|
35
34
|
});
|
36
|
-
var finalPath =
|
35
|
+
var finalPath = (0, _toConsumableArray2.default)(path).splice(0, pathIdx + 1);
|
37
36
|
setPath(finalPath);
|
38
37
|
};
|
39
38
|
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.AddSelectColumn = void 0;
|
9
|
+
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
11
|
+
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
13
|
+
|
14
|
+
var _settings = require("../../settings");
|
15
|
+
|
16
|
+
var _AddSelectList = require("./AddSelectList");
|
17
|
+
|
18
|
+
//
|
19
|
+
// Copyright IBM Corp. 2022
|
20
|
+
//
|
21
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
22
|
+
// LICENSE file in the root directory of this source tree.
|
23
|
+
//
|
24
|
+
// import PropTypes from 'prop-types';
|
25
|
+
var componentName = 'AddSelect';
|
26
|
+
|
27
|
+
var AddSelectColumn = function AddSelectColumn(props) {
|
28
|
+
var blockClass = "".concat(_settings.pkg.prefix, "--add-select__col");
|
29
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
30
|
+
className: blockClass
|
31
|
+
}, /*#__PURE__*/_react.default.createElement(_AddSelectList.AddSelectList, (0, _extends2.default)({}, props, {
|
32
|
+
inColumn: true
|
33
|
+
})));
|
34
|
+
};
|
35
|
+
|
36
|
+
exports.AddSelectColumn = AddSelectColumn;
|
37
|
+
AddSelectColumn.displayName = componentName;
|
@@ -29,6 +29,7 @@ var componentName = 'AddSelectList';
|
|
29
29
|
|
30
30
|
var AddSelectList = function AddSelectList(_ref) {
|
31
31
|
var filteredItems = _ref.filteredItems,
|
32
|
+
inColumn = _ref.inColumn,
|
32
33
|
multi = _ref.multi,
|
33
34
|
multiSelection = _ref.multiSelection,
|
34
35
|
path = _ref.path,
|
@@ -57,11 +58,59 @@ var AddSelectList = function AddSelectList(_ref) {
|
|
57
58
|
|
58
59
|
var onNavigateItem = function onNavigateItem(_ref2) {
|
59
60
|
var id = _ref2.id,
|
60
|
-
title = _ref2.title
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
61
|
+
title = _ref2.title,
|
62
|
+
parent = _ref2.parent;
|
63
|
+
|
64
|
+
// if multi select
|
65
|
+
if (multi) {
|
66
|
+
// if top level reset the path
|
67
|
+
if (!parent) {
|
68
|
+
setPath([{
|
69
|
+
id: id,
|
70
|
+
title: title
|
71
|
+
}]);
|
72
|
+
} else {
|
73
|
+
var pathIds = path.map(function (p) {
|
74
|
+
return p.id;
|
75
|
+
}); // if item is already selected somewhere go back to that item
|
76
|
+
|
77
|
+
if (pathIds.includes(id)) {
|
78
|
+
var pathIdx = pathIds.findIndex(function (pathId) {
|
79
|
+
return pathId === id;
|
80
|
+
});
|
81
|
+
var newPath = (0, _toConsumableArray2.default)(path).splice(0, pathIdx + 1);
|
82
|
+
setPath((0, _toConsumableArray2.default)(newPath));
|
83
|
+
} else {
|
84
|
+
// if the item is on the same level as another selected item start from the parent level
|
85
|
+
if (path.find(function (p) {
|
86
|
+
return p.parent === parent;
|
87
|
+
})) {
|
88
|
+
var parentIdx = path.findIndex(function (p) {
|
89
|
+
return p.id === parent;
|
90
|
+
});
|
91
|
+
|
92
|
+
var _newPath = (0, _toConsumableArray2.default)(path).splice(0, parentIdx + 1);
|
93
|
+
|
94
|
+
setPath([].concat((0, _toConsumableArray2.default)(_newPath), [{
|
95
|
+
id: id,
|
96
|
+
title: title,
|
97
|
+
parent: parent
|
98
|
+
}]));
|
99
|
+
} else {
|
100
|
+
setPath([].concat((0, _toConsumableArray2.default)(path), [{
|
101
|
+
id: id,
|
102
|
+
title: title,
|
103
|
+
parent: parent
|
104
|
+
}]));
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
} else {
|
109
|
+
setPath([].concat((0, _toConsumableArray2.default)(path), [{
|
110
|
+
id: id,
|
111
|
+
title: title
|
112
|
+
}]));
|
113
|
+
}
|
65
114
|
};
|
66
115
|
|
67
116
|
return /*#__PURE__*/_react.default.createElement("div", {
|
@@ -71,15 +120,22 @@ var AddSelectList = function AddSelectList(_ref) {
|
|
71
120
|
className: "".concat(blockClass)
|
72
121
|
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListBody, null, filteredItems.map(function (item) {
|
73
122
|
return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListRow, {
|
74
|
-
key: item.id
|
75
|
-
|
123
|
+
key: item.id,
|
124
|
+
className: "".concat(blockClass, "-row")
|
125
|
+
}, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.StructuredListCell, {
|
126
|
+
className: "".concat(blockClass, "-cell")
|
127
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
76
128
|
className: "".concat(blockClass, "-cell-wrapper")
|
77
129
|
}, multi ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Checkbox, {
|
78
130
|
className: "".concat(blockClass, "-checkbox"),
|
79
131
|
onChange: function onChange(value) {
|
80
132
|
return handleMultiSelection(item.id, value);
|
81
133
|
},
|
82
|
-
labelText:
|
134
|
+
labelText: !inColumn ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
135
|
+
className: "".concat(blockClass, "-cell-title")
|
136
|
+
}, item.title), /*#__PURE__*/_react.default.createElement("span", {
|
137
|
+
className: "".concat(blockClass, "-cell-subtitle")
|
138
|
+
}, item.subtitle)) : item.title,
|
83
139
|
id: item.id,
|
84
140
|
checked: multiSelection.includes(item.id)
|
85
141
|
}) : /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
|
@@ -101,6 +157,7 @@ var AddSelectList = function AddSelectList(_ref) {
|
|
101
157
|
exports.AddSelectList = AddSelectList;
|
102
158
|
AddSelectList.propTypes = {
|
103
159
|
filteredItems: _propTypes.default.array,
|
160
|
+
inColumn: _propTypes.default.bool,
|
104
161
|
multi: _propTypes.default.bool,
|
105
162
|
multiSelection: _propTypes.default.array,
|
106
163
|
path: _propTypes.default.array,
|
@@ -63,7 +63,13 @@ var AddSelectSidebar = function AddSelectSidebar(_ref) {
|
|
63
63
|
id = _ref2.id;
|
64
64
|
return /*#__PURE__*/_react.default.createElement("div", {
|
65
65
|
className: "".concat(blockClass, "-accordion-title")
|
66
|
-
}, /*#__PURE__*/_react.default.createElement("div",
|
66
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
67
|
+
className: "".concat(blockClass, "-selected-item")
|
68
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
69
|
+
className: "".concat(blockClass, "-selected-item-title")
|
70
|
+
}, title), /*#__PURE__*/_react.default.createElement("p", {
|
71
|
+
className: "".concat(blockClass, "-selected-item-subtitle")
|
72
|
+
}, subtitle)), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
|
67
73
|
renderIcon: _iconsReact.SubtractAlt32,
|
68
74
|
iconDescription: removeIconDescription,
|
69
75
|
hasIconOnly: true,
|
@@ -88,6 +88,21 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
88
88
|
activeCellCoordinates = _useState4[0],
|
89
89
|
setActiveCellCoordinates = _useState4[1];
|
90
90
|
|
91
|
+
var _useState5 = (0, _react.useState)([]),
|
92
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
93
|
+
selectionAreas = _useState6[0],
|
94
|
+
setSelectionAreas = _useState6[1];
|
95
|
+
|
96
|
+
var _useState7 = (0, _react.useState)(false),
|
97
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
98
|
+
clickAndHoldActive = _useState8[0],
|
99
|
+
setClickAndHoldActive = _useState8[1];
|
100
|
+
|
101
|
+
var _useState9 = (0, _react.useState)(null),
|
102
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
103
|
+
currentMatcher = _useState10[0],
|
104
|
+
setCurrentMatcher = _useState10[1];
|
105
|
+
|
91
106
|
var cellSizeValue = (0, _getCellSize.getCellSize)(cellSize);
|
92
107
|
var defaultColumn = (0, _react.useMemo)(function () {
|
93
108
|
return {
|
@@ -130,6 +145,13 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
130
145
|
if (activeCellHighlight) {
|
131
146
|
activeCellHighlight.remove();
|
132
147
|
}
|
148
|
+
}, [spreadsheetRef]); // Removes the cell selection elements
|
149
|
+
|
150
|
+
var removeCellSelections = (0, _react.useCallback)(function () {
|
151
|
+
var cellSelections = spreadsheetRef.current.querySelectorAll(".".concat(blockClass, "__selection-area--element"));
|
152
|
+
Array.from(cellSelections).forEach(function (element) {
|
153
|
+
return element.remove();
|
154
|
+
});
|
133
155
|
}, [spreadsheetRef]); // Click outside useEffect
|
134
156
|
|
135
157
|
(0, _react.useEffect)(function () {
|
@@ -138,7 +160,9 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
138
160
|
return;
|
139
161
|
}
|
140
162
|
|
163
|
+
setSelectionAreas([]);
|
141
164
|
removeActiveCell();
|
165
|
+
removeCellSelections();
|
142
166
|
setContainerHasFocus(false);
|
143
167
|
setActiveCellCoordinates(null);
|
144
168
|
};
|
@@ -147,7 +171,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
147
171
|
return function () {
|
148
172
|
document.removeEventListener('click', handleOutsideClick);
|
149
173
|
};
|
150
|
-
}, [spreadsheetRef, removeActiveCell]);
|
174
|
+
}, [spreadsheetRef, removeActiveCell, removeCellSelections]);
|
151
175
|
var createActiveCell = (0, _react.useCallback)(function (_ref2) {
|
152
176
|
var placementElement = _ref2.placementElement,
|
153
177
|
coords = _ref2.coords,
|
@@ -194,12 +218,21 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
194
218
|
|
195
219
|
if ([35, 36, 37, 38, 39, 40].indexOf(keyCode) > -1) {
|
196
220
|
event.preventDefault();
|
221
|
+
} // Clear out all cell selection areas if user uses any arrow key
|
222
|
+
|
223
|
+
|
224
|
+
if ([37, 38, 39, 40].indexOf(keyCode) > -1) {
|
225
|
+
if (selectionAreas !== null && selectionAreas !== void 0 && selectionAreas.length) {
|
226
|
+
setSelectionAreas([]);
|
227
|
+
removeCellSelections();
|
228
|
+
}
|
197
229
|
}
|
198
230
|
|
199
231
|
switch (keyCode) {
|
200
232
|
// Tab
|
201
233
|
case 9:
|
202
234
|
{
|
235
|
+
setSelectionAreas([]);
|
203
236
|
removeActiveCell();
|
204
237
|
setContainerHasFocus(false);
|
205
238
|
setActiveCellCoordinates(null);
|
@@ -343,7 +376,7 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
343
376
|
break;
|
344
377
|
}
|
345
378
|
}
|
346
|
-
}, [handleInitialArrowPress, activeCellCoordinates, removeActiveCell, columns.length, rows.length]); // Adds active cell highlight to correct cell onKeyDown
|
379
|
+
}, [handleInitialArrowPress, activeCellCoordinates, selectionAreas === null || selectionAreas === void 0 ? void 0 : selectionAreas.length, removeCellSelections, removeActiveCell, columns.length, rows.length]); // Adds active cell highlight to correct cell onKeyDown
|
347
380
|
|
348
381
|
(0, _react.useEffect)(function () {
|
349
382
|
var activeCellPlacementElement = spreadsheetRef === null || spreadsheetRef === void 0 ? void 0 : spreadsheetRef.current.querySelector("[data-row-index=\"".concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.row, "\"][data-column-index=\"").concat(activeCellCoordinates === null || activeCellCoordinates === void 0 ? void 0 : activeCellCoordinates.column, "\"]"));
|
@@ -376,6 +409,13 @@ var DataSpreadsheet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
376
409
|
defaultColumn: defaultColumn,
|
377
410
|
headerGroups: headerGroups
|
378
411
|
}), /*#__PURE__*/_react.default.createElement(_DataSpreadsheetBody.DataSpreadsheetBody, {
|
412
|
+
clickAndHoldActive: clickAndHoldActive,
|
413
|
+
setClickAndHoldActive: setClickAndHoldActive,
|
414
|
+
currentMatcher: currentMatcher,
|
415
|
+
setCurrentMatcher: setCurrentMatcher,
|
416
|
+
setContainerHasFocus: setContainerHasFocus,
|
417
|
+
selectionAreas: selectionAreas,
|
418
|
+
setSelectionAreas: setSelectionAreas,
|
379
419
|
cellSize: cellSize,
|
380
420
|
defaultColumn: defaultColumn,
|
381
421
|
getTableBodyProps: getTableBodyProps,
|