@boomerang-io/carbon-addons-boomerang-react 4.6.8-beta.37 → 4.6.8-beta.38

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.
@@ -5,7 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var reactQuery = require('react-query');
7
7
  var react = require('@carbon/react');
8
+ var icons = require('@carbon/react/icons');
9
+ var HeaderMenu = require('./HeaderMenu.js');
8
10
  var servicesConfig = require('../../config/servicesConfig.js');
11
+ var settings = require('../../internal/settings.js');
9
12
 
10
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
14
 
@@ -16,12 +19,30 @@ IBM Confidential
16
19
  694970X, 69497O0
17
20
  © Copyright IBM Corp. 2022, 2025
18
21
  */
22
+ const headerDropdownMenuClassname = `${settings.prefix}--header-dropdown-menu`;
23
+ const headerDropdownMenuListClassname = `${settings.prefix}--bmrg-header-drop-down`;
24
+ const headerDropdownMenuItemContainerClassname = `${settings.prefix}--header-dropdown-menu-item-container`;
25
+ const headerDropdownMenuItemClassname = `${settings.prefix}--header-dropdown-menu-item`;
26
+ const headerDropdownMenuItemTextIconClassname = `${settings.prefix}--header-dropdown-menu-item-text-icon`;
27
+ const headerDropdownMenuItemTextClassname = `${settings.prefix}--header-dropdown-menu-item-text`;
28
+ const headerDropdownMenuItemIconClassname = `${settings.prefix}--header-dropdown-menu-item-icon`;
29
+ const headerDropdownMenuItemAccountContainerClassname = `${settings.prefix}--header-dropdown-menu-item-account-container`;
30
+ const headerDropdownMenuItemAccountClassname = `${settings.prefix}--header-dropdown-menu-item-account`;
31
+ const headerDropdownMenuItemAccountIconsClassname = `${settings.prefix}--header-dropdown-menu-item-account-icons`;
32
+ const headerDropdownMenuItemAccountGroupIconClassname = `${settings.prefix}--header-dropdown-menu-item-account-group-icon`;
33
+ const headerDropdownMenuItemAccountChevronIconClassname = `${settings.prefix}--header-dropdown-menu-item-account-chevron-icon`;
34
+ const headerDropdownMenuItemAccountSubmenuClassname = `${settings.prefix}--header-dropdown-menu-item-account-submenu`;
35
+ const headerTeamSwitcherCreateTeamButtonContainerClassname = `${settings.prefix}--header-team-switcher-create-team-button-container`;
36
+ const headerTeamSwitcherCreateTeamButtonClassname = `${settings.prefix}--header-team-switcher-create-team-button`;
37
+ const headerTeamSwitcherCreateTeamButtonTextClassname = `${settings.prefix}--header-team-switcher-create-team-button-text`;
38
+ const headerTeamSwitcherCreateTeamButtonIconClassname = `${settings.prefix}--header-team-switcher-create-team-button-icon`;
19
39
  function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamTrigger, history, isLaunchpad, menuAriaLabelRecord, menuButtonId, menuListId, navigationPlatform, teamsQuery, trackEvent, user, userTeams, }) {
20
40
  const queryClient = reactQuery.useQueryClient();
21
41
  const [selectedTeam, setSelectedTeam] = React.useState();
22
- React.useState("");
42
+ const [openAccountSubmenuId, setOpenAccountSubmenuId] = React.useState("");
23
43
  const hasUserTeams = Boolean(userTeams);
24
- navigationPlatform?.requireTeamPurpose;
44
+ const showSelectTeamPurpose = navigationPlatform?.requireTeamPurpose;
45
+ const createTeamButtonText = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
25
46
  const userTeamInstanceSwitcherDefault = user?.teamInstanceSwitcherDefault;
26
47
  const profileUrl = servicesConfig.serviceUrl.resourceUserProfile({ baseServicesUrl });
27
48
  const { mutateAsync: mutateUserProfile, isLoading: mutateUserProfileIsLoading } = reactQuery.useMutation(servicesConfig.resolver.patchUserProfile, {
@@ -93,21 +114,67 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
93
114
  userTeams?.data?.personalTeam,
94
115
  userTeams?.data?.standardTeams,
95
116
  ]);
117
+ const handleTeamClick = ({ team, type }) => {
118
+ if (analyticsHelpers?.navigateEventHandler && trackEvent) {
119
+ analyticsHelpers.navigateEventHandler({
120
+ action: `Clicked ${team.name} in Team Switcher`,
121
+ category: "Team Switcher",
122
+ destinationPath: `${navigationPlatform.baseEnvUrl}/launchpad/teams/${team.id}`,
123
+ teamId: team.id,
124
+ teamType: type,
125
+ trackEvent,
126
+ });
127
+ }
128
+ if (isLaunchpad && Boolean(history)) {
129
+ history.push(`/teams/${team.id}`);
130
+ }
131
+ else {
132
+ window.open(`${navigationPlatform.baseEnvUrl}/launchpad/teams/${team.id}`, "_self");
133
+ }
134
+ };
135
+ const handleCreateJoinTeamClick = (e) => {
136
+ if (analyticsHelpers?.ctaEventHandler && trackEvent) {
137
+ analyticsHelpers.ctaEventHandler({
138
+ category: "Team Switcher",
139
+ CTA: "Create/Join team clicked",
140
+ pageName: "",
141
+ trackEvent,
142
+ });
143
+ }
144
+ if (createJoinTeamTrigger) {
145
+ createJoinTeamTrigger(e);
146
+ }
147
+ else {
148
+ window.open(`${navigationPlatform.baseEnvUrl}/launchpad?createJoinTeam=true`, "_self");
149
+ }
150
+ };
151
+ const handleOpenAccountSubmenu = ({ e, id }) => {
152
+ e.stopPropagation();
153
+ if (openAccountSubmenuId === id) {
154
+ setOpenAccountSubmenuId("");
155
+ }
156
+ else {
157
+ setOpenAccountSubmenuId(id);
158
+ }
159
+ };
96
160
  if (userTeams?.isLoading || teamsQuery?.isLoading || mutateUserProfileIsLoading) {
97
161
  return (React__default.default.createElement("div", { style: { display: "flex", alignItems: "center" } },
98
162
  React__default.default.createElement(react.InlineLoading, null)));
99
163
  }
100
164
  if (userTeams?.data || teamsQuery?.data) {
165
+ let accountTeams, standardTeams, personalTeam = [];
101
166
  if (hasUserTeams) {
102
- userTeams?.data?.accountTeams ?? [];
103
- userTeams?.data?.standardTeams ?? [];
104
- userTeams?.data?.personalTeam ?? [];
167
+ accountTeams = userTeams?.data?.accountTeams ?? [];
168
+ standardTeams = userTeams?.data?.standardTeams ?? [];
169
+ personalTeam = userTeams?.data?.personalTeam ?? [];
105
170
  }
106
171
  else {
107
- teamsQuery?.data?.accountTeams ?? [];
108
- teamsQuery?.data?.standardTeams ?? [];
109
- teamsQuery?.data?.personalTeam ?? [];
172
+ accountTeams = teamsQuery?.data?.accountTeams ?? [];
173
+ standardTeams = teamsQuery?.data?.standardTeams ?? [];
174
+ personalTeam = teamsQuery?.data?.personalTeam ?? [];
110
175
  }
176
+ // let sortedAccountTeamsWithNamesToDisplay = [];
177
+ // let sortedStandardTeamsWithNamesToDisplay = [];
111
178
  // if (accountTeams?.length > 0) {
112
179
  // sortedAccountTeamsWithNamesToDisplay = orderBy(
113
180
  // accountTeams.map((team: UserTeam) => {
@@ -142,7 +209,76 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
142
209
  if (selectedTeamName && selectedTeamName.length > 42) {
143
210
  selectedTeamName = selectedTeamName.slice(0, 42) + "...";
144
211
  }
145
- return (React__default.default.createElement(React__default.default.Fragment, null));
212
+ return (React__default.default.createElement(react.HeaderMenu, { "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname, menuLinkName: selectedTeamName ? selectedTeamName : "No team selected", "data-testid": "header-team-switcher-menu" },
213
+ React__default.default.createElement(HeaderMenu.default, { "aria-labelledby": menuButtonId, className: headerDropdownMenuListClassname, id: menuListId },
214
+ React__default.default.createElement(react.HeaderMenuItem, { className: headerTeamSwitcherCreateTeamButtonContainerClassname, onClick: handleCreateJoinTeamClick,
215
+ // eslint-disable-next-line no-script-url
216
+ href: "javascript:void(0)", role: "menuitem", "data-testid": "header-team-switcher-create-join-team-button" },
217
+ React__default.default.createElement("div", { className: headerTeamSwitcherCreateTeamButtonClassname },
218
+ React__default.default.createElement("span", { className: headerTeamSwitcherCreateTeamButtonTextClassname }, createTeamButtonText),
219
+ React__default.default.createElement(icons.AddAlt, { className: headerTeamSwitcherCreateTeamButtonIconClassname }))),
220
+ personalTeam.length > 0
221
+ ? personalTeam.map((team) => {
222
+ const teamName = team.displayName ? team.displayName : team.name;
223
+ const isTeamSelected = team.id === selectedTeam?.id;
224
+ return (React__default.default.createElement(react.HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "personal" }),
225
+ // eslint-disable-next-line no-script-url
226
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-item" },
227
+ React__default.default.createElement("div", { className: headerDropdownMenuItemClassname },
228
+ React__default.default.createElement("span", { title: teamName, className: headerDropdownMenuItemTextClassname }, teamName),
229
+ isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)));
230
+ })
231
+ : null,
232
+ accountTeams.length > 0
233
+ ? accountTeams.map((team) => {
234
+ const isSubmenuOpen = team.id === openAccountSubmenuId;
235
+ const isProjectTeamSelected = team.projectTeams &&
236
+ team.projectTeams.length > 0 &&
237
+ team.projectTeams.some((team) => team.id === selectedTeam?.id);
238
+ const isTeamSelected = team.id === selectedTeam?.id;
239
+ const isMenuSelected = isTeamSelected || isProjectTeamSelected;
240
+ return (React__default.default.createElement(React__default.default.Fragment, null,
241
+ React__default.default.createElement(react.HeaderMenuItem, { "aria-expanded": isSubmenuOpen, "aria-selected": isMenuSelected, className: headerDropdownMenuItemAccountContainerClassname, onClick: (e) => handleOpenAccountSubmenu({ e, id: team.id }),
242
+ // eslint-disable-next-line no-script-url
243
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-account-accordion" },
244
+ React__default.default.createElement("div", { className: headerDropdownMenuItemAccountClassname },
245
+ React__default.default.createElement("div", { className: headerDropdownMenuItemTextIconClassname },
246
+ React__default.default.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
247
+ isMenuSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null),
248
+ React__default.default.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
249
+ React__default.default.createElement(icons.GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
250
+ React__default.default.createElement(icons.ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
251
+ React__default.default.createElement("div", { "aria-expanded": isSubmenuOpen, className: headerDropdownMenuItemAccountSubmenuClassname },
252
+ React__default.default.createElement(react.HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "account" }), "data-testid": "header-team-switcher-menu-account-accordion-item",
253
+ // eslint-disable-next-line no-script-url
254
+ href: "javascript:void(0)" },
255
+ React__default.default.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
256
+ React__default.default.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, "Account Page"),
257
+ isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)),
258
+ team.projectTeams && team.projectTeams.length > 0
259
+ ? team.projectTeams.map((team) => {
260
+ const isTeamSelected = team.id === selectedTeam?.id;
261
+ return (React__default.default.createElement(react.HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "project" }), "data-testid": "header-team-switcher-menu-account-accordion-item",
262
+ // eslint-disable-next-line no-script-url
263
+ href: "javascript:void(0)" },
264
+ React__default.default.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
265
+ React__default.default.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
266
+ isTeamSelected ? (React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null)));
267
+ })
268
+ : null)));
269
+ })
270
+ : null,
271
+ standardTeams.length > 0
272
+ ? standardTeams.map((team) => {
273
+ const isTeamSelected = team.id === selectedTeam?.id;
274
+ return (React__default.default.createElement(react.HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "standard" }), "data-testid": "header-team-switcher-menu-item",
275
+ // eslint-disable-next-line no-script-url
276
+ href: "javascript:void(0)" },
277
+ React__default.default.createElement("div", { className: headerDropdownMenuItemClassname },
278
+ React__default.default.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
279
+ isTeamSelected ? React__default.default.createElement(icons.CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)));
280
+ })
281
+ : null)));
146
282
  }
