@finos/legend-application-marketplace 0.0.12 → 0.0.14

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.
@@ -28,4 +28,8 @@ export declare const LEGEND_MARKETPLACE_ROUTE_PATTERN: Readonly<{
28
28
  }>;
29
29
  export declare const generateSearchResultsRoute: (provider: string | undefined, query: string | undefined) => string;
30
30
  export declare const generateVendorDetailsRoute: (vendorName: string) => string;
31
+ /**
32
+ * @external_application_navigation This depends on Legend Studio routing and is hardcoded so it's potentially brittle
33
+ */
34
+ export declare const EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl: (studioApplicationUrl: string, projectId: string, versionId: string | undefined, entityPath: string | undefined) => string;
31
35
  //# sourceMappingURL=LegendMarketplaceNavigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceNavigation.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendMarketplaceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,oBAAY,sCAAsC;IAChD,WAAW,eAAe;CAC3B;AAED,oBAAY,mDAAmD;IAC7D,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAC;AAEH,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,GAAG,SAAS,EAC5B,OAAO,MAAM,GAAG,SAAS,KACxB,MAWA,CAAC;AAEJ,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,KAAG,MAG5D,CAAC"}
1
+ {"version":3,"file":"LegendMarketplaceNavigation.d.ts","sourceRoot":"","sources":["../../src/__lib__/LegendMarketplaceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,oBAAY,sCAAsC;IAChD,WAAW,eAAe;CAC3B;AAED,oBAAY,mDAAmD;IAC7D,QAAQ,aAAa;IACrB,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,gCAAgC;;;;;EAK3C,CAAC;AAEH,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,GAAG,SAAS,EAC5B,OAAO,MAAM,GAAG,SAAS,KACxB,MAWA,CAAC;AAEJ,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,KAAG,MAG5D,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,iEAAiE,GAE1E,sBAAsB,MAAM,EAC5B,WAAW,MAAM,EACjB,WAAW,MAAM,GAAG,SAAS,EAC7B,YAAY,MAAM,GAAG,SAAS,KAC7B,MAG6C,CAAC"}
@@ -41,4 +41,8 @@ export const generateSearchResultsRoute = (provider, query) => addQueryParameter
41
41
  export const generateVendorDetailsRoute = (vendorName) => generatePath(LEGEND_MARKETPLACE_ROUTE_PATTERN.VENDOR_DETAILS, {
42
42
  vendorName,
43
43
  });
44
+ /**
45
+ * @external_application_navigation This depends on Legend Studio routing and is hardcoded so it's potentially brittle
46
+ */
47
+ export const EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl = (studioApplicationUrl, projectId, versionId, entityPath) => `${studioApplicationUrl}/view/${projectId}${versionId ? `/version/${versionId}` : ''}${entityPath ? `/entity/${entityPath}` : ''}`;
44
48
  //# sourceMappingURL=LegendMarketplaceNavigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceNavigation.js","sourceRoot":"","sources":["../../src/__lib__/LegendMarketplaceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAN,IAAY,sCAEX;AAFD,WAAY,sCAAsC;IAChD,oEAA0B,CAAA;AAC5B,CAAC,EAFW,sCAAsC,KAAtC,sCAAsC,QAEjD;AAED,MAAM,CAAN,IAAY,mDAGX;AAHD,WAAY,mDAAmD;IAC7D,4EAAqB,CAAA;IACrB,sEAAe,CAAA;AACjB,CAAC,EAHW,mDAAmD,KAAnD,mDAAmD,QAG9D;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,GAAG;IACZ,cAAc,EAAE,UAAU;IAC1B,cAAc,EAAE,YAAY,sCAAsC,CAAC,WAAW,EAAE;IAChF,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAA4B,EAC5B,KAAyB,EACjB,EAAE,CACV,uBAAuB,CACrB,gCAAgC,CAAC,cAAc,EAC/C,oBAAoB,CAAC;IACnB,CAAC,mDAAmD,CAAC,QAAQ,CAAC,EAAE,QAAQ;QACtE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS;IACb,CAAC,mDAAmD,CAAC,KAAK,CAAC,EAAE,KAAK;QAChE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS;CACd,CAAC,CACH,CAAC;AAEJ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAU,EAAE,CACvE,YAAY,CAAC,gCAAgC,CAAC,cAAc,EAAE;IAC5D,UAAU;CACX,CAAC,CAAC"}
1
+ {"version":3,"file":"LegendMarketplaceNavigation.js","sourceRoot":"","sources":["../../src/__lib__/LegendMarketplaceNavigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAN,IAAY,sCAEX;AAFD,WAAY,sCAAsC;IAChD,oEAA0B,CAAA;AAC5B,CAAC,EAFW,sCAAsC,KAAtC,sCAAsC,QAEjD;AAED,MAAM,CAAN,IAAY,mDAGX;AAHD,WAAY,mDAAmD;IAC7D,4EAAqB,CAAA;IACrB,sEAAe,CAAA;AACjB,CAAC,EAHW,mDAAmD,KAAnD,mDAAmD,QAG9D;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5D,OAAO,EAAE,GAAG;IACZ,cAAc,EAAE,UAAU;IAC1B,cAAc,EAAE,YAAY,sCAAsC,CAAC,WAAW,EAAE;IAChF,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAA4B,EAC5B,KAAyB,EACjB,EAAE,CACV,uBAAuB,CACrB,gCAAgC,CAAC,cAAc,EAC/C,oBAAoB,CAAC;IACnB,CAAC,mDAAmD,CAAC,QAAQ,CAAC,EAAE,QAAQ;QACtE,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,SAAS;IACb,CAAC,mDAAmD,CAAC,KAAK,CAAC,EAAE,KAAK;QAChE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS;CACd,CAAC,CACH,CAAC;AAEJ,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAU,EAAE,CACvE,YAAY,CAAC,gCAAgC,CAAC,cAAc,EAAE;IAC5D,UAAU;CACX,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,iEAAiE,GAC5E,CACE,oBAA4B,EAC5B,SAAiB,EACjB,SAA6B,EAC7B,UAA8B,EACtB,EAAE,CACV,GAAG,oBAAoB,SAAS,SAAS,GACvC,SAAS,CAAC,CAAC,CAAC,YAAY,SAAS,EAAE,CAAC,CAAC,CAAC,EACxC,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC"}
package/lib/app.css CHANGED
@@ -1,4 +1,4 @@
1
- /** @license @finos/legend-application-marketplace v0.0.12
1
+ /** @license @finos/legend-application-marketplace v0.0.14
2
2
  * Copyright (c) 2020-present, Goldman Sachs
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -32,6 +32,9 @@ export interface LegendMarketplaceApplicationConfigurationData extends LegendApp
32
32
  lakehouse?: {
33
33
  url: string;
34
34
  };
35
+ studio?: {
36
+ url: string;
37
+ };
35
38
  }
36
39
  export declare class LegendMarketplaceApplicationConfig extends LegendApplicationConfig {
37
40
  readonly options: LegendMarketplaceApplicationCoreOptions;
@@ -39,6 +42,7 @@ export declare class LegendMarketplaceApplicationConfig extends LegendApplicatio
39
42
  readonly engineServerUrl: string;
40
43
  readonly depotServerUrl: string;
41
44
  readonly lakehouseServerUrl?: string;
45
+ readonly studioServerUrl?: string;
42
46
  constructor(input: LegendApplicationConfigurationInput<LegendMarketplaceApplicationConfigurationData>);
43
47
  getDefaultApplicationStorageKey(): string;
44
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,cAAM,uCAAuC;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAEnC;IAEF,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,WAAW,CAAC,uCAAuC,CAAC,GAC/D,uCAAuC;CAK3C;AAED,MAAM,WAAW,6CACf,SAAQ,kCAAkC;IAC1C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QAEV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,qBAAa,kCAAmC,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,OAAO,0CAAiD;IAEjE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;gBAGnC,KAAK,EAAE,mCAAmC,CAAC,6CAA6C,CAAC;IAyDlF,+BAA+B,IAAI,MAAM;CAGnD"}
1
+ {"version":3,"file":"LegendMarketplaceApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,KAAK,WAAW,EAIjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,cAAM,uCAAuC;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAEnC;IAEF,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,WAAW,CAAC,uCAAuC,CAAC,GAC/D,uCAAuC;CAK3C;AAED,MAAM,WAAW,6CACf,SAAQ,kCAAkC;IAC1C,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,CAAC,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,qBAAa,kCAAmC,SAAQ,uBAAuB;IAC7E,QAAQ,CAAC,OAAO,0CAAiD;IAEjE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;gBAGhC,KAAK,EAAE,mCAAmC,CAAC,6CAA6C,CAAC;IAkElF,+BAA+B,IAAI,MAAM;CAGnD"}
@@ -28,6 +28,7 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
28
28
  engineServerUrl;
29
29
  depotServerUrl;
30
30
  lakehouseServerUrl;
31
+ studioServerUrl;
31
32
  constructor(input) {
32
33
  super(input);
33
34
  // marketplace
@@ -43,6 +44,10 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
43
44
  if (input.configData.lakehouse) {
44
45
  this.lakehouseServerUrl = LegendApplicationConfig.resolveAbsoluteUrl(guaranteeNonEmptyString(input.configData.depot.url, `Can't configure application: 'lakehouse.url' field is missing or empty`));
45
46
  }
47
+ // studio
48
+ if (input.configData.studio) {
49
+ this.studioServerUrl = LegendApplicationConfig.resolveAbsoluteUrl(guaranteeNonEmptyString(input.configData.studio.url, `Can't configure application: 'studio.url' field is missing or empty`));
50
+ }
46
51
  // options
47
52
  this.options = LegendMarketplaceApplicationCoreOptions.create(input.configData.extensions?.core ?? {});
48
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAEL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,uCAAuC;IACnC,MAAM,CAAU,aAAa,GAAG,IAAI,oBAAoB,CAC9D,iBAAiB,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAC/D,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,UAAgE;QAEhE,OAAO,uCAAuC,CAAC,aAAa,CAAC,QAAQ,CACnE,UAAU,CACX,CAAC;IACJ,CAAC;;AAgBH,MAAM,OAAO,kCAAmC,SAAQ,uBAAuB;IACpE,OAAO,GAAG,IAAI,uCAAuC,EAAE,CAAC;IAExD,oBAAoB,CAAS;IAC7B,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,kBAAkB,CAAU;IAErC,YACE,KAAyF;QAEzF,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,cAAc;QACd,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,WAAW,EAC5B,6DAA6D,CAC9D,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,kBAAkB,CACpE,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAChC,0EAA0E,CAC3E,CACF,CAAC;QAEF,SAAS;QACT,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,wDAAwD,CACzD,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,kBAAkB,CAC/D,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAC3B,qEAAqE,CACtE,CACF,CAAC;QAEF,QAAQ;QACR,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,KAAK,EACtB,uDAAuD,CACxD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC,kBAAkB,CAC9D,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAC1B,oEAAoE,CACrE,CACF,CAAC;QAEF,YAAY;QAEZ,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,kBAAkB,CAClE,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAC1B,wEAAwE,CACzE,CACF,CAAC;QACJ,CAAC;QAED,UAAU;QACV,IAAI,CAAC,OAAO,GAAG,uCAAuC,CAAC,MAAM,CAC3D,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC;IAEQ,+BAA+B;QACtC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"LegendMarketplaceApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAEL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,uCAAuC;IACnC,MAAM,CAAU,aAAa,GAAG,IAAI,oBAAoB,CAC9D,iBAAiB,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAC/D,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,UAAgE;QAEhE,OAAO,uCAAuC,CAAC,aAAa,CAAC,QAAQ,CACnE,UAAU,CACX,CAAC;IACJ,CAAC;;AAkBH,MAAM,OAAO,kCAAmC,SAAQ,uBAAuB;IACpE,OAAO,GAAG,IAAI,uCAAuC,EAAE,CAAC;IAExD,oBAAoB,CAAS;IAC7B,eAAe,CAAS;IACxB,cAAc,CAAS;IACvB,kBAAkB,CAAU;IAC5B,eAAe,CAAU;IAElC,YACE,KAAyF;QAEzF,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,cAAc;QACd,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,WAAW,EAC5B,6DAA6D,CAC9D,CAAC;QACF,IAAI,CAAC,oBAAoB,GAAG,uBAAuB,CAAC,kBAAkB,CACpE,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,EAChC,0EAA0E,CAC3E,CACF,CAAC;QAEF,SAAS;QACT,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,MAAM,EACvB,wDAAwD,CACzD,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,kBAAkB,CAC/D,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAC3B,qEAAqE,CACtE,CACF,CAAC;QAEF,QAAQ;QACR,iBAAiB,CACf,KAAK,CAAC,UAAU,CAAC,KAAK,EACtB,uDAAuD,CACxD,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC,kBAAkB,CAC9D,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAC1B,oEAAoE,CACrE,CACF,CAAC;QAEF,YAAY;QAEZ,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,kBAAkB,GAAG,uBAAuB,CAAC,kBAAkB,CAClE,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAC1B,wEAAwE,CACzE,CACF,CAAC;QACJ,CAAC;QACD,SAAS;QACT,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,uBAAuB,CAAC,kBAAkB,CAC/D,uBAAuB,CACrB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAC3B,qEAAqE,CACtE,CACF,CAAC;QACJ,CAAC;QAED,UAAU;QACV,IAAI,CAAC,OAAO,GAAG,uCAAuC,CAAC,MAAM,CAC3D,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC;IAEQ,+BAA+B;QACtC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"LakehouseMarketplace.d.ts","sourceRoot":"","sources":["../../../src/components/Lakehouse/LakehouseMarketplace.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,eAAO,MAAM,oBAAoB,wBAuDhC,CAAC"}
1
+ {"version":3,"file":"LakehouseMarketplace.d.ts","sourceRoot":"","sources":["../../../src/components/Lakehouse/LakehouseMarketplace.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH,eAAO,MAAM,oBAAoB,wBA4FhC,CAAC"}
@@ -21,19 +21,36 @@ import { CubesLoadingIndicator, CubesLoadingIndicatorIcon, } from '@finos/legend
21
21
  import { LegendMarketplaceHeader } from '../Header/LegendMarketplaceHeader.js';
22
22
  import { Grid2 as Grid } from '@mui/material';
23
23
  import { LegendMarketplaceVendorCard } from '../VendorCard/LegendMarketplaceVendorCard.js';
24
+ import { LATEST_VERSION_ALIAS, StoreProjectData, VersionedProjectData, } from '@finos/legend-server-depot';
25
+ import { assertErrorThrown, guaranteeNonNullable } from '@finos/legend-shared';
26
+ import { EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl } from '../../__lib__/LegendMarketplaceNavigation.js';
27
+ import { flowResult } from 'mobx';
24
28
  export const LakehouseMarketplace = withMarketplaceLakehouseStore(observer(() => {
25
29
  const marketPlaceStore = useMarketplaceLakehouseStore();
26
30
  useEffect(() => {
27
31
  marketPlaceStore.init();
28
32
  }, [marketPlaceStore]);
29
- return (_jsx("div", { className: "app__page", children: _jsx("div", { className: "legend-marketplace-home", children: _jsxs("div", { className: "legend-marketplace-home__body", children: [_jsx(LegendMarketplaceHeader, {}), _jsx("div", { className: "legend-marketplace-home__content", children: _jsxs("div", { className: "legend-marketplace-data-products__content", children: [_jsx(CubesLoadingIndicator, { isLoading: marketPlaceStore.loadingProductsState.isInProgress, children: _jsx(CubesLoadingIndicatorIcon, {}) }), _jsx("div", { className: "legend-marketplace-home__vendors-cards", children: _jsx(Grid, { container: true, spacing: { xs: 2, md: 3, xl: 4 }, columns: { xs: 1, sm: 2, md: 3, xl: 6 }, sx: { justifyContent: 'center' }, children: marketPlaceStore.productStates
30
- ?.map((e) => e.dataSet)
31
- .map((asset) => (_jsx(Grid, { size: 1, children: _jsx(LegendMarketplaceVendorCard, { dataAsset: asset, onClick: (dataAsset) => {
33
+ const openDataProduct = async (state) => {
34
+ const path = `${state.product.package}::${state.product.name}`;
35
+ try {
36
+ const studioUrl = guaranteeNonNullable(marketPlaceStore.applicationStore.config.studioServerUrl, 'studio url required');
37
+ const project = StoreProjectData.serialization.fromJson(await marketPlaceStore.depotServerClient.getProject(state.productEntity.groupId, state.productEntity.artifactId));
38
+ const versionId = state.productEntity.versionId === LATEST_VERSION_ALIAS
39
+ ? VersionedProjectData.serialization.fromJson(await marketPlaceStore.depotServerClient.getLatestVersion(state.productEntity.groupId, state.productEntity.artifactId)).versionId
40
+ : state.productEntity.versionId;
41
+ marketPlaceStore.applicationStore.navigationService.navigator.visitAddress(EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl(studioUrl, project.projectId, versionId, path));
42
+ }
43
+ catch (error) {
44
+ assertErrorThrown(error);
45
+ marketPlaceStore.applicationStore.notificationService.notifyError(path
46
+ ? `Can't visit element of path: '${path}'`
47
+ : `Can't visit project`);
48
+ }
49
+ };
50
+ return (_jsx("div", { className: "app__page", children: _jsx("div", { className: "legend-marketplace-home", children: _jsxs("div", { className: "legend-marketplace-home__body", children: [_jsx(LegendMarketplaceHeader, {}), _jsx("div", { className: "legend-marketplace-home__content", children: _jsxs("div", { className: "legend-marketplace-data-products__content", children: [_jsx(CubesLoadingIndicator, { isLoading: marketPlaceStore.loadingProductsState.isInProgress, children: _jsx(CubesLoadingIndicatorIcon, {}) }), _jsx("div", { className: "legend-marketplace-home__vendors-cards", children: _jsx(Grid, { container: true, spacing: { xs: 2, md: 3, xl: 4 }, columns: { xs: 1, sm: 2, md: 3, xl: 6 }, sx: { justifyContent: 'center' }, children: marketPlaceStore.productStates?.map((dpState) => (_jsx(Grid, { size: 1, children: _jsx(LegendMarketplaceVendorCard, { dataAsset: dpState.dataSet, onClick: (dataAsset) => {
32
51
  {
33
- // TODO: for now lets have it take you to the studio project
34
- // eslint-disable-next-line no-console
35
- console.log('clicked');
52
+ flowResult(openDataProduct(dpState));
36
53
  }
37
- } }) }, `${asset.provider}.${asset.type}.${asset.description}`))) }) })] }) })] }) }) }));
54
+ } }) }, `${dpState.dataSet.provider}.${dpState.dataSet.type}.${dpState.dataSet.description}`))) }) })] }) })] }) }) }));
38
55
  }));
39
56
  //# sourceMappingURL=LakehouseMarketplace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LakehouseMarketplace.js","sourceRoot":"","sources":["../../../src/components/Lakehouse/LakehouseMarketplace.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAG3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,6BAA6B,CAC/D,QAAQ,CAAC,GAAG,EAAE;IACZ,MAAM,gBAAgB,GAAG,4BAA4B,EAAE,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACb,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACxB,cAAK,SAAS,EAAC,yBAAyB,YACtC,eAAK,SAAS,EAAC,+BAA+B,aAC5C,KAAC,uBAAuB,KAAG,EAC3B,cAAK,SAAS,EAAC,kCAAkC,YAC/C,eAAK,SAAS,EAAC,2CAA2C,aACxD,KAAC,qBAAqB,IACpB,SAAS,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,YAAY,YAE7D,KAAC,yBAAyB,KAAG,GACP,EACxB,cAAK,SAAS,EAAC,wCAAwC,YACrD,KAAC,IAAI,IACH,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAChC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EACvC,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAE/B,gBAAgB,CAAC,aAAa;4CAC7B,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;6CACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACd,KAAC,IAAI,IAEH,IAAI,EAAE,CAAC,YAEP,KAAC,2BAA2B,IAC1B,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,CAAC,SAAoB,EAAE,EAAE;oDAChC,CAAC;wDACC,4DAA4D;wDAC5D,sCAAsC;wDACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oDACzB,CAAC;gDACH,CAAC,GACD,IAZG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,CAatD,CACR,CAAC,GACC,GACH,IACF,GACF,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"LakehouseMarketplace.js","sourceRoot":"","sources":["../../../src/components/Lakehouse/LakehouseMarketplace.tsx"],"names":[],"mappings":"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"}
package/lib/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /** @license @finos/legend-application-marketplace v0.0.12
1
+ /** @license @finos/legend-application-marketplace v0.0.14
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.0.12",
3
+ "version": "0.0.14",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -18,7 +18,7 @@ import { type DepotServerClient } from '@finos/legend-server-depot';
18
18
  import type { MarketplaceLakehouseServerClient } from '../MarketplaceLakehouseServerClient.js';
19
19
  import type { LegendMarketplaceApplicationStore } from '../LegendMarketplaceBaseStore.js';
20
20
  import { ActionState, type GeneratorFn } from '@finos/legend-shared';
21
- import { type V1_DataProduct } from '@finos/legend-graph';
21
+ import { type V1_AccessPoint, type V1_DataProduct } from '@finos/legend-graph';
22
22
  import type { DataAsset } from '@finos/legend-server-marketplace';
23
23
  interface DataProductEntity {
24
24
  product: V1_DataProduct;
@@ -36,6 +36,7 @@ export declare class DataProductState {
36
36
  productEntity: DataProductEntity;
37
37
  constructor(product: DataProductEntity, state: MarketplaceLakehouseStore);
38
38
  get product(): V1_DataProduct;
39
+ get accessPoints(): V1_AccessPoint[];
39
40
  get accessTypes(): DataProductType;
40
41
  get dataSet(): DataAsset;
41
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceLakehouseStore.d.ts","sourceRoot":"","sources":["../../../src/stores/lakehouse/MarketplaceLakehouseStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAE/F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EACL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,iBAAiB,CAAC;gBAErB,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,yBAAyB;IAMxE,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,WAAW,IAAI,eAAe,CAUjC;IAED,IAAI,OAAO,IAAI,SAAS,CAOvB;CACF;AAED,qBAAa,yBAA0B,YAAW,gBAAgB;IAChE,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACjE,aAAa,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC9C,oBAAoB,cAAwB;gBAG1C,gBAAgB,EAAE,iCAAiC,EACnD,qBAAqB,EAAE,gCAAgC,EACvD,iBAAiB,EAAE,iBAAiB;IAYtC,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,IAAI;IAItD,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;IAsC1B,gBAAgB,IAAI,IAAI;IAGxB,kBAAkB,IAAI,IAAI;CAG3B"}
1
+ {"version":3,"file":"MarketplaceLakehouseStore.d.ts","sourceRoot":"","sources":["../../../src/stores/lakehouse/MarketplaceLakehouseStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAE/F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EACL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAElE,UAAU,iBAAiB;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,iBAAiB,CAAC;gBAErB,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,yBAAyB;IAMxE,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,YAAY,IAAI,cAAc,EAAE,CAEnC;IAED,IAAI,WAAW,IAAI,eAAe,CAUjC;IAED,IAAI,OAAO,IAAI,SAAS,CAOvB;CACF;AAED,qBAAa,yBAA0B,YAAW,gBAAgB;IAChE,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;IACjE,aAAa,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC9C,oBAAoB,cAAwB;gBAG1C,gBAAgB,EAAE,iCAAiC,EACnD,qBAAqB,EAAE,gCAAgC,EACvD,iBAAiB,EAAE,iBAAiB;IAYtC,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,IAAI;IAItD,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;IAwC1B,gBAAgB,IAAI,IAAI;IAGxB,kBAAkB,IAAI,IAAI;CAG3B"}
@@ -36,9 +36,12 @@ export class DataProductState {
36
36
  get product() {
37
37
  return this.productEntity.product;
38
38
  }
39
+ get accessPoints() {
40
+ return this.product.accessPointGroups.map((e) => e.accessPoints).flat();
41
+ }
39
42
  get accessTypes() {
40
- if (this.product.accessPoints.length) {
41
- const lake = this.product.accessPoints.every((e) => e instanceof V1_LakehouseAccessPoint);
43
+ if (this.accessPoints.length) {
44
+ const lake = this.accessPoints.every((e) => e instanceof V1_LakehouseAccessPoint);
42
45
  if (lake) {
43
46
  return DataProductType.LAKEHOUSE;
44
47
  }
@@ -77,19 +80,21 @@ export class MarketplaceLakehouseStore {
77
80
  try {
78
81
  this.loadingProductsState.inProgress();
79
82
  const summaryP = (yield this.depotServerClient.getEntitiesSummaryByClassifier(CORE_PURE_PATH.DATA_PRODUCT, {
80
- scope: DepotScope.SNAPSHOT,
83
+ scope: DepotScope.RELEASES,
81
84
  summary: true,
82
85
  })).map((p) => StoredSummaryEntity.serialization.fromJson(p));
83
86
  // for now we will do 2 calls;
84
- const productsE = (yield Promise.all(summaryP.map((p) => this.depotServerClient
87
+ const allProducts = (yield Promise.all(summaryP.map((p) => this.depotServerClient
85
88
  .getVersionEntity(p.groupId, p.artifactId, p.versionId, p.path)
86
89
  .then((entity) => ({
87
90
  product: deserialize(V1_dataProductModelSchema, entity.content),
88
91
  groupId: p.groupId,
89
92
  artifactId: p.artifactId,
90
93
  versionId: p.versionId,
91
- }))))).map((e) => new DataProductState(e, this));
92
- this.setProducts(productsE);
94
+ })))))
95
+ .map((e) => new DataProductState(e, this))
96
+ .sort((a, b) => a.product.name.localeCompare(b.product.name));
97
+ this.setProducts(allProducts);
93
98
  this.loadingProductsState.complete();
94
99
  }
95
100
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceLakehouseStore.js","sourceRoot":"","sources":["../../../src/stores/lakehouse/MarketplaceLakehouseStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarketplaceLakehouseStore.js","sourceRoot":"","sources":["../../../src/stores/lakehouse/MarketplaceLakehouseStore.ts"],"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.0.12",
3
+ "version": "0.0.14",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@finos/legend-application": "16.0.36",
49
49
  "@finos/legend-art": "7.1.93",
50
- "@finos/legend-graph": "32.1.19",
50
+ "@finos/legend-graph": "32.1.21",
51
51
  "@finos/legend-server-depot": "6.0.88",
52
52
  "@finos/legend-server-marketplace": "0.0.2",
53
53
  "@finos/legend-shared": "11.0.11",
@@ -56,3 +56,17 @@ export const generateVendorDetailsRoute = (vendorName: string): string =>
56
56
  generatePath(LEGEND_MARKETPLACE_ROUTE_PATTERN.VENDOR_DETAILS, {
57
57
  vendorName,
58
58
  });
59
+
60
+ /**
61
+ * @external_application_navigation This depends on Legend Studio routing and is hardcoded so it's potentially brittle
62
+ */
63
+ export const EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl =
64
+ (
65
+ studioApplicationUrl: string,
66
+ projectId: string,
67
+ versionId: string | undefined,
68
+ entityPath: string | undefined,
69
+ ): string =>
70
+ `${studioApplicationUrl}/view/${projectId}${
71
+ versionId ? `/version/${versionId}` : ''
72
+ }${entityPath ? `/entity/${entityPath}` : ''}`;
@@ -49,7 +49,9 @@ export interface LegendMarketplaceApplicationConfigurationData
49
49
  url: string;
50
50
  };
51
51
  lakehouse?: {
52
- // can expand this if more than one server is required
52
+ url: string;
53
+ };
54
+ studio?: {
53
55
  url: string;
54
56
  };
55
57
  }
