@finos/legend-application-studio 26.1.10 → 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/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/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/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/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/Explorer.d.ts.map +1 -1
- package/lib/components/editor/side-bar/Explorer.js +36 -4
- 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 +2 -2
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +2 -0
- package/lib/stores/editor/EditorStore.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/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/package.json +12 -12
- package/src/application/LegendStudioApplicationConfig.ts +5 -0
- package/src/components/editor/QuickInput.tsx +5 -1
- package/src/components/editor/editor-group/FunctionEditor.tsx +67 -55
- package/src/components/editor/editor-group/data-editor/RelationalCSVDataEditor.tsx +1 -0
- 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/SQLPlaygroundPanel.tsx +3 -0
- package/src/components/editor/side-bar/Explorer.tsx +83 -1
- package/src/stores/editor/EditorStore.ts +3 -0
- package/src/stores/editor/QuickInputState.ts +3 -0
- 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/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@finos/legend-application-studio",
|
3
|
-
"version": "26.1.
|
3
|
+
"version": "26.1.11",
|
4
4
|
"description": "Legend Studio application core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -45,15 +45,15 @@
|
|
45
45
|
"test:watch": "jest --watch"
|
46
46
|
},
|
47
47
|
"dependencies": {
|
48
|
-
"@finos/legend-application": "15.0.
|
49
|
-
"@finos/legend-art": "7.0.
|
50
|
-
"@finos/legend-graph": "30.0.
|
51
|
-
"@finos/legend-lego": "1.0.
|
52
|
-
"@finos/legend-query-builder": "4.0.
|
53
|
-
"@finos/legend-server-depot": "6.0.
|
54
|
-
"@finos/legend-server-sdlc": "5.0.
|
55
|
-
"@finos/legend-shared": "10.0.
|
56
|
-
"@finos/legend-storage": "3.0.
|
48
|
+
"@finos/legend-application": "15.0.23",
|
49
|
+
"@finos/legend-art": "7.0.23",
|
50
|
+
"@finos/legend-graph": "30.0.8",
|
51
|
+
"@finos/legend-lego": "1.0.21",
|
52
|
+
"@finos/legend-query-builder": "4.0.12",
|
53
|
+
"@finos/legend-server-depot": "6.0.15",
|
54
|
+
"@finos/legend-server-sdlc": "5.0.16",
|
55
|
+
"@finos/legend-shared": "10.0.14",
|
56
|
+
"@finos/legend-storage": "3.0.64",
|
57
57
|
"@testing-library/react": "14.0.0",
|
58
58
|
"@types/react": "18.2.12",
|
59
59
|
"@types/react-dom": "18.2.5",
|
@@ -70,14 +70,14 @@
|
|
70
70
|
"yaml": "2.3.1"
|
71
71
|
},
|
72
72
|
"devDependencies": {
|
73
|
-
"@finos/legend-dev-utils": "2.0.
|
73
|
+
"@finos/legend-dev-utils": "2.0.68",
|
74
74
|
"@jest/globals": "29.5.0",
|
75
75
|
"cross-env": "7.0.3",
|
76
76
|
"eslint": "8.42.0",
|
77
77
|
"jest": "29.5.0",
|
78
78
|
"npm-run-all": "4.1.5",
|
79
79
|
"rimraf": "5.0.1",
|
80
|
-
"sass": "1.63.
|
80
|
+
"sass": "1.63.4",
|
81
81
|
"typescript": "5.1.3"
|
82
82
|
},
|
83
83
|
"peerDependencies": {
|
@@ -80,6 +80,11 @@ class LegendStudioApplicationCoreOptions {
|
|
80
80
|
*/
|
81
81
|
TEMPORARY__enableRawSQLExecutor = false;
|
82
82
|
|
83
|
+
/**
|
84
|
+
* This flag can be removed when the support the new service registration input collector mechanism is official
|
85
|
+
*/
|
86
|
+
TEMPORARY__enableNewServiceRegistrationInputCollectorMechanism = false;
|
87
|
+
|
83
88
|
/**
|
84
89
|
* Indicates whether we should render the new mapping testable editor or the deprecated legacy editor.
|
85
90
|
* This flag will be removed once the editor for testable editor is agreed on.
|
@@ -34,7 +34,8 @@ function QuickInputDialog<T>(props: {
|
|
34
34
|
}): React.ReactElement {
|
35
35
|
const { quickInputState } = props;
|
36
36
|
const editorStore = useEditorStore();
|
37
|
-
const { placeholder, options, getSearchValue, onSelect } =
|
37
|
+
const { placeholder, options, getSearchValue, onSelect, customization } =
|
38
|
+
quickInputState;
|
38
39
|
const inputRef = useRef<SelectComponent>(null);
|
39
40
|
const close = (): void => editorStore.setQuickInputState(undefined);
|
40
41
|
|
@@ -75,6 +76,9 @@ function QuickInputDialog<T>(props: {
|
|
75
76
|
escapeClearsValue={true}
|
76
77
|
darkMode={true}
|
77
78
|
menuIsOpen={true}
|
79
|
+
optionCustomization={{
|
80
|
+
rowHeight: customization?.rowHeight,
|
81
|
+
}}
|
78
82
|
/>
|
79
83
|
</div>
|
80
84
|
</Modal>
|
@@ -1082,66 +1082,78 @@ export const FunctionEditor = observer(() => {
|
|
1082
1082
|
))}
|
1083
1083
|
</div>
|
1084
1084
|
<div className="panel__header__actions">
|
1085
|
-
|
1086
|
-
|
1087
|
-
className="function-editor__execution__stop-btn"
|
1088
|
-
onClick={cancelQuery}
|
1089
|
-
tabIndex={-1}
|
1090
|
-
>
|
1091
|
-
<div className="btn--dark btn--caution function-editor__execution__stop-btn__label">
|
1092
|
-
<PauseCircleIcon className="function-editor__execution__stop-btn__label__icon" />
|
1093
|
-
<div className="function-editor__execution__stop-btn__label__title">
|
1094
|
-
Stop
|
1095
|
-
</div>
|
1096
|
-
</div>
|
1097
|
-
</button>
|
1098
|
-
) : (
|
1099
|
-
<div className="function-editor__execution__action-btn">
|
1085
|
+
<div className="btn__dropdown-combo btn__dropdown-combo--primary">
|
1086
|
+
{functionEditorState.isRunningQuery ? (
|
1100
1087
|
<button
|
1101
|
-
className="
|
1102
|
-
onClick={
|
1103
|
-
title="Run Query"
|
1104
|
-
disabled={executionIsRunning}
|
1088
|
+
className="btn__dropdown-combo__canceler"
|
1089
|
+
onClick={cancelQuery}
|
1105
1090
|
tabIndex={-1}
|
1106
1091
|
>
|
1107
|
-
<
|
1108
|
-
|
1109
|
-
|
1092
|
+
<div className="btn--dark btn--caution btn__dropdown-combo__canceler__label">
|
1093
|
+
<PauseCircleIcon className="btn__dropdown-combo__canceler__label__icon" />
|
1094
|
+
<div className="btn__dropdown-combo__canceler__label__title">
|
1095
|
+
Stop
|
1096
|
+
</div>
|
1110
1097
|
</div>
|
1111
1098
|
</button>
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1099
|
+
) : (
|
1100
|
+
<>
|
1101
|
+
<button
|
1102
|
+
className="btn__dropdown-combo__label"
|
1103
|
+
onClick={runQuery}
|
1104
|
+
title="Run Query"
|
1105
|
+
disabled={executionIsRunning}
|
1106
|
+
tabIndex={-1}
|
1107
|
+
>
|
1108
|
+
<PlayIcon className="btn__dropdown-combo__label__icon" />
|
1109
|
+
<div className="btn__dropdown-combo__label__title">
|
1110
|
+
Run Query
|
1111
|
+
</div>
|
1112
|
+
</button>
|
1113
|
+
<DropdownMenu
|
1114
|
+
className="btn__dropdown-combo__dropdown-btn"
|
1115
|
+
disabled={executionIsRunning}
|
1116
|
+
content={
|
1117
|
+
<MenuContent>
|
1118
|
+
<MenuContentItem
|
1119
|
+
className="btn__dropdown-combo__option"
|
1120
|
+
onClick={generatePlan}
|
1121
|
+
>
|
1122
|
+
Generate Plan
|
1123
|
+
</MenuContentItem>
|
1124
|
+
<MenuContentItem
|
1125
|
+
className="btn__dropdown-combo__option"
|
1126
|
+
onClick={debugPlanGeneration}
|
1127
|
+
>
|
1128
|
+
Debug
|
1129
|
+
</MenuContentItem>
|
1130
|
+
</MenuContent>
|
1131
|
+
}
|
1132
|
+
menuProps={{
|
1133
|
+
anchorOrigin: {
|
1134
|
+
vertical: 'bottom',
|
1135
|
+
horizontal: 'right',
|
1136
|
+
},
|
1137
|
+
transformOrigin: {
|
1138
|
+
vertical: 'top',
|
1139
|
+
horizontal: 'right',
|
1140
|
+
},
|
1141
|
+
}}
|
1142
|
+
>
|
1143
|
+
<CaretDownIcon />
|
1144
|
+
</DropdownMenu>
|
1145
|
+
</>
|
1146
|
+
)}
|
1147
|
+
</div>
|
1140
1148
|
{editorStore.applicationStore.config.options
|
1141
1149
|
.TEMPORARY__enableFunctionActivatorSupport && (
|
1142
1150
|
<>
|
1143
1151
|
<DropdownMenu
|
1144
|
-
className="
|
1152
|
+
className="btn__dropdown-combo"
|
1153
|
+
disabled={
|
1154
|
+
!editorStore.graphState.functionActivatorConfigurations
|
1155
|
+
.length
|
1156
|
+
}
|
1145
1157
|
content={
|
1146
1158
|
<MenuContent>
|
1147
1159
|
{editorStore.graphState.functionActivatorConfigurations.map(
|
@@ -1172,15 +1184,15 @@ export const FunctionEditor = observer(() => {
|
|
1172
1184
|
transformOrigin: { vertical: 'top', horizontal: 'right' },
|
1173
1185
|
}}
|
1174
1186
|
>
|
1175
|
-
<div className="
|
1176
|
-
<div className="
|
1187
|
+
<div className="btn__dropdown-combo__label">
|
1188
|
+
<div className="btn__dropdown-combo__label__icon">
|
1177
1189
|
<LaunchIcon />
|
1178
1190
|
</div>
|
1179
|
-
<div className="
|
1191
|
+
<div className="btn__dropdown-combo__label__title">
|
1180
1192
|
Activate
|
1181
1193
|
</div>
|
1182
1194
|
</div>
|
1183
|
-
<div className="
|
1195
|
+
<div className="btn__dropdown-combo__dropdown-btn">
|
1184
1196
|
<CaretDownIcon />
|
1185
1197
|
</div>
|
1186
1198
|
</DropdownMenu>
|
@@ -260,30 +260,30 @@ const MappingTestQueryEditor = observer(
|
|
260
260
|
<div className="panel__header__title__label">query</div>
|
261
261
|
</div>
|
262
262
|
<div className="panel__header__actions">
|
263
|
-
<div className="
|
263
|
+
<div className="btn__dropdown-combo">
|
264
264
|
<button
|
265
|
-
className="
|
265
|
+
className="btn__dropdown-combo__label"
|
266
266
|
onClick={editWithQueryBuilder()}
|
267
267
|
title="Edit Query"
|
268
268
|
tabIndex={-1}
|
269
269
|
>
|
270
|
-
<PencilIcon className="
|
271
|
-
<div className="
|
270
|
+
<PencilIcon className="btn__dropdown-combo__label__icon" />
|
271
|
+
<div className="btn__dropdown-combo__label__title">
|
272
272
|
Edit Query
|
273
273
|
</div>
|
274
274
|
</button>
|
275
275
|
<DropdownMenu
|
276
|
-
className="
|
276
|
+
className="btn__dropdown-combo__dropdown-btn"
|
277
277
|
content={
|
278
278
|
<MenuContent>
|
279
279
|
<MenuContentItem
|
280
|
-
className="
|
280
|
+
className="btn__dropdown-combo__option"
|
281
281
|
onClick={editWithQueryBuilder(true)}
|
282
282
|
>
|
283
283
|
Text Mode
|
284
284
|
</MenuContentItem>
|
285
285
|
<MenuContentItem
|
286
|
-
className="
|
286
|
+
className="btn__dropdown-combo__option"
|
287
287
|
onClick={clearQuery}
|
288
288
|
>
|
289
289
|
Clear Query
|
@@ -302,15 +302,7 @@ const MappingTestQueryEditor = observer(
|
|
302
302
|
</div>
|
303
303
|
{!isStubbed_RawLambda(queryState.query) && (
|
304
304
|
<PanelContent>
|
305
|
-
<div
|
306
|
-
className="mapping-test-editor__query-panel__query"
|
307
|
-
title="Double click to edit in query builder"
|
308
|
-
onDoubleClick={(event) => {
|
309
|
-
event.preventDefault();
|
310
|
-
event.stopPropagation();
|
311
|
-
editWithQueryBuilder()();
|
312
|
-
}}
|
313
|
-
>
|
305
|
+
<div className="mapping-test-editor__query-panel__query">
|
314
306
|
<CodeEditor
|
315
307
|
inputValue={queryState.lambdaString}
|
316
308
|
isReadOnly={true}
|
@@ -791,64 +783,66 @@ export const DEPRECATED__MappingTestEditor = observer(
|
|
791
783
|
))}
|
792
784
|
</div>
|
793
785
|
<div className="panel__header__actions mapping-test-editor__header__actions">
|
794
|
-
|
795
|
-
|
796
|
-
className="mapping-test-editor__stop-btn"
|
797
|
-
onClick={cancelTest}
|
798
|
-
tabIndex={-1}
|
799
|
-
>
|
800
|
-
<div className="btn--dark btn--caution mapping-test-editor__stop-btn__label">
|
801
|
-
<PauseCircleIcon className="mapping-test-editor__stop-btn__label__icon" />
|
802
|
-
<div className="mapping-test-editor__stop-btn__label__title">
|
803
|
-
Stop
|
804
|
-
</div>
|
805
|
-
</div>
|
806
|
-
</button>
|
807
|
-
) : (
|
808
|
-
<div className="mapping-test-editor__action-btn">
|
786
|
+
<div className="mapping-test-editor__action-btn btn__dropdown-combo btn__dropdown-combo--primary">
|
787
|
+
{testState.isRunningTest ? (
|
809
788
|
<button
|
810
|
-
className="
|
811
|
-
onClick={
|
812
|
-
disabled={
|
813
|
-
testState.isExecutingTest || testState.isGeneratingPlan
|
814
|
-
}
|
789
|
+
className="btn__dropdown-combo__canceler"
|
790
|
+
onClick={cancelTest}
|
815
791
|
tabIndex={-1}
|
816
792
|
>
|
817
|
-
<
|
818
|
-
|
819
|
-
|
793
|
+
<div className="btn--dark btn--caution btn__dropdown-combo__canceler__label">
|
794
|
+
<PauseCircleIcon className="btn__dropdown-combo__canceler__label__icon" />
|
795
|
+
<div className="btn__dropdown-combo__canceler__label__title">
|
796
|
+
Stop
|
797
|
+
</div>
|
820
798
|
</div>
|
821
799
|
</button>
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
849
|
-
|
850
|
-
|
851
|
-
|
800
|
+
) : (
|
801
|
+
<>
|
802
|
+
<button
|
803
|
+
className="btn__dropdown-combo__label"
|
804
|
+
onClick={runTest}
|
805
|
+
disabled={
|
806
|
+
testState.isExecutingTest || testState.isGeneratingPlan
|
807
|
+
}
|
808
|
+
tabIndex={-1}
|
809
|
+
>
|
810
|
+
<PlayIcon className="btn__dropdown-combo__label__icon" />
|
811
|
+
<div className="btn__dropdown-combo__label__title">
|
812
|
+
Run Test
|
813
|
+
</div>
|
814
|
+
</button>
|
815
|
+
<DropdownMenu
|
816
|
+
className="btn__dropdown-combo__dropdown-btn"
|
817
|
+
disabled={
|
818
|
+
testState.isExecutingTest || testState.isGeneratingPlan
|
819
|
+
}
|
820
|
+
content={
|
821
|
+
<MenuContent>
|
822
|
+
<MenuContentItem
|
823
|
+
className="btn__dropdown-combo__option"
|
824
|
+
onClick={generatePlan}
|
825
|
+
>
|
826
|
+
Generate Plan
|
827
|
+
</MenuContentItem>
|
828
|
+
<MenuContentItem
|
829
|
+
className="btn__dropdown-combo__option"
|
830
|
+
onClick={debugPlanGeneration}
|
831
|
+
>
|
832
|
+
Debug
|
833
|
+
</MenuContentItem>
|
834
|
+
</MenuContent>
|
835
|
+
}
|
836
|
+
menuProps={{
|
837
|
+
anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
|
838
|
+
transformOrigin: { vertical: 'top', horizontal: 'right' },
|
839
|
+
}}
|
840
|
+
>
|
841
|
+
<CaretDownIcon />
|
842
|
+
</DropdownMenu>
|
843
|
+
</>
|
844
|
+
)}
|
845
|
+
</div>
|
852
846
|
</div>
|
853
847
|
</div>
|
854
848
|
<div className="mapping-test-editor__content">
|
package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx
CHANGED
@@ -419,7 +419,7 @@ const MappingFilterEditor = observer(
|
|
419
419
|
isReadOnly ||
|
420
420
|
instanceSetImplementationState.isConvertingTransformLambdaObjects
|
421
421
|
}
|
422
|
-
forceBackdrop={
|
422
|
+
forceBackdrop={Boolean(filterState.parserError)}
|
423
423
|
lambdaEditorState={filterState}
|
424
424
|
expectedType={PrimitiveType.BOOLEAN}
|
425
425
|
/>
|
@@ -47,6 +47,7 @@ import {
|
|
47
47
|
PanelHeader,
|
48
48
|
PanelHeaderActions,
|
49
49
|
Panel,
|
50
|
+
PauseCircleIcon,
|
50
51
|
} from '@finos/legend-art';
|
51
52
|
import { observer } from 'mobx-react-lite';
|
52
53
|
import {
|
@@ -721,6 +722,9 @@ export const MappingExecutionBuilder = observer(
|
|
721
722
|
const applicationStore = useApplicationStore();
|
722
723
|
const { queryState, inputDataState } = executionState;
|
723
724
|
// execute
|
725
|
+
const cancelExecution = applicationStore.guardUnhandledError(() =>
|
726
|
+
flowResult(executionState.cancelExecution()),
|
727
|
+
);
|
724
728
|
const generatePlan = applicationStore.guardUnhandledError(() =>
|
725
729
|
flowResult(executionState.generatePlan(false)),
|
726
730
|
);
|
@@ -780,54 +784,71 @@ export const MappingExecutionBuilder = observer(
|
|
780
784
|
<FlaskIcon />
|
781
785
|
</button>
|
782
786
|
)}
|
783
|
-
<div className="mapping-execution-builder__action-btn">
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
<
|
811
|
-
|
812
|
-
|
813
|
-
>
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
787
|
+
<div className="mapping-execution-builder__action-btn btn__dropdown-combo btn__dropdown-combo--primary">
|
788
|
+
{executionState.isExecuting ? (
|
789
|
+
<button
|
790
|
+
className="btn__dropdown-combo__canceler"
|
791
|
+
onClick={cancelExecution}
|
792
|
+
tabIndex={-1}
|
793
|
+
>
|
794
|
+
<div className="btn--dark btn--caution btn__dropdown-combo__canceler__label">
|
795
|
+
<PauseCircleIcon className="btn__dropdown-combo__canceler__label__icon" />
|
796
|
+
<div className="btn__dropdown-combo__canceler__label__title">
|
797
|
+
Stop
|
798
|
+
</div>
|
799
|
+
</div>
|
800
|
+
</button>
|
801
|
+
) : (
|
802
|
+
<>
|
803
|
+
<button
|
804
|
+
className="btn__dropdown-combo__label"
|
805
|
+
onClick={execute}
|
806
|
+
disabled={
|
807
|
+
isStubbed_RawLambda(queryState.query) ||
|
808
|
+
!inputDataState.isValid ||
|
809
|
+
executionState.isGeneratingPlan ||
|
810
|
+
executionState.isExecuting
|
811
|
+
}
|
812
|
+
tabIndex={-1}
|
813
|
+
>
|
814
|
+
<PlayIcon className="btn__dropdown-combo__label__icon" />
|
815
|
+
<div className="btn__dropdown-combo__label__title">
|
816
|
+
Run Query
|
817
|
+
</div>
|
818
|
+
</button>
|
819
|
+
<DropdownMenu
|
820
|
+
className="btn__dropdown-combo__dropdown-btn"
|
821
|
+
disabled={
|
822
|
+
isStubbed_RawLambda(queryState.query) ||
|
823
|
+
!inputDataState.isValid ||
|
824
|
+
executionState.isGeneratingPlan ||
|
825
|
+
executionState.isExecuting
|
826
|
+
}
|
827
|
+
content={
|
828
|
+
<MenuContent>
|
829
|
+
<MenuContentItem
|
830
|
+
className="btn__dropdown-combo__option"
|
831
|
+
onClick={generatePlan}
|
832
|
+
>
|
833
|
+
Generate Plan
|
834
|
+
</MenuContentItem>
|
835
|
+
<MenuContentItem
|
836
|
+
className="btn__dropdown-combo__option"
|
837
|
+
onClick={debugPlanGeneration}
|
838
|
+
>
|
839
|
+
Debug
|
840
|
+
</MenuContentItem>
|
841
|
+
</MenuContent>
|
842
|
+
}
|
843
|
+
menuProps={{
|
844
|
+
anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
|
845
|
+
transformOrigin: { vertical: 'top', horizontal: 'right' },
|
846
|
+
}}
|
847
|
+
>
|
848
|
+
<CaretDownIcon />
|
849
|
+
</DropdownMenu>
|
850
|
+
</>
|
851
|
+
)}
|
831
852
|
</div>
|
832
853
|
</div>
|
833
854
|
</div>
|
@@ -168,7 +168,7 @@ export const MappingExplorerContextMenu = observer(
|
|
168
168
|
|
169
169
|
const allowRemoveFilter =
|
170
170
|
mappingElement instanceof PureInstanceSetImplementation &&
|
171
|
-
|
171
|
+
Boolean(mappingElement.filter);
|
172
172
|
|
173
173
|
return (
|
174
174
|
<MenuContent ref={ref}>
|
@@ -390,7 +390,7 @@ const MappingElementTreeNodeContainer = observer(
|
|
390
390
|
{getMappingElementLabel(mappingElement, editorStore).value}
|
391
391
|
</div>
|
392
392
|
{mappingElement instanceof PureInstanceSetImplementation &&
|
393
|
-
|
393
|
+
Boolean(mappingElement.filter) && (
|
394
394
|
<div className="mapping-explorer__item__label__filter-icon">
|
395
395
|
<FilterIcon />
|
396
396
|
</div>
|
@@ -62,6 +62,7 @@ import {
|
|
62
62
|
PanelLoadingIndicator,
|
63
63
|
ContextMenu,
|
64
64
|
ModalHeader,
|
65
|
+
PanelFormSection,
|
65
66
|
} from '@finos/legend-art';
|
66
67
|
import {
|
67
68
|
assertErrorThrown,
|
@@ -225,12 +226,15 @@ const CreateTestSuiteModal = observer(
|
|
225
226
|
</ModalHeader>
|
226
227
|
<ModalBody>
|
227
228
|
<PanelLoadingIndicator
|
229
|
+
className="panel-loading-indicator--in__modal"
|
228
230
|
isLoading={creatorState.isCreatingSuiteState.isInProgress}
|
229
231
|
/>
|
230
232
|
{creatorState.isCreatingSuiteState.message && (
|
231
|
-
<
|
232
|
-
|
233
|
-
|
233
|
+
<PanelFormSection>
|
234
|
+
<div className="service-registration-editor__progress-msg">
|
235
|
+
{`${creatorState.isCreatingSuiteState.message}...`}
|
236
|
+
</div>
|
237
|
+
</PanelFormSection>
|
234
238
|
)}
|
235
239
|
<PanelFormTextField
|
236
240
|
ref={inputRef}
|
@@ -746,15 +750,7 @@ const MappingTestableQueryEditor = observer(
|
|
746
750
|
</div>
|
747
751
|
{!isStubbed_RawLambda(queryState.query) && (
|
748
752
|
<PanelContent>
|
749
|
-
<div
|
750
|
-
className="mapping-test-editor__query-panel__query"
|
751
|
-
title="Double click to edit in query builder"
|
752
|
-
onDoubleClick={(event) => {
|
753
|
-
event.preventDefault();
|
754
|
-
event.stopPropagation();
|
755
|
-
editWithQueryBuilder()();
|
756
|
-
}}
|
757
|
-
>
|
753
|
+
<div className="mapping-test-editor__query-panel__query">
|
758
754
|
<CodeEditor
|
759
755
|
inputValue={queryState.lambdaString}
|
760
756
|
isReadOnly={true}
|