@finos/legend-extension-dsl-data-space 10.4.252 → 10.4.254

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 (111) hide show
  1. package/lib/__lib__/DSL_DataSpace_LegendApplicationCommand.js +8 -8
  2. package/lib/__lib__/DSL_DataSpace_LegendApplicationCommand.js.map +1 -1
  3. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +2 -2
  4. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  5. package/lib/components/DataSpaceDataAccess.d.ts.map +1 -1
  6. package/lib/components/DataSpaceDataAccess.js +6 -2
  7. package/lib/components/DataSpaceDataAccess.js.map +1 -1
  8. package/lib/components/DataSpaceDescription.d.ts.map +1 -1
  9. package/lib/components/DataSpaceDescription.js +6 -2
  10. package/lib/components/DataSpaceDescription.js.map +1 -1
  11. package/lib/components/DataSpaceInfoPanel.js +1 -1
  12. package/lib/components/DataSpaceInfoPanel.js.map +1 -1
  13. package/lib/components/DataSpaceLegendAISchema.d.ts.map +1 -1
  14. package/lib/components/DataSpaceLegendAISchema.js +6 -1
  15. package/lib/components/DataSpaceLegendAISchema.js.map +1 -1
  16. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
  17. package/lib/components/DataSpaceQuickStart.js +16 -7
  18. package/lib/components/DataSpaceQuickStart.js.map +1 -1
  19. package/lib/components/DataSpaceSupportPanel.d.ts.map +1 -1
  20. package/lib/components/DataSpaceSupportPanel.js +13 -1
  21. package/lib/components/DataSpaceSupportPanel.js.map +1 -1
  22. package/lib/components/DataSpaceViewer.js +2 -2
  23. package/lib/components/DataSpaceViewer.js.map +1 -1
  24. package/lib/components/DataSpaceWiki.d.ts.map +1 -1
  25. package/lib/components/DataSpaceWiki.js +2 -2
  26. package/lib/components/DataSpaceWiki.js.map +1 -1
  27. package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js +2 -2
  28. package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js.map +1 -1
  29. package/lib/components/query-builder/DataSpaceQueryBuilder.js +3 -3
  30. package/lib/components/query-builder/DataSpaceQueryBuilder.js.map +1 -1
  31. package/lib/graph/DSL_DataSpace_HashUtils.d.ts +4 -0
  32. package/lib/graph/DSL_DataSpace_HashUtils.d.ts.map +1 -1
  33. package/lib/graph/DSL_DataSpace_HashUtils.js +4 -0
  34. package/lib/graph/DSL_DataSpace_HashUtils.js.map +1 -1
  35. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +26 -1
  36. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  37. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +55 -0
  38. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  39. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts +2 -0
  40. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts.map +1 -1
  41. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js +67 -1
  42. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js.map +1 -1
  43. package/lib/graph-manager/index.d.ts +1 -1
  44. package/lib/graph-manager/index.d.ts.map +1 -1
  45. package/lib/graph-manager/index.js +1 -1
  46. package/lib/graph-manager/index.js.map +1 -1
  47. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts +4 -1
  48. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  49. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +109 -13
  50. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  51. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  52. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +13 -9
  53. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  54. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +8 -1
  55. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +2 -2
  56. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  57. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +26 -1
  58. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  59. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +55 -0
  60. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  61. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  62. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +36 -3
  63. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  64. package/lib/index.css +2 -2
  65. package/lib/index.css.map +1 -1
  66. package/lib/package.json +1 -1
  67. package/lib/stores/DataSpaceLayoutState.d.ts +9 -0
  68. package/lib/stores/DataSpaceLayoutState.d.ts.map +1 -1
  69. package/lib/stores/DataSpaceLayoutState.js +36 -0
  70. package/lib/stores/DataSpaceLayoutState.js.map +1 -1
  71. package/lib/stores/DataSpaceModelsDocumentationState.d.ts.map +1 -1
  72. package/lib/stores/DataSpaceModelsDocumentationState.js +3 -1
  73. package/lib/stores/DataSpaceModelsDocumentationState.js.map +1 -1
  74. package/lib/stores/DataSpaceViewerDiagramViewerState.d.ts.map +1 -1
  75. package/lib/stores/DataSpaceViewerDiagramViewerState.js +4 -1
  76. package/lib/stores/DataSpaceViewerDiagramViewerState.js.map +1 -1
  77. package/lib/stores/DataSpaceViewerExecutableState.d.ts.map +1 -1
  78. package/lib/stores/DataSpaceViewerExecutableState.js +2 -1
  79. package/lib/stores/DataSpaceViewerExecutableState.js.map +1 -1
  80. package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts +2 -1
  81. package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts.map +1 -1
  82. package/lib/stores/query-builder/DataSpaceQueryBuilderState.js +12 -1
  83. package/lib/stores/query-builder/DataSpaceQueryBuilderState.js.map +1 -1
  84. package/package.json +14 -14
  85. package/src/__lib__/DSL_DataSpace_LegendApplicationCommand.ts +8 -8
  86. package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +2 -2
  87. package/src/components/DataSpaceDataAccess.tsx +42 -11
  88. package/src/components/DataSpaceDescription.tsx +40 -14
  89. package/src/components/DataSpaceInfoPanel.tsx +4 -4
  90. package/src/components/DataSpaceLegendAISchema.ts +5 -0
  91. package/src/components/DataSpaceQuickStart.tsx +73 -15
  92. package/src/components/DataSpaceSupportPanel.tsx +125 -0
  93. package/src/components/DataSpaceViewer.tsx +2 -2
  94. package/src/components/DataSpaceWiki.tsx +0 -2
  95. package/src/components/query-builder/DataSpaceAdvancedSearchModal.tsx +4 -4
  96. package/src/components/query-builder/DataSpaceQueryBuilder.tsx +5 -5
  97. package/src/graph/DSL_DataSpace_HashUtils.ts +4 -0
  98. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +67 -0
  99. package/src/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.ts +92 -0
  100. package/src/graph-manager/index.ts +1 -0
  101. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +159 -10
  102. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +16 -8
  103. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +8 -1
  104. package/src/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +2 -2
  105. package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +67 -0
  106. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +61 -0
  107. package/src/stores/DataSpaceLayoutState.ts +41 -0
  108. package/src/stores/DataSpaceModelsDocumentationState.ts +7 -1
  109. package/src/stores/DataSpaceViewerDiagramViewerState.ts +5 -1
  110. package/src/stores/DataSpaceViewerExecutableState.ts +2 -0
  111. package/src/stores/query-builder/DataSpaceQueryBuilderState.ts +20 -0
