@carbon/ibm-products 2.0.0-rc.8 → 2.0.0-rc.9
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 +67 -21
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +4 -2
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon.css +67 -21
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +4 -2
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +67 -21
- package/css/index.css.map +1 -1
- package/css/index.min.css +4 -2
- package/css/index.min.css.map +1 -1
- package/es/components/ActionBar/ActionBarOverflowItems.js +1 -0
- package/es/components/AddSelect/AddSelect.js +6 -3
- package/es/components/AddSelect/AddSelectBody.js +50 -26
- package/es/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
- package/es/components/AddSelect/AddSelectColumn.js +3 -3
- package/es/components/AddSelect/AddSelectFilter.js +5 -3
- package/es/components/AddSelect/AddSelectList.js +6 -5
- package/es/components/AddSelect/AddSelectMetaPanel.js +6 -0
- package/es/components/AddSelect/AddSelectSidebar.js +5 -2
- package/es/components/AddSelect/AddSelectSort.js +1 -1
- package/es/components/AddSelect/add-select-utils.js +7 -0
- package/es/components/AddSelect/hooks/useItemSort.js +6 -0
- package/es/components/AddSelect/hooks/useParentSelect.js +6 -0
- package/es/components/AddSelect/hooks/usePath.js +15 -1
- package/es/components/AddSelect/index.js +1 -1
- package/es/components/CreateFullPage/CreateFullPage.js +4 -1
- package/es/components/Datagrid/Datagrid/DatagridRow.js +41 -2
- package/es/components/Datagrid/useNestedRows.js +14 -2
- package/es/components/Datagrid/utils/DatagridActions.js +130 -46
- package/es/components/MultiAddSelect/MultiAddSelect.js +14 -7
- package/es/components/MultiAddSelect/index.js +6 -0
- package/es/components/SingleAddSelect/SingleAddSelect.js +6 -0
- package/es/components/SingleAddSelect/index.js +6 -0
- package/lib/components/ActionBar/ActionBarOverflowItems.js +1 -0
- package/lib/components/AddSelect/AddSelect.js +5 -2
- package/lib/components/AddSelect/AddSelectBody.js +45 -25
- package/lib/components/AddSelect/AddSelectBreadcrumbs.js +1 -1
- package/lib/components/AddSelect/AddSelectColumn.js +2 -2
- package/lib/components/AddSelect/AddSelectFilter.js +4 -2
- package/lib/components/AddSelect/AddSelectList.js +5 -4
- package/lib/components/AddSelect/AddSelectMetaPanel.js +6 -0
- package/lib/components/AddSelect/AddSelectSidebar.js +4 -1
- package/lib/components/AddSelect/AddSelectSort.js +1 -1
- package/lib/components/AddSelect/add-select-utils.js +7 -0
- package/lib/components/AddSelect/hooks/useItemSort.js +6 -0
- package/lib/components/AddSelect/hooks/useParentSelect.js +6 -0
- package/lib/components/AddSelect/hooks/usePath.js +9 -1
- package/lib/components/CreateFullPage/CreateFullPage.js +4 -1
- package/lib/components/Datagrid/Datagrid/DatagridRow.js +42 -2
- package/lib/components/Datagrid/useNestedRows.js +15 -2
- package/lib/components/Datagrid/utils/DatagridActions.js +134 -44
- package/lib/components/MultiAddSelect/MultiAddSelect.js +14 -7
- package/lib/components/SingleAddSelect/SingleAddSelect.js +6 -0
- package/package.json +2 -2
- package/scss/components/AddSelect/_add-select.scss +24 -25
- package/scss/components/AddSelect/_index.scss +1 -1
- package/scss/components/AddSelect/_storybook-styles.scss +1 -1
- package/scss/components/Datagrid/_storybook-styles.scss +5 -0
- package/scss/components/Datagrid/styles/_datagrid.scss +49 -4
- package/scss/components/MultiAddSelect/_multi-add-select.scss +7 -0
- package/scss/components/MultiAddSelect/_storybook-styles.scss +1 -1
- package/scss/components/SingleAddSelect/_carbon-imports.scss +1 -1
- package/scss/components/SingleAddSelect/_index-with-carbon.scss +1 -1
- package/scss/components/SingleAddSelect/_index.scss +7 -0
- package/scss/components/SingleAddSelect/_single-add-select.scss +7 -0
- package/scss/components/SingleAddSelect/_storybook-styles.scss +1 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
2
|
|
3
3
|
/**
|
4
4
|
* Copyright IBM Corp. 2020, 2022
|
@@ -6,9 +6,9 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
6
6
|
* This source code is licensed under the Apache-2.0 license found in the
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
8
8
|
*/
|
9
|
-
import React from 'react';
|
10
|
-
import { DataTable, Button } from '@carbon/react';
|
11
|
-
import { Download, Filter, Add, Restart } from '@carbon/react/icons';
|
9
|
+
import React, { useLayoutEffect, useState } from 'react';
|
10
|
+
import { DataTable, Button, OverflowMenu, OverflowMenuItem, ComposedModal, ModalBody, ModalHeader, ModalFooter, Dropdown } from '@carbon/react';
|
11
|
+
import { Download, Filter, Add, Restart, ChevronDown } from '@carbon/react/icons';
|
12
12
|
import { action } from '@storybook/addon-actions';
|
13
13
|
import { pkg } from '../../../settings';
|
14
14
|
import { ButtonMenu, ButtonMenuItem } from '../../ButtonMenu';
|
@@ -39,23 +39,42 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
39
39
|
var searchForAColumn = 'Search';
|
40
40
|
var isNothingSelected = selectedFlatRows.length === 0;
|
41
41
|
var style = {
|
42
|
-
'button:
|
42
|
+
'button:nthChild(1) > span:nthChild(1)': {
|
43
43
|
bottom: '-37px'
|
44
44
|
}
|
45
45
|
};
|
46
|
+
|
47
|
+
var _useState = useState(false),
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
49
|
+
modalOpen = _useState2[0],
|
50
|
+
setModalOpen = _useState2[1];
|
51
|
+
|
52
|
+
var _useState3 = useState(window.innerWidth),
|
53
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
54
|
+
size = _useState4[0],
|
55
|
+
setSize = _useState4[1];
|
56
|
+
|
57
|
+
useLayoutEffect(function () {
|
58
|
+
function updateSize() {
|
59
|
+
setSize(window.innerWidth);
|
60
|
+
}
|
61
|
+
|
62
|
+
window.addEventListener('resize', updateSize);
|
63
|
+
return function () {
|
64
|
+
return window.removeEventListener('resize', updateSize);
|
65
|
+
};
|
66
|
+
}, []);
|
67
|
+
var mobileToolbar = size < 672 ? true : false;
|
68
|
+
var items = ['Option 1', 'Option 2', 'Option 3'];
|
46
69
|
return isNothingSelected && (useDenseHeader && useDenseHeader ? /*#__PURE__*/React.createElement(TableToolbarContent, {
|
47
70
|
size: "sm"
|
48
|
-
}, /*#__PURE__*/React.createElement("div", {
|
71
|
+
}, !mobileToolbar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
49
72
|
style: style
|
50
73
|
}, /*#__PURE__*/React.createElement(Button, {
|
51
74
|
kind: "ghost",
|
52
75
|
hasIconOnly: true,
|
53
76
|
tooltipPosition: "bottom",
|
54
|
-
renderIcon:
|
55
|
-
return /*#__PURE__*/React.createElement(Download, _extends({
|
56
|
-
size: 16
|
57
|
-
}, props));
|
58
|
-
},
|
77
|
+
renderIcon: Download,
|
59
78
|
iconDescription: 'Download CSV',
|
60
79
|
onClick: downloadCsv
|
61
80
|
})), /*#__PURE__*/React.createElement("div", {
|
@@ -64,11 +83,7 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
64
83
|
kind: "ghost",
|
65
84
|
hasIconOnly: true,
|
66
85
|
tooltipPosition: "bottom",
|
67
|
-
renderIcon:
|
68
|
-
return /*#__PURE__*/React.createElement(Filter, _extends({
|
69
|
-
size: 16
|
70
|
-
}, props));
|
71
|
-
},
|
86
|
+
renderIcon: Filter,
|
72
87
|
iconDescription: 'Left panel',
|
73
88
|
onClick: leftPanelClick
|
74
89
|
})), /*#__PURE__*/React.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/React.createElement("div", {
|
@@ -76,30 +91,49 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
76
91
|
className: "".concat(blockClass, "__toolbar-divider")
|
77
92
|
}, /*#__PURE__*/React.createElement(Button, {
|
78
93
|
kind: "ghost",
|
79
|
-
renderIcon:
|
80
|
-
return /*#__PURE__*/React.createElement(Add, _extends({
|
81
|
-
size: 16
|
82
|
-
}, props));
|
83
|
-
},
|
94
|
+
renderIcon: Add,
|
84
95
|
iconDescription: 'Action'
|
85
96
|
}, "Ghost button")), CustomizeColumnsButton && /*#__PURE__*/React.createElement("div", {
|
86
97
|
style: style
|
87
|
-
}, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/React.createElement(
|
98
|
+
}, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/React.createElement(OverflowMenu, {
|
99
|
+
ariaLabel: "Tools",
|
100
|
+
size: "md",
|
101
|
+
flipped: true
|
102
|
+
}, /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
103
|
+
itemText: "Filter",
|
104
|
+
hasDivider: true,
|
105
|
+
requireTitle: true,
|
106
|
+
onClick: function onClick() {
|
107
|
+
return setModalOpen(true);
|
108
|
+
}
|
109
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
110
|
+
itemText: "Export",
|
111
|
+
hasDivider: true,
|
112
|
+
requireTitle: true
|
113
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
114
|
+
itemText: "Settings",
|
115
|
+
hasDivider: true,
|
116
|
+
requireTitle: true
|
117
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
118
|
+
itemText: "Import items",
|
119
|
+
hasDivider: true,
|
120
|
+
requireTitle: true
|
121
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
122
|
+
itemText: "Create",
|
123
|
+
hasDivider: true,
|
124
|
+
requireTitle: true
|
125
|
+
}))) : !mobileToolbar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
88
126
|
kind: "ghost",
|
89
127
|
hasIconOnly: true,
|
90
128
|
tooltipPosition: "bottom",
|
91
|
-
renderIcon:
|
92
|
-
return /*#__PURE__*/React.createElement(Filter, _extends({
|
93
|
-
size: 16
|
94
|
-
}, props));
|
95
|
-
},
|
129
|
+
renderIcon: Filter,
|
96
130
|
iconDescription: 'Left panel',
|
97
131
|
onClick: leftPanelClick
|
98
132
|
}), /*#__PURE__*/React.createElement(TableToolbarContent, null, /*#__PURE__*/React.createElement(TableToolbarSearch, {
|
99
|
-
size: "
|
133
|
+
size: "xl",
|
100
134
|
id: "columnSearch",
|
101
135
|
persistent: true,
|
102
|
-
|
136
|
+
placeHolderText: searchForAColumn,
|
103
137
|
onChange: function onChange(e) {
|
104
138
|
return setGlobalFilter(e.target.value);
|
105
139
|
}
|
@@ -109,11 +143,7 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
109
143
|
kind: "ghost",
|
110
144
|
hasIconOnly: true,
|
111
145
|
tooltipPosition: "bottom",
|
112
|
-
renderIcon:
|
113
|
-
return /*#__PURE__*/React.createElement(Restart, _extends({
|
114
|
-
size: 16
|
115
|
-
}, props));
|
116
|
-
},
|
146
|
+
renderIcon: Restart,
|
117
147
|
iconDescription: 'Refresh',
|
118
148
|
onClick: refreshColumns
|
119
149
|
})), /*#__PURE__*/React.createElement("div", {
|
@@ -122,23 +152,14 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
122
152
|
kind: "ghost",
|
123
153
|
hasIconOnly: true,
|
124
154
|
tooltipPosition: "bottom",
|
125
|
-
renderIcon:
|
126
|
-
return /*#__PURE__*/React.createElement(Download, _extends({
|
127
|
-
size: 16
|
128
|
-
}, props));
|
129
|
-
},
|
155
|
+
renderIcon: Download,
|
130
156
|
iconDescription: 'Download CSV',
|
131
157
|
onClick: downloadCsv
|
132
158
|
})), CustomizeColumnsButton && /*#__PURE__*/React.createElement("div", {
|
133
159
|
style: style
|
134
160
|
}, /*#__PURE__*/React.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/React.createElement(ButtonMenu, {
|
135
|
-
menuAriaLabel: "Primary action button menu",
|
136
161
|
label: "Primary button",
|
137
|
-
renderIcon:
|
138
|
-
return /*#__PURE__*/React.createElement(Add, _extends({
|
139
|
-
size: 16
|
140
|
-
}, props));
|
141
|
-
}
|
162
|
+
renderIcon: Add
|
142
163
|
}, /*#__PURE__*/React.createElement(ButtonMenuItem, {
|
143
164
|
itemText: "Option 1",
|
144
165
|
onClick: action("Click on ButtonMenu Option 1")
|
@@ -148,5 +169,68 @@ export var DatagridActions = function DatagridActions(datagridState) {
|
|
148
169
|
}), /*#__PURE__*/React.createElement(ButtonMenuItem, {
|
149
170
|
itemText: "Option 3",
|
150
171
|
onClick: action("Click on ButtonMenu Option 3")
|
151
|
-
}))))
|
172
|
+
})))) : /*#__PURE__*/React.createElement(TableToolbarContent, null, /*#__PURE__*/React.createElement(TableToolbarSearch, {
|
173
|
+
size: "xl",
|
174
|
+
id: "columnSearch",
|
175
|
+
persistent: true,
|
176
|
+
placeHolderText: searchForAColumn,
|
177
|
+
onChange: function onChange(e) {
|
178
|
+
return setGlobalFilter(e.target.value);
|
179
|
+
}
|
180
|
+
}), /*#__PURE__*/React.createElement(OverflowMenu, {
|
181
|
+
ariaLabel: "Tools",
|
182
|
+
size: "lg",
|
183
|
+
flipped: true,
|
184
|
+
renderIcon: ChevronDown,
|
185
|
+
className: "".concat(blockClass, "__toolbar-menu__trigger"),
|
186
|
+
menuOptionsClass: "".concat(blockClass, "__toolbar-options")
|
187
|
+
}, /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
188
|
+
itemText: "Filter",
|
189
|
+
hasDivider: true,
|
190
|
+
requireTitle: true,
|
191
|
+
onClick: function onClick() {
|
192
|
+
return setModalOpen(true);
|
193
|
+
}
|
194
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
195
|
+
itemText: "Export",
|
196
|
+
hasDivider: true,
|
197
|
+
requireTitle: true
|
198
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
199
|
+
itemText: "Settings",
|
200
|
+
hasDivider: true,
|
201
|
+
requireTitle: true
|
202
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
203
|
+
itemText: "Import items",
|
204
|
+
hasDivider: true,
|
205
|
+
requireTitle: true
|
206
|
+
}), /*#__PURE__*/React.createElement(OverflowMenuItem, {
|
207
|
+
itemText: "Create",
|
208
|
+
hasDivider: true,
|
209
|
+
requireTitle: true
|
210
|
+
})), modalOpen && /*#__PURE__*/React.createElement(ComposedModal, {
|
211
|
+
size: "lg",
|
212
|
+
open: modalOpen && modalOpen,
|
213
|
+
onClose: function onClose() {
|
214
|
+
return setModalOpen(false);
|
215
|
+
},
|
216
|
+
className: "".concat(blockClass, "__mobile-toolbar-modal")
|
217
|
+
}, /*#__PURE__*/React.createElement(ModalHeader, null, /*#__PURE__*/React.createElement("h4", null, "Filters")), /*#__PURE__*/React.createElement(ModalBody, null, /*#__PURE__*/React.createElement(Dropdown, {
|
218
|
+
initialSelectedItem: items[2],
|
219
|
+
items: items,
|
220
|
+
titleText: "Label",
|
221
|
+
id: "filter1"
|
222
|
+
}), /*#__PURE__*/React.createElement(Dropdown, {
|
223
|
+
initialSelectedItem: items[2],
|
224
|
+
items: items,
|
225
|
+
titleText: "Label",
|
226
|
+
id: "filter2"
|
227
|
+
}), /*#__PURE__*/React.createElement(Dropdown, {
|
228
|
+
initialSelectedItem: items[2],
|
229
|
+
items: items,
|
230
|
+
titleText: "Label",
|
231
|
+
id: "filter3"
|
232
|
+
})), /*#__PURE__*/React.createElement(ModalFooter, {
|
233
|
+
primaryButtonText: "Apply",
|
234
|
+
secondaryButtonText: "Cancel"
|
235
|
+
}))));
|
152
236
|
};
|
@@ -1,4 +1,10 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
|
+
//
|
3
|
+
// Copyright IBM Corp. 2022, 2022
|
4
|
+
//
|
5
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
7
|
+
//
|
2
8
|
import React, { forwardRef } from 'react';
|
3
9
|
import PropTypes from 'prop-types';
|
4
10
|
import { AddSelect } from '../AddSelect';
|
@@ -64,6 +70,11 @@ MultiAddSelect.propTypes = {
|
|
64
70
|
*/
|
65
71
|
globalSearchPlaceholder: PropTypes.string,
|
66
72
|
|
73
|
+
/**
|
74
|
+
* the theme for the empty state illustration
|
75
|
+
*/
|
76
|
+
illustrationTheme: PropTypes.oneOf(['light', 'dark']),
|
77
|
+
|
67
78
|
/**
|
68
79
|
* title that displays in the sidebar / influencer
|
69
80
|
*/
|
@@ -84,7 +95,8 @@ MultiAddSelect.propTypes = {
|
|
84
95
|
avatar: PropTypes.shape({
|
85
96
|
alt: PropTypes.string,
|
86
97
|
icon: PropTypes.func,
|
87
|
-
src: PropTypes.string
|
98
|
+
src: PropTypes.string,
|
99
|
+
theme: PropTypes.oneOf(['light', 'dark'])
|
88
100
|
}),
|
89
101
|
children: PropTypes.object,
|
90
102
|
icon: PropTypes.func,
|
@@ -145,15 +157,10 @@ MultiAddSelect.propTypes = {
|
|
145
157
|
*/
|
146
158
|
open: PropTypes.bool,
|
147
159
|
|
148
|
-
/**
|
149
|
-
* description for the remove item icon
|
150
|
-
*/
|
151
|
-
removeIconDescription: PropTypes.string,
|
152
|
-
|
153
160
|
/**
|
154
161
|
* text that displays when displaying filtered items
|
155
162
|
*/
|
156
|
-
|
163
|
+
searchResultsTitle: PropTypes.string,
|
157
164
|
|
158
165
|
/**
|
159
166
|
* header text
|
@@ -1,4 +1,10 @@
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
2
|
+
//
|
3
|
+
// Copyright IBM Corp. 2022
|
4
|
+
//
|
5
|
+
// This source code is licensed under the Apache-2.0 license found in the
|
6
|
+
// LICENSE file in the root directory of this source tree.
|
7
|
+
//
|
2
8
|
import React, { forwardRef } from 'react';
|
3
9
|
import PropTypes from 'prop-types';
|
4
10
|
import { AddSelect } from '../AddSelect';
|
@@ -59,6 +59,7 @@ var ActionBarOverflowItems = function ActionBarOverflowItems(_ref) {
|
|
59
59
|
var ItemIcon = item.props.renderIcon;
|
60
60
|
return /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, {
|
61
61
|
className: "".concat(blockClass, "__item"),
|
62
|
+
onClick: item.props.onClick,
|
62
63
|
itemText: /*#__PURE__*/_react.default.createElement("div", {
|
63
64
|
className: "".concat(blockClass, "__item-content"),
|
64
65
|
"aria-describedby": "".concat(internalId.current, "-").concat(index, "--item-label")
|
@@ -67,12 +67,14 @@ AddSelect.propTypes = {
|
|
67
67
|
label: _propTypes.default.string
|
68
68
|
})),
|
69
69
|
globalFiltersIconDescription: _propTypes.default.string,
|
70
|
+
globalFiltersLabel: _propTypes.default.string,
|
70
71
|
globalFiltersPlaceholderText: _propTypes.default.string,
|
71
72
|
globalFiltersPrimaryButtonText: _propTypes.default.string,
|
72
73
|
globalFiltersSecondaryButtonText: _propTypes.default.string,
|
73
74
|
globalSearchLabel: _propTypes.default.string.isRequired,
|
74
75
|
globalSearchPlaceholder: _propTypes.default.string,
|
75
76
|
globalSortBy: _propTypes.default.array,
|
77
|
+
illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
|
76
78
|
influencerTitle: _propTypes.default.string,
|
77
79
|
items: _propTypes.default.shape({
|
78
80
|
modifiers: _propTypes.default.shape({
|
@@ -86,7 +88,8 @@ AddSelect.propTypes = {
|
|
86
88
|
avatar: _propTypes.default.shape({
|
87
89
|
alt: _propTypes.default.string,
|
88
90
|
icon: _propTypes.default.func,
|
89
|
-
src: _propTypes.default.string
|
91
|
+
src: _propTypes.default.string,
|
92
|
+
theme: _propTypes.default.oneOf(['light', 'dark'])
|
90
93
|
}),
|
91
94
|
children: _propTypes.default.object,
|
92
95
|
icon: _propTypes.default.func,
|
@@ -120,7 +123,7 @@ AddSelect.propTypes = {
|
|
120
123
|
* portal target for the all tags modal
|
121
124
|
*/
|
122
125
|
portalTarget: _propTypes.default.node,
|
123
|
-
|
126
|
+
searchResultsTitle: _propTypes.default.string,
|
124
127
|
sortByLabel: _propTypes.default.string,
|
125
128
|
title: _propTypes.default.string.isRequired
|
126
129
|
};
|
@@ -51,16 +51,19 @@ var _usePath2 = _interopRequireDefault(require("./hooks/usePath"));
|
|
51
51
|
|
52
52
|
var _settings = require("../../settings");
|
53
53
|
|
54
|
-
var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "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", "
|
54
|
+
var _excluded = ["className", "clearFiltersText", "closeIconDescription", "columnInputPlaceholder", "defaultModifiers", "description", "filterByLabel", "globalFilterOpts", "globalFiltersLabel", "globalFiltersIconDescription", "globalFiltersPlaceholderText", "globalFiltersPrimaryButtonText", "globalFiltersSecondaryButtonText", "globalSearchLabel", "globalSearchPlaceholder", "globalSortBy", "illustrationTheme", "influencerTitle", "items", "itemsLabel", "metaIconDescription", "metaPanelTitle", "multi", "navIconDescription", "noResultsDescription", "noResultsTitle", "noSelectionDescription", "noSelectionTitle", "normalizedItems", "onClose", "onCloseButtonText", "onSubmit", "onSubmitButtonText", "open", "portalTarget", "searchResultsTitle", "title", "useNormalizedItems"];
|
55
55
|
|
56
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
57
|
|
58
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
59
|
|
60
|
+
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; }
|
61
|
+
|
62
|
+
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; }
|
63
|
+
|
60
64
|
var blockClass = "".concat(_settings.pkg.prefix, "--add-select");
|
61
65
|
var componentName = 'AddSelectBody';
|
62
|
-
|
63
|
-
var AddSelectBody = function AddSelectBody(_ref) {
|
66
|
+
var AddSelectBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
64
67
|
var _cx, _path$;
|
65
68
|
|
66
69
|
var className = _ref.className,
|
@@ -71,6 +74,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
71
74
|
description = _ref.description,
|
72
75
|
filterByLabel = _ref.filterByLabel,
|
73
76
|
globalFilterOpts = _ref.globalFilterOpts,
|
77
|
+
globalFiltersLabel = _ref.globalFiltersLabel,
|
74
78
|
globalFiltersIconDescription = _ref.globalFiltersIconDescription,
|
75
79
|
globalFiltersPlaceholderText = _ref.globalFiltersPlaceholderText,
|
76
80
|
globalFiltersPrimaryButtonText = _ref.globalFiltersPrimaryButtonText,
|
@@ -78,6 +82,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
78
82
|
globalSearchLabel = _ref.globalSearchLabel,
|
79
83
|
globalSearchPlaceholder = _ref.globalSearchPlaceholder,
|
80
84
|
globalSortBy = _ref.globalSortBy,
|
85
|
+
illustrationTheme = _ref.illustrationTheme,
|
81
86
|
influencerTitle = _ref.influencerTitle,
|
82
87
|
items = _ref.items,
|
83
88
|
itemsLabel = _ref.itemsLabel,
|
@@ -96,8 +101,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
96
101
|
onSubmitButtonText = _ref.onSubmitButtonText,
|
97
102
|
open = _ref.open,
|
98
103
|
portalTarget = _ref.portalTarget,
|
99
|
-
|
100
|
-
sortByLabel = _ref.sortByLabel,
|
104
|
+
searchResultsTitle = _ref.searchResultsTitle,
|
101
105
|
title = _ref.title,
|
102
106
|
useNormalizedItems = _ref.useNormalizedItems,
|
103
107
|
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
@@ -146,7 +150,8 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
146
150
|
var _usePath = (0, _usePath2.default)(itemsLabel),
|
147
151
|
path = _usePath.path,
|
148
152
|
setPath = _usePath.setPath,
|
149
|
-
pathOnclick = _usePath.pathOnclick
|
153
|
+
pathOnclick = _usePath.pathOnclick,
|
154
|
+
resetPath = _usePath.resetPath;
|
150
155
|
|
151
156
|
var resetState = function resetState() {
|
152
157
|
setSingleSelection('');
|
@@ -154,6 +159,11 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
154
159
|
setSearchTerm('');
|
155
160
|
setAppliedGlobalFilters({});
|
156
161
|
setDisplayMetaPanel({});
|
162
|
+
setAppliedModifiers(defaultModifiers);
|
163
|
+
setSortAttribute('');
|
164
|
+
setSortDirection('');
|
165
|
+
setParentSelected(null);
|
166
|
+
resetPath();
|
157
167
|
};
|
158
168
|
|
159
169
|
var onCloseHandler = function onCloseHandler() {
|
@@ -161,7 +171,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
161
171
|
onClose();
|
162
172
|
};
|
163
173
|
|
164
|
-
var
|
174
|
+
var tearsheetClassnames = (0, _classnames.default)(className, blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__single"), !multi), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__multi"), multi), _cx));
|
165
175
|
var globalFilterKeys = Object.keys(appliedGlobalFilters);
|
166
176
|
var globalFiltersApplied = globalFilterKeys.length > 0; // handlers
|
167
177
|
|
@@ -235,12 +245,12 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
235
245
|
setDisplayMetaPanel: setDisplayMetaPanel,
|
236
246
|
parentId: path[0].id
|
237
247
|
};
|
238
|
-
|
239
|
-
|
248
|
+
|
249
|
+
var commonTearsheetProps = _objectSpread(_objectSpread({}, rest), {}, {
|
250
|
+
className: tearsheetClassnames,
|
240
251
|
open: open,
|
241
252
|
title: title,
|
242
253
|
description: description,
|
243
|
-
closeIconDescription: 'temp description',
|
244
254
|
actions: [{
|
245
255
|
label: onCloseButtonText,
|
246
256
|
kind: 'secondary',
|
@@ -251,12 +261,15 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
251
261
|
onClick: submitHandler,
|
252
262
|
disabled: multi ? multiSelection.length === 0 : !singleSelection
|
253
263
|
}],
|
254
|
-
portalTarget: portalTarget
|
255
|
-
|
264
|
+
portalTarget: portalTarget,
|
265
|
+
ref: ref
|
266
|
+
});
|
267
|
+
|
256
268
|
var sidebarProps = {
|
257
269
|
appliedModifiers: appliedModifiers,
|
258
270
|
closeIconDescription: closeIconDescription,
|
259
271
|
displayMetalPanel: displayMetalPanel,
|
272
|
+
illustrationTheme: illustrationTheme,
|
260
273
|
influencerTitle: influencerTitle,
|
261
274
|
items: useNormalizedItems ? normalizedItems : items.entries,
|
262
275
|
metaPanelTitle: metaPanelTitle,
|
@@ -277,6 +290,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
277
290
|
handleSearch: handleSearch,
|
278
291
|
multi: multi,
|
279
292
|
filterOpts: globalFilterOpts,
|
293
|
+
filtersLabel: globalFiltersLabel,
|
280
294
|
handleFilter: handleFilter,
|
281
295
|
primaryButtonText: globalFiltersPrimaryButtonText,
|
282
296
|
secondaryButtonText: globalFiltersSecondaryButtonText,
|
@@ -288,14 +302,14 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
288
302
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
289
303
|
className: (0, _classnames.default)("".concat(blockClass, "__sub-header"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__sub-header-multi"), multi))
|
290
304
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
291
|
-
className: "".concat(blockClass, "
|
305
|
+
className: "".concat(blockClass, "__tags")
|
292
306
|
}, showBreadsCrumbs ? /*#__PURE__*/_react.default.createElement(_AddSelectBreadcrumbs.AddSelectBreadcrumbs, {
|
293
307
|
path: path,
|
294
308
|
onClick: pathOnclick,
|
295
309
|
multi: multi
|
296
310
|
}) : /*#__PURE__*/_react.default.createElement("p", {
|
297
|
-
className: "".concat(blockClass, "
|
298
|
-
}, searchTerm ?
|
311
|
+
className: "".concat(blockClass, "__tags-label")
|
312
|
+
}, searchTerm ? searchResultsTitle : itemsLabel), showTags && /*#__PURE__*/_react.default.createElement(_react2.Tag, {
|
299
313
|
type: "gray",
|
300
314
|
size: "sm"
|
301
315
|
}, itemsToDisplay.length)), showSort && /*#__PURE__*/_react.default.createElement(_AddSelectSort.AddSelectSort, {
|
@@ -304,8 +318,7 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
304
318
|
setSortDirection: setSortDirection,
|
305
319
|
sortAttribute: sortAttribute,
|
306
320
|
sortDirection: sortDirection,
|
307
|
-
sortBy: globalSortBy
|
308
|
-
sortByLabel: sortByLabel
|
321
|
+
sortBy: globalSortBy
|
309
322
|
}))), displayColumnView ? /*#__PURE__*/_react.default.createElement("div", {
|
310
323
|
className: "".concat(blockClass, "__columns")
|
311
324
|
}, /*#__PURE__*/_react.default.createElement(_AddSelectColumn.AddSelectColumn, (0, _extends2.default)({}, commonListProps, {
|
@@ -325,15 +338,19 @@ var AddSelectBody = function AddSelectBody(_ref) {
|
|
325
338
|
className: "".concat(blockClass, "__body")
|
326
339
|
}, /*#__PURE__*/_react.default.createElement(_NoDataEmptyState.NoDataEmptyState, {
|
327
340
|
subtitle: noResultsDescription,
|
328
|
-
title: noResultsTitle
|
341
|
+
title: noResultsTitle,
|
342
|
+
illustrationTheme: illustrationTheme
|
329
343
|
}))));
|
330
344
|
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
};
|
345
|
+
if (multi) {
|
346
|
+
return /*#__PURE__*/_react.default.createElement(_Tearsheet.Tearsheet, (0, _extends2.default)({}, commonTearsheetProps, {
|
347
|
+
influencer: multi && /*#__PURE__*/_react.default.createElement(_AddSelectSidebar.AddSelectSidebar, sidebarProps),
|
348
|
+
influencerPosition: "right"
|
349
|
+
}), body);
|
350
|
+
}
|
336
351
|
|
352
|
+
return /*#__PURE__*/_react.default.createElement(_Tearsheet.TearsheetNarrow, commonTearsheetProps, body);
|
353
|
+
});
|
337
354
|
exports.AddSelectBody = AddSelectBody;
|
338
355
|
AddSelectBody.propTypes = {
|
339
356
|
className: _propTypes.default.string,
|
@@ -345,12 +362,14 @@ AddSelectBody.propTypes = {
|
|
345
362
|
filterByLabel: _propTypes.default.string,
|
346
363
|
globalFilterOpts: _propTypes.default.array,
|
347
364
|
globalFiltersIconDescription: _propTypes.default.string,
|
365
|
+
globalFiltersLabel: _propTypes.default.string,
|
348
366
|
globalFiltersPlaceholderText: _propTypes.default.string,
|
349
367
|
globalFiltersPrimaryButtonText: _propTypes.default.string,
|
350
368
|
globalFiltersSecondaryButtonText: _propTypes.default.string,
|
351
369
|
globalSearchLabel: _propTypes.default.string.isRequired,
|
352
370
|
globalSearchPlaceholder: _propTypes.default.string,
|
353
371
|
globalSortBy: _propTypes.default.array,
|
372
|
+
illustrationTheme: _propTypes.default.oneOf(['light', 'dark']),
|
354
373
|
influencerTitle: _propTypes.default.string,
|
355
374
|
items: _propTypes.default.shape({
|
356
375
|
modifiers: _propTypes.default.shape({
|
@@ -364,7 +383,8 @@ AddSelectBody.propTypes = {
|
|
364
383
|
avatar: _propTypes.default.shape({
|
365
384
|
alt: _propTypes.default.string,
|
366
385
|
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
367
|
-
src: _propTypes.default.string
|
386
|
+
src: _propTypes.default.string,
|
387
|
+
theme: _propTypes.default.oneOf(['light', 'dark'])
|
368
388
|
}),
|
369
389
|
children: _propTypes.default.object,
|
370
390
|
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
@@ -395,7 +415,7 @@ AddSelectBody.propTypes = {
|
|
395
415
|
onSubmitButtonText: _propTypes.default.string,
|
396
416
|
open: _propTypes.default.bool,
|
397
417
|
portalTarget: _propTypes.default.node,
|
398
|
-
|
418
|
+
searchResultsTitle: _propTypes.default.string,
|
399
419
|
sortByLabel: _propTypes.default.string,
|
400
420
|
title: _propTypes.default.string,
|
401
421
|
useNormalizedItems: _propTypes.default.bool
|
@@ -20,7 +20,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
20
20
|
var _settings = require("../../settings");
|
21
21
|
|
22
22
|
//
|
23
|
-
// Copyright IBM Corp. 2022
|
23
|
+
// Copyright IBM Corp. 2022, 2022
|
24
24
|
//
|
25
25
|
// This source code is licensed under the Apache-2.0 license found in the
|
26
26
|
// LICENSE file in the root directory of this source tree.
|
@@ -235,14 +235,14 @@ var AddSelectColumn = function AddSelectColumn(_ref) {
|
|
235
235
|
}) ? true : false
|
236
236
|
})));
|
237
237
|
})))), /*#__PURE__*/_react.default.createElement("div", {
|
238
|
-
className: "".concat(blockClass, "
|
238
|
+
className: "".concat(blockClass, "__tags")
|
239
239
|
}, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
|
240
240
|
id: "".concat((0, _uuidv.default)(), "-select-all"),
|
241
241
|
className: "".concat(colClass, "__select-all"),
|
242
242
|
checked: allSelected,
|
243
243
|
onChange: selectAllHandler,
|
244
244
|
labelText: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
245
|
-
className: "".concat(blockClass, "__tag-
|
245
|
+
className: "".concat(blockClass, "__tag-label")
|
246
246
|
}, header), /*#__PURE__*/_react.default.createElement(_react2.Tag, {
|
247
247
|
type: "gray",
|
248
248
|
size: "sm"
|
@@ -42,6 +42,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
42
42
|
var appliedFilters = _ref.appliedFilters,
|
43
43
|
clearFiltersText = _ref.clearFiltersText,
|
44
44
|
filterOpts = _ref.filterOpts,
|
45
|
+
filtersLabel = _ref.filtersLabel,
|
45
46
|
handleFilter = _ref.handleFilter,
|
46
47
|
handleSearch = _ref.handleSearch,
|
47
48
|
hasFiltersApplied = _ref.hasFiltersApplied,
|
@@ -113,7 +114,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
113
114
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
114
115
|
className: "".concat(blockClass, "-search")
|
115
116
|
}, /*#__PURE__*/_react.default.createElement(_react2.Search, {
|
116
|
-
id: "
|
117
|
+
id: "add-select-global-search-filter",
|
117
118
|
labelText: inputLabel,
|
118
119
|
placeholder: inputPlaceholder,
|
119
120
|
value: searchTerm,
|
@@ -137,7 +138,7 @@ var AddSelectFilter = function AddSelectFilter(_ref) {
|
|
137
138
|
className: blockClass
|
138
139
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
139
140
|
className: "".concat(blockClass, "-content")
|
140
|
-
}, /*#__PURE__*/_react.default.createElement("p", null,
|
141
|
+
}, /*#__PURE__*/_react.default.createElement("p", null, filtersLabel), /*#__PURE__*/_react.default.createElement("div", {
|
141
142
|
className: "".concat(blockClass, "-opts")
|
142
143
|
}, filterOpts.map(function (filterOpts) {
|
143
144
|
return /*#__PURE__*/_react.default.createElement(_react2.Dropdown, {
|
@@ -188,6 +189,7 @@ AddSelectFilter.propTypes = {
|
|
188
189
|
appliedFilters: _propTypes.default.object,
|
189
190
|
clearFiltersText: _propTypes.default.string,
|
190
191
|
filterOpts: _propTypes.default.array,
|
192
|
+
filtersLabel: _propTypes.default.string,
|
191
193
|
handleFilter: _propTypes.default.func,
|
192
194
|
handleSearch: _propTypes.default.func,
|
193
195
|
hasFiltersApplied: _propTypes.default.bool,
|