147
283
  return null;
148
284
  }
@@ -1,19 +1,40 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { useQueryClient, useMutation } from 'react-query';
3
- import { InlineLoading } from '@carbon/react';
3
+ import { InlineLoading, HeaderMenu, HeaderMenuItem } from '@carbon/react';
4
+ import { AddAlt, CheckmarkFilled, GroupAccount, ChevronDown } from '@carbon/react/icons';
5
+ import HeaderMenu$1 from './HeaderMenu.js';
4
6
  import { resolver, serviceUrl } from '../../config/servicesConfig.js';
7
+ import { prefix } from '../../internal/settings.js';
5
8
 
6
9
  /*
7
10
  IBM Confidential
8
11
  694970X, 69497O0
9
12
  © Copyright IBM Corp. 2022, 2025
10
13
  */
14
+ const headerDropdownMenuClassname = `${prefix}--header-dropdown-menu`;
15
+ const headerDropdownMenuListClassname = `${prefix}--bmrg-header-drop-down`;
16
+ const headerDropdownMenuItemContainerClassname = `${prefix}--header-dropdown-menu-item-container`;
17
+ const headerDropdownMenuItemClassname = `${prefix}--header-dropdown-menu-item`;
18
+ const headerDropdownMenuItemTextIconClassname = `${prefix}--header-dropdown-menu-item-text-icon`;
19
+ const headerDropdownMenuItemTextClassname = `${prefix}--header-dropdown-menu-item-text`;
20
+ const headerDropdownMenuItemIconClassname = `${prefix}--header-dropdown-menu-item-icon`;
21
+ const headerDropdownMenuItemAccountContainerClassname = `${prefix}--header-dropdown-menu-item-account-container`;
22
+ const headerDropdownMenuItemAccountClassname = `${prefix}--header-dropdown-menu-item-account`;
23
+ const headerDropdownMenuItemAccountIconsClassname = `${prefix}--header-dropdown-menu-item-account-icons`;
24
+ const headerDropdownMenuItemAccountGroupIconClassname = `${prefix}--header-dropdown-menu-item-account-group-icon`;
25
+ const headerDropdownMenuItemAccountChevronIconClassname = `${prefix}--header-dropdown-menu-item-account-chevron-icon`;
26
+ const headerDropdownMenuItemAccountSubmenuClassname = `${prefix}--header-dropdown-menu-item-account-submenu`;
27
+ const headerTeamSwitcherCreateTeamButtonContainerClassname = `${prefix}--header-team-switcher-create-team-button-container`;
28
+ const headerTeamSwitcherCreateTeamButtonClassname = `${prefix}--header-team-switcher-create-team-button`;
29
+ const headerTeamSwitcherCreateTeamButtonTextClassname = `${prefix}--header-team-switcher-create-team-button-text`;
30
+ const headerTeamSwitcherCreateTeamButtonIconClassname = `${prefix}--header-team-switcher-create-team-button-icon`;
11
31
  function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamTrigger, history, isLaunchpad, menuAriaLabelRecord, menuButtonId, menuListId, navigationPlatform, teamsQuery, trackEvent, user, userTeams, }) {
12
32
  const queryClient = useQueryClient();
13
33
  const [selectedTeam, setSelectedTeam] = useState();
14
- useState("");
34
+ const [openAccountSubmenuId, setOpenAccountSubmenuId] = useState("");
15
35
  const hasUserTeams = Boolean(userTeams);
16
- navigationPlatform?.requireTeamPurpose;
36
+ const showSelectTeamPurpose = navigationPlatform?.requireTeamPurpose;
37
+ const createTeamButtonText = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
17
38
  const userTeamInstanceSwitcherDefault = user?.teamInstanceSwitcherDefault;
18
39
  const profileUrl = serviceUrl.resourceUserProfile({ baseServicesUrl });
19
40
  const { mutateAsync: mutateUserProfile, isLoading: mutateUserProfileIsLoading } = useMutation(resolver.patchUserProfile, {
@@ -85,21 +106,67 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
85
106
  userTeams?.data?.personalTeam,
86
107
  userTeams?.data?.standardTeams,
87
108
  ]);
109
+ const handleTeamClick = ({ team, type }) => {
110
+ if (analyticsHelpers?.navigateEventHandler && trackEvent) {
111
+ analyticsHelpers.navigateEventHandler({
112
+ action: `Clicked ${team.name} in Team Switcher`,
113
+ category: "Team Switcher",
114
+ destinationPath: `${navigationPlatform.baseEnvUrl}/launchpad/teams/${team.id}`,
115
+ teamId: team.id,
116
+ teamType: type,
117
+ trackEvent,
118
+ });
119
+ }
120
+ if (isLaunchpad && Boolean(history)) {
121
+ history.push(`/teams/${team.id}`);
122
+ }
123
+ else {
124
+ window.open(`${navigationPlatform.baseEnvUrl}/launchpad/teams/${team.id}`, "_self");
125
+ }
126
+ };
127
+ const handleCreateJoinTeamClick = (e) => {
128
+ if (analyticsHelpers?.ctaEventHandler && trackEvent) {
129
+ analyticsHelpers.ctaEventHandler({
130
+ category: "Team Switcher",
131
+ CTA: "Create/Join team clicked",
132
+ pageName: "",
133
+ trackEvent,
134
+ });
135
+ }
136
+ if (createJoinTeamTrigger) {
137
+ createJoinTeamTrigger(e);
138
+ }
139
+ else {
140
+ window.open(`${navigationPlatform.baseEnvUrl}/launchpad?createJoinTeam=true`, "_self");
141
+ }
142
+ };
143
+ const handleOpenAccountSubmenu = ({ e, id }) => {
144
+ e.stopPropagation();
145
+ if (openAccountSubmenuId === id) {
146
+ setOpenAccountSubmenuId("");
147
+ }
148
+ else {
149
+ setOpenAccountSubmenuId(id);
150
+ }
151
+ };
88
152
  if (userTeams?.isLoading || teamsQuery?.isLoading || mutateUserProfileIsLoading) {
89
153
  return (React.createElement("div", { style: { display: "flex", alignItems: "center" } },
90
154
  React.createElement(InlineLoading, null)));
91
155
  }
92
156
  if (userTeams?.data || teamsQuery?.data) {
157
+ let accountTeams, standardTeams, personalTeam = [];
93
158
  if (hasUserTeams) {
94
- userTeams?.data?.accountTeams ?? [];
95
- userTeams?.data?.standardTeams ?? [];
96
- userTeams?.data?.personalTeam ?? [];
159
+ accountTeams = userTeams?.data?.accountTeams ?? [];
160
+ standardTeams = userTeams?.data?.standardTeams ?? [];
161
+ personalTeam = userTeams?.data?.personalTeam ?? [];
97
162
  }
98
163
  else {
99
- teamsQuery?.data?.accountTeams ?? [];
100
- teamsQuery?.data?.standardTeams ?? [];
101
- teamsQuery?.data?.personalTeam ?? [];
164
+ accountTeams = teamsQuery?.data?.accountTeams ?? [];
165
+ standardTeams = teamsQuery?.data?.standardTeams ?? [];
166
+ personalTeam = teamsQuery?.data?.personalTeam ?? [];
102
167
  }
168
+ // let sortedAccountTeamsWithNamesToDisplay = [];
169
+ // let sortedStandardTeamsWithNamesToDisplay = [];
103
170
  // if (accountTeams?.length > 0) {
104
171
  // sortedAccountTeamsWithNamesToDisplay = orderBy(
105
172
  // accountTeams.map((team: UserTeam) => {
@@ -134,7 +201,76 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
134
201
  if (selectedTeamName && selectedTeamName.length > 42) {
135
202
  selectedTeamName = selectedTeamName.slice(0, 42) + "...";
136
203
  }
137
- return (React.createElement(React.Fragment, null));
204
+ return (React.createElement(HeaderMenu, { "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname, menuLinkName: selectedTeamName ? selectedTeamName : "No team selected", "data-testid": "header-team-switcher-menu" },
205
+ React.createElement(HeaderMenu$1, { "aria-labelledby": menuButtonId, className: headerDropdownMenuListClassname, id: menuListId },
206
+ React.createElement(HeaderMenuItem, { className: headerTeamSwitcherCreateTeamButtonContainerClassname, onClick: handleCreateJoinTeamClick,
207
+ // eslint-disable-next-line no-script-url
208
+ href: "javascript:void(0)", role: "menuitem", "data-testid": "header-team-switcher-create-join-team-button" },
209
+ React.createElement("div", { className: headerTeamSwitcherCreateTeamButtonClassname },
210
+ React.createElement("span", { className: headerTeamSwitcherCreateTeamButtonTextClassname }, createTeamButtonText),
211
+ React.createElement(AddAlt, { className: headerTeamSwitcherCreateTeamButtonIconClassname }))),
212
+ personalTeam.length > 0
213
+ ? personalTeam.map((team) => {
214
+ const teamName = team.displayName ? team.displayName : team.name;
215
+ const isTeamSelected = team.id === selectedTeam?.id;
216
+ return (React.createElement(HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "personal" }),
217
+ // eslint-disable-next-line no-script-url
218
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-item" },
219
+ React.createElement("div", { className: headerDropdownMenuItemClassname },
220
+ React.createElement("span", { title: teamName, className: headerDropdownMenuItemTextClassname }, teamName),
221
+ isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)));
222
+ })
223
+ : null,
224
+ accountTeams.length > 0
225
+ ? accountTeams.map((team) => {
226
+ const isSubmenuOpen = team.id === openAccountSubmenuId;
227
+ const isProjectTeamSelected = team.projectTeams &&
228
+ team.projectTeams.length > 0 &&
229
+ team.projectTeams.some((team) => team.id === selectedTeam?.id);
230
+ const isTeamSelected = team.id === selectedTeam?.id;
231
+ const isMenuSelected = isTeamSelected || isProjectTeamSelected;
232
+ return (React.createElement(React.Fragment, null,
233
+ React.createElement(HeaderMenuItem, { "aria-expanded": isSubmenuOpen, "aria-selected": isMenuSelected, className: headerDropdownMenuItemAccountContainerClassname, onClick: (e) => handleOpenAccountSubmenu({ e, id: team.id }),
234
+ // eslint-disable-next-line no-script-url
235
+ href: "javascript:void(0)", "data-testid": "header-team-switcher-menu-account-accordion" },
236
+ React.createElement("div", { className: headerDropdownMenuItemAccountClassname },
237
+ React.createElement("div", { className: headerDropdownMenuItemTextIconClassname },
238
+ React.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
239
+ isMenuSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null),
240
+ React.createElement("div", { className: headerDropdownMenuItemAccountIconsClassname },
241
+ React.createElement(GroupAccount, { className: headerDropdownMenuItemAccountGroupIconClassname }),
242
+ React.createElement(ChevronDown, { className: headerDropdownMenuItemAccountChevronIconClassname })))),
243
+ React.createElement("div", { "aria-expanded": isSubmenuOpen, className: headerDropdownMenuItemAccountSubmenuClassname },
244
+ React.createElement(HeaderMenuItem, { "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "account" }), "data-testid": "header-team-switcher-menu-account-accordion-item",
245
+ // eslint-disable-next-line no-script-url
246
+ href: "javascript:void(0)" },
247
+ React.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
248
+ React.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, "Account Page"),
249
+ isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)),
250
+ team.projectTeams && team.projectTeams.length > 0
251
+ ? team.projectTeams.map((team) => {
252
+ const isTeamSelected = team.id === selectedTeam?.id;
253
+ return (React.createElement(HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "project" }), "data-testid": "header-team-switcher-menu-account-accordion-item",
254
+ // eslint-disable-next-line no-script-url
255
+ href: "javascript:void(0)" },
256
+ React.createElement("div", { className: headerDropdownMenuItemClassname, style: { paddingLeft: "1rem" } },
257
+ React.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
258
+ isTeamSelected ? (React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname })) : null)));
259
+ })
260
+ : null)));
261
+ })
262
+ : null,
263
+ standardTeams.length > 0
264
+ ? standardTeams.map((team) => {
265
+ const isTeamSelected = team.id === selectedTeam?.id;
266
+ return (React.createElement(HeaderMenuItem, { key: team.id, "aria-selected": isTeamSelected, className: headerDropdownMenuItemContainerClassname, onClick: () => handleTeamClick({ team, type: "standard" }), "data-testid": "header-team-switcher-menu-item",
267
+ // eslint-disable-next-line no-script-url
268
+ href: "javascript:void(0)" },
269
+ React.createElement("div", { className: headerDropdownMenuItemClassname },
270
+ React.createElement("span", { title: team.name, className: headerDropdownMenuItemTextClassname }, team.name),
271
+ isTeamSelected ? React.createElement(CheckmarkFilled, { className: headerDropdownMenuItemIconClassname }) : null)));
272
+ })
273
+ : null)));
138
274
  }
139
275
  return null;
140
276
  }
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.8-beta.37",
4
+ "version": "4.6.8-beta.38",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"