@finos/legend-application-marketplace 0.1.35 → 0.1.36

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.
@@ -24,6 +24,11 @@ export interface AdditionalMarketplacePageConfig {
24
24
  component: React.FC;
25
25
  protected: boolean;
26
26
  }
27
+ export interface AdditionalMarketplaceHelpMenuItemConfig {
28
+ label: string;
29
+ onClick?: () => void;
30
+ href?: string;
31
+ }
27
32
  export declare abstract class LegendMarketplaceApplicationPlugin extends LegendApplicationPlugin implements DataProductDataAccess_LegendApplicationPlugin_Extension {
28
33
  /**
29
34
  * This helps to better type-check for this empty abtract type
@@ -55,5 +60,10 @@ export declare abstract class LegendMarketplaceApplicationPlugin extends LegendA
55
60
  * have access to useLegendMarketplaceBaseStore and other similar hooks.
56
61
  */
57
62
  getAdditionalMarketplacePageConfigs?(): AdditionalMarketplacePageConfig[];
63
+ /**
64
+ * Config to allow adding additional MenuItem elements to the LegendMarketplaceIconToolbar's
65
+ * help menu
66
+ */
67
+ getAdditionalHelpMenuItemConfigs?(marketplaceBaseStore: LegendMarketplaceBaseStore): AdditionalMarketplaceHelpMenuItemConfig[];
58
68
  }
59
69
  //# sourceMappingURL=LegendMarketplaceApplicationPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceApplicationPlugin.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,KAAK,EACV,kCAAkC,EAClC,uDAAuD,EACvD,sBAAsB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,8BAAsB,kCACpB,SAAQ,uBACR,YAAW,uDAAuD;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAAa,EAAE,8BAA8B,GAAG,IAAI;IAI5D;;;;OAIG;IACG,4BAA4B,CAAC,CACjC,oBAAoB,EAAE,0BAA0B,EAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;;OAIG;IACH,kCAAkC,CAAC,CACjC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,GAAG,SAAS;IAErB;;;;OAIG;IACH,sCAAsC,CAAC,IAAI,kCAAkC,EAAE;IAE/E;;;;OAIG;IACH,mCAAmC,CAAC,IAAI,+BAA+B,EAAE;CAC1E"}
1
+ {"version":3,"file":"LegendMarketplaceApplicationPlugin.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,KAAK,EACV,kCAAkC,EAClC,uDAAuD,EACvD,sBAAsB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uCAAuC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,kCACpB,SAAQ,uBACR,YAAW,uDAAuD;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAAa,EAAE,8BAA8B,GAAG,IAAI;IAI5D;;;;OAIG;IACG,4BAA4B,CAAC,CACjC,oBAAoB,EAAE,0BAA0B,EAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;;OAIG;IACH,kCAAkC,CAAC,CACjC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,GAAG,SAAS;IAErB;;;;OAIG;IACH,sCAAsC,CAAC,IAAI,kCAAkC,EAAE;IAE/E;;;;OAIG;IACH,mCAAmC,CAAC,IAAI,+BAA+B,EAAE;IAEzE;;;OAGG;IACH,gCAAgC,CAAC,CAC/B,oBAAoB,EAAE,0BAA0B,GAC/C,uCAAuC,EAAE;CAC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceApplicationPlugin.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAiBpE,MAAM,OAAgB,kCACpB,SAAQ,uBAAuB;IAG/B;;;OAGG;IACc,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAA6C;QACnD,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CAkCF"}
1
+ {"version":3,"file":"LegendMarketplaceApplicationPlugin.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAuBpE,MAAM,OAAgB,kCACpB,SAAQ,uBAAuB;IAG/B;;;OAGG;IACc,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAA6C;QACnD,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CA0CF"}
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceIconToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,eAAO,MAAM,4BAA4B;;CAyMvC,CAAC"}
1
+ {"version":3,"file":"LegendMarketplaceIconToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,eAAO,MAAM,4BAA4B;;CAkOvC,CAAC"}
@@ -14,23 +14,22 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { useApplicationStore } from '@finos/legend-application';
18
17
  import { HelpOutlineIcon, MenuContentDivider, ShoppingCartOutlineIcon, UserCircleIcon, } from '@finos/legend-art';
