@pingux/astro 1.36.3-alpha.1 → 1.37.0-alpha.1

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.
@@ -20,8 +20,6 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable
20
20
 
21
21
  var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
22
22
 
23
- var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
24
-
25
23
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
26
24
 
27
25
  var _react = _interopRequireWildcard(require("react"));
@@ -56,21 +54,21 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
56
54
  *
57
55
  */
58
56
  var NavBar = function NavBar(props) {
59
- var defaultSelectedKeys = props.defaultSelectedKeys,
60
- selectedKeysProp = props.selectedKeys,
61
- setSelectedKeysProp = props.setSelectedKeys,
57
+ var defaultSelectedKey = props.defaultSelectedKey,
58
+ selectedKeyProp = props.selectedKey,
59
+ setSelectedKeyProp = props.setSelectedKey,
62
60
  defaultExpandedKeys = props.defaultExpandedKeys,
63
61
  children = props.children;
64
62
 
65
- var _useState = (0, _react.useState)(new _set["default"](defaultExpandedKeys)),
63
+ var _useState = (0, _react.useState)(defaultExpandedKeys),
66
64
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
67
65
  expandedKeys = _useState2[0],
68
66
  setExpandedKeys = _useState2[1];
69
67
 
70
- var _useProgressiveState = (0, _useProgressiveState3["default"])(selectedKeysProp, defaultSelectedKeys),
68
+ var _useProgressiveState = (0, _useProgressiveState3["default"])(selectedKeyProp, defaultSelectedKey),
71
69
  _useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
72
- selectedKeys = _useProgressiveState2[0],
73
- setSelectedKeys = _useProgressiveState2[1];
70
+ selectedKey = _useProgressiveState2[0],
71
+ setSelectedKey = _useProgressiveState2[1];
74
72
 
75
73
  var items = (0, _react.useMemo)(function () {
76
74
  return (0, _isArray["default"])(children) ? (0, _map["default"])(children).call(children, function (child) {
@@ -82,14 +80,15 @@ var NavBar = function NavBar(props) {
82
80
  item: children,
83
81
  key: (0, _uuid.v4)()
84
82
  }];
85
- }, [children]);
83
+ }, []);
84
+ var contextValue = {
85
+ selectedKey: selectedKey,
86
+ setSelectedKey: setSelectedKeyProp || setSelectedKey,
87
+ expandedKeys: expandedKeys,
88
+ setExpandedKeys: setExpandedKeys
89
+ };
86
90
  return (0, _react2.jsx)(_NavBarContext.NavBarContext.Provider, {
87
- value: {
88
- selectedKey: selectedKeys,
89
- setSelectedKey: setSelectedKeysProp || setSelectedKeys,
90
- expandedKeys: expandedKeys,
91
- setExpandedKeys: setExpandedKeys
92
- }
91
+ value: contextValue
93
92
  }, (0, _react2.jsx)(_Box["default"], {
94
93
  variant: "navBar.container",
95
94
  role: "navigation",
@@ -136,15 +135,24 @@ var FocusableItem = function FocusableItem(props) {
136
135
 
137
136
  NavBar.propTypes = {
138
137
  /** The initial selected key in the collection (uncontrolled). */
139
- defaultSelectedKeys: _isIterable.isIterableProp,
138
+ defaultSelectedKey: _propTypes["default"].string,
140
139
 
141
140
  /** The initial expanded keys in the collection (uncontrolled). */
142
141
  defaultExpandedKeys: _isIterable.isIterableProp,
143
- selectedKeys: _isIterable.isIterableProp,
144
- setSelectedKeys: _propTypes["default"].func
142
+
143
+ /** The selected key in the collection (controlled). */
144
+ selectedKey: _isIterable.isIterableProp,
145
+
146
+ /**
147
+ * Callback function that fires when the selected key changes.
148
+ *
149
+ * `(selectedKey: String) => void`
150
+ */
151
+ setSelectedKey: _propTypes["default"].func
145
152
  };
146
153
  NavBar.defaultProps = {
147
- defaultSelectedKeys: []
154
+ defaultSelectedKey: '',
155
+ defaultExpandedKeys: []
148
156
  };
149
157
  var _default = NavBar;
150
158
  exports["default"] = _default;
@@ -2,17 +2,25 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
5
7
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
8
 
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
7
13
  _Object$defineProperty(exports, "__esModule", {
8
14
  value: true
9
15
  });
10
16
 
11
- exports["default"] = exports.Default = void 0;
17
+ exports["default"] = exports.Default = exports.Controlled = void 0;
18
+
19
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
12
20
 
13
21
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
22
 
15
- var _react = _interopRequireDefault(require("react"));
23
+ var _react = _interopRequireWildcard(require("react"));
16
24
 
17
25
  var _AccountMultipleIcon = _interopRequireDefault(require("mdi-react/AccountMultipleIcon"));
18
26
 
@@ -34,6 +42,10 @@ var _index = require("../../index");
34
42
 
35
43
  var _react2 = require("@emotion/react");
36
44
 
45
+ 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); }
46
+
47
+ 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; }
48
+
37
49
  var _default = {
38
50
  component: _index.NavBar,
39
51
  subcomponents: {
@@ -137,10 +149,9 @@ var data = [{
137
149
  id: "Dashboard Link Group",
138
150
  variant: "buttons.navItemButton",
139
151
  href: "https://pingidentity.com/"
140
- }, "Group"), (0, _react2.jsx)(_index.NavBarItemLink, {
152
+ }, "Group"), (0, _react2.jsx)(_index.NavBarItemButton, {
141
153
  key: "Dashboard Link Populations",
142
- id: "Dashboard Link Populations",
143
- href: "https://pingidentity.com/"
154
+ id: "Dashboard Link Populations"
144
155
  }, "Populations")]
145
156
  }, {
146
157
  'data-id': 'identities-data-id',
@@ -163,10 +174,9 @@ var data = [{
163
174
  key: "Identities Link Attributes",
164
175
  id: "Identities Link Attributes",
165
176
  href: "https://pingidentity.com/"
166
- }, "Attributes"), (0, _react2.jsx)(_index.NavBarItemLink, {
177
+ }, "Attributes"), (0, _react2.jsx)(_index.NavBarItemButton, {
167
178
  key: "Identities Link Roles",
168
- id: "Identities Link Roles",
169
- href: "https://pingidentity.com/"
179
+ id: "Identities Link Roles"
170
180
  }, "Roles")]
171
181
  }, {
172
182
  'data-id': 'connections-data-id',
@@ -222,10 +232,9 @@ var data = [{
222
232
  key: "Connections Certificates & Key Pairs",
223
233
  id: "Connections Certificates & Key Pairs",
224
234
  href: "https://pingidentity.com/"
225
- }, "Certificates & Key Pairs"), (0, _react2.jsx)(_index.NavBarItemLink, {
235
+ }, "Certificates & Key Pairs"), (0, _react2.jsx)(_index.NavBarItemButton, {
226
236
  key: "Connections Resources",
227
- id: "Connections Resources",
228
- href: "https://pingidentity.com/"
237
+ id: "Connections Resources"
229
238
  }, "Resources")]
