@pingux/astro 2.81.0-alpha.0 → 2.81.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.
- package/lib/cjs/components/NavBar/NavBar.styles.d.ts +30 -0
- package/lib/cjs/components/NavBar/NavBar.styles.js +34 -1
- package/lib/cjs/components/NavBarSection/NavBarItemLink.js +1 -4
- package/lib/cjs/components/NavSideBar/Icon.test.d.ts +1 -0
- package/lib/cjs/components/NavSideBar/Icon.test.js +67 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.js +115 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.mdx +42 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.stories.d.ts +8 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.stories.js +1344 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.test.d.ts +1 -0
- package/lib/cjs/components/NavSideBar/NavSideBar.test.js +311 -0
- package/lib/cjs/components/NavSideBar/NavSideBarHeader.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarHeader.js +33 -0
- package/lib/cjs/components/NavSideBar/NavSideBarItem.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarItem.js +112 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSection.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSection.js +122 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSectionHeader.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSectionHeader.js +98 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSectionItem.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSectionItem.js +81 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSubTitle.d.ts +4 -0
- package/lib/cjs/components/NavSideBar/NavSideBarSubTitle.js +25 -0
- package/lib/cjs/components/NavSideBar/icons.d.ts +15 -0
- package/lib/cjs/components/NavSideBar/icons.js +174 -0
- package/lib/cjs/components/NavSideBar/index.d.ts +5 -0
- package/lib/cjs/components/NavSideBar/index.js +42 -0
- package/lib/cjs/hooks/useNavBarStyling/useNavBarStyling.d.ts +1 -0
- package/lib/cjs/hooks/useNavBarStyling/useNavBarStyling.js +14 -3
- package/lib/cjs/hooks/useNavBarStyling/useNavBarStyling.test.js +1 -1
- package/lib/cjs/index.d.ts +2 -0
- package/lib/cjs/index.js +54 -35
- package/lib/cjs/types/index.d.ts +1 -0
- package/lib/cjs/types/index.js +28 -17
- package/lib/cjs/types/link.d.ts +1 -0
- package/lib/cjs/types/navSideBar.d.ts +75 -0
- package/lib/cjs/types/navSideBar.js +6 -0
- package/lib/components/NavBar/NavBar.styles.js +34 -1
- package/lib/components/NavBarSection/NavBarItemLink.js +1 -4
- package/lib/components/NavSideBar/Icon.test.js +58 -0
- package/lib/components/NavSideBar/NavSideBar.js +101 -0
- package/lib/components/NavSideBar/NavSideBar.mdx +42 -0
- package/lib/components/NavSideBar/NavSideBar.stories.js +1326 -0
- package/lib/components/NavSideBar/NavSideBar.test.js +308 -0
- package/lib/components/NavSideBar/NavSideBarHeader.js +19 -0
- package/lib/components/NavSideBar/NavSideBarItem.js +98 -0
- package/lib/components/NavSideBar/NavSideBarSection.js +108 -0
- package/lib/components/NavSideBar/NavSideBarSectionHeader.js +84 -0
- package/lib/components/NavSideBar/NavSideBarSectionItem.js +69 -0
- package/lib/components/NavSideBar/NavSideBarSubTitle.js +16 -0
- package/lib/components/NavSideBar/icons.js +102 -0
- package/lib/components/NavSideBar/index.js +5 -0
- package/lib/hooks/useNavBarStyling/useNavBarStyling.js +14 -3
- package/lib/hooks/useNavBarStyling/useNavBarStyling.test.js +1 -1
- package/lib/index.js +2 -0
- package/lib/types/index.js +1 -0
- package/lib/types/navSideBar.js +1 -0
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,311 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
6
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
7
|
+
var _index = require("../../index");
|
8
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
9
|
+
var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
|
10
|
+
var _icons = require("./icons");
|
11
|
+
var _NavSideBar = _interopRequireDefault(require("./NavSideBar"));
|
12
|
+
var _react2 = require("@emotion/react");
|
13
|
+
var onKeyDownProp = jest.fn();
|
14
|
+
var getComponent = function getComponent() {
|
15
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
16
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_NavSideBar["default"], props, (0, _react2.jsx)(_index.NavSideBarHeader, {
|
17
|
+
linkProps: {
|
18
|
+
href: 'https://pingidentity.com/',
|
19
|
+
target: '_blank'
|
20
|
+
},
|
21
|
+
logo: _icons.Logo
|
22
|
+
}), (0, _react2.jsx)(_index.Separator, {
|
23
|
+
m: "0",
|
24
|
+
backgroundColor: "neutral.60",
|
25
|
+
key: "top-separator"
|
26
|
+
}), (0, _react2.jsx)(_index.Box, {
|
27
|
+
variant: "navBar.sectionContainer",
|
28
|
+
paddingBottom: "xl",
|
29
|
+
key: "first-section-container"
|
30
|
+
}, (0, _react2.jsx)(_index.NavSideBarItem, {
|
31
|
+
key: "Overview",
|
32
|
+
icon: _icons.GlobeIcon,
|
33
|
+
id: "Overview",
|
34
|
+
"data-testid": "navItem"
|
35
|
+
}, "Overview"), (0, _react2.jsx)(_index.NavSideBarSection, {
|
36
|
+
title: "Dashboard",
|
37
|
+
key: "Dashboard",
|
38
|
+
id: "Dashboard",
|
39
|
+
icon: _icons.ViewDashboard
|
40
|
+
}, (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
41
|
+
key: "Dashboard Link Group",
|
42
|
+
linkProps: {
|
43
|
+
href: 'https://pingidentity.com/'
|
44
|
+
},
|
45
|
+
"data-testid": "navItemLink"
|
46
|
+
}, "Group"), (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
47
|
+
key: "Dashboard Link Populations",
|
48
|
+
"data-testid": "navItemButton"
|
49
|
+
}, "Populations")), (0, _react2.jsx)(_index.NavSideBarSection, {
|
50
|
+
title: "MFA",
|
51
|
+
key: "MFA",
|
52
|
+
id: "MFA",
|
53
|
+
icon: _icons.Fingerprint
|
54
|
+
}, (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
55
|
+
key: "MFA Button Users"
|
56
|
+
}, "Users"), (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
57
|
+
key: "PingOne Services"
|
58
|
+
}), (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
59
|
+
key: "MFA Button Group"
|
60
|
+
}, "Group Test")), (0, _react2.jsx)(_index.NavSideBarItem, {
|
61
|
+
key: "DaVinci",
|
62
|
+
id: "DaVinci",
|
63
|
+
"data-testid": "navBarItemLink",
|
64
|
+
icon: _icons.ViewGridPlusOutline,
|
65
|
+
customIcon: _icons.OpenInNew,
|
66
|
+
linkProps: {
|
67
|
+
href: 'https://pingidentity.com/'
|
68
|
+
}
|
69
|
+
}, "DaVinci"), (0, _react2.jsx)(_index.NavSideBarSection, {
|
70
|
+
title: "Environment title that is so long, it wraps",
|
71
|
+
key: "Environment",
|
72
|
+
id: "Environment",
|
73
|
+
icon: _icons.Earth
|
74
|
+
}, (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
75
|
+
key: "Earth Button Users"
|
76
|
+
}, "Users"), (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
77
|
+
key: "Earth Button Group"
|
78
|
+
}, "Group")), (0, _react2.jsx)(_index.NavSideBarSection, {
|
79
|
+
title: "Credentials",
|
80
|
+
key: "Credentials",
|
81
|
+
id: "Credentials",
|
82
|
+
"data-testid": "Credentials",
|
83
|
+
icon: _icons.EmoticonHappy,
|
84
|
+
onKeyDown: onKeyDownProp
|
85
|
+
}, (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
86
|
+
key: "Credentials Button Users"
|
87
|
+
}, "Users"), (0, _react2.jsx)(_index.NavSideBarSectionItem, {
|
88
|
+
key: "Credentials Button Group"
|
89
|
+
}, "Group")))));
|
90
|
+
};
|
91
|
+
|
92
|
+
// Needs to be added to each components test file
|
93
|
+
(0, _universalComponentTest.universalComponentTests)({
|
94
|
+
renderComponent: function renderComponent(props) {
|
95
|
+
return (0, _react2.jsx)(_NavSideBar["default"], props, (0, _react2.jsx)(_index.NavSideBarItem, {
|
96
|
+
key: "Overview",
|
97
|
+
icon: _icons.GlobeIcon,
|
98
|
+
id: "Overview"
|
99
|
+
}, "Overview"));
|
100
|
+
}
|
101
|
+
});
|
102
|
+
var clickHeaderButtons = function clickHeaderButtons() {
|
103
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
104
|
+
(0, _forEach["default"])(headerButtons).call(headerButtons, function (button) {
|
105
|
+
return _userEvent["default"].click(button);
|
106
|
+
});
|
107
|
+
};
|
108
|
+
test('should render basic nav with children', function () {
|
109
|
+
getComponent();
|
110
|
+
expect(_testWrapper.screen.queryByRole('navigation')).toBeInTheDocument();
|
111
|
+
});
|
112
|
+
test('should render title for sections that have titles', function () {
|
113
|
+
getComponent();
|
114
|
+
expect(_testWrapper.screen.getByText('Dashboard')).toBeInTheDocument();
|
115
|
+
});
|
116
|
+
test('should select NavItemLink', function () {
|
117
|
+
getComponent();
|
118
|
+
clickHeaderButtons();
|
119
|
+
var link = _testWrapper.screen.getByTestId('navItemLink');
|
120
|
+
expect(link).toBeInTheDocument();
|
121
|
+
_userEvent["default"].click(link);
|
122
|
+
expect(link).toHaveClass('is-selected');
|
123
|
+
});
|
124
|
+
test('should select NavItemLink on space key press', function () {
|
125
|
+
getComponent();
|
126
|
+
clickHeaderButtons();
|
127
|
+
var link = _testWrapper.screen.getByTestId('navItemLink');
|
128
|
+
expect(link).toBeInTheDocument();
|
129
|
+
_testWrapper.fireEvent.keyDown(link, {
|
130
|
+
key: 'Space',
|
131
|
+
keyCode: 32
|
132
|
+
});
|
133
|
+
expect(link).toHaveClass('is-selected');
|
134
|
+
});
|
135
|
+
test('should select NavItem', function () {
|
136
|
+
getComponent();
|
137
|
+
var item;
|
138
|
+
item = _testWrapper.screen.queryByTestId('navItem');
|
139
|
+
expect(item).toBeInTheDocument();
|
140
|
+
_userEvent["default"].click(item);
|
141
|
+
item = _testWrapper.screen.queryByTestId('navItem');
|
142
|
+
expect(item).toHaveClass('is-selected');
|
143
|
+
});
|
144
|
+
test('should select NavItemButton', function () {
|
145
|
+
getComponent();
|
146
|
+
clickHeaderButtons();
|
147
|
+
var button = _testWrapper.screen.getByTestId('navItemButton');
|
148
|
+
expect(button).toBeInTheDocument();
|
149
|
+
_userEvent["default"].click(button);
|
150
|
+
expect(button).toHaveClass('is-selected');
|
151
|
+
});
|
152
|
+
test('should collapse NavItemBody', function () {
|
153
|
+
getComponent();
|
154
|
+
expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
|
155
|
+
clickHeaderButtons();
|
156
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toBeInTheDocument();
|
157
|
+
clickHeaderButtons();
|
158
|
+
expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
|
159
|
+
});
|
160
|
+
test('should collapse NavItemBody on Escape key press', function () {
|
161
|
+
getComponent();
|
162
|
+
clickHeaderButtons();
|
163
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toBeInTheDocument();
|
164
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
165
|
+
(0, _forEach["default"])(headerButtons).call(headerButtons, function (headerButton) {
|
166
|
+
return _testWrapper.fireEvent.keyDown(headerButton, {
|
167
|
+
key: 'Escape',
|
168
|
+
keyCode: 27
|
169
|
+
});
|
170
|
+
});
|
171
|
+
expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
|
172
|
+
});
|
173
|
+
test('should change focus between NavBarItemHeader on arrow key press', function () {
|
174
|
+
getComponent();
|
175
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
176
|
+
expect(headerButtons[0]).toBeInTheDocument();
|
177
|
+
headerButtons[0].focus();
|
178
|
+
expect(headerButtons[0]).toHaveClass('is-focused');
|
179
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
180
|
+
key: 'ArrowDown',
|
181
|
+
keyCode: 40
|
182
|
+
});
|
183
|
+
expect(headerButtons[1]).toHaveClass('is-focused');
|
184
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
185
|
+
key: 'ArrowRight',
|
186
|
+
keyCode: 39
|
187
|
+
});
|
188
|
+
expect(headerButtons[2]).toHaveClass('is-focused');
|
189
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
190
|
+
key: 'ArrowLeft',
|
191
|
+
keyCode: 37
|
192
|
+
});
|
193
|
+
expect(headerButtons[1]).toHaveClass('is-focused');
|
194
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
195
|
+
key: 'ArrowUp',
|
196
|
+
keyCode: 38
|
197
|
+
});
|
198
|
+
expect(headerButtons[0]).toHaveClass('is-focused');
|
199
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
200
|
+
key: 'Shift',
|
201
|
+
keyCode: 16
|
202
|
+
});
|
203
|
+
expect(headerButtons[0]).toHaveClass('is-focused');
|
204
|
+
});
|
205
|
+
test('should not change focus from NavItemBody to NavBarItemHeader on up/down arrow key press', function () {
|
206
|
+
getComponent();
|
207
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
208
|
+
expect(headerButtons[1]).toBeInTheDocument();
|
209
|
+
headerButtons[1].click();
|
210
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
211
|
+
key: 'ArrowDown',
|
212
|
+
keyCode: 40
|
213
|
+
});
|
214
|
+
expect(_testWrapper.screen.getByTestId('navItemLink')).toHaveClass('is-focused');
|
215
|
+
expect(document.activeElement).toHaveTextContent('Group');
|
216
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemLink'), {
|
217
|
+
key: 'ArrowUp',
|
218
|
+
keyCode: 38
|
219
|
+
});
|
220
|
+
expect(_testWrapper.screen.getByTestId('navItemLink')).toHaveClass('is-focused');
|
221
|
+
expect(document.activeElement).toHaveTextContent('Group');
|
222
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemLink'), {
|
223
|
+
key: 'ArrowDown',
|
224
|
+
keyCode: 40
|
225
|
+
});
|
226
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toHaveClass('is-focused');
|
227
|
+
expect(document.activeElement).toHaveTextContent('Populations');
|
228
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemButton'), {
|
229
|
+
key: 'ArrowDown',
|
230
|
+
keyCode: 40
|
231
|
+
});
|
232
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toHaveClass('is-focused');
|
233
|
+
expect(document.activeElement).toHaveTextContent('Populations');
|
234
|
+
});
|
235
|
+
test('should not change focus from NavItemBody to NavBarItemHeader on left/right arrow key press', function () {
|
236
|
+
getComponent();
|
237
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
238
|
+
expect(headerButtons[1]).toBeInTheDocument();
|
239
|
+
headerButtons[1].click();
|
240
|
+
_testWrapper.fireEvent.keyDown(headerButtons[0], {
|
241
|
+
key: 'ArrowRight',
|
242
|
+
keyCode: 39
|
243
|
+
});
|
244
|
+
expect(_testWrapper.screen.getByTestId('navItemLink')).toHaveClass('is-focused');
|
245
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemLink'), {
|
246
|
+
key: 'ArrowLeft',
|
247
|
+
keyCode: 37
|
248
|
+
});
|
249
|
+
expect(_testWrapper.screen.getByTestId('navItemLink')).toHaveClass('is-focused');
|
250
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemLink'), {
|
251
|
+
key: 'ArrowRight',
|
252
|
+
keyCode: 39
|
253
|
+
});
|
254
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toHaveClass('is-focused');
|
255
|
+
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByTestId('navItemButton'), {
|
256
|
+
key: 'ArrowRight',
|
257
|
+
keyCode: 39
|
258
|
+
});
|
259
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toHaveClass('is-focused');
|
260
|
+
});
|
261
|
+
test('passing in a string into defaultSelectedKeys makes the key selected by default, and the parent expanded by default ', function () {
|
262
|
+
getComponent({
|
263
|
+
defaultSelectedKey: 'Dashboard Link Populations'
|
264
|
+
});
|
265
|
+
var child = _testWrapper.screen.getByTestId('navItemButton');
|
266
|
+
expect(child).toBeInTheDocument();
|
267
|
+
expect(child).toHaveClass('is-selected');
|
268
|
+
});
|
269
|
+
test('expand only one item', function () {
|
270
|
+
getComponent({
|
271
|
+
isAutoСollapsible: true
|
272
|
+
});
|
273
|
+
expect(_testWrapper.screen.queryByText('Group')).not.toBeInTheDocument();
|
274
|
+
expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
|
275
|
+
var headerButtons = _testWrapper.screen.getAllByRole('button');
|
276
|
+
_userEvent["default"].click(headerButtons[1]);
|
277
|
+
expect(_testWrapper.screen.queryByText('Group')).toBeInTheDocument();
|
278
|
+
expect(_testWrapper.screen.queryByText('Users')).not.toBeInTheDocument();
|
279
|
+
_userEvent["default"].click(headerButtons[2]);
|
280
|
+
expect(_testWrapper.screen.queryByText('Group')).not.toBeInTheDocument();
|
281
|
+
expect(_testWrapper.screen.queryByText('Users')).toBeInTheDocument();
|
282
|
+
});
|
283
|
+
test('default expended keys', function () {
|
284
|
+
getComponent({
|
285
|
+
isAutoСollapsible: true,
|
286
|
+
defaultExpandedKeys: ['Dashboard']
|
287
|
+
});
|
288
|
+
expect(_testWrapper.screen.getByTestId('navItemLink')).toBeInTheDocument();
|
289
|
+
expect(_testWrapper.screen.getByTestId('navItemButton')).toBeInTheDocument();
|
290
|
+
});
|
291
|
+
test('when a child is selected, and the parent is collapsed, the parent has the is-selected class', function () {
|
292
|
+
getComponent({
|
293
|
+
defaultSelectedKey: 'Dashboard Link Populations'
|
294
|
+
});
|
295
|
+
var child = _testWrapper.screen.getByTestId('navItemButton');
|
296
|
+
expect(child).toBeInTheDocument();
|
297
|
+
expect(child).toHaveClass('is-selected');
|
298
|
+
var parent = _testWrapper.screen.getByTestId('Dashboard');
|
299
|
+
expect(parent).not.toHaveClass('is-selected');
|
300
|
+
_userEvent["default"].click(parent);
|
301
|
+
var parentDiv = _testWrapper.screen.getByTestId('Dashboard').firstElementChild;
|
302
|
+
expect(parentDiv).toHaveClass('is-selected');
|
303
|
+
});
|
304
|
+
test('calls onKeyDownProp when a key is pressed', function () {
|
305
|
+
getComponent();
|
306
|
+
var header = _testWrapper.screen.getByText('Credentials');
|
307
|
+
_testWrapper.fireEvent.keyDown(header, {
|
308
|
+
key: 'Enter'
|
309
|
+
});
|
310
|
+
expect(onKeyDownProp).toHaveBeenCalled();
|
311
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports["default"] = void 0;
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
13
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
var _hooks = require("../../hooks");
|
16
|
+
var _index = require("../../index");
|
17
|
+
var _react2 = require("@emotion/react");
|
18
|
+
var _excluded = ["linkProps", "logo"];
|
19
|
+
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); }
|
20
|
+
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; }
|
21
|
+
var NavSideBarHeader = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
22
|
+
var linkProps = props.linkProps,
|
23
|
+
logo = props.logo,
|
24
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
25
|
+
var NavSideBarHeaderRef = (0, _hooks.useLocalOrForwardRef)(ref);
|
26
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
27
|
+
p: "md"
|
28
|
+
}, others, {
|
29
|
+
ref: NavSideBarHeaderRef
|
30
|
+
}), (0, _react2.jsx)(_index.Link, linkProps, logo));
|
31
|
+
});
|
32
|
+
var _default = NavSideBarHeader;
|
33
|
+
exports["default"] = _default;
|
@@ -0,0 +1,112 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports["default"] = void 0;
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
13
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
|
+
var _reactAria = require("react-aria");
|
16
|
+
var _interactions = require("@react-aria/interactions");
|
17
|
+
var _NavBarContext = require("../../context/NavBarContext");
|
18
|
+
var _hooks = require("../../hooks");
|
19
|
+
var _index = require("../../index");
|
20
|
+
var _react2 = require("@emotion/react");
|
21
|
+
var _excluded = ["children", "icon", "className", "id", "onPress", "customIcon", "iconProps", "customIconProps"];
|
22
|
+
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); }
|
23
|
+
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; }
|
24
|
+
var NavSideBarItem = function NavSideBarItem(props) {
|
25
|
+
var children = props.children,
|
26
|
+
linkProps = props.linkProps;
|
27
|
+
if (linkProps && linkProps !== null && linkProps !== void 0 && linkProps.href) {
|
28
|
+
return (0, _react2.jsx)(_index.Link, linkProps, (0, _react2.jsx)(ChildWrapper, props, children));
|
29
|
+
}
|
30
|
+
return (0, _react2.jsx)(_index.Button, {
|
31
|
+
variant: "link",
|
32
|
+
sx: {
|
33
|
+
width: '100%',
|
34
|
+
display: 'block'
|
35
|
+
}
|
36
|
+
}, (0, _react2.jsx)(ChildWrapper, props, children));
|
37
|
+
};
|
38
|
+
var ChildWrapper = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
39
|
+
var children = props.children,
|
40
|
+
icon = props.icon,
|
41
|
+
className = props.className,
|
42
|
+
key = props.id,
|
43
|
+
onPressCallback = props.onPress,
|
44
|
+
customIcon = props.customIcon,
|
45
|
+
iconProps = props.iconProps,
|
46
|
+
customIconProps = props.customIconProps,
|
47
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
48
|
+
var navItemRef = (0, _hooks.useLocalOrForwardRef)(ref);
|
49
|
+
var _useHover = (0, _interactions.useHover)({}),
|
50
|
+
hoverProps = _useHover.hoverProps,
|
51
|
+
isHovered = _useHover.isHovered;
|
52
|
+
var _useFocusRing = (0, _reactAria.useFocusRing)({
|
53
|
+
within: true
|
54
|
+
}),
|
55
|
+
focusWithinProps = _useFocusRing.focusProps;
|
56
|
+
var _useFocusRing2 = (0, _reactAria.useFocusRing)(),
|
57
|
+
focusProps = _useFocusRing2.focusProps,
|
58
|
+
isFocusVisible = _useFocusRing2.isFocusVisible;
|
59
|
+
var state = (0, _NavBarContext.useNavBarContext)();
|
60
|
+
var isSelected = state.selectedKey === key;
|
61
|
+
var _useNavBarPress = (0, _hooks.useNavBarPress)({
|
62
|
+
key: key,
|
63
|
+
onPressCallback: onPressCallback
|
64
|
+
}, state),
|
65
|
+
onNavPress = _useNavBarPress.onNavPress;
|
66
|
+
var _usePress = (0, _interactions.usePress)({
|
67
|
+
ref: navItemRef,
|
68
|
+
onPress: onNavPress
|
69
|
+
}),
|
70
|
+
pressProps = _usePress.pressProps,
|
71
|
+
isPressed = _usePress.isPressed;
|
72
|
+
var mergedProps = (0, _reactAria.mergeProps)(pressProps, hoverProps, focusWithinProps, focusProps, others);
|
73
|
+
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
74
|
+
isPressed: isPressed,
|
75
|
+
isHovered: isHovered,
|
76
|
+
isSelected: isSelected,
|
77
|
+
isFocused: isFocusVisible
|
78
|
+
}),
|
79
|
+
classNames = _useStatusClasses.classNames;
|
80
|
+
return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
81
|
+
id: key,
|
82
|
+
variant: state.navStyles.navBarItem,
|
83
|
+
isRow: true,
|
84
|
+
alignItems: "center",
|
85
|
+
className: classNames,
|
86
|
+
ref: navItemRef
|
87
|
+
}, mergedProps, {
|
88
|
+
sx: {
|
89
|
+
flexGrow: 0
|
90
|
+
},
|
91
|
+
role: "none"
|
92
|
+
}), icon && (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
|
93
|
+
icon: icon,
|
94
|
+
title: {
|
95
|
+
name: children
|
96
|
+
},
|
97
|
+
size: state.navStyles.navBarItemHeaderIconSize,
|
98
|
+
variant: isSelected ? state.navStyles.navBarItemIconSelected : state.navStyles.navBarItemIcon
|
99
|
+
}, iconProps)), (0, _react2.jsx)(_index.Text, {
|
100
|
+
variant: state.navStyles.navBarItemText
|
101
|
+
}, children), customIcon && (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
|
102
|
+
icon: customIcon,
|
103
|
+
size: state.navStyles.navBarItemHeaderIconSize,
|
104
|
+
variant: isSelected ? state.navStyles.navBarItemCustomIconSelected : state.navStyles.navBarItemCustomIcon
|
105
|
+
}, customIconProps, {
|
106
|
+
title: {
|
107
|
+
name: 'Action Icon'
|
108
|
+
}
|
109
|
+
})));
|
110
|
+
});
|
111
|
+
var _default = NavSideBarItem;
|
112
|
+
exports["default"] = _default;
|
@@ -0,0 +1,122 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports["default"] = void 0;
|
12
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
13
|
+
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
|
14
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
15
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
16
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
17
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
18
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
19
|
+
var _react = _interopRequireWildcard(require("react"));
|
20
|
+
var _focus = require("@react-aria/focus");
|
21
|
+
var _interactions = require("@react-aria/interactions");
|
22
|
+
var _NavBarContext = require("../../context/NavBarContext");
|
23
|
+
var _index = require("../../index");
|
24
|
+
var _NavSideBarSectionHeader = _interopRequireDefault(require("./NavSideBarSectionHeader"));
|
25
|
+
var _react2 = require("@emotion/react");
|
26
|
+
var _excluded = ["children", "title", "icon", "id", "onKeyDown", "headerProps"];
|
27
|
+
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); }
|
28
|
+
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; }
|
29
|
+
var NavSideBarSection = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
30
|
+
var children = props.children,
|
31
|
+
title = props.title,
|
32
|
+
icon = props.icon,
|
33
|
+
id = props.id,
|
34
|
+
onKeyDownProp = props.onKeyDown,
|
35
|
+
headerProps = props.headerProps,
|
36
|
+
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
37
|
+
var navBarState = (0, _NavBarContext.useNavBarContext)();
|
38
|
+
var isAutoСollapsible = navBarState.isAutoСollapsible,
|
39
|
+
expandedKeys = navBarState.expandedKeys,
|
40
|
+
setExpandedKeys = navBarState.setExpandedKeys;
|
41
|
+
var isExpanded = (0, _includes["default"])(expandedKeys).call(expandedKeys, id);
|
42
|
+
var firstChildKey = (0, _isArray["default"])(children) && children.length && children[0].key !== undefined ? children[0].key : null;
|
43
|
+
var lastChildKey = (0, _isArray["default"])(children) && children.length && children[children.length - 1].key !== undefined ? children[children.length - 1].key : null;
|
44
|
+
var onExpandedChange = function onExpandedChange(isOpen) {
|
45
|
+
var newArray;
|
46
|
+
if (isOpen) {
|
47
|
+
var _context;
|
48
|
+
newArray = isAutoСollapsible ? [id] : (0, _concat["default"])(_context = []).call(_context, expandedKeys, [id]);
|
49
|
+
} else {
|
50
|
+
newArray = (0, _filter["default"])(expandedKeys).call(expandedKeys, function (thisKey) {
|
51
|
+
return thisKey !== id;
|
52
|
+
});
|
53
|
+
}
|
54
|
+
setExpandedKeys(newArray);
|
55
|
+
};
|
56
|
+
var focusManager = (0, _focus.useFocusManager)();
|
57
|
+
var _onKeyDown = function onKeyDown(e, childKey) {
|
58
|
+
var _e$target;
|
59
|
+
switch (e.which) {
|
60
|
+
case 37:
|
61
|
+
case 38:
|
62
|
+
if (firstChildKey && childKey !== firstChildKey) {
|
63
|
+
focusManager.focusPrevious();
|
64
|
+
}
|
65
|
+
e.preventDefault();
|
66
|
+
break;
|
67
|
+
case 39:
|
68
|
+
case 40:
|
69
|
+
if (lastChildKey && childKey !== lastChildKey) {
|
70
|
+
focusManager.focusNext();
|
71
|
+
}
|
72
|
+
e.preventDefault();
|
73
|
+
break;
|
74
|
+
case 27:
|
75
|
+
onExpandedChange(false);
|
76
|
+
break;
|
77
|
+
case 32:
|
78
|
+
if (childKey && (_e$target = e.target) !== null && _e$target !== void 0 && _e$target.href) {
|
79
|
+
e.target.click();
|
80
|
+
}
|
81
|
+
break;
|
82
|
+
default:
|
83
|
+
break;
|
84
|
+
}
|
85
|
+
if (onKeyDownProp) {
|
86
|
+
onKeyDownProp(e);
|
87
|
+
}
|
88
|
+
};
|
89
|
+
var _useKeyboard = (0, _interactions.useKeyboard)({
|
90
|
+
onKeyDown: function onKeyDown(e) {
|
91
|
+
_onKeyDown(e, undefined);
|
92
|
+
e.continuePropagation();
|
93
|
+
}
|
94
|
+
}),
|
95
|
+
keyboardProps = _useKeyboard.keyboardProps;
|
96
|
+
var expendedBoxId = "expanded-container-".concat(id);
|
97
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_NavSideBarSectionHeader["default"], (0, _extends2["default"])({
|
98
|
+
items: children,
|
99
|
+
id: id,
|
100
|
+
"aria-controls": isExpanded ? expendedBoxId : undefined,
|
101
|
+
icon: icon
|
102
|
+
}, keyboardProps, {
|
103
|
+
onExpandedChange: onExpandedChange
|
104
|
+
}, headerProps), title), isExpanded && (0, _react2.jsx)(_index.Box, {
|
105
|
+
id: expendedBoxId,
|
106
|
+
role: "region"
|
107
|
+
}, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
|
108
|
+
as: "ul",
|
109
|
+
ref: ref,
|
110
|
+
variant: navBarState.navStyles.navBarSectionList
|
111
|
+
}, others), (0, _map["default"])(_react.Children).call(_react.Children, children, function (child) {
|
112
|
+
return (0, _react2.jsx)(_index.Box, {
|
113
|
+
as: "li",
|
114
|
+
variant: navBarState.navStyles.navBarItemHeaderListItem
|
115
|
+
}, /*#__PURE__*/_react["default"].isValidElement(child) ? /*#__PURE__*/_react["default"].cloneElement(child, {
|
116
|
+
onKeyDown: _onKeyDown,
|
117
|
+
id: child.key
|
118
|
+
}) : child);
|
119
|
+
}))));
|
120
|
+
});
|
121
|
+
var _default = NavSideBarSection;
|
122
|
+
exports["default"] = _default;
|