@finos/legend-application-marketplace 0.1.56 → 0.1.58

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.
Files changed (56) hide show
  1. package/lib/__lib__/LegendMarketplaceAppEvent.d.ts +3 -1
  2. package/lib/__lib__/LegendMarketplaceAppEvent.d.ts.map +1 -1
  3. package/lib/__lib__/LegendMarketplaceAppEvent.js +2 -0
  4. package/lib/__lib__/LegendMarketplaceAppEvent.js.map +1 -1
  5. package/lib/__lib__/LegendMarketplaceTelemetryHelper.d.ts +13 -7
  6. package/lib/__lib__/LegendMarketplaceTelemetryHelper.d.ts.map +1 -1
  7. package/lib/__lib__/LegendMarketplaceTelemetryHelper.js +61 -19
  8. package/lib/__lib__/LegendMarketplaceTelemetryHelper.js.map +1 -1
  9. package/lib/components/Header/LegendMarketplaceIconToolbar.d.ts.map +1 -1
  10. package/lib/components/Header/LegendMarketplaceIconToolbar.js +34 -5
  11. package/lib/components/Header/LegendMarketplaceIconToolbar.js.map +1 -1
  12. package/lib/components/SearchBar/LegendMarketplaceSearchBar.js +1 -1
  13. package/lib/index.css +2 -2
  14. package/lib/index.css.map +1 -1
  15. package/lib/package.json +1 -1
  16. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.d.ts.map +1 -1
  17. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js +10 -21
  18. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js.map +1 -1
  19. package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.d.ts.map +1 -1
  20. package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.js +23 -127
  21. package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.js.map +1 -1
  22. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.d.ts.map +1 -1
  23. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.js +34 -158
  24. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.js.map +1 -1
  25. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.d.ts.map +1 -1
  26. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.js +58 -38
  27. package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.js.map +1 -1
  28. package/lib/stores/lakehouse/LegendMarketplaceSearchResultsStore.d.ts.map +1 -1
  29. package/lib/stores/lakehouse/LegendMarketplaceSearchResultsStore.js +7 -1
  30. package/lib/stores/lakehouse/LegendMarketplaceSearchResultsStore.js.map +1 -1
  31. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.d.ts +22 -11
  32. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.d.ts.map +1 -1
  33. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.js +145 -74
  34. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.js.map +1 -1
  35. package/lib/stores/orders/OrderHelpers.d.ts +1 -1
  36. package/lib/stores/orders/OrderHelpers.d.ts.map +1 -1
  37. package/lib/stores/orders/OrderHelpers.js +7 -6
  38. package/lib/stores/orders/OrderHelpers.js.map +1 -1
  39. package/lib/utils/EntitlementsUtils.d.ts +20 -0
  40. package/lib/utils/EntitlementsUtils.d.ts.map +1 -0
  41. package/lib/utils/EntitlementsUtils.js +107 -0
  42. package/lib/utils/EntitlementsUtils.js.map +1 -0
  43. package/package.json +10 -10
  44. package/src/__lib__/LegendMarketplaceAppEvent.ts +2 -0
  45. package/src/__lib__/LegendMarketplaceTelemetryHelper.ts +75 -21
  46. package/src/components/Header/LegendMarketplaceIconToolbar.tsx +94 -5
  47. package/src/components/SearchBar/LegendMarketplaceSearchBar.tsx +1 -1
  48. package/src/pages/Lakehouse/MarketplaceLakehouseHome.tsx +12 -58
  49. package/src/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.tsx +68 -235
  50. package/src/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.tsx +88 -295
  51. package/src/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.tsx +84 -49
  52. package/src/stores/lakehouse/LegendMarketplaceSearchResultsStore.ts +13 -3
  53. package/src/stores/lakehouse/entitlements/EntitlementsDashboardState.ts +234 -109
  54. package/src/stores/orders/OrderHelpers.ts +8 -7
  55. package/src/utils/EntitlementsUtils.tsx +207 -0
  56. package/tsconfig.json +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"OrderHelpers.js","sourceRoot":"","sources":["../../../src/stores/orders/OrderHelpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrderHelpers.js","sourceRoot":"","sources":["../../../src/stores/orders/OrderHelpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { V1_LiteDataContractWithUserStatus } from '@finos/legend-graph';
17
+ import type { DataGridColumnDefinition } from '@finos/legend-lego/data-grid';
18
+ import type { ContractCreatedByUserDetails, EntitlementsDashboardState } from '../stores/lakehouse/entitlements/EntitlementsDashboardState.js';
19
+ export declare const getCommonEntitlementsColDefs: (dashboardState: EntitlementsDashboardState) => DataGridColumnDefinition<V1_LiteDataContractWithUserStatus | ContractCreatedByUserDetails>[];
20
+ //# sourceMappingURL=EntitlementsUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitlementsUtils.d.ts","sourceRoot":"","sources":["../../src/utils/EntitlementsUtils.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,EACL,iCAAiC,EAElC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,gEAAgE,CAAC;AAoCxE,eAAO,MAAM,4BAA4B,GACvC,gBAAgB,0BAA0B,KACzC,wBAAwB,CACzB,iCAAiC,GAAG,4BAA4B,CACjE,EAqIA,CAAC"}
@@ -0,0 +1,107 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright (c) 2020-present, Goldman Sachs
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { getOrganizationalScopeTypeName, getOrganizationalScopeTypeDetails, UserRenderer, MultiUserRenderer, } from '@finos/legend-extension-dsl-data-product';
18
+ import { V1_LiteDataContractWithUserStatus, V1_ResourceType, } from '@finos/legend-graph';
19
+ import { formatOrderDate } from '../stores/orders/OrderHelpers.js';
20
+ import { InfoCircleIcon } from '@finos/legend-art';
21
+ import { Tooltip } from '@mui/material';
22
+ import { observer } from 'mobx-react-lite';
23
+ const TargetUserCellRenderer = observer((props) => {
24
+ const { dataContract, entitlementsStore } = props;
25
+ const userIds = dataContract instanceof V1_LiteDataContractWithUserStatus
26
+ ? [dataContract.user]
27
+ : (dataContract?.sortedMemberIds ?? []);
28
+ return (_jsx(MultiUserRenderer, { userIds: userIds, applicationStore: entitlementsStore.applicationStore, userSearchService: entitlementsStore.marketplaceBaseStore.userSearchService, disableOnClick: true, singleUserClassName: "marketplace-lakehouse-entitlements__grid__user-display" }));
29
+ });
30
+ export const getCommonEntitlementsColDefs = (dashboardState) => [
31
+ {
32
+ headerName: 'Date Created',
33
+ colId: 'dateCreated',
34
+ valueGetter: (params) => {
35
+ return (formatOrderDate(params.data?.contractResultLite.createdAt) ?? 'Unknown');
36
+ },
37
+ sort: 'desc',
38
+ comparator: (_, __, val1, val2) => {
39
+ const dateA = val1.data?.contractResultLite.createdAt
40
+ ? new Date(val1.data.contractResultLite.createdAt).getTime()
41
+ : 0;
42
+ const dateB = val2.data?.contractResultLite.createdAt
43
+ ? new Date(val2.data.contractResultLite.createdAt).getTime()
44
+ : 0;
45
+ return dateA - dateB;
46
+ },
47
+ },
48
+ {
49
+ colId: 'consumerType',
50
+ headerName: 'Consumer Type',
51
+ valueGetter: (params) => {
52
+ const consumer = params.data?.contractResultLite.consumer;
53
+ const typeName = consumer
54
+ ? getOrganizationalScopeTypeName(consumer, dashboardState.lakehouseEntitlementsStore.applicationStore.pluginManager.getApplicationPlugins())
55
+ : undefined;
56
+ return typeName ?? 'Unknown';
57
+ },
58
+ cellRenderer: (params) => {
59
+ const consumer = params.data?.contractResultLite.consumer;
60
+ const typeName = consumer
61
+ ? getOrganizationalScopeTypeName(consumer, dashboardState.lakehouseEntitlementsStore.applicationStore.pluginManager.getApplicationPlugins())
62
+ : undefined;
63
+ const typeDetails = consumer
64
+ ? getOrganizationalScopeTypeDetails(consumer, dashboardState.lakehouseEntitlementsStore.applicationStore.pluginManager.getApplicationPlugins())
65
+ : undefined;
66
+ return (_jsxs(_Fragment, { children: [typeName ?? 'Unknown', typeDetails !== undefined && (_jsx(Tooltip, { className: "marketplace-lakehouse-entitlements__grid__consumer-type__tooltip__icon", title: typeDetails, children: _jsx(InfoCircleIcon, {}) }))] }));
67
+ },
68
+ },
69
+ {
70
+ headerName: 'Target User(s)',
71
+ colId: 'targetUser',
72
+ valueGetter: (params) => {
73
+ const userIds = params.data instanceof V1_LiteDataContractWithUserStatus
74
+ ? [params.data.user]
75
+ : (params.data?.sortedMemberIds ?? []);
76
+ return userIds.length > 0 ? userIds.join(', ') : 'Unknown';
77
+ },
78
+ cellRenderer: (params) => (_jsx(TargetUserCellRenderer, { dataContract: params.data, entitlementsStore: dashboardState.lakehouseEntitlementsStore })),
79
+ },
80
+ {
81
+ headerName: 'Requester',
82
+ colId: 'requester',
83
+ valueGetter: (params) => params.data?.contractResultLite.createdBy ?? 'Unknown',
84
+ cellRenderer: (params) => {
85
+ const requester = params.data?.contractResultLite.createdBy;
86
+ return requester ? (_jsx(UserRenderer, { userId: requester, applicationStore: dashboardState.lakehouseEntitlementsStore.applicationStore, userSearchService: dashboardState.lakehouseEntitlementsStore.marketplaceBaseStore
87
+ .userSearchService, disableOnClick: true, className: "marketplace-lakehouse-entitlements__grid__user-display" })) : (_jsx(_Fragment, { children: "Unknown" }));
88
+ },
89
+ },
90
+ {
91
+ headerName: 'Target Data Product',
92
+ valueGetter: (params) => {
93
+ return params.data?.contractResultLite.resourceId ?? 'Unknown';
94
+ },
95
+ },
96
+ {
97
+ headerName: 'Target Access Point Group',
98
+ valueGetter: (params) => {
99
+ const accessPointGroup = params.data?.contractResultLite.resourceType ===
100
+ V1_ResourceType.ACCESS_POINT_GROUP
101
+ ? params.data.contractResultLite.accessPointGroup
102
+ : `${params.data?.contractResultLite.accessPointGroup ?? 'Unknown'} (${params.data?.contractResultLite.resourceType ?? 'Unknown Type'})`;
103
+ return accessPointGroup ?? 'Unknown';
104
+ },
105
+ },
106
+ ];
107
+ //# sourceMappingURL=EntitlementsUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitlementsUtils.js","sourceRoot":"","sources":["../../src/utils/EntitlementsUtils.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-marketplace",
3
- "version": "0.1.56",
3
+ "version": "0.1.58",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,16 +45,16 @@
45
45
  "test:watch": "jest --watch"
46
46
  },
47
47
  "dependencies": {
48
- "@finos/legend-application": "16.0.88",
49
- "@finos/legend-art": "7.1.138",
50
- "@finos/legend-code-editor": "2.0.143",
51
- "@finos/legend-extension-dsl-data-product": "0.0.41",
52
- "@finos/legend-extension-dsl-data-space": "10.4.182",
53
- "@finos/legend-graph": "32.3.23",
54
- "@finos/legend-lego": "2.0.158",
48
+ "@finos/legend-application": "16.0.89",
49
+ "@finos/legend-art": "7.1.139",
50
+ "@finos/legend-code-editor": "2.0.145",
51
+ "@finos/legend-extension-dsl-data-product": "0.0.43",
52
+ "@finos/legend-extension-dsl-data-space": "10.4.184",
53
+ "@finos/legend-graph": "32.3.25",
54
+ "@finos/legend-lego": "2.0.160",
55
55
  "@finos/legend-server-depot": "6.1.6",
56
- "@finos/legend-server-lakehouse": "0.3.24",
57
- "@finos/legend-server-marketplace": "0.1.34",
56
+ "@finos/legend-server-lakehouse": "0.3.26",
57
+ "@finos/legend-server-marketplace": "0.1.36",
58
58
  "@finos/legend-shared": "11.0.22",
59
59
  "@finos/legend-storage": "3.0.141",
60
60
  "@mui/material": "7.3.4",
@@ -32,4 +32,6 @@ export enum LEGEND_MARKETPLACE_APP_EVENT {
32
32
  PRODUCER_SEARCH_TOGGLE = 'marketplace.producer.search.toggle',
33
33
  FETCH_PENDING_TASKS_FAILURE = 'marketplace.fetch.pending-tasks.failure',
34
34
  ORDER_CANCELLATION_FAILURE = 'marketplace.order.cancellation.failure',
35
+ TOGGLE_THEME_MODE = 'marketplace.toggle.theme-mode',
36
+ CLICK_TOOLBAR_MENU = 'marketplace.click.toolbar.menu',
35
37
  }
@@ -48,6 +48,11 @@ export enum PRODUCT_INTEGRATION_TYPE {
48
48
  POWER_BI = 'powerBI',
49
49
  }
50
50
 
51
+ export enum ICON_TOOLBAR_TYPE {
52
+ USER = 'User Icon',
53
+ HELP = 'Help Icon',
54
+ }
55
+
51
56
  type MarketplaceDataProductOrigin_TelemetryData = {
52
57
  type: DATAPRODUCT_TYPE;
53
58
  groupId?: string | undefined;
@@ -74,29 +79,35 @@ type MarketPlaceDataProductIntegration_TemeletryData =
74
79
  };
75
80
 
76
81
  export type MarketplaceUserSession = {
77
- searchEventId: number;
82
+ eventId: number;
78
83
  searchSessionId: string | undefined;
79
84
  };
80
85
 
81
86
  export const SEARCH_SESSION_KEY = 'marketplace_user_session';
82
87
 
83
88
  export class LegendMarketplaceTelemetryHelper {
84
- private static getSearchSession(): MarketplaceUserSession {
89
+ private static getOrCreateUserSession(): MarketplaceUserSession {
85
90
  const stored = localStorage.getItem(SEARCH_SESSION_KEY);
86
91
 
87
92
  if (stored) {
88
93
  const session = JSON.parse(stored) as MarketplaceUserSession;
89
94
  return session;
90
95
  } else {
91
- return this.clearSearchSession();
96
+ const initialSession: MarketplaceUserSession = {
97
+ eventId: 0,
98
+ searchSessionId: undefined,
99
+ };
100
+ localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(initialSession));
101
+ return initialSession;
92
102
  }
93
103
  }
94
104
 
95
- private static createNewSearchSession(
105
+ private static updateSearchSessionId(
96
106
  searchSessionId: string,
97
107
  ): MarketplaceUserSession {
108
+ const currentSession = this.getOrCreateUserSession();
98
109
  const newSearchSession: MarketplaceUserSession = {
99
- searchEventId: 1,
110
+ ...currentSession,
100
111
  searchSessionId: searchSessionId,
101
112
  };
102
113
 
@@ -104,21 +115,27 @@ export class LegendMarketplaceTelemetryHelper {
104
115
  return newSearchSession;
105
116
  }
106
117
 
107
- static clearSearchSession(): MarketplaceUserSession {
118
+ static clearSearchSessionId(): MarketplaceUserSession {
119
+ const currentSession = this.getOrCreateUserSession();
108
120
  const newSearchSession: MarketplaceUserSession = {
109
- searchEventId: 0,
121
+ ...currentSession,
110
122
  searchSessionId: undefined,
111
123
  };
112
124
 
113
- localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(newSearchSession));
125
+ if (currentSession.eventId !== 0) {
126
+ localStorage.setItem(
127
+ SEARCH_SESSION_KEY,
128
+ JSON.stringify(newSearchSession),
129
+ );
130
+ }
114
131
  return newSearchSession;
115
132
  }
116
133
 
117
- private static updateSearchEventId() {
118
- const currentSession = this.getSearchSession();
134
+ private static updateEventId() {
135
+ const currentSession = this.getOrCreateUserSession();
119
136
  const updatedSession: MarketplaceUserSession = {
120
137
  ...currentSession,
121
- searchEventId: currentSession.searchEventId + 1,
138
+ eventId: currentSession.eventId + 1,
122
139
  };
123
140
 
124
141
  localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(updatedSession));
@@ -130,8 +147,8 @@ export class LegendMarketplaceTelemetryHelper {
130
147
  dataProductData: MarketplaceDataProduct_TelemetryData,
131
148
  clickedFrom: LEGEND_MARKETPLACE_PAGE,
132
149
  ): void {
133
- this.updateSearchEventId();
134
- const session = this.getSearchSession();
150
+ this.updateEventId();
151
+ const session = this.getOrCreateUserSession();
135
152
  telemetryService.logEvent(
136
153
  LEGEND_MARKETPLACE_APP_EVENT.CLICK_DATA_PRODUCT_CARD,
137
154
  {
@@ -147,8 +164,9 @@ export class LegendMarketplaceTelemetryHelper {
147
164
  query: string | undefined,
148
165
  searchedFrom: LEGEND_MARKETPLACE_PAGE,
149
166
  ): void {
150
- this.createNewSearchSession(telemetryService.applicationStore.uuid);
151
- const session = this.getSearchSession();
167
+ this.updateSearchSessionId(telemetryService.applicationStore.uuid);
168
+ this.updateEventId();
169
+ const session = this.getOrCreateUserSession();
152
170
  telemetryService.logEvent(LEGEND_MARKETPLACE_APP_EVENT.SEARCH_QUERY, {
153
171
  query: query,
154
172
  searchedFrom: searchedFrom,
@@ -159,14 +177,16 @@ export class LegendMarketplaceTelemetryHelper {
159
177
  static logEvent_ActionDataContracts(
160
178
  telemetryService: TelemetryService,
161
179
  selectedContracts: V1_ContractUserEventRecord[],
162
- allContracts: V1_LiteDataContract[] | undefined,
180
+ pendingTaskContracts: V1_LiteDataContract[] | undefined,
163
181
  action: CONTRACT_ACTION,
164
182
  actionTakenBy: string,
165
183
  errors: string[] | undefined,
166
184
  ): void {
185
+ this.updateEventId();
186
+ const session = this.getOrCreateUserSession();
167
187
  const actionedContractsDetails = selectedContracts.map((contract) => {
168
- const dataContract = allContracts?.find(
169
- (_contract) => _contract.guid === contract.dataContractId,
188
+ const dataContract = pendingTaskContracts?.find(
189
+ (c) => c.guid === contract.dataContractId,
170
190
  );
171
191
  const accessPointGroup =
172
192
  dataContract?.resourceType === V1_ResourceType.ACCESS_POINT_GROUP
@@ -180,6 +200,7 @@ export class LegendMarketplaceTelemetryHelper {
180
200
  targetDataProduct: dataContract?.resourceId ?? 'Unknown',
181
201
  targetAccessPointGroup: accessPointGroup ?? 'Unknown',
182
202
  requester: dataContract?.createdBy,
203
+ ...session,
183
204
  };
184
205
  });
185
206
  const data =
@@ -227,8 +248,8 @@ export class LegendMarketplaceTelemetryHelper {
227
248
  intTelemetryData: MarketPlaceDataProductIntegration_TemeletryData,
228
249
  error: string | undefined,
229
250
  ): void {
230
- this.updateSearchEventId();
231
- const session = this.getSearchSession();
251
+ this.updateEventId();
252
+ const session = this.getOrCreateUserSession();
232
253
  const telemetryData =
233
254
  error === undefined
234
255
  ? {
@@ -240,6 +261,7 @@ export class LegendMarketplaceTelemetryHelper {
240
261
  ...intTelemetryData,
241
262
  status: MARKETPLACE_EVENT_STATUS.FAILURE,
242
263
  error: error,
264
+ ...session,
243
265
  };
244
266
  telemetryService.logEvent(
245
267
  LEGEND_MARKETPLACE_APP_EVENT.OPEN_INTEGRATED_PRODUCT,
@@ -320,21 +342,53 @@ export class LegendMarketplaceTelemetryHelper {
320
342
  telemetryService: TelemetryService,
321
343
  tabTitle: string,
322
344
  ): void {
345
+ this.updateEventId();
346
+ const session = this.getOrCreateUserSession();
323
347
  telemetryService.logEvent(LEGEND_MARKETPLACE_APP_EVENT.CLICK_HEADER_TAB, {
324
348
  tabTitle: tabTitle,
349
+ ...session,
325
350
  });
326
351
  }
327
352
 
328
- static logEvent_toggleProducerSearch(
353
+ static logEvent_ToggleProducerSearch(
329
354
  telemetryService: TelemetryService,
330
355
  isEnabled: boolean,
331
356
  ): void {
357
+ this.updateEventId();
358
+ const session = this.getOrCreateUserSession();
332
359
  telemetryService.logEvent(
333
360
  LEGEND_MARKETPLACE_APP_EVENT.PRODUCER_SEARCH_TOGGLE,
334
361
  {
335
362
  isEnabled: isEnabled,
336
363
  toggleAction: isEnabled ? 'enabled' : 'disabled',
364
+ ...session,
337
365
  },
338
366
  );
339
367
  }
368
+
369
+ static logEvent_ToggleThemeMode(
370
+ telemetryService: TelemetryService,
371
+ isDarkMode: boolean,
372
+ ): void {
373
+ this.updateEventId();
374
+ const session = this.getOrCreateUserSession();
375
+ telemetryService.logEvent(LEGEND_MARKETPLACE_APP_EVENT.TOGGLE_THEME_MODE, {
376
+ currentTheme: isDarkMode ? 'dark' : 'light',
377
+ ...session,
378
+ });
379
+ }
380
+
381
+ static logEvent_ClickToolbarMenu(
382
+ telemetryService: TelemetryService,
383
+ iconSource: ICON_TOOLBAR_TYPE,
384
+ menuTitle: string,
385
+ ): void {
386
+ this.updateEventId();
387
+ const session = this.getOrCreateUserSession();
388
+ telemetryService.logEvent(LEGEND_MARKETPLACE_APP_EVENT.CLICK_TOOLBAR_MENU, {
389
+ iconSource: iconSource,
390
+ menuTitle: menuTitle,
391
+ ...session,
392
+ });
393
+ }
340
394
  }
@@ -18,7 +18,9 @@ import {
18
18
  HelpOutlineIcon,
19
19
  MenuContentDivider,
20
20
  MoonIcon,
21
+ OpenNewTabIcon,
21
22
  ShoppingCartOutlineIcon,
23
+ SimpleCalendarIcon,
22
24
  SunFilledIcon,
23
25
  UserCircleIcon,
24
26
  } from '@finos/legend-art';
@@ -41,6 +43,10 @@ import { useAuth } from 'react-oidc-context';
41
43
  import { V1_pendingTasksResponseModelSchema } from '@finos/legend-graph';
42
44
  import { LEGEND_MARKETPLACE_APP_EVENT } from '../../__lib__/LegendMarketplaceAppEvent.js';
43
45
  import { deserialize } from 'serializr';
46
+ import {
47
+ ICON_TOOLBAR_TYPE,
48
+ LegendMarketplaceTelemetryHelper,
49
+ } from '../../__lib__/LegendMarketplaceTelemetryHelper.js';
44
50
 
45
51
  export const LegendMarketplaceIconToolbar = observer(() => {
46
52
  const marketplaceStore = useLegendMarketplaceBaseStore();
@@ -60,9 +66,16 @@ export const LegendMarketplaceIconToolbar = observer(() => {
60
66
  setUserData(user);
61
67
  } catch (error) {
62
68
  assertErrorThrown(error);
63
- applicationStore.notificationService.notifyError(
64
- `Failed to fetch user data: ${error.message}`,
65
- );
69
+ if (applicationStore.config.options.showDevFeatures) {
70
+ applicationStore.notificationService.notifyError(
71
+ error,
72
+ `Failed to fetch user data: ${error.name}\n${error.message}\n${error.cause}\n${error.stack}`,
73
+ );
74
+ } else {
75
+ applicationStore.notificationService.notifyError(
76
+ `Failed to fetch user data: ${error.message}`,
77
+ );
78
+ }
66
79
  }
67
80
  }
68
81
  };
@@ -104,6 +117,7 @@ export const LegendMarketplaceIconToolbar = observer(() => {
104
117
  auth.user?.access_token,
105
118
  marketplaceStore.lakehouseContractServerClient,
106
119
  applicationStore.logService,
120
+ applicationStore.config.options.showDevFeatures,
107
121
  ]);
108
122
 
109
123
  const imgSrc =
@@ -172,6 +186,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
172
186
  href={applicationStore.navigationService.navigator.generateAddress(
173
187
  LEGEND_MARKETPLACE_ROUTE_PATTERN.SUBSCRIPTIONS,
174
188
  )}
189
+ onClick={() => {
190
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
191
+ applicationStore.telemetryService,
192
+ ICON_TOOLBAR_TYPE.USER,
193
+ 'View Terminal Subscriptions',
194
+ );
195
+ }}
175
196
  >
176
197
  View Terminal Subscriptions
177
198
  </MenuItem>
@@ -180,6 +201,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
180
201
  href={applicationStore.navigationService.navigator.generateAddress(
181
202
  LEGEND_MARKETPLACE_ROUTE_PATTERN.ORDERS,
182
203
  )}
204
+ onClick={() => {
205
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
206
+ applicationStore.telemetryService,
207
+ ICON_TOOLBAR_TYPE.USER,
208
+ 'View Orders',
209
+ );
210
+ }}
183
211
  >
184
212
  View Orders
185
213
  </MenuItem>
@@ -189,6 +217,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
189
217
  href={applicationStore.navigationService.navigator.generateAddress(
190
218
  LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS,
191
219
  )}
220
+ onClick={() => {
221
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
222
+ applicationStore.telemetryService,
223
+ ICON_TOOLBAR_TYPE.USER,
224
+ 'View Lakehouse Entitlements',
225
+ );
226
+ }}
192
227
  >
193
228
  <span>View Lakehouse Entitlements</span>
194
229
  {pendingTasksCount > 0 && (
@@ -233,6 +268,22 @@ export const LegendMarketplaceIconToolbar = observer(() => {
233
268
  )
234
269
  .filter(isNonNullable);
235
270
 
271
+ const handleShowDemo = (): void => {
272
+ marketplaceStore.setDemoModal(true);
273
+ setAnchorEl(null);
274
+ };
275
+
276
+ const handleNewsletterClick = (): void => {
277
+ applicationStore.navigationService.navigator.visitAddress(
278
+ applicationStore.config.options.newsletterUrl,
279
+ );
280
+ applicationStore.telemetryService.logEvent(
281
+ LEGEND_MARKETPLACE_APP_EVENT.CLICK_SUBSCRIBE_TO_NEWSLETTER,
282
+ {},
283
+ );
284
+ setAnchorEl(null);
285
+ };
286
+
236
287
  return (
237
288
  <>
238
289
  <IconButton
@@ -242,16 +293,43 @@ export const LegendMarketplaceIconToolbar = observer(() => {
242
293
  <HelpOutlineIcon />
243
294
  </IconButton>
244
295
  <Menu anchorEl={anchorEl} open={open} onClose={() => setAnchorEl(null)}>
296
+ {showDevFeatures && (
297
+ <MenuItem onClick={handleShowDemo}>
298
+ <SimpleCalendarIcon style={{ marginRight: '8px' }} />
299
+ Schedule a Demo
300
+ </MenuItem>
301
+ )}
302
+ <MenuItem onClick={handleNewsletterClick}>
303
+ <OpenNewTabIcon style={{ marginRight: '8px' }} />
304
+ Subscribe to our Newsletter
305
+ </MenuItem>
306
+ <MenuContentDivider />
245
307
  <MenuItem
246
308
  onClick={() => {
247
309
  setOpenAppInfo(true);
248
310
  setAnchorEl(null);
311
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
312
+ applicationStore.telemetryService,
313
+ ICON_TOOLBAR_TYPE.HELP,
314
+ 'About',
315
+ );
249
316
  }}
250
317
  >
251
318
  About
252
319
  </MenuItem>
253
320
  {adjacentEnvState && adjacentUrl && (
254
- <MenuItem component="a" target="_blank" href={adjacentUrl}>
321
+ <MenuItem
322
+ component="a"
323
+ target="_blank"
324
+ href={adjacentUrl}
325
+ onClick={() => {
326
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
327
+ applicationStore.telemetryService,
328
+ ICON_TOOLBAR_TYPE.HELP,
329
+ adjacentEnvState.label,
330
+ );
331
+ }}
332
+ >
255
333
  {`${adjacentEnvState.label} Env`}
256
334
  </MenuItem>
257
335
  )}
@@ -263,7 +341,14 @@ export const LegendMarketplaceIconToolbar = observer(() => {
263
341
  )}
264
342
  target="_blank"
265
343
  rel="noopener noreferrer"
266
- onClick={() => setAnchorEl(null)}
344
+ onClick={() => {
345
+ setAnchorEl(null);
346
+ LegendMarketplaceTelemetryHelper.logEvent_ClickToolbarMenu(
347
+ applicationStore.telemetryService,
348
+ ICON_TOOLBAR_TYPE.HELP,
349
+ 'Admin',
350
+ );
351
+ }}
267
352
  >
268
353
  Admin
269
354
  </MenuItem>
@@ -302,6 +387,10 @@ export const LegendMarketplaceIconToolbar = observer(() => {
302
387
  : LEGEND_APPLICATION_COLOR_THEME.HIGH_CONTRAST_DARK;
303
388
 
304
389
  layoutService.setColorTheme(newTheme, { persist: true });
390
+ LegendMarketplaceTelemetryHelper.logEvent_ToggleThemeMode(
391
+ applicationStore.telemetryService,
392
+ newTheme === LEGEND_APPLICATION_COLOR_THEME.HIGH_CONTRAST_DARK,
393
+ );
305
394
  };
306
395
 
307
396
  const renderThemeToggle = () => {
@@ -120,7 +120,7 @@ export const LegendMarketplaceSearchBar = observer(
120
120
  checked={useProducerSearch}
121
121
  onChange={(event) => {
122
122
  setUseProducerSearch(event.target.checked);
123
- LegendMarketplaceTelemetryHelper.logEvent_toggleProducerSearch(
123
+ LegendMarketplaceTelemetryHelper.logEvent_ToggleProducerSearch(
124
124
  applicationStore.telemetryService,
125
125
  event.target.checked,
126
126
  );