@boomerang-io/carbon-addons-boomerang-react 4.6.21-beta.24 → 4.6.21-beta.26

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.
@@ -170,6 +170,15 @@ function AdvantageSideNav(props) {
170
170
  };
171
171
  const chatSideNavLink = (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-chat-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), renderIcon: icons.ChatBot, href: enableChatButton && chatLink, onClick: enableChatButton ? handleChatClick : (e) => e.preventDefault() }, "Chat"));
172
172
  const showSecondDivider = showChatButton || toolsLink || agentAssistantStudioLink || agentAssistantLibraryLink || documentCollectionsLink;
173
+ const navigateInternal = (url) => {
174
+ const target = new URL(url, window.location.origin);
175
+ if (target.origin === window.location.origin) {
176
+ history.push(target.pathname + target.search + target.hash);
177
+ }
178
+ else {
179
+ window.location.href = url;
180
+ }
181
+ };
173
182
  return (React__default.default.createElement(react.SideNav, { "aria-label": "sidenav-container", className: cx__default.default(`${settings.prefix}--bmrg-advantage-sidenav-container`, className, {
174
183
  "--closed": !isMenuOpen,
175
184
  }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
@@ -233,11 +242,17 @@ function AdvantageSideNav(props) {
233
242
  handleDocumentCollectionsClick();
234
243
  } }, "Document Collections")) : null,
235
244
  showSecondDivider ? React__default.default.createElement(react.SideNavDivider, null) : null,
236
- catalogNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), href: catalogNavlink, renderIcon: icons.Catalog }, "Catalog")) : null,
245
+ catalogNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), renderIcon: icons.Catalog, onClick: (e) => {
246
+ e.preventDefault();
247
+ navigateInternal(catalogNavlink);
248
+ } }, "Catalog")) : null,
237
249
  settingsLink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: icons.Settings, href: settingsLink, onClick: (e) => {
238
250
  handleSettingsClick();
239
251
  } }, "Settings")) : null,
240
- adminNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-admin-link", href: adminNavlink, renderIcon: icons.LicenseThirdParty }, "Admin")) : null),
252
+ adminNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-admin-link", renderIcon: icons.LicenseThirdParty, onClick: (e) => {
253
+ e.preventDefault();
254
+ navigateInternal(adminNavlink);
255
+ } }, "Admin")) : null),
241
256
  children ? (React__default.default.createElement(React__default.default.Fragment, null,
242
257
  React__default.default.createElement(react.SideNavDivider, null),
243
258
  children)) : null)));
@@ -62,7 +62,7 @@ const MenuAriaLabelRecord = {
62
62
  const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn cds--btn--primary cds--btn--icon-only cds--btn cds--btn--primary";
63
63
  const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
64
64
  function Header(props) {
65
- const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, enableTeamSwitcher = true, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, navLinks, platform, prefixName = "", refetchUser, refetchNavigation, rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, userTeamsAssets, } = props;
65
+ const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, navLinks, platform, prefixName = "", refetchUser, refetchNavigation, rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, userTeamsAssets, } = props;
66
66
  const hasUserTeams = Boolean(userTeams);
67
67
  const userTeamsUrl = servicesConfig.serviceUrl.getUserTeamsServices({ baseServicesUrl });
