@pingux/astro 1.7.0-alpha.12 → 1.7.0-alpha.13
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/lib/cjs/components/ListViewItem/ListViewItem.js +2 -1
- package/lib/cjs/components/MultiselectFilter/MultiselectFilter.js +1 -1
- package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.js +32 -11
- package/lib/cjs/components/MultiselectFilterItem/MultiselectFilterItem.test.js +13 -1
- package/lib/cjs/recipes/MultiselectListContainer.stories.js +352 -0
- package/lib/cjs/styles/variants/boxes.js +2 -2
- package/lib/cjs/styles/variants/multiselectListContainer.js +4 -6
- package/lib/components/ListViewItem/ListViewItem.js +2 -1
- package/lib/components/MultiselectFilter/MultiselectFilter.js +1 -1
- package/lib/components/MultiselectFilterItem/MultiselectFilterItem.js +35 -12
- package/lib/components/MultiselectFilterItem/MultiselectFilterItem.test.js +11 -1
- package/lib/recipes/MultiselectListContainer.stories.js +306 -0
- package/lib/styles/variants/boxes.js +2 -2
- package/lib/styles/variants/multiselectListContainer.js +4 -6
- package/package.json +1 -1
@@ -67,6 +67,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
67
67
|
var isDisabled = state.disabledKeys.has(item.key);
|
68
68
|
var rowRef = (0, _react.useRef)();
|
69
69
|
var cellRef = (0, _react.useRef)();
|
70
|
+
var isSelectable = state.selectionManager.selectionMode !== 'none';
|
70
71
|
|
71
72
|
var _useFocusRing = (0, _focus.useFocusRing)({
|
72
73
|
within: true
|
@@ -106,7 +107,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
106
107
|
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps, selectableItemProps);
|
107
108
|
|
108
109
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
109
|
-
isHovered: isHovered,
|
110
|
+
isHovered: isSelectable && isHovered,
|
110
111
|
isSelected: isSelected,
|
111
112
|
isFocused: isDisabled ? false : isFocusVisible,
|
112
113
|
hasSeparator: hasSeparator
|
@@ -105,7 +105,7 @@ var MultiselectFilter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
105
105
|
}, (0, _react2.jsx)(_index.ListView, {
|
106
106
|
items: items,
|
107
107
|
onSelectionChange: onSelectionChange,
|
108
|
-
selectionMode: "
|
108
|
+
selectionMode: "none",
|
109
109
|
style: {
|
110
110
|
width: '100%'
|
111
111
|
},
|
@@ -30,22 +30,32 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
30
30
|
|
31
31
|
var MultiselectFilterItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
32
32
|
var text = props.text,
|
33
|
-
icon = props.icon
|
33
|
+
icon = props.icon,
|
34
|
+
isDefaultSelected = props.isDefaultSelected,
|
35
|
+
onPress = props.onPress;
|
36
|
+
var iconElement = icon && (0, _react2.jsx)(_index.Icon, {
|
37
|
+
"data-testid": "multiselect-filter-data-icon",
|
38
|
+
icon: icon,
|
39
|
+
color: isDefaultSelected ? 'neutral.10' : 'active',
|
40
|
+
size: 13
|
41
|
+
});
|
34
42
|
return (0, _react2.jsx)(_index.Box, {
|
35
43
|
"data-testid": "multiselect-filter-item",
|
36
44
|
isRow: true,
|
37
|
-
justifyContent: "space-between",
|
38
45
|
ref: ref
|
39
46
|
}, (0, _react2.jsx)(_index.Text, {
|
40
47
|
variant: "multiselectFilterItem"
|
41
|
-
}, text),
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
48
|
+
}, text), iconElement && (isDefaultSelected ? iconElement : (0, _react2.jsx)(_index.IconButton, {
|
49
|
+
sx: {
|
50
|
+
width: 13,
|
51
|
+
height: 13,
|
52
|
+
alignSelf: 'auto',
|
53
|
+
'& path': {
|
54
|
+
fill: 'inherit'
|
55
|
+
}
|
56
|
+
},
|
57
|
+
onPress: onPress
|
58
|
+
}, iconElement)));
|
49
59
|
});
|
50
60
|
MultiselectFilterItem.propTypes = {
|
51
61
|
/**
|
@@ -56,7 +66,18 @@ MultiselectFilterItem.propTypes = {
|
|
56
66
|
/**
|
57
67
|
* List icon.
|
58
68
|
*/
|
59
|
-
icon: _propTypes["default"].shape({})
|
69
|
+
icon: _propTypes["default"].shape({}),
|
70
|
+
|
71
|
+
/**
|
72
|
+
* Whether the element is default selected
|
73
|
+
* and has to use Icon element instead of IconButton
|
74
|
+
*/
|
75
|
+
isDefaultSelected: _propTypes["default"].bool,
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Handler that is called at the press on icon button
|
79
|
+
*/
|
80
|
+
onPress: _propTypes["default"].func
|
60
81
|
};
|
61
82
|
MultiselectFilterItem.displayName = 'MultiselectFilterItem';
|
62
83
|
var _default = MultiselectFilterItem;
|
@@ -42,7 +42,7 @@ test('default multiselectFilter', function () {
|
|
42
42
|
expect(icon).not.toBeInTheDocument();
|
43
43
|
expect(multiselectFilterItem).toBeInTheDocument();
|
44
44
|
});
|
45
|
-
test('icon displays when icon prop is present', function () {
|
45
|
+
test('icon button displays when icon prop is present', function () {
|
46
46
|
getComponent({
|
47
47
|
icon: _FilterIcon["default"]
|
48
48
|
});
|
@@ -50,4 +50,16 @@ test('icon displays when icon prop is present', function () {
|
|
50
50
|
var icon = _testWrapper.screen.getByTestId(iconId);
|
51
51
|
|
52
52
|
expect(icon).toBeInTheDocument();
|
53
|
+
expect(icon.parentElement).toBeInstanceOf(HTMLButtonElement);
|
54
|
+
});
|
55
|
+
test('icon displays when icon prop is present and default selected', function () {
|
56
|
+
getComponent({
|
57
|
+
icon: _FilterIcon["default"],
|
58
|
+
isDefaultSelected: true
|
59
|
+
});
|
60
|
+
|
61
|
+
var icon = _testWrapper.screen.getByTestId(iconId);
|
62
|
+
|
63
|
+
expect(icon).toBeInTheDocument();
|
64
|
+
expect(icon.parentElement).not.toBeInstanceOf(HTMLButtonElement);
|
53
65
|
});
|
@@ -0,0 +1,352 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
6
|
+
|
7
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
8
|
+
|
9
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
10
|
+
|
11
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
12
|
+
|
13
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
14
|
+
|
15
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
16
|
+
|
17
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
18
|
+
|
19
|
+
var _filterInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
20
|
+
|
21
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
22
|
+
|
23
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
24
|
+
|
25
|
+
_Object$defineProperty(exports, "__esModule", {
|
26
|
+
value: true
|
27
|
+
});
|
28
|
+
|
29
|
+
exports["default"] = exports.Default = void 0;
|
30
|
+
|
31
|
+
var _some = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/some"));
|
32
|
+
|
33
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
34
|
+
|
35
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
36
|
+
|
37
|
+
var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
|
38
|
+
|
39
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
40
|
+
|
41
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
42
|
+
|
43
|
+
var _react = _interopRequireWildcard(require("react"));
|
44
|
+
|
45
|
+
var _i18n = require("@react-aria/i18n");
|
46
|
+
|
47
|
+
var _AccountIcon = _interopRequireDefault(require("mdi-react/AccountIcon"));
|
48
|
+
|
49
|
+
var _AccountGroupIcon = _interopRequireDefault(require("mdi-react/AccountGroupIcon"));
|
50
|
+
|
51
|
+
var _CheckIcon = _interopRequireDefault(require("mdi-react/CheckIcon"));
|
52
|
+
|
53
|
+
var _CloseIcon = _interopRequireDefault(require("mdi-react/CloseIcon"));
|
54
|
+
|
55
|
+
var _ChevronRightIcon = _interopRequireDefault(require("mdi-react/ChevronRightIcon"));
|
56
|
+
|
57
|
+
var _SearchIcon = _interopRequireDefault(require("mdi-react/SearchIcon"));
|
58
|
+
|
59
|
+
var _ = require("..");
|
60
|
+
|
61
|
+
var _react2 = require("@emotion/react");
|
62
|
+
|
63
|
+
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); }
|
64
|
+
|
65
|
+
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; }
|
66
|
+
|
67
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
68
|
+
|
69
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
70
|
+
|
71
|
+
var _default = {
|
72
|
+
title: 'Recipes/MultiselectListContainer'
|
73
|
+
};
|
74
|
+
exports["default"] = _default;
|
75
|
+
var data = [{
|
76
|
+
id: '1',
|
77
|
+
icon: 'Group',
|
78
|
+
key: 'Avengers',
|
79
|
+
name: 'Avengers',
|
80
|
+
subtitle: 'Default',
|
81
|
+
chipValue: '25',
|
82
|
+
isDefaultSelected: true
|
83
|
+
}, {
|
84
|
+
id: '2',
|
85
|
+
icon: 'Group',
|
86
|
+
key: 'Credit Cards',
|
87
|
+
name: 'Credit Cards',
|
88
|
+
subtitle: '',
|
89
|
+
chipValue: '123'
|
90
|
+
}, {
|
91
|
+
id: '3',
|
92
|
+
icon: 'Group',
|
93
|
+
key: 'Debit Cards',
|
94
|
+
name: 'Debit Cards',
|
95
|
+
subtitle: '',
|
96
|
+
chipValue: '23'
|
97
|
+
}, {
|
98
|
+
id: '4',
|
99
|
+
icon: 'Group',
|
100
|
+
key: 'Digital Investors',
|
101
|
+
name: 'Digital Investors',
|
102
|
+
subtitle: 'N America',
|
103
|
+
chipValue: '12',
|
104
|
+
isDefaultSelected: true
|
105
|
+
}, {
|
106
|
+
id: '5',
|
107
|
+
icon: 'Group',
|
108
|
+
key: 'Mortgages',
|
109
|
+
name: 'Mortgages',
|
110
|
+
subtitle: 'N America',
|
111
|
+
chipValue: '112'
|
112
|
+
}, {
|
113
|
+
id: '6',
|
114
|
+
icon: 'Group',
|
115
|
+
key: 'Person LOC',
|
116
|
+
name: 'Person LOC',
|
117
|
+
subtitle: '',
|
118
|
+
chipValue: '45'
|
119
|
+
}, {
|
120
|
+
id: '7',
|
121
|
+
icon: 'Group',
|
122
|
+
key: 'Production',
|
123
|
+
name: 'Production',
|
124
|
+
subtitle: '',
|
125
|
+
chipValue: '55'
|
126
|
+
}, {
|
127
|
+
id: '8',
|
128
|
+
icon: 'Group',
|
129
|
+
key: 'UX Team',
|
130
|
+
name: 'UX Team',
|
131
|
+
subtitle: '',
|
132
|
+
chipValue: '61'
|
133
|
+
}, {
|
134
|
+
id: '9',
|
135
|
+
icon: 'Group',
|
136
|
+
key: 'UI Team',
|
137
|
+
name: 'UI Team',
|
138
|
+
subtitle: '',
|
139
|
+
chipValue: '29'
|
140
|
+
}];
|
141
|
+
|
142
|
+
var Default = function Default() {
|
143
|
+
var _useState = (0, _react.useState)(data),
|
144
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
145
|
+
items = _useState2[0],
|
146
|
+
setItems = _useState2[1];
|
147
|
+
|
148
|
+
var _useState3 = (0, _react.useState)(''),
|
149
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
150
|
+
searchValue = _useState4[0],
|
151
|
+
setSearchValue = _useState4[1];
|
152
|
+
|
153
|
+
var _useFilter = (0, _i18n.useFilter)({
|
154
|
+
sensitivity: 'base'
|
155
|
+
}),
|
156
|
+
contains = _useFilter.contains;
|
157
|
+
|
158
|
+
var filteredItems = (0, _react.useMemo)(function () {
|
159
|
+
return (0, _filter["default"])(items).call(items, function (item) {
|
160
|
+
return contains(item.name, searchValue);
|
161
|
+
});
|
162
|
+
}, [items, searchValue]);
|
163
|
+
var selectedItems = (0, _react.useMemo)(function () {
|
164
|
+
var _context;
|
165
|
+
|
166
|
+
return (0, _sort["default"])(_context = (0, _filter["default"])(items).call(items, function (item) {
|
167
|
+
return item.isDefaultSelected || item.isSelected;
|
168
|
+
}) // sort elements to display "default selected" at first place
|
169
|
+
).call(_context, function (a, b) {
|
170
|
+
return Number(!!b.isDefaultSelected) - Number(!!a.isDefaultSelected);
|
171
|
+
});
|
172
|
+
}, [items]);
|
173
|
+
|
174
|
+
var changeSelection = function changeSelection(key) {
|
175
|
+
setItems(function (prevItems) {
|
176
|
+
return (0, _map["default"])(prevItems).call(prevItems, function (el) {
|
177
|
+
if (el.key === key) {
|
178
|
+
return _objectSpread(_objectSpread({}, el), {}, {
|
179
|
+
isSelected: !el.isSelected
|
180
|
+
});
|
181
|
+
}
|
182
|
+
|
183
|
+
return el;
|
184
|
+
});
|
185
|
+
});
|
186
|
+
};
|
187
|
+
|
188
|
+
return (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Box, {
|
189
|
+
sx: {
|
190
|
+
minHeight: '60px'
|
191
|
+
},
|
192
|
+
bg: "accent.99"
|
193
|
+
}, (0, _react2.jsx)(_.Box, {
|
194
|
+
isRow: true,
|
195
|
+
flexBasis: "0px",
|
196
|
+
flexGrow: "1",
|
197
|
+
alignItems: "center",
|
198
|
+
pl: "md",
|
199
|
+
pr: "md",
|
200
|
+
justifyContent: "space-between",
|
201
|
+
zIndex: 2
|
202
|
+
}, (0, _react2.jsx)(_.Box, {
|
203
|
+
isRow: true
|
204
|
+
}, (0, _react2.jsx)(_.Icon, {
|
205
|
+
icon: _AccountIcon["default"],
|
206
|
+
alignSelf: "center",
|
207
|
+
mr: "md",
|
208
|
+
color: "accent.40",
|
209
|
+
size: 25,
|
210
|
+
flexShrink: 0,
|
211
|
+
display: "flex"
|
212
|
+
}), (0, _react2.jsx)(_.Breadcrumbs, {
|
213
|
+
icon: _ChevronRightIcon["default"]
|
214
|
+
}, (0, _react2.jsx)(_.Item, {
|
215
|
+
key: "home",
|
216
|
+
variant: "link",
|
217
|
+
"data-id": "home"
|
218
|
+
}, "Ed Nepomuceno"), (0, _react2.jsx)(_.Item, {
|
219
|
+
key: "editGroups",
|
220
|
+
variant: "neutralText",
|
221
|
+
"data-id": "editGroups"
|
222
|
+
}, "Edit Groups"))), (0, _react2.jsx)(_.Box, {
|
223
|
+
isRow: true
|
224
|
+
}, (0, _react2.jsx)(_.IconButton, {
|
225
|
+
"aria-label": "Close Panel"
|
226
|
+
}, (0, _react2.jsx)(_.Icon, {
|
227
|
+
icon: _CloseIcon["default"],
|
228
|
+
size: 20
|
229
|
+
}))))), (0, _react2.jsx)(_.Box, {
|
230
|
+
pl: "md",
|
231
|
+
pt: "25px"
|
232
|
+
}, (0, _react2.jsx)(_.Box, {
|
233
|
+
isRow: true,
|
234
|
+
justifyContent: "space-between"
|
235
|
+
}, (0, _react2.jsx)(_.Box, {
|
236
|
+
width: "100%"
|
237
|
+
}, (0, _react2.jsx)(_.SearchField, {
|
238
|
+
icon: _SearchIcon["default"],
|
239
|
+
"aria-label": "Search",
|
240
|
+
placeholder: "Search",
|
241
|
+
width: "100%",
|
242
|
+
mt: "0px",
|
243
|
+
mr: "sm",
|
244
|
+
onChange: setSearchValue
|
245
|
+
}), (0, _react2.jsx)(_.ListView, {
|
246
|
+
items: filteredItems,
|
247
|
+
style: {
|
248
|
+
width: '100%',
|
249
|
+
outline: 'none'
|
250
|
+
}
|
251
|
+
}, function (item) {
|
252
|
+
return (0, _react2.jsx)(_.Item, {
|
253
|
+
key: item.key,
|
254
|
+
textValue: item.name,
|
255
|
+
"data-id": item.key,
|
256
|
+
listItemProps: {
|
257
|
+
isRow: true,
|
258
|
+
sx: {
|
259
|
+
bg: 'white',
|
260
|
+
width: '100%',
|
261
|
+
justifyContent: 'space-between',
|
262
|
+
alignItems: 'center',
|
263
|
+
'&.is-hovered': {
|
264
|
+
bg: 'accent.99'
|
265
|
+
}
|
266
|
+
}
|
267
|
+
}
|
268
|
+
}, (0, _react2.jsx)(_.Box, {
|
269
|
+
isRow: true
|
270
|
+
}, (0, _react2.jsx)(_.Icon, {
|
271
|
+
icon: _AccountGroupIcon["default"],
|
272
|
+
alignSelf: "center",
|
273
|
+
mr: "md",
|
274
|
+
color: "accent.40",
|
275
|
+
size: 25,
|
276
|
+
flexShrink: 1
|
277
|
+
}), (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Box, {
|
278
|
+
isRow: true
|
279
|
+
}, (0, _react2.jsx)(_.Text, {
|
280
|
+
variant: "listTitle",
|
281
|
+
mb: "xs",
|
282
|
+
mr: "xs"
|
283
|
+
}, item.name), (0, _react2.jsx)(_.Chip, {
|
284
|
+
label: item.chipValue,
|
285
|
+
bg: "accent.99",
|
286
|
+
textColor: "text.secondary",
|
287
|
+
sx: {
|
288
|
+
minWidth: 'max-content'
|
289
|
+
}
|
290
|
+
})), (0, _react2.jsx)(_.Text, {
|
291
|
+
variant: "listSubtitle"
|
292
|
+
}, item.subtitle))), item.isDefaultSelected ? (0, _react2.jsx)(_.Box, {
|
293
|
+
isRow: true,
|
294
|
+
sx: {
|
295
|
+
border: '1px solid',
|
296
|
+
borderColor: 'neutral.80',
|
297
|
+
borderRadius: 5,
|
298
|
+
minHeight: 22,
|
299
|
+
justifyContent: 'center',
|
300
|
+
alignItems: 'center',
|
301
|
+
p: 'xs',
|
302
|
+
maxWidth: '50%'
|
303
|
+
}
|
304
|
+
}, (0, _react2.jsx)(_.Icon, {
|
305
|
+
icon: _CheckIcon["default"],
|
306
|
+
color: "neutral.20",
|
307
|
+
size: 13,
|
308
|
+
sx: {
|
309
|
+
flexShrink: 0
|
310
|
+
}
|
311
|
+
}), (0, _react2.jsx)(_.Text, {
|
312
|
+
sx: {
|
313
|
+
fontSize: 'sm',
|
314
|
+
pl: 'xs',
|
315
|
+
maxHeight: 32,
|
316
|
+
overflow: 'hidden'
|
317
|
+
}
|
318
|
+
}, "Added by Filter")) : (0, _react2.jsx)(_.CheckboxField, {
|
319
|
+
controlProps: {
|
320
|
+
color: 'neutral.10',
|
321
|
+
'aria-label': 'Select'
|
322
|
+
},
|
323
|
+
onChange: function onChange() {
|
324
|
+
return changeSelection(item.key);
|
325
|
+
},
|
326
|
+
isSelected: (0, _some["default"])(selectedItems).call(selectedItems, function (el) {
|
327
|
+
return el.key === item.key;
|
328
|
+
})
|
329
|
+
}));
|
330
|
+
})), (0, _react2.jsx)(_.MultiselectFilter, {
|
331
|
+
items: selectedItems,
|
332
|
+
selectedFilterCount: selectedItems.length.toString(),
|
333
|
+
listTitle: "Selected Groups",
|
334
|
+
openAriaLabel: "Open filter menu?",
|
335
|
+
closeAriaLabel: "Close filter menu?"
|
336
|
+
}, function (item) {
|
337
|
+
return (0, _react2.jsx)(_.Item, {
|
338
|
+
key: item.key,
|
339
|
+
textValue: item.name,
|
340
|
+
"data-id": item.key
|
341
|
+
}, (0, _react2.jsx)(_.MultiselectFilterItem, {
|
342
|
+
text: item.name,
|
343
|
+
icon: item.isDefaultSelected ? _CheckIcon["default"] : _CloseIcon["default"],
|
344
|
+
isDefaultSelected: item.isDefaultSelected,
|
345
|
+
onPress: function onPress() {
|
346
|
+
return changeSelection(item.key);
|
347
|
+
}
|
348
|
+
}));
|
349
|
+
}))));
|
350
|
+
};
|
351
|
+
|
352
|
+
exports.Default = Default;
|
@@ -80,7 +80,6 @@ var listItem = _objectSpread(_objectSpread({}, base), {}, {
|
|
80
80
|
var listViewItem = _objectSpread(_objectSpread({}, base), {}, {
|
81
81
|
padding: '0px 15px 0px 25px',
|
82
82
|
flex: '1 1 0px',
|
83
|
-
cursor: 'pointer',
|
84
83
|
minHeight: '80px',
|
85
84
|
justifyContent: 'center',
|
86
85
|
bg: 'accent.99',
|
@@ -89,7 +88,8 @@ var listViewItem = _objectSpread(_objectSpread({}, base), {}, {
|
|
89
88
|
bg: 'white'
|
90
89
|
},
|
91
90
|
'&.is-hovered': {
|
92
|
-
bg: 'white'
|
91
|
+
bg: 'white',
|
92
|
+
cursor: 'pointer'
|
93
93
|
},
|
94
94
|
'&.is-focused': {
|
95
95
|
boxShadow: 'inset 0 0 5px #5873bdbf'
|
@@ -8,13 +8,10 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
|
9
9
|
exports["default"] = void 0;
|
10
10
|
var multiselectListContainer = {
|
11
|
-
height: '40px',
|
12
11
|
overflowX: 'hidden',
|
13
12
|
pr: 'sm',
|
14
13
|
transition: 'right 500ms',
|
15
|
-
'
|
16
|
-
height: '100%'
|
17
|
-
}
|
14
|
+
minHeight: '80vh'
|
18
15
|
};
|
19
16
|
var multiselectListContent = {
|
20
17
|
bg: 'accent.99',
|
@@ -31,7 +28,8 @@ var multiselectListContent = {
|
|
31
28
|
display: 'flex',
|
32
29
|
minHeight: '45px',
|
33
30
|
padding: '3px',
|
34
|
-
width: '100%'
|
31
|
+
width: '100%',
|
32
|
+
justifyContent: 'space-between'
|
35
33
|
}
|
36
34
|
};
|
37
35
|
var multiselectListTitle = {
|
@@ -44,7 +42,7 @@ var multiselectListTitle = {
|
|
44
42
|
padding: '0 10px !important',
|
45
43
|
flexWrap: 'wrap',
|
46
44
|
maxWidth: 'max-content !important',
|
47
|
-
margin: '0
|
45
|
+
margin: '0'
|
48
46
|
};
|
49
47
|
var multiselectListBadge = {
|
50
48
|
borderRadius: '5px',
|
@@ -34,6 +34,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
34
34
|
var isDisabled = state.disabledKeys.has(item.key);
|
35
35
|
var rowRef = useRef();
|
36
36
|
var cellRef = useRef();
|
37
|
+
var isSelectable = state.selectionManager.selectionMode !== 'none';
|
37
38
|
|
38
39
|
var _useFocusRing = useFocusRing({
|
39
40
|
within: true
|
@@ -73,7 +74,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
73
74
|
var mergedProps = mergeProps(gridCellProps, hoverProps, focusWithinProps, focusProps, selectableItemProps);
|
74
75
|
|
75
76
|
var _useStatusClasses = useStatusClasses(className, {
|
76
|
-
isHovered: isHovered,
|
77
|
+
isHovered: isSelectable && isHovered,
|
77
78
|
isSelected: isSelected,
|
78
79
|
isFocused: isDisabled ? false : isFocusVisible,
|
79
80
|
hasSeparator: hasSeparator
|
@@ -1,25 +1,37 @@
|
|
1
1
|
import React, { forwardRef } from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import { Box, Icon, Text } from '../../index';
|
3
|
+
import { Box, Icon, IconButton, Text } from '../../index';
|
4
4
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
5
5
|
var MultiselectFilterItem = /*#__PURE__*/forwardRef(function (props, ref) {
|
6
6
|
var text = props.text,
|
7
|
-
icon = props.icon
|
7
|
+
icon = props.icon,
|
8
|
+
isDefaultSelected = props.isDefaultSelected,
|
9
|
+
onPress = props.onPress;
|
10
|
+
|
11
|
+
var iconElement = icon && ___EmotionJSX(Icon, {
|
12
|
+
"data-testid": "multiselect-filter-data-icon",
|
13
|
+
icon: icon,
|
14
|
+
color: isDefaultSelected ? 'neutral.10' : 'active',
|
15
|
+
size: 13
|
16
|
+
});
|
17
|
+
|
8
18
|
return ___EmotionJSX(Box, {
|
9
19
|
"data-testid": "multiselect-filter-item",
|
10
20
|
isRow: true,
|
11
|
-
justifyContent: "space-between",
|
12
21
|
ref: ref
|
13
22
|
}, ___EmotionJSX(Text, {
|
14
23
|
variant: "multiselectFilterItem"
|
15
|
-
}, text),
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
24
|
+
}, text), iconElement && (isDefaultSelected ? iconElement : ___EmotionJSX(IconButton, {
|
25
|
+
sx: {
|
26
|
+
width: 13,
|
27
|
+
height: 13,
|
28
|
+
alignSelf: 'auto',
|
29
|
+
'& path': {
|
30
|
+
fill: 'inherit'
|
31
|
+
}
|
32
|
+
},
|
33
|
+
onPress: onPress
|
34
|
+
}, iconElement)));
|
23
35
|
});
|
24
36
|
MultiselectFilterItem.propTypes = {
|
25
37
|
/**
|
@@ -30,7 +42,18 @@ MultiselectFilterItem.propTypes = {
|
|
30
42
|
/**
|
31
43
|
* List icon.
|
32
44
|
*/
|
33
|
-
icon: PropTypes.shape({})
|
45
|
+
icon: PropTypes.shape({}),
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Whether the element is default selected
|
49
|
+
* and has to use Icon element instead of IconButton
|
50
|
+
*/
|
51
|
+
isDefaultSelected: PropTypes.bool,
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Handler that is called at the press on icon button
|
55
|
+
*/
|
56
|
+
onPress: PropTypes.func
|
34
57
|
};
|
35
58
|
MultiselectFilterItem.displayName = 'MultiselectFilterItem';
|
36
59
|
export default MultiselectFilterItem;
|
@@ -28,10 +28,20 @@ test('default multiselectFilter', function () {
|
|
28
28
|
expect(icon).not.toBeInTheDocument();
|
29
29
|
expect(multiselectFilterItem).toBeInTheDocument();
|
30
30
|
});
|
31
|
-
test('icon displays when icon prop is present', function () {
|
31
|
+
test('icon button displays when icon prop is present', function () {
|
32
32
|
getComponent({
|
33
33
|
icon: FilterIcon
|
34
34
|
});
|
35
35
|
var icon = screen.getByTestId(iconId);
|
36
36
|
expect(icon).toBeInTheDocument();
|
37
|
+
expect(icon.parentElement).toBeInstanceOf(HTMLButtonElement);
|
38
|
+
});
|
39
|
+
test('icon displays when icon prop is present and default selected', function () {
|
40
|
+
getComponent({
|
41
|
+
icon: FilterIcon,
|
42
|
+
isDefaultSelected: true
|
43
|
+
});
|
44
|
+
var icon = screen.getByTestId(iconId);
|
45
|
+
expect(icon).toBeInTheDocument();
|
46
|
+
expect(icon.parentElement).not.toBeInstanceOf(HTMLButtonElement);
|
37
47
|
});
|
@@ -0,0 +1,306 @@
|
|
1
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
2
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
3
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
4
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
5
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
6
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
7
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
8
|
+
import _someInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/some";
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
10
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
11
|
+
import _sortInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/sort";
|
12
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
13
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
14
|
+
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
16
|
+
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
18
|
+
|
19
|
+
import React, { useMemo, useState } from 'react';
|
20
|
+
import { useFilter } from '@react-aria/i18n';
|
21
|
+
import AccountIcon from 'mdi-react/AccountIcon';
|
22
|
+
import AccountGroupIcon from 'mdi-react/AccountGroupIcon';
|
23
|
+
import CheckIcon from 'mdi-react/CheckIcon';
|
24
|
+
import Clear from 'mdi-react/CloseIcon';
|
25
|
+
import ChevronRightIcon from 'mdi-react/ChevronRightIcon';
|
26
|
+
import SearchIcon from 'mdi-react/SearchIcon';
|
27
|
+
import { Breadcrumbs, Box, CheckboxField, Chip, Icon, IconButton, Item, ListView, MultiselectFilter, MultiselectFilterItem, SearchField, Text } from '..';
|
28
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
29
|
+
export default {
|
30
|
+
title: 'Recipes/MultiselectListContainer'
|
31
|
+
};
|
32
|
+
var data = [{
|
33
|
+
id: '1',
|
34
|
+
icon: 'Group',
|
35
|
+
key: 'Avengers',
|
36
|
+
name: 'Avengers',
|
37
|
+
subtitle: 'Default',
|
38
|
+
chipValue: '25',
|
39
|
+
isDefaultSelected: true
|
40
|
+
}, {
|
41
|
+
id: '2',
|
42
|
+
icon: 'Group',
|
43
|
+
key: 'Credit Cards',
|
44
|
+
name: 'Credit Cards',
|
45
|
+
subtitle: '',
|
46
|
+
chipValue: '123'
|
47
|
+
}, {
|
48
|
+
id: '3',
|
49
|
+
icon: 'Group',
|
50
|
+
key: 'Debit Cards',
|
51
|
+
name: 'Debit Cards',
|
52
|
+
subtitle: '',
|
53
|
+
chipValue: '23'
|
54
|
+
}, {
|
55
|
+
id: '4',
|
56
|
+
icon: 'Group',
|
57
|
+
key: 'Digital Investors',
|
58
|
+
name: 'Digital Investors',
|
59
|
+
subtitle: 'N America',
|
60
|
+
chipValue: '12',
|
61
|
+
isDefaultSelected: true
|
62
|
+
}, {
|
63
|
+
id: '5',
|
64
|
+
icon: 'Group',
|
65
|
+
key: 'Mortgages',
|
66
|
+
name: 'Mortgages',
|
67
|
+
subtitle: 'N America',
|
68
|
+
chipValue: '112'
|
69
|
+
}, {
|
70
|
+
id: '6',
|
71
|
+
icon: 'Group',
|
72
|
+
key: 'Person LOC',
|
73
|
+
name: 'Person LOC',
|
74
|
+
subtitle: '',
|
75
|
+
chipValue: '45'
|
76
|
+
}, {
|
77
|
+
id: '7',
|
78
|
+
icon: 'Group',
|
79
|
+
key: 'Production',
|
80
|
+
name: 'Production',
|
81
|
+
subtitle: '',
|
82
|
+
chipValue: '55'
|
83
|
+
}, {
|
84
|
+
id: '8',
|
85
|
+
icon: 'Group',
|
86
|
+
key: 'UX Team',
|
87
|
+
name: 'UX Team',
|
88
|
+
subtitle: '',
|
89
|
+
chipValue: '61'
|
90
|
+
}, {
|
91
|
+
id: '9',
|
92
|
+
icon: 'Group',
|
93
|
+
key: 'UI Team',
|
94
|
+
name: 'UI Team',
|
95
|
+
subtitle: '',
|
96
|
+
chipValue: '29'
|
97
|
+
}];
|
98
|
+
export var Default = function Default() {
|
99
|
+
var _useState = useState(data),
|
100
|
+
_useState2 = _slicedToArray(_useState, 2),
|
101
|
+
items = _useState2[0],
|
102
|
+
setItems = _useState2[1];
|
103
|
+
|
104
|
+
var _useState3 = useState(''),
|
105
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
106
|
+
searchValue = _useState4[0],
|
107
|
+
setSearchValue = _useState4[1];
|
108
|
+
|
109
|
+
var _useFilter = useFilter({
|
110
|
+
sensitivity: 'base'
|
111
|
+
}),
|
112
|
+
contains = _useFilter.contains;
|
113
|
+
|
114
|
+
var filteredItems = useMemo(function () {
|
115
|
+
return _filterInstanceProperty(items).call(items, function (item) {
|
116
|
+
return contains(item.name, searchValue);
|
117
|
+
});
|
118
|
+
}, [items, searchValue]);
|
119
|
+
var selectedItems = useMemo(function () {
|
120
|
+
var _context;
|
121
|
+
|
122
|
+
return _sortInstanceProperty(_context = _filterInstanceProperty(items).call(items, function (item) {
|
123
|
+
return item.isDefaultSelected || item.isSelected;
|
124
|
+
}) // sort elements to display "default selected" at first place
|
125
|
+
).call(_context, function (a, b) {
|
126
|
+
return Number(!!b.isDefaultSelected) - Number(!!a.isDefaultSelected);
|
127
|
+
});
|
128
|
+
}, [items]);
|
129
|
+
|
130
|
+
var changeSelection = function changeSelection(key) {
|
131
|
+
setItems(function (prevItems) {
|
132
|
+
return _mapInstanceProperty(prevItems).call(prevItems, function (el) {
|
133
|
+
if (el.key === key) {
|
134
|
+
return _objectSpread(_objectSpread({}, el), {}, {
|
135
|
+
isSelected: !el.isSelected
|
136
|
+
});
|
137
|
+
}
|
138
|
+
|
139
|
+
return el;
|
140
|
+
});
|
141
|
+
});
|
142
|
+
};
|
143
|
+
|
144
|
+
return ___EmotionJSX(Box, null, ___EmotionJSX(Box, {
|
145
|
+
sx: {
|
146
|
+
minHeight: '60px'
|
147
|
+
},
|
148
|
+
bg: "accent.99"
|
149
|
+
}, ___EmotionJSX(Box, {
|
150
|
+
isRow: true,
|
151
|
+
flexBasis: "0px",
|
152
|
+
flexGrow: "1",
|
153
|
+
alignItems: "center",
|
154
|
+
pl: "md",
|
155
|
+
pr: "md",
|
156
|
+
justifyContent: "space-between",
|
157
|
+
zIndex: 2
|
158
|
+
}, ___EmotionJSX(Box, {
|
159
|
+
isRow: true
|
160
|
+
}, ___EmotionJSX(Icon, {
|
161
|
+
icon: AccountIcon,
|
162
|
+
alignSelf: "center",
|
163
|
+
mr: "md",
|
164
|
+
color: "accent.40",
|
165
|
+
size: 25,
|
166
|
+
flexShrink: 0,
|
167
|
+
display: "flex"
|
168
|
+
}), ___EmotionJSX(Breadcrumbs, {
|
169
|
+
icon: ChevronRightIcon
|
170
|
+
}, ___EmotionJSX(Item, {
|
171
|
+
key: "home",
|
172
|
+
variant: "link",
|
173
|
+
"data-id": "home"
|
174
|
+
}, "Ed Nepomuceno"), ___EmotionJSX(Item, {
|
175
|
+
key: "editGroups",
|
176
|
+
variant: "neutralText",
|
177
|
+
"data-id": "editGroups"
|
178
|
+
}, "Edit Groups"))), ___EmotionJSX(Box, {
|
179
|
+
isRow: true
|
180
|
+
}, ___EmotionJSX(IconButton, {
|
181
|
+
"aria-label": "Close Panel"
|
182
|
+
}, ___EmotionJSX(Icon, {
|
183
|
+
icon: Clear,
|
184
|
+
size: 20
|
185
|
+
}))))), ___EmotionJSX(Box, {
|
186
|
+
pl: "md",
|
187
|
+
pt: "25px"
|
188
|
+
}, ___EmotionJSX(Box, {
|
189
|
+
isRow: true,
|
190
|
+
justifyContent: "space-between"
|
191
|
+
}, ___EmotionJSX(Box, {
|
192
|
+
width: "100%"
|
193
|
+
}, ___EmotionJSX(SearchField, {
|
194
|
+
icon: SearchIcon,
|
195
|
+
"aria-label": "Search",
|
196
|
+
placeholder: "Search",
|
197
|
+
width: "100%",
|
198
|
+
mt: "0px",
|
199
|
+
mr: "sm",
|
200
|
+
onChange: setSearchValue
|
201
|
+
}), ___EmotionJSX(ListView, {
|
202
|
+
items: filteredItems,
|
203
|
+
style: {
|
204
|
+
width: '100%',
|
205
|
+
outline: 'none'
|
206
|
+
}
|
207
|
+
}, function (item) {
|
208
|
+
return ___EmotionJSX(Item, {
|
209
|
+
key: item.key,
|
210
|
+
textValue: item.name,
|
211
|
+
"data-id": item.key,
|
212
|
+
listItemProps: {
|
213
|
+
isRow: true,
|
214
|
+
sx: {
|
215
|
+
bg: 'white',
|
216
|
+
width: '100%',
|
217
|
+
justifyContent: 'space-between',
|
218
|
+
alignItems: 'center',
|
219
|
+
'&.is-hovered': {
|
220
|
+
bg: 'accent.99'
|
221
|
+
}
|
222
|
+
}
|
223
|
+
}
|
224
|
+
}, ___EmotionJSX(Box, {
|
225
|
+
isRow: true
|
226
|
+
}, ___EmotionJSX(Icon, {
|
227
|
+
icon: AccountGroupIcon,
|
228
|
+
alignSelf: "center",
|
229
|
+
mr: "md",
|
230
|
+
color: "accent.40",
|
231
|
+
size: 25,
|
232
|
+
flexShrink: 1
|
233
|
+
}), ___EmotionJSX(Box, null, ___EmotionJSX(Box, {
|
234
|
+
isRow: true
|
235
|
+
}, ___EmotionJSX(Text, {
|
236
|
+
variant: "listTitle",
|
237
|
+
mb: "xs",
|
238
|
+
mr: "xs"
|
239
|
+
}, item.name), ___EmotionJSX(Chip, {
|
240
|
+
label: item.chipValue,
|
241
|
+
bg: "accent.99",
|
242
|
+
textColor: "text.secondary",
|
243
|
+
sx: {
|
244
|
+
minWidth: 'max-content'
|
245
|
+
}
|
246
|
+
})), ___EmotionJSX(Text, {
|
247
|
+
variant: "listSubtitle"
|
248
|
+
}, item.subtitle))), item.isDefaultSelected ? ___EmotionJSX(Box, {
|
249
|
+
isRow: true,
|
250
|
+
sx: {
|
251
|
+
border: '1px solid',
|
252
|
+
borderColor: 'neutral.80',
|
253
|
+
borderRadius: 5,
|
254
|
+
minHeight: 22,
|
255
|
+
justifyContent: 'center',
|
256
|
+
alignItems: 'center',
|
257
|
+
p: 'xs',
|
258
|
+
maxWidth: '50%'
|
259
|
+
}
|
260
|
+
}, ___EmotionJSX(Icon, {
|
261
|
+
icon: CheckIcon,
|
262
|
+
color: "neutral.20",
|
263
|
+
size: 13,
|
264
|
+
sx: {
|
265
|
+
flexShrink: 0
|
266
|
+
}
|
267
|
+
}), ___EmotionJSX(Text, {
|
268
|
+
sx: {
|
269
|
+
fontSize: 'sm',
|
270
|
+
pl: 'xs',
|
271
|
+
maxHeight: 32,
|
272
|
+
overflow: 'hidden'
|
273
|
+
}
|
274
|
+
}, "Added by Filter")) : ___EmotionJSX(CheckboxField, {
|
275
|
+
controlProps: {
|
276
|
+
color: 'neutral.10',
|
277
|
+
'aria-label': 'Select'
|
278
|
+
},
|
279
|
+
onChange: function onChange() {
|
280
|
+
return changeSelection(item.key);
|
281
|
+
},
|
282
|
+
isSelected: _someInstanceProperty(selectedItems).call(selectedItems, function (el) {
|
283
|
+
return el.key === item.key;
|
284
|
+
})
|
285
|
+
}));
|
286
|
+
})), ___EmotionJSX(MultiselectFilter, {
|
287
|
+
items: selectedItems,
|
288
|
+
selectedFilterCount: selectedItems.length.toString(),
|
289
|
+
listTitle: "Selected Groups",
|
290
|
+
openAriaLabel: "Open filter menu?",
|
291
|
+
closeAriaLabel: "Close filter menu?"
|
292
|
+
}, function (item) {
|
293
|
+
return ___EmotionJSX(Item, {
|
294
|
+
key: item.key,
|
295
|
+
textValue: item.name,
|
296
|
+
"data-id": item.key
|
297
|
+
}, ___EmotionJSX(MultiselectFilterItem, {
|
298
|
+
text: item.name,
|
299
|
+
icon: item.isDefaultSelected ? CheckIcon : Clear,
|
300
|
+
isDefaultSelected: item.isDefaultSelected,
|
301
|
+
onPress: function onPress() {
|
302
|
+
return changeSelection(item.key);
|
303
|
+
}
|
304
|
+
}));
|
305
|
+
}))));
|
306
|
+
};
|
@@ -61,7 +61,6 @@ var listItem = _objectSpread(_objectSpread({}, base), {}, {
|
|
61
61
|
var listViewItem = _objectSpread(_objectSpread({}, base), {}, {
|
62
62
|
padding: '0px 15px 0px 25px',
|
63
63
|
flex: '1 1 0px',
|
64
|
-
cursor: 'pointer',
|
65
64
|
minHeight: '80px',
|
66
65
|
justifyContent: 'center',
|
67
66
|
bg: 'accent.99',
|
@@ -70,7 +69,8 @@ var listViewItem = _objectSpread(_objectSpread({}, base), {}, {
|
|
70
69
|
bg: 'white'
|
71
70
|
},
|
72
71
|
'&.is-hovered': {
|
73
|
-
bg: 'white'
|
72
|
+
bg: 'white',
|
73
|
+
cursor: 'pointer'
|
74
74
|
},
|
75
75
|
'&.is-focused': {
|
76
76
|
boxShadow: 'inset 0 0 5px #5873bdbf'
|
@@ -1,11 +1,8 @@
|
|
1
1
|
var multiselectListContainer = {
|
2
|
-
height: '40px',
|
3
2
|
overflowX: 'hidden',
|
4
3
|
pr: 'sm',
|
5
4
|
transition: 'right 500ms',
|
6
|
-
'
|
7
|
-
height: '100%'
|
8
|
-
}
|
5
|
+
minHeight: '80vh'
|
9
6
|
};
|
10
7
|
var multiselectListContent = {
|
11
8
|
bg: 'accent.99',
|
@@ -22,7 +19,8 @@ var multiselectListContent = {
|
|
22
19
|
display: 'flex',
|
23
20
|
minHeight: '45px',
|
24
21
|
padding: '3px',
|
25
|
-
width: '100%'
|
22
|
+
width: '100%',
|
23
|
+
justifyContent: 'space-between'
|
26
24
|
}
|
27
25
|
};
|
28
26
|
var multiselectListTitle = {
|
@@ -35,7 +33,7 @@ var multiselectListTitle = {
|
|
35
33
|
padding: '0 10px !important',
|
36
34
|
flexWrap: 'wrap',
|
37
35
|
maxWidth: 'max-content !important',
|
38
|
-
margin: '0
|
36
|
+
margin: '0'
|
39
37
|
};
|
40
38
|
var multiselectListBadge = {
|
41
39
|
borderRadius: '5px',
|