@@ -32,12 +32,15 @@ import {
32
32
  V1_PackageableElementPointer,
33
33
  V1_rawLambdaModelSchema,
34
34
  V1_dataElementReferenceModelSchema,
35
+ V1_DataProductOperationalMetadata,
35
36
  } from '@finos/legend-graph';
36
37
  import {
37
38
  type PlainObject,
38
39
  UnsupportedOperationError,
39
40
  usingConstantValueSchema,
40
41
  usingModelSchema,
42
+ optionalCustom,
43
+ optionalCustomList,
41
44
  optionalCustomListWithSchema,
42
45
  customListWithSchema,
43
46
  isString,
@@ -51,6 +54,10 @@ import {
51
54
  V1_DataSpaceMappingProvider,
52
55
  V1_DataSpaceSupportEmail,
53
56
  V1_DataSpaceSupportCombinedInfo,
57
+ V1_DataSpaceSupportFullInfo,
58
+ V1_DataSpaceLink,
59
+ V1_DataSpaceEmail,
60
+ V1_DataSpaceExpertise,
54
61
  V1_DataSpaceDiagram,
55
62
  V1_DataSpaceElementPointer,
56
63
  V1_DataSpaceTemplateExecutable,
@@ -61,6 +68,7 @@ import { V1_MappingIncludeDataSpace } from '../../model/packageableElements/mapp
61
68
  export const V1_DATA_SPACE_ELEMENT_PROTOCOL_TYPE = 'dataSpace';
62
69
  const V1_DATA_SPACE_SUPPORT_EMAIL_TYPE = 'email';
63
70
  const V1_DATA_SPACE_SUPPORT_COMBINED_INFO_TYPE = 'combined';
71
+ const V1_DATA_SPACE_SUPPORT_FULL_INFO_TYPE = 'full';
64
72
  const V1_DATA_SPACE_PACKAGEABLE_ELEMENT_EXECUTABLE =
65
73
  'dataSpacePackageableElementExecutable';
66
74
  const V1_DATA_SPACE_TEMPLATE_EXECUTABLE = 'dataSpaceTemplateExecutable';
@@ -113,6 +121,38 @@ const V1_dataSpaceSupportCombinedInfoModelSchema = createModelSchema(
113
121
  },
114
122
  );
115
123
 
124
+ const V1_dataSpaceLinkModelSchema = createModelSchema(V1_DataSpaceLink, {
125
+ label: optional(primitive()),
126
+ url: primitive(),
127
+ });
128
+
129
+ const V1_dataSpaceEmailModelSchema = createModelSchema(V1_DataSpaceEmail, {
130
+ address: primitive(),
131
+ title: primitive(),
132
+ });
133
+
134
+ const V1_dataSpaceExpertiseModelSchema = createModelSchema(
135
+ V1_DataSpaceExpertise,
136
+ {
137
+ description: optional(primitive()),
138
+ expertIds: optional(list(primitive())),
139
+ },
140
+ );
141
+
142
+ const V1_dataSpaceSupportFullInfoModelSchema = createModelSchema(
143
+ V1_DataSpaceSupportFullInfo,
144
+ {
145
+ _type: usingConstantValueSchema(V1_DATA_SPACE_SUPPORT_FULL_INFO_TYPE),
146
+ documentation: optional(usingModelSchema(V1_dataSpaceLinkModelSchema)),
147
+ documentationUrl: optional(primitive()),
148
+ emails: optionalCustomListWithSchema(V1_dataSpaceEmailModelSchema),
149
+ expertise: optionalCustomListWithSchema(V1_dataSpaceExpertiseModelSchema),
150
+ faqUrl: optional(usingModelSchema(V1_dataSpaceLinkModelSchema)),
151
+ supportUrl: optional(usingModelSchema(V1_dataSpaceLinkModelSchema)),
152
+ website: optional(usingModelSchema(V1_dataSpaceLinkModelSchema)),
153
+ },
154
+ );
155
+
116
156
  const V1_serializeSupportInfo = (
117
157
  protocol: V1_DataSpaceSupportInfo | undefined,
118
158
  ): PlainObject<V1_DataSpaceSupportInfo> | typeof SKIP => {
@@ -123,6 +163,8 @@ const V1_serializeSupportInfo = (
123
163
  return serialize(V1_dataSpaceSupportEmailModelSchema, protocol);
124
164
  } else if (protocol instanceof V1_DataSpaceSupportCombinedInfo) {
125
165
  return serialize(V1_dataSpaceSupportCombinedInfoModelSchema, protocol);
166
+ } else if (protocol instanceof V1_DataSpaceSupportFullInfo) {
167
+ return serialize(V1_dataSpaceSupportFullInfoModelSchema, protocol);
126
168
  }
127
169
  throw new UnsupportedOperationError(`Can't serialize support info`, protocol);
128
170
  };
@@ -138,6 +180,8 @@ export const V1_deserializeSupportInfo = (
138
180
  return deserialize(V1_dataSpaceSupportEmailModelSchema, json);
139
181
  case V1_DATA_SPACE_SUPPORT_COMBINED_INFO_TYPE:
140
182
  return deserialize(V1_dataSpaceSupportCombinedInfoModelSchema, json);
183
+ case V1_DATA_SPACE_SUPPORT_FULL_INFO_TYPE:
184
+ return deserialize(V1_dataSpaceSupportFullInfoModelSchema, json);
141
185
  default: {
142
186
  throw new UnsupportedOperationError(
143
187
  `Can't deserialize support info of type '${json._type}'`,
@@ -218,6 +262,20 @@ const V1_dataSpaceDiagramModelSchema = createModelSchema(V1_DataSpaceDiagram, {
218
262
  title: primitive(),
219
263
  });
220
264
 
265
+ const V1_dataSpaceOperationalMetadataModelSchema = createModelSchema(
266
+ V1_DataProductOperationalMetadata,
267
+ {
268
+ coverageRegions: optionalCustomList(
269
+ (val) => (val as string).toLowerCase(),
270
+ (val) => (val as unknown as string).toUpperCase(),
271
+ ),
272
+ updateFrequency: optionalCustom(
273
+ (val) => (val as string).toLowerCase(),
274
+ (val) => (val as string).toUpperCase(),
275
+ ),
276
+ },
277
+ );
278
+
221
279
  const V1_dataSpaceModelSchema = createModelSchema(V1_DataSpace, {
222
280
  _type: usingConstantValueSchema(V1_DATA_SPACE_ELEMENT_PROTOCOL_TYPE),
223
281
  defaultExecutionContext: optional(primitive()),
@@ -237,6 +295,9 @@ const V1_dataSpaceModelSchema = createModelSchema(V1_DataSpace, {
237
295
  V1_packageableElementPointerModelSchema,
238
296
  ),
239
297
  name: primitive(),
298
+ operationalMetadata: optional(
299
+ usingModelSchema(V1_dataSpaceOperationalMetadataModelSchema),
300
+ ),
240
301
  package: primitive(),
241
302
  stereotypes: customListWithSchema(V1_stereotypePtrModelSchema, {
242
303
  INTERNAL__forceReturnEmptyInTest: true,
@@ -41,6 +41,45 @@ type DataSpacePageNavigationCommand = {
41
41
  anchor: string;
42
42
  };
43
43
 
44
+ export class CollapseState {
45
+ private readonly collapsedKeys = new Set<string>();
46
+
47
+ constructor() {
48
+ makeObservable<CollapseState, 'collapsedKeys'>(this, {
49
+ collapsedKeys: observable,
50
+ toggleSectionCollapse: action,
51
+ toggleAllSectionsCollapse: action,
52
+ });
53
+ }
54
+
55
+ isSectionCollapsed(key: string): boolean {
56
+ return this.collapsedKeys.has(key);
57
+ }
58
+
59
+ toggleSectionCollapse(key: string): void {
60
+ if (this.collapsedKeys.has(key)) {
61
+ this.collapsedKeys.delete(key);
62
+ } else {
63
+ this.collapsedKeys.add(key);
64
+ }
65
+ }
66
+
67
+ areAllSectionsCollapsed(keys: string[]): boolean {
68
+ return keys.length > 0 && keys.every((key) => this.collapsedKeys.has(key));
69
+ }
70
+
71
+ toggleAllSectionsCollapse(keys: string[]): void {
72
+ const shouldCollapse = !this.areAllSectionsCollapsed(keys);
73
+ keys.forEach((key) => {
74
+ if (shouldCollapse) {
75
+ this.collapsedKeys.add(key);
76
+ } else {
77
+ this.collapsedKeys.delete(key);
78
+ }
79
+ });
80
+ }
81
+ }
82
+
44
83
  export class DataSpaceLayoutState {
45
84
  readonly dataSpaceViewerState: DataSpaceViewerState;
46
85
 
@@ -56,6 +95,8 @@ export class DataSpaceLayoutState {
56
95
  private wikiPageVisibleAnchors: string[] = [];
57
96
  private wikiPageScrollIntersectionObserver?: IntersectionObserver | undefined;
58
97
 
98
+ readonly sectionCollapseState = new CollapseState();
99
+
59
100
  constructor(dataSpaceViewerState: DataSpaceViewerState) {
60
101
  makeObservable<
61
102
  DataSpaceLayoutState,
@@ -27,7 +27,13 @@ export class DataSpaceViewerModelsDocumentationState
27
27
  readonly dataSpaceViewerState: DataSpaceViewerState;
28
28
 
29
29
  constructor(dataSpaceViewerState: DataSpaceViewerState) {
30
- super(dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs);
30
+ super(
31
+ dataSpaceViewerState.applicationStore,
32
+ dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs,
33
+ {
34
+ collapseState: dataSpaceViewerState.layoutState.sectionCollapseState,
35
+ },
36
+ );
31
37
 
32
38
  this.dataSpaceViewerState = dataSpaceViewerState;
33
39
  }
@@ -28,8 +28,12 @@ export class DataSpaceViewerDiagramViewerState
28
28
 
29
29
  constructor(dataSpaceViewerState: DataSpaceViewerState) {
30
30
  super(
31
+ dataSpaceViewerState.applicationStore,
31
32
  dataSpaceViewerState.dataSpaceAnalysisResult.diagrams,
32
- dataSpaceViewerState.queryClass,
33
+ {
34
+ queryClass: dataSpaceViewerState.queryClass,
35
+ collapseState: dataSpaceViewerState.layoutState.sectionCollapseState,
36
+ },
33
37
  );
34
38
  this.dataSpaceViewerState = dataSpaceViewerState;
35
39
  }
@@ -32,6 +32,7 @@ import {
32
32
  import type { DataSpaceViewerState } from './DataSpaceViewerState.js';
33
33
  import { action, flow, makeObservable, observable } from 'mobx';
34
34
  import {
35
+ extractAnnotatedElementDocumentation,
35
36
  RelationType,
36
37
  TDSExecutionResult,
37
38
  type ExecutionResultWithMetadata,
@@ -212,6 +213,7 @@ export class DataSpaceExecutableRelationResultState {
212
213
  id: uuid(),
213
214
  name: col.name,
214
215
  type: col.genericType.value.rawType.name,
216
+ documentation: extractAnnotatedElementDocumentation(col),
215
217
  }));
216
218
  }
217
219
  }
@@ -23,6 +23,8 @@ import {
23
23
  type QueryBuilderExtraFunctionAnalysisInfo,
24
24
  QUERY_BUILDER_LAMBDA_WRITER_MODE,
25
25
  type ExtraOptionsConfig,
26
+ QueryBuilderEmbeddedFromExecutionContextState,
27
+ type QueryBuilderExecutionContextState,
26
28
  } from '@finos/legend-query-builder';
27
29
  import {
28
30
  type Class,
@@ -69,6 +71,7 @@ import type {
69
71
  } from '@finos/legend-storage';
70
72
  import { buildDataSpaceExecutableAnalysisResultFromExecutable } from '../../graph-manager/action/analytics/DataSpaceAnalysisHelper.js';
71
73
  import { compareLabelFn } from '@finos/legend-art';
74
+ import { resolveExecutionContextMapping } from '../../graph-manager/DSL_DataSpace_GraphManagerHelper.js';
72
75
 
73
76
  const matchesDataElement = (
74
77
  _class: Class,
@@ -367,6 +370,23 @@ export class DataSpaceQueryBuilderState extends QueryBuilderState {
367
370
  return this.buildQueryLambdaWithoutExecutionContext();
368
371
  }
369
372
 
373
+ override setExecutionContextState(
374
+ val: QueryBuilderExecutionContextState,
375
+ ): void {
376
+ if (
377
+ val instanceof QueryBuilderEmbeddedFromExecutionContextState &&
378
+ val.mapping === undefined
379
+ ) {
380
+ const resolvedMapping = resolveExecutionContextMapping(
381
+ this.executionContext,
382
+ );
383
+ if (resolvedMapping) {
384
+ val.setMapping(resolvedMapping);
385
+ }
386
+ }
387
+ super.setExecutionContextState(val);
388
+ }
389
+
370
390
  override buildExecutionContextExpression(
371
391
  lambdaFunction: LambdaFunction,
372
392
  ): LambdaFunction {