@finos/legend-application-studio 22.4.8 → 22.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/lib/components/EditorComponentTestUtils.d.ts.map +1 -1
  2. package/lib/components/EditorComponentTestUtils.js +2 -1
  3. package/lib/components/EditorComponentTestUtils.js.map +1 -1
  4. package/lib/components/LegendStudioAppInfo.d.ts.map +1 -1
  5. package/lib/components/LegendStudioAppInfo.js +2 -2
  6. package/lib/components/LegendStudioAppInfo.js.map +1 -1
  7. package/lib/components/LegendStudioApplication.d.ts.map +1 -1
  8. package/lib/components/LegendStudioApplication.js +3 -3
  9. package/lib/components/LegendStudioApplication.js.map +1 -1
  10. package/lib/components/editor/ActivityBar.d.ts.map +1 -1
  11. package/lib/components/editor/ActivityBar.js +8 -3
  12. package/lib/components/editor/ActivityBar.js.map +1 -1
  13. package/lib/components/editor/Editor.js +4 -4
  14. package/lib/components/editor/Editor.js.map +1 -1
  15. package/lib/components/editor/StatusBar.js +1 -1
  16. package/lib/components/editor/StatusBar.js.map +1 -1
  17. package/lib/components/editor/aux-panel/DevTool.d.ts.map +1 -1
  18. package/lib/components/editor/aux-panel/DevTool.js +5 -1
  19. package/lib/components/editor/aux-panel/DevTool.js.map +1 -1
  20. package/lib/components/editor/command/project-search.css +1 -1
  21. package/lib/components/editor/command/project-search.css.map +1 -1
  22. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  23. package/lib/components/editor/command-center/ProjectSearchCommand.js +2 -2
  24. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  25. package/lib/components/editor/edit-panel/FunctionEditor.js +1 -1
  26. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  27. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  28. package/lib/components/editor/edit-panel/GrammarTextEditor.js +5 -1
  29. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  30. package/lib/components/editor/edit-panel/RuntimeEditor.js +1 -1
  31. package/lib/components/editor/edit-panel/RuntimeEditor.js.map +1 -1
  32. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  33. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js +9 -2
  34. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  35. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +4 -4
  36. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  37. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +4 -4
  38. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  39. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -1
  40. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js +3 -2
  41. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -1
  42. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +3 -3
  43. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  44. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js +1 -1
  45. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js.map +1 -1
  46. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.d.ts.map +1 -1
  47. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +62 -8
  48. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  49. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  50. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js +5 -5
  51. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  52. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.d.ts +20 -0
  53. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.d.ts.map +1 -0
  54. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.js +98 -0
  55. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.js.map +1 -0
  56. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.d.ts.map +1 -1
  57. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js +2 -1
  58. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js.map +1 -1
  59. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +6 -6
  60. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  61. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js +1 -1
  62. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js.map +1 -1
  63. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +1 -1
  64. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  65. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.d.ts.map +1 -1
  66. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js +2 -2
  67. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js.map +1 -1
  68. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  69. package/lib/components/editor/side-bar/Explorer.js +103 -16
  70. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  71. package/lib/components/editor/side-bar/ProjectDependantsEditor.js +3 -3
  72. package/lib/components/editor/side-bar/ProjectDependantsEditor.js.map +1 -1
  73. package/lib/components/editor/side-bar/ProjectOverview.js +8 -8
  74. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  75. package/lib/components/editor/side-bar/RegisterService.d.ts +8 -0
  76. package/lib/components/editor/side-bar/RegisterService.d.ts.map +1 -0
  77. package/lib/components/editor/side-bar/RegisterService.js +35 -0
  78. package/lib/components/editor/side-bar/RegisterService.js.map +1 -0
  79. package/lib/components/editor/side-bar/SideBar.d.ts.map +1 -1
  80. package/lib/components/editor/side-bar/SideBar.js +3 -0
  81. package/lib/components/editor/side-bar/SideBar.js.map +1 -1
  82. package/lib/components/editor/side-bar/WorkflowManager.d.ts.map +1 -1
  83. package/lib/components/editor/side-bar/WorkflowManager.js +2 -2
  84. package/lib/components/editor/side-bar/WorkflowManager.js.map +1 -1
  85. package/lib/components/editor/side-bar/WorkspaceReview.js +1 -1
  86. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  87. package/lib/components/editor/side-bar/WorkspaceUpdater.js +1 -1
  88. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  89. package/lib/components/project-viewer/ProjectViewer.js +1 -1
  90. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  91. package/lib/components/shared/ProjectSelectorUtils.d.ts.map +1 -1
  92. package/lib/components/shared/ProjectSelectorUtils.js +4 -4
  93. package/lib/components/shared/ProjectSelectorUtils.js.map +1 -1
  94. package/lib/components/workspace-review/WorkspaceReview.js +1 -1
  95. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  96. package/lib/components/workspace-setup/CreateProjectModal.js +1 -1
  97. package/lib/components/workspace-setup/CreateProjectModal.js.map +1 -1
  98. package/lib/components/workspace-setup/WorkspaceSetup.js +2 -2
  99. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  100. package/lib/index.css +2 -2
  101. package/lib/index.css.map +1 -1
  102. package/lib/package.json +6 -4
  103. package/lib/stores/ChangeDetectionState.js +12 -12
  104. package/lib/stores/ChangeDetectionState.js.map +1 -1
  105. package/lib/stores/DependencyProjectViewerHelper.js +1 -1
  106. package/lib/stores/DependencyProjectViewerHelper.js.map +1 -1
  107. package/lib/stores/EditorConfig.d.ts +2 -1
  108. package/lib/stores/EditorConfig.d.ts.map +1 -1
  109. package/lib/stores/EditorConfig.js +1 -0
  110. package/lib/stores/EditorConfig.js.map +1 -1
  111. package/lib/stores/EditorGraphState.d.ts +1 -1
  112. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  113. package/lib/stores/EditorGraphState.js +64 -59
  114. package/lib/stores/EditorGraphState.js.map +1 -1
  115. package/lib/stores/EditorSDLCState.d.ts.map +1 -1
  116. package/lib/stores/EditorSDLCState.js +21 -21
  117. package/lib/stores/EditorSDLCState.js.map +1 -1
  118. package/lib/stores/EditorStore.d.ts +2 -0
  119. package/lib/stores/EditorStore.d.ts.map +1 -1
  120. package/lib/stores/EditorStore.js +42 -39
  121. package/lib/stores/EditorStore.js.map +1 -1
  122. package/lib/stores/EditorTabManagerState.js +1 -1
  123. package/lib/stores/EditorTabManagerState.js.map +1 -1
  124. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -1
  125. package/lib/stores/EmbeddedQueryBuilderState.js +8 -8
  126. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -1
  127. package/lib/stores/ExplorerTreeState.d.ts +5 -3
  128. package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
  129. package/lib/stores/ExplorerTreeState.js +11 -5
  130. package/lib/stores/ExplorerTreeState.js.map +1 -1
  131. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  132. package/lib/stores/LegendStudioBaseStore.js +15 -15
  133. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  134. package/lib/stores/LegendStudioDocumentation.d.ts +1 -0
  135. package/lib/stores/LegendStudioDocumentation.d.ts.map +1 -1
  136. package/lib/stores/LegendStudioDocumentation.js +1 -0
  137. package/lib/stores/LegendStudioDocumentation.js.map +1 -1
  138. package/lib/stores/LegendStudioStorage.d.ts +20 -0
  139. package/lib/stores/LegendStudioStorage.d.ts.map +1 -0
  140. package/lib/stores/LegendStudioStorage.js +21 -0
  141. package/lib/stores/LegendStudioStorage.js.map +1 -0
  142. package/lib/stores/editor-state/ExternalFormatState.js +2 -2
  143. package/lib/stores/editor-state/ExternalFormatState.js.map +1 -1
  144. package/lib/stores/editor-state/FileGenerationState.js +3 -3
  145. package/lib/stores/editor-state/FileGenerationState.js.map +1 -1
  146. package/lib/stores/editor-state/GrammarTextEditorState.d.ts.map +1 -1
  147. package/lib/stores/editor-state/GrammarTextEditorState.js +4 -1
  148. package/lib/stores/editor-state/GrammarTextEditorState.js.map +1 -1
  149. package/lib/stores/editor-state/GraphGenerationState.js +9 -9
  150. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  151. package/lib/stores/editor-state/ModelImporterState.d.ts.map +1 -1
  152. package/lib/stores/editor-state/ModelImporterState.js +9 -9
  153. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  154. package/lib/stores/editor-state/element-editor-state/ClassEditorState.js +1 -1
  155. package/lib/stores/editor-state/element-editor-state/ClassEditorState.js.map +1 -1
  156. package/lib/stores/editor-state/element-editor-state/ClassState.js +6 -6
  157. package/lib/stores/editor-state/element-editor-state/ClassState.js.map +1 -1
  158. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js +2 -2
  159. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
  160. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js +2 -2
  161. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js.map +1 -1
  162. package/lib/stores/editor-state/element-editor-state/FunctionEditorState.js +3 -3
  163. package/lib/stores/editor-state/element-editor-state/FunctionEditorState.js.map +1 -1
  164. package/lib/stores/editor-state/element-editor-state/RuntimeEditorState.d.ts.map +1 -1
  165. package/lib/stores/editor-state/element-editor-state/RuntimeEditorState.js +1 -1
  166. package/lib/stores/editor-state/element-editor-state/RuntimeEditorState.js.map +1 -1
  167. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +2 -1
  168. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
  169. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.js +9 -1
  170. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
  171. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js +11 -11
  172. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js.map +1 -1
  173. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.d.ts.map +1 -1
  174. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js +10 -10
  175. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js.map +1 -1
  176. package/lib/stores/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js +3 -3
  177. package/lib/stores/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js.map +1 -1
  178. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js +3 -3
  179. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  180. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +12 -12
  181. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  182. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +12 -12
  183. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
  184. package/lib/stores/editor-state/element-editor-state/mapping/PureInstanceSetImplementationState.js +6 -6
  185. package/lib/stores/editor-state/element-editor-state/mapping/PureInstanceSetImplementationState.js.map +1 -1
  186. package/lib/stores/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js +3 -3
  187. package/lib/stores/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js.map +1 -1
  188. package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.js +1 -1
  189. package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
  190. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
  191. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +8 -8
  192. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  193. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +4 -4
  194. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  195. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +1 -1
  196. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
  197. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +3 -3
  198. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
  199. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestableState.js +2 -2
  200. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestableState.js.map +1 -1
  201. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js +1 -1
  202. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
  203. package/lib/stores/editor-state/element-editor-state/testable/TestableEditorState.js +1 -1
  204. package/lib/stores/editor-state/element-editor-state/testable/TestableEditorState.js.map +1 -1
  205. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js +2 -2
  206. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js.map +1 -1
  207. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js +2 -2
  208. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  209. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts +2 -0
  210. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
  211. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +22 -12
  212. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  213. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +2 -2
  214. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
  215. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  216. package/lib/stores/project-viewer/ProjectViewerStore.js +13 -13
  217. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  218. package/lib/stores/shared/MockDataUtils.d.ts +6 -0
  219. package/lib/stores/shared/MockDataUtils.d.ts.map +1 -1
  220. package/lib/stores/shared/MockDataUtils.js +32 -3
  221. package/lib/stores/shared/MockDataUtils.js.map +1 -1
  222. package/lib/stores/shared/modifier/STO_Relational_GraphModifierHelper.d.ts +6 -1
  223. package/lib/stores/shared/modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
  224. package/lib/stores/shared/modifier/STO_Relational_GraphModifierHelper.js +15 -1
  225. package/lib/stores/shared/modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
  226. package/lib/stores/sidebar-state/BulkServiceRegistrationState.d.ts +51 -0
  227. package/lib/stores/sidebar-state/BulkServiceRegistrationState.d.ts.map +1 -0
  228. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js +237 -0
  229. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js.map +1 -0
  230. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  231. package/lib/stores/sidebar-state/LocalChangesState.js +19 -19
  232. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  233. package/lib/stores/sidebar-state/ProjectOverviewState.js +11 -11
  234. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  235. package/lib/stores/sidebar-state/WorkflowManagerState.js +12 -12
  236. package/lib/stores/sidebar-state/WorkflowManagerState.js.map +1 -1
  237. package/lib/stores/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
  238. package/lib/stores/sidebar-state/WorkspaceReviewState.js +23 -23
  239. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  240. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts.map +1 -1
  241. package/lib/stores/sidebar-state/WorkspaceSyncState.js +10 -10
  242. package/lib/stores/sidebar-state/WorkspaceSyncState.js.map +1 -1
  243. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts.map +1 -1
  244. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +33 -33
  245. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  246. package/lib/stores/sidebar-state/WorkspaceUpdaterState.d.ts.map +1 -1
  247. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +16 -16
  248. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  249. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js +3 -3
  250. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js.map +1 -1
  251. package/lib/stores/workspace-review/WorkspaceReviewStore.js +16 -16
  252. package/lib/stores/workspace-review/WorkspaceReviewStore.js.map +1 -1
  253. package/lib/stores/workspace-setup/ProjectConfigurationStatus.js +1 -1
  254. package/lib/stores/workspace-setup/ProjectConfigurationStatus.js.map +1 -1
  255. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +17 -17
  256. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  257. package/package.json +15 -13
  258. package/src/components/EditorComponentTestUtils.tsx +3 -2
  259. package/src/components/LegendStudioAppInfo.tsx +4 -2
  260. package/src/components/LegendStudioApplication.tsx +6 -3
  261. package/src/components/editor/ActivityBar.tsx +11 -3
  262. package/src/components/editor/Editor.tsx +4 -4
  263. package/src/components/editor/StatusBar.tsx +4 -4
  264. package/src/components/editor/aux-panel/DevTool.tsx +7 -1
  265. package/src/components/editor/command-center/ProjectSearchCommand.tsx +8 -6
  266. package/src/components/editor/edit-panel/FunctionEditor.tsx +1 -1
  267. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +7 -1
  268. package/src/components/editor/edit-panel/RuntimeEditor.tsx +1 -1
  269. package/src/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.tsx +77 -1
  270. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +4 -4
  271. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +4 -4
  272. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.tsx +6 -2
  273. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +3 -3
  274. package/src/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.tsx +1 -1
  275. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +164 -26
  276. package/src/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.tsx +13 -9
  277. package/src/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.tsx +283 -0
  278. package/src/components/editor/edit-panel/service-editor/ServiceEditor.tsx +4 -1
  279. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +7 -7
  280. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.tsx +1 -1
  281. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +1 -1
  282. package/src/components/editor/edit-panel/uml-editor/ClassQueryBuilder.tsx +4 -2
  283. package/src/components/editor/side-bar/Explorer.tsx +268 -40
  284. package/src/components/editor/side-bar/ProjectDependantsEditor.tsx +5 -5
  285. package/src/components/editor/side-bar/ProjectOverview.tsx +13 -13
  286. package/src/components/editor/side-bar/RegisterService.tsx +139 -0
  287. package/src/components/editor/side-bar/SideBar.tsx +9 -0
  288. package/src/components/editor/side-bar/WorkflowManager.tsx +6 -2
  289. package/src/components/editor/side-bar/WorkspaceReview.tsx +2 -2
  290. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +2 -2
  291. package/src/components/project-viewer/ProjectViewer.tsx +2 -2
  292. package/src/components/shared/ProjectSelectorUtils.tsx +7 -5
  293. package/src/components/workspace-review/WorkspaceReview.tsx +4 -4
  294. package/src/components/workspace-setup/CreateProjectModal.tsx +1 -1
  295. package/src/components/workspace-setup/WorkspaceSetup.tsx +2 -2
  296. package/src/stores/ChangeDetectionState.ts +12 -12
  297. package/src/stores/DependencyProjectViewerHelper.ts +2 -2
  298. package/src/stores/EditorConfig.ts +1 -0
  299. package/src/stores/EditorGraphState.ts +80 -60
  300. package/src/stores/EditorSDLCState.ts +25 -21
  301. package/src/stores/EditorStore.ts +45 -39
  302. package/src/stores/EditorTabManagerState.ts +1 -1
  303. package/src/stores/EmbeddedQueryBuilderState.ts +14 -8
  304. package/src/stores/ExplorerTreeState.ts +16 -6
  305. package/src/stores/LegendStudioBaseStore.ts +29 -20
  306. package/src/stores/LegendStudioDocumentation.ts +1 -0
  307. package/src/stores/LegendStudioStorage.ts +20 -0
  308. package/src/stores/editor-state/ExternalFormatState.ts +2 -2
  309. package/src/stores/editor-state/FileGenerationState.ts +3 -3
  310. package/src/stores/editor-state/GrammarTextEditorState.ts +7 -1
  311. package/src/stores/editor-state/GraphGenerationState.ts +9 -9
  312. package/src/stores/editor-state/ModelImporterState.ts +13 -9
  313. package/src/stores/editor-state/element-editor-state/ClassEditorState.ts +1 -1
  314. package/src/stores/editor-state/element-editor-state/ClassState.ts +6 -6
  315. package/src/stores/editor-state/element-editor-state/ElementEditorState.ts +2 -2
  316. package/src/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.ts +2 -2
  317. package/src/stores/editor-state/element-editor-state/FunctionEditorState.ts +3 -3
  318. package/src/stores/editor-state/element-editor-state/RuntimeEditorState.ts +3 -1
  319. package/src/stores/editor-state/element-editor-state/connection/ConnectionEditorState.ts +8 -0
  320. package/src/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.ts +11 -11
  321. package/src/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.ts +12 -10
  322. package/src/stores/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.ts +3 -3
  323. package/src/stores/editor-state/element-editor-state/mapping/MappingEditorState.ts +3 -3
  324. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +12 -12
  325. package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +12 -12
  326. package/src/stores/editor-state/element-editor-state/mapping/PureInstanceSetImplementationState.ts +6 -6
  327. package/src/stores/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.ts +3 -3
  328. package/src/stores/editor-state/element-editor-state/service/ServiceEditorState.ts +1 -1
  329. package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +12 -8
  330. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +4 -4
  331. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +1 -1
  332. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +3 -3
  333. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestableState.ts +2 -2
  334. package/src/stores/editor-state/element-editor-state/testable/TestAssertionState.ts +1 -1
  335. package/src/stores/editor-state/element-editor-state/testable/TestableEditorState.ts +1 -1
  336. package/src/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.ts +2 -2
  337. package/src/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.ts +2 -2
  338. package/src/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +33 -12
  339. package/src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts +2 -2
  340. package/src/stores/project-viewer/ProjectViewerStore.ts +15 -13
  341. package/src/stores/shared/MockDataUtils.ts +44 -3
  342. package/src/stores/shared/modifier/STO_Relational_GraphModifierHelper.ts +26 -1
  343. package/src/stores/sidebar-state/BulkServiceRegistrationState.ts +370 -0
  344. package/src/stores/sidebar-state/LocalChangesState.ts +21 -19
  345. package/src/stores/sidebar-state/ProjectOverviewState.ts +11 -11
  346. package/src/stores/sidebar-state/WorkflowManagerState.ts +12 -12
  347. package/src/stores/sidebar-state/WorkspaceReviewState.ts +27 -23
  348. package/src/stores/sidebar-state/WorkspaceSyncState.ts +16 -10
  349. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +35 -33
  350. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +18 -16
  351. package/src/stores/sidebar-state/testable/GlobalTestRunnerState.ts +3 -3
  352. package/src/stores/workspace-review/WorkspaceReviewStore.ts +16 -16
  353. package/src/stores/workspace-setup/ProjectConfigurationStatus.ts +1 -1
  354. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +17 -17
  355. package/tsconfig.json +4 -0