230
239
  }, {
231
240
  'data-id': 'experiences-data-id',
@@ -281,10 +290,9 @@ var data = [{
281
290
  key: "Experiences Vanity Domains",
282
291
  id: "Experiences Vanity Domains",
283
292
  href: "https://pingidentity.com/"
284
- }, "Vanity Domains"), (0, _react2.jsx)(_index.NavBarItemLink, {
293
+ }, "Vanity Domains"), (0, _react2.jsx)(_index.NavBarItemButton, {
285
294
  key: "Experiences Sender",
286
- id: "Experiences Sender",
287
- href: "https://pingidentity.com/"
295
+ id: "Experiences Sender"
288
296
  }, "Sender")]
289
297
  }];
290
298
  var secondData = [{
@@ -363,9 +371,7 @@ var thirdData = [{
363
371
  }];
364
372
 
365
373
  var Default = function Default() {
366
- return (0, _react2.jsx)(_index.NavBar, {
367
- defaultSelectedKey: "Dashboard Link Group"
368
- }, (0, _react2.jsx)(_index.Box, {
374
+ return (0, _react2.jsx)(_index.NavBar, null, (0, _react2.jsx)(_index.Box, {
369
375
  padding: "md"
370
376
  }, (0, _react2.jsx)(_index.Link, {
371
377
  "aria-label": "home link",
@@ -399,4 +405,64 @@ var Default = function Default() {
399
405
  })));
400
406
  };
401
407
 
402
- exports.Default = Default;
408
+ exports.Default = Default;
409
+
410
+ var Controlled = function Controlled() {
411
+ var _useState = (0, _react.useState)('Dashboard Link Group'),
412
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
413
+ selectedKey = _useState2[0],
414
+ setSelectedKey = _useState2[1];
415
+
416
+ var customData = [{
417
+ icon: _EarthIcon["default"],
418
+ key: 'Environment',
419
+ heading: 'Nested redirect is in here',
420
+ children: [(0, _react2.jsx)(_index.NavBarItemButton, {
421
+ key: "Click me for MFA Users",
422
+ id: "Click me for MFA Users",
423
+ onPress: function onPress() {
424
+ setSelectedKey('MFA Button Users');
425
+ }
426
+ }, "Click me for MFA Users"), (0, _react2.jsx)(_index.NavBarItemButton, {
427
+ key: "Earth Button Group",
428
+ id: "Earth Button Group"
429
+ }, "Group")]
430
+ }];
431
+ return (0, _react2.jsx)(_index.NavBar, {
432
+ setSelectedKey: setSelectedKey,
433
+ selectedKey: selectedKey
434
+ }, (0, _react2.jsx)(_index.Box, {
435
+ padding: "md"
436
+ }, (0, _react2.jsx)(_index.Link, {
437
+ "aria-label": "home link",
438
+ href: "https://pingidentity.com",
439
+ target: "_blank"
440
+ }, logo)), (0, _react2.jsx)(_index.Separator, {
441
+ marginTop: "lg",
442
+ marginBottom: "0px",
443
+ backgroundColor: "neutral.60"
444
+ }), (0, _react2.jsx)(_index.Box, {
445
+ variant: "navBar.sectionContainer",
446
+ paddingBottom: "xl"
447
+ }, (0, _react2.jsx)(_index.NavBarItem, {
448
+ "data-id": "nav-bar-item",
449
+ icon: _GlobeIcon["default"],
450
+ id: "Overview",
451
+ key: "Overview",
452
+ text: "Overview"
453
+ }), (0, _react2.jsx)(_index.NavBarSection, {
454
+ items: data,
455
+ hasSeparator: true,
456
+ "data-id": "first-nav-bar-section"
457
+ }), (0, _react2.jsx)(_index.NavBarSection, {
458
+ items: secondData,
459
+ hasSeparator: true,
460
+ title: "PingOne Services",
461
+ "data-id": "second-nav-bar-section"
462
+ }), (0, _react2.jsx)(_index.NavBarSection, {
463
+ items: customData,
464
+ "data-id": "third-nav-bar-section"
465
+ })));
466
+ };
467
+
468
+ exports.Controlled = Controlled;
@@ -2,9 +2,19 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
5
13
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
6
14
 
7
- var _react = _interopRequireDefault(require("react"));
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
+
17
+ var _react = _interopRequireWildcard(require("react"));
8
18
 
9
19
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
20
 
@@ -34,6 +44,10 @@ var _testWrapper = require("../../utils/testUtils/testWrapper");
34
44
 
35
45
  var _react2 = require("@emotion/react");
36
46
 
47
+ 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); }
48
+
49
+ 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; }
50
+
37
51
  var DATA_ID = 'data-id';
38
52
  var SECTION_BUTTON_DATA_ID = 'section-data-id';
39
53
  var data = [{
@@ -117,6 +131,58 @@ var getComponent = function getComponent() {
117
131
  }))));
118
132
  };