19
18
  import { observer } from 'mobx-react-lite';
20
19
  import { Avatar, Box, IconButton, Link, Menu, MenuItem } from '@mui/material';
21
20
  import { useEffect, useState } from 'react';
22
- import { assertErrorThrown, LegendUser } from '@finos/legend-shared';
21
+ import { assertErrorThrown, isNonNullable, LegendUser, } from '@finos/legend-shared';
23
22
  import { LEGEND_MARKETPLACE_ROUTE_PATTERN } from '../../__lib__/LegendMarketplaceNavigation.js';
24
23
  import { LegendMarketplaceAppInfo } from './LegendMarketplaceAppInfo.js';
25
24
  import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
26
25
  import { CartDrawer } from '../AddToCart/CartDrawer.js';
27
26
  import { CartBadge } from './CartBadge.js';
28
27
  export const LegendMarketplaceIconToolbar = observer(() => {
29
- const applicationStore = useApplicationStore();
30
28
  const marketplaceStore = useLegendMarketplaceBaseStore();
29
+ const applicationStore = marketplaceStore.applicationStore;
31
30
  const userId = applicationStore.identityService.currentUser;
32
31
  const [userData, setUserData] = useState();
33
- const showDevFeatures = marketplaceStore.applicationStore.config.options.showDevFeatures;
32
+ const showDevFeatures = applicationStore.config.options.showDevFeatures;
34
33
  useEffect(() => {
35
34
  const fetchUserData = async () => {
36
35
  if (userId) {
@@ -51,13 +50,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
51
50
  applicationStore.notificationService,
52
51
  marketplaceStore.userSearchService,
53
52
  ]);
54
- const imgSrc = marketplaceStore.applicationStore.config.marketplaceUserProfileImageUrl?.replace('{userId}', userId);
55
- const userDirectoryLink = `${marketplaceStore.applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
53
+ const imgSrc = applicationStore.config.marketplaceUserProfileImageUrl?.replace('{userId}', userId);
54
+ const userDirectoryLink = `${applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
56
55
  const userName = userData instanceof LegendUser && userData.displayName
57
56
  ? userData.displayName
58
57
  : userId;
59
58
  const adjacentEnvState = marketplaceStore.adjacentEnvState;
60
- const adjacentUrl = marketplaceStore.applicationStore.config.adjacentEnvUrl;
59
+ const adjacentUrl = applicationStore.config.adjacentEnvUrl;
61
60
  const UserIconRenderer = () => {
62
61
  const [anchorEl, setAnchorEl] = useState(null);
63
62
  const open = Boolean(anchorEl);
@@ -75,10 +74,17 @@ export const LegendMarketplaceIconToolbar = observer(() => {
75
74
  const [anchorEl, setAnchorEl] = useState(null);
76
75
  const [openAppInfo, setOpenAppInfo] = useState(false);
77
76
  const open = Boolean(anchorEl);
77
+ const additionalHelpMenuItems = applicationStore.pluginManager
78
+ .getApplicationPlugins()
79
+ .flatMap((plugin) => plugin.getAdditionalHelpMenuItemConfigs?.(marketplaceStore))
80
+ .filter(isNonNullable);
78
81
  return (_jsxs(_Fragment, { children: [_jsx(IconButton, { onClick: (event) => setAnchorEl(event.currentTarget), className: "legend-marketplace-header__menu__icon", children: _jsx(HelpOutlineIcon, {}) }), _jsxs(Menu, { anchorEl: anchorEl, open: open, onClose: () => setAnchorEl(null), children: [_jsx(MenuItem, { onClick: () => {
79
82
  setOpenAppInfo(true);
80
83
  setAnchorEl(null);
81
- }, children: "About" }), adjacentEnvState && adjacentUrl && (_jsxs(_Fragment, { children: [_jsx(MenuItem, { component: "a", target: "_blank", href: adjacentUrl, children: `${adjacentEnvState.label} Env` }), _jsx(MenuContentDivider, {})] })), _jsx(MenuItem, { component: "a", href: applicationStore.navigationService.navigator.generateAddress(LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ADMIN), target: "_blank", rel: "noopener noreferrer", onClick: () => setAnchorEl(null), children: "Admin" })] }), _jsx(LegendMarketplaceAppInfo, { open: openAppInfo, closeModal: () => setOpenAppInfo(false) })] }));
84
+ }, children: "About" }), adjacentEnvState && adjacentUrl && (_jsxs(_Fragment, { children: [_jsx(MenuItem, { component: "a", target: "_blank", href: adjacentUrl, children: `${adjacentEnvState.label} Env` }), _jsx(MenuContentDivider, {})] })), _jsx(MenuItem, { component: "a", href: applicationStore.navigationService.navigator.generateAddress(LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ADMIN), target: "_blank", rel: "noopener noreferrer", onClick: () => setAnchorEl(null), children: "Admin" }), additionalHelpMenuItems.length > 0 && (_jsxs(_Fragment, { children: [_jsx(MenuContentDivider, {}), additionalHelpMenuItems.map((item) => (_jsx(MenuItem, { onClick: () => {
85
+ setAnchorEl(null);
86
+ item.onClick?.();
87
+ }, component: item.href ? 'a' : 'li', href: item.href, target: item.href ? '_blank' : undefined, rel: item.href ? 'noopener noreferrer' : undefined, children: item.label }, item.label)))] }))] }), _jsx(LegendMarketplaceAppInfo, { open: openAppInfo, closeModal: () => setOpenAppInfo(false) })] }));
82
88
  };
