@learningpool/ui 1.12.2 → 1.13.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.
@@ -71,9 +71,21 @@ var VerticalNavigation = function (props) {
71
71
  /**
72
72
  * Toggles display of the Stream suite application dialog.
73
73
  */
74
- var handleToggleAppsClick = function () {
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: handleToggleAppsClick, content: (_jsx(AppSwitcher, { isAppSwitcherOpen: isAppSwitcherOpen, setIsAppSwitcherOpen: setIsAppSwitcherOpen, 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] }))
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: function () { return setIsAvatarOpen(!isAvatarOpen); }, hasFlyout: true, fullHeightFlyout: true, content: _jsx(AvatarPanel, __assign({ avatarName: avatarName, isAvatarOpen: isAvatarOpen, localization: localization }, rest)), isDrawerOpen: isDrawerOpen }))] }))] })) }))] })));
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;
@@ -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
@@ -72,7 +72,7 @@ export var getDefaultSupportLinks = function (messages) {
72
72
  onClick: function () { return null; },
73
73
  children: [
74
74
  { label: messages['help-center'], onClick: function () { return window.open('https://learningpool.zendesk.com/', '_blank'); } },
75
- { label: messages['submit-feedback'], onClick: function () { return window.open('https://app.smartsheet.com/b/form/823248624a324630a904e825098ca816', '_blank'); } },
75
+ { label: messages['submit-feedback'], onClick: function () { return window.open('https://learningpool.com/feature-request/', '_blank'); } },
76
76
  { label: messages['contact-us'], onClick: function () { return window.open('https://learningpool.com/support/', '_blank'); } }
77
77
  ]
78
78
  }
@@ -19,7 +19,7 @@ interface IProps {
19
19
  currentApplicationId?: number;
20
20
  localization?: any;
21
21
  isAppSwitcherOpen?: boolean;
22
- setIsAppSwitcherOpen?: any;
22
+ handleToggleAppSwitcher?: any;
23
23
  isDrawerOpen?: boolean;
24
24
  dataAttributes?: any;
25
25
  StreamHomeUrl?: string;
@@ -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, setIsAppSwitcherOpen = props.setIsAppSwitcherOpen, isDrawerOpen = props.isDrawerOpen, localization = props.localization, dataAttributes = props.dataAttributes, _b = props.apiKey, apiKey = _b === void 0 ? '' : _b, baseUrl = props.baseUrl;
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
- setIsAppSwitcherOpen(false);
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
@@ -9,7 +9,7 @@
9
9
  "components",
10
10
  "ui"
11
11
  ],
12
- "version": "1.12.2",
12
+ "version": "1.13.1",
13
13
  "private": false,
14
14
  "main": "index.js",
15
15
  "module": "index.js",
@@ -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;
@@ -7,6 +7,7 @@ export interface IAvatarPanelProps {
7
7
  avatarName: string;
8
8
  editProfileText?: string;
9
9
  isAvatarOpen: boolean;
10
+ handleToggleAvatarPanel: Function;
10
11
  localization?: any;
11
12
  dataAttributes?: any;
12
13
  avatarPanelLogoutString?: string;