68
68
  const teamsQuery = reactQuery.useQuery({
@@ -70,7 +70,6 @@ function Header(props) {
70
70
  queryFn: servicesConfig.resolver.query(userTeamsUrl, null),
71
71
  enabled: !hasUserTeams && Boolean(baseServicesUrl),
72
72
  });
73
- const showTeamSwitcher = enableTeamSwitcher && Boolean(user);
74
73
  return (React__default.default.createElement(React__default.default.Fragment, null,
75
74
  React__default.default.createElement(react.Theme, { theme: carbonTheme },
76
75
  React__default.default.createElement(react.Header, { "aria-label": "App navigation header", className: className },
@@ -81,7 +80,7 @@ function Header(props) {
81
80
  ? navLinks.map((link) => (React__default.default.createElement(react.HeaderMenuItem, { "aria-label": `Link for ${link.name}`, "data-testid": "header-menu-link", href: link.url, isCurrentPage: window?.location?.href && link.url ? window.location.href.startsWith(link.url) : false, key: link.name, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name)))
82
81
  : null),
83
82
  React__default.default.createElement(react.HeaderGlobalBar, null,
84
- showTeamSwitcher ? (React__default.default.createElement(HeaderTeamSwitcher.default, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, refetchUser: refetchUser, refetchNavigation: refetchNavigation, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams })) : null,
83
+ React__default.default.createElement(HeaderTeamSwitcher.default, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, refetchUser: refetchUser, refetchNavigation: refetchNavigation, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams }),
85
84
  props?.instanceSwitcherEnabled && (React__default.default.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
86
85
  React__default.default.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
87
86
  React__default.default.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
@@ -11,7 +11,6 @@ var HeaderMenu = require('./HeaderMenu.js');
11
11
  var servicesConfig = require('../../config/servicesConfig.js');
12
12
  var settings = require('../../internal/settings.js');
13
13
  var UserType = require('../../constants/UserType.js');
14
- var TeamTypes = require('../../constants/TeamTypes.js');
15
14
 
16
15
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
17
16
 
@@ -148,9 +147,6 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
148
147
  teamsQuery?.data?.personalTeam?.length === 0))) {
149
148
  handleNoTeamsToSelect();
150
149
  }
151
- else if (userTeamInstanceSwitcherDefault === null) {
152
- setSelectedTeam(null);
153
- }
154
150
  }, [
155
151
  baseServicesUrl,
156
152
  hasUserTeams,
@@ -227,58 +223,33 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
227
223
  standardTeams = teamsQuery?.data?.standardTeams ?? [];
228
224
  personalTeam = teamsQuery?.data?.personalTeam ?? [];
229
225
  }
230
- let newPersonalTeam = personalTeam.length > 0
231
- ? personalTeam.map((personalTeam) => ({
232
- ...personalTeam,
233
- type: TeamTypes.TEAM_TYPES.PERSONAL,
234
- nameToDisplay: personalTeam.displayName ? personalTeam.displayName : personalTeam.name,
235
- }))
236
- : [];
237
- let newAccountTeams = [];
238
- let newStandardTeams = [];
226
+ let sortedAccountTeamsWithNamesToDisplay = [];
227
+ let sortedStandardTeamsWithNamesToDisplay = [];
239
228
  if (accountTeams?.length > 0) {
240
- newAccountTeams = accountTeams.map((team) => {
229
+ const newAccountTeams = accountTeams.map((team) => {
241
230
  let newProjectTeams = [];
242
231
  if (team.projectTeams && team.projectTeams.length > 0) {
243
- newProjectTeams = team.projectTeams?.map((projectTeam) => {
244
- return {
245
- ...projectTeam,
246
- nameToDisplay: projectTeam.displayName ? projectTeam.displayName : projectTeam.name,
247
- };
248
- });
232
+ newProjectTeams = team.projectTeams?.map((team) => ({
233
+ ...team,
234
+ nameToDisplay: team.displayName ? team.displayName : team.name,
235
+ }));
249
236
  }
250
237
  return {
251
238
  ...team,
252
239
  nameToDisplay: team.displayName ? team.displayName : team.name,
253
- type: TeamTypes.TEAM_TYPES.ACCOUNT,
254
240
  projectTeams: sortBy__default.default(newProjectTeams, ["nameToDisplay"]),
255
241
  };
256
242
  });
243
+ sortedAccountTeamsWithNamesToDisplay = sortBy__default.default(newAccountTeams, ["nameToDisplay"]);
257
244
  }
258
245
  if (standardTeams?.length > 0) {
259
- newStandardTeams = standardTeams.map((team) => {
246
+ const newStandardTeams = standardTeams.map((team) => {
260
247
  return {
261
248
  ...team,
262
- type: TeamTypes.TEAM_TYPES.STANDARD,
263
249
  nameToDisplay: team.displayName ? team.displayName : team.name,
264
250
  };
265
251
  });
266
- }
267
- let allTeams = newPersonalTeam.concat(newAccountTeams, newStandardTeams);
268
- const order = { [TeamTypes.TEAM_TYPES.PERSONAL]: 1, [TeamTypes.TEAM_TYPES.ACCOUNT]: 2, [TeamTypes.TEAM_TYPES.STANDARD]: 3 };
269
- allTeams = sortBy__default.default(allTeams, [(team) => order[team.type], "nameToDisplay"]);
270
- if (selectedTeam) {
271
- const selectedTeamIndex = allTeams.findIndex((team, index) => {
272
- if (team.id === selectedTeam.id) {
273
- return true;
274
- }
275
- else if (Array.isArray(team.projectTeams) && team.projectTeams?.length > 0) {
276
- return team.projectTeams.some((projectTeam) => projectTeam.id === selectedTeam.id);
277
- }
278
- return false;
279
- });
280
- const [removedTeam] = allTeams.splice(selectedTeamIndex, 1);
281
- allTeams.unshift(removedTeam);
252
+ sortedStandardTeamsWithNamesToDisplay = sortBy__default.default(newStandardTeams, ["nameToDisplay"]);
282
253
  }
283
254
  let selectedTeamName = selectedTeam?.displayName
284
255
  ? selectedTeam.displayName
@@ -300,22 +271,29 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
300
271
  React__default.default.createElement("div", { className: headerTeamSwitcherCreateTeamButtonClassname },
301
272
  React__default.default.createElement("span", { className: headerTeamSwitcherCreateTeamButtonTextClassname }, createTeamButtonText),
302
273
  React__default.default.createElement(icons.AddAlt, { className: headerTeamSwitcherCreateTeamButtonIconClassname })))),
303
- allTeams.map((team) => {
304
- const isTeamSelected = team.id === selectedTeam?.id;
305
- if (team.type === TeamTypes.TEAM_TYPES.ACCOUNT) {
274
+ personalTeam.length > 0
275
+ ? personalTeam.map((team) => {
276
+ const teamName = team.displayName ? team.displayName : team.name;
277
+ const isTeamSelected = team.id === selectedTeam?.id;
278
+ return (React__default.default.createElement("div", { key: team.id, id: `${team.id}-personal-menu-item-id` },
279
+ React__default.default.createElement(react.HeaderMenuItem, { key: team.id, id: `${team.id}-personal-menu-item`, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
280
+ handleTeamClick({ team, type: "personal" });
281
+ },
282
+ // eslint-disable-next-line no-script-url
283
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-item" },
284
+ React__default.default.createElement("div", { className: headerDropdownMenuItemClassname },
285
+ React__default.default.createElement("span", { title: teamName, className: headerDropdownMenuItemTextClassname }, teamName),
286
+ isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
287
+ })
288
+ : null,
289
+ accountTeams.length > 0
290
+ ? sortedAccountTeamsWithNamesToDisplay.map((team) => {
306
291
  const isSubmenuOpen = team.id === openAccountSubmenuId;
307
- const projectTeams = team.projectTeams;
308
- const existProjectTeams = Array.isArray(projectTeams) && projectTeams.length > 0;
309
- let selectedProjectTeamIndex = -1;
310
- if (existProjectTeams) {
311
- selectedProjectTeamIndex = projectTeams.findIndex((team) => team.id === selectedTeam?.id);
312
- }
313
- const isProjectTeamSelected = selectedProjectTeamIndex >= 0;
292
+ const isProjectTeamSelected = team.projectTeams &&
293
+ team.projectTeams.length > 0 &&
294
+ team.projectTeams.some((team) => team.id === selectedTeam?.id);
295
+ const isTeamSelected = team.id === selectedTeam?.id;
314
296
  const isMenuSelected = isTeamSelected || isProjectTeamSelected;
315
- if (existProjectTeams && isProjectTeamSelected) {
316
- const [removedTeam] = projectTeams.splice(selectedProjectTeamIndex, 1);
317
- projectTeams.unshift(removedTeam);
318
- }
319
297
  return (React__default.default.createElement("div", { key: team.id, id: `${team.id}-account-menu` },
320
298
  React__default.default.createElement(react.HeaderMenuItem, { "aria-expanded": isSubmenuOpen, "aria-selected": isMenuSelected, className: headerDropdownMenuItemAccountContainerClassname, onClick: (e) => handleOpenAccountSubmenu({ e, id: team.id }),
321
299
  // eslint-disable-next-line no-script-url
@@ -323,7 +301,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
323
301
  React__default.default.createElement("div", { className: headerDropdownMenuItemAccountClassname },
324
302
  React__default.default.createElement("div", { className: headerDropdownMenuItemTextIconClassname },
325
303
  React__default.default.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
326
- isMenuSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null),
304
+ isMenuSelected ? (React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null),
327
305
  React__default.default.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
328
306
  React__default.default.createElement(icons.GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
329
307
  React__default.default.createElement(icons.ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
@@ -335,9 +313,9 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
335
313
  href: "javascript:void(0)" },
336
314
  React__default.default.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
337
315
  React__default.default.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, "Account Page"),
338
- isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)),
339
- projectTeams && projectTeams.length > 0
340
- ? projectTeams.map((team) => {
316
+ isTeamSelected ? (React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null)),
317
+ team.projectTeams && team.projectTeams.length > 0
318
+ ? team.projectTeams.map((team) => {
341
319
  const isTeamSelected = team.id === selectedTeam?.id;
342
320
  return (React__default.default.createElement("div", { key: team.id, id: `${team.id}-project-menu-item` },
343
321
  React__default.default.createElement(react.HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
@@ -350,19 +328,22 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
350
328
  isTeamSelected ? (React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null))));
351
329
  })
352
330
  : null)));
353
- }
354
- else {
355
- return (React__default.default.createElement("div", { key: team.id, id: `${team.id}-${team.type}-menu-item` },
331
+ })
332
+ : null,
333
+ standardTeams.length > 0
334
+ ? sortedStandardTeamsWithNamesToDisplay.map((team) => {
335
+ const isTeamSelected = team.id === selectedTeam?.id;
336
+ return (React__default.default.createElement("div", { key: team.id, id: `${team.id}-standard-menu-item` },
356
337
  React__default.default.createElement(react.HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
357
- handleTeamClick({ team, type: team.type ?? "" });
338
+ handleTeamClick({ team, type: "standard" });
358
339
  }, "data-testid": "header-team-switcher-menu-item",
359
340
  // eslint-disable-next-line no-script-url
360
341
  href: "javascript:void(0)" },
361
342
  React__default.default.createElement("div", { className: headerDropdownMenuItemClassname },
362
343
  React__default.default.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
363
344
  isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
364
- }
365
- })))));
345
+ })
346
+ : null))));
366
347
  }
367
348
  return null;
368
349
  }
@@ -122,9 +122,9 @@ function ProfileSettings({ baseServicesUrl, refetchUser, refetchUserTeams, refet
122
122
  return (React__default.default.createElement(react.ComposedModal, { "aria-label": "Profile Settings", className: `${settings.prefix}--bmrg-profile-settings-container ${settings.prefix}--bmrg-header-modal`, open: isOpen, onClose: handleClose, preventCloseOnClickOutside: true },
123
123
  React__default.default.createElement(react.ModalHeader, { closeModal: handleClose, title: `User profile - ${userName}` }),
124
124
  React__default.default.createElement(react.ModalBody, { style: { maxHeight: "31.5rem" } },
125
- React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your team switcher in Launchpad."),
126
- React__default.default.createElement("h2", { className: `${settings.prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad team switcher"),
127
- React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad team switcher and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the team switcher, and cannot add items to them from Catalog."),
125
+ React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your sidebar in Launchpad."),
126
+ React__default.default.createElement("h2", { className: `${settings.prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad sidebar"),
127
+ React__default.default.createElement("p", { className: `${settings.prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad sidebar and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the sidebar, and cannot add items to them from Catalog."),
128
128
  userIsLoading ? (React__default.default.createElement(react.StructuredListSkeleton, null)) : userError ? (React__default.default.createElement(ErrorMessage.default, { style: { color: "#F2F4F8", padding: "1rem" } })) : teams?.length > 0 ? (React__default.default.createElement(react.StructuredListWrapper, { className: `${settings.prefix}--bmrg-profile-settings-list` },
129
129
  React__default.default.createElement(react.StructuredListHead, null,
130
130
  React__default.default.createElement(react.StructuredListRow, { head: true },
@@ -26,11 +26,11 @@ IBM Confidential
26
26
  694970X, 69497O0
27
27
  © Copyright IBM Corp. 2022, 2024
28
28
  */
29
- function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, enableTeamSwitcher = true, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, enableIcaMacs, }) {
29
+ 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, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, enableIcaMacs, }) {
30
30
  // Support base header .e.g for an error state
31
31
  if (!config) {
32
32
  return (React__default.default.createElement(reactQuery.QueryClientProvider, { client: servicesConfig.queryClient },
33
- React__default.default.createElement(Header.default, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, enableTeamSwitcher: enableTeamSwitcher, productName: productName || platformName || "", user: user })));
33
+ React__default.default.createElement(Header.default, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, productName: productName || platformName || "", user: user })));
34
34
  }
35
35
  const { features, navigation, platform, platformMessage } = config;
36
36
  const names = getProductAndPlatformNames({ productName, platformName, platform });
@@ -71,7 +71,7 @@ function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, cr
71
71
  */
72
72
  const isPrivacyStatementDisabled = renderPrivacyStatement === false || features?.["consent.enabled"] === false;
73
73
  return (React__default.default.createElement(reactQuery.QueryClientProvider, { client: servicesConfig.queryClient },
74
- React__default.default.createElement(Header.default, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, enableTeamSwitcher: enableTeamSwitcher, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
74
+ React__default.default.createElement(Header.default, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
75
75
  isUserEnabled && (React__default.default.createElement(ProfileSettings.ProfileSettingsMenuItem, { key: "profile-settings", baseServicesUrl: platform.baseServicesUrl, src: `${platform.baseServicesUrl}/users/image/${user?.email}`, userName: user?.displayName ?? user?.name, refetchUser: refetchUser, refetchUserTeams: refetchUserTeams, refetchNavigation: refetchNavigation })),
76
76
  isSendMailEnabled && (React__default.default.createElement(HeaderMenuItem.default, { key: "email-preferences", href: `${platform.baseEnvUrl}/launchpad/email-preferences`, icon: React__default.default.createElement(icons.Email, null), kind: "internal", text: "Email Preferences", type: "link" })),
77
77
  !isPrivacyStatementDisabled && (React__default.default.createElement(PrivacyStatement.PrivacyStatementMenuItem, { key: "privacy-statement", baseServicesUrl: platform.baseServicesUrl, platformEmail: platform?.platformEmail })),
@@ -161,6 +161,15 @@ function AdvantageSideNav(props) {
161
161
  };
162
162
  const chatSideNavLink = (React.createElement(SideNavLink, { "data-testid": "sidenav-chat-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), renderIcon: ChatBot, href: enableChatButton && chatLink, onClick: enableChatButton ? handleChatClick : (e) => e.preventDefault() }, "Chat"));
163
163
  const showSecondDivider = showChatButton || toolsLink || agentAssistantStudioLink || agentAssistantLibraryLink || documentCollectionsLink;
164
+ const navigateInternal = (url) => {
165
+ const target = new URL(url, window.location.origin);
166
+ if (target.origin === window.location.origin) {
167
+ history.push(target.pathname + target.search + target.hash);
168
+ }
169
+ else {
170
+ window.location.href = url;
171
+ }
172
+ };
164
173
  return (React.createElement(SideNav, { "aria-label": "sidenav-container", className: cx(`${prefix}--bmrg-advantage-sidenav-container`, className, {
165
174
  "--closed": !isMenuOpen,
166
175
  }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
@@ -224,11 +233,17 @@ function AdvantageSideNav(props) {
224
233
  handleDocumentCollectionsClick();
225
234
  } }, "Document Collections")) : null,
226
235
  showSecondDivider ? React.createElement(SideNavDivider, null) : null,
227
- catalogNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), href: catalogNavlink, renderIcon: Catalog }, "Catalog")) : null,
236
+ catalogNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), renderIcon: Catalog, onClick: (e) => {
237
+ e.preventDefault();
238
+ navigateInternal(catalogNavlink);
239
+ } }, "Catalog")) : null,
228
240
  settingsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: Settings, href: settingsLink, onClick: (e) => {
229
241
  handleSettingsClick();
230
242
  } }, "Settings")) : null,
231
- adminNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-admin-link", href: adminNavlink, renderIcon: LicenseThirdParty }, "Admin")) : null),
243
+ adminNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-admin-link", renderIcon: LicenseThirdParty, onClick: (e) => {
244
+ e.preventDefault();
245
+ navigateInternal(adminNavlink);
246
+ } }, "Admin")) : null),
232
247
  children ? (React.createElement(React.Fragment, null,
233
248
  React.createElement(SideNavDivider, null),
234
249
  children)) : null)));
@@ -54,7 +54,7 @@ const MenuAriaLabelRecord = {
54
54
  const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn cds--btn--primary cds--btn--icon-only cds--btn cds--btn--primary";
55
55
  const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
56
56
  function Header(props) {
57
- const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, enableTeamSwitcher = true, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, navLinks, platform, prefixName = "", refetchUser, refetchNavigation, rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, userTeamsAssets, } = props;
57
+ const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, navLinks, platform, prefixName = "", refetchUser, refetchNavigation, rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, userTeamsAssets, } = props;
58
58
  const hasUserTeams = Boolean(userTeams);
59
59
  const userTeamsUrl = serviceUrl.getUserTeamsServices({ baseServicesUrl });
60
60
  const teamsQuery = useQuery({
@@ -62,7 +62,6 @@ function Header(props) {
62
62
  queryFn: resolver.query(userTeamsUrl, null),
63
63
  enabled: !hasUserTeams && Boolean(baseServicesUrl),
64
64
  });
65
- const showTeamSwitcher = enableTeamSwitcher && Boolean(user);
66
65
  return (React.createElement(React.Fragment, null,
67
66
  React.createElement(Theme, { theme: carbonTheme },
68
67
  React.createElement(Header$1, { "aria-label": "App navigation header", className: className },
@@ -73,7 +72,7 @@ function Header(props) {
73
72
  ? navLinks.map((link) => (React.createElement(HeaderMenuItem, { "aria-label": `Link for ${link.name}`, "data-testid": "header-menu-link", href: link.url, isCurrentPage: window?.location?.href && link.url ? window.location.href.startsWith(link.url) : false, key: link.name, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name)))
74
73
  : null),
75
74
  React.createElement(HeaderGlobalBar, null,
76
- showTeamSwitcher ? (React.createElement(HeaderTeamSwitcher, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, refetchUser: refetchUser, refetchNavigation: refetchNavigation, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams })) : null,
75
+ React.createElement(HeaderTeamSwitcher, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, refetchUser: refetchUser, refetchNavigation: refetchNavigation, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams }),
77
76
  props?.instanceSwitcherEnabled && (React.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
78
77
  React.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
79
78
  React.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
@@ -7,7 +7,6 @@ import HeaderMenu$1 from './HeaderMenu.js';
7
7
  import { resolver } from '../../config/servicesConfig.js';
8
8
  import { prefix } from '../../internal/settings.js';
9
9
  import { USER_PLATFORM_ROLE } from '../../constants/UserType.js';
10
- import { TEAM_TYPES } from '../../constants/TeamTypes.js';
11
10
 
12
11
  /*
13
12
  IBM Confidential
@@ -139,9 +138,6 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
139
138
  teamsQuery?.data?.personalTeam?.length === 0))) {
140
139
  handleNoTeamsToSelect();
141
140
  }
142
- else if (userTeamInstanceSwitcherDefault === null) {
143
- setSelectedTeam(null);
144
- }
145
141
  }, [
146
142
  baseServicesUrl,
147
143
  hasUserTeams,
@@ -218,58 +214,33 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
218
214
  standardTeams = teamsQuery?.data?.standardTeams ?? [];
219
215
  personalTeam = teamsQuery?.data?.personalTeam ?? [];
220
216
  }
221
- let newPersonalTeam = personalTeam.length > 0
222
- ? personalTeam.map((personalTeam) => ({
223
- ...personalTeam,
224
- type: TEAM_TYPES.PERSONAL,
225
- nameToDisplay: personalTeam.displayName ? personalTeam.displayName : personalTeam.name,
226
- }))
227
- : [];
228
- let newAccountTeams = [];
229
- let newStandardTeams = [];
217
+ let sortedAccountTeamsWithNamesToDisplay = [];
218
+ let sortedStandardTeamsWithNamesToDisplay = [];
230
219
  if (accountTeams?.length > 0) {
231
- newAccountTeams = accountTeams.map((team) => {
220
+ const newAccountTeams = accountTeams.map((team) => {
232
221
  let newProjectTeams = [];
233
222
  if (team.projectTeams && team.projectTeams.length > 0) {
234
- newProjectTeams = team.projectTeams?.map((projectTeam) => {
235
- return {
236
- ...projectTeam,
237
- nameToDisplay: projectTeam.displayName ? projectTeam.displayName : projectTeam.name,
238
- };
239
- });
223
+ newProjectTeams = team.projectTeams?.map((team) => ({
224
+ ...team,
225
+ nameToDisplay: team.displayName ? team.displayName : team.name,
226
+ }));
240
227
  }
241
228
  return {
242
229
  ...team,
243
230
  nameToDisplay: team.displayName ? team.displayName : team.name,
244
- type: TEAM_TYPES.ACCOUNT,
245
231
  projectTeams: sortBy(newProjectTeams, ["nameToDisplay"]),
246
232
  };
247
233
  });
234
+ sortedAccountTeamsWithNamesToDisplay = sortBy(newAccountTeams, ["nameToDisplay"]);
248
235
  }
249
236
  if (standardTeams?.length > 0) {
250
- newStandardTeams = standardTeams.map((team) => {
237
+ const newStandardTeams = standardTeams.map((team) => {
251
238
  return {
252
239
  ...team,
253
- type: TEAM_TYPES.STANDARD,
254
240
  nameToDisplay: team.displayName ? team.displayName : team.name,
255
241
  };
256
242
  });
257
- }
258
- let allTeams = newPersonalTeam.concat(newAccountTeams, newStandardTeams);
259
- const order = { [TEAM_TYPES.PERSONAL]: 1, [TEAM_TYPES.ACCOUNT]: 2, [TEAM_TYPES.STANDARD]: 3 };
260
- allTeams = sortBy(allTeams, [(team) => order[team.type], "nameToDisplay"]);
261
- if (selectedTeam) {
262
- const selectedTeamIndex = allTeams.findIndex((team, index) => {
263
- if (team.id === selectedTeam.id) {
264
- return true;
265
- }
266
- else if (Array.isArray(team.projectTeams) && team.projectTeams?.length > 0) {
267
- return team.projectTeams.some((projectTeam) => projectTeam.id === selectedTeam.id);
268
- }
269
- return false;
270
- });
271
- const [removedTeam] = allTeams.splice(selectedTeamIndex, 1);
272
- allTeams.unshift(removedTeam);
243
+ sortedStandardTeamsWithNamesToDisplay = sortBy(newStandardTeams, ["nameToDisplay"]);
273
244
  }
274
245
  let selectedTeamName = selectedTeam?.displayName
275
246
  ? selectedTeam.displayName
@@ -291,22 +262,29 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
291
262
  React.createElement("div", { className: headerTeamSwitcherCreateTeamButtonClassname },
292
263
  React.createElement("span", { className: headerTeamSwitcherCreateTeamButtonTextClassname }, createTeamButtonText),
293
264
  React.createElement(AddAlt, { className: headerTeamSwitcherCreateTeamButtonIconClassname })))),
294
- allTeams.map((team) => {
295
- const isTeamSelected = team.id === selectedTeam?.id;
296
- if (team.type === TEAM_TYPES.ACCOUNT) {
265
+ personalTeam.length > 0
266
+ ? personalTeam.map((team) => {
267
+ const teamName = team.displayName ? team.displayName : team.name;
268
+ const isTeamSelected = team.id === selectedTeam?.id;
269
+ return (React.createElement("div", { key: team.id, id: `${team.id}-personal-menu-item-id` },
270
+ React.createElement(HeaderMenuItem, { key: team.id, id: `${team.id}-personal-menu-item`, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
271
+ handleTeamClick({ team, type: "personal" });
272
+ },
273
+ // eslint-disable-next-line no-script-url
274
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-item" },
275
+ React.createElement("div", { className: headerDropdownMenuItemClassname },
276
+ React.createElement("span", { title: teamName, className: headerDropdownMenuItemTextClassname }, teamName),
277
+ isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
278
+ })
279
+ : null,
280
+ accountTeams.length > 0
281
+ ? sortedAccountTeamsWithNamesToDisplay.map((team) => {
297
282
  const isSubmenuOpen = team.id === openAccountSubmenuId;
298
- const projectTeams = team.projectTeams;
299
- const existProjectTeams = Array.isArray(projectTeams) && projectTeams.length > 0;
300
- let selectedProjectTeamIndex = -1;
301
- if (existProjectTeams) {
302
- selectedProjectTeamIndex = projectTeams.findIndex((team) => team.id === selectedTeam?.id);
303
- }
304
- const isProjectTeamSelected = selectedProjectTeamIndex >= 0;
283
+ const isProjectTeamSelected = team.projectTeams &&
284
+ team.projectTeams.length > 0 &&
285
+ team.projectTeams.some((team) => team.id === selectedTeam?.id);
286
+ const isTeamSelected = team.id === selectedTeam?.id;
305
287
  const isMenuSelected = isTeamSelected || isProjectTeamSelected;
306
- if (existProjectTeams && isProjectTeamSelected) {
307
- const [removedTeam] = projectTeams.splice(selectedProjectTeamIndex, 1);
308
- projectTeams.unshift(removedTeam);
309
- }
310
288
  return (React.createElement("div", { key: team.id, id: `${team.id}-account-menu` },
311
289
  React.createElement(HeaderMenuItem, { "aria-expanded": isSubmenuOpen, "aria-selected": isMenuSelected, className: headerDropdownMenuItemAccountContainerClassname, onClick: (e) => handleOpenAccountSubmenu({ e, id: team.id }),
312
290
  // eslint-disable-next-line no-script-url
@@ -314,7 +292,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
314
292
  React.createElement("div", { className: headerDropdownMenuItemAccountClassname },
315
293
  React.createElement("div", { className: headerDropdownMenuItemTextIconClassname },
316
294
  React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
317
- isMenuSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null),
295
+ isMenuSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null),
318
296
  React.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
319
297
  React.createElement(GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
320
298
  React.createElement(ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
@@ -326,9 +304,9 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
326
304
  href: "javascript:void(0)" },
327
305
  React.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
328
306
  React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, "Account Page"),
329
- isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)),
330
- projectTeams && projectTeams.length > 0
331
- ? projectTeams.map((team) => {
307
+ isTeamSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null)),
308
+ team.projectTeams && team.projectTeams.length > 0
309
+ ? team.projectTeams.map((team) => {
332
310
  const isTeamSelected = team.id === selectedTeam?.id;
333
311
  return (React.createElement("div", { key: team.id, id: `${team.id}-project-menu-item` },
334
312
  React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
@@ -341,19 +319,22 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
341
319
  isTeamSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null))));
342
320
  })
343
321
  : null)));
344
- }
345
- else {
346
- return (React.createElement("div", { key: team.id, id: `${team.id}-${team.type}-menu-item` },
322
+ })
323
+ : null,
324
+ standardTeams.length > 0
325
+ ? sortedStandardTeamsWithNamesToDisplay.map((team) => {
326
+ const isTeamSelected = team.id === selectedTeam?.id;
327
+ return (React.createElement("div", { key: team.id, id: `${team.id}-standard-menu-item` },
347
328
  React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => {
348
- handleTeamClick({ team, type: team.type ?? "" });
329
+ handleTeamClick({ team, type: "standard" });
349
330
  }, "data-testid": "header-team-switcher-menu-item",
350
331
  // eslint-disable-next-line no-script-url
351
332
  href: "javascript:void(0)" },
352
333
  React.createElement("div", { className: headerDropdownMenuItemClassname },
353
334
  React.createElement("span", { title: team.nameToDisplay, className: headerDropdownMenuItemTextClassname }, team.nameToDisplay),
354
335
  isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null))));
355
- }
356
- })))));
336
+ })
337
+ : null))));
357
338
  }
358
339
  return null;
359
340
  }
@@ -113,9 +113,9 @@ function ProfileSettings({ baseServicesUrl, refetchUser, refetchUserTeams, refet
113
113
  return (React.createElement(ComposedModal, { "aria-label": "Profile Settings", className: `${prefix}--bmrg-profile-settings-container ${prefix}--bmrg-header-modal`, open: isOpen, onClose: handleClose, preventCloseOnClickOutside: true },
114
114
  React.createElement(ModalHeader, { closeModal: handleClose, title: `User profile - ${userName}` }),
115
115
  React.createElement(ModalBody, { style: { maxHeight: "31.5rem" } },
116
- React.createElement("p", { className: `${prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your team switcher in Launchpad."),
117
- React.createElement("h2", { className: `${prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad team switcher"),
118
- React.createElement("p", { className: `${prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad team switcher and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the team switcher, and cannot add items to them from Catalog."),
116
+ React.createElement("p", { className: `${prefix}--bmrg-profile-settings__title` }, "More user profile settings will be here eventually, but for now you can choose which Teams are shown in your sidebar in Launchpad."),
117
+ React.createElement("h2", { className: `${prefix}--bmrg-profile-settings__subtitle` }, "Teams visible in Launchpad sidebar"),
118
+ React.createElement("p", { className: `${prefix}--bmrg-profile-settings__description` }, "Choose Teams to show or hide in your Launchpad sidebar and Catalog (useful for sensitive demos). You will not be able to access or view unchecked Teams from the sidebar, and cannot add items to them from Catalog."),
119
119
  userIsLoading ? (React.createElement(StructuredListSkeleton, null)) : userError ? (React.createElement(Error, { style: { color: "#F2F4F8", padding: "1rem" } })) : teams?.length > 0 ? (React.createElement(StructuredListWrapper, { className: `${prefix}--bmrg-profile-settings-list` },
120
120
  React.createElement(StructuredListHead, null,
121
121
  React.createElement(StructuredListRow, { head: true },
@@ -18,11 +18,11 @@ IBM Confidential
18
18
  694970X, 69497O0
19
19
  © Copyright IBM Corp. 2022, 2024
20
20
  */
21
- function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, createJoinTeamTrigger, enableTeamSwitcher = true, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems = [], supportMenuItems = [], renderPrivacyRedirect = true, renderPrivacyStatement = true, rightPanel, handleShowTutorial, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, 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, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, enableIcaMacs, }) {
22
22
  // Support base header .e.g for an error state
23
23
  if (!config) {
24
24
  return (React.createElement(QueryClientProvider, { client: queryClient },
25
- React.createElement(Header, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, enableTeamSwitcher: enableTeamSwitcher, productName: productName || platformName || "", user: user })));
25
+ React.createElement(Header, { baseEnvUrl: baseEnvUrl ?? "", baseServicesUrl: "", carbonTheme: carbonTheme, enableAppSwitcher: false, enableNotifications: false, enableNotificationsCount: false, productName: productName || platformName || "", user: user })));
26
26
  }
27
27
  const { features, navigation, platform, platformMessage } = config;
28
28
  const names = getProductAndPlatformNames({ productName, platformName, platform });
@@ -63,7 +63,7 @@ function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme = "g10", config, cr
63
63
  */
64
64
  const isPrivacyStatementDisabled = renderPrivacyStatement === false || features?.["consent.enabled"] === false;
65
65
  return (React.createElement(QueryClientProvider, { client: queryClient },
66
- React.createElement(Header, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, enableTeamSwitcher: enableTeamSwitcher, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
66
+ React.createElement(Header, { analyticsHelpers: analyticsHelpers, baseEnvUrl: platform.baseEnvUrl, baseServicesUrl: platform.baseServicesUrl, carbonTheme: carbonTheme, createJoinTeamTrigger: createJoinTeamTrigger, enableAppSwitcher: isAppSwitcherEnabled, instanceSwitcherEnabled: instanceSwitcherEnabled, enableNotifications: isNotificationsEnabled, enableNotificationsCount: isNotificationsCountEnabled, leftPanel: leftPanel, navLinks: navigation, platform: platform, platformMessage: platformMessage, prefixName: names.platformName, productName: names.productName, rightPanel: rightPanel, requestSummary: user?.requestSummary, skipToContentProps: skipToContentProps, templateMeteringEvent: templateMeteringEvent, triggerEvent: triggerEvent, profileMenuItems: [
67
67
  isUserEnabled && (React.createElement(ProfileSettingsMenuItem, { key: "profile-settings", baseServicesUrl: platform.baseServicesUrl, src: `${platform.baseServicesUrl}/users/image/${user?.email}`, userName: user?.displayName ?? user?.name, refetchUser: refetchUser, refetchUserTeams: refetchUserTeams, refetchNavigation: refetchNavigation })),
68
68
  isSendMailEnabled && (React.createElement(HeaderMenuItem, { key: "email-preferences", href: `${platform.baseEnvUrl}/launchpad/email-preferences`, icon: React.createElement(Email, null), kind: "internal", text: "Email Preferences", type: "link" })),
69
69
  !isPrivacyStatementDisabled && (React.createElement(PrivacyStatementMenuItem, { key: "privacy-statement", baseServicesUrl: platform.baseServicesUrl, platformEmail: platform?.platformEmail })),
@@ -367,7 +367,6 @@ type Props$G = {
367
367
  className?: string;
368
368
  createJoinTeamTrigger?: Function;
369
369
  enableAppSwitcher?: boolean;
370
- enableTeamSwitcher?: boolean;
371
370
  instanceSwitcherEnabled?: boolean;
372
371
  enableNotifications?: boolean;
373
372
  enableNotificationsCount?: boolean;
@@ -1438,7 +1437,6 @@ type Props = {
1438
1437
  };
1439
1438
  platformMessage?: any;
1440
1439
  };
1441
- enableTeamSwitcher?: boolean;
1442
1440
  history?: any;
1443
1441
  isLaunchpad?: boolean;
1444
1442
  isLoadingTeamSwitcher?: boolean;
@@ -1485,6 +1483,6 @@ type Props = {
1485
1483
  handleShowTutorial?: Function;
1486
1484
  tutorialScreenToShow?: string;
1487
1485
  };
1488
- declare function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme, config, createJoinTeamTrigger, enableTeamSwitcher, history, isLaunchpad, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, enableIcaMacs, }: Props): React.JSX.Element;
1486
+ declare function UIShell({ analyticsHelpers, baseEnvUrl, carbonTheme, config, createJoinTeamTrigger, history, isLaunchpad, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, leftPanel, platformName, productName, profileMenuItems, supportMenuItems, renderPrivacyRedirect, renderPrivacyStatement, rightPanel, handleShowTutorial, refetchUser, refetchUserTeams, refetchNavigation, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, tutorialScreenToShow, user, userTeams, userTeamsAssets, enableIcaMacs, }: Props): React.JSX.Element;
1489
1487
 
1490
1488
  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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@boomerang-io/carbon-addons-boomerang-react",
3
3
  "description": "Carbon Addons for Boomerang apps",
4
- "version": "4.6.21-beta.24",
4
+ "version": "4.6.21-beta.26",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"
@@ -1,15 +0,0 @@
1
- 'use strict';
2
-
3
- /*
4
- IBM Confidential
5
- 694970X, 69497O0
6
- © Copyright IBM Corp. 2022, 2024
7
- */
8
- const TEAM_TYPES = {
9
- ACCOUNT: "account",
10
- PERSONAL: "personal",
11
- PROJECT: "project",
12
- STANDARD: "standard",
13
- };
14
-
15
- exports.TEAM_TYPES = TEAM_TYPES;
@@ -1,13 +0,0 @@
1
- /*
2
- IBM Confidential
3
- 694970X, 69497O0
4
- © Copyright IBM Corp. 2022, 2024
5
- */
6
- const TEAM_TYPES = {
7
- ACCOUNT: "account",
8
- PERSONAL: "personal",
9
- PROJECT: "project",
10
- STANDARD: "standard",
11
- };
12
-
13
- export { TEAM_TYPES };