@finos/legend-application-studio 27.1.0 → 27.1.1
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/__lib__/LegendStudioEvent.d.ts +1 -0
- package/lib/__lib__/LegendStudioEvent.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioEvent.js +1 -0
- package/lib/__lib__/LegendStudioEvent.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 +5 -4
- 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 +62 -12
- package/lib/components/editor/editor-group/data-editor/RelationalCSVDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.d.ts +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 +101 -137
- package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts +11 -0
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +27 -2
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/editor/NewElementState.d.ts.map +1 -1
- package/lib/stores/editor/NewElementState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts +2 -2
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js +2 -2
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts +14 -19
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js +30 -65
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts +56 -78
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js +285 -384
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.d.ts +23 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.d.ts.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.js +129 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.js.map +1 -0
- 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 +2 -2
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +12 -2
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.js +15 -8
- package/lib/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts +7 -4
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js +53 -10
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts +2 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js +20 -16
- package/lib/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.d.ts +1 -1
- package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.js +3 -0
- package/lib/stores/editor/sidebar-state/testable/GlobalTestRunnerState.js.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/MockDataUtils.js +3 -0
- package/lib/stores/editor/utils/MockDataUtils.js.map +1 -1
- package/lib/stores/editor/utils/TestableUtils.d.ts +11 -1
- package/lib/stores/editor/utils/TestableUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/TestableUtils.js +50 -1
- package/lib/stores/editor/utils/TestableUtils.js.map +1 -1
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts +5 -4
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js +4 -1
- package/lib/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.js.map +1 -1
- package/package.json +6 -6
- package/src/__lib__/LegendStudioEvent.ts +1 -1
- package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +34 -37
- package/src/components/editor/editor-group/data-editor/RelationalCSVDataEditor.tsx +134 -31
- package/src/components/editor/editor-group/mapping-editor/MappingTestableEditor.tsx +296 -414
- package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +88 -3
- package/src/stores/editor/NewElementState.ts +0 -1
- package/src/stores/editor/editor-state/element-editor-state/data/DataEditorState.ts +7 -1
- package/src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts +48 -77
- package/src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestableState.ts +407 -617
- package/src/stores/editor/editor-state/element-editor-state/mapping/testable/MappingTestingHelper.ts +243 -0
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.ts +6 -2
- package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +18 -1
- package/src/stores/editor/editor-state/element-editor-state/service/testable/ServiceTestableState.ts +20 -12
- package/src/stores/editor/editor-state/element-editor-state/testable/TestAssertionState.ts +76 -18
- package/src/stores/editor/editor-state/element-editor-state/testable/TestableEditorState.ts +29 -24
- package/src/stores/editor/sidebar-state/testable/GlobalTestRunnerState.ts +4 -1
- package/src/stores/editor/utils/MockDataUtils.ts +2 -0
- package/src/stores/editor/utils/TestableUtils.ts +73 -0
- package/src/stores/graph-modifier/DSL_Mapping_GraphModifierHelper.ts +15 -12
- package/tsconfig.json +1 -0
@@ -18,6 +18,7 @@ import {
|
|
18
18
|
clsx,
|
19
19
|
CompareIcon,
|
20
20
|
ContextMenu,
|
21
|
+
CustomSelectorInput,
|
21
22
|
Dialog,
|
22
23
|
MenuContent,
|
23
24
|
MenuContentItem,
|
@@ -34,7 +35,7 @@ import {
|
|
34
35
|
RefreshIcon,
|
35
36
|
WrenchIcon,
|
36
37
|
} from '@finos/legend-art';
|
37
|
-
import { TestError } from '@finos/legend-graph';
|
38
|
+
import { type DataElement, TestError } from '@finos/legend-graph';
|
38
39
|
import {
|
39
40
|
prettyCONSTName,
|
40
41
|
tryToFormatLosslessJSONString,
|
@@ -61,6 +62,86 @@ import {
|
|
61
62
|
import { forwardRef, useState } from 'react';
|
62
63
|
import type { TestableTestEditorState } from '../../../../stores/editor/editor-state/element-editor-state/testable/TestableEditorState.js';
|
63
64
|
import { getTestableResultIcon } from '../../side-bar/testable/GlobalTestRunner.js';
|
65
|
+
import type { EditorStore } from '../../../../stores/editor/EditorStore.js';
|
66
|
+
import {
|
67
|
+
buildElementOption,
|
68
|
+
getPackageableElementOptionFormatter,
|
69
|
+
} from '@finos/legend-lego/graph-editor';
|
70
|
+
|
71
|
+
export const SharedDataElementModal = observer(
|
72
|
+
(props: {
|
73
|
+
filterBy?: (val: DataElement) => boolean;
|
74
|
+
handler: (val: DataElement) => void;
|
75
|
+
editorStore: EditorStore;
|
76
|
+
isReadOnly: boolean;
|
77
|
+
close: () => void;
|
78
|
+
}) => {
|
79
|
+
const { filterBy, isReadOnly, close, editorStore, handler } = props;
|
80
|
+
const dataElements =
|
81
|
+
editorStore.graphManagerState.graph.dataElements.filter((e) =>
|
82
|
+
filterBy ? filterBy(e) : true,
|
83
|
+
);
|
84
|
+
const [dataElement, setDataElement] = useState(dataElements[0]);
|
85
|
+
const dataElementOptions =
|
86
|
+
editorStore.graphManagerState.usableDataElements.map(buildElementOption);
|
87
|
+
const selectedDataElement = dataElement
|
88
|
+
? buildElementOption(dataElement)
|
89
|
+
: null;
|
90
|
+
const onDataElementChange = (val: {
|
91
|
+
label: string;
|
92
|
+
value?: DataElement;
|
93
|
+
}): void => {
|
94
|
+
if (val.value !== selectedDataElement?.value && val.value) {
|
95
|
+
setDataElement(val.value);
|
96
|
+
}
|
97
|
+
};
|
98
|
+
const change = (): void => {
|
99
|
+
if (dataElement) {
|
100
|
+
handler(dataElement);
|
101
|
+
}
|
102
|
+
close();
|
103
|
+
};
|
104
|
+
return (
|
105
|
+
<Dialog
|
106
|
+
open={true}
|
107
|
+
onClose={close}
|
108
|
+
classes={{ container: 'search-modal__container' }}
|
109
|
+
PaperProps={{ classes: { root: 'search-modal__inner-container' } }}
|
110
|
+
>
|
111
|
+
<Modal darkMode={true} className="service-test-data-modal">
|
112
|
+
<ModalBody>
|
113
|
+
<div className="panel__content__form__section">
|
114
|
+
<div className="panel__content__form__section__header__label">
|
115
|
+
Data Element
|
116
|
+
</div>
|
117
|
+
<div className="explorer__new-element-modal__driver">
|
118
|
+
<CustomSelectorInput
|
119
|
+
className="panel__content__form__section__dropdown data-element-reference-editor__value__dropdown"
|
120
|
+
disabled={false}
|
121
|
+
options={dataElementOptions}
|
122
|
+
onChange={onDataElementChange}
|
123
|
+
formatOptionLabel={getPackageableElementOptionFormatter({})}
|
124
|
+
value={selectedDataElement}
|
125
|
+
darkMode={true}
|
126
|
+
/>
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
</ModalBody>
|
130
|
+
<ModalFooter>
|
131
|
+
<ModalFooterButton
|
132
|
+
className="database-builder__action--btn"
|
133
|
+
disabled={isReadOnly}
|
134
|
+
onClick={change}
|
135
|
+
title="Change to use Data Element"
|
136
|
+
>
|
137
|
+
Change
|
138
|
+
</ModalFooterButton>
|
139
|
+
</ModalFooter>
|
140
|
+
</Modal>
|
141
|
+
</Dialog>
|
142
|
+
);
|
143
|
+
},
|
144
|
+
);
|
64
145
|
|
65
146
|
export const RenameModal = observer(
|
66
147
|
(props: {
|
@@ -438,6 +519,10 @@ export const TestAssertionEditor = observer(
|
|
438
519
|
const { testAssertionState } = props;
|
439
520
|
const selectedTab = testAssertionState.selectedTab;
|
440
521
|
const isReadOnly = testAssertionState.testState.isReadOnly;
|
522
|
+
const isDisabled =
|
523
|
+
isReadOnly ||
|
524
|
+
!testAssertionState.assertionState.supportsGeneratingAssertion ||
|
525
|
+
testAssertionState.generatingExpectedAction.isInProgress;
|
441
526
|
const changeTab = (val: TEST_ASSERTION_TAB): void =>
|
442
527
|
testAssertionState.setSelectedTab(val);
|
443
528
|
const renderContent = (state: TestAssertionState): React.ReactNode => {
|
@@ -484,7 +569,7 @@ export const TestAssertionEditor = observer(
|
|
484
569
|
className="panel__header__action service-execution-editor__test-data__generate-btn"
|
485
570
|
onClick={generate}
|
486
571
|
title="Generate expected result if possible"
|
487
|
-
disabled={
|
572
|
+
disabled={isDisabled}
|
488
573
|
tabIndex={-1}
|
489
574
|
>
|
490
575
|
<div className="service-execution-editor__test-data__generate-btn__label">
|
@@ -497,7 +582,7 @@ export const TestAssertionEditor = observer(
|
|
497
582
|
</div>
|
498
583
|
</div>
|
499
584
|
<div className="testable-test-assertion-editor__content">
|
500
|
-
{selectedTab === TEST_ASSERTION_TAB.
|
585
|
+
{selectedTab === TEST_ASSERTION_TAB.EXPECTED && (
|
501
586
|
<div className="testable-test-assertion-editor__setup">
|
502
587
|
{renderContent(testAssertionState.assertionState)}
|
503
588
|
</div>
|
@@ -619,7 +619,6 @@ export class NewDataElementDriver extends NewElementDriver<DataElement> {
|
|
619
619
|
createElement(name: string): DataElement {
|
620
620
|
const embeddedDataOption = guaranteeNonNullable(this.embeddedDataOption);
|
621
621
|
const dataElement = new DataElement(name);
|
622
|
-
|
623
622
|
const data = createEmbeddedData(embeddedDataOption.value, this.editorStore);
|
624
623
|
dataElement_setEmbeddedData(
|
625
624
|
dataElement,
|
@@ -26,6 +26,7 @@ import { ElementEditorState } from '../ElementEditorState.js';
|
|
26
26
|
import {
|
27
27
|
type EmbeddedDataState,
|
28
28
|
buildEmbeddedDataEditorState,
|
29
|
+
type EmbeddedDataStateOption,
|
29
30
|
} from './EmbeddedDataState.js';
|
30
31
|
|
31
32
|
export enum DATA_TAB_TYPE {
|
@@ -45,12 +46,17 @@ export class EmbeddedDataEditorState {
|
|
45
46
|
readonly embeddedData: EmbeddedData;
|
46
47
|
readonly embeddedDataState: EmbeddedDataState;
|
47
48
|
|
48
|
-
constructor(
|
49
|
+
constructor(
|
50
|
+
editorStore: EditorStore,
|
51
|
+
embeddedData: EmbeddedData,
|
52
|
+
options?: EmbeddedDataStateOption,
|
53
|
+
) {
|
49
54
|
this.editorStore = editorStore;
|
50
55
|
this.embeddedData = embeddedData;
|
51
56
|
this.embeddedDataState = buildEmbeddedDataEditorState(
|
52
57
|
embeddedData,
|
53
58
|
editorStore,
|
59
|
+
options,
|
54
60
|
);
|
55
61
|
}
|
56
62
|
}
|
@@ -17,11 +17,12 @@ import {
|
|
17
17
|
type EmbeddedData,
|
18
18
|
type ModelData,
|
19
19
|
type DataElement,
|
20
|
+
RelationalCSVData,
|
21
|
+
type Database,
|
22
|
+
type RelationalCSVDataTable,
|
20
23
|
DataElementReference,
|
21
24
|
ExternalFormatData,
|
22
25
|
ModelStoreData,
|
23
|
-
RelationalCSVData,
|
24
|
-
RelationalCSVDataTable,
|
25
26
|
ModelEmbeddedData,
|
26
27
|
} from '@finos/legend-graph';
|
27
28
|
import {
|
@@ -40,8 +41,6 @@ import {
|
|
40
41
|
externalFormatData_setData,
|
41
42
|
relationalData_addTable,
|
42
43
|
relationalData_deleteData,
|
43
|
-
relationalData_setTableName,
|
44
|
-
relationalData_setTableSchemaName,
|
45
44
|
relationalData_setTableValues,
|
46
45
|
} from '../../../../graph-modifier/DSL_Data_GraphModifierHelper.js';
|
47
46
|
import { EmbeddedDataType } from '../../ExternalFormatState.js';
|
@@ -168,15 +167,26 @@ export class UnsupportedModelDataState extends ModelDataState {}
|
|
168
167
|
export class ModelStoreDataState extends EmbeddedDataState {
|
169
168
|
override embeddedData: ModelStoreData;
|
170
169
|
modelDataStates: ModelDataState[] = [];
|
170
|
+
hideClass = false;
|
171
171
|
|
172
|
-
constructor(
|
172
|
+
constructor(
|
173
|
+
editorStore: EditorStore,
|
174
|
+
embeddedData: ModelStoreData,
|
175
|
+
hideClass?: boolean,
|
176
|
+
) {
|
173
177
|
super(editorStore, embeddedData);
|
178
|
+
makeObservable(this, {
|
179
|
+
hideClass: observable,
|
180
|
+
modelDataStates: observable,
|
181
|
+
buildStates: action,
|
182
|
+
});
|
174
183
|
this.embeddedData = embeddedData;
|
175
184
|
this.modelDataStates = this.buildStates();
|
185
|
+
this.hideClass = Boolean(hideClass);
|
176
186
|
}
|
177
187
|
|
178
188
|
label(): string {
|
179
|
-
return '
|
189
|
+
return 'Model Store Data';
|
180
190
|
}
|
181
191
|
|
182
192
|
buildStates(): ModelDataState[] {
|
@@ -209,72 +219,15 @@ export class RelationalCSVDataTableState {
|
|
209
219
|
}
|
210
220
|
}
|
211
221
|
|
212
|
-
export class IdentifierTableState {
|
213
|
-
table: RelationalCSVDataTable | undefined;
|
214
|
-
dataState: RelationalCSVDataState;
|
215
|
-
schemaName = '';
|
216
|
-
tableName = '';
|
217
|
-
|
218
|
-
constructor(dataState: RelationalCSVDataState) {
|
219
|
-
this.dataState = dataState;
|
220
|
-
makeObservable(this, {
|
221
|
-
dataState: observable,
|
222
|
-
schemaName: observable,
|
223
|
-
tableName: observable,
|
224
|
-
table: observable,
|
225
|
-
setTableName: action,
|
226
|
-
setSchemaName: action,
|
227
|
-
setTable: action,
|
228
|
-
handleSubmit: action,
|
229
|
-
});
|
230
|
-
}
|
231
|
-
|
232
|
-
setTable(table: RelationalCSVDataTable | undefined): void {
|
233
|
-
this.table = table;
|
234
|
-
if (table) {
|
235
|
-
this.tableName = table.table;
|
236
|
-
this.schemaName = table.schema;
|
237
|
-
}
|
238
|
-
}
|
239
|
-
|
240
|
-
setTableName(val: string): void {
|
241
|
-
this.tableName = val;
|
242
|
-
}
|
243
|
-
|
244
|
-
setSchemaName(val: string): void {
|
245
|
-
this.schemaName = val;
|
246
|
-
}
|
247
|
-
|
248
|
-
get isEditingDisabled(): boolean {
|
249
|
-
if (!(this.tableName && this.schemaName)) {
|
250
|
-
return true;
|
251
|
-
}
|
252
|
-
return Boolean(
|
253
|
-
this.dataState.embeddedData.tables.find(
|
254
|
-
(t) =>
|
255
|
-
`${t.table}.${t.schema}` === `${this.tableName}.${this.schemaName}`,
|
256
|
-
),
|
257
|
-
);
|
258
|
-
}
|
259
|
-
|
260
|
-
handleSubmit(): void {
|
261
|
-
const table = this.table ?? new RelationalCSVDataTable();
|
262
|
-
relationalData_setTableSchemaName(table, this.schemaName);
|
263
|
-
relationalData_setTableName(table, this.tableName);
|
264
|
-
if (!this.table) {
|
265
|
-
table.values = '';
|
266
|
-
relationalData_addTable(this.dataState.embeddedData, table);
|
267
|
-
this.dataState.changeSelectedTable(table);
|
268
|
-
}
|
269
|
-
}
|
270
|
-
}
|
271
|
-
|
272
222
|
export class RelationalCSVDataState extends EmbeddedDataState {
|
273
223
|
override embeddedData: RelationalCSVData;
|
274
|
-
showTableIdentifierModal = false;
|
275
|
-
tableIdentifierState: IdentifierTableState;
|
276
224
|
selectedTable: RelationalCSVDataTableState | undefined;
|
277
225
|
showImportCSVModal = false;
|
226
|
+
database: Database | undefined;
|
227
|
+
|
228
|
+
//
|
229
|
+
showTableIdentifierModal = false;
|
230
|
+
tableToEdit: RelationalCSVDataTable | undefined;
|
278
231
|
|
279
232
|
constructor(editorStore: EditorStore, embeddedData: RelationalCSVData) {
|
280
233
|
super(editorStore, embeddedData);
|
@@ -282,10 +235,11 @@ export class RelationalCSVDataState extends EmbeddedDataState {
|
|
282
235
|
selectedTable: observable,
|
283
236
|
showTableIdentifierModal: observable,
|
284
237
|
deleteTable: observable,
|
285
|
-
tableIdentifierState: observable,
|
286
238
|
showImportCSVModal: observable,
|
239
|
+
database: observable,
|
287
240
|
resetSelectedTable: action,
|
288
241
|
changeSelectedTable: action,
|
242
|
+
setDatabase: action,
|
289
243
|
closeModal: action,
|
290
244
|
openIdentifierModal: action,
|
291
245
|
setShowImportCsvModal: action,
|
@@ -293,7 +247,6 @@ export class RelationalCSVDataState extends EmbeddedDataState {
|
|
293
247
|
importCSV: action,
|
294
248
|
});
|
295
249
|
this.embeddedData = embeddedData;
|
296
|
-
this.tableIdentifierState = new IdentifierTableState(this);
|
297
250
|
this.resetSelectedTable();
|
298
251
|
}
|
299
252
|
|
@@ -301,9 +254,13 @@ export class RelationalCSVDataState extends EmbeddedDataState {
|
|
301
254
|
this.showImportCSVModal = val;
|
302
255
|
}
|
303
256
|
|
257
|
+
setDatabase(val: Database | undefined): void {
|
258
|
+
this.database = val;
|
259
|
+
}
|
260
|
+
|
304
261
|
openIdentifierModal(renameTable?: RelationalCSVDataTable | undefined): void {
|
305
262
|
this.showTableIdentifierModal = true;
|
306
|
-
this.
|
263
|
+
this.tableToEdit = renameTable;
|
307
264
|
}
|
308
265
|
|
309
266
|
closeCSVModal(): void {
|
@@ -311,9 +268,8 @@ export class RelationalCSVDataState extends EmbeddedDataState {
|
|
311
268
|
}
|
312
269
|
|
313
270
|
closeModal(): void {
|
314
|
-
this.tableIdentifierState.setSchemaName('');
|
315
|
-
this.tableIdentifierState.setTableName('');
|
316
271
|
this.showTableIdentifierModal = false;
|
272
|
+
this.tableToEdit = undefined;
|
317
273
|
}
|
318
274
|
|
319
275
|
importCSV(val: string): void {
|
@@ -351,14 +307,23 @@ export class RelationalCSVDataState extends EmbeddedDataState {
|
|
351
307
|
return 'Relational Data';
|
352
308
|
}
|
353
309
|
}
|
310
|
+
export interface EmbeddedDataStateOption {
|
311
|
+
hideSource?: boolean;
|
312
|
+
}
|
354
313
|
|
355
314
|
export class DataElementReferenceState extends EmbeddedDataState {
|
356
315
|
override embeddedData: DataElementReference;
|
357
316
|
embeddedDataValueState: EmbeddedDataState;
|
317
|
+
options?: EmbeddedDataStateOption | undefined;
|
358
318
|
|
359
|
-
constructor(
|
319
|
+
constructor(
|
320
|
+
editorStore: EditorStore,
|
321
|
+
embeddedData: DataElementReference,
|
322
|
+
options?: EmbeddedDataStateOption,
|
323
|
+
) {
|
360
324
|
super(editorStore, embeddedData);
|
361
325
|
this.embeddedData = embeddedData;
|
326
|
+
this.options = options;
|
362
327
|
this.embeddedDataValueState = this.buildValueState();
|
363
328
|
}
|
364
329
|
|
@@ -375,10 +340,11 @@ export class DataElementReferenceState extends EmbeddedDataState {
|
|
375
340
|
this.embeddedDataValueState = this.buildValueState();
|
376
341
|
}
|
377
342
|
|
378
|
-
buildValueState(): EmbeddedDataState {
|
343
|
+
buildValueState(options?: EmbeddedDataStateOption): EmbeddedDataState {
|
379
344
|
return buildEmbeddedDataEditorState(
|
380
345
|
this.embeddedData.dataElement.value.data,
|
381
346
|
this.editorStore,
|
347
|
+
this.options,
|
382
348
|
);
|
383
349
|
}
|
384
350
|
}
|
@@ -392,16 +358,21 @@ export class UnsupportedDataState extends EmbeddedDataState {
|
|
392
358
|
export function buildEmbeddedDataEditorState(
|
393
359
|
_embeddedData: EmbeddedData,
|
394
360
|
editorStore: EditorStore,
|
361
|
+
options?: EmbeddedDataStateOption,
|
395
362
|
): EmbeddedDataState {
|
396
363
|
const embeddedData = _embeddedData;
|
397
364
|
if (embeddedData instanceof ExternalFormatData) {
|
398
365
|
return new ExternalFormatDataState(editorStore, embeddedData);
|
399
366
|
} else if (embeddedData instanceof ModelStoreData) {
|
400
|
-
return new ModelStoreDataState(
|
367
|
+
return new ModelStoreDataState(
|
368
|
+
editorStore,
|
369
|
+
embeddedData,
|
370
|
+
options?.hideSource,
|
371
|
+
);
|
401
372
|
} else if (embeddedData instanceof RelationalCSVData) {
|
402
373
|
return new RelationalCSVDataState(editorStore, embeddedData);
|
403
374
|
} else if (embeddedData instanceof DataElementReference) {
|
404
|
-
return new DataElementReferenceState(editorStore, embeddedData);
|
375
|
+
return new DataElementReferenceState(editorStore, embeddedData, options);
|
405
376
|
} else {
|
406
377
|
const extraEmbeddedDataEditorStateBuilders = editorStore.pluginManager
|
407
378
|
.getApplicationPlugins()
|