@finos/legend-application-studio 26.0.2 → 26.0.3
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.
- package/lib/application/LegendStudioApplicationConfig.d.ts +10 -13
- package/lib/application/LegendStudioApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendStudioApplicationConfig.js +11 -10
- package/lib/application/LegendStudioApplicationConfig.js.map +1 -1
- package/lib/components/ElementIconUtils.d.ts +1 -1
- package/lib/components/ElementIconUtils.d.ts.map +1 -1
- package/lib/components/ElementIconUtils.js +11 -5
- package/lib/components/ElementIconUtils.js.map +1 -1
- package/lib/components/editor/__test-utils__/EditorComponentTestUtils.d.ts.map +1 -1
- package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js +2 -0
- package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js.map +1 -1
- package/lib/components/editor/editor-group/EditorGroup.d.ts.map +1 -1
- package/lib/components/editor/editor-group/EditorGroup.js +7 -1
- package/lib/components/editor/editor-group/EditorGroup.js.map +1 -1
- package/lib/components/editor/editor-group/FunctionEditor.d.ts +0 -16
- package/lib/components/editor/editor-group/FunctionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/FunctionEditor.js +79 -26
- package/lib/components/editor/editor-group/FunctionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/{service-editor/TEMPORARY__SnowflakeServiceDeployer.d.ts → INTERNAL__UnknownFunctionActivatorEdtior.d.ts} +2 -2
- package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.d.ts.map +1 -0
- package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js +49 -0
- package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js.map +1 -0
- package/lib/components/editor/editor-group/ModelImporter.js +1 -1
- package/lib/components/editor/editor-group/ModelImporter.js.map +1 -1
- package/lib/components/editor/editor-group/ProtocolValueBuilder.d.ts +22 -0
- package/lib/components/editor/editor-group/ProtocolValueBuilder.d.ts.map +1 -0
- package/lib/components/editor/editor-group/ProtocolValueBuilder.js +88 -0
- package/lib/components/editor/editor-group/ProtocolValueBuilder.js.map +1 -0
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +5 -1
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/post-processor-editor/MapperPostProcessorEditor.js +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js +1 -1
- package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js +3 -3
- package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +3 -3
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js.map +1 -1
- package/lib/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.d.ts +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.d.ts.map +1 -0
- package/lib/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.js +11 -11
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -0
- package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js +4 -4
- package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js +4 -4
- package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.js +0 -7
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js +3 -3
- package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/ClassEditor.js +3 -3
- package/lib/components/editor/editor-group/uml-editor/ClassEditor.js.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.d.ts.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js +6 -2
- package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js +10 -2
- package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js.map +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +2 -2
- package/lib/stores/LegendStudioApplicationPlugin.d.ts +1 -1
- package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/editor/EditorGraphState.d.ts +3 -1
- package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
- package/lib/stores/editor/EditorGraphState.js +14 -0
- package/lib/stores/editor/EditorGraphState.js.map +1 -1
- package/lib/stores/editor/EditorStore.d.ts +5 -5
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +12 -7
- package/lib/stores/editor/EditorStore.js.map +1 -1
- package/lib/stores/editor/EditorTabManagerState.d.ts.map +1 -1
- package/lib/stores/editor/EditorTabManagerState.js +5 -1
- package/lib/stores/editor/EditorTabManagerState.js.map +1 -1
- package/lib/stores/editor/editor-state/ExternalFormatState.d.ts +3 -3
- package/lib/stores/editor/editor-state/ExternalFormatState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/ExternalFormatState.js +14 -14
- package/lib/stores/editor/editor-state/ExternalFormatState.js.map +1 -1
- package/lib/stores/editor/editor-state/GraphGenerationState.d.ts +2 -2
- package/lib/stores/editor/editor-state/GraphGenerationState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/GraphGenerationState.js +1 -1
- package/lib/stores/editor/editor-state/GraphGenerationState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.d.ts +34 -0
- package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.js +118 -0
- package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.d.ts +10 -8
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js +16 -13
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.d.ts +31 -0
- package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js +91 -0
- package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.d.ts +69 -0
- package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.js +243 -0
- package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +2 -0
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js +8 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts +2 -13
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js +1 -39
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.d.ts +0 -1
- package/lib/stores/editor/utils/MockDataUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.js +7 -20
- package/lib/stores/editor/utils/MockDataUtils.js.map +1 -1
- package/lib/stores/editor/utils/PackageTreeUtils.js +1 -1
- package/lib/stores/editor/utils/PackageTreeUtils.js.map +1 -1
- package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts +3 -1
- package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/DomainGraphModifierHelper.js +4 -1
- package/lib/stores/graph-modifier/DomainGraphModifierHelper.js.map +1 -1
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts +1 -0
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js +3 -0
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.js +7 -3
- package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
- package/package.json +12 -12
- package/src/application/LegendStudioApplicationConfig.ts +14 -20
- package/src/components/ElementIconUtils.tsx +14 -2
- package/src/components/editor/__test-utils__/EditorComponentTestUtils.tsx +2 -0
- package/src/components/editor/editor-group/EditorGroup.tsx +12 -1
- package/src/components/editor/editor-group/FunctionEditor.tsx +331 -85
- package/src/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.tsx +129 -0
- package/src/components/editor/editor-group/ModelImporter.tsx +1 -1
- package/src/components/editor/editor-group/ProtocolValueBuilder.tsx +225 -0
- package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +26 -1
- package/src/components/editor/editor-group/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +1 -1
- package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +7 -28
- package/src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx +1 -1
- package/src/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.tsx +4 -4
- package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +2 -3
- package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +1 -1
- package/src/components/editor/editor-group/mapping-editor/MappingEditor.tsx +1 -1
- package/src/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.tsx +13 -13
- package/src/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.tsx +5 -5
- package/src/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +5 -5
- package/src/components/editor/editor-group/service-editor/ServiceEditor.tsx +0 -10
- package/src/components/editor/editor-group/service-editor/ServicePostValidationEditor.tsx +3 -3
- package/src/components/editor/editor-group/uml-editor/ClassEditor.tsx +3 -3
- package/src/components/editor/editor-group/uml-editor/StereotypeSelector.tsx +12 -11
- package/src/components/editor/editor-group/uml-editor/TaggedValueEditor.tsx +18 -20
- package/src/components/workspace-setup/WorkspaceSetup.tsx +1 -1
- package/src/stores/LegendStudioApplicationPlugin.ts +14 -5
- package/src/stores/editor/EditorGraphState.ts +24 -0
- package/src/stores/editor/EditorStore.ts +16 -7
- package/src/stores/editor/EditorTabManagerState.ts +7 -0
- package/src/stores/editor/editor-state/ExternalFormatState.ts +14 -16
- package/src/stores/editor/editor-state/GraphGenerationState.ts +3 -2
- package/src/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.ts +178 -0
- package/src/stores/editor/editor-state/element-editor-state/FunctionEditorState.ts +21 -13
- package/src/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.ts +136 -0
- package/src/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.ts +364 -0
- package/src/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.ts +12 -0
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.ts +0 -53
- package/src/stores/editor/utils/MockDataUtils.ts +7 -28
- package/src/stores/editor/utils/PackageTreeUtils.ts +1 -1
- package/src/stores/graph-modifier/DomainGraphModifierHelper.ts +9 -1
- package/src/stores/graph-modifier/STO_Relational_GraphModifierHelper.ts +6 -0
- package/src/stores/project-view/ProjectViewerStore.ts +6 -6
- package/tsconfig.json +6 -2
- package/lib/components/editor/edit-panel/mapping-editor/testable/MappingTestableEditor.d.ts.map +0 -1
- package/lib/components/editor/edit-panel/mapping-editor/testable/MappingTestableEditor.js.map +0 -1
- package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.d.ts.map +0 -1
- package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.js +0 -39
- package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.js.map +0 -1
- package/src/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.tsx +0 -79
@@ -50,7 +50,7 @@ import {
|
|
50
50
|
CLASS_PROPERTY_TYPE,
|
51
51
|
getClassPropertyType,
|
52
52
|
} from '../../../../stores/editor/utils/ModelClassifierUtils.js';
|
53
|
-
import {
|
53
|
+
import { InlineLambdaEditor } from '@finos/legend-query-builder';
|
54
54
|
|
55
55
|
const SimplePropertyMappingEditor = observer(
|
56
56
|
(props: {
|
@@ -82,7 +82,7 @@ const SimplePropertyMappingEditor = observer(
|
|
82
82
|
return (
|
83
83
|
<div className="property-mapping-editor__entry__container">
|
84
84
|
<div ref={drop} className="property-mapping-editor__entry">
|
85
|
-
<
|
85
|
+
<InlineLambdaEditor
|
86
86
|
className={clsx({ 'lambda-editor--dnd-match': canDrop })}
|
87
87
|
disabled={transformProps.disableTransform}
|
88
88
|
lambdaEditorState={propertyMappingState}
|
@@ -198,7 +198,7 @@ const EnumerationPropertyMappingEditor = observer(
|
|
198
198
|
options={options}
|
199
199
|
onChange={handleSelectionChange}
|
200
200
|
value={{ value: transformerLabel, label: transformerLabel }}
|
201
|
-
placeholder="
|
201
|
+
placeholder="Choose an existing enumeration mapping"
|
202
202
|
/>
|
203
203
|
<button
|
204
204
|
className="property-mapping-editor__entry__visit-btn"
|
@@ -209,7 +209,7 @@ const EnumerationPropertyMappingEditor = observer(
|
|
209
209
|
<ArrowCircleRightIcon />
|
210
210
|
</button>
|
211
211
|
</div>
|
212
|
-
<
|
212
|
+
<InlineLambdaEditor
|
213
213
|
className={clsx(
|
214
214
|
'property-mapping-editor__entry__enumeration__transform',
|
215
215
|
{ 'lambda-editor--dnd-match': canDrop },
|
@@ -297,7 +297,7 @@ const ClassPropertyMappingEditor = observer(
|
|
297
297
|
<ArrowCircleRightIcon />
|
298
298
|
</button>
|
299
299
|
</div>
|
300
|
-
<
|
300
|
+
<InlineLambdaEditor
|
301
301
|
className={clsx({ 'lambda-editor--dnd-match': canDrop })}
|
302
302
|
disabled={transformProps.disableTransform}
|
303
303
|
lambdaEditorState={propertyMappingState}
|
@@ -51,7 +51,7 @@ import {
|
|
51
51
|
CLASS_PROPERTY_TYPE,
|
52
52
|
getClassPropertyType,
|
53
53
|
} from '../../../../../stores/editor/utils/ModelClassifierUtils.js';
|
54
|
-
import {
|
54
|
+
import { InlineLambdaEditor } from '@finos/legend-query-builder';
|
55
55
|
|
56
56
|
const SimplePropertyMappingEditor = observer(
|
57
57
|
(props: {
|
@@ -67,7 +67,7 @@ const SimplePropertyMappingEditor = observer(
|
|
67
67
|
return (
|
68
68
|
<div className="property-mapping-editor__entry__container">
|
69
69
|
<div ref={drop} className="property-mapping-editor__entry">
|
70
|
-
<
|
70
|
+
<InlineLambdaEditor
|
71
71
|
disabled={transformProps.disableTransform}
|
72
72
|
lambdaEditorState={propertyMappingState}
|
73
73
|
forceBackdrop={transformProps.forceBackdrop}
|
@@ -157,7 +157,7 @@ const EnumerationPropertyMappingEditor = observer(
|
|
157
157
|
options={options}
|
158
158
|
onChange={handleSelectionChange}
|
159
159
|
value={{ value: transformerLabel, label: transformerLabel }}
|
160
|
-
placeholder="
|
160
|
+
placeholder="Choose an existing enumeration mapping"
|
161
161
|
/>
|
162
162
|
<button
|
163
163
|
className="property-mapping-editor__entry__visit-btn"
|
@@ -168,7 +168,7 @@ const EnumerationPropertyMappingEditor = observer(
|
|
168
168
|
<ArrowCircleRightIcon />
|
169
169
|
</button>
|
170
170
|
</div>
|
171
|
-
<
|
171
|
+
<InlineLambdaEditor
|
172
172
|
className={clsx(
|
173
173
|
'property-mapping-editor__entry__enumeration__transform',
|
174
174
|
)}
|
@@ -249,7 +249,7 @@ const ClassPropertyMappingEditor = observer(
|
|
249
249
|
<ArrowCircleRightIcon />
|
250
250
|
</button>
|
251
251
|
</div>
|
252
|
-
<
|
252
|
+
<InlineLambdaEditor
|
253
253
|
disabled={transformProps.disableTransform}
|
254
254
|
lambdaEditorState={propertyMappingState}
|
255
255
|
forceBackdrop={transformProps.forceBackdrop}
|
@@ -36,7 +36,6 @@ import { debounce, prettyCONSTName } from '@finos/legend-shared';
|
|
36
36
|
import { ServiceExecutionEditor } from './ServiceExecutionEditor.js';
|
37
37
|
import { LEGEND_STUDIO_TEST_ID } from '../../../../__lib__/LegendStudioTesting.js';
|
38
38
|
import { ServiceRegistrationEditor } from './ServiceRegistrationEditor.js';
|
39
|
-
import { TEMPORARY__SnowflakeServiceDeployer } from './TEMPORARY__SnowflakeServiceDeployer.js';
|
40
39
|
import { useEditorStore } from '../../EditorStoreProvider.js';
|
41
40
|
import {
|
42
41
|
service_addOwner,
|
@@ -475,8 +474,6 @@ export const ServiceEditor = observer(() => {
|
|
475
474
|
validationState={serviceState.postValidationState}
|
476
475
|
/>
|
477
476
|
);
|
478
|
-
case SERVICE_TAB.TEMPORARY__SNOWFLAKE_SERVICE_DEPLOYMENT:
|
479
|
-
return <TEMPORARY__SnowflakeServiceDeployer />;
|
480
477
|
default:
|
481
478
|
return null;
|
482
479
|
}
|
@@ -522,13 +519,6 @@ export const ServiceEditor = observer(() => {
|
|
522
519
|
editorStore.applicationStore.config.options
|
523
520
|
.TEMPORARY__serviceRegistrationConfig.length,
|
524
521
|
);
|
525
|
-
} else if (
|
526
|
-
tab === SERVICE_TAB.TEMPORARY__SNOWFLAKE_SERVICE_DEPLOYMENT
|
527
|
-
) {
|
528
|
-
return Boolean(
|
529
|
-
editorStore.applicationStore.config
|
530
|
-
.TEMPORARY__snowflakeServiceDeploymentUrl,
|
531
|
-
);
|
532
522
|
}
|
533
523
|
return true;
|
534
524
|
})
|
@@ -47,7 +47,7 @@ import {
|
|
47
47
|
serviceValidation_setASsertionId,
|
48
48
|
serviceValidation_setDescription,
|
49
49
|
} from '../../../../stores/graph-modifier/DSL_Service_GraphModifierHelper.js';
|
50
|
-
import {
|
50
|
+
import { InlineLambdaEditor } from '@finos/legend-query-builder';
|
51
51
|
import { flowResult } from 'mobx';
|
52
52
|
|
53
53
|
const ServicePostValidationAssertionEditor = observer(
|
@@ -106,7 +106,7 @@ const ServicePostValidationAssertionEditor = observer(
|
|
106
106
|
{ backdrop__element: hasParserError },
|
107
107
|
)}
|
108
108
|
>
|
109
|
-
<
|
109
|
+
<InlineLambdaEditor
|
110
110
|
className="service-post-validation-editor__lambda-editor"
|
111
111
|
disabled={isReadOnly || postValState.isRunningLambdaConversion}
|
112
112
|
lambdaEditorState={assertionState}
|
@@ -158,7 +158,7 @@ const ServicePostValidationParameterEditor = observer(
|
|
158
158
|
{ backdrop__element: hasParserError },
|
159
159
|
)}
|
160
160
|
>
|
161
|
-
<
|
161
|
+
<InlineLambdaEditor
|
162
162
|
className="service-post-validation-editor__lambda-editor"
|
163
163
|
disabled={isReadOnly || postValState.isRunningLambdaConversion}
|
164
164
|
lambdaEditorState={paramState}
|
@@ -134,7 +134,7 @@ import {
|
|
134
134
|
getClassPropertyType,
|
135
135
|
} from '../../../../stores/editor/utils/ModelClassifierUtils.js';
|
136
136
|
import { LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY } from '../../../../__lib__/LegendStudioApplicationNavigationContext.js';
|
137
|
-
import {
|
137
|
+
import { InlineLambdaEditor } from '@finos/legend-query-builder';
|
138
138
|
|
139
139
|
type ClassPropertyDragSource = {
|
140
140
|
property: Property;
|
@@ -836,7 +836,7 @@ const DerivedPropertyBasicEditor = observer(
|
|
836
836
|
</button>
|
837
837
|
)}
|
838
838
|
</div>
|
839
|
-
<
|
839
|
+
<InlineLambdaEditor
|
840
840
|
disabled={
|
841
841
|
editorState.classState
|
842
842
|
.isConvertingDerivedPropertyLambdaObjects ||
|
@@ -1006,7 +1006,7 @@ const ConstraintEditor = observer(
|
|
1006
1006
|
</button>
|
1007
1007
|
)}
|
1008
1008
|
</div>
|
1009
|
-
<
|
1009
|
+
<InlineLambdaEditor
|
1010
1010
|
disabled={
|
1011
1011
|
editorState.classState.isConvertingConstraintLambdaObjects ||
|
1012
1012
|
isReadOnly ||
|
@@ -25,6 +25,7 @@ import {
|
|
25
25
|
PanelDnDEntry,
|
26
26
|
DragPreviewLayer,
|
27
27
|
useDragPreviewLayer,
|
28
|
+
clsx,
|
28
29
|
} from '@finos/legend-art';
|
29
30
|
import { useEditorStore } from '../../EditorStoreProvider.js';
|
30
31
|
import {
|
@@ -182,12 +183,12 @@ export const StereotypeSelector = observer(
|
|
182
183
|
dropTargetConnector={handleRef}
|
183
184
|
isBeingDragged={isBeingDragged}
|
184
185
|
/>
|
185
|
-
<div
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
>
|
186
|
+
<div
|
187
|
+
className={clsx('stereotype-selector', {
|
188
|
+
'stereotype-selector--dark': darkTheme,
|
189
|
+
})}
|
190
|
+
>
|
191
|
+
<div className="stereotype-selector__profile">
|
191
192
|
<CustomSelectorInput
|
192
193
|
className="stereotype-selector__profile__selector"
|
193
194
|
disabled={isReadOnly}
|
@@ -199,9 +200,7 @@ export const StereotypeSelector = observer(
|
|
199
200
|
darkMode={Boolean(darkTheme)}
|
200
201
|
/>
|
201
202
|
<button
|
202
|
-
className=
|
203
|
-
darkTheme ? 'stereotype-selector-dark-theme' : ''
|
204
|
-
}`}
|
203
|
+
className="stereotype-selector__profile__visit-btn"
|
205
204
|
disabled={isStubbed_PackageableElement(stereotype.value._OWNER)}
|
206
205
|
onClick={visitProfile}
|
207
206
|
tabIndex={-1}
|
@@ -218,11 +217,13 @@ export const StereotypeSelector = observer(
|
|
218
217
|
value={selectedStereotype}
|
219
218
|
placeholder="Choose a stereotype"
|
220
219
|
filterOption={stereotypeFilterOption}
|
221
|
-
darkMode={darkTheme
|
220
|
+
darkMode={Boolean(darkTheme)}
|
222
221
|
/>
|
223
222
|
{!isReadOnly && (
|
224
223
|
<button
|
225
|
-
className=
|
224
|
+
className={clsx('uml-element-editor__remove-btn', {
|
225
|
+
'btn--dark btn--caution': darkTheme,
|
226
|
+
})}
|
226
227
|
disabled={isReadOnly}
|
227
228
|
onClick={deleteStereotype}
|
228
229
|
tabIndex={-1}
|
@@ -193,12 +193,12 @@ export const TaggedValueEditor = observer(
|
|
193
193
|
dropTargetConnector={handleRef}
|
194
194
|
isBeingDragged={isBeingDragged}
|
195
195
|
/>
|
196
|
-
<div
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
>
|
196
|
+
<div
|
197
|
+
className={clsx('tagged-value-editor', {
|
198
|
+
'tagged-value-editor--dark': darkTheme,
|
199
|
+
})}
|
200
|
+
>
|
201
|
+
<div className="tagged-value-editor__profile">
|
202
202
|
<CustomSelectorInput
|
203
203
|
className="tagged-value-editor__profile__selector"
|
204
204
|
disabled={isReadOnly}
|
@@ -207,12 +207,10 @@ export const TaggedValueEditor = observer(
|
|
207
207
|
value={selectedProfile}
|
208
208
|
placeholder="Choose a profile"
|
209
209
|
filterOption={profileFilterOption}
|
210
|
-
darkMode={darkTheme
|
210
|
+
darkMode={Boolean(darkTheme)}
|
211
211
|
/>
|
212
212
|
<button
|
213
|
-
className=
|
214
|
-
darkTheme ? 'tagged-value-editor-dark-theme' : ''
|
215
|
-
}`}
|
213
|
+
className="tagged-value-editor__profile__visit-btn"
|
216
214
|
disabled={isStubbed_PackageableElement(
|
217
215
|
taggedValue.tag.value._OWNER,
|
218
216
|
)}
|
@@ -235,7 +233,9 @@ export const TaggedValueEditor = observer(
|
|
235
233
|
/>
|
236
234
|
{!isReadOnly && (
|
237
235
|
<button
|
238
|
-
className=
|
236
|
+
className={clsx('uml-element-editor__remove-btn', {
|
237
|
+
'btn--dark btn--caution': darkTheme,
|
238
|
+
})}
|
239
239
|
disabled={isReadOnly}
|
240
240
|
onClick={deleteValue}
|
241
241
|
tabIndex={-1}
|
@@ -251,9 +251,9 @@ export const TaggedValueEditor = observer(
|
|
251
251
|
>
|
252
252
|
{isExpanded && (
|
253
253
|
<textarea
|
254
|
-
className={
|
255
|
-
|
256
|
-
}
|
254
|
+
className={clsx('tagged-value-editor__value__input', {
|
255
|
+
'input--dark': darkTheme,
|
256
|
+
})}
|
257
257
|
spellCheck={false}
|
258
258
|
disabled={isReadOnly}
|
259
259
|
value={taggedValue.value}
|
@@ -263,9 +263,9 @@ export const TaggedValueEditor = observer(
|
|
263
263
|
)}
|
264
264
|
{!isExpanded && (
|
265
265
|
<input
|
266
|
-
className={
|
267
|
-
|
268
|
-
}
|
266
|
+
className={clsx('tagged-value-editor__value__input', {
|
267
|
+
'input--dark': darkTheme,
|
268
|
+
})}
|
269
269
|
spellCheck={false}
|
270
270
|
disabled={isReadOnly}
|
271
271
|
value={taggedValue.value}
|
@@ -274,9 +274,7 @@ export const TaggedValueEditor = observer(
|
|
274
274
|
/>
|
275
275
|
)}
|
276
276
|
<button
|
277
|
-
className=
|
278
|
-
darkTheme ? 'tagged-value-editor-dark-theme' : ''
|
279
|
-
}`}
|
277
|
+
className="tagged-value-editor__value__expand-btn"
|
280
278
|
onClick={toggleExpandedMode}
|
281
279
|
tabIndex={-1}
|
282
280
|
title="Expand/Collapse"
|
@@ -297,7 +297,7 @@ export const WorkspaceSetup = withWorkspaceSetupStore(
|
|
297
297
|
setupStore.loadWorkspacesState.isInProgress
|
298
298
|
? 'Loading workspaces...'
|
299
299
|
: !setupStore.currentProject
|
300
|
-
? 'In order to
|
300
|
+
? 'In order to choose a workspace, a project must be chosen'
|
301
301
|
: workspaceOptions.length
|
302
302
|
? 'Choose an existing workspace'
|
303
303
|
: 'You have no workspaces. Please create one to proceed...'
|
@@ -144,21 +144,30 @@ export type ElementClassifier = (
|
|
144
144
|
metamodel: PackageableElement,
|
145
145
|
) => string | undefined;
|
146
146
|
|
147
|
+
// TODO: we should consider restrict the usage of type classifier and consider using the element instead
|
148
|
+
// the only mechanism that really needs the type classifier is element creation, which we could refactor
|
149
|
+
// to have a plugin that produces a single configuration for the creation ceremony
|
150
|
+
// e.g.
|
151
|
+
// export type ElementCreatorConfiguration = {
|
152
|
+
// key: string;
|
153
|
+
// label: string;
|
154
|
+
// icon: React.ReactNode;
|
155
|
+
// ...
|
156
|
+
// }
|
157
|
+
export type ElementIconGetter = (
|
158
|
+
type: string,
|
159
|
+
element: PackageableElement | undefined,
|
160
|
+
) => React.ReactNode | undefined;
|
147
161
|
export type ElementTypeLabelGetter = (type: string) => string | undefined;
|
148
|
-
|
149
|
-
export type ElementIconGetter = (type: string) => React.ReactNode | undefined;
|
150
|
-
|
151
162
|
export type NewElementFromStateCreator = (
|
152
163
|
type: string,
|
153
164
|
name: string,
|
154
165
|
state: NewElementState,
|
155
166
|
) => PackageableElement | undefined;
|
156
|
-
|
157
167
|
export type NewElementDriverCreator = (
|
158
168
|
editorStore: EditorStore,
|
159
169
|
type: string,
|
160
170
|
) => NewElementDriver<PackageableElement> | undefined;
|
161
|
-
|
162
171
|
export type NewElementDriverEditorRenderer = (
|
163
172
|
type: string,
|
164
173
|
) => React.ReactNode | undefined;
|
@@ -90,6 +90,7 @@ import {
|
|
90
90
|
type PureModel,
|
91
91
|
createGraphBuilderReport,
|
92
92
|
ExecutionEnvironmentInstance,
|
93
|
+
type FunctionActivatorConfiguration,
|
93
94
|
} from '@finos/legend-graph';
|
94
95
|
import { CONFIGURATION_EDITOR_TAB } from './editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js';
|
95
96
|
import { PACKAGEABLE_ELEMENT_TYPE } from './utils/ModelClassifierUtils.js';
|
@@ -128,6 +129,8 @@ export class EditorGraphState {
|
|
128
129
|
isUpdatingGraph = false; // critical synchronous update to refresh the graph
|
129
130
|
isUpdatingApplication = false; // including graph update and async operations such as change detection
|
130
131
|
|
132
|
+
functionActivatorConfigurations: FunctionActivatorConfiguration[] = [];
|
133
|
+
|
131
134
|
warnings: CompilationWarning[] = [];
|
132
135
|
error: EngineError | undefined;
|
133
136
|
compilationResultEntities: Entity[] = [];
|
@@ -144,6 +147,9 @@ export class EditorGraphState {
|
|
144
147
|
isApplicationLeavingGraphEditMode: observable,
|
145
148
|
isUpdatingGraph: observable,
|
146
149
|
isUpdatingApplication: observable,
|
150
|
+
|
151
|
+
functionActivatorConfigurations: observable,
|
152
|
+
|
147
153
|
mostRecentCompilationGraphHash: observable,
|
148
154
|
mostRecentCompilationOutcome: observable,
|
149
155
|
warnings: observable,
|
@@ -155,6 +161,7 @@ export class EditorGraphState {
|
|
155
161
|
clearProblems: action,
|
156
162
|
setEnableStrictMode: action,
|
157
163
|
setMostRecentCompilationGraphHash: action,
|
164
|
+
fetchAvailableFunctionActivatorConfigurations: flow,
|
158
165
|
buildGraph: flow,
|
159
166
|
loadEntityChangesToGraph: flow,
|
160
167
|
updateGenerationGraphAndApplication: flow,
|
@@ -269,6 +276,23 @@ export class EditorGraphState {
|
|
269
276
|
this.enableStrictMode = val;
|
270
277
|
}
|
271
278
|
|
279
|
+
*fetchAvailableFunctionActivatorConfigurations(): GeneratorFn<void> {
|
280
|
+
try {
|
281
|
+
this.functionActivatorConfigurations =
|
282
|
+
(yield this.editorStore.graphManagerState.graphManager.getAvailableFunctionActivatorConfigurations(
|
283
|
+
this.editorStore.graphManagerState.coreModel,
|
284
|
+
this.editorStore.graphManagerState.systemModel,
|
285
|
+
)) as FunctionActivatorConfiguration[];
|
286
|
+
} catch (error) {
|
287
|
+
assertErrorThrown(error);
|
288
|
+
this.editorStore.applicationStore.logService.error(
|
289
|
+
LogEvent.create(LEGEND_STUDIO_APP_EVENT.GENERIC_FAILURE),
|
290
|
+
error,
|
291
|
+
);
|
292
|
+
this.editorStore.applicationStore.notificationService.notifyError(error);
|
293
|
+
}
|
294
|
+
}
|
295
|
+
|
272
296
|
*buildGraph(entities: Entity[]): GeneratorFn<GraphBuilderResult> {
|
273
297
|
try {
|
274
298
|
this.isInitializingGraph = true;
|
@@ -128,14 +128,18 @@ export class EditorStore implements CommandRegistrar {
|
|
128
128
|
mode = EDITOR_MODE.STANDARD;
|
129
129
|
|
130
130
|
editorExtensionStates: EditorExtensionState[] = [];
|
131
|
-
|
131
|
+
|
132
|
+
// SDLC
|
132
133
|
sdlcState: EditorSDLCState;
|
134
|
+
changeDetectionState: ChangeDetectionState;
|
135
|
+
|
136
|
+
// TODO: make EditorGraphState extend GraphMangerState and merge the state together for Studio
|
133
137
|
graphState: EditorGraphState;
|
134
138
|
graphManagerState: GraphManagerState;
|
135
139
|
graphEditorMode: GraphEditorMode;
|
136
|
-
|
137
|
-
|
138
|
-
|
140
|
+
|
141
|
+
// sidebar and panel
|
142
|
+
explorerTreeState: ExplorerTreeState;
|
139
143
|
projectOverviewState: ProjectOverviewState;
|
140
144
|
workspaceWorkflowManagerState: WorkspaceWorkflowManagerState;
|
141
145
|
globalTestRunnerState: GlobalTestRunnerState;
|
@@ -143,10 +147,13 @@ export class EditorStore implements CommandRegistrar {
|
|
143
147
|
workspaceReviewState: WorkspaceReviewState;
|
144
148
|
localChangesState: LocalChangesState;
|
145
149
|
conflictResolutionState: WorkspaceUpdateConflictResolutionState;
|
150
|
+
globalBulkServiceRegistrationState: GlobalBulkServiceRegistrationState;
|
146
151
|
devToolState: DevToolPanelState;
|
152
|
+
|
153
|
+
modelImporterState: ModelImporterState;
|
154
|
+
projectConfigurationEditorState: ProjectConfigurationEditorState;
|
147
155
|
embeddedQueryBuilderState: EmbeddedQueryBuilderState;
|
148
156
|
newElementState: NewElementState;
|
149
|
-
globalBulkServiceRegistrationState: GlobalBulkServiceRegistrationState;
|
150
157
|
/**
|
151
158
|
* Since we want to share element generation state across all element in the editor, we will create 1 element generate state
|
152
159
|
* per file generation configuration type.
|
@@ -688,7 +695,8 @@ export class EditorStore implements CommandRegistrar {
|
|
688
695
|
this.workspaceUpdaterState.fetchLatestCommittedReviews(),
|
689
696
|
this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
|
690
697
|
this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
|
691
|
-
this.graphState.graphGenerationState.externalFormatState.
|
698
|
+
this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
|
699
|
+
this.graphState.fetchAvailableFunctionActivatorConfigurations(),
|
692
700
|
this.sdlcState.fetchProjectVersions(),
|
693
701
|
this.sdlcState.fetchPublishedProjectVersions(),
|
694
702
|
]);
|
@@ -728,7 +736,8 @@ export class EditorStore implements CommandRegistrar {
|
|
728
736
|
this.sdlcState.checkIfWorkspaceIsOutdated(),
|
729
737
|
this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
|
730
738
|
this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
|
731
|
-
this.graphState.graphGenerationState.externalFormatState.
|
739
|
+
this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
|
740
|
+
this.graphState.fetchAvailableFunctionActivatorConfigurations(),
|
732
741
|
this.sdlcState.fetchProjectVersions(),
|
733
742
|
this.sdlcState.fetchPublishedProjectVersions(),
|
734
743
|
]);
|
@@ -32,6 +32,7 @@ import {
|
|
32
32
|
Profile,
|
33
33
|
Service,
|
34
34
|
type PackageableElement,
|
35
|
+
INTERNAL__UnknownFunctionActivator,
|
35
36
|
} from '@finos/legend-graph';
|
36
37
|
import {
|
37
38
|
type Clazz,
|
@@ -57,6 +58,7 @@ import { UnsupportedElementEditorState } from './editor-state/UnsupportedElement
|
|
57
58
|
import type { EditorStore } from './EditorStore.js';
|
58
59
|
import type { DSL_LegendStudioApplicationPlugin_Extension } from '../LegendStudioApplicationPlugin.js';
|
59
60
|
import { TabManagerState } from '@finos/legend-lego/application';
|
61
|
+
import { INTERNAL__UnknownFunctionActivatorEdtiorState } from './editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js';
|
60
62
|
|
61
63
|
export class EditorTabManagerState extends TabManagerState {
|
62
64
|
readonly editorStore: EditorStore;
|
@@ -124,6 +126,11 @@ export class EditorTabManagerState extends TabManagerState {
|
|
124
126
|
return new FileGenerationEditorState(this.editorStore, element);
|
125
127
|
} else if (element instanceof DataElement) {
|
126
128
|
return new PackageableDataEditorState(this.editorStore, element);
|
129
|
+
} else if (element instanceof INTERNAL__UnknownFunctionActivator) {
|
130
|
+
return new INTERNAL__UnknownFunctionActivatorEdtiorState(
|
131
|
+
this.editorStore,
|
132
|
+
element,
|
133
|
+
);
|
127
134
|
}
|
128
135
|
const extraElementEditorStateCreators = this.editorStore.pluginManager
|
129
136
|
.getApplicationPlugins()
|
@@ -41,60 +41,58 @@ export enum EmbeddedDataType {
|
|
41
41
|
export class ExternalFormatState {
|
42
42
|
fetchingDescriptionsState = ActionState.create();
|
43
43
|
editorStore: EditorStore;
|
44
|
-
|
44
|
+
externalFormatDescriptions: ExternalFormatDescription[] = [];
|
45
45
|
schemaGenerationStates: ElementXTSchemaGenerationState[] = [];
|
46
46
|
|
47
47
|
constructor(editorStore: EditorStore) {
|
48
48
|
makeObservable<ExternalFormatState>(this, {
|
49
|
-
|
49
|
+
externalFormatDescriptions: observable,
|
50
50
|
schemaGenerationStates: observable,
|
51
|
-
|
52
|
-
|
51
|
+
setExternalFormatDescriptions: action,
|
52
|
+
fetchExternalFormatDescriptions: flow,
|
53
53
|
});
|
54
54
|
|
55
55
|
this.editorStore = editorStore;
|
56
56
|
}
|
57
57
|
|
58
58
|
get formatTypes(): string[] {
|
59
|
-
return this.
|
59
|
+
return this.externalFormatDescriptions.map((e) => e.name);
|
60
60
|
}
|
61
61
|
|
62
62
|
get formatTypeOptions(): ExternalFormatTypeOption[] {
|
63
|
-
return this.
|
63
|
+
return this.externalFormatDescriptions.map((types) => ({
|
64
64
|
value: types.name,
|
65
65
|
label: types.name,
|
66
66
|
}));
|
67
67
|
}
|
68
68
|
|
69
69
|
get formatContentTypes(): string[] {
|
70
|
-
return this.
|
70
|
+
return this.externalFormatDescriptions.map((e) => e.contentTypes).flat();
|
71
71
|
}
|
72
72
|
|
73
73
|
get externalFormatDescriptionsWithModelGenerationSupport(): ExternalFormatDescription[] {
|
74
|
-
return this.
|
74
|
+
return this.externalFormatDescriptions.filter(
|
75
75
|
(d) => d.supportsModelGeneration,
|
76
76
|
);
|
77
77
|
}
|
78
78
|
|
79
79
|
getFormatTypeForContentType(contentType: string): string | undefined {
|
80
|
-
return this.
|
80
|
+
return this.externalFormatDescriptions.find(
|
81
81
|
(externalFormatDescription) =>
|
82
82
|
externalFormatDescription.contentTypes[0] === contentType,
|
83
83
|
)?.name;
|
84
84
|
}
|
85
85
|
|
86
|
-
|
87
|
-
|
88
|
-
): void {
|
89
|
-
this.externalFormatsDescriptions = externalFormatsDescriptions;
|
86
|
+
setExternalFormatDescriptions(val: ExternalFormatDescription[]): void {
|
87
|
+
this.externalFormatDescriptions = val;
|
90
88
|
}
|
91
89
|
|
92
|
-
*
|
90
|
+
*fetchExternalFormatDescriptions(): GeneratorFn<void> {
|
93
91
|
try {
|
94
92
|
this.fetchingDescriptionsState.inProgress();
|
95
93
|
const externalFormatDescriptions =
|
96
94
|
(yield this.editorStore.graphManagerState.graphManager.getAvailableExternalFormatsDescriptions()) as ExternalFormatDescription[];
|
97
|
-
this.
|
95
|
+
this.setExternalFormatDescriptions(externalFormatDescriptions);
|
98
96
|
this.schemaGenerationStates = externalFormatDescriptions
|
99
97
|
.filter((s) => s.supportsSchemaGeneration)
|
100
98
|
.map(
|
@@ -114,6 +112,6 @@ export class ExternalFormatState {
|
|
114
112
|
}
|
115
113
|
|
116
114
|
getTypeDescription(type: string): ExternalFormatDescription | undefined {
|
117
|
-
return this.
|
115
|
+
return this.externalFormatDescriptions.find((e) => e.name === type);
|
118
116
|
}
|
119
117
|
}
|
@@ -78,10 +78,11 @@ export type FileGenerationTypeOption = {
|
|
78
78
|
};
|
79
79
|
|
80
80
|
export class GraphGenerationState {
|
81
|
-
editorStore: EditorStore;
|
81
|
+
readonly editorStore: EditorStore;
|
82
|
+
readonly clearingGenerationEntitiesState = ActionState.create();
|
83
|
+
|
82
84
|
isRunningGlobalGenerate = false;
|
83
85
|
generatedEntities = new Map<string, Entity[]>();
|
84
|
-
clearingGenerationEntitiesState = ActionState.create();
|
85
86
|
externalFormatState: ExternalFormatState;
|
86
87
|
// NOTE: this will eventually be removed once we also do model/schema import using external format
|
87
88
|
// See https://github.com/finos/legend-studio/issues/866
|