@pingux/astro 1.10.0 → 1.10.1-alpha.2
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/ArrayField/ArrayField.js +41 -25
- package/lib/cjs/components/ArrayField/ArrayField.stories.js +9 -0
- package/lib/cjs/components/ArrayField/ArrayField.test.js +5 -1
- package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.js → CollapsiblePanel/CollapsiblePanel.js} +13 -13
- package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.stories.js → CollapsiblePanel/CollapsiblePanel.stories.js} +9 -9
- package/lib/cjs/components/{MultiselectFilter/MultiselectFilter.test.js → CollapsiblePanel/CollapsiblePanel.test.js} +8 -8
- package/lib/cjs/components/{MultiselectFilter → CollapsiblePanel}/index.js +2 -2
- package/lib/cjs/components/{MultiselectListContainer/MultiselectBadge.js → CollapsiblePanelContainer/CollapsiblePanelBadge.js} +6 -6
- package/lib/cjs/components/{MultiselectListContainer/MultiselectBadge.test.js → CollapsiblePanelContainer/CollapsiblePanelBadge.test.js} +8 -8
- package/lib/cjs/components/{MultiselectListContainer/MultiselectListContainer.js → CollapsiblePanelContainer/CollapsiblePanelContainer.js} +12 -12
- package/lib/cjs/components/{MultiselectListContainer/MultiselectListContainer.test.js → CollapsiblePanelContainer/CollapsiblePanelContainer.test.js} +23 -23
- package/lib/cjs/components/{MultiselectListContainer → CollapsiblePanelContainer}/index.js +2 -2
- package/lib/cjs/components/{MultiselectFilterItem/MultiselectFilterItem.js → CollapsiblePanelItem/CollapsiblePanelItem.js} +7 -7
- package/lib/cjs/components/{MultiselectFilterItem/MultiselectFilterItem.test.js → CollapsiblePanelItem/CollapsiblePanelItem.test.js} +7 -7
- package/lib/cjs/components/{MultiselectFilterItem → CollapsiblePanelItem}/index.js +2 -2
- package/lib/cjs/components/ComboBoxField/ComboBoxField.js +15 -1
- package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +22 -0
- package/lib/cjs/index.js +36 -36
- package/lib/cjs/recipes/{MultiselectListContainer.stories.js → CollapsiblePanel.stories.js} +3 -3
- package/lib/cjs/styles/variants/buttons.js +2 -2
- package/lib/cjs/styles/variants/{multiselectListContainer.js → collapsiblePanel.js} +10 -10
- package/lib/cjs/styles/variants/text.js +4 -4
- package/lib/cjs/styles/variants/variants.js +2 -2
- package/lib/components/ArrayField/ArrayField.js +37 -25
- package/lib/components/ArrayField/ArrayField.stories.js +9 -0
- package/lib/components/ArrayField/ArrayField.test.js +5 -1
- package/lib/components/{MultiselectFilter/MultiselectFilter.js → CollapsiblePanel/CollapsiblePanel.js} +14 -14
- package/lib/components/{MultiselectFilter/MultiselectFilter.stories.js → CollapsiblePanel/CollapsiblePanel.stories.js} +8 -8
- package/lib/components/{MultiselectFilter/MultiselectFilter.test.js → CollapsiblePanel/CollapsiblePanel.test.js} +8 -8
- package/lib/components/CollapsiblePanel/index.js +1 -0
- package/lib/components/{MultiselectListContainer/MultiselectBadge.js → CollapsiblePanelContainer/CollapsiblePanelBadge.js} +6 -6
- package/lib/components/{MultiselectListContainer/MultiselectBadge.test.js → CollapsiblePanelContainer/CollapsiblePanelBadge.test.js} +8 -8
- package/lib/components/{MultiselectListContainer/MultiselectListContainer.js → CollapsiblePanelContainer/CollapsiblePanelContainer.js} +12 -12
- package/lib/components/{MultiselectListContainer/MultiselectListContainer.test.js → CollapsiblePanelContainer/CollapsiblePanelContainer.test.js} +23 -23
- package/lib/components/CollapsiblePanelContainer/index.js +1 -0
- package/lib/components/{MultiselectFilterItem/MultiselectFilterItem.js → CollapsiblePanelItem/CollapsiblePanelItem.js} +7 -7
- package/lib/components/{MultiselectFilterItem/MultiselectFilterItem.test.js → CollapsiblePanelItem/CollapsiblePanelItem.test.js} +7 -7
- package/lib/components/CollapsiblePanelItem/index.js +1 -0
- package/lib/components/ComboBoxField/ComboBoxField.js +15 -1
- package/lib/components/ComboBoxField/ComboBoxField.test.js +14 -0
- package/lib/index.js +6 -6
- package/lib/recipes/{MultiselectListContainer.stories.js → CollapsiblePanel.stories.js} +4 -4
- package/lib/styles/variants/buttons.js +2 -2
- package/lib/styles/variants/{multiselectListContainer.js → collapsiblePanel.js} +10 -10
- package/lib/styles/variants/text.js +4 -4
- package/lib/styles/variants/variants.js +2 -2
- package/package.json +1 -1
- package/lib/components/MultiselectFilter/index.js +0 -1
- package/lib/components/MultiselectFilterItem/index.js +0 -1
- package/lib/components/MultiselectListContainer/index.js +0 -1
@@ -11,8 +11,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
11
11
|
_Object$defineProperty(exports, "default", {
|
12
12
|
enumerable: true,
|
13
13
|
get: function get() {
|
14
|
-
return
|
14
|
+
return _CollapsiblePanelContainer["default"];
|
15
15
|
}
|
16
16
|
});
|
17
17
|
|
18
|
-
var
|
18
|
+
var _CollapsiblePanelContainer = _interopRequireDefault(require("./CollapsiblePanelContainer"));
|
@@ -28,23 +28,23 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
|
|
28
28
|
|
29
29
|
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; }
|
30
30
|
|
31
|
-
var
|
31
|
+
var CollapsiblePanelItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
32
32
|
var text = props.text,
|
33
33
|
icon = props.icon,
|
34
34
|
isDefaultSelected = props.isDefaultSelected,
|
35
35
|
onPress = props.onPress;
|
36
36
|
var iconElement = icon && (0, _react2.jsx)(_index.Icon, {
|
37
|
-
"data-testid": "
|
37
|
+
"data-testid": "collapsible-panel-data-icon",
|
38
38
|
icon: icon,
|
39
39
|
color: isDefaultSelected ? 'neutral.10' : 'active',
|
40
40
|
size: 13
|
41
41
|
});
|
42
42
|
return (0, _react2.jsx)(_index.Box, {
|
43
|
-
"data-testid": "
|
43
|
+
"data-testid": "collapsible-panel-item",
|
44
44
|
isRow: true,
|
45
45
|
ref: ref
|
46
46
|
}, (0, _react2.jsx)(_index.Text, {
|
47
|
-
variant: "
|
47
|
+
variant: "collapsiblePanellItem"
|
48
48
|
}, text), iconElement && (isDefaultSelected ? iconElement : (0, _react2.jsx)(_index.IconButton, {
|
49
49
|
sx: {
|
50
50
|
width: 13,
|
@@ -57,7 +57,7 @@ var MultiselectFilterItem = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
57
57
|
onPress: onPress
|
58
58
|
}, iconElement)));
|
59
59
|
});
|
60
|
-
|
60
|
+
CollapsiblePanelItem.propTypes = {
|
61
61
|
/**
|
62
62
|
* Display text.
|
63
63
|
*/
|
@@ -79,6 +79,6 @@ MultiselectFilterItem.propTypes = {
|
|
79
79
|
*/
|
80
80
|
onPress: _propTypes["default"].func
|
81
81
|
};
|
82
|
-
|
83
|
-
var _default =
|
82
|
+
CollapsiblePanelItem.displayName = 'CollapsiblePanelItem';
|
83
|
+
var _default = CollapsiblePanelItem;
|
84
84
|
exports["default"] = _default;
|
@@ -12,19 +12,19 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
|
12
12
|
|
13
13
|
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _CollapsiblePanelItem = _interopRequireDefault(require("./CollapsiblePanelItem"));
|
16
16
|
|
17
17
|
var _react2 = require("@emotion/react");
|
18
18
|
|
19
|
-
var testId = '
|
20
|
-
var iconId = '
|
19
|
+
var testId = 'collapsible-panel-item';
|
20
|
+
var iconId = 'collapsible-panel-data-icon';
|
21
21
|
var defaultProps = {
|
22
22
|
text: 'Item name'
|
23
23
|
};
|
24
24
|
|
25
25
|
var getComponent = function getComponent() {
|
26
26
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
27
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(
|
27
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_CollapsiblePanelItem["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
28
28
|
};
|
29
29
|
|
30
30
|
afterEach(function () {
|
@@ -32,15 +32,15 @@ afterEach(function () {
|
|
32
32
|
}); // Need to be added to each test file to test accessibility using axe.
|
33
33
|
|
34
34
|
(0, _testAxe["default"])(getComponent);
|
35
|
-
test('default
|
35
|
+
test('default collapsiblePanel', function () {
|
36
36
|
getComponent();
|
37
37
|
|
38
|
-
var
|
38
|
+
var collapsiblePanelItem = _testWrapper.screen.getByTestId(testId);
|
39
39
|
|
40
40
|
var icon = _testWrapper.screen.queryByTestId(iconId);
|
41
41
|
|
42
42
|
expect(icon).not.toBeInTheDocument();
|
43
|
-
expect(
|
43
|
+
expect(collapsiblePanelItem).toBeInTheDocument();
|
44
44
|
});
|
45
45
|
test('icon button displays when icon prop is present', function () {
|
46
46
|
getComponent({
|
@@ -11,8 +11,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
11
11
|
_Object$defineProperty(exports, "default", {
|
12
12
|
enumerable: true,
|
13
13
|
get: function get() {
|
14
|
-
return
|
14
|
+
return _CollapsiblePanelItem["default"];
|
15
15
|
}
|
16
16
|
});
|
17
17
|
|
18
|
-
var
|
18
|
+
var _CollapsiblePanelItem = _interopRequireDefault(require("./CollapsiblePanelItem"));
|
@@ -121,6 +121,7 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
121
121
|
isNotFlippable = props.isNotFlippable,
|
122
122
|
direction = props.direction,
|
123
123
|
scrollBoxProps = props.scrollBoxProps,
|
124
|
+
controlProps = props.controlProps,
|
124
125
|
defaultFilter = props.defaultFilter;
|
125
126
|
var comboBoxOptions = {
|
126
127
|
children: children,
|
@@ -238,6 +239,11 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
238
239
|
});
|
239
240
|
(0, _utils.useLayoutEffect)(onResize, [onResize]);
|
240
241
|
|
242
|
+
var handleInputOpen = function handleInputOpen(e) {
|
243
|
+
if (!state.isOpen && menuTrigger === 'focus') buttonRef.current.click();
|
244
|
+
if (controlProps !== null && controlProps !== void 0 && controlProps.onClick) controlProps.onClick(e);
|
245
|
+
};
|
246
|
+
|
241
247
|
var style = _objectSpread(_objectSpread({}, overlayProps.style), {}, {
|
242
248
|
width: menuWidth,
|
243
249
|
minWidth: menuWidth
|
@@ -266,7 +272,10 @@ var ComboBoxField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
266
272
|
labelProps: labelProps,
|
267
273
|
inputRef: inputRef,
|
268
274
|
triggerProps: buttonProps,
|
269
|
-
triggerRef: buttonRef
|
275
|
+
triggerRef: buttonRef,
|
276
|
+
controlProps: _objectSpread(_objectSpread({}, controlProps), {}, {
|
277
|
+
onClick: handleInputOpen
|
278
|
+
})
|
270
279
|
})), (0, _react2.jsx)(_PopoverContainer["default"], {
|
271
280
|
isOpen: state.isOpen,
|
272
281
|
ref: popoverRef,
|
@@ -414,6 +423,11 @@ ComboBoxField.propTypes = {
|
|
414
423
|
/** @ignore */
|
415
424
|
scrollBoxProps: _propTypes["default"].shape({
|
416
425
|
maxHeight: _propTypes["default"].string
|
426
|
+
}),
|
427
|
+
|
428
|
+
/** Props object that is spread directly into the ComboBoxInput element. */
|
429
|
+
controlProps: _propTypes["default"].shape({
|
430
|
+
onClick: _propTypes["default"].func
|
417
431
|
})
|
418
432
|
};
|
419
433
|
ComboBoxField.defaultProps = {
|
@@ -300,6 +300,28 @@ test('should open list on focus when menuTrigger is set to use focus', function
|
|
300
300
|
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
301
301
|
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(items.length);
|
302
302
|
});
|
303
|
+
test('should open list on focus on click after selection when menuTrigger is set to use focus', function () {
|
304
|
+
getComponent({
|
305
|
+
menuTrigger: 'focus'
|
306
|
+
});
|
307
|
+
|
308
|
+
var input = _testWrapper.screen.getByRole('combobox');
|
309
|
+
|
310
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
311
|
+
|
312
|
+
_userEvent["default"].click(input);
|
313
|
+
|
314
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
315
|
+
|
316
|
+
_userEvent["default"].click(_testWrapper.screen.queryAllByRole('option')[0]);
|
317
|
+
|
318
|
+
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
319
|
+
expect(input).toHaveFocus();
|
320
|
+
|
321
|
+
_userEvent["default"].click(input);
|
322
|
+
|
323
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
324
|
+
});
|
303
325
|
test('Item accepts a data-id and the data-id can be found in the DOM', function () {
|
304
326
|
getComponent();
|
305
327
|
|
package/lib/cjs/index.js
CHANGED
@@ -60,9 +60,9 @@ var _exportNames = {
|
|
60
60
|
Menu: true,
|
61
61
|
Messages: true,
|
62
62
|
Modal: true,
|
63
|
-
|
64
|
-
|
65
|
-
|
63
|
+
CollapsiblePanel: true,
|
64
|
+
CollapsiblePanelItem: true,
|
65
|
+
CollapsiblePanelContainer: true,
|
66
66
|
NavBar: true,
|
67
67
|
NavBarSection: true,
|
68
68
|
MultivaluesField: true,
|
@@ -210,6 +210,27 @@ _Object$defineProperty(exports, "CodeView", {
|
|
210
210
|
}
|
211
211
|
});
|
212
212
|
|
213
|
+
_Object$defineProperty(exports, "CollapsiblePanel", {
|
214
|
+
enumerable: true,
|
215
|
+
get: function get() {
|
216
|
+
return _CollapsiblePanel["default"];
|
217
|
+
}
|
218
|
+
});
|
219
|
+
|
220
|
+
_Object$defineProperty(exports, "CollapsiblePanelContainer", {
|
221
|
+
enumerable: true,
|
222
|
+
get: function get() {
|
223
|
+
return _CollapsiblePanelContainer["default"];
|
224
|
+
}
|
225
|
+
});
|
226
|
+
|
227
|
+
_Object$defineProperty(exports, "CollapsiblePanelItem", {
|
228
|
+
enumerable: true,
|
229
|
+
get: function get() {
|
230
|
+
return _CollapsiblePanelItem["default"];
|
231
|
+
}
|
232
|
+
});
|
233
|
+
|
213
234
|
_Object$defineProperty(exports, "ColorField", {
|
214
235
|
enumerable: true,
|
215
236
|
get: function get() {
|
@@ -378,27 +399,6 @@ _Object$defineProperty(exports, "Modal", {
|
|
378
399
|
}
|
379
400
|
});
|
380
401
|
|
381
|
-
_Object$defineProperty(exports, "MultiselectFilter", {
|
382
|
-
enumerable: true,
|
383
|
-
get: function get() {
|
384
|
-
return _MultiselectFilter["default"];
|
385
|
-
}
|
386
|
-
});
|
387
|
-
|
388
|
-
_Object$defineProperty(exports, "MultiselectFilterItem", {
|
389
|
-
enumerable: true,
|
390
|
-
get: function get() {
|
391
|
-
return _MultiselectFilterItem["default"];
|
392
|
-
}
|
393
|
-
});
|
394
|
-
|
395
|
-
_Object$defineProperty(exports, "MultiselectListContainer", {
|
396
|
-
enumerable: true,
|
397
|
-
get: function get() {
|
398
|
-
return _MultiselectListContainer["default"];
|
399
|
-
}
|
400
|
-
});
|
401
|
-
|
402
402
|
_Object$defineProperty(exports, "MultivaluesField", {
|
403
403
|
enumerable: true,
|
404
404
|
get: function get() {
|
@@ -1173,47 +1173,47 @@ _forEachInstanceProperty(_context32 = _Object$keys(_Modal)).call(_context32, fun
|
|
1173
1173
|
});
|
1174
1174
|
});
|
1175
1175
|
|
1176
|
-
var
|
1176
|
+
var _CollapsiblePanel = _interopRequireWildcard(require("./components/CollapsiblePanel"));
|
1177
1177
|
|
1178
|
-
_forEachInstanceProperty(_context33 = _Object$keys(
|
1178
|
+
_forEachInstanceProperty(_context33 = _Object$keys(_CollapsiblePanel)).call(_context33, function (key) {
|
1179
1179
|
if (key === "default" || key === "__esModule") return;
|
1180
1180
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
1181
|
-
if (key in exports && exports[key] ===
|
1181
|
+
if (key in exports && exports[key] === _CollapsiblePanel[key]) return;
|
1182
1182
|
|
1183
1183
|
_Object$defineProperty(exports, key, {
|
1184
1184
|
enumerable: true,
|
1185
1185
|
get: function get() {
|
1186
|
-
return
|
1186
|
+
return _CollapsiblePanel[key];
|
1187
1187
|
}
|
1188
1188
|
});
|
1189
1189
|
});
|
1190
1190
|
|
1191
|
-
var
|
1191
|
+
var _CollapsiblePanelItem = _interopRequireWildcard(require("./components/CollapsiblePanelItem"));
|
1192
1192
|
|
1193
|
-
_forEachInstanceProperty(_context34 = _Object$keys(
|
1193
|
+
_forEachInstanceProperty(_context34 = _Object$keys(_CollapsiblePanelItem)).call(_context34, function (key) {
|
1194
1194
|
if (key === "default" || key === "__esModule") return;
|
1195
1195
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
1196
|
-
if (key in exports && exports[key] ===
|
1196
|
+
if (key in exports && exports[key] === _CollapsiblePanelItem[key]) return;
|
1197
1197
|
|
1198
1198
|
_Object$defineProperty(exports, key, {
|
1199
1199
|
enumerable: true,
|
1200
1200
|
get: function get() {
|
1201
|
-
return
|
1201
|
+
return _CollapsiblePanelItem[key];
|
1202
1202
|
}
|
1203
1203
|
});
|
1204
1204
|
});
|
1205
1205
|
|
1206
|
-
var
|
1206
|
+
var _CollapsiblePanelContainer = _interopRequireWildcard(require("./components/CollapsiblePanelContainer"));
|
1207
1207
|
|
1208
|
-
_forEachInstanceProperty(_context35 = _Object$keys(
|
1208
|
+
_forEachInstanceProperty(_context35 = _Object$keys(_CollapsiblePanelContainer)).call(_context35, function (key) {
|
1209
1209
|
if (key === "default" || key === "__esModule") return;
|
1210
1210
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
1211
|
-
if (key in exports && exports[key] ===
|
1211
|
+
if (key in exports && exports[key] === _CollapsiblePanelContainer[key]) return;
|
1212
1212
|
|
1213
1213
|
_Object$defineProperty(exports, key, {
|
1214
1214
|
enumerable: true,
|
1215
1215
|
get: function get() {
|
1216
|
-
return
|
1216
|
+
return _CollapsiblePanelContainer[key];
|
1217
1217
|
}
|
1218
1218
|
});
|
1219
1219
|
});
|
@@ -69,7 +69,7 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
|
|
69
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
70
|
|
71
71
|
var _default = {
|
72
|
-
title: 'Recipes/
|
72
|
+
title: 'Recipes/CollapsiblePanel with List'
|
73
73
|
};
|
74
74
|
exports["default"] = _default;
|
75
75
|
var data = [{
|
@@ -327,7 +327,7 @@ var Default = function Default() {
|
|
327
327
|
return el.key === item.key;
|
328
328
|
})
|
329
329
|
}));
|
330
|
-
})), (0, _react2.jsx)(_.
|
330
|
+
})), (0, _react2.jsx)(_.CollapsiblePanel, {
|
331
331
|
items: selectedItems,
|
332
332
|
selectedFilterCount: selectedItems.length.toString(),
|
333
333
|
listTitle: "Selected Groups",
|
@@ -338,7 +338,7 @@ var Default = function Default() {
|
|
338
338
|
key: item.key,
|
339
339
|
textValue: item.name,
|
340
340
|
"data-id": item.key
|
341
|
-
}, (0, _react2.jsx)(_.
|
341
|
+
}, (0, _react2.jsx)(_.CollapsiblePanelItem, {
|
342
342
|
text: item.name,
|
343
343
|
icon: item.isDefaultSelected ? _CheckIcon["default"] : _CloseIcon["default"],
|
344
344
|
isDefaultSelected: item.isDefaultSelected,
|
@@ -146,7 +146,7 @@ var modalCloseButton = _objectSpread(_objectSpread({}, iconButton), {}, {
|
|
146
146
|
right: 10
|
147
147
|
});
|
148
148
|
|
149
|
-
var
|
149
|
+
var collapsiblePanelToggle = _objectSpread(_objectSpread({}, square), {}, {
|
150
150
|
bg: 'accent.99',
|
151
151
|
height: '40px',
|
152
152
|
minWidth: 'max-content',
|
@@ -720,7 +720,7 @@ var _default = {
|
|
720
720
|
tooltipInline: tooltipInline,
|
721
721
|
colorBlock: colorBlock,
|
722
722
|
menuTab: menuTab,
|
723
|
-
|
723
|
+
collapsiblePanelToggle: collapsiblePanelToggle,
|
724
724
|
neutralText: neutralText
|
725
725
|
};
|
726
726
|
exports["default"] = _default;
|
@@ -7,13 +7,13 @@ _Object$defineProperty(exports, "__esModule", {
|
|
7
7
|
});
|
8
8
|
|
9
9
|
exports["default"] = void 0;
|
10
|
-
var
|
10
|
+
var collapsiblePanelContainer = {
|
11
11
|
overflowX: 'hidden',
|
12
12
|
pr: 'sm',
|
13
13
|
transition: 'right 500ms',
|
14
14
|
minHeight: '80vh'
|
15
15
|
};
|
16
|
-
var
|
16
|
+
var collapsiblePanelContent = {
|
17
17
|
bg: 'accent.99',
|
18
18
|
fontSize: 'sm',
|
19
19
|
height: '100%',
|
@@ -32,7 +32,7 @@ var multiselectListContent = {
|
|
32
32
|
justifyContent: 'space-between'
|
33
33
|
}
|
34
34
|
};
|
35
|
-
var
|
35
|
+
var collapsiblePanelContainerTitle = {
|
36
36
|
alignContent: 'center',
|
37
37
|
bg: 'accent.99',
|
38
38
|
display: 'flex',
|
@@ -44,7 +44,7 @@ var multiselectListTitle = {
|
|
44
44
|
maxWidth: 'max-content !important',
|
45
45
|
margin: '0'
|
46
46
|
};
|
47
|
-
var
|
47
|
+
var collapsiblePanelBadge = {
|
48
48
|
borderRadius: '5px',
|
49
49
|
display: 'flex',
|
50
50
|
height: '17px',
|
@@ -57,15 +57,15 @@ var multiselectListBadge = {
|
|
57
57
|
alignItems: 'center',
|
58
58
|
fontWeight: 500
|
59
59
|
};
|
60
|
-
var
|
60
|
+
var collapsiblePanellItem = {
|
61
61
|
minHeight: '45px',
|
62
62
|
margin: 'auto'
|
63
63
|
};
|
64
64
|
var _default = {
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
collapsiblePanelContainer: collapsiblePanelContainer,
|
66
|
+
collapsiblePanelContent: collapsiblePanelContent,
|
67
|
+
collapsiblePanelContainerTitle: collapsiblePanelContainerTitle,
|
68
|
+
collapsiblePanelBadge: collapsiblePanelBadge,
|
69
|
+
collapsiblePanellItem: collapsiblePanellItem
|
70
70
|
};
|
71
71
|
exports["default"] = _default;
|
@@ -187,7 +187,7 @@ var navBarHeaderText = _objectSpread(_objectSpread({}, wordWrap), {}, {
|
|
187
187
|
maxWidth: '150px'
|
188
188
|
});
|
189
189
|
|
190
|
-
var
|
190
|
+
var collapsiblePanellItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
|
191
191
|
color: 'neutral.30',
|
192
192
|
fontSize: 'sm',
|
193
193
|
fontWeight: 500,
|
@@ -197,7 +197,7 @@ var multiselectFilterItem = _objectSpread(_objectSpread({}, wordWrap), {}, {
|
|
197
197
|
whiteSpace: 'nowrap'
|
198
198
|
});
|
199
199
|
|
200
|
-
var
|
200
|
+
var collapsiblePanelTitle = _objectSpread(_objectSpread({}, wordWrap), {}, {
|
201
201
|
fontSize: 'sm',
|
202
202
|
fontWeight: 500,
|
203
203
|
color: 'text.secondary',
|
@@ -324,8 +324,8 @@ var text = {
|
|
324
324
|
}),
|
325
325
|
maskedValue: maskedValue,
|
326
326
|
expandableRow: expandableRow,
|
327
|
-
|
328
|
-
|
327
|
+
collapsiblePanellItem: collapsiblePanellItem,
|
328
|
+
collapsiblePanelTitle: collapsiblePanelTitle,
|
329
329
|
navBarHeaderText: navBarHeaderText,
|
330
330
|
navBarSubtitle: navBarSubtitle,
|
331
331
|
placeholder: {
|
@@ -74,7 +74,7 @@ var tabs = _interopRequireWildcard(require("./tabs"));
|
|
74
74
|
|
75
75
|
var _tooltip = _interopRequireDefault(require("./tooltip"));
|
76
76
|
|
77
|
-
var
|
77
|
+
var _collapsiblePanel = _interopRequireDefault(require("./collapsiblePanel"));
|
78
78
|
|
79
79
|
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); }
|
80
80
|
|
@@ -97,7 +97,7 @@ var _default = _objectSpread(_objectSpread({
|
|
97
97
|
menuItem: _menuItem["default"],
|
98
98
|
messages: _messages["default"],
|
99
99
|
modal: _modal["default"],
|
100
|
-
|
100
|
+
collapsiblePanel: _collapsiblePanel["default"],
|
101
101
|
navBar: _navBar["default"],
|
102
102
|
numberField: _numberField["default"],
|
103
103
|
overlayPanel: _overlayPanel["default"],
|
@@ -6,13 +6,14 @@ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-sta
|
|
6
6
|
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
7
7
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
8
8
|
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
9
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
9
10
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
10
11
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
11
12
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
12
13
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
13
14
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
14
15
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
15
|
-
var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "maxSize", "maxSizeText"],
|
16
|
+
var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "labelProps", "maxSize", "maxSizeText"],
|
16
17
|
_excluded2 = ["id", "onComponentRender", "fieldValue"];
|
17
18
|
|
18
19
|
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; }
|
@@ -21,31 +22,35 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
21
22
|
|
22
23
|
import React, { useCallback, useState } from 'react';
|
23
24
|
import PropTypes from 'prop-types';
|
25
|
+
import { mergeProps } from '@react-aria/utils';
|
24
26
|
import { v4 as uuid } from 'uuid';
|
27
|
+
import { useLabel } from '@react-aria/label';
|
25
28
|
import Box from '../Box';
|
26
29
|
import Button from '../Button';
|
27
30
|
import FieldHelperText from '../FieldHelperText';
|
28
31
|
import Text from '../Text';
|
32
|
+
import Label from '../Label';
|
29
33
|
import statuses from '../../utils/devUtils/constants/statuses';
|
30
34
|
import isValidPositiveInt from '../../utils/devUtils/props/isValidPositiveInt';
|
31
35
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
32
36
|
|
33
|
-
var ArrayField = function ArrayField(
|
37
|
+
var ArrayField = function ArrayField(props) {
|
34
38
|
var _context2;
|
35
39
|
|
36
|
-
var addButtonLabel =
|
37
|
-
defaultValue =
|
38
|
-
value =
|
39
|
-
label =
|
40
|
-
helperText =
|
41
|
-
status =
|
42
|
-
onAdd =
|
43
|
-
onChange =
|
44
|
-
onDelete =
|
45
|
-
renderField =
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
var addButtonLabel = props.addButtonLabel,
|
41
|
+
defaultValue = props.defaultValue,
|
42
|
+
value = props.value,
|
43
|
+
label = props.label,
|
44
|
+
helperText = props.helperText,
|
45
|
+
status = props.status,
|
46
|
+
onAdd = props.onAdd,
|
47
|
+
onChange = props.onChange,
|
48
|
+
onDelete = props.onDelete,
|
49
|
+
renderField = props.renderField,
|
50
|
+
labelProps = props.labelProps,
|
51
|
+
maxSize = props.maxSize,
|
52
|
+
maxSizeText = props.maxSizeText,
|
53
|
+
others = _objectWithoutProperties(props, _excluded);
|
49
54
|
|
50
55
|
var isControlled = value !== undefined;
|
51
56
|
var createEmptyField = useCallback(function () {
|
@@ -91,8 +96,8 @@ var ArrayField = function ArrayField(_ref) {
|
|
91
96
|
onDelete(fieldId);
|
92
97
|
} else {
|
93
98
|
setFieldValues(function (oldValues) {
|
94
|
-
return _filterInstanceProperty(oldValues).call(oldValues, function (
|
95
|
-
var id =
|
99
|
+
return _filterInstanceProperty(oldValues).call(oldValues, function (_ref) {
|
100
|
+
var id = _ref.id;
|
96
101
|
return id !== fieldId;
|
97
102
|
});
|
98
103
|
});
|
@@ -109,17 +114,21 @@ var ArrayField = function ArrayField(_ref) {
|
|
109
114
|
return _concatInstanceProperty(_context = []).call(_context, oldValues, [createEmptyField()]);
|
110
115
|
});
|
111
116
|
}, [createEmptyField, onAdd]);
|
117
|
+
|
118
|
+
var _useLabel = useLabel(_objectSpread({}, props)),
|
119
|
+
raLabelProps = _useLabel.labelProps;
|
120
|
+
|
112
121
|
var isLimitReached = !!maxSize && (value || fieldValues).length >= maxSize;
|
113
|
-
return ___EmotionJSX(Box, others, ___EmotionJSX(
|
114
|
-
|
115
|
-
}
|
122
|
+
return ___EmotionJSX(Box, others, ___EmotionJSX(Label, _extends({}, raLabelProps, mergeProps(labelProps, raLabelProps, {
|
123
|
+
children: label
|
124
|
+
}))), ___EmotionJSX(Box, {
|
116
125
|
as: "ul",
|
117
126
|
pl: "0"
|
118
|
-
}, _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (
|
119
|
-
var id =
|
120
|
-
onComponentRender =
|
121
|
-
fieldValue =
|
122
|
-
otherFieldProps = _objectWithoutProperties(
|
127
|
+
}, _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (_ref2) {
|
128
|
+
var id = _ref2.id,
|
129
|
+
onComponentRender = _ref2.onComponentRender,
|
130
|
+
fieldValue = _ref2.fieldValue,
|
131
|
+
otherFieldProps = _objectWithoutProperties(_ref2, _excluded2);
|
123
132
|
|
124
133
|
var isDisabled = (value || fieldValues).length === 1;
|
125
134
|
return ___EmotionJSX(Box, {
|
@@ -163,6 +172,9 @@ ArrayField.propTypes = {
|
|
163
172
|
/** The rendered label for the field. */
|
164
173
|
label: PropTypes.node,
|
165
174
|
|
175
|
+
/** Props object that is spread directly into the label element. */
|
176
|
+
labelProps: PropTypes.shape({}),
|
177
|
+
|
166
178
|
/** Text to display before add button. Useful for errors or other info. */
|
167
179
|
helperText: PropTypes.node,
|
168
180
|
|
@@ -62,6 +62,15 @@ export var Uncontrolled = function Uncontrolled(_ref) {
|
|
62
62
|
|
63
63
|
return ___EmotionJSX(ArrayField, _extends({
|
64
64
|
defaultValue: defaultData,
|
65
|
+
labelProps: {
|
66
|
+
hintText: 'Example Hint',
|
67
|
+
isRequired: true,
|
68
|
+
helpHintProps: {
|
69
|
+
tooltipProps: {
|
70
|
+
direction: 'top'
|
71
|
+
}
|
72
|
+
}
|
73
|
+
},
|
65
74
|
renderField: function renderField(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
66
75
|
return ___EmotionJSX(TextField, _extends({
|
67
76
|
"aria-label": "Text field",
|
@@ -25,7 +25,9 @@ var defaultProps = {
|
|
25
25
|
|
26
26
|
var getComponent = function getComponent() {
|
27
27
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
28
|
-
return render(___EmotionJSX(ArrayField, _extends({
|
28
|
+
return render(___EmotionJSX(ArrayField, _extends({
|
29
|
+
label: "test-label"
|
30
|
+
}, defaultProps, props)));
|
29
31
|
};
|
30
32
|
|
31
33
|
var renderField = function renderField(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
|
@@ -171,6 +173,7 @@ test('onComponentRender displays fields correctly', function () {
|
|
171
173
|
}
|
172
174
|
}];
|
173
175
|
render(___EmotionJSX(ArrayField, {
|
176
|
+
label: "test-label",
|
174
177
|
defaultValue: componentRenderData,
|
175
178
|
onChange: onChange
|
176
179
|
}));
|
@@ -179,6 +182,7 @@ test('onComponentRender displays fields correctly', function () {
|
|
179
182
|
});
|
180
183
|
test('creates empty field when no data passed', function () {
|
181
184
|
render(___EmotionJSX(ArrayField, {
|
185
|
+
label: "test-label",
|
182
186
|
renderField: renderField
|
183
187
|
}));
|
184
188
|
expect(screen.getByLabelText('Text field')).toBeInTheDocument();
|