@finos/legend-application-studio 28.21.4 → 28.21.6
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 +4 -1
- package/lib/__lib__/LegendStudioEvent.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioEvent.js +3 -0
- package/lib/__lib__/LegendStudioEvent.js.map +1 -1
- package/lib/__lib__/LegendStudioTelemetryHelper.d.ts +2 -1
- package/lib/__lib__/LegendStudioTelemetryHelper.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioTelemetryHelper.js +11 -3
- package/lib/__lib__/LegendStudioTelemetryHelper.js.map +1 -1
- package/lib/__lib__/LegendStudioUserDataHelper.d.ts +41 -1
- package/lib/__lib__/LegendStudioUserDataHelper.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioUserDataHelper.js +120 -1
- package/lib/__lib__/LegendStudioUserDataHelper.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts +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 +3 -3
- package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.d.ts +3 -0
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js +13 -35
- package/lib/components/editor/editor-group/data-editor/RelationElementsDataEditor.js.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js +20 -7
- package/lib/components/editor/editor-group/dataProduct/DataProductEditor.js.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js +59 -22
- package/lib/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js +113 -75
- package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +2 -2
- package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
- package/lib/components/editor/side-bar/DevMetadataPanel.d.ts.map +1 -1
- package/lib/components/editor/side-bar/DevMetadataPanel.js +37 -6
- package/lib/components/editor/side-bar/DevMetadataPanel.js.map +1 -1
- package/lib/components/workspace-setup/RecentWorkspacesPanel.d.ts +22 -0
- package/lib/components/workspace-setup/RecentWorkspacesPanel.d.ts.map +1 -0
- package/lib/components/workspace-setup/RecentWorkspacesPanel.js +80 -0
- package/lib/components/workspace-setup/RecentWorkspacesPanel.js.map +1 -0
- package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
- package/lib/components/workspace-setup/WorkspaceSetup.js +61 -6
- package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +31 -0
- package/lib/stores/editor/EditorStore.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.d.ts +1 -1
- 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 +20 -48
- package/lib/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts +9 -14
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js +125 -78
- package/lib/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts +18 -4
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js +216 -53
- package/lib/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.js +11 -0
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/WorkspaceReviewState.js +11 -0
- package/lib/stores/editor/sidebar-state/WorkspaceReviewState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.d.ts +9 -0
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.js +57 -1
- package/lib/stores/editor/sidebar-state/dev-metadata/DevMetadataState.js.map +1 -1
- package/lib/stores/project-reviewer/ProjectReviewerStore.d.ts.map +1 -1
- package/lib/stores/project-reviewer/ProjectReviewerStore.js +12 -0
- package/lib/stores/project-reviewer/ProjectReviewerStore.js.map +1 -1
- package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts +17 -0
- package/lib/stores/workspace-setup/WorkspaceSetupStore.d.ts.map +1 -1
- package/lib/stores/workspace-setup/WorkspaceSetupStore.js +61 -0
- package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
- package/package.json +16 -16
- package/src/__lib__/LegendStudioEvent.ts +3 -0
- package/src/__lib__/LegendStudioTelemetryHelper.ts +35 -11
- package/src/__lib__/LegendStudioUserDataHelper.ts +204 -1
- package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +4 -0
- package/src/components/editor/editor-group/data-editor/RelationElementsDataEditor.tsx +209 -187
- package/src/components/editor/editor-group/dataProduct/DataProductEditor.tsx +26 -7
- package/src/components/editor/editor-group/dataProduct/testable/DataProductTestableEditor.tsx +149 -86
- package/src/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.tsx +425 -308
- package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +3 -11
- package/src/components/editor/side-bar/DevMetadataPanel.tsx +194 -10
- package/src/components/workspace-setup/RecentWorkspacesPanel.tsx +161 -0
- package/src/components/workspace-setup/WorkspaceSetup.tsx +97 -8
- package/src/stores/editor/EditorStore.ts +44 -0
- package/src/stores/editor/editor-state/element-editor-state/data/EmbeddedDataState.ts +28 -50
- package/src/stores/editor/editor-state/element-editor-state/dataProduct/testable/DataProductTestableState.ts +164 -100
- package/src/stores/editor/editor-state/element-editor-state/function-activator/testable/FunctionTestableState.ts +307 -72
- package/src/stores/editor/sidebar-state/ProjectOverviewState.ts +14 -0
- package/src/stores/editor/sidebar-state/WorkspaceReviewState.ts +14 -0
- package/src/stores/editor/sidebar-state/dev-metadata/DevMetadataState.ts +84 -1
- package/src/stores/project-reviewer/ProjectReviewerStore.ts +15 -0
- package/src/stores/workspace-setup/WorkspaceSetupStore.ts +93 -0
- package/tsconfig.json +1 -0
|
@@ -257,15 +257,36 @@ export class LegendStudioTelemetryHelper {
|
|
|
257
257
|
groupId: string,
|
|
258
258
|
artifactId: string,
|
|
259
259
|
versionId: string | undefined,
|
|
260
|
+
): void {
|
|
261
|
+
service.logEvent(
|
|
262
|
+
LEGEND_STUDIO_APP_EVENT.METADATA_PUSH_TO_METADATA__LAUNCH,
|
|
263
|
+
{
|
|
264
|
+
sourceInfo,
|
|
265
|
+
groupId,
|
|
266
|
+
artifactId,
|
|
267
|
+
versionId,
|
|
268
|
+
},
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
static logEvent_DevMetadataPushSucceeded(
|
|
273
|
+
service: TelemetryService,
|
|
274
|
+
sourceInfo: LegendSourceInfo | undefined,
|
|
275
|
+
groupId: string,
|
|
276
|
+
artifactId: string,
|
|
277
|
+
versionId: string | undefined,
|
|
260
278
|
status: string,
|
|
261
279
|
): void {
|
|
262
|
-
service.logEvent(
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
280
|
+
service.logEvent(
|
|
281
|
+
LEGEND_STUDIO_APP_EVENT.METADATA_PUSH_TO_METADATA__SUCCESS,
|
|
282
|
+
{
|
|
283
|
+
sourceInfo,
|
|
284
|
+
groupId,
|
|
285
|
+
artifactId,
|
|
286
|
+
versionId,
|
|
287
|
+
status,
|
|
288
|
+
},
|
|
289
|
+
);
|
|
269
290
|
}
|
|
270
291
|
|
|
271
292
|
static logEvent_DevMetadataPushFailure(
|
|
@@ -273,9 +294,12 @@ export class LegendStudioTelemetryHelper {
|
|
|
273
294
|
sourceInfo: LegendSourceInfo | undefined,
|
|
274
295
|
errorMessage: string,
|
|
275
296
|
): void {
|
|
276
|
-
service.logEvent(
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
297
|
+
service.logEvent(
|
|
298
|
+
LEGEND_STUDIO_APP_EVENT.METADATA_PUSH_TO_METADATA__FAILURE,
|
|
299
|
+
{
|
|
300
|
+
sourceInfo,
|
|
301
|
+
errorMessage,
|
|
302
|
+
},
|
|
303
|
+
);
|
|
280
304
|
}
|
|
281
305
|
}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { UserDataService } from '@finos/legend-application';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
type PlainObject,
|
|
4
|
+
SerializationFactory,
|
|
5
|
+
returnUndefOnError,
|
|
6
|
+
usingModelSchema,
|
|
7
|
+
} from '@finos/legend-shared';
|
|
8
|
+
import { WorkspaceType } from '@finos/legend-server-sdlc';
|
|
9
|
+
import { createModelSchema, list, primitive } from 'serializr';
|
|
3
10
|
|
|
4
11
|
/**
|
|
5
12
|
* Copyright (c) 2020-present, Goldman Sachs
|
|
@@ -29,8 +36,104 @@ export enum LEGEND_STUDIO_USER_DATA_KEY {
|
|
|
29
36
|
// drop the toggle button in the tab header, and retarget the SCSS
|
|
30
37
|
// `.database-editor--light` block at the framework's color-theme tokens.
|
|
31
38
|
DATABASE_EDITOR_THEME = 'studio-editor.database-editor.theme',
|
|
39
|
+
// Recently-opened projects and (non-patch) workspaces shown on the
|
|
40
|
+
// workspace setup screen to speed up re-opening common work.
|
|
41
|
+
WORKSPACE_SETUP_RECENTS = 'studio-editor.workspace-setup.recents',
|
|
32
42
|
}
|
|
33
43
|
|
|
44
|
+
// --- Workspace setup recents -------------------------------------------------
|
|
45
|
+
|
|
46
|
+
const WORKSPACE_SETUP_RECENTS_VERSION = 1;
|
|
47
|
+
const MAX_RECENT_PROJECTS = 10;
|
|
48
|
+
const MAX_RECENT_WORKSPACES = 20;
|
|
49
|
+
|
|
50
|
+
export class RecentProjectEntry {
|
|
51
|
+
projectId!: string;
|
|
52
|
+
name!: string;
|
|
53
|
+
lastOpenedAt!: number;
|
|
54
|
+
|
|
55
|
+
static readonly serialization = new SerializationFactory(
|
|
56
|
+
createModelSchema(RecentProjectEntry, {
|
|
57
|
+
lastOpenedAt: primitive(),
|
|
58
|
+
name: primitive(),
|
|
59
|
+
projectId: primitive(),
|
|
60
|
+
}),
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export class RecentWorkspaceEntry {
|
|
65
|
+
projectId!: string;
|
|
66
|
+
workspaceId!: string;
|
|
67
|
+
workspaceType!: WorkspaceType;
|
|
68
|
+
lastOpenedAt!: number;
|
|
69
|
+
|
|
70
|
+
static readonly serialization = new SerializationFactory(
|
|
71
|
+
createModelSchema(RecentWorkspaceEntry, {
|
|
72
|
+
lastOpenedAt: primitive(),
|
|
73
|
+
projectId: primitive(),
|
|
74
|
+
workspaceId: primitive(),
|
|
75
|
+
// WorkspaceType is a string enum; stored/loaded as a plain string and
|
|
76
|
+
// validated when the entry is consumed.
|
|
77
|
+
workspaceType: primitive(),
|
|
78
|
+
}),
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export class WorkspaceSetupRecents {
|
|
83
|
+
version: number = WORKSPACE_SETUP_RECENTS_VERSION;
|
|
84
|
+
projects: RecentProjectEntry[] = [];
|
|
85
|
+
workspaces: RecentWorkspaceEntry[] = [];
|
|
86
|
+
|
|
87
|
+
static readonly serialization = new SerializationFactory(
|
|
88
|
+
createModelSchema(WorkspaceSetupRecents, {
|
|
89
|
+
projects: list(usingModelSchema(RecentProjectEntry.serialization.schema)),
|
|
90
|
+
version: primitive(),
|
|
91
|
+
workspaces: list(
|
|
92
|
+
usingModelSchema(RecentWorkspaceEntry.serialization.schema),
|
|
93
|
+
),
|
|
94
|
+
}),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const isValidWorkspaceType = (v: unknown): v is WorkspaceType =>
|
|
99
|
+
v === WorkspaceType.USER || v === WorkspaceType.GROUP;
|
|
100
|
+
|
|
101
|
+
const emptyRecents = (): WorkspaceSetupRecents => new WorkspaceSetupRecents();
|
|
102
|
+
|
|
103
|
+
const readRecents = (service: UserDataService): WorkspaceSetupRecents => {
|
|
104
|
+
const raw = returnUndefOnError(() =>
|
|
105
|
+
service.getObjectValue(LEGEND_STUDIO_USER_DATA_KEY.WORKSPACE_SETUP_RECENTS),
|
|
106
|
+
);
|
|
107
|
+
if (!raw) {
|
|
108
|
+
return emptyRecents();
|
|
109
|
+
}
|
|
110
|
+
const parsed = returnUndefOnError(() =>
|
|
111
|
+
WorkspaceSetupRecents.serialization.fromJson(
|
|
112
|
+
raw as PlainObject<WorkspaceSetupRecents>,
|
|
113
|
+
),
|
|
114
|
+
);
|
|
115
|
+
if (!parsed) {
|
|
116
|
+
return emptyRecents();
|
|
117
|
+
}
|
|
118
|
+
// Defensive post-checks: drop entries with invalid enum values and enforce
|
|
119
|
+
// the LRU caps in case the persisted blob was tampered with.
|
|
120
|
+
parsed.workspaces = parsed.workspaces
|
|
121
|
+
.filter((w) => isValidWorkspaceType(w.workspaceType))
|
|
122
|
+
.slice(0, MAX_RECENT_WORKSPACES);
|
|
123
|
+
parsed.projects = parsed.projects.slice(0, MAX_RECENT_PROJECTS);
|
|
124
|
+
return parsed;
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const writeRecents = (
|
|
128
|
+
service: UserDataService,
|
|
129
|
+
recents: WorkspaceSetupRecents,
|
|
130
|
+
): void => {
|
|
131
|
+
service.persistValue(
|
|
132
|
+
LEGEND_STUDIO_USER_DATA_KEY.WORKSPACE_SETUP_RECENTS,
|
|
133
|
+
WorkspaceSetupRecents.serialization.toJson(recents),
|
|
134
|
+
);
|
|
135
|
+
};
|
|
136
|
+
|
|
34
137
|
export class LegendStudioUserDataHelper {
|
|
35
138
|
static globalTestRunner_getShowDependencyPanel(
|
|
36
139
|
service: UserDataService,
|
|
@@ -70,4 +173,104 @@ export class LegendStudioUserDataHelper {
|
|
|
70
173
|
val,
|
|
71
174
|
);
|
|
72
175
|
}
|
|
176
|
+
|
|
177
|
+
// --- Workspace setup recents ---------------------------------------------
|
|
178
|
+
|
|
179
|
+
static workspaceSetup_getRecentProjects(
|
|
180
|
+
service: UserDataService,
|
|
181
|
+
): RecentProjectEntry[] {
|
|
182
|
+
return readRecents(service).projects;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
static workspaceSetup_getRecentWorkspaces(
|
|
186
|
+
service: UserDataService,
|
|
187
|
+
): RecentWorkspaceEntry[] {
|
|
188
|
+
return readRecents(service).workspaces;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
static workspaceSetup_recordRecentProject(
|
|
192
|
+
service: UserDataService,
|
|
193
|
+
entry: { projectId: string; name: string },
|
|
194
|
+
): RecentProjectEntry[] {
|
|
195
|
+
const recents = readRecents(service);
|
|
196
|
+
const next = new RecentProjectEntry();
|
|
197
|
+
next.projectId = entry.projectId;
|
|
198
|
+
next.name = entry.name;
|
|
199
|
+
next.lastOpenedAt = Date.now();
|
|
200
|
+
recents.projects = [
|
|
201
|
+
next,
|
|
202
|
+
...recents.projects.filter((p) => p.projectId !== entry.projectId),
|
|
203
|
+
].slice(0, MAX_RECENT_PROJECTS);
|
|
204
|
+
writeRecents(service, recents);
|
|
205
|
+
return recents.projects;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
static workspaceSetup_recordRecentWorkspace(
|
|
209
|
+
service: UserDataService,
|
|
210
|
+
entry: {
|
|
211
|
+
projectId: string;
|
|
212
|
+
workspaceId: string;
|
|
213
|
+
workspaceType: WorkspaceType;
|
|
214
|
+
},
|
|
215
|
+
): RecentWorkspaceEntry[] {
|
|
216
|
+
const recents = readRecents(service);
|
|
217
|
+
const next = new RecentWorkspaceEntry();
|
|
218
|
+
next.projectId = entry.projectId;
|
|
219
|
+
next.workspaceId = entry.workspaceId;
|
|
220
|
+
next.workspaceType = entry.workspaceType;
|
|
221
|
+
next.lastOpenedAt = Date.now();
|
|
222
|
+
recents.workspaces = [
|
|
223
|
+
next,
|
|
224
|
+
...recents.workspaces.filter(
|
|
225
|
+
(w) =>
|
|
226
|
+
!(
|
|
227
|
+
w.projectId === entry.projectId &&
|
|
228
|
+
w.workspaceId === entry.workspaceId &&
|
|
229
|
+
w.workspaceType === entry.workspaceType
|
|
230
|
+
),
|
|
231
|
+
),
|
|
232
|
+
].slice(0, MAX_RECENT_WORKSPACES);
|
|
233
|
+
writeRecents(service, recents);
|
|
234
|
+
return recents.workspaces;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static workspaceSetup_removeRecentProject(
|
|
238
|
+
service: UserDataService,
|
|
239
|
+
projectId: string,
|
|
240
|
+
): WorkspaceSetupRecents {
|
|
241
|
+
const recents = readRecents(service);
|
|
242
|
+
recents.projects = recents.projects.filter(
|
|
243
|
+
(p) => p.projectId !== projectId,
|
|
244
|
+
);
|
|
245
|
+
recents.workspaces = recents.workspaces.filter(
|
|
246
|
+
(w) => w.projectId !== projectId,
|
|
247
|
+
);
|
|
248
|
+
writeRecents(service, recents);
|
|
249
|
+
return recents;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
static workspaceSetup_removeRecentWorkspace(
|
|
253
|
+
service: UserDataService,
|
|
254
|
+
entry: {
|
|
255
|
+
projectId: string;
|
|
256
|
+
workspaceId: string;
|
|
257
|
+
workspaceType: WorkspaceType;
|
|
258
|
+
},
|
|
259
|
+
): RecentWorkspaceEntry[] {
|
|
260
|
+
const recents = readRecents(service);
|
|
261
|
+
recents.workspaces = recents.workspaces.filter(
|
|
262
|
+
(w) =>
|
|
263
|
+
!(
|
|
264
|
+
w.projectId === entry.projectId &&
|
|
265
|
+
w.workspaceId === entry.workspaceId &&
|
|
266
|
+
w.workspaceType === entry.workspaceType
|
|
267
|
+
),
|
|
268
|
+
);
|
|
269
|
+
writeRecents(service, recents);
|
|
270
|
+
return recents.workspaces;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
static workspaceSetup_clearRecents(service: UserDataService): void {
|
|
274
|
+
writeRecents(service, emptyRecents());
|
|
275
|
+
}
|
|
73
276
|
}
|
|
@@ -237,6 +237,7 @@ export const DataElementReferenceDataEditor = observer(
|
|
|
237
237
|
{renderEmbeddedDataEditor(
|
|
238
238
|
dataElementReferenceState.embeddedDataValueState,
|
|
239
239
|
isReadOnly,
|
|
240
|
+
true,
|
|
240
241
|
)}
|
|
241
242
|
</div>
|
|
242
243
|
</div>
|
|
@@ -377,6 +378,7 @@ export const EmbeddedDataEditor = observer(
|
|
|
377
378
|
export function renderEmbeddedDataEditor(
|
|
378
379
|
embeddedDataState: EmbeddedDataState,
|
|
379
380
|
isReadOnly: boolean,
|
|
381
|
+
isSharedData?: boolean,
|
|
380
382
|
): React.ReactNode {
|
|
381
383
|
if (embeddedDataState instanceof ExternalFormatDataState) {
|
|
382
384
|
return (
|
|
@@ -397,6 +399,8 @@ export function renderEmbeddedDataEditor(
|
|
|
397
399
|
<RelationElementsDataEditor
|
|
398
400
|
dataState={embeddedDataState}
|
|
399
401
|
isReadOnly={isReadOnly}
|
|
402
|
+
isSharedData={isSharedData}
|
|
403
|
+
hideColumnDefinitions={true}
|
|
400
404
|
/>
|
|
401
405
|
);
|
|
402
406
|
} else if (embeddedDataState instanceof DataElementReferenceState) {
|