@finos/legend-extension-dsl-data-space 9.1.4 → 9.1.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.
Files changed (168) hide show
  1. package/lib/application/studio/DSL_DataSpace_LegendStudioCodeSnippet.d.ts +1 -1
  2. package/lib/application/studio/DSL_DataSpace_LegendStudioCodeSnippet.d.ts.map +1 -1
  3. package/lib/application/studio/DSL_DataSpace_LegendStudioCodeSnippet.js +15 -2
  4. package/lib/application/studio/DSL_DataSpace_LegendStudioCodeSnippet.js.map +1 -1
  5. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts +0 -4
  6. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts.map +1 -1
  7. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +0 -3
  8. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  9. package/lib/components/DataSpaceDataAccess.d.ts +23 -0
  10. package/lib/components/DataSpaceDataAccess.d.ts.map +1 -0
  11. package/lib/components/DataSpaceDataAccess.js +34 -0
  12. package/lib/components/DataSpaceDataAccess.js.map +1 -0
  13. package/lib/components/DataSpaceDescription.d.ts +23 -0
  14. package/lib/components/DataSpaceDescription.d.ts.map +1 -0
  15. package/lib/components/DataSpaceDescription.js +26 -0
  16. package/lib/components/DataSpaceDescription.js.map +1 -0
  17. package/lib/components/DataSpaceDiagramViewer.d.ts +23 -0
  18. package/lib/components/DataSpaceDiagramViewer.d.ts.map +1 -0
  19. package/lib/components/DataSpaceDiagramViewer.js +75 -0
  20. package/lib/components/DataSpaceDiagramViewer.js.map +1 -0
  21. package/lib/components/DataSpaceExecutionContextViewer.d.ts +23 -0
  22. package/lib/components/DataSpaceExecutionContextViewer.d.ts.map +1 -0
  23. package/lib/components/DataSpaceExecutionContextViewer.js +58 -0
  24. package/lib/components/DataSpaceExecutionContextViewer.js.map +1 -0
  25. package/lib/components/DataSpaceInfoPanel.d.ts +23 -0
  26. package/lib/components/DataSpaceInfoPanel.d.ts.map +1 -0
  27. package/lib/components/DataSpaceInfoPanel.js +38 -0
  28. package/lib/components/DataSpaceInfoPanel.js.map +1 -0
  29. package/lib/components/DataSpaceMarkdownTextViewer.d.ts +20 -0
  30. package/lib/components/DataSpaceMarkdownTextViewer.d.ts.map +1 -0
  31. package/lib/components/DataSpaceMarkdownTextViewer.js +25 -0
  32. package/lib/components/DataSpaceMarkdownTextViewer.js.map +1 -0
  33. package/lib/components/DataSpaceModelsDocumentation.d.ts +23 -0
  34. package/lib/components/DataSpaceModelsDocumentation.d.ts.map +1 -0
  35. package/lib/components/DataSpaceModelsDocumentation.js +58 -0
  36. package/lib/components/DataSpaceModelsDocumentation.js.map +1 -0
  37. package/lib/components/{studio/DataSpacePreview.d.ts → DataSpacePlaceholder.d.ts} +4 -4
  38. package/lib/components/DataSpacePlaceholder.d.ts.map +1 -0
  39. package/lib/components/DataSpacePlaceholder.js +18 -0
  40. package/lib/components/DataSpacePlaceholder.js.map +1 -0
  41. package/lib/components/DataSpaceQuickStart.d.ts +23 -0
  42. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -0
  43. package/lib/components/DataSpaceQuickStart.js +108 -0
  44. package/lib/components/DataSpaceQuickStart.js.map +1 -0
  45. package/lib/components/DataSpaceSupportPanel.d.ts +23 -0
  46. package/lib/components/DataSpaceSupportPanel.d.ts.map +1 -0
  47. package/lib/components/DataSpaceSupportPanel.js +40 -0
  48. package/lib/components/DataSpaceSupportPanel.js.map +1 -0
  49. package/lib/components/DataSpaceViewer.d.ts.map +1 -1
  50. package/lib/components/DataSpaceViewer.js +40 -276
  51. package/lib/components/DataSpaceViewer.js.map +1 -1
  52. package/lib/components/DataSpaceViewerActivityBar.d.ts +23 -0
  53. package/lib/components/DataSpaceViewerActivityBar.d.ts.map +1 -0
  54. package/lib/components/DataSpaceViewerActivityBar.js +105 -0
  55. package/lib/components/DataSpaceViewerActivityBar.js.map +1 -0
  56. package/lib/components/DataSpaceWiki.d.ts +23 -0
  57. package/lib/components/DataSpaceWiki.d.ts.map +1 -0
  58. package/lib/components/DataSpaceWiki.js +12 -0
  59. package/lib/components/DataSpaceWiki.js.map +1 -0
  60. package/lib/components/query/DataSpaceAdvancedSearchModal.js +1 -1
  61. package/lib/components/query/DataSpaceAdvancedSearchModal.js.map +1 -1
  62. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts +1 -2
  63. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts.map +1 -1
  64. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.js +0 -13
  65. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.js.map +1 -1
  66. package/lib/components/studio/DataSpacePreviewAction.js +1 -1
  67. package/lib/components/studio/DataSpacePreviewAction.js.map +1 -1
  68. package/lib/graph/DSL_DataSpace_HashUtils.d.ts +3 -2
  69. package/lib/graph/DSL_DataSpace_HashUtils.d.ts.map +1 -1
  70. package/lib/graph/DSL_DataSpace_HashUtils.js +3 -2
  71. package/lib/graph/DSL_DataSpace_HashUtils.js.map +1 -1
  72. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +23 -0
  73. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  74. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +50 -0
  75. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  76. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.d.ts +5 -0
  77. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.d.ts.map +1 -1
  78. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.js +7 -0
  79. package/lib/graphManager/DSL_DataSpace_PureGraphManagerPlugin.js.map +1 -1
  80. package/lib/graphManager/action/analytics/DataSpaceAnalysis.d.ts +39 -5
  81. package/lib/graphManager/action/analytics/DataSpaceAnalysis.d.ts.map +1 -1
  82. package/lib/graphManager/action/analytics/DataSpaceAnalysis.js +40 -8
  83. package/lib/graphManager/action/analytics/DataSpaceAnalysis.js.map +1 -1
  84. package/lib/graphManager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  85. package/lib/graphManager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +70 -11
  86. package/lib/graphManager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  87. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  88. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +62 -10
  89. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  90. package/lib/graphManager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +7 -0
  91. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts +39 -0
  92. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts.map +1 -1
  93. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +92 -3
  94. package/lib/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  95. package/lib/graphManager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +23 -0
  96. package/lib/graphManager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  97. package/lib/graphManager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +50 -0
  98. package/lib/graphManager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  99. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts +0 -1
  100. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  101. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +33 -5
  102. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  103. package/lib/index.css +2 -2
  104. package/lib/index.css.map +1 -1
  105. package/lib/index.d.ts +2 -1
  106. package/lib/index.d.ts.map +1 -1
  107. package/lib/index.js +2 -1
  108. package/lib/index.js.map +1 -1
  109. package/lib/package.json +10 -6
  110. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.d.ts +32 -0
  111. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.d.ts.map +1 -0
  112. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.js +17 -0
  113. package/lib/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.js.map +1 -0
  114. package/lib/stores/DataSpaceViewerState.d.ts +17 -14
  115. package/lib/stores/DataSpaceViewerState.d.ts.map +1 -1
  116. package/lib/stores/DataSpaceViewerState.js +25 -12
  117. package/lib/stores/DataSpaceViewerState.js.map +1 -1
  118. package/lib/stores/studio/DataSpacePreviewState.d.ts.map +1 -1
  119. package/lib/stores/studio/DataSpacePreviewState.js +0 -3
  120. package/lib/stores/studio/DataSpacePreviewState.js.map +1 -1
  121. package/package.json +21 -17
  122. package/src/application/studio/DSL_DataSpace_LegendStudioCodeSnippet.ts +15 -2
  123. package/src/components/DSL_DataSpace_LegendApplicationPlugin.ts +0 -9
  124. package/src/components/DataSpaceDataAccess.tsx +66 -0
  125. package/src/components/DataSpaceDescription.tsx +55 -0
  126. package/src/components/DataSpaceDiagramViewer.tsx +199 -0
  127. package/src/components/DataSpaceExecutionContextViewer.tsx +167 -0
  128. package/src/components/DataSpaceInfoPanel.tsx +170 -0
  129. package/src/components/DataSpaceMarkdownTextViewer.tsx +33 -0
  130. package/src/components/DataSpaceModelsDocumentation.tsx +99 -0
  131. package/src/components/DataSpacePlaceholder.tsx +21 -0
  132. package/src/components/DataSpaceQuickStart.tsx +381 -0
  133. package/src/components/DataSpaceSupportPanel.tsx +80 -0
  134. package/src/components/DataSpaceViewer.tsx +88 -1052
  135. package/src/components/DataSpaceViewerActivityBar.tsx +215 -0
  136. package/src/components/DataSpaceWiki.tsx +41 -0
  137. package/src/components/query/DataSpaceAdvancedSearchModal.tsx +1 -1
  138. package/src/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.tsx +0 -15
  139. package/src/components/studio/DataSpacePreviewAction.tsx +1 -1
  140. package/src/graph/DSL_DataSpace_HashUtils.ts +3 -2
  141. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +60 -0
  142. package/src/graphManager/DSL_DataSpace_PureGraphManagerPlugin.ts +9 -0
  143. package/src/graphManager/action/analytics/DataSpaceAnalysis.ts +54 -15
  144. package/src/graphManager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +99 -14
  145. package/src/graphManager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +86 -17
  146. package/src/graphManager/protocol/pure/v1/V1_DSL_DataSpace_SystemModels.json +7 -0
  147. package/src/graphManager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +140 -2
  148. package/src/graphManager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +60 -0
  149. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +51 -7
  150. package/src/index.ts +2 -4
  151. package/src/stores/DSL_DataSpace_LegendApplicationPlugin_Extension.ts +41 -0
  152. package/src/stores/DataSpaceViewerState.ts +39 -20
  153. package/src/stores/studio/DataSpacePreviewState.ts +0 -5
  154. package/tsconfig.json +13 -3
  155. package/lib/application/studio/DSL_DataSpace_LegendStudioNavigation.d.ts +0 -28
  156. package/lib/application/studio/DSL_DataSpace_LegendStudioNavigation.d.ts.map +0 -1
  157. package/lib/application/studio/DSL_DataSpace_LegendStudioNavigation.js +0 -30
  158. package/lib/application/studio/DSL_DataSpace_LegendStudioNavigation.js.map +0 -1
  159. package/lib/components/studio/DataSpacePreview.d.ts.map +0 -1
  160. package/lib/components/studio/DataSpacePreview.js +0 -52
  161. package/lib/components/studio/DataSpacePreview.js.map +0 -1
  162. package/lib/stores/studio/DataSpacePreviewStore.d.ts +0 -34
  163. package/lib/stores/studio/DataSpacePreviewStore.d.ts.map +0 -1
  164. package/lib/stores/studio/DataSpacePreviewStore.js +0 -98
  165. package/lib/stores/studio/DataSpacePreviewStore.js.map +0 -1
  166. package/src/application/studio/DSL_DataSpace_LegendStudioNavigation.ts +0 -53
  167. package/src/components/studio/DataSpacePreview.tsx +0 -129
  168. package/src/stores/studio/DataSpacePreviewStore.ts +0 -172
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { observer } from 'mobx-react-lite';
18
+ import {
19
+ ShapesIcon,
20
+ PlayIcon,
21
+ QuestionCircleIcon,
22
+ clsx,
23
+ InfoCircleIcon,
24
+ DocumentationIcon,
25
+ LaunchIcon,
26
+ DataAccessIcon,
27
+ GovernanceIcon,
28
+ CostCircleIcon,
29
+ DatasetIcon,
30
+ AvailabilityIcon,
31
+ HomeIcon,
32
+ MenuContent,
33
+ MenuContentItem,
34
+ MenuIcon,
35
+ DropdownMenu,
36
+ } from '@finos/legend-art';
37
+ import {
38
+ type DataSpaceViewerState,
39
+ DATA_SPACE_VIEWER_ACTIVITY_MODE,
40
+ } from '../stores/DataSpaceViewerState.js';
41
+
42
+ const ActivityBarMenu = observer(
43
+ (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
44
+ const { dataSpaceViewerState } = props;
45
+
46
+ // actions
47
+ const toggleExpandedMode = (): void =>
48
+ dataSpaceViewerState.enableExpandedMode(
49
+ !dataSpaceViewerState.isExpandedModeEnabled,
50
+ );
51
+
52
+ return (
53
+ <>
54
+ <div className="data-space__viewer__activity-bar__menu">
55
+ <DropdownMenu
56
+ className="data-space__viewer__activity-bar__menu-item"
57
+ menuProps={{
58
+ anchorOrigin: { vertical: 'top', horizontal: 'right' },
59
+ transformOrigin: { vertical: 'top', horizontal: 'left' },
60
+ elevation: 7,
61
+ }}
62
+ content={
63
+ <MenuContent>
64
+ <MenuContentItem onClick={toggleExpandedMode}>
65
+ {dataSpaceViewerState.isExpandedModeEnabled
66
+ ? 'Disable Expanded Mode'
67
+ : 'Enable Expanded Mode'}{' '}
68
+ </MenuContentItem>
69
+ </MenuContent>
70
+ }
71
+ >
72
+ <MenuIcon />
73
+ </DropdownMenu>
74
+ </div>
75
+ </>
76
+ );
77
+ },
78
+ );
79
+
80
+ interface DataSpaceViewerActivityConfig {
81
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE;
82
+ title: string;
83
+ icon: React.ReactElement;
84
+ }
85
+
86
+ export const DataSpaceViewerActivityBar = observer(
87
+ (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
88
+ const { dataSpaceViewerState } = props;
89
+ const changeActivity =
90
+ (activity: DATA_SPACE_VIEWER_ACTIVITY_MODE): (() => void) =>
91
+ (): void =>
92
+ dataSpaceViewerState.setCurrentActivity(activity);
93
+
94
+ const wikiActivities: DataSpaceViewerActivityConfig[] = [
95
+ {
96
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DESCRIPTION,
97
+ title: 'Description',
98
+ icon: (
99
+ <HomeIcon className="data-space__viewer__activity-bar__icon--home" />
100
+ ),
101
+ },
102
+ {
103
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DIAGRAM_VIEWER,
104
+ title: 'Diagrams',
105
+ icon: <ShapesIcon />,
106
+ },
107
+ {
108
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.MODELS_DOCUMENTATION,
109
+ title: 'Models Documentation',
110
+ icon: <DocumentationIcon />,
111
+ },
112
+ {
113
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.QUICK_START,
114
+ title: 'Quick Start',
115
+ icon: (
116
+ <LaunchIcon className="data-space__viewer__activity-bar__icon--launch" />
117
+ ),
118
+ },
119
+ {
120
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DATA_ACCESS,
121
+ title: 'Data Access',
122
+ icon: (
123
+ <DataAccessIcon className="data-space__viewer__activity-bar__icon--access" />
124
+ ),
125
+ },
126
+ ];
127
+
128
+ const activities: DataSpaceViewerActivityConfig[] = [
129
+ {
130
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.EXECUTION_CONTEXT,
131
+ title: 'Execution Context',
132
+ icon: <PlayIcon />,
133
+ },
134
+ {
135
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DATA_STORES,
136
+ title: 'Data Stores',
137
+ icon: (
138
+ <DatasetIcon className="data-space__viewer__activity-bar__icon--dataset" />
139
+ ),
140
+ },
141
+ {
142
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DATA_AVAILABILITY,
143
+ title: 'Data Availability',
144
+ icon: (
145
+ <AvailabilityIcon className="data-space__viewer__activity-bar__icon--availability" />
146
+ ),
147
+ },
148
+ {
149
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DATA_COST,
150
+ title: 'Data Cost',
151
+ icon: (
152
+ <CostCircleIcon className="data-space__viewer__activity-bar__icon--cost" />
153
+ ),
154
+ },
155
+ {
156
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.DATA_GOVERNANCE,
157
+ title: 'Governance',
158
+ icon: (
159
+ <GovernanceIcon className="data-space__viewer__activity-bar__icon--governance" />
160
+ ),
161
+ },
162
+ {
163
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.INFO,
164
+ title: 'Info',
165
+ icon: (
166
+ <InfoCircleIcon className="data-space__viewer__activity-bar__icon--info" />
167
+ ),
168
+ },
169
+ {
170
+ mode: DATA_SPACE_VIEWER_ACTIVITY_MODE.SUPPORT,
171
+ title: 'Support',
172
+ icon: (
173
+ <QuestionCircleIcon className="data-space__viewer__activity-bar__icon--support" />
174
+ ),
175
+ },
176
+ ];
177
+
178
+ return (
179
+ <div className="data-space__viewer__activity-bar">
180
+ <ActivityBarMenu dataSpaceViewerState={dataSpaceViewerState} />
181
+ <div className="data-space__viewer__activity-bar__items">
182
+ {wikiActivities.map((activity) => (
183
+ <button
184
+ key={activity.mode}
185
+ className={clsx('data-space__viewer__activity-bar__item', {
186
+ 'data-space__viewer__activity-bar__item--active':
187
+ dataSpaceViewerState.currentActivity === activity.mode,
188
+ })}
189
+ onClick={changeActivity(activity.mode)}
190
+ tabIndex={-1}
191
+ title={activity.title}
192
+ >
193
+ {activity.icon}
194
+ </button>
195
+ ))}
196
+ <div className="data-space__viewer__activity-bar__divider" />
197
+ {activities.map((activity) => (
198
+ <button
199
+ key={activity.mode}
200
+ className={clsx('data-space__viewer__activity-bar__item', {
201
+ 'data-space__viewer__activity-bar__item--active':
202
+ dataSpaceViewerState.currentActivity === activity.mode,
203
+ })}
204
+ onClick={changeActivity(activity.mode)}
205
+ tabIndex={-1}
206
+ title={activity.title}
207
+ >
208
+ {activity.icon}
209
+ </button>
210
+ ))}
211
+ </div>
212
+ </div>
213
+ );
214
+ },
215
+ );
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
18
+ import { observer } from 'mobx-react-lite';
19
+ import { DataSpaceDiagramViewer } from './DataSpaceDiagramViewer.js';
20
+ import { DataSpaceModelsDocumentation } from './DataSpaceModelsDocumentation.js';
21
+ import { DataSpaceQuickStart } from './DataSpaceQuickStart.js';
22
+ import { DataSpaceDataAccess } from './DataSpaceDataAccess.js';
23
+ import { DataSpaceDescription } from './DataSpaceDescription.js';
24
+
25
+ export const DataSpaceWiki = observer(
26
+ (props: { dataSpaceViewerState: DataSpaceViewerState }) => {
27
+ const { dataSpaceViewerState } = props;
28
+
29
+ return (
30
+ <div className="data-space__viewer__wiki">
31
+ <DataSpaceDescription dataSpaceViewerState={dataSpaceViewerState} />
32
+ <DataSpaceDiagramViewer dataSpaceViewerState={dataSpaceViewerState} />
33
+ <DataSpaceModelsDocumentation
34
+ dataSpaceViewerState={dataSpaceViewerState}
35
+ />
36
+ <DataSpaceQuickStart dataSpaceViewerState={dataSpaceViewerState} />
37
+ <DataSpaceDataAccess dataSpaceViewerState={dataSpaceViewerState} />
38
+ </div>
39
+ );
40
+ },
41
+ );
@@ -239,7 +239,7 @@ export const DataSpaceAdvancedSearchModal = observer(
239
239
  <TimesCircleIcon />
240
240
  </div>
241
241
  <div className="data-space-advanced-search__dialog__view--failed__text">
242
- Can&apos;t load data space
242
+ {`Can't load data space`}
243
243
  </div>
244
244
  </div>
245
245
  </BlankPanelContent>
@@ -34,7 +34,6 @@ import {
34
34
  type ExplorerContextMenuItemRendererConfiguration,
35
35
  type EditorExtensionStateCreator,
36
36
  type EditorExtensionComponentRendererConfiguration,
37
- type LegendStudioApplicationPageEntry,
38
37
  } from '@finos/legend-application-studio';
39
38
  import {
40
39
  PackageableElementExplicitReference,
@@ -62,8 +61,6 @@ import {
62
61
  DataSpacePreviewDialog,
63
62
  DataSpacePreviewAction,
64
63
  } from './DataSpacePreviewAction.js';
65
- import { DATA_SPACE_STUDIO_ROUTE_PATTERN } from '../../application/studio/DSL_DataSpace_LegendStudioNavigation.js';
66
- import { DataSpacePreview } from './DataSpacePreview.js';
67
64
 
68
65
  const DATA_SPACE_ELEMENT_TYPE = 'DATA SPACE';
69
66
  const DATA_SPACE_ELEMENT_PROJECT_EXPLORER_DND_TYPE =
@@ -77,18 +74,6 @@ export class DSL_DataSpace_LegendStudioApplicationPlugin
77
74
  super(packageJson.extensions.applicationStudioPlugin, packageJson.version);
78
75
  }
79
76
 
80
- override getExtraApplicationPageEntries(): LegendStudioApplicationPageEntry[] {
81
- return [
82
- // data space preview
83
- {
84
- key: 'data-space-preview',
85
- urlPatterns: [DATA_SPACE_STUDIO_ROUTE_PATTERN.PREVIEW],
86
- renderer: DataSpacePreview,
87
- bypassSDLC: true,
88
- },
89
- ];
90
- }
91
-
92
77
  override getExtraRequiredDocumentationKeys(): string[] {
93
78
  return [
94
79
  DSL_DATA_SPACE_LEGEND_STUDIO_DOCUMENTATION_KEY.CONCEPT_ELEMENT_DATA_SPACE,
@@ -113,7 +113,7 @@ export const DataSpacePreviewDialog = observer(() => {
113
113
  <TimesCircleIcon />
114
114
  </div>
115
115
  <div className="data-space-preview__dialog__content--failed__text">
116
- Can&apos;t load data space
116
+ {`Can't load data space`}
117
117
  </div>
118
118
  </div>
119
119
  </BlankPanelContent>
@@ -17,7 +17,8 @@
17
17
  export enum DATA_SPACE_HASH_STRUCTURE {
18
18
  DATA_SPACE = 'DATA_SPACE',
19
19
  DATA_SPACE_EXECUTION_CONTEXT = 'DATA_SPACE_EXECUTION_CONTEXT',
20
- DATA_SPACE_SAMPLE_TDS_QUERY = 'DATA_SPACE_SAMPLE_TDS_QUERY',
21
- DATA_SPACE_SAMPLE_TDS_QUERY_COLUMN = 'DATA_SPACE_SAMPLE_TDS_QUERY_COLUMN',
20
+ DATA_SPACE_EXECUTABLE = 'DATA_SPACE_EXECUTABLE',
21
+ DATA_SPACE_DIAGRAM = 'DATA_SPACE_DIAGRAM',
22
+ DATA_SPACE_SUPPORT_COMBINED_INFO = 'DATA_SPACE_SUPPORT_COMBINED_INFO',
22
23
  DATA_SPACE_SUPPORT_EMAIL = 'DATA_SPACE_SUPPORT_EMAIL',
23
24
  }
@@ -29,6 +29,8 @@ import { DATA_SPACE_HASH_STRUCTURE } from '../../../../../DSL_DataSpace_HashUtil
29
29
  import type { Diagram } from '@finos/legend-extension-dsl-diagram';
30
30
 
31
31
  export abstract class DataSpaceSupportInfo implements Hashable {
32
+ documentationUrl?: string | undefined;
33
+
32
34
  abstract get hashCode(): string;
33
35
  }
34
36
 
@@ -41,13 +43,36 @@ export class DataSpaceSupportEmail
41
43
  get hashCode(): string {
42
44
  return hashArray([
43
45
  DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_SUPPORT_EMAIL,
46
+ this.documentationUrl ?? '',
44
47
  this.address,
45
48
  ]);
46
49
  }
47
50
  }
48
51
 
52
+ export class DataSpaceSupportCombinedInfo
53
+ extends DataSpaceSupportInfo
54
+ implements Hashable
55
+ {
56
+ emails?: string[] | undefined;
57
+ website?: string | undefined;
58
+ faqUrl?: string | undefined;
59
+ supportUrl?: string | undefined;
60
+
61
+ get hashCode(): string {
62
+ return hashArray([
63
+ DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_SUPPORT_COMBINED_INFO,
64
+ this.documentationUrl ?? '',
65
+ hashArray(this.emails ?? []),
66
+ this.website ?? '',
67
+ this.faqUrl ?? '',
68
+ this.supportUrl ?? '',
69
+ ]);
70
+ }
71
+ }
72
+
49
73
  export class DataSpaceExecutionContext implements Hashable {
50
74
  name!: string;
75
+ title?: string | undefined;
51
76
  description?: string | undefined;
52
77
  mapping!: PackageableElementReference<Mapping>;
53
78
  defaultRuntime!: PackageableElementReference<PackageableRuntime>;
@@ -56,6 +81,7 @@ export class DataSpaceExecutionContext implements Hashable {
56
81
  return hashArray([
57
82
  DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_EXECUTION_CONTEXT,
58
83
  this.name,
84
+ this.title ?? '',
59
85
  this.description ?? '',
60
86
  this.mapping.valueForSerialization ?? '',
61
87
  this.defaultRuntime.valueForSerialization ?? '',
@@ -63,6 +89,36 @@ export class DataSpaceExecutionContext implements Hashable {
63
89
  }
64
90
  }
65
91
 
92
+ export class DataSpaceExecutable implements Hashable {
93
+ title!: string;
94
+ description?: string | undefined;
95
+ executable!: PackageableElementReference<PackageableElement>;
96
+
97
+ get hashCode(): string {
98
+ return hashArray([
99
+ DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_EXECUTABLE,
100
+ this.title,
101
+ this.description ?? '',
102
+ this.executable.valueForSerialization ?? '',
103
+ ]);
104
+ }
105
+ }
106
+
107
+ export class DataSpaceDiagram implements Hashable {
108
+ title!: string;
109
+ description?: string | undefined;
110
+ diagram!: PackageableElementReference<Diagram>;
111
+
112
+ get hashCode(): string {
113
+ return hashArray([
114
+ DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_DIAGRAM,
115
+ this.title,
116
+ this.description ?? '',
117
+ this.diagram.valueForSerialization ?? '',
118
+ ]);
119
+ }
120
+ }
121
+
66
122
  export type DataSpaceElement = Class | Enumeration | Association;
67
123
 
68
124
  export class DataSpace extends PackageableElement implements Hashable {
@@ -72,6 +128,8 @@ export class DataSpace extends PackageableElement implements Hashable {
72
128
  defaultExecutionContext!: DataSpaceExecutionContext;
73
129
  featuredDiagrams?: PackageableElementReference<Diagram>[] | undefined;
74
130
  elements?: PackageableElementReference<DataSpaceElement>[] | undefined;
131
+ executables?: DataSpaceExecutable[] | undefined;
132
+ diagrams?: DataSpaceDiagram[] | undefined;
75
133
  supportInfo?: DataSpaceSupportInfo | undefined;
76
134
 
77
135
  protected override get _elementHashCode(): string {
@@ -95,6 +153,8 @@ export class DataSpace extends PackageableElement implements Hashable {
95
153
  (element) => element.valueForSerialization ?? '',
96
154
  ),
97
155
  ),
156
+ hashArray(this.executables ?? []),
157
+ hashArray(this.diagrams ?? []),
98
158
  this.supportInfo ?? '',
99
159
  ]);
100
160
  }
@@ -29,12 +29,21 @@ import { DSL_DataSpace_buildGraphManagerExtension } from './protocol/pure/DSL_Da
29
29
 
30
30
  export const PURE_GRAMMAR_DATA_SPACE_PARSER_NAME = 'DataSpace';
31
31
  export const PURE_GRAMMAR_DATA_SPACE_ELEMENT_TYPE_LABEL = 'DataSpace';
32
+ export const PURE_ENTERPRISE_PROFILE_PATH = 'meta::pure::profiles::enterprise';
33
+ export const PURE_ENTERPRISE_PROFILE_TAXONOMY_NODE_STEREOTYPE = 'taxonomyNodes';
34
+ export const PURE_DATA_SPACE_INFO_PROFILE_PATH =
35
+ 'meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo';
36
+ export const PURE_DATA_SPACE_INFO_PROFILE_VERIFIED_STEREOTYPE = 'Verified';
32
37
 
33
38
  export class DSL_DataSpace_PureGraphManagerPlugin extends PureGraphManagerPlugin {
34
39
  constructor() {
35
40
  super(packageJson.extensions.pureGraphManagerPlugin, packageJson.version);
36
41
  }
37
42
 
43
+ override getExtraExposedSystemElementPath(): string[] {
44
+ return [PURE_ENTERPRISE_PROFILE_PATH, PURE_DATA_SPACE_INFO_PROFILE_PATH];
45
+ }
46
+
38
47
  override getExtraPureGraphManagerExtensionBuilders(): PureGraphManagerExtensionBuilder[] {
39
48
  return [DSL_DataSpace_buildGraphManagerExtension];
40
49
  }
@@ -14,7 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { Diagram } from '@finos/legend-extension-dsl-diagram';
18
17
  import type {
19
18
  Mapping,
20
19
  PackageableRuntime,
@@ -22,15 +21,11 @@ import type {
22
21
  } from '@finos/legend-graph';
23
22
  import { uuid } from '@finos/legend-shared';
24
23
  import type { DataSpaceSupportInfo } from '../../../graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js';
25
- import {
26
- HACKY__SHOWCASE1,
27
- type HACKY__DataSpaceUsageShowcase,
28
- HACKY__SHOWCASE2,
29
- HACKY__SHOWCASE3,
30
- } from './HACKY__DataSpaceUsageShowcase.js';
24
+ import type { Diagram } from '@finos/legend-extension-dsl-diagram';
31
25
 
32
26
  export class DataSpaceExecutionContextAnalysisResult {
33
27
  name!: string;
28
+ title?: string | undefined;
34
29
  description?: string | undefined;
35
30
  mapping!: Mapping;
36
31
  defaultRuntime!: PackageableRuntime;
@@ -69,28 +64,72 @@ export class DataSpaceDocumentationEntry {
69
64
  }
70
65
  }
71
66
 
67
+ export class DataSpaceDiagramAnalysisResult {
68
+ title!: string;
69
+ description?: string | undefined;
70
+ diagram!: Diagram;
71
+ }
72
+
73
+ export abstract class DataSpaceExecutableInfo {
74
+ query!: string;
75
+ }
76
+
77
+ export class DataSpaceServiceExecutableInfo extends DataSpaceExecutableInfo {
78
+ pattern!: string;
79
+ mapping?: string | undefined;
80
+ runtime?: string | undefined;
81
+ }
82
+
83
+ export abstract class DataSpaceExecutableResult {}
84
+
85
+ export class DataSpaceExecutableTDSResultColumn {
86
+ readonly uuid = uuid();
87
+
88
+ name!: string;
89
+ type?: string | undefined;
90
+ relationalType?: string | undefined;
91
+ documentation?: string | undefined;
92
+
93
+ // TODO: we need to think of how we want to support sample values, should we rely on the type here
94
+ // or should we rely on actual execution result on test data?
95
+ sampleValues = '';
96
+ }
97
+
98
+ export class DataSpaceExecutableTDSResult extends DataSpaceExecutableResult {
99
+ columns: DataSpaceExecutableTDSResultColumn[] = [];
100
+ }
101
+
102
+ export class DataSpaceExecutableAnalysisResult {
103
+ readonly uuid = uuid();
104
+
105
+ title!: string;
106
+ description?: string | undefined;
107
+ executable!: string;
108
+ info?: DataSpaceExecutableInfo | undefined;
109
+ result!: DataSpaceExecutableResult;
110
+ }
111
+
72
112
  export class DataSpaceAnalysisResult {
73
113
  name!: string;
74
114
  package!: string;
75
115
  path!: string;
116
+
76
117
  taggedValues: DataSpaceTaggedValueInfo[] = [];
77
118
  stereotypes: DataSpaceStereotypeInfo[] = [];
119
+
78
120
  title?: string | undefined;
79
121
  description?: string | undefined;
80
- supportInfo?: DataSpaceSupportInfo | undefined;
81
122
 
82
123
  graph!: PureModel;
83
124
 
84
125
  executionContextsIndex!: Map<string, DataSpaceExecutionContextAnalysisResult>;
85
126
  defaultExecutionContext!: DataSpaceExecutionContextAnalysisResult;
86
127
 
87
- featuredDiagrams: Diagram[] = [];
88
-
89
128
  elementDocs: DataSpaceDocumentationEntry[] = [];
90
129
 
91
- HACKY__usageShowcases: HACKY__DataSpaceUsageShowcase[] = [
92
- HACKY__SHOWCASE1,
93
- HACKY__SHOWCASE2,
94
- HACKY__SHOWCASE3,
95
- ];
130
+ diagrams: DataSpaceDiagramAnalysisResult[] = [];
131
+
132
+ executables: DataSpaceExecutableAnalysisResult[] = [];
133
+
134
+ supportInfo?: DataSpaceSupportInfo | undefined;
96
135
  }