@@ -42,6 +42,14 @@ import {
42
42
  SearchIcon,
43
43
  FileImportIcon,
44
44
  SettingsEthernetIcon,
45
+ MenuContentDivider,
46
+ createFilter,
47
+ CustomSelectorInput,
48
+ type SelectComponent,
49
+ LevelDownIcon,
50
+ CaretDownIcon,
51
+ PURE_ClassIcon,
52
+ CodeIcon,
45
53
  } from '@finos/legend-art';
46
54
  import {
47
55
  getElementIcon,
@@ -93,7 +101,13 @@ import {
93
101
  getFunctionNameWithPath,
94
102
  getElementRootPackage,
95
103
  } from '@finos/legend-graph';
96
- import { useApplicationStore } from '@finos/legend-application';
104
+ import {
105
+ EDITOR_LANGUAGE,
106
+ getPackageableElementOptionFormatter,
107
+ type PackageableElementOption,
108
+ TextInputEditor,
109
+ useApplicationStore,
110
+ } from '@finos/legend-application';
97
111
  import { PACKAGEABLE_ELEMENT_TYPE } from '../../../stores/shared/ModelClassifierUtils.js';
98
112
  import { useLegendStudioApplicationStore } from '../../LegendStudioBaseStoreProvider.js';
99
113
  import { queryClass } from '../edit-panel/uml-editor/ClassQueryBuilder.js';
@@ -102,6 +116,10 @@ import {
102
116
  MASTER_SNAPSHOT_ALIAS,
103
117
  SNAPSHOT_VERSION_ALIAS,
104
118
  } from '@finos/legend-server-depot';
119
+ import {
120
+ CLASS_MOCK_DATA_GENERATION_FORMAT,
121
+ createMockDataForClassWithFormat,
122
+ } from '../../../stores/shared/MockDataUtils.js';
105
123
 
106
124
  const ElementRenamer = observer(() => {
107
125
  const editorStore = useEditorStore();
@@ -240,6 +258,180 @@ const ElementRenamer = observer(() => {
240
258
  );
241
259
  });
242
260
 
261
+ const GENERATION_DEFAULT_DEPTH = 100;
262
+ const GENERATION_DEFAULT_FORMAT = CLASS_MOCK_DATA_GENERATION_FORMAT.JSON;
263
+ const getMockDataEditorLanguage = (
264
+ format: CLASS_MOCK_DATA_GENERATION_FORMAT,
265
+ ): EDITOR_LANGUAGE => {
266
+ switch (format) {
267
+ case CLASS_MOCK_DATA_GENERATION_FORMAT.JSON:
268
+ return EDITOR_LANGUAGE.JSON;
269
+ case CLASS_MOCK_DATA_GENERATION_FORMAT.XML:
270
+ return EDITOR_LANGUAGE.XML;
271
+ case CLASS_MOCK_DATA_GENERATION_FORMAT.YAML:
272
+ return EDITOR_LANGUAGE.YAML;
273
+ default:
274
+ return EDITOR_LANGUAGE.TEXT;
275
+ }
276
+ };
277
+
278
+ const SampleDataGenerator = observer(() => {
279
+ const editorStore = useEditorStore();
280
+ const explorerTreeState = editorStore.explorerTreeState;
281
+ const selectedClass = explorerTreeState.classToGenerateSampleData;
282
+ const [format, setFormat] = useState(GENERATION_DEFAULT_FORMAT);
283
+ const [depth, setDepth] = useState(GENERATION_DEFAULT_DEPTH);
284
+ const [resultText, setResultText] = useState('');
285
+
286
+ const changeDepth: React.ChangeEventHandler<HTMLInputElement> = (event) => {
287
+ setDepth(parseInt(event.target.value, 10));
288
+ };
289
+
290
+ // class
291
+ const classSelectorRef = useRef<SelectComponent>(null);
292
+ const elementFilterOption = createFilter({
293
+ ignoreCase: true,
294
+ ignoreAccents: false,
295
+ stringify: (option: PackageableElementOption<Class>): string =>
296
+ option.value.path,
297
+ });
298
+ const classOptions = editorStore.graphManagerState.usableClasses.map(
299
+ (_class) => ({
300
+ value: _class,
301
+ label: _class.name,
302
+ }),
303
+ );
304
+ const selectedClassOption = selectedClass
305
+ ? {
306
+ value: selectedClass,
307
+ label: selectedClass.name,
308
+ }
309
+ : null;
310
+ const changeClass = (val: PackageableElementOption<Class>): void => {
311
+ if (val.value === selectedClass) {
312
+ return;
313
+ }
314
+ explorerTreeState.setClassToGenerateSampleData(val.value);
315
+ };
316
+
317
+ useEffect(() => {
318
+ if (selectedClass) {
319
+ setResultText(
320
+ createMockDataForClassWithFormat(selectedClass, format, depth),
321
+ );
322
+ }
323
+ }, [selectedClass, format, depth]);
324
+
325
+ const abort = (): void => {
326
+ setFormat(GENERATION_DEFAULT_FORMAT);
327
+ setDepth(GENERATION_DEFAULT_DEPTH);
328
+ explorerTreeState.setClassToGenerateSampleData(undefined);
329
+ };
330
+ const regenerate = (): void => {
331
+ if (selectedClass) {
332
+ setResultText(
333
+ createMockDataForClassWithFormat(selectedClass, format, depth),
334
+ );
335
+ }
336
+ };
337
+ const onEnter = (): void => classSelectorRef.current?.focus();
338
+
339
+ return (
340
+ <Dialog
341
+ open={Boolean(selectedClass)}
342
+ onClose={abort}
343
+ TransitionProps={{
344
+ onEnter: onEnter,
345
+ }}
346
+ classes={{ container: 'search-modal__container' }}
347
+ PaperProps={{ classes: { root: 'search-modal__inner-container' } }}
348
+ >
349
+ <div className="modal modal--dark search-modal explorer__element-renamer">
350
+ <div className="modal__title">Generate Sample Data</div>
351
+ <div className="sample-data-generator__controller">
352
+ <div
353
+ className="sample-data-generator__controller__icon"
354
+ title="class"
355
+ >
356
+ <PURE_ClassIcon />
357
+ </div>
358
+ <CustomSelectorInput
359
+ ref={classSelectorRef}
360
+ className="sample-data-generator__controller__class-selector"
361
+ options={classOptions}
362
+ onChange={changeClass}
363
+ value={selectedClassOption}
364
+ darkMode={true}
365
+ filterOption={elementFilterOption}
366
+ formatOptionLabel={getPackageableElementOptionFormatter({
367
+ darkMode: true,
368
+ graph: editorStore.graphManagerState.graph,
369
+ })}
370
+ />
371
+ <div
372
+ className="sample-data-generator__controller__icon"
373
+ title="format"
374
+ >
375
+ <CodeIcon />
376
+ </div>
377
+ <DropdownMenu
378
+ className="sample-data-generator__controller__format-selector"
379
+ title="Choose Element Type..."
380
+ content={
381
+ <MenuContent className="sample-data-generator__controller__format-selector__options">
382
+ {Object.values(CLASS_MOCK_DATA_GENERATION_FORMAT).map((val) => (
383
+ <MenuContentItem
384
+ key={val}
385
+ className="sample-data-generator__controller__format-selector__option"
386
+ onClick={() => setFormat(val)}
387
+ >
388
+ {val}
389
+ </MenuContentItem>
390
+ ))}
391
+ </MenuContent>
392
+ }
393
+ >
394
+ <div className="sample-data-generator__controller__format-selector__label">
395
+ {format}
396
+ </div>
397
+ <div className="sample-data-generator__controller__format-selector__dropdown-indicator">
398
+ <CaretDownIcon />
399
+ </div>
400
+ </DropdownMenu>
401
+ <div
402
+ className="sample-data-generator__controller__icon"
403
+ title="depth"
404
+ >
405
+ <LevelDownIcon />
406
+ </div>
407
+ <input
408
+ className="input input--dark sample-data-generator__controller__depth"
409
+ value={depth}
410
+ type="number"
411
+ onChange={changeDepth}
412
+ />
413
+ </div>
414
+ <div className="sample-data-generator__result">
415
+ <TextInputEditor
416
+ inputValue={resultText}
417
+ isReadOnly={true}
418
+ hideGutter={true}
419
+ language={getMockDataEditorLanguage(format)}
420
+ />
421
+ </div>
422
+ <div className="search-modal__actions">
423
+ <button type="button" className="btn btn--dark" onClick={abort}>
424
+ Cancel
425
+ </button>
426
+ <button className="btn btn--dark" onClick={regenerate}>
427
+ Regenerate
428
+ </button>
429
+ </div>
430
+ </div>
431
+ </Dialog>
432
+ );
433
+ });
434
+
243
435
  const ExplorerContextMenu = observer(
244
436
  forwardRef<
245
437
  HTMLDivElement,
@@ -293,6 +485,15 @@ const ExplorerContextMenu = observer(
293
485
  }
294
486
  },
295
487
  );
488
+ const generateSampleData = editorStore.applicationStore.guardUnhandledError(
489
+ async () => {
490
+ if (node?.packageableElement instanceof Class) {
491
+ editorStore.explorerTreeState.setClassToGenerateSampleData(
492
+ node.packageableElement,
493
+ );
494
+ }
495
+ },
496
+ );
296
497
  const removeElement = (): void => {
297
498
  if (node) {
298
499
  flowResult(editorStore.deleteElement(node.packageableElement)).catch(
@@ -309,13 +510,25 @@ const ExplorerContextMenu = observer(
309
510
  };
310
511
  const openElementInViewerMode = (): void => {
311
512
  if (node && projectId) {
312
- applicationStore.navigator.visitAddress(
313
- applicationStore.navigator.generateAddress(
513
+ applicationStore.navigationService.navigator.visitAddress(
514
+ applicationStore.navigationService.navigator.generateAddress(
314
515
  generateViewEntityRoute(projectId, node.packageableElement.path),
315
516
  ),
316
517
  );
317
518
  }
318
519
  };
520
+ const copyPath = (): void => {
521
+ if (node) {
522
+ applicationStore.clipboardService
523
+ .copyTextToClipboard(node.packageableElement.path)
524
+ .then(() =>
525
+ applicationStore.notificationService.notifySuccess(
526
+ 'Copied element path to clipboard',
527
+ ),
528
+ )
529
+ .catch(applicationStore.alertUnhandledError);
530
+ }
531
+ };
319
532
  const copyWorkspaceElementLink = (): void => {
320
533
  if (node) {
321
534
  const dependency =
@@ -325,9 +538,9 @@ const ExplorerContextMenu = observer(
325
538
  getElementRootPackage(node.packageableElement).name,
326
539
  );
327
540
  if (dependency) {
328
- applicationStore
541
+ applicationStore.clipboardService
329
542
  .copyTextToClipboard(
330
- applicationStore.navigator.generateAddress(
543
+ applicationStore.navigationService.navigator.generateAddress(
331
544
  editorStore.editorMode.generateDependencyElementLink(
332
545
  node.packageableElement.path,
333
546
  dependency,
@@ -335,22 +548,22 @@ const ExplorerContextMenu = observer(
335
548
  ),
336
549
  )
337
550
  .then(() =>
338
- applicationStore.notifySuccess(
551
+ applicationStore.notificationService.notifySuccess(
339
552
  'Copied workspace element link to clipboard',
340
553
  ),
341
554
  )
342
555
  .catch(applicationStore.alertUnhandledError);
343
556
  } else {
344
- applicationStore
557
+ applicationStore.clipboardService
345
558
  .copyTextToClipboard(
346
- applicationStore.navigator.generateAddress(
559
+ applicationStore.navigationService.navigator.generateAddress(
347
560
  editorStore.editorMode.generateElementLink(
348
561
  node.packageableElement.path,
349
562
  ),
350
563
  ),
351
564
  )
352
565
  .then(() =>
353
- applicationStore.notifySuccess(
566
+ applicationStore.notificationService.notifySuccess(
354
567
  'Copied workspace element link to clipboard',
355
568
  ),
356
569
  )
@@ -367,9 +580,9 @@ const ExplorerContextMenu = observer(
367
580
  getElementRootPackage(node.packageableElement).name,
368
581
  );
369
582
  if (dependency) {
370
- applicationStore
583
+ applicationStore.clipboardService
371
584
  .copyTextToClipboard(
372
- applicationStore.navigator.generateAddress(
585
+ applicationStore.navigationService.navigator.generateAddress(
373
586
  generateViewProjectByGAVRoute(
374
587
  guaranteeNonNullable(dependency.groupId),
375
588
  guaranteeNonNullable(dependency.artifactId),
@@ -380,7 +593,7 @@ const ExplorerContextMenu = observer(
380
593
  ),
381
594
  )
382
595
  .then(() =>
383
- applicationStore.notifySuccess(
596
+ applicationStore.notificationService.notifySuccess(
384
597
  'Copied SDLC project link to clipboard',
385
598
  ),
386
599
  )
@@ -403,8 +616,8 @@ const ExplorerContextMenu = observer(
403
616
  (dep) => dep.projectId === node?.packageableElement.name,
404
617
  );
405
618
  if (projectDependency && !projectDependency.isLegacyDependency) {
406
- applicationStore.navigator.visitAddress(
407
- applicationStore.navigator.generateAddress(
619
+ applicationStore.navigationService.navigator.visitAddress(
620
+ applicationStore.navigationService.navigator.generateAddress(
408
621
  generateViewProjectByGAVRoute(
409
622
  guaranteeNonNullable(projectDependency.groupId),
410
623
  guaranteeNonNullable(projectDependency.artifactId),
@@ -460,46 +673,60 @@ const ExplorerContextMenu = observer(
460
673
  </MenuContentItemLabel>
461
674
  </MenuContentItem>
462
675
  ))}
463
- <MenuContentItem onClick={renameElement}>
464
- <MenuContentItemBlankIcon />
465
- <MenuContentItemLabel>Rename</MenuContentItemLabel>
466
- </MenuContentItem>
467
676
  {node && (
468
- <MenuContentItem onClick={removeElement}>
469
- <MenuContentItemBlankIcon />
470
- <MenuContentItemLabel>Remove</MenuContentItemLabel>
471
- </MenuContentItem>
677
+ <>
678
+ <MenuContentItem onClick={renameElement}>
679
+ <MenuContentItemBlankIcon />
680
+ <MenuContentItemLabel>Rename</MenuContentItemLabel>
681
+ </MenuContentItem>
682
+ <MenuContentItem onClick={removeElement}>
683
+ <MenuContentItemBlankIcon />
684
+ <MenuContentItemLabel>Remove</MenuContentItemLabel>
685
+ </MenuContentItem>
686
+ </>
472
687
  )}
473
688
  </MenuContent>
474
689
  );
475
690
  }
476
691
 
692
+ if (!node) {
693
+ return null;
694
+ }
477
695
  return (
478
696
  <MenuContent data-testid={LEGEND_STUDIO_TEST_ID.EXPLORER_CONTEXT_MENU}>
479
- <MenuContentItem onClick={buildQuery}>Query...</MenuContentItem>
697
+ {node.packageableElement instanceof Class && (
698
+ <>
699
+ <MenuContentItem onClick={buildQuery}>Query...</MenuContentItem>
700
+ <MenuContentItem onClick={generateSampleData}>
701
+ Generate Sample Data...
702
+ </MenuContentItem>
703
+ <MenuContentDivider />
704
+ </>
705
+ )}
480
706
  {extraExplorerContextMenuItems}
481
- {!isReadOnly && node && (
707
+ {Boolean(extraExplorerContextMenuItems.length) && (
708
+ <MenuContentDivider />
709
+ )}
710
+ {!isReadOnly && (
482
711
  <>
483
712
  <MenuContentItem onClick={renameElement}>Rename</MenuContentItem>
484
713
  <MenuContentItem onClick={removeElement}>Remove</MenuContentItem>
485
714
  </>
486
715
  )}
487
- {node && (
488
- <>
489
- {!editorStore.isInViewerMode && !isDependencyProjectElement && (
490
- <MenuContentItem onClick={openElementInViewerMode}>
491
- View in Project
492
- </MenuContentItem>
493
- )}
494
- <MenuContentItem onClick={copyWorkspaceElementLink}>
495
- Copy Link
496
- </MenuContentItem>
497
- {isDependencyProjectElement && (
498
- <MenuContentItem onClick={copySDLCProjectLink}>
499
- Copy SDLC Project Link
500
- </MenuContentItem>
501
- )}
502
- </>
716
+ <MenuContentDivider />
717
+ {!editorStore.isInViewerMode && !isDependencyProjectElement && (
718
+ <MenuContentItem onClick={openElementInViewerMode}>
719
+ View in Project
720
+ </MenuContentItem>
721
+ )}
722
+ <MenuContentItem onClick={copyPath}>Copy Path</MenuContentItem>
723
+ <MenuContentItem onClick={copyWorkspaceElementLink}>
724
+ Copy Link
725
+ </MenuContentItem>
726
+ {isDependencyProjectElement && (
727
+ <MenuContentItem onClick={copySDLCProjectLink}>
728
+ Copy SDLC Project Link
729
+ </MenuContentItem>
503
730
  )}
504
731
  </MenuContent>
505
732
  );
@@ -791,6 +1018,7 @@ const ExplorerTrees = observer(() => {
791
1018
  }}
792
1019
  />
793
1020
  <ElementRenamer />
1021
+ <SampleDataGenerator />
794
1022
  {editorStore.projectConfigurationEditorState
795
1023
  .projectConfiguration && <ProjectConfig />}
796
1024
  {/* SYSTEM TREE */}
@@ -58,8 +58,8 @@ const ProjectDependantEditor = observer(
58
58
  const viewProject = (
59
59
  dependency: ProjectVersionPlatformDependency,
60
60
  ): void => {
61
- applicationStore.navigator.visitAddress(
62
- applicationStore.navigator.generateAddress(
61
+ applicationStore.navigationService.navigator.visitAddress(
62
+ applicationStore.navigationService.navigator.generateAddress(
63
63
  generateViewProjectByGAVRoute(
64
64
  dependency.groupId,
65
65
  dependency.artifactId,
@@ -76,8 +76,8 @@ const ProjectDependantEditor = observer(
76
76
  dependency: ProjectVersionPlatformDependency,
77
77
  ): void => {
78
78
  if (dependency.projectId && dependency.versionId) {
79
- applicationStore.navigator.visitAddress(
80
- applicationStore.navigator.generateAddress(
79
+ applicationStore.navigationService.navigator.visitAddress(
80
+ applicationStore.navigationService.navigator.generateAddress(
81
81
  generateViewVersionRoute(
82
82
  dependency.projectId,
83
83
  dependency.versionId,
@@ -197,7 +197,7 @@ export const ProjectDependantsEditor = observer(() => {
197
197
  className="btn btn--dark"
198
198
  tabIndex={-1}
199
199
  onClick={() => {
200
- applicationStore.navigator.visitAddress(
200
+ applicationStore.navigationService.navigator.visitAddress(
201
201
  generateExtensionUrlPattern(
202
202
  generateDependencyDashboardRoute(
203
203
  configState.currentProjectConfiguration.projectId,
@@ -71,17 +71,17 @@ const ShareProjectModal = observer(
71
71
  >();
72
72
  const projectId = editorStore.sdlcState.activeProject.projectId;
73
73
  const projectLink = selectedVersion
74
- ? applicationStore.navigator.generateAddress(
74
+ ? applicationStore.navigationService.navigator.generateAddress(
75
75
  generateViewVersionRoute(projectId, selectedVersion.id.id),
76
76
  )
77
- : applicationStore.navigator.generateAddress(
77
+ : applicationStore.navigationService.navigator.generateAddress(
78
78
  generateViewProjectRoute(projectId),
79
79
  );
80
80
  const copyProjectElementLink = (): void => {
81
- applicationStore
81
+ applicationStore.clipboardService
82
82
  .copyTextToClipboard(projectLink)
83
83
  .then(() =>
84
- applicationStore.notifySuccess(
84
+ applicationStore.notificationService.notifySuccess(
85
85
  'Copied project element link to clipboard',
86
86
  ),
87
87
  )
@@ -207,8 +207,8 @@ const WorkspaceViewer = observer((props: { workspace: Workspace }) => {
207
207
  )}
208
208
  tabIndex={-1}
209
209
  onClick={(): void =>
210
- applicationStore.navigator.visitAddress(
211
- applicationStore.navigator.generateAddress(
210
+ applicationStore.navigationService.navigator.visitAddress(
211
+ applicationStore.navigationService.navigator.generateAddress(
212
212
  generateEditorRoute(
213
213
  workspace.projectId,
214
214
  workspace.workspaceId,
@@ -397,8 +397,8 @@ const ReleaseEditor = observer(() => {
397
397
  className="project-overview__release__info__current-version__link"
398
398
  tabIndex={-1}
399
399
  onClick={(): void =>
400
- applicationStore.navigator.visitAddress(
401
- applicationStore.navigator.generateAddress(
400
+ applicationStore.navigationService.navigator.visitAddress(
401
+ applicationStore.navigationService.navigator.generateAddress(
402
402
  generateViewVersionRoute(
403
403
  latestProjectVersion.projectId,
404
404
  latestProjectVersion.id.id,
@@ -457,8 +457,8 @@ const ReleaseEditor = observer(() => {
457
457
  className="side-bar__panel__item workspace-updater__review__link"
458
458
  tabIndex={-1}
459
459
  onClick={(): void =>
460
- applicationStore.navigator.visitAddress(
461
- applicationStore.navigator.generateAddress(
460
+ applicationStore.navigationService.navigator.visitAddress(
461
+ applicationStore.navigationService.navigator.generateAddress(
462
462
  generateReviewRoute(review.projectId, review.id),
463
463
  ),
464
464
  )
@@ -523,8 +523,8 @@ const VersionsViewer = observer(() => {
523
523
  className="side-bar__panel__item project-overview__item__link"
524
524
  tabIndex={-1}
525
525
  onClick={(): void =>
526
- applicationStore.navigator.visitAddress(
527
- applicationStore.navigator.generateAddress(
526
+ applicationStore.navigationService.navigator.visitAddress(
527
+ applicationStore.navigationService.navigator.generateAddress(
528
528
  generateViewVersionRoute(version.projectId, version.id.id),
529
529
  ),
530
530
  )
@@ -854,7 +854,7 @@ export const ProjectOverview = observer(() => {
854
854
  const hideShareModal = (): void => setOpenShareModal(false);
855
855
  const projectOverviewState = editorStore.projectOverviewState;
856
856
  const openProjectWebUrl = (): void =>
857
- applicationStore.navigator.visitAddress(
857
+ applicationStore.navigationService.navigator.visitAddress(
858
858
  editorStore.sdlcState.activeProject.webUrl,
859
859
  );
860
860
  const renderOverview = (): React.ReactNode => {
@@ -0,0 +1,139 @@
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
+ import { useState } from 'react';
17
+ import { observer } from 'mobx-react-lite';
18
+ import { LEGEND_STUDIO_TEST_ID } from '../../LegendStudioTestID.js';
19
+ import { useEditorStore } from '../EditorStoreProvider.js';
20
+ import {
21
+ ContextMenu,
22
+ PanelContent,
23
+ PURE_ServiceIcon,
24
+ clsx,
25
+ PlayIcon,
26
+ Dialog,
27
+ Modal,
28
+ TimesIcon,
29
+ EmptyWindowRestoreIcon,
30
+ WindowMaximizeIcon,
31
+ } from '@finos/legend-art';
32
+ import type { BulkServiceRegistrationState } from '../../../stores/sidebar-state/BulkServiceRegistrationState.js';
33
+ import { BulkServiceRegistrationEditor } from '../edit-panel/service-editor/BulkServiceRegistrationEditor.js';
34
+ import { noop } from '@finos/legend-shared';
35
+
36
+ export const RegisterService = observer(
37
+ (props: { bulkServiceRegistrationState: BulkServiceRegistrationState }) => {
38
+ const editorStore = useEditorStore();
39
+ const services = editorStore.graphManagerState.graph.ownServices;
40
+ const [open, setOpen] = useState(false);
41
+
42
+ const [isMaximized, setIsMaximized] = useState(false);
43
+ const toggleMaximize = (): void => setIsMaximized(!isMaximized);
44
+
45
+ const renderTestables = (): React.ReactNode => (
46
+ <>
47
+ {services.map((service) => (
48
+ <ContextMenu key={service._UUID}>
49
+ <div
50
+ className={clsx(
51
+ 'tree-view__node__container global-test-runner__explorer__testable-tree__node__container',
52
+ )}
53
+ >
54
+ <div className="global-test-runner__explorer__testable-tree__node__result__icon__type">
55
+ <PURE_ServiceIcon />
56
+ </div>
57
+ <div className="global-test-runner__item__link__content">
58
+ <span className="global-test-runner__item__link__content__id">
59
+ {service.name}
60
+ </span>
61
+ </div>
62
+ </div>
63
+ </ContextMenu>
64
+ ))}
65
+ </>
66
+ );
67
+
68
+ return (
69
+ <div
70
+ data-testid={LEGEND_STUDIO_TEST_ID.GLOBAL_TEST_RUNNER}
71
+ className="panel global-test-runner"
72
+ >
73
+ <div className="panel__header side-bar__header">
74
+ <div className="panel__header__title global-test-runner__header__title">
75
+ <div className="panel__header__title__content side-bar__header__title__content">
76
+ REGISTER SERVICES
77
+ </div>
78
+ </div>
79
+ <div className="panel__header__actions side-bar__header__actions"></div>
80
+ <button
81
+ className="panel__header__action side-bar__header__action global-test-runner__refresh-btn"
82
+ onClick={() => setOpen(true)}
83
+ tabIndex={-1}
84
+ title="Register All Services"
85
+ >
86
+ <PlayIcon />
87
+ </button>
88
+ <Dialog onClose={noop} open={open}>
89
+ <Modal
90
+ darkMode={true}
91
+ className={clsx('editor-modal query-builder__dialog', {
92
+ 'query-builder__dialog--expanded': isMaximized,
93
+ })}
94
+ >
95
+ <div className="query-builder__dialog__header">
96
+ <div className="query-builder__dialog__header__actions"></div>
97
+ <button
98
+ className="query-builder__dialog__header__action"
99
+ tabIndex={-1}
100
+ onClick={toggleMaximize}
101
+ >
102
+ {isMaximized ? (
103
+ <EmptyWindowRestoreIcon />
104
+ ) : (
105
+ <WindowMaximizeIcon />
106
+ )}
107
+ </button>
108
+ <button
109
+ className="query-builder__dialog__header__action"
110
+ tabIndex={-1}
111
+ onClick={() => setOpen(false)}
112
+ >
113
+ <TimesIcon />
114
+ </button>
115
+ </div>
116
+ <BulkServiceRegistrationEditor />;
117
+ </Modal>
118
+ </Dialog>
119
+ </div>
120
+ <div className="panel__content side-bar__content">
121
+ <div className="panel side-bar__panel">
122
+ <div className="panel__header">
123
+ <div className="panel__header__title">
124
+ <div className="panel__header__title__content">SERVICES</div>
125
+ </div>
126
+ <div
127
+ className="side-bar__panel__header__changes-count"
128
+ data-testid={
129
+ LEGEND_STUDIO_TEST_ID.SIDEBAR_PANEL_HEADER__CHANGES_COUNT
130
+ }
131
+ ></div>
132
+ </div>
133
+ <PanelContent>{renderTestables()}</PanelContent>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ );
138
+ },
139
+ );