@boomerang-io/carbon-addons-boomerang-react 4.6.10-beta.3 → 4.6.10-beta.4
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/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +123 -140
- package/dist/cjs/components/Header/Header.js +3 -3
- package/dist/cjs/components/Header/HeaderTeamSwitcher.js +112 -76
- package/dist/cjs/components/UIShell/UIShell.js +2 -2
- package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +125 -142
- package/dist/esm/components/Header/Header.js +3 -3
- package/dist/esm/components/Header/HeaderTeamSwitcher.js +113 -77
- package/dist/esm/components/UIShell/UIShell.js +2 -2
- package/dist/types/index.d.ts +87 -1
- package/package.json +1 -1
- package/scss/components/Header/_headerTeamSwitcher.scss +38 -8
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { useQueryClient, useMutation } from 'react-query';
|
|
3
3
|
import { InlineLoading, HeaderMenu, HeaderMenuItem } from '@carbon/react';
|
|
4
|
-
import {
|
|
4
|
+
import { CheckmarkFilled, AddAlt, GroupAccount, ChevronDown } from '@carbon/react/icons';
|
|
5
5
|
import sortBy from 'lodash.sortby';
|
|
6
6
|
import HeaderMenu$1 from './HeaderMenu.js';
|
|
7
7
|
import { resolver, serviceUrl } from '../../config/servicesConfig.js';
|
|
@@ -12,6 +12,9 @@ IBM Confidential
|
|
|
12
12
|
694970X, 69497O0
|
|
13
13
|
© Copyright IBM Corp. 2022, 2025
|
|
14
14
|
*/
|
|
15
|
+
const headerDropdownMenuContainerClassname = `${prefix}--header-dropdown-menu-container`;
|
|
16
|
+
const headerDropdownMenuLoadingClassname = `${prefix}--header-dropdown-menu-loading`;
|
|
17
|
+
const headerDropdownMenuSuccessClassname = `${prefix}--header-dropdown-menu-success`;
|
|
15
18
|
const headerDropdownMenuClassname = `${prefix}--header-dropdown-menu`;
|
|
16
19
|
const headerDropdownMenuListClassname = `${prefix}--bmrg-header-drop-down`;
|
|
17
20
|
const headerDropdownMenuItemContainerClassname = `${prefix}--header-dropdown-menu-item-container`;
|
|
@@ -29,7 +32,7 @@ const headerTeamSwitcherCreateTeamButtonContainerClassname = `${prefix}--header-
|
|
|
29
32
|
const headerTeamSwitcherCreateTeamButtonClassname = `${prefix}--header-team-switcher-create-team-button`;
|
|
30
33
|
const headerTeamSwitcherCreateTeamButtonTextClassname = `${prefix}--header-team-switcher-create-team-button-text`;
|
|
31
34
|
const headerTeamSwitcherCreateTeamButtonIconClassname = `${prefix}--header-team-switcher-create-team-button-icon`;
|
|
32
|
-
function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamTrigger, history, isLaunchpad, menuAriaLabelRecord, menuButtonId, menuListId, navigationPlatform, teamsQuery, trackEvent, user, userTeams, }) {
|
|
35
|
+
function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamTrigger, history, isLaunchpad, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, menuAriaLabelRecord, menuButtonId, menuListId, navigationPlatform, teamsQuery, trackEvent, user, userTeams, }) {
|
|
33
36
|
const queryClient = useQueryClient();
|
|
34
37
|
const [selectedTeam, setSelectedTeam] = useState();
|
|
35
38
|
const [openAccountSubmenuId, setOpenAccountSubmenuId] = useState("");
|
|
@@ -38,11 +41,23 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
38
41
|
const createTeamButtonText = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
|
|
39
42
|
const userTeamInstanceSwitcherDefault = user?.teamInstanceSwitcherDefault;
|
|
40
43
|
const profileUrl = serviceUrl.resourceUserProfile({ baseServicesUrl });
|
|
44
|
+
const teamLink = ({ teamId }) => {
|
|
45
|
+
return `${navigationPlatform.baseEnvUrl}/launchpad/teams/${teamId}`;
|
|
46
|
+
};
|
|
41
47
|
const { mutateAsync: mutateUserProfile, isLoading: mutateUserProfileIsLoading } = useMutation(resolver.patchUserProfile, {
|
|
42
48
|
onSuccess: () => {
|
|
43
49
|
queryClient.invalidateQueries(profileUrl);
|
|
44
50
|
},
|
|
45
51
|
});
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
let timer;
|
|
54
|
+
if (isSuccessTeamSwitcher && setIsSuccessTeamSwitcher) {
|
|
55
|
+
timer = setTimeout(() => {
|
|
56
|
+
setIsSuccessTeamSwitcher(false);
|
|
57
|
+
}, 3000);
|
|
58
|
+
}
|
|
59
|
+
return () => clearTimeout(timer);
|
|
60
|
+
}, [isSuccessTeamSwitcher, setIsSuccessTeamSwitcher]);
|
|
46
61
|
useEffect(() => {
|
|
47
62
|
let accountTeams, standardTeams, personalTeam = [];
|
|
48
63
|
if (hasUserTeams) {
|
|
@@ -74,10 +89,16 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
74
89
|
handleSelectTeam({ team: personalTeam[0] });
|
|
75
90
|
}
|
|
76
91
|
else if (userHasAccountTeams) {
|
|
77
|
-
|
|
92
|
+
const sortedAccounts = sortBy(accountTeams, [
|
|
93
|
+
(account) => (account.displayName ? account.displayName : account.name),
|
|
94
|
+
]);
|
|
95
|
+
handleSelectTeam({ team: sortedAccounts[0] });
|
|
78
96
|
}
|
|
79
97
|
else if (userHasStandardTeams) {
|
|
80
|
-
|
|
98
|
+
const sortedStandardTeams = sortBy(standardTeams, [
|
|
99
|
+
(standardTeam) => (standardTeam.displayName ? standardTeam.displayName : standardTeam.name),
|
|
100
|
+
]);
|
|
101
|
+
handleSelectTeam({ team: sortedStandardTeams[0] });
|
|
81
102
|
}
|
|
82
103
|
}
|
|
83
104
|
else if (selectedTeam?.id !== userTeamInstanceSwitcherDefault) {
|
|
@@ -107,12 +128,16 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
107
128
|
userTeams?.data?.personalTeam,
|
|
108
129
|
userTeams?.data?.standardTeams,
|
|
109
130
|
]);
|
|
131
|
+
const handleHeaderMenuClick = () => {
|
|
132
|
+
setOpenAccountSubmenuId("");
|
|
133
|
+
};
|
|
110
134
|
const handleTeamClick = ({ team, type }) => {
|
|
135
|
+
setOpenAccountSubmenuId("");
|
|
111
136
|
if (analyticsHelpers?.navigateEventHandler && trackEvent) {
|
|
112
137
|
analyticsHelpers.navigateEventHandler({
|
|
113
138
|
action: `Clicked ${team.name} in Team Switcher`,
|
|
114
139
|
category: "Team Switcher",
|
|
115
|
-
destinationPath:
|
|
140
|
+
destinationPath: teamLink({ teamId: team.id }),
|
|
116
141
|
teamId: team.id,
|
|
117
142
|
teamType: type,
|
|
118
143
|
trackEvent,
|
|
@@ -122,7 +147,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
122
147
|
history.push(`/teams/${team.id}`);
|
|
123
148
|
}
|
|
124
149
|
else {
|
|
125
|
-
window.open(
|
|
150
|
+
window.open(teamLink({ teamId: team.id }), "_self");
|
|
126
151
|
}
|
|
127
152
|
};
|
|
128
153
|
const handleCreateJoinTeamClick = (e) => {
|
|
@@ -195,79 +220,90 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
195
220
|
sortedStandardTeamsWithNamesToDisplay = sortBy(newStandardTeams, ["nameToDisplay"]);
|
|
196
221
|
}
|
|
197
222
|
let selectedTeamName = selectedTeam?.displayName ? selectedTeam.displayName : selectedTeam?.name;
|
|
198
|
-
if (selectedTeamName && selectedTeamName.length >
|
|
199
|
-
selectedTeamName = selectedTeamName.slice(0,
|
|
223
|
+
if (selectedTeamName && selectedTeamName.length > 65) {
|
|
224
|
+
selectedTeamName = selectedTeamName.slice(0, 65) + "...";
|
|
200
225
|
}
|
|
201
|
-
return (React.createElement(
|
|
202
|
-
React.createElement(
|
|
203
|
-
React.createElement(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
React.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
|
|
238
|
-
React.createElement(GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
|
|
239
|
-
React.createElement(ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
|
|
240
|
-
React.createElement("div", { "aria-expanded": isSubmenuOpen, className: headerDropdownMenuItemAccountSubmenuClassname },
|
|
241
|
-
React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "account" }), "data-testid": "header-team-switcher-menu-account-accordion-item",
|
|
226
|
+
return (React.createElement("div", { className: headerDropdownMenuContainerClassname },
|
|
227
|
+
isLoadingTeamSwitcher ? (React.createElement("div", { className: headerDropdownMenuLoadingClassname },
|
|
228
|
+
React.createElement(InlineLoading, null))) : isSuccessTeamSwitcher ? (React.createElement("div", { className: headerDropdownMenuSuccessClassname },
|
|
229
|
+
React.createElement(CheckmarkFilled, null))) : null,
|
|
230
|
+
React.createElement(HeaderMenu, { id: "header-team-switcher-menu", "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname, menuLinkName: selectedTeamName ? selectedTeamName : "No team selected", onClick: handleHeaderMenuClick, "data-testid": "header-team-switcher-menu" },
|
|
231
|
+
React.createElement(HeaderMenu$1, { "aria-labelledby": menuButtonId, className: headerDropdownMenuListClassname, id: menuListId },
|
|
232
|
+
React.createElement(HeaderMenuItem, { id: "header-team-switcher-create-join-team-button", className: headerTeamSwitcherCreateTeamButtonContainerClassname, onClick: handleCreateJoinTeamClick,
|
|
233
|
+
// eslint-disable-next-line no-script-url
|
|
234
|
+
href: "javascript:void(0)", role: "menuitem", "data-testid": "header-team-switcher-create-join-team-button" },
|
|
235
|
+
React.createElement("div", { className: headerTeamSwitcherCreateTeamButtonClassname },
|
|
236
|
+
React.createElement("span", { className: headerTeamSwitcherCreateTeamButtonTextClassname }, createTeamButtonText),
|
|
237
|
+
React.createElement(AddAlt, { className: headerTeamSwitcherCreateTeamButtonIconClassname }))),
|
|
238
|
+
personalTeam.length > 0
|
|
239
|
+
? personalTeam.map((team) => {
|
|
240
|
+
const teamName = team.displayName ? team.displayName : team.name;
|
|
241
|
+
const isTeamSelected = team.id === selectedTeam?.id;
|
|
242
|
+
return (React.createElement("div", { key: team.id, id: `${team.id}-personal-menu-item-id` },
|
|
243
|
+
React.createElement(HeaderMenuItem, { key: team.id, id: `${team.id}-personal-menu-item`, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: (e) => {
|
|
244
|
+
e.stopPropagation();
|
|
245
|
+
handleTeamClick({ team, type: "personal" });
|
|
246
|
+
}, href: teamLink({ teamId: team.id }), "data-testid": "header-team-switcher-menu-item" },
|
|
247
|
+
React.createElement("div", { className: headerDropdownMenuItemClassname },
|
|
248
|
+
React.createElement("span", { title: teamName, className: headerDropdownMenuItemTextClassname }, teamName),
|
|
249
|
+
isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
|
|
250
|
+
})
|
|
251
|
+
: null,
|
|
252
|
+
accountTeams.length > 0
|
|
253
|
+
? sortedAccountTeamsWithNamesToDisplay.map((team) => {
|
|
254
|
+
const isSubmenuOpen = team.id === openAccountSubmenuId;
|
|
255
|
+
const isProjectTeamSelected = team.projectTeams &&
|
|
256
|
+
team.projectTeams.length > 0 &&
|
|
257
|
+
team.projectTeams.some((team) => team.id === selectedTeam?.id);
|
|
258
|
+
const isTeamSelected = team.id === selectedTeam?.id;
|
|
259
|
+
const isMenuSelected = isTeamSelected || isProjectTeamSelected;
|
|
260
|
+
return (React.createElement("div", { key: team.id, id: `${team.id}-account-menu` },
|
|
261
|
+
React.createElement(HeaderMenuItem, { "aria-expanded": isSubmenuOpen, "aria-selected": isMenuSelected, className: headerDropdownMenuItemAccountContainerClassname, onClick: (e) => handleOpenAccountSubmenu({ e, id: team.id }),
|
|
242
262
|
// eslint-disable-next-line no-script-url
|
|
243
|
-
href: "javascript:void(0)" },
|
|
244
|
-
React.createElement("div", { className:
|
|
245
|
-
React.createElement("
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
263
|
+
href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-account-accordion" },
|
|
264
|
+
React.createElement("div", { className: headerDropdownMenuItemAccountClassname },
|
|
265
|
+
React.createElement("div", { className: headerDropdownMenuItemTextIconClassname },
|
|
266
|
+
React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
|
|
267
|
+
isMenuSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null),
|
|
268
|
+
React.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
|
|
269
|
+
React.createElement(GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
|
|
270
|
+
React.createElement(ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
|
|
271
|
+
React.createElement("div", { id: `${team.id}-account-submenu`, key: `${team.id}-account-submenu`, "aria-expanded": isSubmenuOpen, className: headerDropdownMenuItemAccountSubmenuClassname },
|
|
272
|
+
React.createElement(HeaderMenuItem, { key: `${team.id}-menu-item`, id: `${team.id}-account-menu-item`, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: (e) => {
|
|
273
|
+
e.stopPropagation();
|
|
274
|
+
handleTeamClick({ team, type: "account" });
|
|
275
|
+
}, "data-testid": "header-team-switcher-menu-account-accordion-item", href: teamLink({ teamId: team.id }) },
|
|
276
|
+
React.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
|
|
277
|
+
React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, "Account Page"),
|
|
278
|
+
isTeamSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null)),
|
|
279
|
+
team.projectTeams && team.projectTeams.length > 0
|
|
280
|
+
? team.projectTeams.map((team) => {
|
|
281
|
+
const isTeamSelected = team.id === selectedTeam?.id;
|
|
282
|
+
return (React.createElement("div", { key: team.id, id: `${team.id}-project-menu-item` },
|
|
283
|
+
React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: (e) => {
|
|
284
|
+
e.stopPropagation();
|
|
285
|
+
handleTeamClick({ team, type: "project" });
|
|
286
|
+
}, "data-testid": "header-team-switcher-menu-account-accordion-item", href: teamLink({ teamId: team.id }) },
|
|
287
|
+
React.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
|
|
288
|
+
React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
|
|
289
|
+
isTeamSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null))));
|
|
290
|
+
})
|
|
291
|
+
: null)));
|
|
292
|
+
})
|
|
293
|
+
: null,
|
|
294
|
+
standardTeams.length > 0
|
|
295
|
+
? sortedStandardTeamsWithNamesToDisplay.map((team) => {
|
|
296
|
+
const isTeamSelected = team.id === selectedTeam?.id;
|
|
297
|
+
return (React.createElement("div", { key: team.id, id: `${team.id}-standard-menu-item` },
|
|
298
|
+
React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: (e) => {
|
|
299
|
+
e.stopPropagation();
|
|
300
|
+
handleTeamClick({ team, type: "standard" });
|
|
301
|
+
}, "data-testid": "header-team-switcher-menu-item", href: teamLink({ teamId: team.id }) },
|
|
302
|
+
React.createElement("div", { className: headerDropdownMenuItemClassname },
|
|
303
|
+
React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
|
|
304
|
+
isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
|
|
305
|
+
})
|
|
306
|
+
: null))));
|
|
271
307
|
}
|
|
272
308
|
return null;
|
|
273
309
|
}
|
|
@@ -18,7 +18,7 @@ IBM Confidential
|
|
|
18
18
|
694970X, 69497O0
|
|
19
19
|
© Copyright IBM Corp. 2022, 2024
|
|
20
20
|
*/
|
|
21
|
-
function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, history, isLaunchpad = false, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
21
|
+
function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }) {
|
|
22
22
|
// Support base header .e.g for an error state
|
|
23
23
|
if (!config) {
|
|
24
24
|
return (React.createElement(QueryClientProvider, { client: queryClient },
|
|
@@ -78,7 +78,7 @@ function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, cr
|
|
|
78
78
|
isAboutPlatformEnabled && (React.createElement(AboutPlatformMenuItem, { key: "about-platform", name: platform.name, baseServicesUrl: platform.baseServicesUrl })),
|
|
79
79
|
tutorialScreenToShow && handleShowTutorial && (React.createElement(HeaderMenuItem, { key: "launch-tutorial", onClick: handleShowTutorial, icon: React.createElement(Book, null), "data-testid": "launch-tutorial", text: "Launch Tutorial", type: "button" })),
|
|
80
80
|
...supportMenuItems,
|
|
81
|
-
].filter(Boolean), history: history, isLaunchpad: isLaunchpad, trackEvent: trackEvent, user: user, userTeams: userTeams }),
|
|
81
|
+
].filter(Boolean), history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, trackEvent: trackEvent, user: user, userTeams: userTeams }),
|
|
82
82
|
isPrivacyModalRendered ? (React.createElement(PrivacyRedirect, { isOpen: true, baseEnvUrl: platform.baseEnvUrl, platformName: platform?.name, user: user })) : null));
|
|
83
83
|
}
|
|
84
84
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -253,6 +253,80 @@ type PlatformNotification = {
|
|
|
253
253
|
type: string;
|
|
254
254
|
userId: string;
|
|
255
255
|
};
|
|
256
|
+
interface Navigation {
|
|
257
|
+
features: {
|
|
258
|
+
"appSwitcher.enabled": boolean;
|
|
259
|
+
"docs.enabled": boolean;
|
|
260
|
+
"eventing.enabled": boolean;
|
|
261
|
+
"feedback.enabled": boolean;
|
|
262
|
+
"homePage.enabled": boolean;
|
|
263
|
+
"metering.enabled": boolean;
|
|
264
|
+
"notifications.enabled": boolean;
|
|
265
|
+
"notificationsCount.enabled": boolean;
|
|
266
|
+
"partner.enabled": boolean;
|
|
267
|
+
"support.enabled": boolean;
|
|
268
|
+
"welcome.enabled": boolean;
|
|
269
|
+
};
|
|
270
|
+
improveQuestions: [
|
|
271
|
+
{
|
|
272
|
+
key: string;
|
|
273
|
+
options: [string];
|
|
274
|
+
question: string;
|
|
275
|
+
type: string;
|
|
276
|
+
}
|
|
277
|
+
];
|
|
278
|
+
navigation: [
|
|
279
|
+
{
|
|
280
|
+
name: string;
|
|
281
|
+
url: string;
|
|
282
|
+
}
|
|
283
|
+
];
|
|
284
|
+
platform: {
|
|
285
|
+
addServiceRequestUrl: string;
|
|
286
|
+
baseEnvUrl: string;
|
|
287
|
+
baseServicesUrl: string;
|
|
288
|
+
cashEIAEnabled: boolean;
|
|
289
|
+
catalogContributorUrl: string;
|
|
290
|
+
catalogItemRequestLimit: number;
|
|
291
|
+
catalogRecipeRequestLimit: number;
|
|
292
|
+
communityUrl: string;
|
|
293
|
+
displayLogo: boolean;
|
|
294
|
+
feedbackUrl: string;
|
|
295
|
+
footerEnabled: boolean;
|
|
296
|
+
gaEnabled: boolean;
|
|
297
|
+
linkCatalogId: string;
|
|
298
|
+
instanceSwitcherEnabled: boolean;
|
|
299
|
+
inviteTime: number;
|
|
300
|
+
name: string;
|
|
301
|
+
onPremDeploymentEnabled: boolean;
|
|
302
|
+
personalTeamEnabled: boolean;
|
|
303
|
+
partnerRegex: string;
|
|
304
|
+
platformName: string;
|
|
305
|
+
platformOrganization: string;
|
|
306
|
+
pocTeamEnabled: boolean;
|
|
307
|
+
privateTeams: boolean;
|
|
308
|
+
requireTeamPurpose: boolean;
|
|
309
|
+
segmentEnabled: boolean;
|
|
310
|
+
sendMail: boolean;
|
|
311
|
+
signOutUrl: string;
|
|
312
|
+
standardUserIDCPInviteEnabled: boolean;
|
|
313
|
+
teamInviteTime: number;
|
|
314
|
+
temporayModalEnabled: boolean;
|
|
315
|
+
tilesEnabled: boolean;
|
|
316
|
+
tutorialEnabled: boolean;
|
|
317
|
+
tutorialVideoLink1: string;
|
|
318
|
+
tutorialVideoLink2: string;
|
|
319
|
+
tutorialVideoLink3: string;
|
|
320
|
+
tutorialVideoLink4: string;
|
|
321
|
+
tutorialVideoLink5: string;
|
|
322
|
+
version: string;
|
|
323
|
+
};
|
|
324
|
+
platformMessage: null | {
|
|
325
|
+
kind: string;
|
|
326
|
+
message: string;
|
|
327
|
+
title: string;
|
|
328
|
+
};
|
|
329
|
+
}
|
|
256
330
|
type NavLink = {
|
|
257
331
|
name: string;
|
|
258
332
|
url: string;
|
|
@@ -272,9 +346,15 @@ type Props$I = {
|
|
|
272
346
|
showChatButton?: boolean;
|
|
273
347
|
showSelectTeamPurpose?: boolean;
|
|
274
348
|
homeLink?: string;
|
|
349
|
+
agentAssistantStudioLink?: string;
|
|
350
|
+
agentAssistantLibraryLink?: string;
|
|
351
|
+
documentCollectionsLink?: string;
|
|
352
|
+
settingsLink?: string;
|
|
353
|
+
toolsLink?: string;
|
|
275
354
|
joinCreateTrigger?: (props: any) => void;
|
|
276
355
|
isLoading?: boolean;
|
|
277
356
|
isOpen?: boolean;
|
|
357
|
+
navigation?: Navigation;
|
|
278
358
|
navLinks?: NavLink[];
|
|
279
359
|
personalTeams?: Array<SideNavTeam>;
|
|
280
360
|
showChatTooltip?: boolean;
|
|
@@ -359,6 +439,9 @@ type Props$G = {
|
|
|
359
439
|
enableNotificationsCount?: boolean;
|
|
360
440
|
history?: any;
|
|
361
441
|
isLaunchpad?: boolean;
|
|
442
|
+
isLoadingTeamSwitcher?: boolean;
|
|
443
|
+
isSuccessTeamSwitcher?: boolean;
|
|
444
|
+
setIsSuccessTeamSwitcher?: Function;
|
|
362
445
|
leftPanel?: (args: {
|
|
363
446
|
close: () => void;
|
|
364
447
|
isOpen: boolean;
|
|
@@ -1410,6 +1493,9 @@ type Props = {
|
|
|
1410
1493
|
};
|
|
1411
1494
|
history?: any;
|
|
1412
1495
|
isLaunchpad?: boolean;
|
|
1496
|
+
isLoadingTeamSwitcher?: boolean;
|
|
1497
|
+
isSuccessTeamSwitcher?: boolean;
|
|
1498
|
+
setIsSuccessTeamSwitcher?: Function;
|
|
1413
1499
|
leftPanel?: (args: {
|
|
1414
1500
|
close: () => void;
|
|
1415
1501
|
isOpen: boolean;
|
|
@@ -1443,6 +1529,6 @@ type Props = {
|
|
|
1443
1529
|
handleShowTutorial?: Function;
|
|
1444
1530
|
tutorialScreenToShow?: string;
|
|
1445
1531
|
};
|
|
1446
|
-
declare function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme, config, createJoinTeamTrigger, history, isLaunchpad, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }: Props): React.JSX.Element;
|
|
1532
|
+
declare function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme, config, createJoinTeamTrigger, history, isLaunchpad, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, enableIcaMacs, }: Props): React.JSX.Element;
|
|
1447
1533
|
|
|
1448
1534
|
export { AdvantageSideNav, AutoSuggestBmrg as AutoSuggest, Avatar, CheckboxListComponent as CheckboxList, ComboBoxComponent as ComboBox, ComboBoxMultiSelect, ComposedModal, ConfirmModal, CreatableComponent as Creatable, DataDrivenInput, DateInputComponent as DateInput, DecisionButtons, DelayedRender, DynamicFormik, DynamicInput, Error, Error403, Error404, ErrorBoundary, ErrorDragon, ErrorFullPage, Error as ErrorMessage, ErrorPage, ErrorPageCore, FeatureHeader, FeatureHeaderSubtitle, FeatureHeaderTitle, FeatureNavTab, FeatureNavTabs, FeatureSideNav, FeatureSideNavFooter, FeatureSideNavHeader, FeatureSideNavLink, FeatureSideNavLinks, FlowModalContainer as FlowModal, FlowModalForm, FormInput, Header, _default as HeaderMenuItem, ImageModal, InputGovernor, Loading, MemberBar, Modal, ModalConfirmEdit, FlowModalContainer as ModalFlow, FlowModalForm as ModalFlowForm, ModalForm, ModalFunctionChildrenProps, ModalTrigger, NotificationsContainer, PlatformBanner, PlatformNotificationsContainer, Portal, PrivacyStatement, ProtectedRoute, RadioGroupComponent as RadioGroup, RichTextAreaComponent as RichTextArea, SimpleTeamService, Team, TextAreaComponent as TextArea, TextInputComponent as TextInput, ToastNotification, ToggleComponent as Toggle, TooltipHover, UIShell, User, UserTeams, notify };
|
package/package.json
CHANGED
|
@@ -10,9 +10,27 @@ IBM Confidential
|
|
|
10
10
|
@use "../../global/themes/shell-tokens" as shell;
|
|
11
11
|
|
|
12
12
|
:root {
|
|
13
|
+
.#{$prefix}--header-dropdown-menu-container {
|
|
14
|
+
display: flex;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.#{$prefix}--header-dropdown-menu-loading {
|
|
18
|
+
align-items: center;
|
|
19
|
+
display: flex;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.#{$prefix}--header-dropdown-menu-success {
|
|
23
|
+
align-items: center;
|
|
24
|
+
display: flex;
|
|
25
|
+
|
|
26
|
+
svg path {
|
|
27
|
+
fill: var(--cds-tag-border-green);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
13
31
|
.#{$prefix}--header-dropdown-menu {
|
|
14
32
|
list-style: none;
|
|
15
|
-
width:
|
|
33
|
+
max-width: 18.5625rem;
|
|
16
34
|
|
|
17
35
|
.#{$prefix}--header__menu-title {
|
|
18
36
|
display: flex;
|
|
@@ -33,14 +51,17 @@ IBM Confidential
|
|
|
33
51
|
|
|
34
52
|
.#{$prefix}--header__menu {
|
|
35
53
|
box-shadow: none;
|
|
36
|
-
width: 18.5625rem;
|
|
54
|
+
min-width: 18.5625rem;
|
|
55
|
+
position: relative;
|
|
56
|
+
width: 100%;
|
|
37
57
|
|
|
38
58
|
.#{$prefix}--bmrg-header-drop-down {
|
|
39
|
-
|
|
40
|
-
|
|
59
|
+
max-height: min(48rem, 84vh);
|
|
60
|
+
min-width: 18.5625rem;
|
|
41
61
|
overflow-y: auto;
|
|
42
|
-
|
|
43
|
-
|
|
62
|
+
position: absolute;
|
|
63
|
+
right: 0;
|
|
64
|
+
width: 100%;
|
|
44
65
|
|
|
45
66
|
a.#{$prefix}--header__menu-item {
|
|
46
67
|
cursor: pointer;
|
|
@@ -78,7 +99,8 @@ IBM Confidential
|
|
|
78
99
|
justify-content: space-between;
|
|
79
100
|
}
|
|
80
101
|
|
|
81
|
-
.#{$prefix}--header__menu-item[aria-selected="true"]
|
|
102
|
+
.#{$prefix}--header__menu-item[aria-selected="true"],
|
|
103
|
+
.#{$prefix}--header__menu-item:hover {
|
|
82
104
|
background-color: var(--cds-layer-hover-01) !important;
|
|
83
105
|
}
|
|
84
106
|
}
|
|
@@ -109,6 +131,10 @@ IBM Confidential
|
|
|
109
131
|
}
|
|
110
132
|
}
|
|
111
133
|
|
|
134
|
+
.#{$prefix}--header__menu-item:hover {
|
|
135
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
136
|
+
}
|
|
137
|
+
|
|
112
138
|
.#{$prefix}--header__menu-item[aria-expanded="true"] {
|
|
113
139
|
background-color: var(--cds-layer-hover-01) !important;
|
|
114
140
|
|
|
@@ -129,7 +155,7 @@ IBM Confidential
|
|
|
129
155
|
transition: max-height 150ms ease-in-out, opacity 150ms ease-in-out;
|
|
130
156
|
|
|
131
157
|
&[aria-expanded="true"] {
|
|
132
|
-
max-height:
|
|
158
|
+
max-height: 100rem;
|
|
133
159
|
opacity: 1;
|
|
134
160
|
overflow-y: auto;
|
|
135
161
|
}
|
|
@@ -137,6 +163,10 @@ IBM Confidential
|
|
|
137
163
|
|
|
138
164
|
.#{$prefix}--header-team-switcher-create-team-button-container {
|
|
139
165
|
border-bottom: 0.0625rem solid var(--cds-border-subtle-00);
|
|
166
|
+
|
|
167
|
+
.#{$prefix}--header__menu-item:hover {
|
|
168
|
+
background-color: var(--cds-layer-hover-01) !important;
|
|
169
|
+
}
|
|
140
170
|
}
|
|
141
171
|
|
|
142
172
|
.#{$prefix}--header-team-switcher-create-team-button {
|