@@ -61,6 +63,7 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
61
63
  readonly engineServerUrl: string;
62
64
  readonly depotServerUrl: string;
63
65
  readonly lakehouseServerUrl?: string;
66
+ readonly studioServerUrl?: string;
64
67
 
65
68
  constructor(
66
69
  input: LegendApplicationConfigurationInput<LegendMarketplaceApplicationConfigurationData>,
@@ -113,6 +116,15 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
113
116
  ),
114
117
  );
115
118
  }
119
+ // studio
120
+ if (input.configData.studio) {
121
+ this.studioServerUrl = LegendApplicationConfig.resolveAbsoluteUrl(
122
+ guaranteeNonEmptyString(
123
+ input.configData.studio.url,
124
+ `Can't configure application: 'studio.url' field is missing or empty`,
125
+ ),
126
+ );
127
+ }
116
128
 
117
129
  // options
118
130
  this.options = LegendMarketplaceApplicationCoreOptions.create(
@@ -28,6 +28,15 @@ import { LegendMarketplaceHeader } from '../Header/LegendMarketplaceHeader.js';
28
28
  import { Grid2 as Grid } from '@mui/material';
29
29
  import { LegendMarketplaceVendorCard } from '../VendorCard/LegendMarketplaceVendorCard.js';
30
30
  import type { DataAsset } from '@finos/legend-server-marketplace';
31
+ import type { DataProductState } from '../../stores/lakehouse/MarketplaceLakehouseStore.js';
32
+ import {
33
+ LATEST_VERSION_ALIAS,
34
+ StoreProjectData,
35
+ VersionedProjectData,
36
+ } from '@finos/legend-server-depot';
37
+ import { assertErrorThrown, guaranteeNonNullable } from '@finos/legend-shared';
38
+ import { EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl } from '../../__lib__/LegendMarketplaceNavigation.js';
39
+ import { flowResult } from 'mobx';
31
40
 
32
41
  export const LakehouseMarketplace = withMarketplaceLakehouseStore(
33
42
  observer(() => {
@@ -37,6 +46,47 @@ export const LakehouseMarketplace = withMarketplaceLakehouseStore(
37
46
  marketPlaceStore.init();
38
47
  }, [marketPlaceStore]);
39
48
 
49
+ const openDataProduct = async (state: DataProductState): Promise<void> => {
50
+ const path = `${state.product.package}::${state.product.name}`;
51
+ try {
52
+ const studioUrl = guaranteeNonNullable(
53
+ marketPlaceStore.applicationStore.config.studioServerUrl,
54
+ 'studio url required',
55
+ );
56
+ const project = StoreProjectData.serialization.fromJson(
57
+ await marketPlaceStore.depotServerClient.getProject(
58
+ state.productEntity.groupId,
59
+ state.productEntity.artifactId,
60
+ ),
61
+ );
62
+ const versionId =
63
+ state.productEntity.versionId === LATEST_VERSION_ALIAS
64
+ ? VersionedProjectData.serialization.fromJson(
65
+ await marketPlaceStore.depotServerClient.getLatestVersion(
66
+ state.productEntity.groupId,
67
+ state.productEntity.artifactId,
68
+ ),
69
+ ).versionId
70
+ : state.productEntity.versionId;
71
+
72
+ marketPlaceStore.applicationStore.navigationService.navigator.visitAddress(
73
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioSDLCProjectViewUrl(
74
+ studioUrl,
75
+ project.projectId,
76
+ versionId,
77
+ path,
78
+ ),
79
+ );
80
+ } catch (error) {
81
+ assertErrorThrown(error);
82
+ marketPlaceStore.applicationStore.notificationService.notifyError(
83
+ path
84
+ ? `Can't visit element of path: '${path}'`
85
+ : `Can't visit project`,
86
+ );
87
+ }
88
+ };
89
+
40
90
  return (
41
91
  <div className="app__page">
42
92
  <div className="legend-marketplace-home">
@@ -56,25 +106,21 @@ export const LakehouseMarketplace = withMarketplaceLakehouseStore(
56
106
  columns={{ xs: 1, sm: 2, md: 3, xl: 6 }}
57
107
  sx={{ justifyContent: 'center' }}
58
108
  >
59
- {marketPlaceStore.productStates
60
- ?.map((e) => e.dataSet)
61
- .map((asset) => (
62
- <Grid
63
- key={`${asset.provider}.${asset.type}.${asset.description}`}
64
- size={1}
65
- >
66
- <LegendMarketplaceVendorCard
67
- dataAsset={asset}
68
- onClick={(dataAsset: DataAsset) => {
69
- {
70
- // TODO: for now lets have it take you to the studio project
71
- // eslint-disable-next-line no-console
72
- console.log('clicked');
73
- }
74
- }}
75
- />
76
- </Grid>
77
- ))}
109
+ {marketPlaceStore.productStates?.map((dpState) => (
110
+ <Grid
111
+ key={`${dpState.dataSet.provider}.${dpState.dataSet.type}.${dpState.dataSet.description}`}
112
+ size={1}
113
+ >
114
+ <LegendMarketplaceVendorCard
115
+ dataAsset={dpState.dataSet}
116
+ onClick={(dataAsset: DataAsset) => {
117
+ {
118
+ flowResult(openDataProduct(dpState));
119
+ }
120
+ }}
121
+ />
122
+ </Grid>
123
+ ))}
78
124
  </Grid>
79
125
  </div>
80
126
  </div>
@@ -34,6 +34,7 @@ import {
34
34
  CORE_PURE_PATH,
35
35
  V1_dataProductModelSchema,
36
36
  V1_LakehouseAccessPoint,
37
+ type V1_AccessPoint,
37
38
  type V1_DataProduct,
38
39
  } from '@finos/legend-graph';
39
40
  import { deserialize } from 'serializr';
@@ -67,9 +68,13 @@ export class DataProductState {
67
68
  return this.productEntity.product;
68
69
  }
69
70
 
71
+ get accessPoints(): V1_AccessPoint[] {
72
+ return this.product.accessPointGroups.map((e) => e.accessPoints).flat();
73
+ }
74
+
70
75
  get accessTypes(): DataProductType {
71
- if (this.product.accessPoints.length) {
72
- const lake = this.product.accessPoints.every(
76
+ if (this.accessPoints.length) {
77
+ const lake = this.accessPoints.every(
73
78
  (e) => e instanceof V1_LakehouseAccessPoint,
74
79
  );
75
80
  if (lake) {
@@ -122,13 +127,13 @@ export class MarketplaceLakehouseStore implements CommandRegistrar {
122
127
  (yield this.depotServerClient.getEntitiesSummaryByClassifier(
123
128
  CORE_PURE_PATH.DATA_PRODUCT,
124
129
  {
125
- scope: DepotScope.SNAPSHOT,
130
+ scope: DepotScope.RELEASES,
126
131
  summary: true,
127
132
  },
128
133
  )) as PlainObject<StoredSummaryEntity>[]
129
134
  ).map((p) => StoredSummaryEntity.serialization.fromJson(p));
130
135
  // for now we will do 2 calls;
131
- const productsE = (
136
+ const allProducts = (
132
137
  (yield Promise.all(
133
138
  summaryP.map((p) =>
134
139
  this.depotServerClient
@@ -144,8 +149,10 @@ export class MarketplaceLakehouseStore implements CommandRegistrar {
144
149
  })),
145
150
  ),
146
151
  )) as DataProductEntity[]
147
- ).map((e) => new DataProductState(e, this));
148
- this.setProducts(productsE);
152
+ )
153
+ .map((e) => new DataProductState(e, this))
154
+ .sort((a, b) => a.product.name.localeCompare(b.product.name));
155
+ this.setProducts(allProducts);
149
156
  this.loadingProductsState.complete();
150
157
  } catch (error) {
151
158
  assertErrorThrown(error);