@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
@@ -80,6 +80,7 @@ import {
80
80
  RedshiftDatasourceSpecification,
81
81
  PackageableElementExplicitReference,
82
82
  MapperPostProcessor,
83
+ SpannerDatasourceSpecification,
83
84
  } from '@finos/legend-graph';
84
85
  import type { LegendStudioApplicationPlugin } from '../../../../stores/LegendStudioApplicationPlugin.js';
85
86
  import type { STO_Relational_LegendStudioApplicationPlugin_Extension } from '../../../../stores/STO_Relational_LegendStudioApplicationPlugin_Extension.js';
@@ -132,6 +133,11 @@ import {
132
133
  snowflakePublicAuthenticationStrategy_setPassPhraseVaultReference,
133
134
  snowflakePublicAuthenticationStrategy_setPrivateKeyVaultReference,
134
135
  snowflakePublicAuthenticationStrategy_setPublicUserName,
136
+ spannerDatasourceSpecification_setDatabaseId,
137
+ spannerDatasourceSpecification_setProxyHost,
138
+ spannerDatasourceSpecification_setInstanceId,
139
+ spannerDatasourceSpecification_setProxyPort,
140
+ spannerDatasourceSpecification_setProjectId,
135
141
  staticDatasourceSpecification_setDatabaseName,
136
142
  staticDatasourceSpecification_setHost,
137
143
  staticDatasourceSpecification_setPort,
@@ -621,6 +627,70 @@ const BigQueryDatasourceSpecificationEditor = observer(
621
627
  },
622
628
  );
623
629
 
630
+ const SpannerDatasourceSpecificationEditor = observer(
631
+ (props: {
632
+ sourceSpec: SpannerDatasourceSpecification;
633
+ isReadOnly: boolean;
634
+ }) => {
635
+ const { sourceSpec, isReadOnly } = props;
636
+ return (
637
+ <>
638
+ <PanelFormTextField
639
+ isReadOnly={isReadOnly}
640
+ value={sourceSpec.projectId}
641
+ name="project id"
642
+ prompt="Your Google Cloud Platform (GCP) project identifier"
643
+ update={(value: string | undefined): void =>
644
+ spannerDatasourceSpecification_setProjectId(sourceSpec, value ?? '')
645
+ }
646
+ />
647
+ <PanelFormTextField
648
+ isReadOnly={isReadOnly}
649
+ value={sourceSpec.instanceId}
650
+ name="instance id"
651
+ prompt="Spanner instance identifier in Google Cloud Platform (GCP)"
652
+ update={(value: string | undefined): void =>
653
+ spannerDatasourceSpecification_setInstanceId(
654
+ sourceSpec,
655
+ value ?? '',
656
+ )
657
+ }
658
+ />
659
+ <PanelFormTextField
660
+ isReadOnly={isReadOnly}
661
+ value={sourceSpec.databaseId}
662
+ name="database id"
663
+ prompt="Spanner database identifier"
664
+ update={(value: string | undefined): void =>
665
+ spannerDatasourceSpecification_setDatabaseId(
666
+ sourceSpec,
667
+ value ?? '',
668
+ )
669
+ }
670
+ />
671
+ <PanelFormTextField
672
+ isReadOnly={isReadOnly}
673
+ value={sourceSpec.proxyHost}
674
+ name="proxyHost"
675
+ prompt="Specifies the connection host. Leave blank to use GCP defaults"
676
+ update={(value: string | undefined): void =>
677
+ spannerDatasourceSpecification_setProxyHost(sourceSpec, value ?? '')
678
+ }
679
+ />
680
+ <PanelFormTextField
681
+ isReadOnly={isReadOnly}
682
+ value={sourceSpec.proxyPort}
683
+ name="proxyPort"
684
+ prompt="Specifies the connection port. Leave blank to use GCP defaults"
685
+ update={(value: string | undefined): void =>
686
+ spannerDatasourceSpecification_setProxyPort(sourceSpec, value ?? '')
687
+ }
688
+ />
689
+ </>
690
+ );
691
+ },
692
+ );
693
+
624
694
  // auth strategy