83
89
  const toolbarIcons = [
84
90
  {
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceIconToolbar.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LegendMarketplaceIconToolbar.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gCAAgC,EAAE,MAAM,8CAA8C,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mEAAmE,CAAC;AAClH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAQ,CAAC,GAAG,EAAE;IACxD,MAAM,gBAAgB,GAAG,6BAA6B,EAAE,CAAC;IACzD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,WAAW,CAAC;IAC5D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAmC,CAAC;IAC5E,MAAM,eAAe,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,KAAK,IAAmB,EAAE;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC;oBACH,MAAM,IAAI,GACR,MAAM,gBAAgB,CAAC,iBAAiB,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;oBACnE,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBACzB,gBAAgB,CAAC,mBAAmB,CAAC,WAAW,CAC9C,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAC9C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,mCAAmC;QACnC,KAAK,aAAa,EAAE,CAAC;IACvB,CAAC,EAAE;QACD,MAAM;QACN,gBAAgB,CAAC,mBAAmB;QACpC,gBAAgB,CAAC,iBAAiB;KACnC,CAAC,CAAC;IAEH,MAAM,MAAM,GACV,gBAAgB,CAAC,MAAM,CAAC,8BAA8B,EAAE,OAAO,CAC7D,UAAU,EACV,MAAM,CACP,CAAC;IACJ,MAAM,iBAAiB,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,2BAA2B,EAAE,uBAAuB,IAAI,MAAM,EAAE,CAAC;IAEtH,MAAM,QAAQ,GACZ,QAAQ,YAAY,UAAU,IAAI,QAAQ,CAAC,WAAW;QACpD,CAAC,CAAC,QAAQ,CAAC,WAAW;QACtB,CAAC,CAAC,MAAM,CAAC;IACb,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC;IAE3D,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,OAAO,CACL,8BACE,KAAC,UAAU,IACT,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EACpD,SAAS,EAAC,uCAAuC,YAEhD,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,MAAM,IACL,SAAS,EAAC,gEAAgE,EAC1E,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,QAAQ,GACb,CACH,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,KAAG,CACnB,GACU,EACb,MAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aACpE,KAAC,QAAQ,cACP,MAAC,GAAG,yBACK,GAAG,EACV,KAAC,IAAI,IACH,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,YAExB,QAAQ,GACJ,IACH,GACG,EACX,KAAC,kBAAkB,KAAG,EACrB,gBAAgB,IAAI,WAAW,IAAI,CAClC,8BACE,KAAC,QAAQ,IAAC,SAAS,EAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAE,WAAW,YACtD,GAAG,gBAAgB,CAAC,KAAK,MAAM,GACvB,EAEX,KAAC,kBAAkB,KAAG,IACrB,CACJ,EACD,KAAC,QAAQ,IACP,SAAS,EAAC,GAAG,EACb,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAChE,gCAAgC,CAAC,sBAAsB,CACxD,4CAGQ,IACN,IACN,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;QAC7C,OAAO,CACL,4BACE,KAAC,UAAU,IACT,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,GAAG,EAAE;oBACZ,mCAAmC;oBACnC,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;oBAC5B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC,YAED,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,YAC7B,KAAC,uBAAuB,KAAG,GACjB,GACD,GACZ,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,aAAa;aAC3D,qBAAqB,EAAE;aACvB,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,gCAAgC,EAAE,CAAC,gBAAgB,CAAC,CAC5D;aACA,MAAM,CAAC,aAAa,CAAC,CAAC;QAEzB,OAAO,CACL,8BACE,KAAC,UAAU,IACT,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,EACpD,SAAS,EAAC,uCAAuC,YAEjD,KAAC,eAAe,KAAG,GACR,EACb,MAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aACpE,KAAC,QAAQ,IACP,OAAO,EAAE,GAAG,EAAE;gCACZ,cAAc,CAAC,IAAI,CAAC,CAAC;gCACrB,WAAW,CAAC,IAAI,CAAC,CAAC;4BACpB,CAAC,sBAGQ,EACV,gBAAgB,IAAI,WAAW,IAAI,CAClC,8BACE,KAAC,QAAQ,IAAC,SAAS,EAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,IAAI,EAAE,WAAW,YACtD,GAAG,gBAAgB,CAAC,KAAK,MAAM,GACvB,EACX,KAAC,kBAAkB,KAAG,IACrB,CACJ,EACD,KAAC,QAAQ,IACP,SAAS,EAAC,GAAG,EACb,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAChE,gCAAgC,CAAC,eAAe,CACjD,EACD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,sBAGvB,EACV,uBAAuB,CAAC,MAAM,GAAG,CAAC,IAAI,CACrC,8BACE,KAAC,kBAAkB,KAAG,EACrB,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACrC,KAAC,QAAQ,IAEP,OAAO,EAAE,GAAG,EAAE;wCACZ,WAAW,CAAC,IAAI,CAAC,CAAC;wCAClB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;oCACnB,CAAC,EACD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EACjC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACxC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,YAEjD,IAAI,CAAC,KAAK,IAVN,IAAI,CAAC,KAAK,CAWN,CACZ,CAAC,IACD,CACJ,IACI,EACP,KAAC,wBAAwB,IACvB,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,GACvC,IACD,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG;QACnB;YACE,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,gBAAgB;SAC3B;QACD;YACE,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,gBAAgB;YAC1B,OAAO,EAAE,CAAC,eAAe;SAC1B;QACD;YACE,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,gBAAgB;SAC3B;KACF,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElC,OAAO,CACL,8BACE,KAAC,GAAG,IAAC,SAAS,EAAC,kCAAkC,YAC9C,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,cAAsB,SAAS,EAAC,iCAAiC,YAC9D,IAAI,CAAC,QAAQ,EAAE,IADR,IAAI,CAAC,KAAK,CAEd,CACP,CAAC,GACE,EACN,KAAC,UAAU,KAAG,IACb,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/lib/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /** @license @finos/legend-application-marketplace v0.1.35
1
+ /** @license @finos/legend-application-marketplace v0.1.36
2
2
  * Copyright (c) 2020-present, Goldman Sachs
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-marketplace",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-marketplace",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -47,14 +47,14 @@
47
47
  "dependencies": {
48
48
  "@finos/legend-application": "16.0.79",
49
49
  "@finos/legend-art": "7.1.130",
50
- "@finos/legend-code-editor": "2.0.132",
51
- "@finos/legend-extension-dsl-data-product": "0.0.22",
52
- "@finos/legend-extension-dsl-data-space": "10.4.164",
53
- "@finos/legend-graph": "32.3.13",
54
- "@finos/legend-lego": "2.0.144",
50
+ "@finos/legend-code-editor": "2.0.133",
51
+ "@finos/legend-extension-dsl-data-product": "0.0.23",
52
+ "@finos/legend-extension-dsl-data-space": "10.4.165",
53
+ "@finos/legend-graph": "32.3.14",
54
+ "@finos/legend-lego": "2.0.145",
55
55
  "@finos/legend-server-depot": "6.1.2",
56
- "@finos/legend-server-lakehouse": "0.3.13",
57
- "@finos/legend-server-marketplace": "0.1.22",
56
+ "@finos/legend-server-lakehouse": "0.3.14",
57
+ "@finos/legend-server-marketplace": "0.1.23",
58
58
  "@finos/legend-shared": "11.0.20",
59
59
  "@finos/legend-storage": "3.0.139",
60
60
  "@mui/material": "7.3.4",
@@ -31,6 +31,12 @@ export interface AdditionalMarketplacePageConfig {
31
31
  protected: boolean;
32
32
  }
33
33
 
34
+ export interface AdditionalMarketplaceHelpMenuItemConfig {
35
+ label: string;
36
+ onClick?: () => void;
37
+ href?: string;
38
+ }
39
+
34
40
  export abstract class LegendMarketplaceApplicationPlugin
35
41
  extends LegendApplicationPlugin
36
42
  implements DataProductDataAccess_LegendApplicationPlugin_Extension
@@ -77,4 +83,12 @@ export abstract class LegendMarketplaceApplicationPlugin
77
83
  * have access to useLegendMarketplaceBaseStore and other similar hooks.
78
84
  */
79
85
  getAdditionalMarketplacePageConfigs?(): AdditionalMarketplacePageConfig[];
86
+
87
+ /**
88
+ * Config to allow adding additional MenuItem elements to the LegendMarketplaceIconToolbar's
89
+ * help menu
90
+ */
91
+ getAdditionalHelpMenuItemConfigs?(
92
+ marketplaceBaseStore: LegendMarketplaceBaseStore,
93
+ ): AdditionalMarketplaceHelpMenuItemConfig[];
80
94
  }
@@ -14,7 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { useApplicationStore } from '@finos/legend-application';
18
17
  import {
19
18
  HelpOutlineIcon,
20
19
  MenuContentDivider,
@@ -24,7 +23,11 @@ import {
24
23
  import { observer } from 'mobx-react-lite';
25
24
  import { Avatar, Box, IconButton, Link, Menu, MenuItem } from '@mui/material';
26
25
  import { useEffect, useState } from 'react';
27
- import { assertErrorThrown, LegendUser } from '@finos/legend-shared';
26
+ import {
27
+ assertErrorThrown,
28
+ isNonNullable,
29
+ LegendUser,
30
+ } from '@finos/legend-shared';
28
31
  import { LEGEND_MARKETPLACE_ROUTE_PATTERN } from '../../__lib__/LegendMarketplaceNavigation.js';
29
32
  import { LegendMarketplaceAppInfo } from './LegendMarketplaceAppInfo.js';
30
33
  import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
@@ -32,12 +35,11 @@ import { CartDrawer } from '../AddToCart/CartDrawer.js';
32
35
  import { CartBadge } from './CartBadge.js';
33
36
 
34
37
  export const LegendMarketplaceIconToolbar = observer(() => {
35
- const applicationStore = useApplicationStore();
36
38
  const marketplaceStore = useLegendMarketplaceBaseStore();
39
+ const applicationStore = marketplaceStore.applicationStore;
37
40
  const userId = applicationStore.identityService.currentUser;
38
41
  const [userData, setUserData] = useState<LegendUser | string | undefined>();
39
- const showDevFeatures =
40
- marketplaceStore.applicationStore.config.options.showDevFeatures;
42
+ const showDevFeatures = applicationStore.config.options.showDevFeatures;
41
43
  useEffect(() => {
42
44
  const fetchUserData = async (): Promise<void> => {
43
45
  if (userId) {
@@ -62,18 +64,18 @@ export const LegendMarketplaceIconToolbar = observer(() => {
62
64
  ]);
63
65
 
64
66
  const imgSrc =
65
- marketplaceStore.applicationStore.config.marketplaceUserProfileImageUrl?.replace(
67
+ applicationStore.config.marketplaceUserProfileImageUrl?.replace(
66
68
  '{userId}',
67
69
  userId,
68
70
  );
69
- const userDirectoryLink = `${marketplaceStore.applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
71
+ const userDirectoryLink = `${applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
70
72
 
71
73
  const userName =
72
74
  userData instanceof LegendUser && userData.displayName
73
75
  ? userData.displayName
74
76
  : userId;
75
77
  const adjacentEnvState = marketplaceStore.adjacentEnvState;
76
- const adjacentUrl = marketplaceStore.applicationStore.config.adjacentEnvUrl;
78
+ const adjacentUrl = applicationStore.config.adjacentEnvUrl;
77
79
 
78
80
  const UserIconRenderer = () => {
79
81
  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
@@ -158,6 +160,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
158
160
 
159
161
  const open = Boolean(anchorEl);
160
162
 
163
+ const additionalHelpMenuItems = applicationStore.pluginManager
164
+ .getApplicationPlugins()
165
+ .flatMap((plugin) =>
166
+ plugin.getAdditionalHelpMenuItemConfigs?.(marketplaceStore),
167
+ )
168
+ .filter(isNonNullable);
169
+
161
170
  return (
162
171
  <>
163
172
  <IconButton
@@ -180,7 +189,6 @@ export const LegendMarketplaceIconToolbar = observer(() => {
180
189
  <MenuItem component="a" target="_blank" href={adjacentUrl}>
181
190
  {`${adjacentEnvState.label} Env`}
182
191
  </MenuItem>
183
-
184
192
  <MenuContentDivider />
185
193
  </>
186
194
  )}
@@ -195,6 +203,26 @@ export const LegendMarketplaceIconToolbar = observer(() => {
195
203
  >
196
204
  Admin
197
205
  </MenuItem>
206
+ {additionalHelpMenuItems.length > 0 && (
207
+ <>
208
+ <MenuContentDivider />
209
+ {additionalHelpMenuItems.map((item) => (
210
+ <MenuItem
211
+ key={item.label}
212
+ onClick={() => {
213
+ setAnchorEl(null);
214
+ item.onClick?.();
215
+ }}
216
+ component={item.href ? 'a' : 'li'}
217
+ href={item.href}
218
+ target={item.href ? '_blank' : undefined}
219
+ rel={item.href ? 'noopener noreferrer' : undefined}
220
+ >
221
+ {item.label}
222
+ </MenuItem>
223
+ ))}
224
+ </>
225
+ )}
198
226
  </Menu>
199
227
  <LegendMarketplaceAppInfo
200
228
  open={openAppInfo}