@learningpool/ui 1.12.2 → 1.13.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/components/navigation/VerticalNavigation/VerticalNavigation.js +16 -4
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatar.js +20 -3
- package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.js +8 -3
- package/components/stream/AppSwitcher/AppSwitcher.d.ts +1 -1
- package/components/stream/AppSwitcher/AppSwitcher.js +22 -4
- package/package.json +1 -1
- package/types/components/navigation/VerticalNavigation.d.ts +2 -0
- package/types/components/navigation/VerticalNavigationAvatar.d.ts +1 -0
|
@@ -71,9 +71,21 @@ var VerticalNavigation = function (props) {
|
|
|
71
71
|
/**
|
|
72
72
|
* Toggles display of the Stream suite application dialog.
|
|
73
73
|
*/
|
|
74
|
-
var
|
|
74
|
+
var handleToggleAppSwitcher = function () {
|
|
75
|
+
if (isAvatarOpen) {
|
|
76
|
+
setIsAvatarOpen(false);
|
|
77
|
+
}
|
|
75
78
|
setIsAppSwitcherOpen(!isAppSwitcherOpen);
|
|
76
79
|
};
|
|
80
|
+
/**
|
|
81
|
+
* Toggles display of the avatar dialog.
|
|
82
|
+
*/
|
|
83
|
+
var handleToggleAvatarPanel = function () {
|
|
84
|
+
if (isAppSwitcherOpen) {
|
|
85
|
+
setIsAppSwitcherOpen(false);
|
|
86
|
+
}
|
|
87
|
+
setIsAvatarOpen(!isAvatarOpen);
|
|
88
|
+
};
|
|
77
89
|
var logoHeight = 38;
|
|
78
90
|
var logoWidth = 38;
|
|
79
91
|
useEffect(function () { return setIsDrawerOpen(propIsDrawerOpen !== null && propIsDrawerOpen !== void 0 ? propIsDrawerOpen : false); }, [propIsDrawerOpen]);
|
|
@@ -228,15 +240,15 @@ var VerticalNavigation = function (props) {
|
|
|
228
240
|
var _a;
|
|
229
241
|
return (_createElement(VerticalNavigationItem, __assign({}, item, { "data-id": dataIds.VerticalNavigationSecondaryListItem, key: "".concat(item.label, " - ").concat(index), index: index, isDrawerOpen: isDrawerOpen || isPersistent, isSecondary: true, style: animationRefs.current[((_a = items === null || items === void 0 ? void 0 : items.length) !== null && _a !== void 0 ? _a : 0) + index + 1] })));
|
|
230
242
|
}), hasStreamHome
|
|
231
|
-
? (_jsx(VerticalNavigationItem, { "data-id": dataIds.VerticalNavigationAppSwitcherToggle, label: messages['app-switcher'], icon: _jsx(AppsIcon, {}), onClick:
|
|
243
|
+
? (_jsx(VerticalNavigationItem, { id: dataIds.VerticalNavigationAppSwitcherToggle, "data-id": dataIds.VerticalNavigationAppSwitcherToggle, label: messages['app-switcher'], icon: _jsx(AppsIcon, {}), onClick: handleToggleAppSwitcher, content: (_jsx(AppSwitcher, { isAppSwitcherOpen: isAppSwitcherOpen, handleToggleAppSwitcher: handleToggleAppSwitcher, applications: streamHomeApplications, apiKey: streamHomeApiKey !== null && streamHomeApiKey !== void 0 ? streamHomeApiKey : '', baseUrl: streamHomeBaseUrl !== null && streamHomeBaseUrl !== void 0 ? streamHomeBaseUrl : '', token: streamHomeAccessToken !== null && streamHomeAccessToken !== void 0 ? streamHomeAccessToken : '', isDrawerOpen: isDrawerOpen, hideStreamHomeButton: hideStreamHomeButton || false, StreamHomeUrl: StreamHomeUrl !== null && StreamHomeUrl !== void 0 ? StreamHomeUrl : Constants.DefaultStreamHomeUrl })), isDrawerOpen: isDrawerOpen || isPersistent, isSecondary: true, hasCustomContent: true, style: animationRefs.current[((_a = items === null || items === void 0 ? void 0 : items.length) !== null && _a !== void 0 ? _a : 0) + ((_b = defaultSupportLinks === null || defaultSupportLinks === void 0 ? void 0 : defaultSupportLinks.length) !== null && _b !== void 0 ? _b : 0) + 1], isContentOpen: isAppSwitcherOpen }))
|
|
232
244
|
: null, secondaryItems && secondaryItems.length > 0 && secondaryItems.map(function (item, index) {
|
|
233
245
|
var _a, _b;
|
|
234
246
|
return (_createElement(VerticalNavigationItem, __assign({}, item, { "data-id": dataIds.VerticalNavigationSecondaryListItem, key: "".concat(item.label, " - ").concat(index), index: index, isDrawerOpen: isDrawerOpen || isPersistent, isSecondary: true, style: animationRefs.current[((_a = items === null || items === void 0 ? void 0 : items.length) !== null && _a !== void 0 ? _a : 0) + ((_b = defaultSupportLinks === null || defaultSupportLinks === void 0 ? void 0 : defaultSupportLinks.length) !== null && _b !== void 0 ? _b : 0) + index + 1] })));
|
|
235
|
-
}), hasAvatar && avatarName && (_jsx(VerticalNavigationItem, { label: avatarName, "data-id": dataIds.VerticalNavigationAvatarToggle, "aria-controls": 'avatar-panel', icon: _jsx(Avatar, __assign({ style: {
|
|
247
|
+
}), hasAvatar && avatarName && (_jsx(VerticalNavigationItem, { label: avatarName, id: dataIds.VerticalNavigationAvatarToggle, "data-id": dataIds.VerticalNavigationAvatarToggle, "aria-controls": 'avatar-panel', icon: _jsx(Avatar, __assign({ style: {
|
|
236
248
|
fontSize: '0.75rem',
|
|
237
249
|
height: 32,
|
|
238
250
|
width: 32
|
|
239
|
-
} }, { children: handleAvatarInitials(avatarName) })), style: __assign({ maxHeight: isDrawerOpen ? '200px' : '48px', overflow: 'hidden', padding: 0, minHeight: 52, transition: "max-height 225ms ".concat(motion.easeInOut, " 0ms !important") }, animationRefs.current[((_c = items === null || items === void 0 ? void 0 : items.length) !== null && _c !== void 0 ? _c : 0) + ((_d = defaultSupportLinks === null || defaultSupportLinks === void 0 ? void 0 : defaultSupportLinks.length) !== null && _d !== void 0 ? _d : 0) + ((_e = secondaryItems === null || secondaryItems === void 0 ? void 0 : secondaryItems.length) !== null && _e !== void 0 ? _e : 0) + 2]), onClick:
|
|
251
|
+
} }, { children: handleAvatarInitials(avatarName) })), style: __assign({ maxHeight: isDrawerOpen ? '200px' : '48px', overflow: 'hidden', padding: 0, minHeight: 52, transition: "max-height 225ms ".concat(motion.easeInOut, " 0ms !important") }, animationRefs.current[((_c = items === null || items === void 0 ? void 0 : items.length) !== null && _c !== void 0 ? _c : 0) + ((_d = defaultSupportLinks === null || defaultSupportLinks === void 0 ? void 0 : defaultSupportLinks.length) !== null && _d !== void 0 ? _d : 0) + ((_e = secondaryItems === null || secondaryItems === void 0 ? void 0 : secondaryItems.length) !== null && _e !== void 0 ? _e : 0) + 2]), onClick: handleToggleAvatarPanel, hasFlyout: true, fullHeightFlyout: true, content: _jsx(AvatarPanel, __assign({ avatarName: avatarName, isAvatarOpen: isAvatarOpen, localization: localization, handleToggleAvatarPanel: handleToggleAvatarPanel }, rest)), isDrawerOpen: isDrawerOpen, isContentOpen: isAvatarOpen }))] }))] })) }))] })));
|
|
240
252
|
};
|
|
241
253
|
return (_jsxs(StyledAside, __assign({ "aria-label": messages['site-navigation'], "data-id": dataIds.VerticalNavigationContainer }, { children: [_jsx(DrawerShadow, { className: 'drawerShadow', "aria-hidden": 'true', isDrawerOpen: isDrawerOpen || isPersistent, style: {
|
|
242
254
|
display: isPersistent ? 'none' : 'block'
|
|
@@ -35,12 +35,29 @@ import { defaultAttributes } from '../../../utils/dataAttributes';
|
|
|
35
35
|
var AvatarPanel = function (props) {
|
|
36
36
|
var _a, _b, _c, _d;
|
|
37
37
|
var theme = useTheme();
|
|
38
|
-
var avatarName = props.avatarName, avatarPanelOnClickLogout = props.avatarPanelOnClickLogout, avatarPanelLogoutString = props.avatarPanelLogoutString, avatarPanelOnClickViewProfile = props.avatarPanelOnClickViewProfile, avatarPanelViewProfileString = props.avatarPanelViewProfileString, avatarPanelOnClickEditProfile = props.avatarPanelOnClickEditProfile, avatarPanelEditProfileString = props.avatarPanelEditProfileString, avatarPanelMenuItems = props.avatarPanelMenuItems, avatarPanelSettingItems = props.avatarPanelSettingItems, avatarPanelOnClickMainAction = props.avatarPanelOnClickMainAction, avatarPanelMainActionString = props.avatarPanelMainActionString, avatarPanelFootnote = props.avatarPanelFootnote, isAvatarOpen = props.isAvatarOpen, localization = props.localization, dataAttributes = props.dataAttributes;
|
|
38
|
+
var avatarName = props.avatarName, avatarPanelOnClickLogout = props.avatarPanelOnClickLogout, avatarPanelLogoutString = props.avatarPanelLogoutString, avatarPanelOnClickViewProfile = props.avatarPanelOnClickViewProfile, avatarPanelViewProfileString = props.avatarPanelViewProfileString, avatarPanelOnClickEditProfile = props.avatarPanelOnClickEditProfile, avatarPanelEditProfileString = props.avatarPanelEditProfileString, avatarPanelMenuItems = props.avatarPanelMenuItems, avatarPanelSettingItems = props.avatarPanelSettingItems, avatarPanelOnClickMainAction = props.avatarPanelOnClickMainAction, avatarPanelMainActionString = props.avatarPanelMainActionString, avatarPanelFootnote = props.avatarPanelFootnote, isAvatarOpen = props.isAvatarOpen, localization = props.localization, dataAttributes = props.dataAttributes, handleToggleAvatarPanel = props.handleToggleAvatarPanel;
|
|
39
39
|
var messages = __assign(__assign({}, defaultMessages), localization);
|
|
40
40
|
var dataIds = __assign(__assign({}, defaultAttributes), dataAttributes);
|
|
41
|
+
var handleAvatarClick = function (event) {
|
|
42
|
+
var avatarPanelId = document.getElementById(defaultAttributes.VerticalNavigationAvatarToggle);
|
|
43
|
+
// Not allow the onClick to toggle event when clicking away from the ref
|
|
44
|
+
if (avatarPanelId === null || avatarPanelId === void 0 ? void 0 : avatarPanelId.contains(event.target)) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// Toggle the panel when you're clicking away from the ref
|
|
48
|
+
handleToggleAvatarPanel();
|
|
49
|
+
};
|
|
41
50
|
useEffect(function () {
|
|
42
51
|
setAvatarInitials(handleAvatarInitials(avatarName));
|
|
43
52
|
}, [avatarName]);
|
|
53
|
+
useEffect(function () {
|
|
54
|
+
if (isAvatarOpen) {
|
|
55
|
+
document.addEventListener('mousedown', handleAvatarClick);
|
|
56
|
+
}
|
|
57
|
+
return function () {
|
|
58
|
+
document.removeEventListener('mousedown', handleAvatarClick);
|
|
59
|
+
};
|
|
60
|
+
}, [isAvatarOpen]);
|
|
44
61
|
var _e = React.useState((_a = handleAvatarInitials(avatarName)) !== null && _a !== void 0 ? _a : 'AN'), avatarInitials = _e[0], setAvatarInitials = _e[1];
|
|
45
62
|
// Workaround to handle the react-spring calls without
|
|
46
63
|
// adding additional hook calls on prop or state changes
|
|
@@ -58,7 +75,7 @@ var AvatarPanel = function (props) {
|
|
|
58
75
|
];
|
|
59
76
|
var totalItems = __spreadArray(__spreadArray(__spreadArray([], avatarPanelMenuItems !== null && avatarPanelMenuItems !== void 0 ? avatarPanelMenuItems : [], true), avatarPanelSettingItems !== null && avatarPanelSettingItems !== void 0 ? avatarPanelSettingItems : [], true), additionalItems, true);
|
|
60
77
|
var animationRefs = React.useRef(totalItems && totalItems.map(function (item, index) { return useFadeIn(index, !isAvatarOpen); }));
|
|
61
|
-
return (_jsxs(StyledBox, { children: [avatarPanelOnClickLogout && (_jsx(StyledButton
|
|
78
|
+
return (_jsxs(StyledBox, __assign({ onMouseDown: function (event) { return event.stopPropagation(); } }, { children: [avatarPanelOnClickLogout && (_jsx(StyledButton
|
|
62
79
|
// @ts-expect-error
|
|
63
80
|
, __assign({
|
|
64
81
|
// @ts-expect-error
|
|
@@ -96,6 +113,6 @@ var AvatarPanel = function (props) {
|
|
|
96
113
|
component: Link, role: 'link', onClick: avatarMenuItem.onClick }, { children: [_jsx(ListItemIcon, __assign({ "aria-hidden": true, style: {
|
|
97
114
|
minWidth: theme.spacing(5)
|
|
98
115
|
} }, { children: avatarMenuItem.icon })), _jsx(ListItemText, { primary: avatarMenuItem.label })] })) }), "".concat(avatarMenuItem.label, " - ").concat(index)));
|
|
99
|
-
}) }))] })), _jsx(Box, __assign({ "data-id": dataIds.VerticalNavigationFlyoutFootnote, className: 'avatar-panel-footnote', style: animationRefs.current[((_c = avatarPanelMenuItems === null || avatarPanelMenuItems === void 0 ? void 0 : avatarPanelMenuItems.length) !== null && _c !== void 0 ? _c : 0) + ((_d = avatarPanelSettingItems === null || avatarPanelSettingItems === void 0 ? void 0 : avatarPanelSettingItems.length) !== null && _d !== void 0 ? _d : 0) + 4] }, { children: avatarPanelFootnote && avatarPanelFootnote }))] }));
|
|
116
|
+
}) }))] })), _jsx(Box, __assign({ "data-id": dataIds.VerticalNavigationFlyoutFootnote, className: 'avatar-panel-footnote', style: animationRefs.current[((_c = avatarPanelMenuItems === null || avatarPanelMenuItems === void 0 ? void 0 : avatarPanelMenuItems.length) !== null && _c !== void 0 ? _c : 0) + ((_d = avatarPanelSettingItems === null || avatarPanelSettingItems === void 0 ? void 0 : avatarPanelSettingItems.length) !== null && _d !== void 0 ? _d : 0) + 4] }, { children: avatarPanelFootnote && avatarPanelFootnote }))] })));
|
|
100
117
|
};
|
|
101
118
|
export default AvatarPanel;
|
package/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.js
CHANGED
|
@@ -21,7 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
-
import React from 'react';
|
|
24
|
+
import React, { useEffect } from 'react';
|
|
25
25
|
import { useTheme } from '@mui/material/styles';
|
|
26
26
|
import { Link, List, Tooltip, Collapse } from '../../../../index';
|
|
27
27
|
import MailIcon from '@mui/icons-material/Mail';
|
|
@@ -32,10 +32,15 @@ import { animated } from '@react-spring/web';
|
|
|
32
32
|
var VerticalNavigationItem = function (props) {
|
|
33
33
|
var _a, _b, _c;
|
|
34
34
|
var theme = useTheme();
|
|
35
|
-
var label = props.label, icon = props.icon, onClick = props.onClick, isActive = props.isActive, children = props.children, isDrawerOpen = props.isDrawerOpen, index = props.index, hasFlyout = props.hasFlyout, fullHeightFlyout = props.fullHeightFlyout, isSecondary = props.isSecondary, content = props.content, style = props.style, hasCustomContent = props.hasCustomContent, rest = __rest(props, ["label", "icon", "onClick", "isActive", "children", "isDrawerOpen", "index", "hasFlyout", "fullHeightFlyout", "isSecondary", "content", "style", "hasCustomContent"]);
|
|
35
|
+
var label = props.label, icon = props.icon, onClick = props.onClick, isActive = props.isActive, children = props.children, isDrawerOpen = props.isDrawerOpen, index = props.index, hasFlyout = props.hasFlyout, fullHeightFlyout = props.fullHeightFlyout, isSecondary = props.isSecondary, isContentOpen = props.isContentOpen, content = props.content, style = props.style, hasCustomContent = props.hasCustomContent, id = props.id, rest = __rest(props, ["label", "icon", "onClick", "isActive", "children", "isDrawerOpen", "index", "hasFlyout", "fullHeightFlyout", "isSecondary", "isContentOpen", "content", "style", "hasCustomContent", "id"]);
|
|
36
36
|
var _d = React.useState(null), anchorEl = _d[0], setAnchorEl = _d[1];
|
|
37
37
|
var _e = React.useState(false), isFlyoutHovered = _e[0], setIsFlyoutHovered = _e[1];
|
|
38
38
|
var open = isFlyoutHovered || Boolean(anchorEl);
|
|
39
|
+
useEffect(function () {
|
|
40
|
+
if (!isContentOpen && open) {
|
|
41
|
+
handlePopoverClose();
|
|
42
|
+
}
|
|
43
|
+
}, [isContentOpen]);
|
|
39
44
|
var handlePopoverOpen = function (event) {
|
|
40
45
|
if (open) {
|
|
41
46
|
handlePopoverClose();
|
|
@@ -97,7 +102,7 @@ var VerticalNavigationItem = function (props) {
|
|
|
97
102
|
};
|
|
98
103
|
return (_jsxs(ListItem, __assign({ disablePadding: true,
|
|
99
104
|
// @ts-expect-error
|
|
100
|
-
component: animated.li, style: style }, rest, { isDrawerOpen: isDrawerOpen }, { children: [_jsxs(ListItemButton, __assign({ ref: ref,
|
|
105
|
+
component: animated.li, style: style }, rest, { isDrawerOpen: isDrawerOpen }, { children: [_jsxs(ListItemButton, __assign({ ref: ref, id: id,
|
|
101
106
|
// @ts-expect-error
|
|
102
107
|
component: Link, onClick: handleClick, isDrawerOpen: isDrawerOpen, onMouseEnter: function (event) { return (hasCustomContent || fullHeightFlyout || isDrawerOpen)
|
|
103
108
|
? null
|
|
@@ -57,7 +57,7 @@ import { defaultAttributes } from '../../../utils/dataAttributes';
|
|
|
57
57
|
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
|
|
58
58
|
var AppSwitcher = function (props) {
|
|
59
59
|
var _a;
|
|
60
|
-
var isAppSwitcherOpen = props.isAppSwitcherOpen,
|
|
60
|
+
var isAppSwitcherOpen = props.isAppSwitcherOpen, handleToggleAppSwitcher = props.handleToggleAppSwitcher, isDrawerOpen = props.isDrawerOpen, localization = props.localization, dataAttributes = props.dataAttributes, _b = props.apiKey, apiKey = _b === void 0 ? '' : _b, baseUrl = props.baseUrl;
|
|
61
61
|
var token = props.token;
|
|
62
62
|
// Holds the applications which are displayed.
|
|
63
63
|
var _c = useState([]), applications = _c[0], setApplications = _c[1];
|
|
@@ -76,7 +76,7 @@ var AppSwitcher = function (props) {
|
|
|
76
76
|
* Handles closing of the application dialog.
|
|
77
77
|
*/
|
|
78
78
|
var handleDialogClose = function () {
|
|
79
|
-
|
|
79
|
+
handleToggleAppSwitcher();
|
|
80
80
|
setTimeout(function () {
|
|
81
81
|
setSearchString('');
|
|
82
82
|
setActiveApplication(null);
|
|
@@ -253,8 +253,26 @@ var AppSwitcher = function (props) {
|
|
|
253
253
|
loadData()
|
|
254
254
|
.catch(console.error);
|
|
255
255
|
}, [token, userId, props.applications]);
|
|
256
|
+
useEffect(function () {
|
|
257
|
+
if (isAppSwitcherOpen) {
|
|
258
|
+
document.addEventListener('mousedown', handleAppSwitcherClose);
|
|
259
|
+
}
|
|
260
|
+
return function () {
|
|
261
|
+
document.removeEventListener('mousedown', handleAppSwitcherClose);
|
|
262
|
+
};
|
|
263
|
+
}, [isAppSwitcherOpen]);
|
|
264
|
+
useEffect(function () { return document.addEventListener('keydown', handleKeyDown); });
|
|
265
|
+
var handleAppSwitcherClose = function (event) {
|
|
266
|
+
var appSwitcherButton = document.getElementById(defaultAttributes.VerticalNavigationAppSwitcherToggle);
|
|
267
|
+
// Allow the appswitcher button to handle closing instead of closing it here.
|
|
268
|
+
if (appSwitcherButton === null || appSwitcherButton === void 0 ? void 0 : appSwitcherButton.contains(event.target)) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
// Close the dialog when clicking outside the panel.
|
|
272
|
+
handleDialogClose();
|
|
273
|
+
};
|
|
256
274
|
var handleKeyDown = function (event) {
|
|
257
|
-
if (event && event.type === 'keydown') {
|
|
275
|
+
if (isAppSwitcherOpen && event && event.type === 'keydown') {
|
|
258
276
|
// Close AppSwitcher if Escape key is pressed
|
|
259
277
|
if (event.key === 'Escape') {
|
|
260
278
|
handleDialogClose();
|
|
@@ -269,7 +287,7 @@ var AppSwitcher = function (props) {
|
|
|
269
287
|
return (_jsxs(AppSwitcherPanel, __assign({ id: "app-switcher-menu", style: {
|
|
270
288
|
display: isAppSwitcherOpen ? 'block' : 'none',
|
|
271
289
|
left: isDrawerOpen ? Constants.DrawerWidth.Expanded : Constants.DrawerWidth.Collapsed - 3
|
|
272
|
-
}, role: 'dialog', "aria-label": "App Switcher", onKeyDown: handleKeyDown, "data-id": dataIds.AppSwitcherContainer }, { children: [activeTab === Constants.Tabs.ListApplications
|
|
290
|
+
}, role: 'dialog', "aria-label": "App Switcher", onKeyDown: handleKeyDown, "data-id": dataIds.AppSwitcherContainer, onMouseDown: function (event) { return event.stopPropagation(); } }, { children: [activeTab === Constants.Tabs.ListApplications
|
|
273
291
|
? (_jsxs("div", { children: [_jsxs(AppListHeader, __assign({ "data-id": dataIds.AppSwitcherHeader }, { children: [messages['your-apps'], !props.hideStreamHomeButton &&
|
|
274
292
|
_jsx(StyleHomeButton, __assign({ "aria-label": messages['go-to-hub'], endIcon: _jsx(ChevronRightIcon, {}), onClick: function (e) { var _a; return window.open((_a = props.StreamHomeUrl) !== null && _a !== void 0 ? _a : Constants.DefaultStreamHomeUrl); } }, { children: messages['go-to-hub'] }))] })), _jsx(MenuContent, __assign({ style: {
|
|
275
293
|
display: activeTab === 1 ? 'flex' : 'none'
|
package/package.json
CHANGED
|
@@ -8,6 +8,7 @@ export interface IVerticalNavigationItemProps {
|
|
|
8
8
|
isActive?: boolean;
|
|
9
9
|
children?: IVerticalNavigationItemProps[];
|
|
10
10
|
isDrawerOpen?: boolean;
|
|
11
|
+
isContentOpen?: boolean;
|
|
11
12
|
index?: number;
|
|
12
13
|
isSecondary?: boolean;
|
|
13
14
|
hasFlyout?: boolean;
|
|
@@ -16,6 +17,7 @@ export interface IVerticalNavigationItemProps {
|
|
|
16
17
|
style?: any;
|
|
17
18
|
open?: boolean;
|
|
18
19
|
hasCustomContent?: boolean;
|
|
20
|
+
id?: string;
|
|
19
21
|
}
|
|
20
22
|
export interface IVerticalNavigationProps {
|
|
21
23
|
logo?: string;
|