@finos/legend-extension-dsl-data-space 10.4.4 → 10.4.6
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts +1 -1
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts.map +1 -1
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +4 -3
- package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
- package/lib/components/query-builder/DataSpaceQueryBuilder.d.ts.map +1 -1
- package/lib/components/query-builder/DataSpaceQueryBuilder.js +20 -6
- package/lib/components/query-builder/DataSpaceQueryBuilder.js.map +1 -1
- package/lib/components/query-builder/DataSpaceQueryBuilderTemplateQueryPanelContent.js +1 -1
- package/lib/components/query-builder/DataSpaceQueryBuilderTemplateQueryPanelContent.js.map +1 -1
- package/lib/graph-manager/action/analytics/DataSpaceAnalysisHelper.d.ts +3 -0
- package/lib/graph-manager/action/analytics/DataSpaceAnalysisHelper.d.ts.map +1 -1
- package/lib/graph-manager/action/analytics/DataSpaceAnalysisHelper.js +4 -1
- package/lib/graph-manager/action/analytics/DataSpaceAnalysisHelper.js.map +1 -1
- package/lib/graph-manager/index.d.ts +1 -0
- package/lib/graph-manager/index.d.ts.map +1 -1
- package/lib/graph-manager/index.js +1 -0
- package/lib/graph-manager/index.js.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.d.ts +6 -2
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts +17 -3
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +219 -48
- package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +3 -3
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts +5 -11
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.js +19 -30
- package/lib/stores/query-builder/DataSpaceQueryBuilderState.js.map +1 -1
- package/package.json +15 -15
- package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +6 -8
- package/src/components/query-builder/DataSpaceQueryBuilder.tsx +40 -9
- package/src/components/query-builder/DataSpaceQueryBuilderTemplateQueryPanelContent.tsx +1 -1
- package/src/graph-manager/action/analytics/DataSpaceAnalysisHelper.ts +14 -1
- package/src/graph-manager/index.ts +4 -0
- package/src/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.ts +24 -3
- package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +446 -72
- package/src/stores/query-builder/DataSpaceQueryBuilderState.ts +32 -40
@@ -34,7 +34,6 @@ import {
|
|
34
34
|
Package,
|
35
35
|
QueryDataSpaceExecutionContext,
|
36
36
|
elementBelongsToPackage,
|
37
|
-
RuntimePointer,
|
38
37
|
} from '@finos/legend-graph';
|
39
38
|
import {
|
40
39
|
type DepotServerClient,
|
@@ -47,7 +46,6 @@ import {
|
|
47
46
|
ActionState,
|
48
47
|
assertErrorThrown,
|
49
48
|
filterByType,
|
50
|
-
getNullableFirstEntry,
|
51
49
|
} from '@finos/legend-shared';
|
52
50
|
import { action, flow, makeObservable, observable } from 'mobx';
|
53
51
|
import { renderDataSpaceQueryBuilderSetupPanelContent } from '../../components/query-builder/DataSpaceQueryBuilder.js';
|
@@ -88,11 +86,34 @@ export const resolveUsableDataSpaceClasses = (
|
|
88
86
|
dataSpace: DataSpace,
|
89
87
|
mapping: Mapping,
|
90
88
|
graphManagerState: GraphManagerState,
|
89
|
+
queryBuilderState?: DataSpaceQueryBuilderState,
|
91
90
|
): Class[] => {
|
92
|
-
|
91
|
+
let compatibleClasses = getMappingCompatibleClasses(
|
93
92
|
mapping,
|
94
93
|
graphManagerState.usableClasses,
|
95
94
|
);
|
95
|
+
const mappingModelCoverageAnalysisResult =
|
96
|
+
queryBuilderState?.dataSpaceAnalysisResult?.mappingToMappingCoverageResult?.get(
|
97
|
+
mapping.path,
|
98
|
+
);
|
99
|
+
if (
|
100
|
+
// This check is to make sure that we have `info` field present in `MappedEntity` which
|
101
|
+
// contains information about the mapped class path
|
102
|
+
mappingModelCoverageAnalysisResult?.mappedEntities.some(
|
103
|
+
(m) => m.info !== undefined,
|
104
|
+
)
|
105
|
+
) {
|
106
|
+
const compatibleClassPaths =
|
107
|
+
mappingModelCoverageAnalysisResult.mappedEntities.map(
|
108
|
+
(e) => e.info?.classPath,
|
109
|
+
);
|
110
|
+
const uniqueCompatibleClasses = compatibleClassPaths.filter(
|
111
|
+
(val, index) => compatibleClassPaths.indexOf(val) === index,
|
112
|
+
);
|
113
|
+
compatibleClasses = graphManagerState.graph.classes.filter((c) =>
|
114
|
+
uniqueCompatibleClasses.includes(c.path),
|
115
|
+
);
|
116
|
+
}
|
96
117
|
if (dataSpace.elements?.length) {
|
97
118
|
const elements = dataSpace.elements;
|
98
119
|
return compatibleClasses.filter((_class) => {
|
@@ -335,7 +356,7 @@ export class DataSpacesDepotRepository extends DataSpacesBuilderRepoistory {
|
|
335
356
|
}
|
336
357
|
|
337
358
|
export class DataSpaceQueryBuilderState extends QueryBuilderState {
|
338
|
-
readonly onDataSpaceChange: (val: DataSpaceInfo) => void
|
359
|
+
readonly onDataSpaceChange: (val: DataSpaceInfo) => Promise<void>;
|
339
360
|
readonly onExecutionContextChange?:
|
340
361
|
| ((val: DataSpaceExecutionContext) => void)
|
341
362
|
| undefined;
|
@@ -351,6 +372,7 @@ export class DataSpaceQueryBuilderState extends QueryBuilderState {
|
|
351
372
|
executionContext!: DataSpaceExecutionContext;
|
352
373
|
showRuntimeSelector = false;
|
353
374
|
isTemplateQueryDialogOpen = false;
|
375
|
+
isLightGraphEnabled!: boolean;
|
354
376
|
displayedTemplateQueries: DataSpaceExecutableAnalysisResult[] | undefined;
|
355
377
|
|
356
378
|
constructor(
|
@@ -360,8 +382,9 @@ export class DataSpaceQueryBuilderState extends QueryBuilderState {
|
|
360
382
|
actionConfig: QueryBuilderActionConfig,
|
361
383
|
dataSpace: DataSpace,
|
362
384
|
executionContext: DataSpaceExecutionContext,
|
385
|
+
isLightGraphEnabled: boolean,
|
363
386
|
dataSpaceRepo: DataSpacesBuilderRepoistory | undefined,
|
364
|
-
onDataSpaceChange: (val: DataSpaceInfo) => void
|
387
|
+
onDataSpaceChange: (val: DataSpaceInfo) => Promise<void>,
|
365
388
|
dataSpaceAnalysisResult?: DataSpaceAnalysisResult | undefined,
|
366
389
|
onExecutionContextChange?:
|
367
390
|
| ((val: DataSpaceExecutionContext) => void)
|
@@ -377,10 +400,12 @@ export class DataSpaceQueryBuilderState extends QueryBuilderState {
|
|
377
400
|
executionContext: observable,
|
378
401
|
showRuntimeSelector: observable,
|
379
402
|
isTemplateQueryDialogOpen: observable,
|
403
|
+
isLightGraphEnabled: observable,
|
380
404
|
displayedTemplateQueries: observable,
|
381
405
|
setExecutionContext: action,
|
382
406
|
setShowRuntimeSelector: action,
|
383
407
|
setTemplateQueryDialogOpen: action,
|
408
|
+
setIsLightGraphEnabled: action,
|
384
409
|
intialize: flow,
|
385
410
|
});
|
386
411
|
|
@@ -425,41 +450,8 @@ export class DataSpaceQueryBuilderState extends QueryBuilderState {
|
|
425
450
|
this.showRuntimeSelector = val;
|
426
451
|
}
|
427
452
|
|
428
|
-
|
429
|
-
|
430
|
-
* - The mapping will be updated to the mapping of the execution context
|
431
|
-
* - The runtime will be updated to the default runtime of the execution context
|
432
|
-
* - If no class is chosen, try to choose a compatible class
|
433
|
-
* - If the chosen class is compatible with the new selected execution context mapping, do nothing, otherwise, try to choose a compatible class
|
434
|
-
*/
|
435
|
-
propagateExecutionContextChange(
|
436
|
-
executionContext: DataSpaceExecutionContext,
|
437
|
-
): void {
|
438
|
-
const mapping = executionContext.mapping.value;
|
439
|
-
this.changeMapping(mapping);
|
440
|
-
const mappingModelCoverageAnalysisResult =
|
441
|
-
this.dataSpaceAnalysisResult?.mappingToMappingCoverageResult?.get(
|
442
|
-
mapping.path,
|
443
|
-
);
|
444
|
-
if (mappingModelCoverageAnalysisResult) {
|
445
|
-
this.explorerState.mappingModelCoverageAnalysisResult =
|
446
|
-
mappingModelCoverageAnalysisResult;
|
447
|
-
}
|
448
|
-
this.changeRuntime(new RuntimePointer(executionContext.defaultRuntime));
|
449
|
-
|
450
|
-
const compatibleClasses = resolveUsableDataSpaceClasses(
|
451
|
-
this.dataSpace,
|
452
|
-
mapping,
|
453
|
-
this.graphManagerState,
|
454
|
-
);
|
455
|
-
// if there is no chosen class or the chosen one is not compatible
|
456
|
-
// with the mapping then pick a compatible class if possible
|
457
|
-
if (!this.class || !compatibleClasses.includes(this.class)) {
|
458
|
-
const possibleNewClass = getNullableFirstEntry(compatibleClasses);
|
459
|
-
if (possibleNewClass) {
|
460
|
-
this.changeClass(possibleNewClass);
|
461
|
-
}
|
462
|
-
}
|
453
|
+
setIsLightGraphEnabled(val: boolean): void {
|
454
|
+
this.isLightGraphEnabled = val;
|
463
455
|
}
|
464
456
|
|
465
457
|
override buildFunctionAnalysisInfo():
|