@finos/legend-extension-dsl-data-space 10.4.170 → 10.4.172

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.
Files changed (28) hide show
  1. package/lib/components/DataSpaceWiki.d.ts.map +1 -1
  2. package/lib/components/DataSpaceWiki.js +2 -2
  3. package/lib/components/DataSpaceWiki.js.map +1 -1
  4. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts +3 -44
  5. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts.map +1 -1
  6. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js +0 -51
  7. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js.map +1 -1
  8. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  9. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +14 -13
  10. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  11. package/lib/index.css +2 -2
  12. package/lib/index.css.map +1 -1
  13. package/lib/package.json +1 -1
  14. package/lib/stores/DataSpaceModelsDocumentationState.d.ts +2 -78
  15. package/lib/stores/DataSpaceModelsDocumentationState.d.ts.map +1 -1
  16. package/lib/stores/DataSpaceModelsDocumentationState.js +3 -400
  17. package/lib/stores/DataSpaceModelsDocumentationState.js.map +1 -1
  18. package/package.json +6 -6
  19. package/src/components/DataSpaceWiki.tsx +6 -3
  20. package/src/graph-manager/action/analytics/DataSpaceAnalysis.ts +2 -68
  21. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +21 -19
  22. package/src/stores/DataSpaceModelsDocumentationState.ts +3 -597
  23. package/tsconfig.json +0 -1
  24. package/lib/components/DataSpaceModelsDocumentation.d.ts +0 -22
  25. package/lib/components/DataSpaceModelsDocumentation.d.ts.map +0 -1
  26. package/lib/components/DataSpaceModelsDocumentation.js +0 -389
  27. package/lib/components/DataSpaceModelsDocumentation.js.map +0 -1
  28. package/src/components/DataSpaceModelsDocumentation.tsx +0 -1151
@@ -13,412 +13,15 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { action, computed, makeObservable, observable } from 'mobx';
17
16
  import {} from './DataSpaceViewerState.js';
18
- import {} from '@finos/legend-art';
19
- import { ActionState, filterByType, guaranteeNonNullable, FuzzySearchEngine, FuzzySearchAdvancedConfigState, } from '@finos/legend-shared';
20
- import { DataSpaceAssociationDocumentationEntry, DataSpaceClassDocumentationEntry, DataSpaceEnumerationDocumentationEntry, DataSpaceModelDocumentationEntry, } from '../graph-manager/action/analytics/DataSpaceAnalysis.js';
21
- import { CORE_PURE_PATH, ELEMENT_PATH_DELIMITER } from '@finos/legend-graph';
22
17
  import { DSL_DATA_SPACE_LEGEND_APPLICATION_COMMAND_KEY } from '../__lib__/DSL_DataSpace_LegendApplicationCommand.js';
23
18
  import { DATA_SPACE_VIEWER_ACTIVITY_MODE } from './DataSpaceViewerNavigation.js';
