@pingux/astro 1.41.0-alpha.1 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/NOTICE.html +4707 -0
- package/lib/Patterns/AttributeMappingDisplayViewPattern.stories.hidden.js +138 -0
- package/lib/Patterns/AttributeMappingEditViewPattern.stories.hidden.js +145 -0
- package/lib/Patterns/ListAndPanelPattern.stories.hidden.js +381 -0
- package/lib/Patterns/MessagesPattern.stories.hidden.js +69 -0
- package/lib/Patterns/SaveBarPattern.stories.hidden.js +80 -0
- package/lib/Patterns/UnsavedChangesPattern.stories.hidden.js +106 -0
- package/lib/cjs/Patterns/AttributeMappingDisplayViewPattern.stories.hidden.js +158 -0
- package/lib/cjs/Patterns/AttributeMappingEditViewPattern.stories.hidden.js +167 -0
- package/lib/cjs/Patterns/ListAndPanelPattern.stories.hidden.js +418 -0
- package/lib/cjs/Patterns/MessagesPattern.stories.hidden.js +99 -0
- package/lib/cjs/Patterns/SaveBarPattern.stories.hidden.js +109 -0
- package/lib/cjs/Patterns/UnsavedChangesPattern.stories.hidden.js +136 -0
- package/lib/cjs/components/Bracket/Bracket.stories.js +1 -3
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -1
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +2 -18
- package/lib/cjs/components/Card/Card.js +117 -2
- package/lib/cjs/components/Card/Card.stories.js +45 -17
- package/lib/cjs/components/Card/Card.test.js +50 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +13 -1
- package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +75 -4
- package/lib/cjs/components/DataTable/DataTable.js +56 -12
- package/lib/cjs/components/DataTable/DataTable.stories.js +84 -17
- package/lib/cjs/components/DataTable/DataTable.test.js +38 -6
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +1 -1
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +18 -3
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +19 -5
- package/lib/cjs/components/Image/Image.stories.js +2 -2
- package/lib/cjs/components/ListBox/ListBoxSection.js +8 -1
- package/lib/cjs/components/ListView/ListView.stories.js +6 -4
- package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +2 -1
- package/lib/cjs/components/SelectField/SelectField.stories.js +13 -1
- package/lib/cjs/components/SelectField/SelectField.test.js +75 -0
- package/lib/cjs/recipes/ConditionalFilter.stories.js +0 -1
- package/lib/cjs/recipes/ScrollableListView.stories.js +3 -2
- package/lib/cjs/recipes/TrialExperienceIndustryButtons.stories.js +4 -8
- package/lib/cjs/styles/variants/boxes.js +6 -6
- package/lib/cjs/utils/devUtils/constants/text.js +11 -0
- package/lib/components/Bracket/Bracket.stories.js +1 -3
- package/lib/components/Breadcrumbs/Breadcrumbs.js +1 -1
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +0 -13
- package/lib/components/Card/Card.js +110 -2
- package/lib/components/Card/Card.stories.js +35 -10
- package/lib/components/Card/Card.test.js +36 -0
- package/lib/components/ComboBoxField/ComboBoxField.stories.js +13 -1
- package/lib/components/ComboBoxField/ComboBoxField.test.js +70 -5
- package/lib/components/DataTable/DataTable.js +56 -12
- package/lib/components/DataTable/DataTable.stories.js +75 -17
- package/lib/components/DataTable/DataTable.test.js +36 -6
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +1 -1
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +18 -3
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +16 -5
- package/lib/components/Image/Image.stories.js +2 -2
- package/lib/components/ListBox/ListBoxSection.js +7 -2
- package/lib/components/ListView/ListView.stories.js +6 -4
- package/lib/components/OverlayPanel/OverlayPanel.stories.js +2 -1
- package/lib/components/SelectField/SelectField.stories.js +13 -1
- package/lib/components/SelectField/SelectField.test.js +68 -1
- package/lib/recipes/ConditionalFilter.stories.js +0 -1
- package/lib/recipes/ScrollableListView.stories.js +3 -2
- package/lib/recipes/TrialExperienceIndustryButtons.stories.js +4 -8
- package/lib/styles/variants/boxes.js +6 -6
- package/lib/utils/devUtils/constants/text.js +1 -0
- package/package.json +1 -1
@@ -97,10 +97,29 @@ var ROW_HEIGHTS = {
|
|
97
97
|
}
|
98
98
|
};
|
99
99
|
/**
|
100
|
-
*
|
101
|
-
*
|
102
|
-
*
|
103
|
-
*
|
100
|
+
* Inspired by [TableView](https://react-spectrum.adobe.com/react-spectrum/TableView.html)
|
101
|
+
* from React Spectrum and [useTableState](https://react-spectrum.adobe.com/react-stately/useTableState.html)
|
102
|
+
* from React Stately.
|
103
|
+
*
|
104
|
+
* DataTable is a complex collection component that is built from many child elements including
|
105
|
+
* columns, rows and cells. Columns are defined within DataTableHeader element via DataTableColumn
|
106
|
+
* and rows are defined within a DataTableBody element via DataTableRow. Rows contain DataTableCell
|
107
|
+
* elements that correspond to each column.
|
108
|
+
*
|
109
|
+
* [TableHeader](https://react-spectrum.adobe.com/react-aria/useTable.html#:~:text=defined%20using%20the-,TableHeader,-%2C%20Column%2C)
|
110
|
+
* uses the alias DataTableHeader.
|
111
|
+
*
|
112
|
+
* [Column](https://react-spectrum.adobe.com/react-aria/useTable.html#:~:text=the%20TableHeader%2C-,Column,-%2C%20TableBody%2C)
|
113
|
+
* uses the alias DataTableColumn.
|
114
|
+
*
|
115
|
+
* [Cell](https://react-spectrum.adobe.com/react-aria/useTable.html#:~:text=Row%2C%20and-,Cell,-components%2C%20which%20support)
|
116
|
+
* uses the alias DataTableCell.
|
117
|
+
*
|
118
|
+
* [Row](https://react-spectrum.adobe.com/react-aria/useTable.html#:~:text=%2C%20TableBody%2C-,Row,-%2C%20and%20Cell%20components)
|
119
|
+
* uses the alias DataTableCell.
|
120
|
+
*
|
121
|
+
* [TableBody](https://react-spectrum.adobe.com/react-aria/useTable.html#:~:text=%2C%20Column%2C-,TableBody,-%2C%20Row%2C%20and)
|
122
|
+
* uses the alias DataTableBody.
|
104
123
|
*/
|
105
124
|
|
106
125
|
var DataTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
@@ -256,12 +275,30 @@ var DataTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
256
275
|
});
|
257
276
|
DataTable.propTypes = {
|
258
277
|
/**
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
278
|
+
* Sets the amount of vertical padding within each cell.
|
279
|
+
* density: 'compact' | 'regular' | 'spacious'
|
280
|
+
* @default 'regular'
|
281
|
+
*/
|
263
282
|
density: _propTypes["default"].string,
|
264
283
|
|
284
|
+
/** Sets the height of table. */
|
285
|
+
height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
286
|
+
|
287
|
+
/** Determine if the header should be hidden. */
|
288
|
+
hasHiddenHeader: _propTypes["default"].bool,
|
289
|
+
|
290
|
+
/** Bool that determines if the items are sortable. */
|
291
|
+
isSortable: _propTypes["default"].bool,
|
292
|
+
|
293
|
+
/** The list of DataTable items. */
|
294
|
+
items: _propTypes["default"].arrayOf(_propTypes["default"].shape({})),
|
295
|
+
|
296
|
+
/** Reflects current loading state. */
|
297
|
+
loadingState: _propTypes["default"].oneOf(['error', 'filtering', 'idle', 'loading', 'loadingMore', 'sorting']),
|
298
|
+
|
299
|
+
/** Handler that is called when a user performs an action on a row. */
|
300
|
+
onAction: _propTypes["default"].func,
|
301
|
+
|
265
302
|
/**
|
266
303
|
* Sets the overflow behavior for the cell contents.
|
267
304
|
* overflowMode: 'wrap' | 'truncate'
|
@@ -269,10 +306,17 @@ DataTable.propTypes = {
|
|
269
306
|
*/
|
270
307
|
overflowMode: _propTypes["default"].string,
|
271
308
|
|
272
|
-
/**
|
273
|
-
|
274
|
-
|
275
|
-
|
309
|
+
/** Callback function that fires when more data should be loaded on demand as user scrolls. */
|
310
|
+
onLoadMore: _propTypes["default"].func,
|
311
|
+
|
312
|
+
/** Callback function that fires when sortable column header is pressed. */
|
313
|
+
onSortChange: _propTypes["default"].func,
|
314
|
+
|
315
|
+
/** Defines the current column key to sort by and the sort direction. */
|
316
|
+
sortDescriptor: _propTypes["default"].oneOf(['ascending', 'descending']),
|
317
|
+
|
318
|
+
/** Sets the width of table. */
|
319
|
+
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number])
|
276
320
|
};
|
277
321
|
DataTable.defaultProps = {
|
278
322
|
width: '100%',
|
@@ -1,5 +1,19 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
4
|
+
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
|
7
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
8
|
+
|
9
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
10
|
+
|
11
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
12
|
+
|
13
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
14
|
+
|
15
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
16
|
+
|
3
17
|
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
18
|
|
5
19
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
@@ -12,6 +26,10 @@ exports["default"] = exports.Default = exports.CustomContent = void 0;
|
|
12
26
|
|
13
27
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
|
14
28
|
|
29
|
+
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
30
|
+
|
31
|
+
var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
|
32
|
+
|
15
33
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
16
34
|
|
17
35
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
@@ -30,6 +48,8 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/
|
|
30
48
|
|
31
49
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
32
50
|
|
51
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
52
|
+
|
33
53
|
var _react = _interopRequireDefault(require("react"));
|
34
54
|
|
35
55
|
var _data = require("@react-stately/data");
|
@@ -42,10 +62,16 @@ var _faker = require("@faker-js/faker");
|
|
42
62
|
|
43
63
|
var _isChromatic = _interopRequireDefault(require("chromatic/isChromatic"));
|
44
64
|
|
65
|
+
var _ariaAttributes = require("../../utils/devUtils/props/ariaAttributes");
|
66
|
+
|
45
67
|
var _index = require("../../index");
|
46
68
|
|
47
69
|
var _react2 = require("@emotion/react");
|
48
70
|
|
71
|
+
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; }
|
72
|
+
|
73
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context8, _context9; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context8 = ownKeys(Object(source), !0)).call(_context8, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context9 = ownKeys(Object(source))).call(_context9, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
74
|
+
|
49
75
|
var _default = {
|
50
76
|
title: 'Components/DataTable',
|
51
77
|
component: _index.DataTable,
|
@@ -56,34 +82,68 @@ var _default = {
|
|
56
82
|
}
|
57
83
|
}
|
58
84
|
},
|
59
|
-
argTypes: {
|
85
|
+
argTypes: _objectSpread({
|
60
86
|
density: {
|
61
87
|
control: {
|
62
|
-
|
63
|
-
options: ['compact', 'regular', 'spacious']
|
88
|
+
disable: true
|
64
89
|
},
|
65
90
|
defaultValue: 'spacious'
|
66
91
|
},
|
67
92
|
overflowMode: {
|
68
93
|
control: {
|
69
|
-
|
70
|
-
options: ['truncate', 'wrap']
|
94
|
+
disable: true
|
71
95
|
},
|
72
96
|
defaultValue: 'truncate'
|
73
97
|
},
|
74
98
|
width: {
|
75
|
-
|
99
|
+
description: 'Sets the width of the data table.',
|
76
100
|
control: {
|
77
|
-
|
101
|
+
disable: true
|
78
102
|
}
|
79
103
|
},
|
80
104
|
height: {
|
81
|
-
|
105
|
+
description: 'Sets the height of the data table.',
|
106
|
+
control: {
|
107
|
+
disable: true
|
108
|
+
}
|
109
|
+
},
|
110
|
+
sortDescriptor: {
|
111
|
+
description: 'Defines the current column key to sort by and the sort direction.',
|
112
|
+
control: {
|
113
|
+
disable: true
|
114
|
+
}
|
115
|
+
},
|
116
|
+
onSortChange: {
|
117
|
+
description: 'Callback function that fires when sortable column header is pressed.'
|
118
|
+
},
|
119
|
+
allowsSorting: {
|
120
|
+
description: 'Determine if the column supports sorting.',
|
121
|
+
control: {
|
122
|
+
disable: true
|
123
|
+
}
|
124
|
+
},
|
125
|
+
hideHeader: {
|
126
|
+
description: 'Determine if the header should be hidden.',
|
127
|
+
control: {
|
128
|
+
disable: true
|
129
|
+
}
|
130
|
+
},
|
131
|
+
loadingState: {
|
132
|
+
description: 'Reflects current loading state.',
|
82
133
|
control: {
|
83
|
-
|
134
|
+
disable: true
|
84
135
|
}
|
136
|
+
},
|
137
|
+
onLoadMore: {
|
138
|
+
description: 'Callback function that fires when more data should be loaded on demand as user scrolls.'
|
139
|
+
},
|
140
|
+
items: {
|
141
|
+
control: {
|
142
|
+
disable: true
|
143
|
+
},
|
144
|
+
description: 'The list of DataTable items.'
|
85
145
|
}
|
86
|
-
}
|
146
|
+
}, _ariaAttributes.ariaAttributeBaseArgTypes)
|
87
147
|
};
|
88
148
|
exports["default"] = _default;
|
89
149
|
|
@@ -120,7 +180,8 @@ var Default = function Default(args) {
|
|
120
180
|
continent: 'Europe'
|
121
181
|
}];
|
122
182
|
return (0, _react2.jsx)(_index.DataTable, (0, _extends2["default"])({}, args, {
|
123
|
-
"aria-label": "Static table"
|
183
|
+
"aria-label": "Static table",
|
184
|
+
height: "100%"
|
124
185
|
}), (0, _react2.jsx)(_index.DataTableHeader, {
|
125
186
|
columns: columns
|
126
187
|
}, function (column) {
|
@@ -170,12 +231,17 @@ var CustomContent = function CustomContent(args) {
|
|
170
231
|
key: 'menu',
|
171
232
|
isSortable: false
|
172
233
|
}];
|
234
|
+
|
235
|
+
var random = function random(items) {
|
236
|
+
return items[Math.floor(Math.random() * items.length)];
|
237
|
+
};
|
238
|
+
|
173
239
|
var list = (0, _data.useAsyncList)({
|
174
240
|
load: function load(_ref) {
|
175
241
|
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
176
242
|
var _context, _context2, _context3;
|
177
243
|
|
178
|
-
var signal, cursor, res, json,
|
244
|
+
var signal, cursor, res, json, fakeData, tableData;
|
179
245
|
return _regenerator["default"].wrap(function _callee$(_context5) {
|
180
246
|
while (1) {
|
181
247
|
switch (_context5.prev = _context5.next) {
|
@@ -199,11 +265,12 @@ var CustomContent = function CustomContent(args) {
|
|
199
265
|
|
200
266
|
case 7:
|
201
267
|
json = _context5.sent;
|
268
|
+
_context5.next = 10;
|
269
|
+
return new _promise["default"](function (resolve) {
|
270
|
+
return (0, _setTimeout2["default"])(resolve, cursor ? 2000 : 3000);
|
271
|
+
});
|
202
272
|
|
203
|
-
|
204
|
-
return items[Math.floor(Math.random() * items.length)];
|
205
|
-
};
|
206
|
-
|
273
|
+
case 10:
|
207
274
|
fakeData = (0, _map["default"])(_context = (0, _concat["default"])(_context2 = []).call(_context2, (0, _keys["default"])(_context3 = Array(json.results.length)).call(_context3))).call(_context, function (key) {
|
208
275
|
var _context4;
|
209
276
|
|
@@ -233,7 +300,7 @@ var CustomContent = function CustomContent(args) {
|
|
233
300
|
cursor: json.next
|
234
301
|
});
|
235
302
|
|
236
|
-
case
|
303
|
+
case 13:
|
237
304
|
case "end":
|
238
305
|
return _context5.stop();
|
239
306
|
}
|
@@ -936,7 +936,7 @@ describe('Sortable DataTable with useAsyncList', function () {
|
|
936
936
|
var sortableDataTable = function sortableDataTable(_ref16) {
|
937
937
|
var result = _ref16.result;
|
938
938
|
return (0, _react2.render)((0, _react3.jsx)(_DataTable["default"], (0, _extends2["default"])({}, defaultProps, {
|
939
|
-
sortDescriptor: result.current.sortDescriptor,
|
939
|
+
sortDescriptor: result.current.sortDescriptor.direction,
|
940
940
|
onSortChange: (0, _sort2["default"])(result.current)
|
941
941
|
}), (0, _react3.jsx)(_index.DataTableHeader, {
|
942
942
|
columns: columns
|
@@ -1290,16 +1290,48 @@ describe('Sortable DataTable with useAsyncList', function () {
|
|
1290
1290
|
})));
|
1291
1291
|
|
1292
1292
|
case 31:
|
1293
|
-
expect(result.current.items[0].country).toBe('
|
1294
|
-
expect(result.current.items[1].country).toBe('
|
1295
|
-
expect(result.current.items[2].country).toBe('
|
1296
|
-
expect(result.current.items[3].country).toBe('
|
1293
|
+
expect(result.current.items[0].country).toBe('Canada');
|
1294
|
+
expect(result.current.items[1].country).toBe('China');
|
1295
|
+
expect(result.current.items[2].country).toBe('France');
|
1296
|
+
expect(result.current.items[3].country).toBe('USA');
|
1297
|
+
expect(result.current.items[0].continent).toBe('North America');
|
1298
|
+
expect(result.current.items[1].continent).toBe('Asia');
|
1299
|
+
expect(result.current.items[2].continent).toBe('Europe');
|
1300
|
+
expect(result.current.items[3].continent).toBe('North America');
|
1301
|
+
expect(result.current.items[0].population).toBe(37000000);
|
1302
|
+
expect(result.current.items[1].population).toBe(1398000000);
|
1303
|
+
expect(result.current.items[2].population).toBe(67000000);
|
1304
|
+
expect(result.current.items[3].population).toBe(320000000);
|
1297
1305
|
|
1298
|
-
case
|
1306
|
+
case 43:
|
1299
1307
|
case "end":
|
1300
1308
|
return _context34.stop();
|
1301
1309
|
}
|
1302
1310
|
}
|
1303
1311
|
}, _callee30);
|
1304
1312
|
})));
|
1313
|
+
});
|
1314
|
+
describe('Empty DataTable', function () {
|
1315
|
+
var staticDataTable = function staticDataTable() {
|
1316
|
+
return (0, _react2.render)((0, _react3.jsx)(_DataTable["default"], {
|
1317
|
+
"aria-label": "Table"
|
1318
|
+
}, (0, _react3.jsx)(_index.DataTableHeader, {
|
1319
|
+
columns: columns
|
1320
|
+
}, function (column) {
|
1321
|
+
return (0, _react3.jsx)(_index.DataTableColumn, {
|
1322
|
+
align: "center"
|
1323
|
+
}, column.name);
|
1324
|
+
}), (0, _react3.jsx)(_index.DataTableBody, null, [])));
|
1325
|
+
};
|
1326
|
+
|
1327
|
+
it('should display header row only when there are no items', function () {
|
1328
|
+
staticDataTable();
|
1329
|
+
|
1330
|
+
var staticTable = _react2.screen.getByRole('grid');
|
1331
|
+
|
1332
|
+
var tRows = (0, _react2.within)(staticTable).getByRole('row');
|
1333
|
+
expect(staticTable).toBeInTheDocument();
|
1334
|
+
expect(staticTable).toBeVisible();
|
1335
|
+
expect(tRows).toBeInTheDocument();
|
1336
|
+
});
|
1305
1337
|
});
|
@@ -108,6 +108,7 @@ var defaultEnvironments = [{
|
|
108
108
|
}];
|
109
109
|
var environmentsWithSections = [{
|
110
110
|
name: 'Recent',
|
111
|
+
key: 'Recent',
|
111
112
|
options: [{
|
112
113
|
name: 'Default'
|
113
114
|
}, {
|
@@ -117,6 +118,7 @@ var environmentsWithSections = [{
|
|
117
118
|
}]
|
118
119
|
}, {
|
119
120
|
name: 'All',
|
121
|
+
key: 'All',
|
120
122
|
options: [{
|
121
123
|
name: 'Consumer Banking Prod'
|
122
124
|
}, {
|
@@ -133,6 +135,17 @@ var environmentsWithSections = [{
|
|
133
135
|
}, {
|
134
136
|
name: 'Mine'
|
135
137
|
}]
|
138
|
+
}, {
|
139
|
+
name: null,
|
140
|
+
key: 'Other',
|
141
|
+
options: [{
|
142
|
+
name: 'Default'
|
143
|
+
}, {
|
144
|
+
name: 'Auth test',
|
145
|
+
isSandbox: true
|
146
|
+
}, {
|
147
|
+
name: 'Mike’s Workforce'
|
148
|
+
}]
|
136
149
|
}];
|
137
150
|
|
138
151
|
var Default = function Default(args) {
|
@@ -270,12 +283,14 @@ var WithSections = function WithSections() {
|
|
270
283
|
items: environments,
|
271
284
|
name: "Globochem",
|
272
285
|
selectedItem: envNode,
|
273
|
-
onSelectionChange: handleEnvPress
|
286
|
+
onSelectionChange: handleEnvPress,
|
287
|
+
isDefaultOpen: true
|
274
288
|
}, function (_ref3) {
|
275
289
|
var sectionName = _ref3.name,
|
276
|
-
sectionOptions = _ref3.options
|
290
|
+
sectionOptions = _ref3.options,
|
291
|
+
sectionKey = _ref3.key;
|
277
292
|
return (0, _react2.jsx)(_index.Section, {
|
278
|
-
key:
|
293
|
+
key: sectionKey,
|
279
294
|
title: sectionName,
|
280
295
|
items: sectionOptions
|
281
296
|
}, function (_ref4) {
|
@@ -63,6 +63,7 @@ var items = [{
|
|
63
63
|
}];
|
64
64
|
var itemsWithSections = [{
|
65
65
|
name: 'Heading 1',
|
66
|
+
key: 'Heading 1',
|
66
67
|
options: [{
|
67
68
|
name: 'Foo'
|
68
69
|
}, {
|
@@ -72,12 +73,13 @@ var itemsWithSections = [{
|
|
72
73
|
}]
|
73
74
|
}, {
|
74
75
|
name: 'Heading 2',
|
76
|
+
key: 'Heading 2',
|
75
77
|
options: [{
|
76
|
-
name: '
|
78
|
+
name: 'Foo1'
|
77
79
|
}, {
|
78
|
-
name: '
|
80
|
+
name: 'Bar1'
|
79
81
|
}, {
|
80
|
-
name: '
|
82
|
+
name: 'Baz1'
|
81
83
|
}]
|
82
84
|
}];
|
83
85
|
var defaultProps = {
|
@@ -118,7 +120,8 @@ var getSectionsComponent = function getSectionsComponent() {
|
|
118
120
|
return (0, _testWrapper.render)((0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.EnvironmentBreadcrumb, (0, _extends2["default"])({}, defaultWithSectionsProps, props), function (section) {
|
119
121
|
return (// eslint-disable-next-line testing-library/no-node-access
|
120
122
|
(0, _react2.jsx)(_collections.Section, {
|
121
|
-
key: section.
|
123
|
+
key: section.key,
|
124
|
+
name: section.name,
|
122
125
|
title: section.name,
|
123
126
|
items: section.options
|
124
127
|
}, function (item) {
|
@@ -241,6 +244,17 @@ test('should render items with sections passed in props', function () {
|
|
241
244
|
|
242
245
|
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
243
246
|
|
247
|
+
expect(_testWrapper.screen.getAllByRole('group')).toHaveLength(2);
|
248
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
249
|
+
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(6);
|
250
|
+
});
|
251
|
+
test('should render the separators', function () {
|
252
|
+
getSectionsComponent();
|
253
|
+
|
254
|
+
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
|
255
|
+
|
256
|
+
expect(_testWrapper.screen.queryAllByRole('separator')).toHaveLength(3);
|
257
|
+
|
244
258
|
var groups = _testWrapper.screen.getAllByRole('group');
|
245
259
|
|
246
260
|
expect(groups).toHaveLength(2);
|
@@ -409,7 +423,7 @@ test('should hide section title if no search results within it', function () {
|
|
409
423
|
_userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem)); // Search for option exclusive to only one section
|
410
424
|
|
411
425
|
|
412
|
-
_userEvent["default"].type(_testWrapper.screen.getByRole('searchbox'), '
|
426
|
+
_userEvent["default"].type(_testWrapper.screen.getByRole('searchbox'), 'Bar1'); // 'Heading 1' should not be rendered, but 'Heading 2' should be
|
413
427
|
|
414
428
|
|
415
429
|
expect(_testWrapper.screen.queryByText(itemsWithSections[0].name)).not.toBeInTheDocument();
|
@@ -125,7 +125,7 @@ exports.FallbackImage = FallbackImage;
|
|
125
125
|
|
126
126
|
var WithSkeletonLoadSuccess = function WithSkeletonLoadSuccess(_ref2) {
|
127
127
|
var useLocalSrc = _ref2.useLocalSrc;
|
128
|
-
var imageSrc = useLocalSrc ? _images.pingImg : 'https://
|
128
|
+
var imageSrc = useLocalSrc ? _images.pingImg : 'https://app.requestly.io/delay/3000/https://picsum.photos/150/150';
|
129
129
|
return (0, _react2.jsx)(_["default"], {
|
130
130
|
src: imageSrc,
|
131
131
|
sx: {
|
@@ -143,7 +143,7 @@ WithSkeletonLoadSuccess.args = {
|
|
143
143
|
|
144
144
|
var WithSkeletonLoadTimeout = function WithSkeletonLoadTimeout() {
|
145
145
|
return (0, _react2.jsx)(_["default"], {
|
146
|
-
src: "https://
|
146
|
+
src: "https://app.requestly.io/delay/7000/https://picsum.photos/150/150",
|
147
147
|
sx: {
|
148
148
|
width: '150px',
|
149
149
|
height: '150px'
|
@@ -28,8 +28,12 @@ var _i18n = require("@react-aria/i18n");
|
|
28
28
|
|
29
29
|
var _virtualizer = require("@react-aria/virtualizer");
|
30
30
|
|
31
|
+
var _ListBoxContext = require("./ListBoxContext");
|
32
|
+
|
31
33
|
var _Box = _interopRequireDefault(require("../Box"));
|
32
34
|
|
35
|
+
var _Separator = _interopRequireDefault(require("../Separator"));
|
36
|
+
|
33
37
|
var _react2 = require("@emotion/react");
|
34
38
|
|
35
39
|
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); }
|
@@ -58,6 +62,7 @@ var ListBoxSection = function ListBoxSection(props) {
|
|
58
62
|
var _useLocale = (0, _i18n.useLocale)(),
|
59
63
|
direction = _useLocale.direction;
|
60
64
|
|
65
|
+
var state = (0, _react.useContext)(_ListBoxContext.ListBoxContext);
|
61
66
|
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
62
67
|
as: "ul",
|
63
68
|
ref: headerRef,
|
@@ -66,7 +71,9 @@ var ListBoxSection = function ListBoxSection(props) {
|
|
66
71
|
sx: {
|
67
72
|
paddingInlineStart: '0px'
|
68
73
|
}
|
69
|
-
}, groupProps), item.
|
74
|
+
}, groupProps), item.key !== state.collection.getFirstKey() && (0, _react2.jsx)(_Separator["default"], {
|
75
|
+
mt: "0px"
|
76
|
+
}), item.rendered && (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({}, headingProps, {
|
70
77
|
variant: "boxes.listBoxSectionTitle"
|
71
78
|
}), item.rendered)), (0, _react2.jsx)(_Box["default"], {
|
72
79
|
style: (0, _virtualizer.layoutInfoToStyle)(reusableView.layoutInfo, direction)
|
@@ -572,14 +572,15 @@ var ListElement = function ListElement(_ref) {
|
|
572
572
|
}, (0, _react2.jsx)(_Icon["default"], {
|
573
573
|
icon: _FormSelectIcon["default"],
|
574
574
|
mr: "sm",
|
575
|
-
color: "
|
575
|
+
color: "accent.40",
|
576
576
|
size: "md"
|
577
577
|
}), (0, _react2.jsx)(_Text["default"], {
|
578
578
|
variant: "itemTitle",
|
579
579
|
alignSelf: "center"
|
580
580
|
}, item.name)), (0, _react2.jsx)(_Box["default"], {
|
581
581
|
isRow: true,
|
582
|
-
alignSelf: "center"
|
582
|
+
alignSelf: "center",
|
583
|
+
gap: "sm"
|
583
584
|
}, (0, _react2.jsx)(_IconButton["default"], {
|
584
585
|
"aria-label": "create-icon"
|
585
586
|
}, (0, _react2.jsx)(_Icon["default"], {
|
@@ -611,14 +612,15 @@ var Default = function Default(_ref2) {
|
|
611
612
|
}, (0, _react2.jsx)(_Icon["default"], {
|
612
613
|
icon: _FormSelectIcon["default"],
|
613
614
|
mr: "sm",
|
614
|
-
color: "
|
615
|
+
color: "accent.40",
|
615
616
|
size: "md"
|
616
617
|
}), (0, _react2.jsx)(_Text["default"], {
|
617
618
|
variant: "itemTitle",
|
618
619
|
alignSelf: "center"
|
619
620
|
}, item.name)), (0, _react2.jsx)(_Box["default"], {
|
620
621
|
isRow: true,
|
621
|
-
alignSelf: "center"
|
622
|
+
alignSelf: "center",
|
623
|
+
gap: "sm"
|
622
624
|
}, (0, _react2.jsx)(_IconButton["default"], {
|
623
625
|
"aria-label": "create-icon"
|
624
626
|
}, (0, _react2.jsx)(_Icon["default"], {
|
@@ -207,7 +207,8 @@ var InnerPanel = function InnerPanel(_ref2) {
|
|
207
207
|
}, "Open Panel"), outer), messagesOpen && (0, _react2.jsx)(_index.Messages, {
|
208
208
|
sx: {
|
209
209
|
zIndex: 11
|
210
|
-
}
|
210
|
+
},
|
211
|
+
onClose: toggleMessagesOpen
|
211
212
|
}, (0, _react2.jsx)(_collections.Item, {
|
212
213
|
key: "message2",
|
213
214
|
status: "success"
|
@@ -122,6 +122,7 @@ var animals = [{
|
|
122
122
|
}];
|
123
123
|
var withSection = [{
|
124
124
|
name: 'Animals',
|
125
|
+
key: 'Animals',
|
125
126
|
children: [{
|
126
127
|
name: 'Aardvark'
|
127
128
|
}, {
|
@@ -131,6 +132,7 @@ var withSection = [{
|
|
131
132
|
}]
|
132
133
|
}, {
|
133
134
|
name: 'People',
|
135
|
+
key: 'People',
|
134
136
|
children: [{
|
135
137
|
name: 'Michael'
|
136
138
|
}, {
|
@@ -138,6 +140,16 @@ var withSection = [{
|
|
138
140
|
}, {
|
139
141
|
name: 'Creed'
|
140
142
|
}]
|
143
|
+
}, {
|
144
|
+
name: null,
|
145
|
+
key: 'Fruit',
|
146
|
+
children: [{
|
147
|
+
name: 'Apple'
|
148
|
+
}, {
|
149
|
+
name: 'Strawberry'
|
150
|
+
}, {
|
151
|
+
name: 'Blueberry'
|
152
|
+
}]
|
141
153
|
}];
|
142
154
|
var _default = {
|
143
155
|
title: 'Form/SelectField',
|
@@ -221,7 +233,7 @@ var WithSections = function WithSections(args) {
|
|
221
233
|
items: withSection
|
222
234
|
}, args), function (section) {
|
223
235
|
return (0, _react2.jsx)(_2.Section, {
|
224
|
-
key: section.
|
236
|
+
key: section.key,
|
225
237
|
items: section.children,
|
226
238
|
title: section.name
|
227
239
|
}, function (item) {
|