@pingux/astro 1.36.3-alpha.1 → 1.37.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/NavBar/NavBar.js +28 -20
- package/lib/cjs/components/NavBar/NavBar.stories.js +84 -18
- package/lib/cjs/components/NavBar/NavBar.test.js +167 -1
- package/lib/cjs/components/NavBarSection/NavBarItem.js +1 -5
- package/lib/cjs/components/NavBarSection/NavBarItemButton.js +2 -6
- package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +28 -5
- package/lib/cjs/components/NavBarSection/NavBarItemLink.js +2 -6
- package/lib/cjs/components/NavBarSection/NavBarSection.js +13 -5
- package/lib/cjs/templates/Nav/Nav.stories.js +9 -9
- package/lib/components/NavBar/NavBar.js +28 -19
- package/lib/components/NavBar/NavBar.stories.js +68 -16
- package/lib/components/NavBar/NavBar.test.js +134 -1
- package/lib/components/NavBarSection/NavBarItem.js +1 -5
- package/lib/components/NavBarSection/NavBarItemButton.js +2 -6
- package/lib/components/NavBarSection/NavBarItemHeader.js +19 -5
- package/lib/components/NavBarSection/NavBarItemLink.js +2 -6
- package/lib/components/NavBarSection/NavBarSection.js +14 -5
- package/lib/templates/Nav/Nav.stories.js +9 -9
- package/package.json +1 -1
@@ -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
|
60
|
-
|
61
|
-
|
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)(
|
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"])(
|
68
|
+
var _useProgressiveState = (0, _useProgressiveState3["default"])(selectedKeyProp, defaultSelectedKey),
|
71
69
|
_useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
|
72
|
-
|
73
|
-
|
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
|
-
}, [
|
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
|
-
|
138
|
+
defaultSelectedKey: _propTypes["default"].string,
|
140
139
|
|
141
140
|
/** The initial expanded keys in the collection (uncontrolled). */
|
142
141
|
defaultExpandedKeys: _isIterable.isIterableProp,
|
143
|
-
|
144
|
-
|
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
|
-
|
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 =
|
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.
|
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.
|
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.
|
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.
|
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
|
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 =
|
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
|
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 =
|
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
|
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
|
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
|
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
|
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
|
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 =
|
57
|
+
var isSelected = state.selectedKey === key;
|
62
58
|
|
63
59
|
var _useNavBarPress = (0, _hooks.useNavBarPress)({
|
64
60
|
key: key,
|