24
- export var ModelsDocumentationFilterTreeNodeCheckType;
25
- (function (ModelsDocumentationFilterTreeNodeCheckType) {
26
- ModelsDocumentationFilterTreeNodeCheckType[ModelsDocumentationFilterTreeNodeCheckType["CHECKED"] = 0] = "CHECKED";
27
- ModelsDocumentationFilterTreeNodeCheckType[ModelsDocumentationFilterTreeNodeCheckType["UNCHECKED"] = 1] = "UNCHECKED";
28
- ModelsDocumentationFilterTreeNodeCheckType[ModelsDocumentationFilterTreeNodeCheckType["PARTIALLY_CHECKED"] = 2] = "PARTIALLY_CHECKED";
29
- })(ModelsDocumentationFilterTreeNodeCheckType || (ModelsDocumentationFilterTreeNodeCheckType = {}));
30
- export class ModelsDocumentationFilterTreeNodeData {
31
- id;
32
- label;
33
- parentNode;
34
- isOpen = false;
35
- childrenIds = [];
36
- childrenNodes = [];
37
- // By default all nodes are checked
38
- checkType = ModelsDocumentationFilterTreeNodeCheckType.CHECKED;
39
- constructor(id, label, parentNode) {
40
- makeObservable(this, {
41
- isOpen: observable,
42
- checkType: observable,
43
- setIsOpen: action,
44
- setCheckType: action,
45
- });
46
- this.id = id;
47
- this.label = label;
48
- this.parentNode = parentNode;
49
- }
50
- setIsOpen(val) {
51
- this.isOpen = val;
52
- }
53
- setCheckType(val) {
54
- this.checkType = val;
55
- }
56
- }
57
- export class ModelsDocumentationFilterTreeRootNodeData extends ModelsDocumentationFilterTreeNodeData {
58
- }
59
- export class ModelsDocumentationFilterTreePackageNodeData extends ModelsDocumentationFilterTreeNodeData {
60
- packagePath;
61
- constructor(id, label, parentNode, packagePath) {
62
- super(id, label, parentNode);
63
- this.packagePath = packagePath;
64
- }
65
- }
66
- export class ModelsDocumentationFilterTreeElementNodeData extends ModelsDocumentationFilterTreeNodeData {
67
- elementPath;
68
- typePath;
69
- constructor(id, label, parentNode, elementPath, typePath) {
70
- super(id, label, parentNode);
71
- this.elementPath = elementPath;
72
- this.typePath = typePath;
73
- }
74
- }
75
- export class ModelsDocumentationFilterTreeTypeNodeData extends ModelsDocumentationFilterTreeNodeData {
76
- typePath;
77
- constructor(id, label, parentNode, typePath) {
78
- super(id, label, parentNode);
79
- this.typePath = typePath;
80
- }
81
- }
82
- const trickleDownUncheckNodeChildren = (node) => {
83
- node.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.UNCHECKED);
84
- node.childrenNodes.forEach((childNode) => trickleDownUncheckNodeChildren(childNode));
85
- };
86
- const trickleUpUncheckNode = (node) => {
87
- const parentNode = node.parentNode;
88
- if (!parentNode) {
89
- return;
90
- }
91
- if (parentNode.childrenNodes.some((childNode) => childNode.checkType ===
92
- ModelsDocumentationFilterTreeNodeCheckType.CHECKED)) {
93
- parentNode.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.PARTIALLY_CHECKED);
94
- }
95
- else {
96
- parentNode.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.UNCHECKED);
97
- }
98
- trickleUpUncheckNode(parentNode);
99
- };
100
- export const uncheckFilterTreeNode = (node) => {
101
- trickleDownUncheckNodeChildren(node);
102
- trickleUpUncheckNode(node);
103
- };
104
- const trickleDownCheckNode = (node) => {
105
- node.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.CHECKED);
106
- node.childrenNodes.forEach((childNode) => trickleDownCheckNode(childNode));
107
- };
108
- const trickleUpCheckNode = (node) => {
109
- const parentNode = node.parentNode;
110
- if (!parentNode) {
111
- return;
112
- }
113
- if (parentNode.childrenNodes.every((childNode) => childNode.checkType ===
114
- ModelsDocumentationFilterTreeNodeCheckType.CHECKED)) {
115
- parentNode.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.CHECKED);
116
- }
117
- else {
118
- parentNode.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.PARTIALLY_CHECKED);
119
- }
120
- trickleUpCheckNode(parentNode);
121
- };
122
- export const checkFilterTreeNode = (node) => {
123
- trickleDownCheckNode(node);
124
- trickleUpCheckNode(node);
125
- };
126
- export const uncheckAllFilterTree = (treeData) => {
127
- treeData.nodes.forEach((node) => node.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.UNCHECKED));
128
- };
129
- const buildTypeFilterTreeData = () => {
130
- const rootIds = [];
131
- const nodes = new Map();
132
- // all node
133
- const allNode = new ModelsDocumentationFilterTreeRootNodeData('all', 'All Types', undefined);
134
- rootIds.push(allNode.id);
135
- allNode.setIsOpen(true); // open the root node by default
136
- nodes.set(allNode.id, allNode);
137
- // type nodes
138
- const classNode = new ModelsDocumentationFilterTreeTypeNodeData('class', 'Class', allNode, CORE_PURE_PATH.CLASS);
139
- allNode.childrenIds.push(classNode.id);
140
- nodes.set(classNode.id, classNode);
141
- const enumerationNode = new ModelsDocumentationFilterTreeTypeNodeData('enumeration', 'Enumeration', allNode, CORE_PURE_PATH.ENUMERATION);
142
- allNode.childrenIds.push(enumerationNode.id);
143
- nodes.set(enumerationNode.id, enumerationNode);
144
- const associationNode = new ModelsDocumentationFilterTreeTypeNodeData('association', 'Association', allNode, CORE_PURE_PATH.ASSOCIATION);
145
- allNode.childrenIds.push(associationNode.id);
146
- nodes.set(associationNode.id, associationNode);
147
- allNode.childrenNodes = [classNode, enumerationNode, associationNode];
148
- return {
149
- rootIds,
150
- nodes,
151
- };
152
- };
153
- const buildPackageFilterTreeData = (modelDocEntries) => {
154
- const rootIds = [];
155
- const nodes = new Map();
156
- // all node
157
- const allNode = new ModelsDocumentationFilterTreeRootNodeData('all', 'All Packages', undefined);
158
- rootIds.push(allNode.id);
159
- allNode.setIsOpen(true); // open the root node by default
160
- nodes.set(allNode.id, allNode);
161
- modelDocEntries.forEach((entry) => {
162
- const path = entry.path;
163
- const chunks = path.split(ELEMENT_PATH_DELIMITER);
164
- let currentParentNode = allNode;
165
- for (let i = 0; i < chunks.length; i++) {
166
- const chunk = guaranteeNonNullable(chunks[i]);
167
- const elementPath = `${currentParentNode === allNode
168
- ? ''
169
- : `${currentParentNode.id}${ELEMENT_PATH_DELIMITER}`}${chunk}`;
170
- const nodeId = elementPath;
171
- let node = nodes.get(nodeId);
172
- if (!node) {
173
- if (i === chunks.length - 1) {
174
- node = new ModelsDocumentationFilterTreeElementNodeData(nodeId, chunk, currentParentNode, elementPath, entry instanceof DataSpaceClassDocumentationEntry
175
- ? CORE_PURE_PATH.CLASS
176
- : entry instanceof DataSpaceEnumerationDocumentationEntry
177
- ? CORE_PURE_PATH.ENUMERATION
178
- : entry instanceof DataSpaceAssociationDocumentationEntry
179
- ? CORE_PURE_PATH.ASSOCIATION
180
- : undefined);
181
- }
182
- else {
183
- node = new ModelsDocumentationFilterTreePackageNodeData(nodeId, chunk, currentParentNode, elementPath);
184
- }
185
- nodes.set(nodeId, node);
186
- currentParentNode.childrenIds.push(nodeId);
187
- currentParentNode.childrenNodes.push(node);
188
- }
189
- currentParentNode = node;
190
- }
191
- });
192
- return {
193
- rootIds,
194
- nodes,
195
- };
196
- };
197
- export class DataSpaceViewerModelsDocumentationState {
19
+ import { ViewerModelsDocumentationState } from '@finos/legend-lego/model-documentation';
20
+ export class DataSpaceViewerModelsDocumentationState extends ViewerModelsDocumentationState {
198
21
  dataSpaceViewerState;
199
- showHumanizedForm = true;
200
- // search text
201
- searchInput;
202
- searchEngine;
203
- searchConfigurationState;
204
- searchState = ActionState.create();
205
- searchText;
206
- searchResults = [];
207
- showSearchConfigurationMenu = false;
208
- // filter
209
- showFilterPanel = true;
210
- typeFilterTreeData;
211
- packageFilterTreeData;
212
- filterTypes = [];
213
- filterPaths = [];
214
22
  constructor(dataSpaceViewerState) {
215
- makeObservable(this, {
216
- showHumanizedForm: observable,
217
- searchText: observable,
218
- // NOTE: we use `observable.struct` for these to avoid unnecessary re-rendering of the grid
219
- searchResults: observable.struct,
220
- filterTypes: observable.struct,
221
- filterPaths: observable.struct,
222
- showSearchConfigurationMenu: observable,
223
- showFilterPanel: observable,
224
- typeFilterTreeData: observable.ref,
225
- packageFilterTreeData: observable.ref,
226
- filteredSearchResults: computed,
227
- isTypeFilterCustomized: computed,
228
- isPackageFilterCustomized: computed,
229
- isFilterCustomized: computed,
230
- setShowHumanizedForm: action,
231
- setSearchText: action,
232
- resetSearch: action,
233
- search: action,
234
- setShowSearchConfigurationMenu: action,
235
- setShowFilterPanel: action,
236
- resetTypeFilterTreeData: action,
237
- resetPackageFilterTreeData: action,
238
- updateTypeFilter: action,
239
- updatePackageFilter: action,
240
- resetTypeFilter: action,
241
- resetPackageFilter: action,
242
- resetAllFilters: action,
243
- });
23
+ super(dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs);
244
24
  this.dataSpaceViewerState = dataSpaceViewerState;
245
- this.searchEngine = new FuzzySearchEngine(this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs, {
246
- includeScore: true,
247
- // NOTE: we must not sort/change the order in the grid since
248
- // we want to ensure the element row is on top
249
- shouldSort: false,
250
- // Ignore location when computing the search score
251
- // See https://fusejs.io/concepts/scoring-theory.html
252
- ignoreLocation: true,
253
- // This specifies the point the search gives up
254
- // `0.0` means exact match where `1.0` would match anything
255
- // We set a relatively low threshold to filter out irrelevant results
256
- threshold: 0.2,
257
- keys: [
258
- {
259
- name: 'text',
260
- weight: 3,
261
- },
262
- {
263
- name: 'humanizedText',
264
- weight: 3,
265
- },
266
- {
267
- name: 'elementEntry.name',
268
- weight: 3,
269
- },
270
- {
271
- name: 'elementEntry.humanizedName',
272
- weight: 3,
273
- },
274
- {
275
- name: 'entry.name',
276
- weight: 2,
277
- },
278
- {
279
- name: 'entry.humanizedName',
280
- weight: 2,
281
- },
282
- {
283
- name: 'documentation',
284
- weight: 4,
285
- },
286
- ],
287
- // extended search allows for exact word match through single quote
288
- // See https://fusejs.io/examples.html#extended-search
289
- useExtendedSearch: true,
290
- });
291
- this.searchConfigurationState = new FuzzySearchAdvancedConfigState(() => this.search());
292
- this.searchText = '';
293
- this.searchResults =
294
- this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs;
295
- this.typeFilterTreeData = buildTypeFilterTreeData();
296
- this.packageFilterTreeData = buildPackageFilterTreeData(this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs
297
- .map((entry) => entry.entry)
298
- .filter(filterByType(DataSpaceModelDocumentationEntry)));
299
- this.updateTypeFilter();
300
- this.updatePackageFilter();
301
- }
302
- get filteredSearchResults() {
303
- return (this.searchResults
304
- // filter by types
305
- .filter((result) => (this.filterTypes.includes(CORE_PURE_PATH.CLASS) &&
306
- result.elementEntry instanceof
307
- DataSpaceClassDocumentationEntry) ||
308
- (this.filterTypes.includes(CORE_PURE_PATH.ENUMERATION) &&
309
- result.elementEntry instanceof
310
- DataSpaceEnumerationDocumentationEntry) ||
311
- (this.filterTypes.includes(CORE_PURE_PATH.ASSOCIATION) &&
312
- result.elementEntry instanceof
313
- DataSpaceAssociationDocumentationEntry))
314
- // filter by paths
315
- .filter((result) => this.filterPaths.includes(result.elementEntry.path)));
316
- }
317
- get isTypeFilterCustomized() {
318
- return Array.from(this.typeFilterTreeData.nodes.values()).some((node) => node.checkType === ModelsDocumentationFilterTreeNodeCheckType.UNCHECKED);
319
- }
320
- get isPackageFilterCustomized() {
321
- return Array.from(this.packageFilterTreeData.nodes.values()).some((node) => node.checkType === ModelsDocumentationFilterTreeNodeCheckType.UNCHECKED);
322
- }
323
- get isFilterCustomized() {
324
- return this.isTypeFilterCustomized || this.isPackageFilterCustomized;
325
- }
326
- setShowHumanizedForm(val) {
327
- this.showHumanizedForm = val;
328
- }
329
- setSearchText(val) {
330
- this.searchText = val;
331
- }
332
- resetSearch() {
333
- this.searchText = '';
334
- this.searchResults =
335
- this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs;
336
- this.searchState.complete();
337
- }
338
- search() {
339
- if (!this.searchText) {
340
- this.searchResults =
341
- this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs;
342
- return;
343
- }
344
- this.searchState.inProgress();
345
- this.searchResults = Array.from(this.searchEngine
346
- .search(this.searchConfigurationState.generateSearchText(this.searchText))
347
- .values()).map((result) => result.item);
348
- this.searchState.complete();
349
- }
350
- setShowSearchConfigurationMenu(val) {
351
- this.showSearchConfigurationMenu = val;
352
- }
353
- setShowFilterPanel(val) {
354
- this.showFilterPanel = val;
355
- }
356
- resetTypeFilterTreeData() {
357
- this.typeFilterTreeData = { ...this.typeFilterTreeData };
358
- }
359
- resetPackageFilterTreeData() {
360
- this.packageFilterTreeData = { ...this.packageFilterTreeData };
361
- }
362
- updateTypeFilter() {
363
- const types = [];
364
- this.typeFilterTreeData.nodes.forEach((node) => {
365
- if (node instanceof ModelsDocumentationFilterTreeTypeNodeData &&
366
- node.checkType === ModelsDocumentationFilterTreeNodeCheckType.CHECKED) {
367
- types.push(node.typePath);
368
- }
369
- });
370
- // NOTE: sort to avoid unnecessary re-computation of filtered search results
371
- this.filterTypes = types.toSorted((a, b) => a.localeCompare(b));
372
- }
373
- updatePackageFilter() {
374
- const elementPaths = [];
375
- this.packageFilterTreeData.nodes.forEach((node) => {
376
- if (node instanceof ModelsDocumentationFilterTreeElementNodeData &&
377
- node.checkType === ModelsDocumentationFilterTreeNodeCheckType.CHECKED) {
378
- elementPaths.push(node.elementPath);
379
- }
380
- });
381
- // NOTE: sort to avoid unnecessary re-computation of filtered search results
382
- this.filterPaths = elementPaths.toSorted((a, b) => a.localeCompare(b));
383
- }
384
- resetTypeFilter() {
385
- this.typeFilterTreeData.nodes.forEach((node) => node.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.CHECKED));
386
- this.updateTypeFilter();
387
- this.resetTypeFilterTreeData();
388
- }
389
- resetPackageFilter() {
390
- this.packageFilterTreeData.nodes.forEach((node) => node.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.CHECKED));
391
- this.updatePackageFilter();
392
- this.resetPackageFilterTreeData();
393
- }
394
- resetAllFilters() {
395
- this.resetTypeFilter();
396
- this.resetPackageFilter();
397
- }
398
- hasClassDocumentation(classPath) {
399
- return this.dataSpaceViewerState.dataSpaceAnalysisResult.elementDocs.some((entry) => entry.elementEntry.path === classPath);
400
- }
401
- viewClassDocumentation(classPath) {
402
- if (this.hasClassDocumentation(classPath)) {
403
- const classNode = this.packageFilterTreeData.nodes.get(classPath);
404
- if (classNode) {
405
- uncheckAllFilterTree(this.packageFilterTreeData);
406
- trickleDownCheckNode(classNode);
407
- trickleUpCheckNode(classNode);
408
- classNode.setCheckType(ModelsDocumentationFilterTreeNodeCheckType.CHECKED);
409
- this.resetSearch();
410
- this.updatePackageFilter();
411
- }
412
- }
413
- }
414
- setSearchInput(el) {
415
- this.searchInput = el;
416
- }
417
- focusSearchInput() {
418
- this.searchInput?.focus();
419
- }
420
- selectSearchInput() {
421
- this.searchInput?.select();
422
25
  }
