@pingux/astro 1.41.0-alpha.0 → 1.41.0-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/CHANGELOG.md +13 -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/CheckboxField/CheckboxField.js +6 -1
- 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/ListView/ListView.test.js +39 -1
- 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/CheckboxField/CheckboxField.js +5 -1
- 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/ListView/ListView.test.js +35 -1
- 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
@@ -82,6 +82,37 @@ var items = [{
|
|
82
82
|
name: 'Snake',
|
83
83
|
id: '3'
|
84
84
|
}];
|
85
|
+
var withSection = [{
|
86
|
+
name: 'Animals',
|
87
|
+
key: 'Animals',
|
88
|
+
kids: [{
|
89
|
+
name: 'Raccoon'
|
90
|
+
}, {
|
91
|
+
name: 'Kangaroo'
|
92
|
+
}, {
|
93
|
+
name: 'Opossum'
|
94
|
+
}]
|
95
|
+
}, {
|
96
|
+
name: 'People',
|
97
|
+
key: 'People',
|
98
|
+
kids: [{
|
99
|
+
name: 'Michael'
|
100
|
+
}, {
|
101
|
+
name: 'Dwight'
|
102
|
+
}, {
|
103
|
+
name: 'Creed'
|
104
|
+
}]
|
105
|
+
}, {
|
106
|
+
name: null,
|
107
|
+
key: 'fruit',
|
108
|
+
kids: [{
|
109
|
+
name: 'Apple'
|
110
|
+
}, {
|
111
|
+
name: 'Orange'
|
112
|
+
}, {
|
113
|
+
name: 'Banana'
|
114
|
+
}]
|
115
|
+
}];
|
85
116
|
var defaultProps = {
|
86
117
|
defaultItems: items,
|
87
118
|
label: 'Test Label'
|
@@ -102,6 +133,28 @@ var getComponent = function getComponent() {
|
|
102
133
|
})));
|
103
134
|
};
|
104
135
|
|
136
|
+
var getComponentWithSections = function getComponentWithSections() {
|
137
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
138
|
+
|
139
|
+
var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
140
|
+
_ref2$renderFn = _ref2.renderFn,
|
141
|
+
renderFn = _ref2$renderFn === void 0 ? _testWrapper.render : _ref2$renderFn;
|
142
|
+
|
143
|
+
return renderFn((0, _react3.jsx)(_index.OverlayProvider, null, (0, _react3.jsx)(_index.ComboBoxField, (0, _extends2["default"])({}, defaultProps, props, {
|
144
|
+
items: withSection
|
145
|
+
}), function (section) {
|
146
|
+
return (0, _react3.jsx)(_index.Section, {
|
147
|
+
key: section.key,
|
148
|
+
items: section.kids,
|
149
|
+
title: section.name
|
150
|
+
}, function (item) {
|
151
|
+
return (0, _react3.jsx)(_index.Item, {
|
152
|
+
key: item.name
|
153
|
+
}, item.name);
|
154
|
+
});
|
155
|
+
})));
|
156
|
+
};
|
157
|
+
|
105
158
|
var ComboBoxWithCustomFilter = function ComboBoxWithCustomFilter() {
|
106
159
|
var _useFilter = (0, _i18n.useFilter)({
|
107
160
|
sensitivity: 'base'
|
@@ -118,8 +171,8 @@ var ComboBoxWithCustomFilter = function ComboBoxWithCustomFilter() {
|
|
118
171
|
setFieldState = _useState2[1];
|
119
172
|
|
120
173
|
var onSelectionChange = function onSelectionChange(key) {
|
121
|
-
var selectedItem = (0, _filter["default"])(items).call(items, function (
|
122
|
-
var id =
|
174
|
+
var selectedItem = (0, _filter["default"])(items).call(items, function (_ref3) {
|
175
|
+
var id = _ref3.id;
|
123
176
|
return id === key;
|
124
177
|
});
|
125
178
|
setFieldState({
|
@@ -189,8 +242,8 @@ var ComboBoxWithAddOption = function ComboBoxWithAddOption() {
|
|
189
242
|
setSelectedKey = _useState8[1];
|
190
243
|
|
191
244
|
var onSelectionChange = function onSelectionChange(key) {
|
192
|
-
if (key && !(0, _find["default"])(options).call(options, function (
|
193
|
-
var name =
|
245
|
+
if (key && !(0, _find["default"])(options).call(options, function (_ref4) {
|
246
|
+
var name = _ref4.name;
|
194
247
|
return name === key;
|
195
248
|
})) {
|
196
249
|
var _context;
|
@@ -1216,6 +1269,24 @@ test('popover closes on input blur', function () {
|
|
1216
1269
|
expect(_testWrapper.screen.queryByRole('listbox')).not.toBeInTheDocument();
|
1217
1270
|
expect(_testWrapper.screen.queryByRole('option')).not.toBeInTheDocument();
|
1218
1271
|
});
|
1272
|
+
test('passing sections, renders separators', function () {
|
1273
|
+
getComponentWithSections();
|
1274
|
+
|
1275
|
+
var button = _testWrapper.screen.getByRole('button');
|
1276
|
+
|
1277
|
+
_userEvent["default"].click(button);
|
1278
|
+
|
1279
|
+
expect(_testWrapper.screen.queryAllByRole('separator')).toHaveLength(4);
|
1280
|
+
});
|
1281
|
+
test('a blank title does not render', function () {
|
1282
|
+
getComponentWithSections();
|
1283
|
+
|
1284
|
+
var button = _testWrapper.screen.getByRole('button');
|
1285
|
+
|
1286
|
+
_userEvent["default"].click(button);
|
1287
|
+
|
1288
|
+
expect(_testWrapper.screen.queryByText('Fruit')).not.toBeInTheDocument();
|
1289
|
+
});
|
1219
1290
|
describe('when isReadOnly is true', function () {
|
1220
1291
|
var testProp = {
|
1221
1292
|
isReadOnly: true
|
@@ -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"], {
|