@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
@@ -30,6 +30,8 @@ exports["default"] = void 0;
|
|
30
30
|
|
31
31
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
32
32
|
|
33
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
34
|
+
|
33
35
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
34
36
|
|
35
37
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
@@ -46,8 +48,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
46
48
|
|
47
49
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
48
50
|
|
51
|
+
var _utils = require("@react-aria/utils");
|
52
|
+
|
49
53
|
var _uuid = require("uuid");
|
50
54
|
|
55
|
+
var _label = require("@react-aria/label");
|
56
|
+
|
51
57
|
var _Box = _interopRequireDefault(require("../Box"));
|
52
58
|
|
53
59
|
var _Button = _interopRequireDefault(require("../Button"));
|
@@ -56,13 +62,15 @@ var _FieldHelperText = _interopRequireDefault(require("../FieldHelperText"));
|
|
56
62
|
|
57
63
|
var _Text = _interopRequireDefault(require("../Text"));
|
58
64
|
|
65
|
+
var _Label = _interopRequireDefault(require("../Label"));
|
66
|
+
|
59
67
|
var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
|
60
68
|
|
61
69
|
var _isValidPositiveInt = _interopRequireDefault(require("../../utils/devUtils/props/isValidPositiveInt"));
|
62
70
|
|
63
71
|
var _react2 = require("@emotion/react");
|
64
72
|
|
65
|
-
var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "maxSize", "maxSizeText"],
|
73
|
+
var _excluded = ["addButtonLabel", "defaultValue", "value", "label", "helperText", "status", "onAdd", "onChange", "onDelete", "renderField", "labelProps", "maxSize", "maxSizeText"],
|
66
74
|
_excluded2 = ["id", "onComponentRender", "fieldValue"];
|
67
75
|
|
68
76
|
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); }
|
@@ -73,22 +81,23 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
|
|
73
81
|
|
74
82
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
75
83
|
|
76
|
-
var ArrayField = function ArrayField(
|
84
|
+
var ArrayField = function ArrayField(props) {
|
77
85
|
var _context2;
|
78
86
|
|
79
|
-
var addButtonLabel =
|
80
|
-
defaultValue =
|
81
|
-
value =
|
82
|
-
label =
|
83
|
-
helperText =
|
84
|
-
status =
|
85
|
-
onAdd =
|
86
|
-
onChange =
|
87
|
-
onDelete =
|
88
|
-
renderField =
|
89
|
-
|
90
|
-
|
91
|
-
|
87
|
+
var addButtonLabel = props.addButtonLabel,
|
88
|
+
defaultValue = props.defaultValue,
|
89
|
+
value = props.value,
|
90
|
+
label = props.label,
|
91
|
+
helperText = props.helperText,
|
92
|
+
status = props.status,
|
93
|
+
onAdd = props.onAdd,
|
94
|
+
onChange = props.onChange,
|
95
|
+
onDelete = props.onDelete,
|
96
|
+
renderField = props.renderField,
|
97
|
+
labelProps = props.labelProps,
|
98
|
+
maxSize = props.maxSize,
|
99
|
+
maxSizeText = props.maxSizeText,
|
100
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
92
101
|
var isControlled = value !== undefined;
|
93
102
|
var createEmptyField = (0, _react.useCallback)(function () {
|
94
103
|
return {
|
@@ -133,8 +142,8 @@ var ArrayField = function ArrayField(_ref) {
|
|
133
142
|
onDelete(fieldId);
|
134
143
|
} else {
|
135
144
|
setFieldValues(function (oldValues) {
|
136
|
-
return (0, _filter["default"])(oldValues).call(oldValues, function (
|
137
|
-
var id =
|
145
|
+
return (0, _filter["default"])(oldValues).call(oldValues, function (_ref) {
|
146
|
+
var id = _ref.id;
|
138
147
|
return id !== fieldId;
|
139
148
|
});
|
140
149
|
});
|
@@ -151,17 +160,21 @@ var ArrayField = function ArrayField(_ref) {
|
|
151
160
|
return (0, _concat["default"])(_context = []).call(_context, oldValues, [createEmptyField()]);
|
152
161
|
});
|
153
162
|
}, [createEmptyField, onAdd]);
|
163
|
+
|
164
|
+
var _useLabel = (0, _label.useLabel)(_objectSpread({}, props)),
|
165
|
+
raLabelProps = _useLabel.labelProps;
|
166
|
+
|
154
167
|
var isLimitReached = !!maxSize && (value || fieldValues).length >= maxSize;
|
155
|
-
return (0, _react2.jsx)(_Box["default"], others, (0, _react2.jsx)(
|
156
|
-
|
157
|
-
}
|
168
|
+
return (0, _react2.jsx)(_Box["default"], others, (0, _react2.jsx)(_Label["default"], (0, _extends2["default"])({}, raLabelProps, (0, _utils.mergeProps)(labelProps, raLabelProps, {
|
169
|
+
children: label
|
170
|
+
}))), (0, _react2.jsx)(_Box["default"], {
|
158
171
|
as: "ul",
|
159
172
|
pl: "0"
|
160
|
-
}, (0, _map["default"])(_context2 = value || fieldValues).call(_context2, function (
|
161
|
-
var id =
|
162
|
-
onComponentRender =
|
163
|
-
fieldValue =
|
164
|
-
otherFieldProps = (0, _objectWithoutProperties2["default"])(
|
173
|
+
}, (0, _map["default"])(_context2 = value || fieldValues).call(_context2, function (_ref2) {
|
174
|
+
var id = _ref2.id,
|
175
|
+
onComponentRender = _ref2.onComponentRender,
|
176
|
+
fieldValue = _ref2.fieldValue,
|
177
|
+
otherFieldProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
|
165
178
|
var isDisabled = (value || fieldValues).length === 1;
|
166
179
|
return (0, _react2.jsx)(_Box["default"], {
|
167
180
|
as: "li",
|
@@ -204,6 +217,9 @@ ArrayField.propTypes = {
|
|
204
217
|
/** The rendered label for the field. */
|
205
218
|
label: _propTypes["default"].node,
|
206
219
|
|
220
|
+
/** Props object that is spread directly into the label element. */
|
221
|
+
labelProps: _propTypes["default"].shape({}),
|
222
|
+
|
207
223
|
/** Text to display before add button. Useful for errors or other info. */
|
208
224
|
helperText: _propTypes["default"].node,
|
209
225
|
|
@@ -84,6 +84,15 @@ var Uncontrolled = function Uncontrolled(_ref) {
|
|
84
84
|
var args = (0, _extends2["default"])({}, _ref);
|
85
85
|
return (0, _react2.jsx)(_index.ArrayField, (0, _extends2["default"])({
|
86
86
|
defaultValue: defaultData,
|
87
|
+
labelProps: {
|
88
|
+
hintText: 'Example Hint',
|
89
|
+
isRequired: true,
|
90
|
+
helpHintProps: {
|
91
|
+
tooltipProps: {
|
92
|
+
direction: 'top'
|
93
|
+
}
|
94
|
+
}
|
95
|
+
},
|
87
96
|
renderField: function renderField(id, fieldValue, onFieldValueChange, onFieldDelete, isDisabled, otherFieldProps) {
|
88
97
|
return (0, _react2.jsx)(_index.TextField, (0, _extends2["default"])({
|
89
98
|
"aria-label": "Text field",
|
@@ -36,7 +36,9 @@ var defaultProps = {
|
|
36
36
|
|
37
37
|
var getComponent = function getComponent() {
|
38
38
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
39
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], (0, _extends2["default"])({
|
39
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], (0, _extends2["default"])({
|
40
|
+
label: "test-label"
|
41
|
+
}, defaultProps, props)));
|
40
42
|
};
|
41
43
|
|
42
44
|
var renderField = function renderField(id, value, onFieldValueChange, onFieldDelete, otherFieldProps) {
|
@@ -194,6 +196,7 @@ test('onComponentRender displays fields correctly', function () {
|
|
194
196
|
}
|
195
197
|
}];
|
196
198
|
(0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], {
|
199
|
+
label: "test-label",
|
197
200
|
defaultValue: componentRenderData,
|
198
201
|
onChange: onChange
|
199
202
|
}));
|
@@ -202,6 +205,7 @@ test('onComponentRender displays fields correctly', function () {
|
|
202
205
|
});
|
203
206
|
test('creates empty field when no data passed', function () {
|
204
207
|
(0, _testWrapper.render)((0, _react2.jsx)(_ArrayField["default"], {
|
208
|
+
label: "test-label",
|
205
209
|
renderField: renderField
|
206
210
|
}));
|
207
211
|
expect(_testWrapper.screen.getByLabelText('Text field')).toBeInTheDocument();
|
@@ -32,7 +32,7 @@ var _isIterable = require("../../utils/devUtils/props/isIterable");
|
|
32
32
|
|
33
33
|
var _hooks = require("../../hooks");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _CollapsiblePanelBadge = _interopRequireDefault(require("../CollapsiblePanelContainer/CollapsiblePanelBadge"));
|
36
36
|
|
37
37
|
var _index = require("../../index");
|
38
38
|
|
@@ -45,10 +45,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
|
|
45
45
|
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; }
|
46
46
|
|
47
47
|
/**
|
48
|
-
* The
|
48
|
+
* The CollapsiblePanel serves as a filter menu with a menu title
|
49
49
|
* and selected count displayed in a badge.
|
50
50
|
*/
|
51
|
-
var
|
51
|
+
var CollapsiblePanel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
52
52
|
var selectedFilterCount = props.selectedFilterCount,
|
53
53
|
className = props.className,
|
54
54
|
closeAriaLabel = props.closeAriaLabel,
|
@@ -78,7 +78,7 @@ var MultiselectFilter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
78
78
|
}),
|
79
79
|
classNames = _useStatusClasses.classNames;
|
80
80
|
|
81
|
-
return (0, _react2.jsx)(_index.
|
81
|
+
return (0, _react2.jsx)(_index.CollapsiblePanelContainer, {
|
82
82
|
closeAriaLabel: closeAriaLabel,
|
83
83
|
isDefaultOpen: isDefaultOpen,
|
84
84
|
isOpen: isOpen,
|
@@ -87,16 +87,16 @@ var MultiselectFilter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
87
87
|
selectedFilterCount: selectedFilterCount
|
88
88
|
}, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
89
89
|
className: classNames,
|
90
|
-
"data-testid": "
|
90
|
+
"data-testid": "collapsible-panel",
|
91
91
|
ref: ref,
|
92
92
|
tabIndex: 0,
|
93
|
-
variant: "
|
93
|
+
variant: "collapsiblePanel.collapsiblePanelContent"
|
94
94
|
}, mergedProps, others), (0, _react2.jsx)(_index.Box, {
|
95
95
|
isRow: true,
|
96
|
-
variant: "
|
96
|
+
variant: "collapsiblePanel.collapsiblePanelContainerTitle"
|
97
97
|
}, (0, _react2.jsx)(_index.Text, {
|
98
|
-
variant: "
|
99
|
-
}, listTitle), selectedFilterCount && (0, _react2.jsx)(
|
98
|
+
variant: "collapsiblePanelTitle"
|
99
|
+
}, listTitle), selectedFilterCount && (0, _react2.jsx)(_CollapsiblePanelBadge["default"], {
|
100
100
|
margin: "0",
|
101
101
|
selectedFilterCount: selectedFilterCount
|
102
102
|
})), (0, _react2.jsx)(_index.Box, {
|
@@ -112,7 +112,7 @@ var MultiselectFilter = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
112
112
|
pl: "md"
|
113
113
|
}, children))));
|
114
114
|
});
|
115
|
-
|
115
|
+
CollapsiblePanel.propTypes = {
|
116
116
|
/** Amount of selected items indicator. */
|
117
117
|
selectedFilterCount: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
118
118
|
|
@@ -145,9 +145,9 @@ MultiselectFilter.propTypes = {
|
|
145
145
|
/** Defines a string value that labels the trigger icon when menu is closed. */
|
146
146
|
openAriaLabel: _propTypes["default"].string
|
147
147
|
};
|
148
|
-
|
148
|
+
CollapsiblePanel.defaultProps = {
|
149
149
|
isDefaultOpen: true
|
150
150
|
};
|
151
|
-
|
152
|
-
var _default =
|
151
|
+
CollapsiblePanel.displayName = 'CollapsiblePanel';
|
152
|
+
var _default = CollapsiblePanel;
|
153
153
|
exports["default"] = _default;
|
@@ -14,7 +14,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
14
14
|
value: true
|
15
15
|
});
|
16
16
|
|
17
|
-
exports["default"] = exports.
|
17
|
+
exports["default"] = exports.Default = exports.CollapsiblePanelWithBadge = void 0;
|
18
18
|
|
19
19
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
20
20
|
|
@@ -32,7 +32,7 @@ var _SearchIcon = _interopRequireDefault(require("mdi-react/SearchIcon"));
|
|
32
32
|
|
33
33
|
var _AccountIcon = _interopRequireDefault(require("mdi-react/AccountIcon"));
|
34
34
|
|
35
|
-
var
|
35
|
+
var _CollapsiblePanel = _interopRequireDefault(require("./CollapsiblePanel"));
|
36
36
|
|
37
37
|
var _hooks = require("../../hooks");
|
38
38
|
|
@@ -45,8 +45,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
|
|
45
45
|
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; }
|
46
46
|
|
47
47
|
var _default = {
|
48
|
-
title: '
|
49
|
-
component:
|
48
|
+
title: 'CollapsiblePanel',
|
49
|
+
component: _CollapsiblePanel["default"],
|
50
50
|
argTypes: {
|
51
51
|
listTitle: {
|
52
52
|
defaultValue: 'Selected Groups'
|
@@ -152,12 +152,12 @@ var changeSelection = function changeSelection(selected) {
|
|
152
152
|
};
|
153
153
|
|
154
154
|
var Default = function Default(args) {
|
155
|
-
return (0, _react2.jsx)(
|
155
|
+
return (0, _react2.jsx)(_CollapsiblePanel["default"], args);
|
156
156
|
};
|
157
157
|
|
158
158
|
exports.Default = Default;
|
159
159
|
|
160
|
-
var
|
160
|
+
var CollapsiblePanelWithBadge = function CollapsiblePanelWithBadge(args) {
|
161
161
|
var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
|
162
162
|
state = _useOverlayPanelState.state,
|
163
163
|
onClose = _useOverlayPanelState.onClose;
|
@@ -272,7 +272,7 @@ var MultiselectWithBadge = function MultiselectWithBadge(args) {
|
|
272
272
|
})), (0, _react2.jsx)(_index.Text, {
|
273
273
|
variant: "listSubtitle"
|
274
274
|
}, item.subtitle))));
|
275
|
-
})), (0, _react2.jsx)(
|
275
|
+
})), (0, _react2.jsx)(_CollapsiblePanel["default"], (0, _extends2["default"])({
|
276
276
|
items: mockData,
|
277
277
|
onSelectionChange: changeSelection,
|
278
278
|
selectedFilterCount: "1000+"
|
@@ -281,11 +281,11 @@ var MultiselectWithBadge = function MultiselectWithBadge(args) {
|
|
281
281
|
key: item.key,
|
282
282
|
textValue: item.name,
|
283
283
|
"data-id": item.key
|
284
|
-
}, (0, _react2.jsx)(_index.
|
284
|
+
}, (0, _react2.jsx)(_index.CollapsiblePanelItem, {
|
285
285
|
text: item.name,
|
286
286
|
icon: _FilterIcon["default"]
|
287
287
|
}));
|
288
288
|
})))));
|
289
289
|
};
|
290
290
|
|
291
|
-
exports.
|
291
|
+
exports.CollapsiblePanelWithBadge = CollapsiblePanelWithBadge;
|
@@ -10,11 +10,11 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
|
10
10
|
|
11
11
|
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
12
12
|
|
13
|
-
var
|
13
|
+
var _CollapsiblePanel = _interopRequireDefault(require("./CollapsiblePanel"));
|
14
14
|
|
15
15
|
var _react2 = require("@emotion/react");
|
16
16
|
|
17
|
-
var testId = '
|
17
|
+
var testId = 'collapsible-panel-item';
|
18
18
|
var onSelectionChange = jest.fn();
|
19
19
|
var defaultProps = {
|
20
20
|
'data-testid': testId,
|
@@ -29,7 +29,7 @@ var defaultProps = {
|
|
29
29
|
|
30
30
|
var getComponent = function getComponent() {
|
31
31
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
32
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(
|
32
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_CollapsiblePanel["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
33
33
|
};
|
34
34
|
|
35
35
|
beforeAll(function () {
|
@@ -65,19 +65,19 @@ afterAll(function () {
|
|
65
65
|
}
|
66
66
|
}
|
67
67
|
});
|
68
|
-
test('default
|
68
|
+
test('default CollapsiblePanel', function () {
|
69
69
|
getComponent();
|
70
70
|
|
71
|
-
var
|
71
|
+
var collapsiblePanel = _testWrapper.screen.getByTestId(testId);
|
72
72
|
|
73
|
-
expect(
|
73
|
+
expect(collapsiblePanel).toBeInTheDocument();
|
74
74
|
});
|
75
75
|
test('custom classname can be passed', function () {
|
76
76
|
getComponent({
|
77
77
|
className: 'testing-class'
|
78
78
|
});
|
79
79
|
|
80
|
-
var
|
80
|
+
var collapsiblePanel = _testWrapper.screen.getByTestId(testId);
|
81
81
|
|
82
|
-
expect(
|
82
|
+
expect(collapsiblePanel).toHaveClass('testing-class');
|
83
83
|
});
|
@@ -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 _CollapsiblePanel["default"];
|
15
15
|
}
|
16
16
|
});
|
17
17
|
|
18
|
-
var
|
18
|
+
var _CollapsiblePanel = _interopRequireDefault(require("./CollapsiblePanel"));
|
@@ -25,9 +25,9 @@ var _react2 = require("@emotion/react");
|
|
25
25
|
var _excluded = ["selectedFilterCount"];
|
26
26
|
|
27
27
|
/**
|
28
|
-
* The
|
28
|
+
* The CollapsiblePanelBadge serves as a badge to display selected count.
|
29
29
|
*/
|
30
|
-
var
|
30
|
+
var CollapsiblePanelBadge = function CollapsiblePanelBadge(props) {
|
31
31
|
var selectedFilterCount = props.selectedFilterCount,
|
32
32
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
33
33
|
return (0, _react2.jsx)(_Chip["default"], (0, _extends2["default"])({
|
@@ -35,15 +35,15 @@ var MultiselectBadge = function MultiselectBadge(props) {
|
|
35
35
|
bg: "neutral.90",
|
36
36
|
label: selectedFilterCount.toString(),
|
37
37
|
textColor: "neutral.30",
|
38
|
-
variant: "
|
38
|
+
variant: "collapsiblePanel.collapsiblePanelBadge",
|
39
39
|
isUppercase: true
|
40
40
|
}, others));
|
41
41
|
};
|
42
42
|
|
43
|
-
|
43
|
+
CollapsiblePanelBadge.propTypes = {
|
44
44
|
selectedFilterCount: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
45
45
|
margin: _propTypes["default"].string
|
46
46
|
};
|
47
|
-
|
48
|
-
var _default =
|
47
|
+
CollapsiblePanelBadge.displayName = 'CollapsiblePanelBadge';
|
48
|
+
var _default = CollapsiblePanelBadge;
|
49
49
|
exports["default"] = _default;
|
@@ -10,11 +10,11 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
|
10
10
|
|
11
11
|
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
12
12
|
|
13
|
-
var
|
13
|
+
var _CollapsiblePanelBadge = _interopRequireDefault(require("./CollapsiblePanelBadge"));
|
14
14
|
|
15
15
|
var _react2 = require("@emotion/react");
|
16
16
|
|
17
|
-
var testId = 'test-
|
17
|
+
var testId = 'test-collapsiblePanelBadge';
|
18
18
|
var defaultProps = {
|
19
19
|
'data-testid': testId,
|
20
20
|
selectedFilterCount: 9
|
@@ -22,7 +22,7 @@ var defaultProps = {
|
|
22
22
|
|
23
23
|
var getComponent = function getComponent() {
|
24
24
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
25
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(
|
25
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_CollapsiblePanelBadge["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
26
26
|
};
|
27
27
|
|
28
28
|
afterEach(function () {
|
@@ -30,19 +30,19 @@ afterEach(function () {
|
|
30
30
|
}); // Need to be added to each test file to test accessibility using axe.
|
31
31
|
|
32
32
|
(0, _testAxe["default"])(getComponent);
|
33
|
-
test('default
|
33
|
+
test('default CollapsiblePanelBadge', function () {
|
34
34
|
getComponent();
|
35
35
|
|
36
|
-
var
|
36
|
+
var collapsiblePanelBadge = _testWrapper.screen.getByTestId(testId);
|
37
37
|
|
38
|
-
expect(
|
38
|
+
expect(collapsiblePanelBadge).toBeInTheDocument();
|
39
39
|
});
|
40
40
|
test('custom classname can be passed', function () {
|
41
41
|
getComponent({
|
42
42
|
className: 'testing-class'
|
43
43
|
});
|
44
44
|
|
45
|
-
var
|
45
|
+
var collapsiblePanelBadge = _testWrapper.screen.getByTestId(testId);
|
46
46
|
|
47
|
-
expect(
|
47
|
+
expect(collapsiblePanelBadge).toHaveClass('testing-class');
|
48
48
|
});
|
@@ -44,7 +44,7 @@ var _ChevronLeftIcon = _interopRequireDefault(require("mdi-react/ChevronLeftIcon
|
|
44
44
|
|
45
45
|
var _overlays = require("@react-stately/overlays");
|
46
46
|
|
47
|
-
var
|
47
|
+
var _CollapsiblePanelBadge = _interopRequireDefault(require("./CollapsiblePanelBadge"));
|
48
48
|
|
49
49
|
var _index = require("../../index");
|
50
50
|
|
@@ -63,10 +63,10 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
|
|
63
63
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
64
64
|
|
65
65
|
/**
|
66
|
-
* The
|
66
|
+
* The CollapsiblePanelContainer serves as a wrapper around a list and its associated trigger,
|
67
67
|
* linking the list's open state with the trigger's press state and providing necessary context.
|
68
68
|
*/
|
69
|
-
var
|
69
|
+
var CollapsiblePanelContainer = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
70
70
|
var selectedFilterCount = props.selectedFilterCount,
|
71
71
|
className = props.className,
|
72
72
|
children = props.children,
|
@@ -109,28 +109,28 @@ var MultiselectListContainer = /*#__PURE__*/(0, _react.forwardRef)(function (pro
|
|
109
109
|
className: classNames,
|
110
110
|
onKeyUp: handleClose,
|
111
111
|
ref: ref,
|
112
|
-
variant: "
|
112
|
+
variant: "collapsiblePanel.collapsiblePanelContainer",
|
113
113
|
isRow: true
|
114
114
|
}, others), (0, _react2.jsx)(_index.IconButton, {
|
115
115
|
isRow: true,
|
116
116
|
"aria-label": state.isOpen ? closeAriaLabel : openAriaLabel,
|
117
|
-
"data-testid": "
|
117
|
+
"data-testid": "collapsible-panel-button",
|
118
118
|
onPress: handleButtonPress,
|
119
119
|
ref: triggerRef,
|
120
|
-
variant: "
|
120
|
+
variant: "collapsiblePanelToggle",
|
121
121
|
pr: "sm"
|
122
122
|
}, (0, _react2.jsx)(_index.Icon, {
|
123
123
|
color: "active",
|
124
124
|
icon: state.isOpen ? _ChevronRightIcon["default"] : _ChevronLeftIcon["default"],
|
125
125
|
role: "button",
|
126
126
|
size: "30px"
|
127
|
-
}), !state.isOpen && selectedFilterCount && (0, _react2.jsx)(
|
128
|
-
"data-testid": "
|
127
|
+
}), !state.isOpen && selectedFilterCount && (0, _react2.jsx)(_CollapsiblePanelBadge["default"], {
|
128
|
+
"data-testid": "collapsible-panel-badge",
|
129
129
|
margin: "auto",
|
130
130
|
selectedFilterCount: selectedFilterCount
|
131
131
|
})), state.isOpen && _objectSpread({}, children));
|
132
132
|
});
|
133
|
-
|
133
|
+
CollapsiblePanelContainer.propTypes = {
|
134
134
|
/** Amount of selected items indicator. */
|
135
135
|
selectedFilterCount: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
136
136
|
|
@@ -154,10 +154,10 @@ MultiselectListContainer.propTypes = {
|
|
154
154
|
/** Defines a string value that labels the trigger icon when menu is closed. */
|
155
155
|
openAriaLabel: _propTypes["default"].string
|
156
156
|
};
|
157
|
-
|
157
|
+
CollapsiblePanelContainer.defaultProps = {
|
158
158
|
openAriaLabel: 'Open filter menu?',
|
159
159
|
closeAriaLabel: 'Close filter menu?'
|
160
160
|
};
|
161
|
-
|
162
|
-
var _default =
|
161
|
+
CollapsiblePanelContainer.displayName = 'CollapsiblePanelContainer';
|
162
|
+
var _default = CollapsiblePanelContainer;
|
163
163
|
exports["default"] = _default;
|
@@ -12,22 +12,22 @@ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
|
12
12
|
|
13
13
|
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
14
14
|
|
15
|
-
var
|
15
|
+
var _CollapsiblePanelContainer = _interopRequireDefault(require("./CollapsiblePanelContainer"));
|
16
16
|
|
17
17
|
var _react2 = require("@emotion/react");
|
18
18
|
|
19
|
-
var testId = 'test-
|
20
|
-
var
|
21
|
-
var
|
22
|
-
var
|
19
|
+
var testId = 'test-collapsiblePanelContainer';
|
20
|
+
var collapsiblePanelBadgeId = 'collapsible-panel-badge';
|
21
|
+
var collapsiblePanelButtonId = 'collapsible-panel-button';
|
22
|
+
var collapsiblePanelId = 'collapsible-panel';
|
23
23
|
var defaultProps = {
|
24
24
|
'data-testid': testId
|
25
25
|
};
|
26
26
|
|
27
27
|
var getComponent = function getComponent() {
|
28
28
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
29
|
-
return (0, _testWrapper.render)((0, _react2.jsx)(
|
30
|
-
"data-testid":
|
29
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_CollapsiblePanelContainer["default"], (0, _extends2["default"])({}, defaultProps, props), (0, _react2.jsx)("div", {
|
30
|
+
"data-testid": collapsiblePanelId
|
31
31
|
})));
|
32
32
|
};
|
33
33
|
|
@@ -36,21 +36,21 @@ afterEach(function () {
|
|
36
36
|
}); // Need to be added to each test file to test accessibility using axe.
|
37
37
|
|
38
38
|
(0, _testAxe["default"])(getComponent);
|
39
|
-
test('default
|
39
|
+
test('default CollapsiblePanelContainer', function () {
|
40
40
|
getComponent();
|
41
41
|
|
42
|
-
var
|
42
|
+
var collapsiblePanelContainer = _testWrapper.screen.getByTestId(testId);
|
43
43
|
|
44
|
-
expect(
|
44
|
+
expect(collapsiblePanelContainer).toBeInTheDocument();
|
45
45
|
});
|
46
46
|
test('custom classname can be passed', function () {
|
47
47
|
getComponent({
|
48
48
|
className: 'testing-class'
|
49
49
|
});
|
50
50
|
|
51
|
-
var
|
51
|
+
var collapsiblePanelContainer = _testWrapper.screen.getByTestId(testId);
|
52
52
|
|
53
|
-
expect(
|
53
|
+
expect(collapsiblePanelContainer).toHaveClass('testing-class');
|
54
54
|
});
|
55
55
|
test('shows badge when container is closed', function () {
|
56
56
|
getComponent({
|
@@ -60,7 +60,7 @@ test('shows badge when container is closed', function () {
|
|
60
60
|
}
|
61
61
|
});
|
62
62
|
|
63
|
-
var badge = _testWrapper.screen.getByTestId(
|
63
|
+
var badge = _testWrapper.screen.getByTestId(collapsiblePanelBadgeId);
|
64
64
|
|
65
65
|
expect(badge).toBeInTheDocument();
|
66
66
|
});
|
@@ -72,41 +72,41 @@ test('updates aria label when button is clicked', function () {
|
|
72
72
|
state: state
|
73
73
|
});
|
74
74
|
|
75
|
-
var button = _testWrapper.screen.getByTestId(
|
75
|
+
var button = _testWrapper.screen.getByTestId(collapsiblePanelButtonId);
|
76
76
|
|
77
77
|
_userEvent["default"].click(button);
|
78
78
|
|
79
|
-
var
|
79
|
+
var collapsiblePanel = _testWrapper.screen.queryByTestId(collapsiblePanelId);
|
80
80
|
|
81
81
|
expect(button).toHaveAttribute('aria-label', 'Close filter menu?');
|
82
|
-
expect(
|
82
|
+
expect(collapsiblePanel).toBeInTheDocument();
|
83
83
|
|
84
84
|
_userEvent["default"].click(button);
|
85
85
|
|
86
86
|
expect(button).toHaveAttribute('aria-label', 'Open filter menu?');
|
87
|
-
expect(
|
87
|
+
expect(collapsiblePanel).not.toBeInTheDocument();
|
88
88
|
});
|
89
89
|
test('shows children when isOpen is true', function () {
|
90
90
|
getComponent({
|
91
91
|
isOpen: true
|
92
92
|
});
|
93
93
|
|
94
|
-
var
|
94
|
+
var collapsiblePanel = _testWrapper.screen.getByTestId(collapsiblePanelId);
|
95
95
|
|
96
|
-
expect(
|
96
|
+
expect(collapsiblePanel).toBeInTheDocument();
|
97
97
|
});
|
98
98
|
test('should hide children when pressing the escape key', function () {
|
99
99
|
getComponent();
|
100
100
|
|
101
|
-
var button = _testWrapper.screen.getByTestId(
|
101
|
+
var button = _testWrapper.screen.getByTestId(collapsiblePanelButtonId);
|
102
102
|
|
103
103
|
_userEvent["default"].click(button);
|
104
104
|
|
105
|
-
var
|
105
|
+
var collapsiblePanel = _testWrapper.screen.queryByTestId(collapsiblePanelId);
|
106
106
|
|
107
|
-
expect(
|
107
|
+
expect(collapsiblePanel).toBeInTheDocument();
|
108
108
|
|
109
109
|
_userEvent["default"].type(button, '{esc}');
|
110
110
|
|
111
|
-
expect(
|
111
|
+
expect(collapsiblePanel).not.toBeInTheDocument();
|
112
112
|
});
|