@finos/legend-application-studio 26.1.10 → 27.0.0
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/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js +6 -6
- package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.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/editor-group/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js +9 -3
- package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.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/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +15 -14
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +5 -5
- package/lib/stores/LegendStudioApplicationPlugin.d.ts +7 -7
- package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/LegendStudioApplicationPlugin.js.map +1 -1
- 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/GraphEditFormModeState.d.ts.map +1 -1
- package/lib/stores/editor/GraphEditFormModeState.js +0 -1
- package/lib/stores/editor/GraphEditFormModeState.js.map +1 -1
- package/lib/stores/editor/NewElementState.d.ts.map +1 -1
- package/lib/stores/editor/NewElementState.js +5 -3
- 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/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/editor/editor-state/element-editor-state/service/ServicePostValidationState.js +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServicePostValidationState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +3 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.d.ts +1 -1
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +2 -2
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/BulkServiceRegistrationState.js +1 -1
- package/lib/stores/editor/sidebar-state/BulkServiceRegistrationState.js.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.d.ts +1 -1
- package/lib/stores/editor/utils/MockDataUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.js.map +1 -1
- package/lib/stores/editor/utils/PackageTreeUtils.js +3 -3
- package/lib/stores/editor/utils/PackageTreeUtils.js.map +1 -1
- package/package.json +15 -15
- 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/project-configuration-editor/ProjectDependencyEditor.tsx +6 -10
- package/src/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.tsx +91 -99
- package/src/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.tsx +13 -5
- package/src/components/editor/panel-group/SQLPlaygroundPanel.tsx +3 -0
- package/src/components/editor/side-bar/Explorer.tsx +83 -1
- package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +21 -23
- package/src/stores/LegendStudioApplicationPlugin.ts +7 -11
- package/src/stores/editor/EditorStore.ts +3 -0
- package/src/stores/editor/GraphEditFormModeState.ts +0 -1
- package/src/stores/editor/NewElementState.ts +6 -3
- 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/src/stores/editor/editor-state/element-editor-state/service/ServicePostValidationState.ts +1 -1
- package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +12 -2
- package/src/stores/editor/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts +2 -2
- package/src/stores/editor/sidebar-state/BulkServiceRegistrationState.ts +1 -1
- package/src/stores/editor/utils/MockDataUtils.ts +1 -1
- package/src/stores/editor/utils/PackageTreeUtils.ts +3 -3
@@ -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}
|
package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx
CHANGED
@@ -118,16 +118,12 @@ const ProjectDependencyActions = observer(
|
|
118
118
|
dependencyEditorState.dependencyReport?.conflicts.length;
|
119
119
|
const viewTree = (): void => {
|
120
120
|
if (dependencyEditorState.dependencyReport) {
|
121
|
-
dependencyEditorState.
|
122
|
-
DEPENDENCY_REPORT_TAB.EXPLORER,
|
123
|
-
);
|
121
|
+
dependencyEditorState.setReportTab(DEPENDENCY_REPORT_TAB.EXPLORER);
|
124
122
|
}
|
125
123
|
};
|
126
124
|
const viewConflict = (): void => {
|
127
125
|
if (dependencyEditorState.dependencyReport) {
|
128
|
-
dependencyEditorState.
|
129
|
-
DEPENDENCY_REPORT_TAB.CONFLICTS,
|
130
|
-
);
|
126
|
+
dependencyEditorState.setReportTab(DEPENDENCY_REPORT_TAB.CONFLICTS);
|
131
127
|
}
|
132
128
|
};
|
133
129
|
return (
|
@@ -604,17 +600,17 @@ const ProjectDependencyReportModal = observer(
|
|
604
600
|
const changeTab =
|
605
601
|
(tab: DEPENDENCY_REPORT_TAB): (() => void) =>
|
606
602
|
(): void =>
|
607
|
-
dependencyEditorState.
|
603
|
+
dependencyEditorState.setReportTab(tab);
|
608
604
|
const dependencyReport = dependencyEditorState.dependencyReport;
|
609
605
|
const closeModal = (): void =>
|
610
|
-
dependencyEditorState.
|
606
|
+
dependencyEditorState.setReportTab(undefined);
|
611
607
|
const [flattenView, setFlattenView] = useState(false);
|
612
608
|
const [isExpandingDependencies, setIsExpandingDependencies] =
|
613
609
|
useState(false);
|
614
610
|
const setTreeData = (
|
615
|
-
|
611
|
+
val: TreeData<ProjectDependencyTreeNodeData>,
|
616
612
|
): void => {
|
617
|
-
dependencyEditorState.setTreeData(
|
613
|
+
dependencyEditorState.setTreeData(val, flattenView);
|
618
614
|
};
|
619
615
|
const toggleViewAsListOrAsTree = (): void => {
|
620
616
|
setFlattenView(!flattenView);
|
@@ -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}
|
@@ -225,6 +225,14 @@ const ServiceTestParameterEditor = observer(
|
|
225
225
|
const type = bindingParamPair
|
226
226
|
? bindingParamPair.binding.contentType
|
227
227
|
: paramState.varExpression.genericType?.value.rawType.name ?? 'unknown';
|
228
|
+
const paramValue = (
|
229
|
+
paramState.varExpression.genericType?.value.rawType === PrimitiveType.BYTE
|
230
|
+
? atob(
|
231
|
+
(paramState.valueSpec as PrimitiveInstanceValue)
|
232
|
+
.values[0] as string,
|
233
|
+
)
|
234
|
+
: (paramState.valueSpec as PrimitiveInstanceValue).values[0]
|
235
|
+
) as string;
|
228
236
|
|
229
237
|
const openInPopUp = (): void => setShowPopUp(!showPopUp);
|
230
238
|
const closePopUp = (): void => setShowPopUp(false);
|
@@ -232,7 +240,10 @@ const ServiceTestParameterEditor = observer(
|
|
232
240
|
if (paramState.valueSpec instanceof PrimitiveInstanceValue) {
|
233
241
|
instanceValue_setValue(
|
234
242
|
paramState.valueSpec,
|
235
|
-
|
243
|
+
paramState.varExpression.genericType?.value.rawType ===
|
244
|
+
PrimitiveType.BYTE
|
245
|
+
? btoa(val)
|
246
|
+
: val,
|
236
247
|
0,
|
237
248
|
setupState.editorStore.changeDetectionState.observerContext,
|
238
249
|
);
|
@@ -261,10 +272,7 @@ const ServiceTestParameterEditor = observer(
|
|
261
272
|
<textarea
|
262
273
|
className="panel__content__form__section__textarea value-spec-editor__input"
|
263
274
|
spellCheck={false}
|
264
|
-
value={
|
265
|
-
(paramState.valueSpec as PrimitiveInstanceValue)
|
266
|
-
.values[0] as string
|
267
|
-
}
|
275
|
+
value={paramValue}
|
268
276
|
placeholder={
|
269
277
|
((paramState.valueSpec as PrimitiveInstanceValue)
|
270
278
|
.values[0] as string) === ''
|
@@ -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
|
};
|