119
133
 
134
+ var ControlledComponent = function ControlledComponent() {
135
+ var _useState = (0, _react.useState)(''),
136
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
137
+ selectedKey = _useState2[0],
138
+ setSelectedKey = _useState2[1];
139
+
140
+ var setKeys = function setKeys(e) {
141
+ setSelectedKey(e);
142
+ };
143
+
144
+ var customData = [{
145
+ icon: _GlobeIcon["default"],
146
+ key: 'Environment',
147
+ heading: 'Environment title that is so long, it wraps',
148
+ children: [(0, _react2.jsx)(_.NavBarItemButton, {
149
+ key: "Click me for MFA Users",
150
+ id: "Click me for MFA Users",
151
+ onPress: function onPress() {
152
+ setSelectedKey('MFA Button Users');
153
+ }
154
+ }, "Click me for MFA Users"), (0, _react2.jsx)(_.NavBarItemButton, {
155
+ key: "Earth Button Group",
156
+ id: "Earth Button Group"
157
+ }, "Group")]
158
+ }];
159
+ return (0, _react2.jsx)(_NavBar["default"], {
160
+ setSelectedKey: setKeys,
161
+ selectedKey: selectedKey
162
+ }, (0, _react2.jsx)(_.Box, {
163
+ variant: "navBar.sectionContainer",
164
+ paddingBottom: "xl"
165
+ }, (0, _react2.jsx)(_.NavBarItem, {
166
+ id: "Overview",
167
+ key: "Overview",
168
+ text: "Overview",
169
+ icon: _ViewDashboardIcon["default"],
170
+ "data-testid": "navItem"
171
+ }), (0, _react2.jsx)(_.NavBarSection, {
172
+ items: data,
173
+ hasSeparator: true,
174
+ "data-id": "nav-bar-section"
175
+ }), (0, _react2.jsx)(_.NavBarSection, {
176
+ items: secondData,
177
+ hasSeparator: true,
178
+ title: "PingOne Services",
179
+ "data-id": "second-nav-bar-section"
180
+ }), (0, _react2.jsx)(_.NavBarSection, {
181
+ items: customData,
182
+ "data-id": "third-nav-bar-section"
183
+ })));
184
+ };
185
+
120
186
  var getComponentWithMultipleChildren = function getComponentWithMultipleChildren() {
121
187
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
122
188
  return (0, _testWrapper.render)((0, _react2.jsx)(_NavBar["default"], props, (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Link, {
@@ -142,6 +208,10 @@ test('should render basic nav with children', function () {
142
208
  getComponent();
143
209
  expect(_testWrapper.screen.queryByRole('navigation')).toBeInTheDocument();
144
210
  });
211
+ test('controlled: should render basic nav with children', function () {
212
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
213
+ expect(_testWrapper.screen.queryByRole('navigation')).toBeInTheDocument();
214
+ });
145
215
  test('should render title for sections that have titles', function () {
146
216
  getComponent();
147
217
  expect(_testWrapper.screen.getByText('test_title')).toBeInTheDocument();
@@ -163,6 +233,18 @@ test('should select NavItemLink', function () {
163
233
 
164
234
  expect(link).toHaveClass('is-selected');
165
235
  });
236
+ test('controlled: should select NavItemLink', function () {
237
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
238
+ var link;
239
+ clickHeaderButtons();
240
+ link = _testWrapper.screen.queryByTestId('navItemLink');
241
+ expect(link).toBeInTheDocument();
242
+
243
+ _userEvent["default"].click(link);
244
+
245
+ link = _testWrapper.screen.queryByTestId('navItemLink');
246
+ expect(link).toHaveClass('is-selected');
247
+ });
166
248
  test('should select NavItemLink on space key press', function () {
167
249
  getComponent();
168
250
  clickHeaderButtons();
@@ -178,6 +260,37 @@ test('should select NavItemLink on space key press', function () {
178
260
 
179
261
  expect(link).toHaveClass('is-selected');
180
262
  });
263
+ test('controlled: should select NavItemLink on space key press', function () {
264
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
265
+ var link;
266
+ clickHeaderButtons();
267
+ link = _testWrapper.screen.queryByTestId('navItemLink');
268
+ expect(link).toBeInTheDocument();
269
+
270
+ _testWrapper.fireEvent.keyDown(link, {
271
+ key: 'Space',
272
+ keyCode: 32
273
+ });
274
+
275
+ _testWrapper.fireEvent.keyUp(link, {
276
+ key: 'Space',
277
+ keyCode: 32
278
+ });
279
+
280
+ link = _testWrapper.screen.queryByTestId('navItemLink');
281
+ expect(link).toHaveClass('is-selected');
282
+ });
283
+ test('should select NavItem', function () {
284
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
285
+ var item;
286
+ item = _testWrapper.screen.queryByTestId('navItem');
287
+ expect(item).toBeInTheDocument();
288
+
289
+ _userEvent["default"].click(item);
290
+
291
+ item = _testWrapper.screen.queryByTestId('navItem');
292
+ expect(item).toHaveClass('is-selected');
293
+ });
181
294
  test('should select NavItem', function () {
182
295
  getComponent();
183
296
 
@@ -189,6 +302,17 @@ test('should select NavItem', function () {
189
302
 
190
303
  expect(item).toHaveClass('is-selected');
191
304
  });
305
+ test('controlled: should select NavItem', function () {
306
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
307
+ var item;
308
+ item = _testWrapper.screen.queryByTestId('navItem');
309
+ expect(item).toBeInTheDocument();
310
+
311
+ _userEvent["default"].click(item);
312
+
313
+ item = _testWrapper.screen.queryByTestId('navItem');
314
+ expect(item).toHaveClass('is-selected');
315
+ });
192
316
  test('should select NavItemButton', function () {
193
317
  getComponent();
194
318
  clickHeaderButtons();
@@ -201,6 +325,18 @@ test('should select NavItemButton', function () {
201
325
 
202
326
  expect(button).toHaveClass('is-selected');
203
327
  });
328
+ test('controlled: should select NavItemButton', function () {
329
+ (0, _testWrapper.render)((0, _react2.jsx)(ControlledComponent, null));
330
+ var button;
331
+ clickHeaderButtons();
332
+ button = _testWrapper.screen.queryByTestId('navItemButton');
333
+ expect(button).toBeInTheDocument();
334
+
335
+ _userEvent["default"].click(button);
336
+
337
+ button = _testWrapper.screen.queryByTestId('navItemButton');
338
+ expect(button).toHaveClass('is-selected');
339
+ });
204
340
  test('should collapse NavItemBody', function () {
205
341
  getComponent();
206
342
  expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
@@ -368,4 +504,34 @@ test('should render NavBarSection with data-id', function () {
368
504
  test('should render NavBarSection button with data-id', function () {
369
505
  getComponent();
370
506
  expect(_testWrapper.screen.getByTestId(SECTION_BUTTON_DATA_ID)).toHaveAttribute(DATA_ID);
507
+ });
508
+ test('passing in a string into defaultSelectedKeys makes the key selected by default, and the parent expanded by default ', function () {
509
+ getComponent({
510
+ defaultSelectedKey: 'Credentials Button Users'
511
+ });
512
+
513
+ var child = _testWrapper.screen.getByTestId('navItemButton');
514
+
515
+ expect(child).toBeInTheDocument();
516
+ expect(child).toHaveClass('is-selected');
517
+ });
518
+ test('when a child is selected, and the parent is collapsed, the parent has the is-selected class', function () {
519
+ getComponent({
520
+ defaultSelectedKey: 'Credentials Button Users'
521
+ });
522
+
523
+ var child = _testWrapper.screen.getByTestId('navItemButton');
524
+
525
+ expect(child).toBeInTheDocument();
526
+ expect(child).toHaveClass('is-selected');
527
+
528
+ var parent = _testWrapper.screen.queryByTestId(SECTION_BUTTON_DATA_ID);
529
+
530
+ expect(parent).not.toHaveClass('is-selected');
531
+
532
+ _userEvent["default"].click(parent);
533
+
534
+ var parentDiv = _testWrapper.screen.queryByTestId('Overview');
535
+
536
+ expect(parentDiv).toHaveClass('is-selected');
371
537
  });
@@ -18,8 +18,6 @@ exports["default"] = void 0;
18
18
 
19
19
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
20
 
21
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
22
-
23
21
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
24
22
 
25
23
  var _react = _interopRequireWildcard(require("react"));
@@ -47,8 +45,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
47
45
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
48
46
 
49
47
  var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
50
- var _context;
51
-
52
48
  var icon = props.icon,
53
49
  text = props.text,
54
50
  className = props.className,
@@ -76,7 +72,7 @@ var NavBarItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
72
  isFocusVisible = _useFocusRing2.isFocusVisible;
77
73
 
78
74
  var state = (0, _NavBarContext.useNavBarContext)();
79
- var isSelected = (0, _includes["default"])(_context = state.selectedKey).call(_context, key);
75
+ var isSelected = state.selectedKey === key;
80
76
 
81
77
  var _useNavBarPress = (0, _hooks.useNavBarPress)({
82
78
  key: key,
@@ -28,8 +28,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
28
28
 
29
29
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
30
30
 
31
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
32
-
33
31
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
34
32
 
35
33
  var _react = _interopRequireDefault(require("react"));
@@ -48,18 +46,16 @@ var _excluded = ["className", "id", "onPress", "sx"];
48
46
 
49
47
  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; }
50
48
 
51
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
52
50
 
53
51
  var NavBarItemButton = function NavBarItemButton(props) {
54
- var _context;
55
-
56
52
  var className = props.className,
57
53
  key = props.id,
58
54
  onPressCallback = props.onPress,
59
55
  sx = props.sx,
60
56
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
61
57
  var state = (0, _NavBarContext.useNavBarContext)();
62
- var isSelected = (0, _includes["default"])(_context = state.selectedKey).call(_context, key);
58
+ var isSelected = state.selectedKey === key;
63
59
 
64
60
  var _useNavBarPress = (0, _hooks.useNavBarPress)({
65
61
  key: key,
@@ -2,19 +2,27 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
5
7
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
8
 
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
7
13
  _Object$defineProperty(exports, "__esModule", {
8
14
  value: true
9
15
  });
10
16
 
11
17
  exports["default"] = void 0;
12
18
 
13
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
19
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
20
 
15
21
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
16
22
 
17
- var _react = _interopRequireDefault(require("react"));
23
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
24
+
25
+ var _react = _interopRequireWildcard(require("react"));
18
26
 
19
27
  var _propTypes = _interopRequireDefault(require("prop-types"));
20
28
 
@@ -30,8 +38,12 @@ var _hooks = require("../../hooks");
30
38
 
31
39
  var _react2 = require("@emotion/react");
32
40
 
41
+ 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); }
42
+
43
+ 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; }
44
+
33
45
  var NavBarItemHeader = function NavBarItemHeader(props) {
34
- var _navBarState$expanded, _context;
46
+ var _context;
35
47
 
36
48
  var item = props.item;
37
49
  var icon = item.icon,
@@ -39,11 +51,21 @@ var NavBarItemHeader = function NavBarItemHeader(props) {
39
51
  className = item.className,
40
52
  heading = item.heading;
41
53
  var navBarState = (0, _NavBarContext.useNavBarContext)();
42
- var isExpanded = (_navBarState$expanded = navBarState.expandedKeys) === null || _navBarState$expanded === void 0 ? void 0 : _navBarState$expanded.has(key);
54
+ var selectedKey = navBarState.selectedKey,
55
+ setExpandedKeys = navBarState.setExpandedKeys,
56
+ expandedKeys = navBarState.expandedKeys;
57
+ var isExpanded = (0, _includes["default"])(expandedKeys).call(expandedKeys, key);
43
58
  var array = (0, _map["default"])(_context = item.children).call(_context, function (i) {
44
59
  return i.key;
45
60
  });
46
61
  var childSelected = (0, _includes["default"])(array).call(array, navBarState.selectedKey);
62
+ (0, _react.useEffect)(function () {
63
+ if (childSelected && isExpanded === false) {
64
+ var _context2;
65
+
66
+ setExpandedKeys((0, _concat["default"])(_context2 = []).call(_context2, expandedKeys, [key]));
67
+ }
68
+ }, [selectedKey]);
47
69
 
48
70
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
49
71
  isSelected: childSelected && !isExpanded
@@ -53,7 +75,8 @@ var NavBarItemHeader = function NavBarItemHeader(props) {
53
75
  return (0, _react2.jsx)(_index.Box, {
54
76
  variant: "navBar.itemHeaderContainer",
55
77
  className: classNames,
56
- isRow: true
78
+ isRow: true,
79
+ "data-testid": heading
57
80
  }, icon && (0, _react2.jsx)(_index.Icon, {
58
81
  icon: icon,
59
82
  size: 20,
@@ -28,8 +28,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
28
28
 
29
29
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
30
30
 
31
- var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
32
-
33
31
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
34
32
 
35
33
  var _react = _interopRequireDefault(require("react"));
@@ -48,17 +46,15 @@ var _excluded = ["className", "id", "onPress"];
48
46
 
49
47
  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; }
50
48
 
51
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
49
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
52
50
 
53
51
  var NavBarItemLink = function NavBarItemLink(props) {
54
- var _context;
55
-
56
52
  var className = props.className,
57
53
  key = props.id,
58
54
  onPressCallback = props.onPress,
59
55
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
60
56
  var state = (0, _NavBarContext.useNavBarContext)();
61
- var isSelected = (0, _includes["default"])(_context = state.selectedKey).call(_context, key);
57
+ var isSelected = state.selectedKey === key;
62
58
 
63
59
  var _useNavBarPress = (0, _hooks.useNavBarPress)({
64
60
  key: key,