423
26
  registerCommands() {
424
27
  const DEFAULT_TRIGGER = () => this.dataSpaceViewerState.currentActivity ===
@@ -1 +1 @@
1
- {"version":3,"file":"DataSpaceModelsDocumentationState.js","sourceRoot":"","sources":["../../src/stores/DataSpaceModelsDocumentationState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataSpaceModelsDocumentationState.js","sourceRoot":"","sources":["../../src/stores/DataSpaceModelsDocumentationState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA6B,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAAE,6CAA6C,EAAE,MAAM,sDAAsD,CAAC;AACrH,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAExF,MAAM,OAAO,uCACX,SAAQ,8BAA8B;IAG7B,oBAAoB,CAAuB;IAEpD,YAAY,oBAA0C;QACpD,KAAK,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAEhE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAED,gBAAgB;QACd,MAAM,eAAe,GAAG,GAAY,EAAE,CACpC,IAAI,CAAC,oBAAoB,CAAC,eAAe;YACzC,+BAA+B,CAAC,oBAAoB,CAAC;QACvD,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,cAAc,CAAC,eAAe,CAAC;YACxE,GAAG,EAAE,6CAA6C,CAAC,oBAAoB;YACvE,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;QAChB;YACE,6CAA6C,CAAC,oBAAoB;SACnE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CACvB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,cAAc,CAAC,iBAAiB,CACzE,UAAU,CACX,CACF,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-extension-dsl-data-space",
3
- "version": "10.4.170",
3
+ "version": "10.4.172",
4
4
  "description": "Legend extension for Data Space DSL",
5
5
  "keywords": [
6
6
  "legend",
@@ -46,12 +46,12 @@
46
46
  "@finos/legend-application": "16.0.82",
47
47
  "@finos/legend-art": "7.1.132",
48
48
  "@finos/legend-code-editor": "2.0.136",
49
- "@finos/legend-extension-dsl-diagram": "8.1.193",
49
+ "@finos/legend-extension-dsl-diagram": "8.1.195",
50
50
  "@finos/legend-graph": "32.3.17",
51
- "@finos/legend-lego": "2.0.148",
52
- "@finos/legend-query-builder": "4.17.62",
53
- "@finos/legend-server-depot": "6.1.3",
54
- "@finos/legend-server-sdlc": "5.3.66",
51
+ "@finos/legend-lego": "2.0.149",
52
+ "@finos/legend-query-builder": "4.17.64",
53
+ "@finos/legend-server-depot": "6.1.4",
54
+ "@finos/legend-server-sdlc": "5.3.67",
55
55
  "@finos/legend-shared": "11.0.21",
56
56
  "@finos/legend-storage": "3.0.140",
57
57
  "@types/react": "19.0.10",
@@ -17,11 +17,11 @@
17
17
  import type { DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
18
18
  import { observer } from 'mobx-react-lite';
19
19
  import { DataSpaceDiagramViewer } from './DataSpaceDiagramViewer.js';
20
- import { DataSpaceModelsDocumentation } from './DataSpaceModelsDocumentation.js';
21
20
  import { DataSpaceQuickStart } from './DataSpaceQuickStart.js';
22
21
  import { DataSpaceDataAccess } from './DataSpaceDataAccess.js';
23
22
  import { DataSpaceDescription } from './DataSpaceDescription.js';
24
23
  import { useEffect } from 'react';
24
+ import { ModelsDocumentation } from '@finos/legend-lego/model-documentation';
25
25
 
26
26
  export const DataSpaceWiki = observer(
27
27
  (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
@@ -55,8 +55,11 @@ export const DataSpaceWiki = observer(
55
55
  <div className="data-space__viewer__wiki">
56
56
  <DataSpaceDescription dataSpaceViewerState={dataSpaceViewerState} />
57
57
  <DataSpaceDiagramViewer dataSpaceViewerState={dataSpaceViewerState} />
58
- <DataSpaceModelsDocumentation
59
- dataSpaceViewerState={dataSpaceViewerState}
58
+ <ModelsDocumentation
59
+ modelsDocumentationState={
60
+ dataSpaceViewerState.modelsDocumentationState
61
+ }
62
+ applicationStore={dataSpaceViewerState.applicationStore}
60
63
  />
61
64
  <DataSpaceQuickStart dataSpaceViewerState={dataSpaceViewerState} />
62
65
  <DataSpaceDataAccess dataSpaceViewerState={dataSpaceViewerState} />
@@ -15,7 +15,6 @@
15
15
  */
16
16
 
17
17
  import type {
18
- Multiplicity,
19
18
  Mapping,
20
19
  PackageableRuntime,
21
20
  PureModel,
@@ -26,6 +25,7 @@ import type {
26
25
  import { prettyCONSTName, uuid } from '@finos/legend-shared';
27
26
  import type { DataSpaceSupportInfo } from '../../../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
28
27
  import type { Diagram } from '@finos/legend-extension-dsl-diagram/graph';
28
+ import type { NormalizedDocumentationEntry } from '@finos/legend-lego/model-documentation';
29
29
 
30
30
  export class DataSpaceExecutionContextAnalysisResult {
31
31
  name!: string;
@@ -59,72 +59,6 @@ export class DataSpaceStereotypeInfo {
59
59
  value!: string;
60
60
  }
61
61
 
62
- export class NormalizedDataSpaceDocumentationEntry {
63
- readonly uuid = uuid();
64
- readonly text: string;
65
- readonly documentation: string;
66
- readonly elementEntry: DataSpaceModelDocumentationEntry;
67
- readonly entry: DataSpaceBasicDocumentationEntry;
68
-
69
- constructor(
70
- text: string,
71
- documentation: string,
72
- elementEntry: DataSpaceModelDocumentationEntry,
73
- entry: DataSpaceBasicDocumentationEntry,
74
- ) {
75
- this.text = text;
76
- this.documentation = documentation;
77
- this.elementEntry = elementEntry;
78
- this.entry = entry;
79
- }
80
-
81
- get humanizedText(): string {
82
- return prettyCONSTName(this.text);
83
- }
84
- }
85
-
86
- export class DataSpaceBasicDocumentationEntry {
87
- name!: string;
88
- docs: string[] = [];
89
-
90
- get humanizedName(): string {
91
- return prettyCONSTName(this.name);
92
- }
93
- }
94
-
95
- export class DataSpacePropertyDocumentationEntry extends DataSpaceBasicDocumentationEntry {
96
- milestoning?: string | undefined;
97
- /**
98
- * Make this optional for backward compatibility
99
- *
100
- * @backwardCompatibility
101
- */
102
- type?: string | undefined;
103
- /**
104
- * Make this optional for backward compatibility
105
- *
106
- * @backwardCompatibility
107
- */
108
- multiplicity?: Multiplicity | undefined;
109
- }
110
-
111
- export class DataSpaceModelDocumentationEntry extends DataSpaceBasicDocumentationEntry {
112
- path!: string;
113
- }
114
-
115
- export class DataSpaceClassDocumentationEntry extends DataSpaceModelDocumentationEntry {
116
- properties: DataSpacePropertyDocumentationEntry[] = [];
117
- milestoning?: string | undefined;
118
- }
119
-
120
- export class DataSpaceEnumerationDocumentationEntry extends DataSpaceModelDocumentationEntry {
121
- enumValues: DataSpaceBasicDocumentationEntry[] = [];
122
- }
123
-
124
- export class DataSpaceAssociationDocumentationEntry extends DataSpaceModelDocumentationEntry {
125
- properties: DataSpacePropertyDocumentationEntry[] = [];
126
- }
127
-
128
62
  export class DataSpaceDiagramAnalysisResult {
129
63
  readonly uuid = uuid();
130
64
  title!: string;
@@ -209,7 +143,7 @@ export class DataSpaceAnalysisResult {
209
143
  executionContextsIndex!: Map<string, DataSpaceExecutionContextAnalysisResult>;
210
144
  defaultExecutionContext!: DataSpaceExecutionContextAnalysisResult;
211
145
 
212
- elementDocs: NormalizedDataSpaceDocumentationEntry[] = [];
146
+ elementDocs: NormalizedDocumentationEntry[] = [];
213
147
 
214
148
  elements: string[] = [];
215
149