@finos/legend-application-studio 26.1.9 → 26.1.11
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 +4 -0
- package/lib/application/LegendStudioApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendStudioApplicationConfig.js +4 -0
- package/lib/application/LegendStudioApplicationConfig.js.map +1 -1
- package/lib/components/editor/QuickInput.d.ts.map +1 -1
- package/lib/components/editor/QuickInput.js +4 -2
- package/lib/components/editor/QuickInput.js.map +1 -1
- package/lib/components/editor/StatusBar.d.ts.map +1 -1
- package/lib/components/editor/StatusBar.js +1 -4
- package/lib/components/editor/StatusBar.js.map +1 -1
- package/lib/components/editor/editor-group/{FileGenerationViewer.d.ts → ArtifactGenerationViewer.d.ts} +2 -2
- package/lib/components/editor/editor-group/ArtifactGenerationViewer.d.ts.map +1 -0
- package/lib/components/editor/editor-group/ArtifactGenerationViewer.js +32 -0
- package/lib/components/editor/editor-group/ArtifactGenerationViewer.js.map +1 -0
- package/lib/components/editor/editor-group/EditorGroup.js +6 -6
- package/lib/components/editor/editor-group/EditorGroup.js.map +1 -1
- package/lib/components/editor/editor-group/FunctionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/FunctionEditor.js +13 -6
- package/lib/components/editor/editor-group/FunctionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/DataElementEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/DataElementEditor.js +1 -1
- package/lib/components/editor/editor-group/data-editor/DataElementEditor.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.js +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.d.ts.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.js +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileSystemViewer.js.map +1 -1
- package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +1 -1
- package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js +6 -10
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js +13 -12
- package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingExplorer.js +2 -2
- package/lib/components/editor/editor-group/mapping-editor/MappingExplorer.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js +3 -7
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js +10 -14
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
- package/lib/components/editor/panel-group/DevToolPanel.d.ts.map +1 -1
- package/lib/components/editor/panel-group/DevToolPanel.js +4 -1
- package/lib/components/editor/panel-group/DevToolPanel.js.map +1 -1
- package/lib/components/editor/panel-group/SQLPlaygroundPanel.d.ts.map +1 -1
- package/lib/components/editor/panel-group/SQLPlaygroundPanel.js +1 -1
- package/lib/components/editor/panel-group/SQLPlaygroundPanel.js.map +1 -1
- package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
- package/lib/components/editor/side-bar/CreateNewElementModal.js +1 -1
- package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
- package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
- package/lib/components/editor/side-bar/Explorer.js +37 -5
- package/lib/components/editor/side-bar/Explorer.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +4 -4
- package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
- package/lib/stores/editor/EditorGraphState.js +7 -6
- package/lib/stores/editor/EditorGraphState.js.map +1 -1
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +4 -2
- package/lib/stores/editor/EditorStore.js.map +1 -1
- package/lib/stores/editor/ExplorerTreeState.d.ts +3 -3
- package/lib/stores/editor/ExplorerTreeState.d.ts.map +1 -1
- package/lib/stores/editor/ExplorerTreeState.js +10 -10
- package/lib/stores/editor/ExplorerTreeState.js.map +1 -1
- package/lib/stores/editor/NewElementState.d.ts +3 -3
- package/lib/stores/editor/NewElementState.d.ts.map +1 -1
- package/lib/stores/editor/NewElementState.js +2 -2
- package/lib/stores/editor/NewElementState.js.map +1 -1
- package/lib/stores/editor/QuickInputState.d.ts +3 -0
- package/lib/stores/editor/QuickInputState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/{FileGenerationViewerState.d.ts → ArtifactGenerationViewerState.d.ts} +4 -4
- package/lib/stores/editor/editor-state/ArtifactGenerationViewerState.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/{FileGenerationViewerState.js → ArtifactGenerationViewerState.js} +10 -9
- package/lib/stores/editor/editor-state/ArtifactGenerationViewerState.js.map +1 -0
- package/lib/stores/editor/editor-state/FileGenerationState.js +1 -1
- package/lib/stores/editor/editor-state/FileGenerationState.js.map +1 -1
- package/lib/stores/editor/editor-state/GraphGenerationState.d.ts +32 -19
- package/lib/stores/editor/editor-state/GraphGenerationState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/GraphGenerationState.js +173 -113
- package/lib/stores/editor/editor-state/GraphGenerationState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ElementEditorState.js +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.d.ts +1 -0
- 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 +14 -7
- package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts +2 -2
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js +48 -48
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts +4 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js +37 -12
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js +2 -2
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.js +1 -1
- package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
- package/package.json +14 -14
- package/src/application/LegendStudioApplicationConfig.ts +5 -0
- package/src/components/editor/QuickInput.tsx +5 -1
- package/src/components/editor/StatusBar.tsx +1 -4
- package/src/components/editor/editor-group/{FileGenerationViewer.tsx → ArtifactGenerationViewer.tsx} +28 -25
- package/src/components/editor/editor-group/EditorGroup.tsx +6 -6
- package/src/components/editor/editor-group/FunctionEditor.tsx +67 -55
- package/src/components/editor/editor-group/data-editor/DataElementEditor.tsx +1 -1
- package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +1 -1
- package/src/components/editor/editor-group/data-editor/RelationalCSVDataEditor.tsx +1 -0
- package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +1 -1
- package/src/components/editor/editor-group/element-generation-editor/FileSystemViewer.tsx +4 -4
- package/src/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +1 -1
- package/src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx +63 -69
- package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +1 -1
- package/src/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.tsx +69 -48
- package/src/components/editor/editor-group/mapping-editor/MappingExplorer.tsx +2 -2
- package/src/components/editor/editor-group/mapping-editor/MappingTestableEditor.tsx +8 -12
- package/src/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.tsx +91 -99
- package/src/components/editor/panel-group/DevToolPanel.tsx +14 -0
- package/src/components/editor/panel-group/SQLPlaygroundPanel.tsx +3 -0
- package/src/components/editor/side-bar/CreateNewElementModal.tsx +3 -5
- package/src/components/editor/side-bar/Explorer.tsx +84 -2
- package/src/stores/editor/EditorGraphState.ts +7 -6
- package/src/stores/editor/EditorStore.ts +5 -2
- package/src/stores/editor/ExplorerTreeState.ts +10 -10
- package/src/stores/editor/NewElementState.ts +5 -5
- package/src/stores/editor/QuickInputState.ts +3 -0
- package/src/stores/editor/editor-state/{FileGenerationViewerState.ts → ArtifactGenerationViewerState.ts} +12 -9
- package/src/stores/editor/editor-state/FileGenerationState.ts +1 -1
- package/src/stores/editor/editor-state/GraphGenerationState.ts +258 -170
- package/src/stores/editor/editor-state/element-editor-state/ElementEditorState.ts +1 -1
- package/src/stores/editor/editor-state/element-editor-state/FunctionEditorState.ts +18 -8
- package/src/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.ts +70 -69
- package/src/stores/editor/editor-state/element-editor-state/mapping/MappingExecutionState.ts +62 -36
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts +5 -5
- package/src/stores/project-view/ProjectViewerStore.ts +1 -1
- package/tsconfig.json +2 -2
- package/lib/components/editor/editor-group/FileGenerationViewer.d.ts.map +0 -1
- package/lib/components/editor/editor-group/FileGenerationViewer.js +0 -32
- package/lib/components/editor/editor-group/FileGenerationViewer.js.map +0 -1
- package/lib/stores/editor/editor-state/FileGenerationViewerState.d.ts.map +0 -1
- package/lib/stores/editor/editor-state/FileGenerationViewerState.js.map +0 -1
@@ -31,7 +31,6 @@ import {
|
|
31
31
|
ModalBody,
|
32
32
|
ModalFooter,
|
33
33
|
ModalHeader,
|
34
|
-
MoreVerticalIcon,
|
35
34
|
} from '@finos/legend-art';
|
36
35
|
import { assertErrorThrown } from '@finos/legend-shared';
|
37
36
|
import { flowResult } from 'mobx';
|
@@ -287,24 +286,24 @@ export const ServiceExecutionQueryEditor = observer(
|
|
287
286
|
</div>
|
288
287
|
</div>
|
289
288
|
<div className="panel__header__actions">
|
290
|
-
<div className="
|
289
|
+
<div className="btn__dropdown-combo btn__dropdown-combo--primary">
|
291
290
|
<button
|
292
|
-
className="
|
291
|
+
className="btn__dropdown-combo__label"
|
293
292
|
onClick={editWithQueryBuilder()}
|
294
293
|
title="Edit Query"
|
295
294
|
tabIndex={-1}
|
296
295
|
>
|
297
|
-
<PencilIcon className="
|
298
|
-
<div className="
|
296
|
+
<PencilIcon className="btn__dropdown-combo__label__icon" />
|
297
|
+
<div className="btn__dropdown-combo__label__title">
|
299
298
|
Edit Query
|
300
299
|
</div>
|
301
300
|
</button>
|
302
301
|
<DropdownMenu
|
303
|
-
className="
|
302
|
+
className="btn__dropdown-combo__dropdown-btn"
|
304
303
|
content={
|
305
304
|
<MenuContent>
|
306
305
|
<MenuContentItem
|
307
|
-
className="
|
306
|
+
className="btn__dropdown-combo__option"
|
308
307
|
onClick={editWithQueryBuilder(true)}
|
309
308
|
>
|
310
309
|
Text Mode
|
@@ -319,96 +318,97 @@ export const ServiceExecutionQueryEditor = observer(
|
|
319
318
|
<CaretDownIcon />
|
320
319
|
</DropdownMenu>
|
321
320
|
</div>
|
322
|
-
|
323
|
-
|
324
|
-
className="service-editor__execution__stop-btn"
|
325
|
-
onClick={cancelQuery}
|
326
|
-
tabIndex={-1}
|
327
|
-
>
|
328
|
-
<div className="btn--dark btn--caution service-editor__execution__stop-btn__label">
|
329
|
-
<PauseCircleIcon className="service-editor__execution__stop-btn__label__icon" />
|
330
|
-
<div className="service-editor__execution__stop-btn__label__title">
|
331
|
-
Stop
|
332
|
-
</div>
|
333
|
-
</div>
|
334
|
-
</button>
|
335
|
-
) : (
|
336
|
-
<div className="service-editor__execution__action-btn">
|
321
|
+
<div className="btn__dropdown-combo btn__dropdown-combo--primary">
|
322
|
+
{executionState.isRunningQuery ? (
|
337
323
|
<button
|
338
|
-
className="
|
339
|
-
onClick={
|
340
|
-
title="Run Query"
|
341
|
-
disabled={executionIsRunning}
|
324
|
+
className="btn__dropdown-combo__canceler"
|
325
|
+
onClick={cancelQuery}
|
342
326
|
tabIndex={-1}
|
343
327
|
>
|
344
|
-
<
|
345
|
-
|
346
|
-
|
328
|
+
<div className="btn--dark btn--caution btn__dropdown-combo__canceler__label">
|
329
|
+
<PauseCircleIcon className="btn__dropdown-combo__canceler__label__icon" />
|
330
|
+
<div className="btn__dropdown-combo__canceler__label__title">
|
331
|
+
Stop
|
332
|
+
</div>
|
347
333
|
</div>
|
348
334
|
</button>
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
335
|
+
) : (
|
336
|
+
<>
|
337
|
+
<button
|
338
|
+
className="btn__dropdown-combo__label"
|
339
|
+
onClick={runQuery}
|
340
|
+
title="Run Query"
|
341
|
+
disabled={executionIsRunning}
|
342
|
+
tabIndex={-1}
|
343
|
+
>
|
344
|
+
<PlayIcon className="btn__dropdown-combo__label__icon" />
|
345
|
+
<div className="btn__dropdown-combo__label__title">
|
346
|
+
Run Query
|
347
|
+
</div>
|
348
|
+
</button>
|
349
|
+
<DropdownMenu
|
350
|
+
className="btn__dropdown-combo__dropdown-btn"
|
351
|
+
disabled={executionIsRunning}
|
352
|
+
content={
|
353
|
+
<MenuContent>
|
354
|
+
<MenuContentItem
|
355
|
+
className="btn__dropdown-combo__option"
|
356
|
+
onClick={generatePlan}
|
357
|
+
>
|
358
|
+
Generate Plan
|
359
|
+
</MenuContentItem>
|
360
|
+
<MenuContentItem
|
361
|
+
className="btn__dropdown-combo__option"
|
362
|
+
onClick={debugPlanGeneration}
|
363
|
+
>
|
364
|
+
Debug
|
365
|
+
</MenuContentItem>
|
366
|
+
</MenuContent>
|
367
|
+
}
|
368
|
+
menuProps={{
|
369
|
+
anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
|
370
|
+
transformOrigin: { vertical: 'top', horizontal: 'right' },
|
371
|
+
}}
|
372
|
+
>
|
373
|
+
<CaretDownIcon />
|
374
|
+
</DropdownMenu>
|
375
|
+
</>
|
376
|
+
)}
|
377
|
+
</div>
|
378
|
+
<DropdownMenu
|
379
|
+
className="btn__dropdown-combo"
|
380
|
+
disabled={executionIsRunning}
|
381
|
+
content={
|
382
|
+
<MenuContent>
|
383
|
+
<MenuContentItem
|
384
|
+
className="btn__dropdown-combo__option"
|
385
|
+
onClick={importQuery}
|
386
|
+
>
|
387
|
+
Import Query
|
388
|
+
</MenuContentItem>
|
389
|
+
<MenuContentItem
|
390
|
+
className="btn__dropdown-combo__option"
|
391
|
+
onClick={openQueryInLegendQuery}
|
392
|
+
disabled={!applicationStore.config.queryApplicationUrl}
|
393
|
+
>
|
394
|
+
Create an Ad-hoc Query
|
395
|
+
</MenuContentItem>
|
396
|
+
</MenuContent>
|
397
|
+
}
|
398
|
+
menuProps={{
|
399
|
+
anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
|
400
|
+
transformOrigin: { vertical: 'top', horizontal: 'right' },
|
401
|
+
}}
|
402
|
+
>
|
403
|
+
<div className="btn__dropdown-combo__label">
|
404
|
+
<div className="btn__dropdown-combo__label__title">
|
405
405
|
Advanced
|
406
406
|
</div>
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
</
|
411
|
-
</
|
407
|
+
</div>
|
408
|
+
<div className="btn__dropdown-combo__dropdown-btn">
|
409
|
+
<CaretDownIcon />
|
410
|
+
</div>
|
411
|
+
</DropdownMenu>
|
412
412
|
</div>
|
413
413
|
</div>
|
414
414
|
<div className="panel__content property-mapping-editor__entry__container">
|
@@ -417,15 +417,7 @@ export const ServiceExecutionQueryEditor = observer(
|
|
417
417
|
executionState.isOpeningQueryEditor || executionIsRunning
|
418
418
|
}
|
419
419
|
/>
|
420
|
-
<div
|
421
|
-
className="service-execution-query-editor__content"
|
422
|
-
title="Double click to edit in query builder"
|
423
|
-
onDoubleClick={(event) => {
|
424
|
-
event.preventDefault();
|
425
|
-
event.stopPropagation();
|
426
|
-
editWithQueryBuilder()();
|
427
|
-
}}
|
428
|
-
>
|
420
|
+
<div className="service-execution-query-editor__content">
|
429
421
|
<CodeEditor
|
430
422
|
inputValue={queryState.lambdaString}
|
431
423
|
isReadOnly={true}
|
@@ -52,6 +52,11 @@ export const DevToolPanel = observer(() => {
|
|
52
52
|
editorStore.graphState.enableStrictMode,
|
53
53
|
);
|
54
54
|
};
|
55
|
+
const toggleArtifactGeneration = (): void => {
|
56
|
+
editorStore.graphState.graphGenerationState.setEnableArtifactGeneration(
|
57
|
+
!editorStore.graphState.graphGenerationState.enableArtifactGeneration,
|
58
|
+
);
|
59
|
+
};
|
55
60
|
|
56
61
|
return (
|
57
62
|
<Panel>
|
@@ -116,6 +121,15 @@ export const DevToolPanel = observer(() => {
|
|
116
121
|
isReadOnly={false}
|
117
122
|
update={toggleStrictMode}
|
118
123
|
/>
|
124
|
+
<PanelFormBooleanField
|
125
|
+
name="Generate Artifact Generations"
|
126
|
+
prompt="Include generation of artifacet extensions during generation action (F10)"
|
127
|
+
value={
|
128
|
+
editorStore.graphState.graphGenerationState.enableArtifactGeneration
|
129
|
+
}
|
130
|
+
isReadOnly={false}
|
131
|
+
update={toggleArtifactGeneration}
|
132
|
+
/>
|
119
133
|
</PanelForm>
|
120
134
|
</Panel>
|
121
135
|
);
|
@@ -248,6 +248,9 @@ const buildRelationalDatabaseConnectionOption = (
|
|
248
248
|
<div className="sql-playground__config__connection-selector__option__type">
|
249
249
|
{connectionValue.type}
|
250
250
|
</div>
|
251
|
+
<div className="sql-playground__config__connection-selector__option__path">
|
252
|
+
{connection.path}
|
253
|
+
</div>
|
251
254
|
</div>
|
252
255
|
),
|
253
256
|
};
|
@@ -38,7 +38,6 @@ import {
|
|
38
38
|
type Class,
|
39
39
|
ELEMENT_PATH_DELIMITER,
|
40
40
|
} from '@finos/legend-graph';
|
41
|
-
import type { FileGenerationTypeOption } from '../../../stores/editor/editor-state/GraphGenerationState.js';
|
42
41
|
import { flowResult } from 'mobx';
|
43
42
|
import { useApplicationStore } from '@finos/legend-application';
|
44
43
|
import {
|
@@ -51,6 +50,7 @@ import type { DSL_Data_LegendStudioApplicationPlugin_Extension } from '../../../
|
|
51
50
|
import { PACKAGEABLE_ELEMENT_TYPE } from '../../../stores/editor/utils/ModelClassifierUtils.js';
|
52
51
|
import { EmbeddedDataType } from '../../../stores/editor/editor-state/ExternalFormatState.js';
|
53
52
|
import type { DSL_Mapping_LegendStudioApplicationPlugin_Extension } from '../../../stores/extensions/DSL_Mapping_LegendStudioApplicationPlugin_Extension.js';
|
53
|
+
import type { GenerationTypeOption } from '../../../stores/editor/editor-state/GraphGenerationState.js';
|
54
54
|
|
55
55
|
export const getElementTypeLabel = (
|
56
56
|
editorStore: EditorStore,
|
@@ -379,11 +379,9 @@ const NewFileGenerationDriverEditor = observer(() => {
|
|
379
379
|
NewFileGenerationDriver,
|
380
380
|
);
|
381
381
|
const options =
|
382
|
-
editorStore.graphState.graphGenerationState
|
382
|
+
editorStore.graphState.graphGenerationState.globalFileGenerationState
|
383
383
|
.fileGenerationConfigurationOptions;
|
384
|
-
const onTypeSelectionChange = (
|
385
|
-
val: FileGenerationTypeOption | null,
|
386
|
-
): void => {
|
384
|
+
const onTypeSelectionChange = (val: GenerationTypeOption | null): void => {
|
387
385
|
if (!val) {
|
388
386
|
newConnectionDriver.setTypeOption(undefined);
|
389
387
|
} else {
|
@@ -14,7 +14,13 @@
|
|
14
14
|
* limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import
|
17
|
+
import React, {
|
18
|
+
Fragment,
|
19
|
+
useRef,
|
20
|
+
useEffect,
|
21
|
+
useState,
|
22
|
+
forwardRef,
|
23
|
+
} from 'react';
|
18
24
|
import { observer } from 'mobx-react-lite';
|
19
25
|
import {
|
20
26
|
type TreeNodeContainerProps,
|
@@ -61,6 +67,7 @@ import { LEGEND_STUDIO_TEST_ID } from '../../../__lib__/LegendStudioTesting.js';
|
|
61
67
|
import {
|
62
68
|
ACTIVITY_MODE,
|
63
69
|
GRAPH_EDITOR_MODE,
|
70
|
+
PANEL_MODE,
|
64
71
|
} from '../../../stores/editor/EditorConfig.js';
|
65
72
|
import { getTreeChildNodes } from '../../../stores/editor/utils/PackageTreeUtils.js';
|
66
73
|
import type { PackageTreeNodeData } from '../../../stores/editor/utils/TreeUtils.js';
|
@@ -76,6 +83,7 @@ import {
|
|
76
83
|
import {
|
77
84
|
guaranteeNonEmptyString,
|
78
85
|
guaranteeNonNullable,
|
86
|
+
guaranteeType,
|
79
87
|
isNonNullable,
|
80
88
|
toTitleCase,
|
81
89
|
} from '@finos/legend-shared';
|
@@ -102,6 +110,7 @@ import {
|
|
102
110
|
RelationalDatabaseConnection,
|
103
111
|
guaranteeRelationalDatabaseConnection,
|
104
112
|
extractDependencyGACoordinateFromRootPackageName,
|
113
|
+
type FunctionActivatorConfiguration,
|
105
114
|
} from '@finos/legend-graph';
|
106
115
|
import { useApplicationStore } from '@finos/legend-application';
|
107
116
|
import {
|
@@ -125,6 +134,7 @@ import {
|
|
125
134
|
CodeEditor,
|
126
135
|
} from '@finos/legend-lego/code-editor';
|
127
136
|
import { DatabaseBuilder } from '../editor-group/connection-editor/DatabaseBuilder.js';
|
137
|
+
import { FunctionEditorState } from '../../../stores/editor/editor-state/element-editor-state/FunctionEditorState.js';
|
128
138
|
|
129
139
|
const ElementRenamer = observer(() => {
|
130
140
|
const editorStore = useEditorStore();
|
@@ -513,6 +523,15 @@ const ExplorerContextMenu = observer(
|
|
513
523
|
}
|
514
524
|
},
|
515
525
|
);
|
526
|
+
const openSQLPlayground = (): void => {
|
527
|
+
if (isRelationalDatabaseConnection(node?.packageableElement)) {
|
528
|
+
editorStore.panelGroupDisplayState.open();
|
529
|
+
editorStore.setActivePanelMode(PANEL_MODE.SQL_PLAYGROUND);
|
530
|
+
editorStore.sqlPlaygroundState.setConnection(
|
531
|
+
guaranteeType(node?.packageableElement, PackageableConnection),
|
532
|
+
);
|
533
|
+
}
|
534
|
+
};
|
516
535
|
const removeElement = (): void => {
|
517
536
|
if (node) {
|
518
537
|
flowResult(
|
@@ -663,6 +682,50 @@ const ExplorerContextMenu = observer(
|
|
663
682
|
).catch(applicationStore.alertUnhandledError);
|
664
683
|
}
|
665
684
|
};
|
685
|
+
const activateFunction = (): void => {
|
686
|
+
if (node?.packageableElement instanceof ConcreteFunctionDefinition) {
|
687
|
+
editorStore.setQuickInputState({
|
688
|
+
title: 'Activate function',
|
689
|
+
placeholder: 'Select an activation...',
|
690
|
+
options: editorStore.graphState.functionActivatorConfigurations.map(
|
691
|
+
(config) => ({
|
692
|
+
value: config,
|
693
|
+
label: (
|
694
|
+
<div
|
695
|
+
className="function-editor__activator__selector__option"
|
696
|
+
title={config.description}
|
697
|
+
>
|
698
|
+
<div className="function-editor__activator__selector__option__name">
|
699
|
+
{config.name}
|
700
|
+
</div>
|
701
|
+
<div className="function-editor__activator__selector__option__description">
|
702
|
+
{config.description}
|
703
|
+
</div>
|
704
|
+
</div>
|
705
|
+
),
|
706
|
+
}),
|
707
|
+
),
|
708
|
+
getSearchValue: (option: {
|
709
|
+
value: FunctionActivatorConfiguration;
|
710
|
+
label: React.ReactNode;
|
711
|
+
}): string => option.value.name,
|
712
|
+
onSelect: (option: {
|
713
|
+
value: FunctionActivatorConfiguration;
|
714
|
+
label: React.ReactNode;
|
715
|
+
}) => {
|
716
|
+
editorStore.graphEditorMode.openElement(node.packageableElement);
|
717
|
+
editorStore.tabManagerState
|
718
|
+
.getCurrentEditorState(FunctionEditorState)
|
719
|
+
.activatorBuilderState.setCurrentActivatorConfiguration(
|
720
|
+
option.value,
|
721
|
+
);
|
722
|
+
},
|
723
|
+
customization: {
|
724
|
+
rowHeight: 70,
|
725
|
+
},
|
726
|
+
});
|
727
|
+
}
|
728
|
+
};
|
666
729
|
|
667
730
|
if (isDependencyProjectRoot()) {
|
668
731
|
return (
|
@@ -722,8 +785,27 @@ const ExplorerContextMenu = observer(
|
|
722
785
|
<MenuContentDivider />
|
723
786
|
</>
|
724
787
|
)}
|
788
|
+
{node.packageableElement instanceof ConcreteFunctionDefinition && (
|
789
|
+
<>
|
790
|
+
{editorStore.applicationStore.config.options
|
791
|
+
.TEMPORARY__enableFunctionActivatorSupport && (
|
792
|
+
<>
|
793
|
+
<MenuContentItem onClick={activateFunction}>
|
794
|
+
Activate...
|
795
|
+
</MenuContentItem>
|
796
|
+
<MenuContentDivider />
|
797
|
+
</>
|
798
|
+
)}
|
799
|
+
</>
|
800
|
+
)}
|
725
801
|
{isRelationalDatabaseConnection(node.packageableElement) && (
|
726
802
|
<>
|
803
|
+
{editorStore.applicationStore.config.options
|
804
|
+
.TEMPORARY__enableRawSQLExecutor && (
|
805
|
+
<MenuContentItem onClick={openSQLPlayground}>
|
806
|
+
Execute SQL...
|
807
|
+
</MenuContentItem>
|
808
|
+
)}
|
727
809
|
<MenuContentItem onClick={buildDatabase}>
|
728
810
|
Build Database...
|
729
811
|
</MenuContentItem>
|
@@ -977,7 +1059,7 @@ const ExplorerTrees = observer(() => {
|
|
977
1059
|
|
978
1060
|
// Generated Files Tree
|
979
1061
|
const generationFileTreeData =
|
980
|
-
editorStore.explorerTreeState.
|
1062
|
+
editorStore.explorerTreeState.getArtifactsGenerationTreeData();
|
981
1063
|
const onGenerationFileTreeNodeSelect = (node: FileSystemTreeNodeData): void =>
|
982
1064
|
editorStore.graphState.graphGenerationState.onTreeNodeSelect(
|
983
1065
|
node,
|
@@ -98,6 +98,7 @@ import { LEGEND_STUDIO_APP_EVENT } from '../../__lib__/LegendStudioEvent.js';
|
|
98
98
|
import { LEGEND_STUDIO_SETTING_KEY } from '../../__lib__/LegendStudioSetting.js';
|
99
99
|
import type { TabState } from '@finos/legend-lego/application';
|
100
100
|
import { LegendStudioTelemetryHelper } from '../../__lib__/LegendStudioTelemetryHelper.js';
|
101
|
+
import { ArtifactGenerationViewerState } from './editor-state/ArtifactGenerationViewerState.js';
|
101
102
|
|
102
103
|
export enum GraphBuilderStatus {
|
103
104
|
SUCCEEDED = 'SUCCEEDED',
|
@@ -583,15 +584,15 @@ export class EditorGraphState {
|
|
583
584
|
openedTabEditorPaths.push(state.elementPath);
|
584
585
|
}
|
585
586
|
});
|
587
|
+
const currentTab = this.editorStore.tabManagerState.currentTab;
|
586
588
|
const currentTabState =
|
587
|
-
|
588
|
-
|
589
|
+
currentTab instanceof ElementEditorState ||
|
590
|
+
currentTab instanceof ArtifactGenerationViewerState
|
589
591
|
? undefined
|
590
|
-
:
|
592
|
+
: currentTab;
|
591
593
|
const currentTabElementPath =
|
592
|
-
|
593
|
-
|
594
|
-
? this.editorStore.tabManagerState.currentTab.elementPath
|
594
|
+
currentTab instanceof ElementEditorState
|
595
|
+
? currentTab.elementPath
|
595
596
|
: undefined;
|
596
597
|
this.editorStore.tabManagerState.closeAllTabs();
|
597
598
|
|
@@ -671,6 +671,9 @@ export class EditorStore implements CommandRegistrar {
|
|
671
671
|
},
|
672
672
|
{
|
673
673
|
tracerService: this.applicationStore.tracerService,
|
674
|
+
TEMPORARY__enableNewServiceRegistrationInputCollectorMechanism:
|
675
|
+
this.applicationStore.config.options
|
676
|
+
.TEMPORARY__enableNewServiceRegistrationInputCollectorMechanism,
|
674
677
|
},
|
675
678
|
),
|
676
679
|
]);
|
@@ -716,7 +719,7 @@ export class EditorStore implements CommandRegistrar {
|
|
716
719
|
this.workspaceReviewState.fetchCurrentWorkspaceReview(),
|
717
720
|
this.workspaceUpdaterState.fetchLatestCommittedReviews(),
|
718
721
|
this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
|
719
|
-
this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
|
722
|
+
this.graphState.graphGenerationState.globalFileGenerationState.fetchAvailableFileGenerationDescriptions(),
|
720
723
|
this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
|
721
724
|
this.graphState.fetchAvailableFunctionActivatorConfigurations(),
|
722
725
|
this.sdlcState.fetchProjectVersions(),
|
@@ -757,7 +760,7 @@ export class EditorStore implements CommandRegistrar {
|
|
757
760
|
this.conflictResolutionState.initialize(),
|
758
761
|
this.sdlcState.checkIfWorkspaceIsOutdated(),
|
759
762
|
this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
|
760
|
-
this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
|
763
|
+
this.graphState.graphGenerationState.globalFileGenerationState.fetchAvailableFileGenerationDescriptions(),
|
761
764
|
this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
|
762
765
|
this.graphState.fetchAvailableFunctionActivatorConfigurations(),
|
763
766
|
this.sdlcState.fetchProjectVersions(),
|
@@ -71,7 +71,7 @@ export class ExplorerTreeState {
|
|
71
71
|
legalTreeData?: TreeData<PackageTreeNodeData> | undefined;
|
72
72
|
dependencyTreeData?: TreeData<PackageTreeNodeData> | undefined;
|
73
73
|
selectedNode?: PackageTreeNodeData | undefined;
|
74
|
-
|
74
|
+
artifactsGenerationTreeData?: TreeData<FileSystemTreeNodeData> | undefined;
|
75
75
|
|
76
76
|
elementToRename?: PackageableElement | undefined;
|
77
77
|
classToGenerateSampleData?: Class | undefined;
|
@@ -84,7 +84,7 @@ export class ExplorerTreeState {
|
|
84
84
|
systemTreeData: observable.ref,
|
85
85
|
legalTreeData: observable.ref,
|
86
86
|
dependencyTreeData: observable.ref,
|
87
|
-
|
87
|
+
artifactsGenerationTreeData: observable.ref,
|
88
88
|
selectedNode: observable.ref,
|
89
89
|
elementToRename: observable,
|
90
90
|
classToGenerateSampleData: observable,
|
@@ -94,7 +94,7 @@ export class ExplorerTreeState {
|
|
94
94
|
setSystemTreeData: action,
|
95
95
|
setLegalTreeData: action,
|
96
96
|
setDependencyTreeData: action,
|
97
|
-
|
97
|
+
setArtifactsGenerationTreeData: action,
|
98
98
|
setSelectedNode: action,
|
99
99
|
setElementToRename: action,
|
100
100
|
setClassToGenerateSampleData: action,
|
@@ -166,8 +166,8 @@ export class ExplorerTreeState {
|
|
166
166
|
setDependencyTreeData(data: TreeData<PackageTreeNodeData>): void {
|
167
167
|
this.dependencyTreeData = data;
|
168
168
|
}
|
169
|
-
|
170
|
-
this.
|
169
|
+
setArtifactsGenerationTreeData(data: TreeData<FileSystemTreeNodeData>): void {
|
170
|
+
this.artifactsGenerationTreeData = data;
|
171
171
|
}
|
172
172
|
setElementToRename(val: PackageableElement | undefined): void {
|
173
173
|
this.elementToRename = val;
|
@@ -214,7 +214,7 @@ export class ExplorerTreeState {
|
|
214
214
|
this.editorStore.graphManagerState.graph.generationModel.root,
|
215
215
|
ExplorerTreeRootPackageLabel.MODEL_GENERATION,
|
216
216
|
);
|
217
|
-
this.
|
217
|
+
this.artifactsGenerationTreeData = getFileSystemTreeData(
|
218
218
|
this.editorStore.graphState.graphGenerationState.rootFileDirectory,
|
219
219
|
ExplorerTreeRootPackageLabel.FILE_GENERATION,
|
220
220
|
);
|
@@ -248,7 +248,7 @@ export class ExplorerTreeState {
|
|
248
248
|
this.editorStore.graphManagerState.graph.generationModel.root,
|
249
249
|
ExplorerTreeRootPackageLabel.MODEL_GENERATION,
|
250
250
|
);
|
251
|
-
this.
|
251
|
+
this.artifactsGenerationTreeData = getFileSystemTreeData(
|
252
252
|
this.editorStore.graphState.graphGenerationState.rootFileDirectory,
|
253
253
|
ExplorerTreeRootPackageLabel.FILE_GENERATION,
|
254
254
|
);
|
@@ -438,7 +438,7 @@ export class ExplorerTreeState {
|
|
438
438
|
}
|
439
439
|
// File generation tree
|
440
440
|
// TODO: fix this so it does proper reprocessing, right now it just rebuilds
|
441
|
-
this.
|
441
|
+
this.artifactsGenerationTreeData = getFileSystemTreeData(
|
442
442
|
this.editorStore.graphState.graphGenerationState.rootFileDirectory,
|
443
443
|
ExplorerTreeRootPackageLabel.FILE_GENERATION,
|
444
444
|
);
|
@@ -558,9 +558,9 @@ export class ExplorerTreeState {
|
|
558
558
|
}
|
559
559
|
}
|
560
560
|
|
561
|
-
|
561
|
+
getArtifactsGenerationTreeData(): TreeData<FileSystemTreeNodeData> {
|
562
562
|
return guaranteeNonNullable(
|
563
|
-
this.
|
563
|
+
this.artifactsGenerationTreeData,
|
564
564
|
'File generation tree data has not been initialized',
|
565
565
|
);
|
566
566
|
}
|
@@ -34,7 +34,7 @@ import {
|
|
34
34
|
import { decorateRuntimeWithNewMapping } from './editor-state/element-editor-state/RuntimeEditorState.js';
|
35
35
|
import type { DSL_LegendStudioApplicationPlugin_Extension } from '../LegendStudioApplicationPlugin.js';
|
36
36
|
import {
|
37
|
-
type
|
37
|
+
type GenerationTypeOption,
|
38
38
|
DEFAULT_GENERATION_SPECIFICATION_NAME,
|
39
39
|
} from './editor-state/GraphGenerationState.js';
|
40
40
|
import {
|
@@ -523,7 +523,7 @@ export class NewServiceDriver extends NewElementDriver<Service> {
|
|
523
523
|
}
|
524
524
|
|
525
525
|
export class NewFileGenerationDriver extends NewElementDriver<FileGenerationSpecification> {
|
526
|
-
typeOption?:
|
526
|
+
typeOption?: GenerationTypeOption | undefined;
|
527
527
|
|
528
528
|
constructor(editorStore: EditorStore) {
|
529
529
|
super(editorStore);
|
@@ -534,13 +534,13 @@ export class NewFileGenerationDriver extends NewElementDriver<FileGenerationSpec
|
|
534
534
|
});
|
535
535
|
|
536
536
|
this.typeOption = editorStore.graphState.graphGenerationState
|
537
|
-
.fileGenerationConfigurationOptions.length
|
538
|
-
? editorStore.graphState.graphGenerationState
|
537
|
+
.globalFileGenerationState.fileGenerationConfigurationOptions.length
|
538
|
+
? editorStore.graphState.graphGenerationState.globalFileGenerationState
|
539
539
|
.fileGenerationConfigurationOptions[0]
|
540
540
|
: undefined;
|
541
541
|
}
|
542
542
|
|
543
|
-
setTypeOption(typeOption:
|
543
|
+
setTypeOption(typeOption: GenerationTypeOption | undefined): void {
|
544
544
|
this.typeOption = typeOption;
|
545
545
|
}
|
546
546
|
|