@pingux/astro 2.16.0-alpha.1 → 2.16.0-alpha.3
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/Calendar/Calendar.js +37 -30
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +1 -1
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +20 -17
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +13 -0
- package/lib/components/Calendar/Calendar.js +38 -31
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +1 -1
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +20 -17
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +13 -0
- package/package.json +1 -1
@@ -64,51 +64,62 @@ var Calendar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
64
64
|
prevButtonProps = _useCalendar.prevButtonProps,
|
65
65
|
nextButtonProps = _useCalendar.nextButtonProps,
|
66
66
|
title = _useCalendar.title;
|
67
|
-
|
68
|
-
/**
|
69
|
-
* Grabs the currently displayed date for yearly navigation.
|
70
|
-
*/
|
71
|
-
|
72
|
-
var _useState = (0, _react.useState)(),
|
67
|
+
var _useState = (0, _react.useState)(null),
|
73
68
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
74
|
-
|
75
|
-
|
76
|
-
var
|
77
|
-
|
78
|
-
}, [state.visibleRange.start]);
|
69
|
+
yearChangeDirection = _useState2[0],
|
70
|
+
setYearChangeDirection = _useState2[1];
|
71
|
+
var previousYearRef = (0, _react.useRef)(null);
|
72
|
+
var nextYearRef = (0, _react.useRef)(null);
|
79
73
|
var nav = {
|
80
74
|
NEXT: 'next',
|
81
75
|
PREVIOUS: 'previous'
|
82
76
|
};
|
83
77
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
78
|
+
// after updating visible year, reapplies focus to corresponding year buttons
|
79
|
+
(0, _react.useEffect)(function () {
|
80
|
+
if (yearChangeDirection === nav.NEXT) {
|
81
|
+
nextYearRef.current.focus();
|
82
|
+
}
|
83
|
+
if (yearChangeDirection === nav.PREVIOUS) {
|
84
|
+
previousYearRef.current.focus();
|
85
|
+
}
|
86
|
+
setYearChangeDirection(null);
|
87
|
+
}, [nav.NEXT, nav.PREVIOUS, yearChangeDirection]);
|
88
88
|
|
89
|
-
|
90
|
-
|
89
|
+
// update visible year
|
90
|
+
var handleYearSelection = function handleYearSelection(navigation) {
|
91
91
|
if (navigation === nav.PREVIOUS) {
|
92
|
-
|
92
|
+
var previousYear = state.focusedDate.subtract({
|
93
93
|
years: 1
|
94
94
|
});
|
95
|
-
|
96
|
-
|
95
|
+
state.setFocusedDate(previousYear);
|
96
|
+
}
|
97
|
+
if (navigation === nav.NEXT) {
|
98
|
+
var nextYear = state.focusedDate.add({
|
97
99
|
years: 1
|
98
100
|
});
|
101
|
+
state.setFocusedDate(nextYear);
|
99
102
|
}
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
+
setYearChangeDirection(navigation);
|
104
|
+
};
|
105
|
+
var renderTitle = (0, _react2.jsx)(_index.Text, {
|
106
|
+
variant: "itemTitle",
|
107
|
+
role: "heading",
|
108
|
+
"aria-level": "3",
|
109
|
+
fontWeight: 3
|
110
|
+
}, title);
|
103
111
|
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, calendarProps, {
|
104
112
|
ref: calenderRef,
|
105
113
|
variant: "calendar.calendarContainer"
|
106
|
-
}), (0, _react2.jsx)(
|
114
|
+
}), (0, _react2.jsx)(_visuallyHidden.VisuallyHidden, {
|
115
|
+
"aria-live": "assertive"
|
116
|
+
}, (0, _react2.jsx)(_index.Text, null, title)), (0, _react2.jsx)(_index.Box, {
|
107
117
|
className: "header",
|
108
118
|
isRow: true,
|
109
119
|
variant: "calendar.calendarHeader",
|
110
120
|
verticalAlign: "middle"
|
111
121
|
}, (0, _react2.jsx)(_index.IconButton, {
|
122
|
+
ref: previousYearRef,
|
112
123
|
onPress: function onPress() {
|
113
124
|
return handleYearSelection(nav.PREVIOUS);
|
114
125
|
},
|
@@ -129,12 +140,7 @@ var Calendar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
129
140
|
title: {
|
130
141
|
name: 'Chevron Left Icon'
|
131
142
|
}
|
132
|
-
})),
|
133
|
-
variant: "itemTitle",
|
134
|
-
role: "heading",
|
135
|
-
"aria-level": "3",
|
136
|
-
fontWeight: 3
|
137
|
-
}, title), (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({}, nextButtonProps, {
|
143
|
+
})), renderTitle, (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({}, nextButtonProps, {
|
138
144
|
"aria-label": "Next month navigation"
|
139
145
|
}), (0, _react2.jsx)(_index.Icon, {
|
140
146
|
icon: _ChevronRightIcon["default"],
|
@@ -143,6 +149,7 @@ var Calendar = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
143
149
|
name: 'Chevron Right Icon'
|
144
150
|
}
|
145
151
|
})), (0, _react2.jsx)(_index.IconButton, {
|
152
|
+
ref: nextYearRef,
|
146
153
|
onPress: function onPress() {
|
147
154
|
return handleYearSelection(nav.NEXT);
|
148
155
|
},
|
@@ -81,7 +81,7 @@ var EnvironmentBreadcrumb = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
81
81
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
82
82
|
searchValue = _useState2[0],
|
83
83
|
setSearchValue = _useState2[1];
|
84
|
-
var _useState3 = (0, _react.useState)([]),
|
84
|
+
var _useState3 = (0, _react.useState)([selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.key]),
|
85
85
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
86
86
|
selectedKeys = _useState4[0],
|
87
87
|
setSelectedKeys = _useState4[1];
|
@@ -16,8 +16,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
16
16
|
});
|
17
17
|
exports["default"] = exports.WithSections = exports.RightAlignedBadges = exports.OrgLevel = exports.DefaultOpen = exports.DefaultClosed = exports.Default = exports.ControlledMenu = void 0;
|
18
18
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
19
|
-
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
20
19
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
20
|
+
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
21
21
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
22
22
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
23
23
|
var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
|
@@ -33,7 +33,7 @@ var _react2 = require("@emotion/react");
|
|
33
33
|
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); }
|
34
34
|
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; }
|
35
35
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
36
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var
|
36
|
+
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; }
|
37
37
|
var _default = {
|
38
38
|
title: 'Components/EnvironmentBreadcrumb',
|
39
39
|
component: _index.EnvironmentBreadcrumb,
|
@@ -211,7 +211,9 @@ var DefaultClosed = function DefaultClosed(args) {
|
|
211
211
|
};
|
212
212
|
exports.DefaultClosed = DefaultClosed;
|
213
213
|
var WithSections = function WithSections() {
|
214
|
-
var _context;
|
214
|
+
var _context, _context2;
|
215
|
+
var selectedSectionIndex = 0;
|
216
|
+
var selectedOptionIndex = 0;
|
215
217
|
var _useState5 = (0, _react.useState)(environmentsWithSections),
|
216
218
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
217
219
|
environments = _useState6[0],
|
@@ -220,38 +222,39 @@ var WithSections = function WithSections() {
|
|
220
222
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
221
223
|
filteredOptionsNumber = _useState8[0],
|
222
224
|
setFilteredOptionsNumber = _useState8[1];
|
223
|
-
var _useState9 = (0, _react.useState)(environmentsWithSections[
|
225
|
+
var _useState9 = (0, _react.useState)(environmentsWithSections[selectedSectionIndex].options[selectedOptionIndex]),
|
224
226
|
_useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
|
225
227
|
selectedEnvironment = _useState10[0],
|
226
228
|
setSelectedEnvironment = _useState10[1];
|
229
|
+
var selectedKey = (0, _concat["default"])(_context = "".concat(environmentsWithSections[selectedSectionIndex].key, "-")).call(_context, selectedEnvironment.name);
|
227
230
|
var recentEnvShown = 3;
|
228
231
|
var totalOptionsNumber = (0, _reduce["default"])(environmentsWithSections).call(environmentsWithSections, function (acc, section) {
|
229
232
|
return acc + section.options.length;
|
230
233
|
}, 0);
|
231
|
-
var optionsCountMessage = filteredOptionsNumber === totalOptionsNumber ? "".concat(totalOptionsNumber, " options in total") : (0, _concat["default"])(
|
234
|
+
var optionsCountMessage = filteredOptionsNumber === totalOptionsNumber ? "".concat(totalOptionsNumber, " options in total") : (0, _concat["default"])(_context2 = "".concat(filteredOptionsNumber, " of ")).call(_context2, totalOptionsNumber, " options");
|
232
235
|
var getUpdatedRecentEnvs = function getUpdatedRecentEnvs(envObj, prevEnvs) {
|
233
|
-
var
|
236
|
+
var _context5;
|
234
237
|
var envName = envObj.name;
|
235
238
|
var isDuplicate = (0, _filter["default"])(prevEnvs).call(prevEnvs, function (prevEnv) {
|
236
239
|
return prevEnv.name === envName;
|
237
240
|
}).length > 0;
|
238
241
|
if (isDuplicate) {
|
239
|
-
var
|
240
|
-
return (0, _concat["default"])(
|
242
|
+
var _context3;
|
243
|
+
return (0, _concat["default"])(_context3 = [_objectSpread({}, envObj)]).call(_context3, (0, _filter["default"])(prevEnvs).call(prevEnvs, function (prevEnv) {
|
241
244
|
return prevEnv.name !== envName;
|
242
245
|
}));
|
243
246
|
}
|
244
247
|
if (prevEnvs.length >= recentEnvShown) {
|
245
|
-
var
|
246
|
-
return (0, _concat["default"])(
|
248
|
+
var _context4;
|
249
|
+
return (0, _concat["default"])(_context4 = [_objectSpread({}, envObj)]).call(_context4, (0, _slice["default"])(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
|
247
250
|
}
|
248
|
-
return (0, _concat["default"])(
|
251
|
+
return (0, _concat["default"])(_context5 = [_objectSpread({}, envObj)]).call(_context5, prevEnvs);
|
249
252
|
};
|
250
253
|
var findEnvObj = function findEnvObj(envName, envSectionName) {
|
251
|
-
var
|
252
|
-
return (0, _find["default"])(
|
254
|
+
var _context6;
|
255
|
+
return (0, _find["default"])(_context6 = (0, _find["default"])(environments).call(environments, function (section) {
|
253
256
|
return section.name === envSectionName;
|
254
|
-
}).options).call(
|
257
|
+
}).options).call(_context6, function (option) {
|
255
258
|
return option.name === envName;
|
256
259
|
});
|
257
260
|
};
|
@@ -275,7 +278,7 @@ var WithSections = function WithSections() {
|
|
275
278
|
};
|
276
279
|
var envNode = (0, _react2.jsx)(_index.Box, {
|
277
280
|
isRow: true,
|
278
|
-
key:
|
281
|
+
key: selectedKey
|
279
282
|
}, (0, _react2.jsx)(_index.Text, {
|
280
283
|
color: "inherit"
|
281
284
|
}, selectedEnvironment.name), selectedEnvironment.isSandbox ? (0, _react2.jsx)(_index.Badge, {
|
@@ -300,12 +303,12 @@ var WithSections = function WithSections() {
|
|
300
303
|
title: sectionName,
|
301
304
|
items: sectionOptions
|
302
305
|
}, function (_ref6) {
|
303
|
-
var
|
306
|
+
var _context7;
|
304
307
|
var itemName = _ref6.name,
|
305
308
|
itemOptions = _ref6.options,
|
306
309
|
isSandbox = _ref6.isSandbox;
|
307
310
|
return (0, _react2.jsx)(_index.Item, {
|
308
|
-
key: (0, _concat["default"])(
|
311
|
+
key: (0, _concat["default"])(_context7 = "".concat(sectionName, "-")).call(_context7, itemName),
|
309
312
|
childItems: itemOptions,
|
310
313
|
textValue: itemName
|
311
314
|
}, (0, _react2.jsx)(_index.Box, {
|
@@ -348,4 +348,17 @@ test('should reflect the selection change when env is clicked', function () {
|
|
348
348
|
});
|
349
349
|
_userEvent["default"].click(_testWrapper.screen.getByText(itemsWithSections[1].options[1].name));
|
350
350
|
expect(onSelectionChangeMock).toHaveBeenNthCalledWith(1, (0, _concat["default"])(_context4 = "".concat(itemsWithSections[1].name, "-")).call(_context4, itemsWithSections[1].options[1].name));
|
351
|
+
});
|
352
|
+
test('should indicate selected item on first render', function () {
|
353
|
+
var selectedItem = items[0].name;
|
354
|
+
var envNode = (0, _react2.jsx)(_.Item, {
|
355
|
+
key: selectedItem
|
356
|
+
}, selectedItem);
|
357
|
+
getComponent({
|
358
|
+
isDefaultOpen: true,
|
359
|
+
selectedItem: envNode
|
360
|
+
});
|
361
|
+
expect(_testWrapper.screen.queryByRole('listbox')).toBeInTheDocument();
|
362
|
+
expect(_testWrapper.screen.queryAllByRole('option')).toHaveLength(3);
|
363
|
+
expect(_testWrapper.screen.getByText(selectedItem)).toHaveClass('is-selected');
|
351
364
|
});
|
@@ -11,7 +11,7 @@ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
|
11
11
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
12
12
|
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; }
|
13
13
|
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) { _defineProperty(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; }
|
14
|
-
import React, { forwardRef,
|
14
|
+
import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
15
15
|
import { createCalendar, parseDate } from '@internationalized/date';
|
16
16
|
import ChevronDoubleLeftIcon from '@pingux/mdi-react/ChevronDoubleLeftIcon';
|
17
17
|
import ChevronDoubleRightIcon from '@pingux/mdi-react/ChevronDoubleRightIcon';
|
@@ -53,51 +53,62 @@ var Calendar = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
53
53
|
prevButtonProps = _useCalendar.prevButtonProps,
|
54
54
|
nextButtonProps = _useCalendar.nextButtonProps,
|
55
55
|
title = _useCalendar.title;
|
56
|
-
|
57
|
-
/**
|
58
|
-
* Grabs the currently displayed date for yearly navigation.
|
59
|
-
*/
|
60
|
-
|
61
|
-
var _useState = useState(),
|
56
|
+
var _useState = useState(null),
|
62
57
|
_useState2 = _slicedToArray(_useState, 2),
|
63
|
-
|
64
|
-
|
65
|
-
var
|
66
|
-
|
67
|
-
}, [state.visibleRange.start]);
|
58
|
+
yearChangeDirection = _useState2[0],
|
59
|
+
setYearChangeDirection = _useState2[1];
|
60
|
+
var previousYearRef = useRef(null);
|
61
|
+
var nextYearRef = useRef(null);
|
68
62
|
var nav = {
|
69
63
|
NEXT: 'next',
|
70
64
|
PREVIOUS: 'previous'
|
71
65
|
};
|
72
66
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
67
|
+
// after updating visible year, reapplies focus to corresponding year buttons
|
68
|
+
useEffect(function () {
|
69
|
+
if (yearChangeDirection === nav.NEXT) {
|
70
|
+
nextYearRef.current.focus();
|
71
|
+
}
|
72
|
+
if (yearChangeDirection === nav.PREVIOUS) {
|
73
|
+
previousYearRef.current.focus();
|
74
|
+
}
|
75
|
+
setYearChangeDirection(null);
|
76
|
+
}, [nav.NEXT, nav.PREVIOUS, yearChangeDirection]);
|
77
77
|
|
78
|
-
|
79
|
-
|
78
|
+
// update visible year
|
79
|
+
var handleYearSelection = function handleYearSelection(navigation) {
|
80
80
|
if (navigation === nav.PREVIOUS) {
|
81
|
-
|
81
|
+
var previousYear = state.focusedDate.subtract({
|
82
82
|
years: 1
|
83
83
|
});
|
84
|
-
|
85
|
-
|
84
|
+
state.setFocusedDate(previousYear);
|
85
|
+
}
|
86
|
+
if (navigation === nav.NEXT) {
|
87
|
+
var nextYear = state.focusedDate.add({
|
86
88
|
years: 1
|
87
89
|
});
|
90
|
+
state.setFocusedDate(nextYear);
|
88
91
|
}
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
+
setYearChangeDirection(navigation);
|
93
|
+
};
|
94
|
+
var renderTitle = ___EmotionJSX(Text, {
|
95
|
+
variant: "itemTitle",
|
96
|
+
role: "heading",
|
97
|
+
"aria-level": "3",
|
98
|
+
fontWeight: 3
|
99
|
+
}, title);
|
92
100
|
return ___EmotionJSX(Box, _extends({}, calendarProps, {
|
93
101
|
ref: calenderRef,
|
94
102
|
variant: "calendar.calendarContainer"
|
95
|
-
}), ___EmotionJSX(
|
103
|
+
}), ___EmotionJSX(VisuallyHidden, {
|
104
|
+
"aria-live": "assertive"
|
105
|
+
}, ___EmotionJSX(Text, null, title)), ___EmotionJSX(Box, {
|
96
106
|
className: "header",
|
97
107
|
isRow: true,
|
98
108
|
variant: "calendar.calendarHeader",
|
99
109
|
verticalAlign: "middle"
|
100
110
|
}, ___EmotionJSX(IconButton, {
|
111
|
+
ref: previousYearRef,
|
101
112
|
onPress: function onPress() {
|
102
113
|
return handleYearSelection(nav.PREVIOUS);
|
103
114
|
},
|
@@ -118,12 +129,7 @@ var Calendar = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
118
129
|
title: {
|
119
130
|
name: 'Chevron Left Icon'
|
120
131
|
}
|
121
|
-
})),
|
122
|
-
variant: "itemTitle",
|
123
|
-
role: "heading",
|
124
|
-
"aria-level": "3",
|
125
|
-
fontWeight: 3
|
126
|
-
}, title), ___EmotionJSX(IconButton, _extends({}, nextButtonProps, {
|
132
|
+
})), renderTitle, ___EmotionJSX(IconButton, _extends({}, nextButtonProps, {
|
127
133
|
"aria-label": "Next month navigation"
|
128
134
|
}), ___EmotionJSX(Icon, {
|
129
135
|
icon: ChevronRightIcon,
|
@@ -132,6 +138,7 @@ var Calendar = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
132
138
|
name: 'Chevron Right Icon'
|
133
139
|
}
|
134
140
|
})), ___EmotionJSX(IconButton, {
|
141
|
+
ref: nextYearRef,
|
135
142
|
onPress: function onPress() {
|
136
143
|
return handleYearSelection(nav.NEXT);
|
137
144
|
},
|
@@ -67,7 +67,7 @@ var EnvironmentBreadcrumb = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
67
67
|
_useState2 = _slicedToArray(_useState, 2),
|
68
68
|
searchValue = _useState2[0],
|
69
69
|
setSearchValue = _useState2[1];
|
70
|
-
var _useState3 = useState([]),
|
70
|
+
var _useState3 = useState([selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.key]),
|
71
71
|
_useState4 = _slicedToArray(_useState3, 2),
|
72
72
|
selectedKeys = _useState4[0],
|
73
73
|
setSelectedKeys = _useState4[1];
|
@@ -9,10 +9,10 @@ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
9
9
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
10
10
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
11
11
|
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; }
|
12
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var
|
12
|
+
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) { _defineProperty(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; }
|
13
13
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
14
|
-
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
15
14
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
15
|
+
import _reduceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reduce";
|
16
16
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
17
17
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
18
18
|
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
|
@@ -196,7 +196,9 @@ export var DefaultClosed = function DefaultClosed(args) {
|
|
196
196
|
});
|
197
197
|
};
|
198
198
|
export var WithSections = function WithSections() {
|
199
|
-
var _context;
|
199
|
+
var _context, _context2;
|
200
|
+
var selectedSectionIndex = 0;
|
201
|
+
var selectedOptionIndex = 0;
|
200
202
|
var _useState5 = useState(environmentsWithSections),
|
201
203
|
_useState6 = _slicedToArray(_useState5, 2),
|
202
204
|
environments = _useState6[0],
|
@@ -205,38 +207,39 @@ export var WithSections = function WithSections() {
|
|
205
207
|
_useState8 = _slicedToArray(_useState7, 2),
|
206
208
|
filteredOptionsNumber = _useState8[0],
|
207
209
|
setFilteredOptionsNumber = _useState8[1];
|
208
|
-
var _useState9 = useState(environmentsWithSections[
|
210
|
+
var _useState9 = useState(environmentsWithSections[selectedSectionIndex].options[selectedOptionIndex]),
|
209
211
|
_useState10 = _slicedToArray(_useState9, 2),
|
210
212
|
selectedEnvironment = _useState10[0],
|
211
213
|
setSelectedEnvironment = _useState10[1];
|
214
|
+
var selectedKey = _concatInstanceProperty(_context = "".concat(environmentsWithSections[selectedSectionIndex].key, "-")).call(_context, selectedEnvironment.name);
|
212
215
|
var recentEnvShown = 3;
|
213
216
|
var totalOptionsNumber = _reduceInstanceProperty(environmentsWithSections).call(environmentsWithSections, function (acc, section) {
|
214
217
|
return acc + section.options.length;
|
215
218
|
}, 0);
|
216
|
-
var optionsCountMessage = filteredOptionsNumber === totalOptionsNumber ? "".concat(totalOptionsNumber, " options in total") : _concatInstanceProperty(
|
219
|
+
var optionsCountMessage = filteredOptionsNumber === totalOptionsNumber ? "".concat(totalOptionsNumber, " options in total") : _concatInstanceProperty(_context2 = "".concat(filteredOptionsNumber, " of ")).call(_context2, totalOptionsNumber, " options");
|
217
220
|
var getUpdatedRecentEnvs = function getUpdatedRecentEnvs(envObj, prevEnvs) {
|
218
|
-
var
|
221
|
+
var _context5;
|
219
222
|
var envName = envObj.name;
|
220
223
|
var isDuplicate = _filterInstanceProperty(prevEnvs).call(prevEnvs, function (prevEnv) {
|
221
224
|
return prevEnv.name === envName;
|
222
225
|
}).length > 0;
|
223
226
|
if (isDuplicate) {
|
224
|
-
var
|
225
|
-
return _concatInstanceProperty(
|
227
|
+
var _context3;
|
228
|
+
return _concatInstanceProperty(_context3 = [_objectSpread({}, envObj)]).call(_context3, _filterInstanceProperty(prevEnvs).call(prevEnvs, function (prevEnv) {
|
226
229
|
return prevEnv.name !== envName;
|
227
230
|
}));
|
228
231
|
}
|
229
232
|
if (prevEnvs.length >= recentEnvShown) {
|
230
|
-
var
|
231
|
-
return _concatInstanceProperty(
|
233
|
+
var _context4;
|
234
|
+
return _concatInstanceProperty(_context4 = [_objectSpread({}, envObj)]).call(_context4, _sliceInstanceProperty(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
|
232
235
|
}
|
233
|
-
return _concatInstanceProperty(
|
236
|
+
return _concatInstanceProperty(_context5 = [_objectSpread({}, envObj)]).call(_context5, prevEnvs);
|
234
237
|
};
|
235
238
|
var findEnvObj = function findEnvObj(envName, envSectionName) {
|
236
|
-
var
|
237
|
-
return _findInstanceProperty(
|
239
|
+
var _context6;
|
240
|
+
return _findInstanceProperty(_context6 = _findInstanceProperty(environments).call(environments, function (section) {
|
238
241
|
return section.name === envSectionName;
|
239
|
-
}).options).call(
|
242
|
+
}).options).call(_context6, function (option) {
|
240
243
|
return option.name === envName;
|
241
244
|
});
|
242
245
|
};
|
@@ -260,7 +263,7 @@ export var WithSections = function WithSections() {
|
|
260
263
|
};
|
261
264
|
var envNode = ___EmotionJSX(Box, {
|
262
265
|
isRow: true,
|
263
|
-
key:
|
266
|
+
key: selectedKey
|
264
267
|
}, ___EmotionJSX(Text, {
|
265
268
|
color: "inherit"
|
266
269
|
}, selectedEnvironment.name), selectedEnvironment.isSandbox ? ___EmotionJSX(Badge, {
|
@@ -285,12 +288,12 @@ export var WithSections = function WithSections() {
|
|
285
288
|
title: sectionName,
|
286
289
|
items: sectionOptions
|
287
290
|
}, function (_ref6) {
|
288
|
-
var
|
291
|
+
var _context7;
|
289
292
|
var itemName = _ref6.name,
|
290
293
|
itemOptions = _ref6.options,
|
291
294
|
isSandbox = _ref6.isSandbox;
|
292
295
|
return ___EmotionJSX(Item, {
|
293
|
-
key: _concatInstanceProperty(
|
296
|
+
key: _concatInstanceProperty(_context7 = "".concat(sectionName, "-")).call(_context7, itemName),
|
294
297
|
childItems: itemOptions,
|
295
298
|
textValue: itemName
|
296
299
|
}, ___EmotionJSX(Box, {
|
@@ -344,4 +344,17 @@ test('should reflect the selection change when env is clicked', function () {
|
|
344
344
|
});
|
345
345
|
userEvent.click(screen.getByText(itemsWithSections[1].options[1].name));
|
346
346
|
expect(onSelectionChangeMock).toHaveBeenNthCalledWith(1, _concatInstanceProperty(_context4 = "".concat(itemsWithSections[1].name, "-")).call(_context4, itemsWithSections[1].options[1].name));
|
347
|
+
});
|
348
|
+
test('should indicate selected item on first render', function () {
|
349
|
+
var selectedItem = items[0].name;
|
350
|
+
var envNode = ___EmotionJSX(Item, {
|
351
|
+
key: selectedItem
|
352
|
+
}, selectedItem);
|
353
|
+
getComponent({
|
354
|
+
isDefaultOpen: true,
|
355
|
+
selectedItem: envNode
|
356
|
+
});
|
357
|
+
expect(screen.queryByRole('listbox')).toBeInTheDocument();
|
358
|
+
expect(screen.queryAllByRole('option')).toHaveLength(3);
|
359
|
+
expect(screen.getByText(selectedItem)).toHaveClass('is-selected');
|
347
360
|
});
|