@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.
@@ -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
- currentDate = _useState2[0],
75
- setCurrentDate = _useState2[1];
76
- var todayDate = (0, _react.useMemo)(function () {
77
- setCurrentDate(state.visibleRange.start);
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
- * Function handles the navigation to previous and next year
86
- * based on the currently displayed date.
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
- var handleYearSelection = (0, _react.useCallback)(function (navigation) {
90
- var tempValue;
89
+ // update visible year
90
+ var handleYearSelection = function handleYearSelection(navigation) {
91
91
  if (navigation === nav.PREVIOUS) {
92
- tempValue = currentDate.subtract({
92
+ var previousYear = state.focusedDate.subtract({
93
93
  years: 1
94
94
  });
95
- } else if (navigation === nav.NEXT) {
96
- tempValue = currentDate.add({
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
- state.setFocusedDate(tempValue);
101
- setCurrentDate(tempValue);
102
- }, [currentDate, state, todayDate]);
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)(_index.Box, {
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
- })), (0, _react2.jsx)(_visuallyHidden.VisuallyHidden, null, (0, _react2.jsx)(_index.Text, null, calendarProps['aria-label'])), (0, _react2.jsx)(_index.Text, {
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 _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context7 = ownKeys(Object(source), !0)).call(_context7, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context8 = ownKeys(Object(source))).call(_context8, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
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[0].options[0]),
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"])(_context = "".concat(filteredOptionsNumber, " of ")).call(_context, totalOptionsNumber, " options");
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 _context4;
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 _context2;
240
- return (0, _concat["default"])(_context2 = [_objectSpread({}, envObj)]).call(_context2, (0, _filter["default"])(prevEnvs).call(prevEnvs, function (prevEnv) {
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 _context3;
246
- return (0, _concat["default"])(_context3 = [_objectSpread({}, envObj)]).call(_context3, (0, _slice["default"])(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
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"])(_context4 = [_objectSpread({}, envObj)]).call(_context4, prevEnvs);
251
+ return (0, _concat["default"])(_context5 = [_objectSpread({}, envObj)]).call(_context5, prevEnvs);
249
252
  };
250
253
  var findEnvObj = function findEnvObj(envName, envSectionName) {
251
- var _context5;
252
- return (0, _find["default"])(_context5 = (0, _find["default"])(environments).call(environments, function (section) {
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(_context5, function (option) {
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: selectedEnvironment.name
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 _context6;
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"])(_context6 = "".concat(sectionName, "-")).call(_context6, itemName),
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, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
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
- currentDate = _useState2[0],
64
- setCurrentDate = _useState2[1];
65
- var todayDate = useMemo(function () {
66
- setCurrentDate(state.visibleRange.start);
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
- * Function handles the navigation to previous and next year
75
- * based on the currently displayed date.
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
- var handleYearSelection = useCallback(function (navigation) {
79
- var tempValue;
78
+ // update visible year
79
+ var handleYearSelection = function handleYearSelection(navigation) {
80
80
  if (navigation === nav.PREVIOUS) {
81
- tempValue = currentDate.subtract({
81
+ var previousYear = state.focusedDate.subtract({
82
82
  years: 1
83
83
  });
84
- } else if (navigation === nav.NEXT) {
85
- tempValue = currentDate.add({
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
- state.setFocusedDate(tempValue);
90
- setCurrentDate(tempValue);
91
- }, [currentDate, state, todayDate]);
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(Box, {
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
- })), ___EmotionJSX(VisuallyHidden, null, ___EmotionJSX(Text, null, calendarProps['aria-label'])), ___EmotionJSX(Text, {
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 _context7, _context8; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context7 = ownKeys(Object(source), !0)).call(_context7, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context8 = ownKeys(Object(source))).call(_context8, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
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[0].options[0]),
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(_context = "".concat(filteredOptionsNumber, " of ")).call(_context, totalOptionsNumber, " options");
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 _context4;
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 _context2;
225
- return _concatInstanceProperty(_context2 = [_objectSpread({}, envObj)]).call(_context2, _filterInstanceProperty(prevEnvs).call(prevEnvs, function (prevEnv) {
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 _context3;
231
- return _concatInstanceProperty(_context3 = [_objectSpread({}, envObj)]).call(_context3, _sliceInstanceProperty(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
233
+ var _context4;
234
+ return _concatInstanceProperty(_context4 = [_objectSpread({}, envObj)]).call(_context4, _sliceInstanceProperty(prevEnvs).call(prevEnvs, 0, recentEnvShown - 1));
232
235
  }
233
- return _concatInstanceProperty(_context4 = [_objectSpread({}, envObj)]).call(_context4, prevEnvs);
236
+ return _concatInstanceProperty(_context5 = [_objectSpread({}, envObj)]).call(_context5, prevEnvs);
234
237
  };
235
238
  var findEnvObj = function findEnvObj(envName, envSectionName) {
236
- var _context5;
237
- return _findInstanceProperty(_context5 = _findInstanceProperty(environments).call(environments, function (section) {
239
+ var _context6;
240
+ return _findInstanceProperty(_context6 = _findInstanceProperty(environments).call(environments, function (section) {
238
241
  return section.name === envSectionName;
239
- }).options).call(_context5, function (option) {
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: selectedEnvironment.name
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 _context6;
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(_context6 = "".concat(sectionName, "-")).call(_context6, itemName),
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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.16.0-alpha.1",
3
+ "version": "2.16.0-alpha.3",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",