625
695
 
626
696
  const DelegatedKerberosAuthenticationStrategyEditor = observer(
@@ -1230,6 +1300,13 @@ const renderDatasourceSpecificationEditor = (
1230
1300
  isReadOnly={isReadOnly}
1231
1301
  />
1232
1302
  );
1303
+ } else if (sourceSpec instanceof SpannerDatasourceSpecification) {
1304
+ return (
1305
+ <SpannerDatasourceSpecificationEditor
1306
+ sourceSpec={sourceSpec}
1307
+ isReadOnly={isReadOnly}
1308
+ />
1309
+ );
1233
1310
  } else {
1234
1311
  const extraDatasourceSpecificationEditorRenderers = plugins.flatMap(
1235
1312
  (plugin) =>
@@ -1324,7 +1401,6 @@ const renderAuthenticationStrategyEditor = (
1324
1401
  return null;
1325
1402
  }
1326
1403
  };
1327
-
1328
1404
  const RelationalConnectionGeneralEditor = observer(
1329
1405
  (props: {
1330
1406
  connectionValueState: RelationalDatabaseConnectionValueState;
@@ -125,7 +125,7 @@ export const InstanceSetImplementationSourceExplorer = observer(
125
125
  if (!embeddedSetImpls.length) {
126
126
  setSourceElementForSourceSelectorModal(null);
127
127
  } else {
128
- applicationStore.setActionAlertInfo({
128
+ applicationStore.alertService.setActionAlertInfo({
129
129
  message: CHANGING_SOURCE_ON_EMBEDDED,
130
130
  actions: [
131
131
  {
@@ -164,7 +164,7 @@ export const InstanceSetImplementationSourceExplorer = observer(
164
164
  } else if (droppedPackagableElement instanceof FlatData) {
165
165
  const allRecordTypes = getAllRecordTypes(droppedPackagableElement);
166
166
  if (allRecordTypes.length === 0) {
167
- applicationStore.notifyWarning(
167
+ applicationStore.notificationService.notifyWarning(
168
168
  `Source flat-data store '${droppedPackagableElement.path}' must have at least one action`,
169
169
  );
170
170
  return;
@@ -184,7 +184,7 @@ export const InstanceSetImplementationSourceExplorer = observer(
184
184
  (schema.tables as (Table | View)[]).concat(schema.views),
185
185
  );
186
186
  if (relations.length === 0) {
187
- applicationStore.notifyWarning(
187
+ applicationStore.notificationService.notifyWarning(
188
188
  `Source database '${droppedPackagableElement.path}' must have at least one table or view`,
189
189
  );
190
190
  return;
@@ -218,7 +218,7 @@ export const InstanceSetImplementationSourceExplorer = observer(
218
218
  if (!embeddedSetImpls.length) {
219
219
  changeClassMappingSourceDriver(droppedPackagableElement);
220
220
  } else {
221
- applicationStore.setActionAlertInfo({
221
+ applicationStore.alertService.setActionAlertInfo({
222
222
  message: CHANGING_SOURCE_ON_EMBEDDED,
223
223
  actions: [
224
224
  {
@@ -215,7 +215,7 @@ const MappingExecutionQueryEditor = observer(
215
215
  await flowResult(
216
216
  executionState.queryState.updateLamba(rawLambda),
217
217
  );
218
- applicationStore.notifySuccess(
218
+ applicationStore.notificationService.notifySuccess(
219
219
  `Mapping execution query is updated`,
220
220
  );
221
221
  embeddedQueryBuilderState.setEmbeddedQueryBuilderConfiguration(
@@ -223,7 +223,7 @@ const MappingExecutionQueryEditor = observer(
223
223
  );
224
224
  } catch (error) {
225
225
  assertErrorThrown(error);
226
- applicationStore.notifyError(
226
+ applicationStore.notificationService.notifyError(
227
227
  `Can't save query: ${error.message}`,
228
228
  );
229
229
  }
@@ -288,7 +288,7 @@ const MappingExecutionQueryEditor = observer(
288
288
  MappingExecutionEmptyInputDataState
289
289
  ) {
290
290
  if (setImplementation instanceof OperationSetImplementation) {
291
- applicationStore.notifyWarning(
291
+ applicationStore.notificationService.notifyWarning(
292
292
  `Can't auto-generate input data for operation class mapping. Please pick a concrete class mapping instead`,
293
293
  );
294
294
  } else {
@@ -301,7 +301,7 @@ const MappingExecutionQueryEditor = observer(
301
301
  );
302
302
  }
303
303
  } else {
304
- applicationStore.setActionAlertInfo({
304
+ applicationStore.alertService.setActionAlertInfo({
305
305
  message: 'Mapping execution input data is already set',
306
306
  prompt: 'Do you want to regenerate the input data?',
307
307
  type: ActionAlertType.CAUTION,
@@ -68,9 +68,13 @@ const MappingExecutionQueryBuilderSetupPanelContent = observer(
68
68
  disabled={true}
69
69
  options={[]}
70
70
  value={selectedMappingOption}
71
- darkMode={!applicationStore.TEMPORARY__isLightThemeEnabled}
71
+ darkMode={
72
+ !applicationStore.layoutService.TEMPORARY__isLightThemeEnabled
73
+ }
72
74
  formatOptionLabel={getPackageableElementOptionFormatter({
73
- darkMode: !applicationStore.TEMPORARY__isLightThemeEnabled,
75
+ darkMode:
76
+ !applicationStore.layoutService
77
+ .TEMPORARY__isLightThemeEnabled,
74
78
  graph: editorStore.graphManagerState.graph,
75
79
  })}
76
80
  />
@@ -138,7 +138,7 @@ const MappingTestQueryEditor = observer(
138
138
  await flowResult(
139
139
  testState.queryState.updateLamba(rawLambda),
140
140
  );
141
- applicationStore.notifySuccess(
141
+ applicationStore.notificationService.notifySuccess(
142
142
  `Mapping test query is updated`,
143
143
  );
144
144
  embeddedQueryBuilderState.setEmbeddedQueryBuilderConfiguration(
@@ -146,7 +146,7 @@ const MappingTestQueryEditor = observer(
146
146
  );
147
147
  } catch (error) {
148
148
  assertErrorThrown(error);
149
- applicationStore.notifyError(
149
+ applicationStore.notificationService.notifyError(
150
150
  `Can't save query: ${error.message}`,
151
151
  );
152
152
  }
@@ -198,7 +198,7 @@ const MappingTestQueryEditor = observer(
198
198
 
199
199
  // Attempt to generate data for input data panel as we pick the class mapping
200
200
  if (setImplementation) {
201
- applicationStore.setActionAlertInfo({
201
+ applicationStore.alertService.setActionAlertInfo({
202
202
  message: 'Mapping test input data is already set',
203
203
  prompt: 'Do you want to regenerate the input data?',
204
204
  type: ActionAlertType.CAUTION,
@@ -239,7 +239,7 @@ export const PropertyMappingEditor = observer(
239
239
  mappingEditorState.openMappingElement(embedded, true);
240
240
  }
241
241
  } else {
242
- applicationStore.notifyWarning(
242
+ applicationStore.notificationService.notifyWarning(
243
243
  `Can't visit mapping element for type '${propertyRawType.name}'`,
244
244
  );
245
245
  }
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import { useEffect } from 'react';
18
- import { prettyCONSTName } from '@finos/legend-shared';
18
+ import { isNonNullable, prettyCONSTName } from '@finos/legend-shared';
19
19
  import { observer } from 'mobx-react-lite';
20
20
  import {
21
21
  ProjectConfigurationEditorState,
@@ -28,10 +28,11 @@ import {
28
28
  ExclamationCircleIcon,
29
29
  Panel,
30
30
  PanelForm,
31
- PanelFormTextField,
32
31
  CheckSquareIcon,
33
32
  SquareIcon,
34
33
  ExclamationTriangleIcon,
34
+ PanelFormSection,
35
+ PanelListItem,
35
36
  } from '@finos/legend-art';
36
37
  import { flowResult } from 'mobx';
37
38
  import {
@@ -42,12 +43,17 @@ import {
42
43
  } from '@finos/legend-server-sdlc';
43
44
  import { useEditorStore } from '../../EditorStoreProvider.js';
44
45
  import {
46
+ ActionAlertActionType,
47
+ ActionAlertType,
48
+ DocumentationLink,
45
49
  DocumentationPreview,
46
50
  LEGEND_APPLICATION_DOCUMENTATION_KEY,
51
+ shouldDisplayVirtualAssistantDocumentationEntry,
47
52
  useApplicationStore,
48
53
  } from '@finos/legend-application';
49
54
  import { ProjectDependencyEditor } from './ProjectDependencyEditor.js';
50
55
  import type { ProjectData } from '@finos/legend-server-depot';
56
+ import { LEGEND_STUDIO_DOCUMENTATION_KEY } from '../../../../stores/LegendStudioDocumentation.js';
51
57
 
52
58
  const ProjectStructureEditor = observer(
53
59
  (props: { projectConfig: ProjectConfiguration; isReadOnly: boolean }) => {
@@ -63,12 +69,31 @@ const ProjectStructureEditor = observer(
63
69
  latestVersion &&
64
70
  (latestVersion.version > projectConfig.projectStructureVersion.version ||
65
71
  latestProjectExtensionVersion > currentProjectExtensionVersion);
72
+ const isGroupIdChanged =
73
+ editorStore.projectConfigurationEditorState.isGroupIdChanged;
74
+ const isArtifactIdChanged =
75
+ editorStore.projectConfigurationEditorState.isArtifactIdChanged;
76
+
66
77
  const updateVersion = (): void => {
67
78
  flowResult(
68
79
  editorStore.projectConfigurationEditorState.updateToLatestStructure(),
69
80
  ).catch(applicationStore.alertUnhandledError);
70
81
  };
71
82
 
83
+ const changeGroupId: React.ChangeEventHandler<HTMLInputElement> = (
84
+ event,
85
+ ) => {
86
+ const stringValue = event.target.value;
87
+ projectConfig.setGroupId(stringValue);
88
+ };
89
+
90
+ const changeArtifactId: React.ChangeEventHandler<HTMLInputElement> = (
91
+ event,
92
+ ) => {
93
+ const stringValue = event.target.value;
94
+ projectConfig.setArtifactId(stringValue);
95
+ };
96
+
72
97
  return (
73
98
  <div className="panel__content__lists">
74
99
  <div className="project-configuration-editor__project__structure__version">
@@ -104,27 +129,72 @@ const ProjectStructureEditor = observer(
104
129
  </div>
105
130
 
106
131
  <PanelForm>
107
- <PanelFormTextField
108
- isReadOnly={isReadOnly}
109
- value={projectConfig.groupId}
110
- name="Group ID"
111
- prompt="The domain for artifacts generated as part of the project build
112
- pipeline and published to an artifact repository"
113
- update={(value: string | undefined): void =>
114
- projectConfig.setGroupId(value ?? '')
115
- }
116
- />
117
- <PanelFormTextField
118
- isReadOnly={isReadOnly}
119
- value={projectConfig.artifactId}
120
- name="Artifact ID"
121
- prompt="The identifier (within the domain specified by group ID) for
132
+ <PanelFormSection>
133
+ <div className="panel__content__form__section__header__label">
134
+ Group ID
135
+ </div>
136
+ <div className="panel__content__form__section__header__prompt">
137
+ The domain for artifacts generated as part of the project build
138
+ pipeline and published to an artifact repository
139
+ </div>
140
+ <PanelListItem>
141
+ <div className="input-group">
142
+ <input
143
+ className={clsx(
144
+ 'input input--dark input-group__input panel__content__form__section__input input--full',
145
+ { 'input--caution': isGroupIdChanged },
146
+ )}
147
+ title="Group ID"
148
+ spellCheck={false}
149
+ disabled={isReadOnly}
150
+ value={projectConfig.groupId}
151
+ onChange={changeGroupId}
152
+ />
153
+
154
+ {isGroupIdChanged && (
155
+ <DocumentationLink
156
+ className="panel__content__form__section__list__item__edit project-configuration-editor__documentation-btn"
157
+ documentationKey={
158
+ LEGEND_STUDIO_DOCUMENTATION_KEY.QUESTION_HOW_TO_UPDATE_PROJECT_GAV_COORDINATES
159
+ }
160
+ />
161
+ )}
162
+ </div>
163
+ </PanelListItem>
164
+ </PanelFormSection>
165
+ <PanelFormSection>
166
+ <div className="panel__content__form__section__header__label">
167
+ Artifact ID
168
+ </div>
169
+ <div className="panel__content__form__section__header__prompt">
170
+ The identifier (within the domain specified by group ID) for
122
171
  artifacts generated as part of the project build pipeline and
123
- published to an artifact repository"
124
- update={(value: string | undefined): void =>
125
- projectConfig.setArtifactId(value ?? '')
126
- }
127
- />
172
+ published to an artifact repository
173
+ </div>
174
+ <PanelListItem>
175
+ <div className="input-group">
176
+ <input
177
+ className={clsx(
178
+ 'input input--dark input-group__input panel__content__form__section__input input--full',
179
+ { 'input--caution': isArtifactIdChanged },
180
+ )}
181
+ title="Artifact ID"
182
+ spellCheck={false}
183
+ disabled={isReadOnly}
184
+ value={projectConfig.artifactId}
185
+ onChange={changeArtifactId}
186
+ />
187
+ {isArtifactIdChanged && (
188
+ <DocumentationLink
189
+ className="panel__content__form__section__list__item__edit project-configuration-editor__documentation-btn"
190
+ documentationKey={
191
+ LEGEND_STUDIO_DOCUMENTATION_KEY.QUESTION_HOW_TO_UPDATE_PROJECT_GAV_COORDINATES
192
+ }
193
+ />
194
+ )}
195
+ </div>
196
+ </PanelListItem>
197
+ </PanelFormSection>
128
198
  </PanelForm>
129
199
  </div>
130
200
  );
@@ -359,13 +429,81 @@ export const ProjectConfigurationEditor = observer(() => {
359
429
  };
360
430
  const disableAddButton =
361
431
  selectedTab !== CONFIGURATION_EDITOR_TAB.PROJECT_DEPENDENCIES || isReadOnly;
362
- const updateConfigs = (): void => {
363
- editorStore.localChangesState.alertUnsavedChanges((): void => {
364
- flowResult(configState.updateConfigs()).catch(
365
- applicationStore.alertUnhandledError,
432
+
433
+ const updateGavConfigs = (): void => {
434
+ const documentationEntry =
435
+ applicationStore.documentationService.getDocEntry(
436
+ LEGEND_STUDIO_DOCUMENTATION_KEY.QUESTION_HOW_TO_UPDATE_PROJECT_GAV_COORDINATES,
366
437
  );
438
+
439
+ editorStore.applicationStore.alertService.setActionAlertInfo({
440
+ message:
441
+ 'Please be cautious that modifying group ID or artifact ID (GAV coordinates) can potentially have a big downstream impact. Be aware that the project will lose all previous versions; also, any dependant projects can break too if the coordinates are not changed in a controlled way.',
442
+ type: ActionAlertType.STANDARD,
443
+ prompt: documentationEntry
444
+ ? 'Please see the instructions for more guidance'
445
+ : undefined,
446
+ actions: [
447
+ {
448
+ label: (
449
+ <>
450
+ Acknowledge and Proceed
451
+ <DocumentationLink
452
+ className="panel__content__form__section__list__item__edit project-configuration-editor__documentation-btn"
453
+ documentationKey={
454
+ LEGEND_STUDIO_DOCUMENTATION_KEY.QUESTION_HOW_TO_UPDATE_PROJECT_GAV_COORDINATES
455
+ }
456
+ />
457
+ </>
458
+ ),
459
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
460
+ handler: (): void => {
461
+ editorStore.localChangesState.alertUnsavedChanges((): void => {
462
+ flowResult(configState.updateConfigs()).catch(
463
+ applicationStore.alertUnhandledError,
464
+ );
465
+ });
466
+ },
467
+ },
468
+ documentationEntry && {
469
+ label: 'View Instructions',
470
+ default: true,
471
+ type: ActionAlertActionType.PROCEED,
472
+ handler: (): void => {
473
+ if (
474
+ shouldDisplayVirtualAssistantDocumentationEntry(
475
+ documentationEntry,
476
+ )
477
+ ) {
478
+ applicationStore.assistantService.openDocumentationEntry(
479
+ documentationEntry._documentationKey,
480
+ );
481
+ } else if (documentationEntry.url) {
482
+ applicationStore.navigationService.navigator.visitAddress(
483
+ documentationEntry.url,
484
+ );
485
+ }
486
+ },
487
+ },
488
+ {
489
+ label: 'Cancel',
490
+ type: ActionAlertActionType.PROCEED,
491
+ },
492
+ ].filter(isNonNullable),
367
493
  });
368
494
  };
495
+
496
+ const updateConfigs = (): void => {
497
+ if (configState.isArtifactIdChanged || configState.isGroupIdChanged) {
498
+ updateGavConfigs();
499
+ } else {
500
+ editorStore.localChangesState.alertUnsavedChanges((): void => {
501
+ flowResult(configState.updateConfigs()).catch(
502
+ applicationStore.alertUnhandledError,
503
+ );
504
+ });
505
+ }
506
+ };
369
507
  useEffect(() => {
370
508
  if (
371
509
  configState.projectConfiguration &&
@@ -213,14 +213,18 @@ const DependencyTreeNodeContextMenu = observer(
213
213
  const viewProjectUrl = getViewProjectUrl();
214
214
 
215
215
  const viewProject = (): void => {
216
- applicationStore.navigator.visitAddress(
217
- applicationStore.navigator.generateAddress(viewProjectUrl),
216
+ applicationStore.navigationService.navigator.visitAddress(
217
+ applicationStore.navigationService.navigator.generateAddress(
218
+ viewProjectUrl,
219
+ ),
218
220
  );
219
221
  };
220
222
  const viewSDLCProject = (): void => {
221
223
  if (sdlcProjectUrl) {
222
- applicationStore.navigator.visitAddress(
223
- applicationStore.navigator.generateAddress(sdlcProjectUrl),
224
+ applicationStore.navigationService.navigator.visitAddress(
225
+ applicationStore.navigationService.navigator.generateAddress(
226
+ sdlcProjectUrl,
227
+ ),
224
228
  );
225
229
  }
226
230
  };
@@ -818,7 +822,7 @@ const ProjectVersionDependencyEditor = observer(
818
822
  );
819
823
  } catch (error) {
820
824
  assertErrorThrown(error);
821
- applicationStore.log.error(
825
+ applicationStore.logService.error(
822
826
  LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE),
823
827
  error,
824
828
  );
@@ -827,8 +831,8 @@ const ProjectVersionDependencyEditor = observer(
827
831
  };
828
832
  const viewProject = (): void => {
829
833
  if (!projectDependency.isLegacyDependency) {
830
- applicationStore.navigator.visitAddress(
831
- applicationStore.navigator.generateAddress(
834
+ applicationStore.navigationService.navigator.visitAddress(
835
+ applicationStore.navigationService.navigator.generateAddress(
832
836
  generateViewProjectByGAVRoute(
833
837
  guaranteeNonNullable(projectDependency.groupId),
834
838
  guaranteeNonNullable(projectDependency.artifactId),
@@ -844,8 +848,8 @@ const ProjectVersionDependencyEditor = observer(
844
848
  // In the future, the studio instance may be part of the project data
845
849
  const viewSDLCProject = (): void => {
846
850
  if (projectDependencyData) {
847
- applicationStore.navigator.visitAddress(
848
- applicationStore.navigator.generateAddress(
851
+ applicationStore.navigationService.navigator.visitAddress(
852
+ applicationStore.navigationService.navigator.generateAddress(
849
853
  generateViewVersionRoute(projectDependencyData.projectId, version),
850
854
  ),
851
855
  );