@finos/legend-application-studio 18.0.2 → 19.0.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 (345) hide show
  1. package/lib/application/LegendStudio.d.ts.map +1 -1
  2. package/lib/application/LegendStudio.js +3 -9
  3. package/lib/application/LegendStudio.js.map +1 -1
  4. package/lib/components/Core_LegendStudioApplicationPlugin.d.ts +2 -1
  5. package/lib/components/Core_LegendStudioApplicationPlugin.d.ts.map +1 -1
  6. package/lib/components/Core_LegendStudioApplicationPlugin.js +5 -1
  7. package/lib/components/Core_LegendStudioApplicationPlugin.js.map +1 -1
  8. package/lib/components/EditorComponentTestUtils.d.ts.map +1 -1
  9. package/lib/components/EditorComponentTestUtils.js +3 -3
  10. package/lib/components/EditorComponentTestUtils.js.map +1 -1
  11. package/lib/components/LegendStudioApplication.d.ts.map +1 -1
  12. package/lib/components/LegendStudioApplication.js +11 -8
  13. package/lib/components/LegendStudioApplication.js.map +1 -1
  14. package/lib/components/editor/ActivityBar.d.ts.map +1 -1
  15. package/lib/components/editor/ActivityBar.js +13 -18
  16. package/lib/components/editor/ActivityBar.js.map +1 -1
  17. package/lib/components/editor/Editor.d.ts.map +1 -1
  18. package/lib/components/editor/Editor.js +58 -95
  19. package/lib/components/editor/Editor.js.map +1 -1
  20. package/lib/components/editor/StatusBar.d.ts.map +1 -1
  21. package/lib/components/editor/StatusBar.js +4 -6
  22. package/lib/components/editor/StatusBar.js.map +1 -1
  23. package/lib/components/editor/aux-panel/AuxiliaryPanel.js +1 -1
  24. package/lib/components/editor/aux-panel/AuxiliaryPanel.js.map +1 -1
  25. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  26. package/lib/components/editor/command-center/ProjectSearchCommand.js +1 -1
  27. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  28. package/lib/components/editor/edit-panel/EditPanel.d.ts.map +1 -1
  29. package/lib/components/editor/edit-panel/EditPanel.js +5 -5
  30. package/lib/components/editor/edit-panel/EditPanel.js.map +1 -1
  31. package/lib/components/editor/edit-panel/FileGenerationViewer.d.ts.map +1 -1
  32. package/lib/components/editor/edit-panel/FileGenerationViewer.js +2 -2
  33. package/lib/components/editor/edit-panel/FileGenerationViewer.js.map +1 -1
  34. package/lib/components/editor/edit-panel/FunctionEditor.js +2 -2
  35. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  36. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  37. package/lib/components/editor/edit-panel/GrammarTextEditor.js +4 -16
  38. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  39. package/lib/components/editor/edit-panel/ModelImporter.d.ts.map +1 -1
  40. package/lib/components/editor/edit-panel/ModelImporter.js +6 -32
  41. package/lib/components/editor/edit-panel/ModelImporter.js.map +1 -1
  42. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js +2 -3
  43. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js.map +1 -1
  44. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  45. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js +18 -19
  46. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  47. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.d.ts.map +1 -1
  48. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js +13 -7
  49. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js.map +1 -1
  50. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.d.ts.map +1 -1
  51. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +3 -3
  52. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  53. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  54. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +3 -4
  55. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  56. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.d.ts.map +1 -1
  57. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js +7 -8
  58. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js.map +1 -1
  59. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.d.ts.map +1 -1
  60. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.js +3 -3
  61. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.js.map +1 -1
  62. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.d.ts.map +1 -1
  63. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js +4 -5
  64. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js.map +1 -1
  65. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.js +2 -3
  66. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.js.map +1 -1
  67. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  68. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js +2 -3
  69. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js.map +1 -1
  70. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.d.ts.map +1 -1
  71. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +2 -3
  72. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
  73. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.d.ts.map +1 -1
  74. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js +2 -3
  75. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js.map +1 -1
  76. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js +3 -3
  77. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  78. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  79. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +5 -9
  80. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  81. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  82. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +12 -15
  83. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  84. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  85. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +9 -12
  86. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  87. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
  88. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +4 -5
  89. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
  90. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js +4 -4
  91. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  92. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js +4 -4
  93. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  94. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.d.ts.map +1 -1
  95. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +65 -54
  96. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  97. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.d.ts.map +1 -1
  98. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.js +4 -5
  99. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.js.map +1 -1
  100. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +16 -16
  101. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  102. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  103. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +6 -7
  104. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  105. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js +9 -9
  106. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js.map +1 -1
  107. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +5 -5
  108. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  109. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  110. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js +4 -2
  111. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  112. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.d.ts.map +1 -1
  113. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.js +2 -3
  114. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.js.map +1 -1
  115. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts.map +1 -1
  116. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +7 -5
  117. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  118. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
  119. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +12 -8
  120. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  121. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts.map +1 -1
  122. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +7 -5
  123. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  124. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  125. package/lib/components/editor/side-bar/CreateNewElementModal.js +4 -5
  126. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  127. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  128. package/lib/components/editor/side-bar/Explorer.js +10 -7
  129. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  130. package/lib/components/editor/side-bar/WorkflowManager.js +3 -5
  131. package/lib/components/editor/side-bar/WorkflowManager.js.map +1 -1
  132. package/lib/components/editor/side-bar/WorkspaceReview.d.ts.map +1 -1
  133. package/lib/components/editor/side-bar/WorkspaceReview.js +5 -32
  134. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  135. package/lib/components/editor/side-bar/WorkspaceUpdater.d.ts.map +1 -1
  136. package/lib/components/editor/side-bar/WorkspaceUpdater.js +2 -26
  137. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  138. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
  139. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +3 -4
  140. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
  141. package/lib/components/project-viewer/ProjectViewer.d.ts.map +1 -1
  142. package/lib/components/project-viewer/ProjectViewer.js +19 -33
  143. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  144. package/lib/components/shared/DiffView.d.ts.map +1 -1
  145. package/lib/components/shared/DiffView.js +4 -19
  146. package/lib/components/shared/DiffView.js.map +1 -1
  147. package/lib/components/workspace-review/WorkspaceReview.d.ts.map +1 -1
  148. package/lib/components/workspace-review/WorkspaceReview.js +8 -6
  149. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  150. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts.map +1 -1
  151. package/lib/components/workspace-review/WorkspaceReviewPanel.js +2 -2
  152. package/lib/components/workspace-review/WorkspaceReviewPanel.js.map +1 -1
  153. package/lib/components/workspace-review/WorkspaceReviewSideBar.js +1 -1
  154. package/lib/components/workspace-review/WorkspaceReviewSideBar.js.map +1 -1
  155. package/lib/components/workspace-setup/CreateProjectModal.d.ts.map +1 -1
  156. package/lib/components/workspace-setup/CreateProjectModal.js +10 -6
  157. package/lib/components/workspace-setup/CreateProjectModal.js.map +1 -1
  158. package/lib/components/workspace-setup/CreateWorkspaceModal.d.ts.map +1 -1
  159. package/lib/components/workspace-setup/CreateWorkspaceModal.js +4 -5
  160. package/lib/components/workspace-setup/CreateWorkspaceModal.js.map +1 -1
  161. package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
  162. package/lib/components/workspace-setup/WorkspaceSetup.js +4 -1
  163. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  164. package/lib/index.css +2 -2
  165. package/lib/index.css.map +1 -1
  166. package/lib/index.d.ts +0 -1
  167. package/lib/index.d.ts.map +1 -1
  168. package/lib/index.js +0 -1
  169. package/lib/index.js.map +1 -1
  170. package/lib/package.json +5 -7
  171. package/lib/stores/EditorConfig.d.ts +0 -28
  172. package/lib/stores/EditorConfig.d.ts.map +1 -1
  173. package/lib/stores/EditorConfig.js +0 -29
  174. package/lib/stores/EditorConfig.js.map +1 -1
  175. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  176. package/lib/stores/EditorGraphState.js +8 -8
  177. package/lib/stores/EditorGraphState.js.map +1 -1
  178. package/lib/stores/EditorSDLCState.d.ts.map +1 -1
  179. package/lib/stores/EditorSDLCState.js +4 -2
  180. package/lib/stores/EditorSDLCState.js.map +1 -1
  181. package/lib/stores/EditorStore.d.ts +27 -30
  182. package/lib/stores/EditorStore.d.ts.map +1 -1
  183. package/lib/stores/EditorStore.js +183 -146
  184. package/lib/stores/EditorStore.js.map +1 -1
  185. package/lib/stores/EmbeddedQueryBuilderState.d.ts +1 -1
  186. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -1
  187. package/lib/stores/EmbeddedQueryBuilderState.js +7 -8
  188. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -1
  189. package/lib/stores/LegendStudioBaseStore.d.ts +1 -1
  190. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  191. package/lib/stores/LegendStudioBaseStore.js +27 -18
  192. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  193. package/lib/stores/LegendStudioCommand.d.ts +32 -0
  194. package/lib/stores/LegendStudioCommand.d.ts.map +1 -0
  195. package/lib/stores/LegendStudioCommand.js +81 -0
  196. package/lib/stores/LegendStudioCommand.js.map +1 -0
  197. package/lib/stores/LegendStudioRouter.d.ts +15 -15
  198. package/lib/stores/LegendStudioRouter.d.ts.map +1 -1
  199. package/lib/stores/LegendStudioRouter.js +37 -24
  200. package/lib/stores/LegendStudioRouter.js.map +1 -1
  201. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  202. package/lib/stores/editor-state/GraphGenerationState.js +2 -3
  203. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  204. package/lib/stores/editor-state/ModelImporterState.d.ts.map +1 -1
  205. package/lib/stores/editor-state/ModelImporterState.js +21 -21
  206. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  207. package/lib/stores/editor-state/ProjectConfigurationEditorState.d.ts +2 -1
  208. package/lib/stores/editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
  209. package/lib/stores/editor-state/ProjectConfigurationEditorState.js +10 -4
  210. package/lib/stores/editor-state/ProjectConfigurationEditorState.js.map +1 -1
  211. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  212. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +1 -3
  213. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  214. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
  215. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -3
  216. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  217. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
  218. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js +2 -2
  219. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
  220. package/lib/stores/project-viewer/ProjectViewerStore.d.ts +2 -4
  221. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  222. package/lib/stores/project-viewer/ProjectViewerStore.js +45 -44
  223. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  224. package/lib/stores/shared/MockDataUtils.d.ts.map +1 -1
  225. package/lib/stores/shared/MockDataUtils.js +3 -4
  226. package/lib/stores/shared/MockDataUtils.js.map +1 -1
  227. package/lib/stores/shared/testable/TestableUtils.d.ts.map +1 -1
  228. package/lib/stores/shared/testable/TestableUtils.js +6 -6
  229. package/lib/stores/shared/testable/TestableUtils.js.map +1 -1
  230. package/lib/stores/sidebar-state/LocalChangesState.d.ts +1 -0
  231. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  232. package/lib/stores/sidebar-state/LocalChangesState.js +28 -10
  233. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  234. package/lib/stores/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
  235. package/lib/stores/sidebar-state/ProjectOverviewState.js +3 -2
  236. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  237. package/lib/stores/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
  238. package/lib/stores/sidebar-state/WorkspaceReviewState.js +10 -10
  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 +6 -8
  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 +20 -17
  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 +8 -7
  248. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  249. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +6 -6
  250. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  251. package/package.json +14 -16
  252. package/src/application/LegendStudio.tsx +3 -9
  253. package/src/components/Core_LegendStudioApplicationPlugin.tsx +9 -0
  254. package/src/components/EditorComponentTestUtils.tsx +8 -2
  255. package/src/components/LegendStudioApplication.tsx +28 -8
  256. package/src/components/editor/ActivityBar.tsx +35 -73
  257. package/src/components/editor/Editor.tsx +135 -172
  258. package/src/components/editor/StatusBar.tsx +16 -13
  259. package/src/components/editor/aux-panel/AuxiliaryPanel.tsx +1 -1
  260. package/src/components/editor/command-center/ProjectSearchCommand.tsx +12 -16
  261. package/src/components/editor/edit-panel/EditPanel.tsx +14 -22
  262. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +9 -11
  263. package/src/components/editor/edit-panel/FunctionEditor.tsx +2 -2
  264. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +2 -18
  265. package/src/components/editor/edit-panel/ModelImporter.tsx +10 -38
  266. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +2 -2
  267. package/src/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.tsx +37 -38
  268. package/src/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +29 -24
  269. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +8 -9
  270. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +8 -10
  271. package/src/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.tsx +7 -8
  272. package/src/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.tsx +2 -2
  273. package/src/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.tsx +9 -5
  274. package/src/components/editor/edit-panel/element-generation-editor/ElementNativeView.tsx +2 -2
  275. package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +5 -3
  276. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +2 -3
  277. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.tsx +2 -3
  278. package/src/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.tsx +3 -3
  279. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +5 -9
  280. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +23 -27
  281. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +20 -24
  282. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +4 -5
  283. package/src/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.tsx +4 -4
  284. package/src/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +4 -4
  285. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +273 -121
  286. package/src/components/editor/edit-panel/service-editor/NewServiceModal.tsx +7 -5
  287. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +16 -16
  288. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +15 -14
  289. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.tsx +9 -9
  290. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +5 -5
  291. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.tsx +4 -2
  292. package/src/components/editor/edit-panel/testable/TestAssertionEditor.tsx +2 -3
  293. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +12 -5
  294. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +17 -11
  295. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +14 -5
  296. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -5
  297. package/src/components/editor/side-bar/Explorer.tsx +31 -32
  298. package/src/components/editor/side-bar/WorkflowManager.tsx +3 -3
  299. package/src/components/editor/side-bar/WorkspaceReview.tsx +5 -35
  300. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +2 -31
  301. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +3 -4
  302. package/src/components/project-viewer/ProjectViewer.tsx +65 -78
  303. package/src/components/shared/DiffView.tsx +3 -22
  304. package/src/components/workspace-review/WorkspaceReview.tsx +26 -16
  305. package/src/components/workspace-review/WorkspaceReviewPanel.tsx +5 -9
  306. package/src/components/workspace-review/WorkspaceReviewSideBar.tsx +1 -1
  307. package/src/components/workspace-setup/CreateProjectModal.tsx +14 -10
  308. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +6 -5
  309. package/src/components/workspace-setup/WorkspaceSetup.tsx +6 -1
  310. package/src/index.ts +0 -1
  311. package/src/stores/EditorConfig.ts +0 -30
  312. package/src/stores/EditorGraphState.ts +9 -8
  313. package/src/stores/EditorSDLCState.ts +4 -2
  314. package/src/stores/EditorStore.ts +231 -245
  315. package/src/stores/EmbeddedQueryBuilderState.ts +14 -9
  316. package/src/stores/LegendStudioBaseStore.ts +35 -25
  317. package/src/stores/LegendStudioCommand.ts +83 -0
  318. package/src/stores/LegendStudioRouter.ts +50 -41
  319. package/src/stores/editor-state/GraphGenerationState.ts +3 -2
  320. package/src/stores/editor-state/ModelImporterState.ts +35 -23
  321. package/src/stores/editor-state/ProjectConfigurationEditorState.ts +16 -2
  322. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +1 -3
  323. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -3
  324. package/src/stores/editor-state/element-editor-state/testable/TestAssertionState.ts +2 -1
  325. package/src/stores/project-viewer/ProjectViewerStore.ts +65 -59
  326. package/src/stores/shared/MockDataUtils.ts +4 -3
  327. package/src/stores/shared/testable/TestableUtils.ts +6 -5
  328. package/src/stores/sidebar-state/LocalChangesState.ts +29 -9
  329. package/src/stores/sidebar-state/ProjectOverviewState.ts +4 -2
  330. package/src/stores/sidebar-state/WorkspaceReviewState.ts +11 -10
  331. package/src/stores/sidebar-state/WorkspaceSyncState.ts +6 -8
  332. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +20 -17
  333. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +8 -7
  334. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +6 -6
  335. package/tsconfig.json +1 -2
  336. package/lib/components/shared/StudioLambdaEditor.d.ts +0 -41
  337. package/lib/components/shared/StudioLambdaEditor.d.ts.map +0 -1
  338. package/lib/components/shared/StudioLambdaEditor.js +0 -53
  339. package/lib/components/shared/StudioLambdaEditor.js.map +0 -1
  340. package/lib/components/shared/StudioTextInputEditor.d.ts +0 -28
  341. package/lib/components/shared/StudioTextInputEditor.d.ts.map +0 -1
  342. package/lib/components/shared/StudioTextInputEditor.js +0 -36
  343. package/lib/components/shared/StudioTextInputEditor.js.map +0 -1
  344. package/src/components/shared/StudioLambdaEditor.tsx +0 -146
  345. package/src/components/shared/StudioTextInputEditor.tsx +0 -83
@@ -14,7 +14,10 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { QueryBuilderState } from '@finos/legend-query-builder';
17
+ import {
18
+ type QueryBuilderState,
19
+ QUERY_BUILDER_BACKDROP_CONTAINER_ID,
20
+ } from '@finos/legend-query-builder';
18
21
  import type { GeneratorFn } from '@finos/legend-shared';
19
22
  import { flow, flowResult, makeObservable, observable } from 'mobx';
20
23
  import { FormModeCompilationOutcome } from './EditorGraphState.js';
@@ -57,7 +60,7 @@ export class EmbeddedQueryBuilderState {
57
60
  return;
58
61
  }
59
62
  if (!config.disableCompile) {
60
- this.editorStore.setBlockingAlert({
63
+ this.editorStore.applicationStore.setBlockingAlert({
61
64
  message: 'Compiling graph before building query...',
62
65
  showLoading: true,
63
66
  });
@@ -70,21 +73,21 @@ export class EmbeddedQueryBuilderState {
70
73
  )) as FormModeCompilationOutcome;
71
74
  switch (compilationOutcome) {
72
75
  case FormModeCompilationOutcome.SKIPPED: {
73
- this.editorStore.setBlockingAlert(undefined);
76
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
74
77
  this.editorStore.applicationStore.notifyWarning(
75
78
  `Can't open query builder: Can't compile at this time, please try again later`,
76
79
  );
77
80
  return;
78
81
  }
79
82
  case FormModeCompilationOutcome.SUCCEEDED: {
80
- this.editorStore.setBlockingAlert(undefined);
83
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
81
84
  break;
82
85
  }
83
86
  default: {
84
87
  this.editorStore.applicationStore.notifyWarning(
85
88
  `Can't open query builder: Compilation failed! Please fix the compilation issue and try again`,
86
89
  );
87
- this.editorStore.setBlockingAlert(undefined);
90
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
88
91
  return;
89
92
  }
90
93
  }
@@ -92,14 +95,16 @@ export class EmbeddedQueryBuilderState {
92
95
  if (!this.editorStore.graphState.hasCompilationError) {
93
96
  this.queryBuilderState = config.setupQueryBuilderState();
94
97
  this.actionConfigs = config.actionConfigs;
98
+ this.editorStore.applicationStore.setBackdropContainerElementID(
99
+ QUERY_BUILDER_BACKDROP_CONTAINER_ID,
100
+ );
95
101
  }
96
- this.editorStore.setBlockGlobalHotkeys(true);
97
- this.editorStore.setHotkeys([]);
98
102
  } else {
103
+ this.editorStore.applicationStore.setBackdropContainerElementID(
104
+ undefined,
105
+ );
99
106
  this.queryBuilderState = undefined;
100
107
  this.actionConfigs = [];
101
- this.editorStore.setBlockGlobalHotkeys(false);
102
- this.editorStore.resetHotkeys();
103
108
  }
104
109
  }
105
110
  }
@@ -28,6 +28,7 @@ import {
28
28
  ActionAlertActionType,
29
29
  ActionAlertType,
30
30
  ApplicationTelemetry,
31
+ matchPath,
31
32
  } from '@finos/legend-application';
32
33
  import {
33
34
  action,
@@ -43,6 +44,7 @@ import type { DepotServerClient } from '@finos/legend-server-depot';
43
44
  import type { LegendStudioPluginManager } from '../application/LegendStudioPluginManager.js';
44
45
  import type { LegendStudioApplicationConfig } from '../application/LegendStudioApplicationConfig.js';
45
46
  import { LegendStudioEventService } from './LegendStudioEventService.js';
47
+ import { LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN } from './LegendStudioRouter.js';
46
48
 
47
49
  const UNKNOWN_USER_ID = '(unknown)';
48
50
 
@@ -59,7 +61,7 @@ export class LegendStudioBaseStore {
59
61
 
60
62
  initState = ActionState.create();
61
63
 
62
- isSDLCAuthorized = false;
64
+ isSDLCAuthorized: boolean | undefined = false;
63
65
  SDLCServerTermsOfServicesUrlsToView: string[] = [];
64
66
 
65
67
  constructor(
@@ -98,28 +100,38 @@ export class LegendStudioBaseStore {
98
100
  }
99
101
  this.initState.inProgress();
100
102
 
101
- // setup SDLC server client
102
- yield flowResult(this.initializeSDLCServerClient());
103
+ // authorize SDLC, unless navigation location match SDLC-bypassed patterns
104
+ if (
105
+ !matchPath(this.applicationStore.navigator.getCurrentLocation(), [
106
+ LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN.VIEW_BY_GAV,
107
+ LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN.VIEW_BY_GAV_ENTITY,
108
+ ])
109
+ ) {
110
+ // setup SDLC server client
111
+ yield flowResult(this.initializeSDLCServerClient());
112
+
113
+ let currentUserID = UNKNOWN_USER_ID;
114
+ try {
115
+ const currentUser = User.serialization.fromJson(
116
+ (yield this.sdlcServerClient.getCurrentUser()) as PlainObject<User>,
117
+ );
118
+ this.sdlcServerClient.setCurrentUser(currentUser);
119
+ currentUserID = currentUser.userId;
120
+ } catch (error) {
121
+ assertErrorThrown(error);
122
+ this.applicationStore.log.error(
123
+ LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE),
124
+ error,
125
+ );
126
+ this.applicationStore.notifyWarning(error.message);
127
+ }
103
128
 
104
- let currentUserID = UNKNOWN_USER_ID;
105
- try {
106
- const currentUser = User.serialization.fromJson(
107
- (yield this.sdlcServerClient.getCurrentUser()) as PlainObject<User>,
108
- );
109
- this.sdlcServerClient.setCurrentUser(currentUser);
110
- currentUserID = currentUser.userId;
111
- } catch (error) {
112
- assertErrorThrown(error);
113
- this.applicationStore.log.error(
114
- LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE),
115
- error,
116
- );
117
- this.applicationStore.notifyWarning(error.message);
129
+ // setup telemetry service
130
+ this.applicationStore.telemetryService.setUserId(currentUserID);
131
+ } else {
132
+ this.isSDLCAuthorized = undefined;
118
133
  }
119
134
 
120
- // setup telemetry service
121
- this.applicationStore.telemetryService.setUserId(currentUserID);
122
-
123
135
  ApplicationTelemetry.logEvent_ApplicationInitialized(
124
136
  this.applicationStore.telemetryService,
125
137
  {
@@ -149,14 +161,11 @@ export class LegendStudioBaseStore {
149
161
  this.isSDLCAuthorized =
150
162
  (yield this.sdlcServerClient.isAuthorized()) as boolean;
151
163
  if (!this.isSDLCAuthorized) {
152
- this.applicationStore.navigator.visitAddress(
164
+ this.applicationStore.navigator.goToAddress(
153
165
  SDLCServerClient.authorizeCallbackUrl(
154
166
  this.applicationStore.config.sdlcServerUrl,
155
167
  this.applicationStore.navigator.getCurrentAddress(),
156
168
  ),
157
- {
158
- useSameWindow: true,
159
- },
160
169
  );
161
170
  } else {
162
171
  // Only proceed intialization after passing authorization check
@@ -191,7 +200,8 @@ export class LegendStudioBaseStore {
191
200
  });
192
201
  }
193
202
 
194
- // fetch server features config
203
+ // fetch server features config and platforms
204
+ yield this.sdlcServerClient.fetchServerPlatforms();
195
205
  yield this.sdlcServerClient.fetchServerFeaturesConfiguration();
196
206
  }
197
207
  } catch (error) {
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { CommandConfigData } from '@finos/legend-application';
18
+
19
+ export enum LEGEND_STUDIO_COMMAND_KEY {
20
+ SYNC_WITH_WORKSPACE = 'editor.sync-workspace',
21
+ CREATE_ELEMENT = 'editor.create-new-element',
22
+ SEARCH_ELEMENT = 'editor.search-element',
23
+ TOGGLE_TEXT_MODE = 'editor.toggle-text-mode',
24
+ GENERATE = 'editor.generate',
25
+ COMPILE = 'editor.compile',
26
+ TOGGLE_AUX_PANEL = 'editor.toggle-auxiliary-panel',
27
+ TOGGLE_MODEL_LOADER = 'editor.toggle-model-loader',
28
+ TOGGLE_SIDEBAR_EXPLORER = 'editor.sidebar.toggle-explorer',
29
+ TOGGLE_SIDEBAR_LOCAL_CHANGES = 'editor.sidebar.toggle-local-changes',
30
+ TOGGLE_SIDEBAR_WORKSPACE_REVIEW = 'editor.sidebar.toggle-workspace-review',
31
+ TOGGLE_SIDEBAR_WORKSPACE_UPDATER = 'editor.sidebar.toggle-workspace-updater',
32
+ }
33
+
34
+ export const LEGEND_STUDIO_COMMAND_CONFIG: CommandConfigData = {
35
+ [LEGEND_STUDIO_COMMAND_KEY.SYNC_WITH_WORKSPACE]: {
36
+ title: 'Sync with workspace',
37
+ defaultKeyboardShortcut: 'Control+s',
38
+ },
39
+ [LEGEND_STUDIO_COMMAND_KEY.CREATE_ELEMENT]: {
40
+ title: 'Create new element',
41
+ defaultKeyboardShortcut: 'Control+Shift+n',
42
+ },
43
+ [LEGEND_STUDIO_COMMAND_KEY.SEARCH_ELEMENT]: {
44
+ title: 'Search for element',
45
+ defaultKeyboardShortcut: 'Control+p',
46
+ },
47
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_MODEL_LOADER]: {
48
+ title: 'Toggle model loader',
49
+ defaultKeyboardShortcut: 'F2',
50
+ },
51
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_TEXT_MODE]: {
52
+ title: 'Toggle text mode',
53
+ defaultKeyboardShortcut: 'F8',
54
+ },
55
+ [LEGEND_STUDIO_COMMAND_KEY.COMPILE]: {
56
+ title: 'Compile',
57
+ defaultKeyboardShortcut: 'F9',
58
+ },
59
+ [LEGEND_STUDIO_COMMAND_KEY.GENERATE]: {
60
+ title: 'Generate',
61
+ defaultKeyboardShortcut: 'F10',
62
+ },
63
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_AUX_PANEL]: {
64
+ title: 'Toggle auxiliary panel',
65
+ defaultKeyboardShortcut: 'Control+`',
66
+ },
67
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_SIDEBAR_EXPLORER]: {
68
+ title: 'Toggle explorer sidebar',
69
+ defaultKeyboardShortcut: 'Control+Shift+x',
70
+ },
71
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_SIDEBAR_LOCAL_CHANGES]: {
72
+ title: 'Toggle local changes sidebar',
73
+ defaultKeyboardShortcut: 'Control+Shift+g',
74
+ },
75
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_SIDEBAR_WORKSPACE_REVIEW]: {
76
+ title: 'Toggle workspace review sidebar',
77
+ defaultKeyboardShortcut: 'Control+Shift+m',
78
+ },
79
+ [LEGEND_STUDIO_COMMAND_KEY.TOGGLE_SIDEBAR_WORKSPACE_UPDATER]: {
80
+ title: 'Toggle workspace updater sidebar',
81
+ defaultKeyboardShortcut: 'Control+Shift+u',
82
+ },
83
+ };
@@ -32,18 +32,23 @@ export enum LEGEND_STUDIO_PATH_PARAM_TOKEN {
32
32
 
33
33
  export const LEGEND_STUDIO_ROUTE_PATTERN = Object.freeze({
34
34
  VIEW: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}`,
35
- VIEW_BY_GAV: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}`,
36
- VIEW_BY_GAV_ENTITY: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
37
35
  VIEW_BY_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
38
36
  VIEW_BY_REVISION: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/revision/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVISION_ID}`,
39
37
  VIEW_BY_VERSION: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/version/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.VERSION_ID}`,
40
38
  VIEW_BY_REVISION_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/revision/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVISION_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
41
39
  VIEW_BY_VERSION_ENTITY: `/view/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/version/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.VERSION_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
42
40
  REVIEW: `/review/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.REVIEW_ID}`,
43
- EDIT: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}/`,
44
- EDIT_GROUP: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
45
- SETUP: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}?/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}?`,
46
- SETUP_GROUP: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
41
+ EDIT_WORKSPACE: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}/`,
42
+ EDIT_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
43
+ EDIT_GROUP_WORKSPACE: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
44
+ EDIT_GROUP_WORKSPACE_ENTITY: `/edit/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
45
+ SETUP_WORKSPACE: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}?/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID}?`,
46
+ SETUP_GROUP_WORKSPACE: `/setup/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID}/groupWorkspace/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID}/`,
47
+ });
48
+
49
+ export const LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN = Object.freeze({
50
+ VIEW_BY_GAV: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}`,
51
+ VIEW_BY_GAV_ENTITY: `/view/archive/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.GAV}/entity/:${LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH}`,
47
52
  });
48
53
 
49
54
  export interface ReviewPathParams {
@@ -59,16 +64,11 @@ export interface ViewerPathParams {
59
64
  [LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH]?: string;
60
65
  }
61
66
 
62
- export interface CoreEditorPathParams {
67
+ export interface WorkspaceEditorPathParams {
63
68
  [LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID]: string;
64
- }
65
-
66
- export interface EditorPathParams extends CoreEditorPathParams {
67
- [LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID]: string;
68
- }
69
-
70
- export interface GroupEditorPathParams extends CoreEditorPathParams {
71
- [LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID]: string;
69
+ [LEGEND_STUDIO_PATH_PARAM_TOKEN.WORKSPACE_ID]?: string;
70
+ [LEGEND_STUDIO_PATH_PARAM_TOKEN.GROUP_WORKSPACE_ID]?: string;
71
+ [LEGEND_STUDIO_PATH_PARAM_TOKEN.ENTITY_PATH]?: string;
72
72
  }
73
73
  export interface SetupPathParams {
74
74
  [LEGEND_STUDIO_PATH_PARAM_TOKEN.PROJECT_ID]?: string;
@@ -80,7 +80,7 @@ const generateGroupWorkspaceSetupRoute = (
80
80
  projectId: string | undefined,
81
81
  groupWorkspaceId: string,
82
82
  ): string =>
83
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP, {
83
+ generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_GROUP_WORKSPACE, {
84
84
  // FIXME: due to some problem with typings, we will need to cast like this
85
85
  // we will fix this when upgrading react-router
86
86
  // See https://github.com/finos/legend-studio/issues/688
@@ -92,7 +92,7 @@ const generateWorkspaceSetupRoute = (
92
92
  projectId: string | undefined,
93
93
  workspaceId?: string,
94
94
  ): string =>
95
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP, {
95
+ generatePath(LEGEND_STUDIO_ROUTE_PATTERN.SETUP_WORKSPACE, {
96
96
  // FIXME: due to some problem with typings, we will need to cast like this
97
97
  // we will fix this when upgrading react-router
98
98
  // See https://github.com/finos/legend-studio/issues/688
@@ -118,29 +118,44 @@ export const generateSetupRoute = (
118
118
  const generateGroupWorkspaceEditorRoute = (
119
119
  projectId: string,
120
120
  groupWorkspaceId: string,
121
+ entityPath?: string | undefined,
121
122
  ): string =>
122
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP, {
123
- projectId,
124
- groupWorkspaceId,
125
- });
123
+ !entityPath
124
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE, {
125
+ projectId,
126
+ groupWorkspaceId,
127
+ })
128
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_GROUP_WORKSPACE_ENTITY, {
129
+ projectId,
130
+ groupWorkspaceId,
131
+ entityPath,
132
+ });
126
133
 
127
134
  const generateWorkspaceEditorRoute = (
128
135
  projectId: string,
129
136
  workspaceId: string,
137
+ entityPath?: string | undefined,
130
138
  ): string =>
131
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT, {
132
- projectId,
133
- workspaceId,
134
- });
139
+ !entityPath
140
+ ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE, {
141
+ projectId,
142
+ workspaceId,
143
+ })
144
+ : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.EDIT_WORKSPACE_ENTITY, {
145
+ projectId,
146
+ workspaceId,
147
+ entityPath,
148
+ });
135
149
 
136
150
  export const generateEditorRoute = (
137
151
  projectId: string,
138
152
  workspaceId: string,
139
153
  workspaceType: WorkspaceType,
154
+ entityPath?: string | undefined,
140
155
  ): string =>
141
156
  workspaceType === WorkspaceType.GROUP
142
- ? generateGroupWorkspaceEditorRoute(projectId, workspaceId)
143
- : generateWorkspaceEditorRoute(projectId, workspaceId);
157
+ ? generateGroupWorkspaceEditorRoute(projectId, workspaceId, entityPath)
158
+ : generateWorkspaceEditorRoute(projectId, workspaceId, entityPath);
144
159
 
145
160
  export const generateReviewRoute = (
146
161
  projectId: string,
@@ -172,22 +187,16 @@ export const generateViewProjectByGAVRoute = (
172
187
  entityPath?: string | undefined,
173
188
  ): string =>
174
189
  !entityPath
175
- ? generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV, {
190
+ ? generatePath(LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN.VIEW_BY_GAV, {
176
191
  gav: generateGAVCoordinates(groupId, artifactId, versionId),
177
192
  })
178
- : generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV_ENTITY, {
179
- gav: generateGAVCoordinates(groupId, artifactId, versionId),
180
- entityPath,
181
- });
182
-
183
- export const generateViewProjectEntityByGAVRoute = (
184
- groupId: string,
185
- artifactId: string,
186
- versionId: string,
187
- ): string =>
188
- generatePath(LEGEND_STUDIO_ROUTE_PATTERN.VIEW_BY_GAV, {
189
- gav: generateGAVCoordinates(groupId, artifactId, versionId),
190
- });
193
+ : generatePath(
194
+ LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN.VIEW_BY_GAV_ENTITY,
195
+ {
196
+ gav: generateGAVCoordinates(groupId, artifactId, versionId),
197
+ entityPath,
198
+ },
199
+ );
191
200
 
192
201
  export const generateViewVersionRoute = (
193
202
  projectId: string,
@@ -461,12 +461,13 @@ export class GraphGenerationState {
461
461
  .filter(isNonNullable);
462
462
  const currentEditorState = this.editorStore.currentEditorState;
463
463
  if (currentEditorState instanceof FileGenerationViewerState) {
464
- this.editorStore.currentEditorState =
464
+ this.editorStore.setCurrentEditorState(
465
465
  this.editorStore.openedEditorStates.find(
466
466
  (e) =>
467
467
  e instanceof FileGenerationViewerState &&
468
468
  e.generatedFile.path === currentEditorState.generatedFile.path,
469
- );
469
+ ),
470
+ );
470
471
  }
471
472
  }
472
473
 
@@ -90,7 +90,7 @@ export class NativeModelImporterEditorState extends ModelImporterEditorState {
90
90
 
91
91
  constructor(modelImporterState: ModelImporterState) {
92
92
  super(modelImporterState);
93
- this.modelText = this.getExampleEntitiesInputText();
93
+
94
94
  makeObservable(this, {
95
95
  nativeType: observable,
96
96
  modelText: observable,
@@ -98,9 +98,10 @@ export class NativeModelImporterEditorState extends ModelImporterEditorState {
98
98
  setModelText: action,
99
99
  setNativeImportType: action,
100
100
  isLoadingDisabled: computed,
101
- loadModel: flow,
102
101
  loadCurrentProjectEntities: flow,
103
102
  });
103
+
104
+ this.modelText = this.getExampleEntitiesInputText();
104
105
  }
105
106
 
106
107
  get label(): string {
@@ -238,7 +239,7 @@ export class NativeModelImporterEditorState extends ModelImporterEditorState {
238
239
  async loadModel(): Promise<void> {
239
240
  try {
240
241
  this.loadModelActionState.inProgress();
241
- this.editorStore.setBlockingAlert({
242
+ this.editorStore.applicationStore.setBlockingAlert({
242
243
  message: 'Loading model...',
243
244
  prompt: 'Please do not close the application',
244
245
  showLoading: true,
@@ -254,8 +255,9 @@ export class NativeModelImporterEditorState extends ModelImporterEditorState {
254
255
  this.editorStore.sdlcState.activeWorkspace,
255
256
  { replace: this.modelImporterState.replace, entities, message },
256
257
  );
257
- this.editorStore.setIgnoreNavigationBlocking(true);
258
- this.editorStore.applicationStore.navigator.reload();
258
+ this.editorStore.applicationStore.navigator.reload({
259
+ ignoreBlocking: true,
260
+ });
259
261
  } catch (error) {
260
262
  assertErrorThrown(error);
261
263
  this.editorStore.applicationStore.log.error(
@@ -265,7 +267,7 @@ export class NativeModelImporterEditorState extends ModelImporterEditorState {
265
267
  this.editorStore.applicationStore.notifyError(error);
266
268
  } finally {
267
269
  this.loadModelActionState.complete();
268
- this.editorStore.setBlockingAlert(undefined);
270
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
269
271
  }
270
272
  }
271
273
  }
@@ -287,8 +289,7 @@ export class ExtensionModelImporterEditorState extends ModelImporterEditorState
287
289
  modelImporterState: ModelImporterState,
288
290
  ) {
289
291
  super(modelImporterState);
290
- this.config = config;
291
- this.rendererState = rendererState;
292
+
292
293
  makeObservable(this, {
293
294
  config: observable,
294
295
  modelImporterState: observable,
@@ -298,6 +299,9 @@ export class ExtensionModelImporterEditorState extends ModelImporterEditorState
298
299
  setExtension: action,
299
300
  loadModel: flow,
300
301
  });
302
+
303
+ this.config = config;
304
+ this.rendererState = rendererState;
301
305
  }
302
306
 
303
307
  get label(): string {
@@ -337,6 +341,18 @@ export class ExternalFormatModelImporterState extends ModelImporterEditorState {
337
341
  modelImporterState: ModelImporterState,
338
342
  ) {
339
343
  super(modelImporterState);
344
+
345
+ makeObservable(this, {
346
+ schemaSet: observable,
347
+ schemaSetEditorState: observable,
348
+ loadModelActionState: observable,
349
+ description: observable,
350
+ isolatedSchemaGraph: observable,
351
+ setExternalFormat: action,
352
+ setDescription: action,
353
+ isLoadingDisabled: computed,
354
+ });
355
+
340
356
  this.description = description;
341
357
  this.schemaSet = new SchemaSet(DEFAULT_SCHEMA_NAME);
342
358
  this.schemaSet.format = description.name;
@@ -351,17 +367,6 @@ export class ExternalFormatModelImporterState extends ModelImporterEditorState {
351
367
  this.editorStore,
352
368
  this.isolatedSchemaGraph,
353
369
  );
354
- makeObservable(this, {
355
- schemaSet: observable,
356
- schemaSetEditorState: observable,
357
- loadModelActionState: observable,
358
- description: observable,
359
- isolatedSchemaGraph: observable,
360
- setExternalFormat: action,
361
- setDescription: action,
362
- isLoadingDisabled: computed,
363
- loadModel: flow,
364
- });
365
370
  }
366
371
 
367
372
  get allowHardReplace(): boolean {
@@ -398,7 +403,7 @@ export class ExternalFormatModelImporterState extends ModelImporterEditorState {
398
403
  this.loadModelActionState.inProgress();
399
404
  try {
400
405
  this.loadModelActionState.inProgress();
401
- this.editorStore.setBlockingAlert({
406
+ this.editorStore.applicationStore.setBlockingAlert({
402
407
  message: 'Loading model...',
403
408
  prompt: 'Please do not close the application',
404
409
  showLoading: true,
@@ -426,14 +431,15 @@ export class ExternalFormatModelImporterState extends ModelImporterEditorState {
426
431
  this.editorStore.sdlcState.activeWorkspace,
427
432
  { replace: this.modelImporterState.replace, entities, message },
428
433
  );
429
- this.editorStore.setIgnoreNavigationBlocking(true);
430
- this.editorStore.applicationStore.navigator.reload();
434
+ this.editorStore.applicationStore.navigator.reload({
435
+ ignoreBlocking: true,
436
+ });
431
437
  } catch (error) {
432
438
  assertErrorThrown(error);
433
439
  this.editorStore.applicationStore.notifyError(error);
434
440
  } finally {
435
441
  this.loadModelActionState.complete();
436
- this.editorStore.setBlockingAlert(undefined);
442
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
437
443
  }
438
444
  }
439
445
  }
@@ -456,6 +462,7 @@ export class ModelImporterState extends EditorState {
456
462
  setExternalFormatImportFormat: action,
457
463
  setImportEditorState: action,
458
464
  });
465
+
459
466
  this.modelImportEditorState = new NativeModelImporterEditorState(this);
460
467
  this.extensionConfigs = this.editorStore.pluginManager
461
468
  .getApplicationPlugins()
@@ -469,12 +476,15 @@ export class ModelImporterState extends EditorState {
469
476
  get headerName(): string {
470
477
  return 'Model Importer';
471
478
  }
479
+
472
480
  setReplaceFlag(val: boolean): void {
473
481
  this.replace = val;
474
482
  }
483
+
475
484
  setImportEditorState(val: ModelImporterEditorState): void {
476
485
  this.modelImportEditorState = val;
477
486
  }
487
+
478
488
  setNativeImportType(
479
489
  nativeImportType: MODEL_IMPORT_NATIVE_INPUT_TYPE,
480
490
  ): NativeModelImporterEditorState {
@@ -486,6 +496,7 @@ export class ModelImporterState extends EditorState {
486
496
  this.setImportEditorState(nativeEditorState);
487
497
  return nativeEditorState;
488
498
  }
499
+
489
500
  setExternalFormatImportFormat(
490
501
  externalFormat: ExternalFormatDescription,
491
502
  ): ExternalFormatModelImporterState {
@@ -497,6 +508,7 @@ export class ModelImporterState extends EditorState {
497
508
  this.setImportEditorState(extensionEditorState);
498
509
  return extensionEditorState;
499
510
  }
511
+
500
512
  setModelImporterExtension(
501
513
  extension: ModelImporterExtensionConfiguration,
502
514
  ): ExtensionModelImporterEditorState {
@@ -30,12 +30,14 @@ import {
30
30
  LogEvent,
31
31
  assertErrorThrown,
32
32
  guaranteeNonNullable,
33
+ hashArray,
33
34
  } from '@finos/legend-shared';
34
35
  import type { EditorSDLCState } from '../EditorSDLCState.js';
35
36
  import {
36
37
  type ProjectConfiguration,
37
38
  ProjectStructureVersion,
38
39
  UpdateProjectConfigurationCommand,
40
+ UpdatePlatformConfigurationsCommand,
39
41
  } from '@finos/legend-server-sdlc';
40
42
  import { LEGEND_STUDIO_APP_EVENT } from '../LegendStudioAppEvent.js';
41
43
  import {
@@ -51,6 +53,7 @@ import { generateGAVCoordinates } from '@finos/legend-storage';
51
53
  export enum CONFIGURATION_EDITOR_TAB {
52
54
  PROJECT_STRUCTURE = 'PROJECT_STRUCTURE',
53
55
  PROJECT_DEPENDENCIES = 'PROJECT_DEPENDENCIES',
56
+ PLATFORM_CONFIGURATIONS = 'PLATFORM_CONFIGURATIONS',
54
57
  }
55
58
 
56
59
  export enum DEPENDENCY_INFO_TYPE {
@@ -343,7 +346,7 @@ export class ProjectConfigurationEditorState extends EditorState {
343
346
  // See https://github.com/finos/legend-studio/issues/952
344
347
  *updateConfigs(): GeneratorFn<void> {
345
348
  this.isUpdatingConfiguration = true;
346
- this.editorStore.setBlockingAlert({
349
+ this.editorStore.applicationStore.setBlockingAlert({
347
350
  message: `Updating project configuration...`,
348
351
  prompt: `Please do not reload the application`,
349
352
  showLoading: true,
@@ -356,6 +359,17 @@ export class ProjectConfigurationEditorState extends EditorState {
356
359
  this.currentProjectConfiguration.projectStructureVersion,
357
360
  `update project configuration from ${this.editorStore.applicationStore.config.appName}`,
358
361
  );
362
+
363
+ if (
364
+ hashArray(this.originalConfig.platformConfigurations ?? []) !==
365
+ hashArray(this.currentProjectConfiguration.platformConfigurations ?? [])
366
+ ) {
367
+ updateProjectConfigurationCommand.platformConfigurations =
368
+ new UpdatePlatformConfigurationsCommand(
369
+ this.currentProjectConfiguration.platformConfigurations,
370
+ );
371
+ }
372
+
359
373
  updateProjectConfigurationCommand.projectDependenciesToAdd =
360
374
  this.currentProjectConfiguration.projectDependencies.filter(
361
375
  (dep) =>
@@ -382,7 +396,7 @@ export class ProjectConfigurationEditorState extends EditorState {
382
396
  this.editorStore.applicationStore.notifyError(error);
383
397
  } finally {
384
398
  this.isUpdatingConfiguration = false;
385
- this.editorStore.setBlockingAlert(undefined);
399
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
386
400
  }
387
401
  }
388
402
 
@@ -863,12 +863,10 @@ export class MappingExecutionState {
863
863
  );
864
864
  }
865
865
  } else {
866
- this.editorStore.setActionAlertInfo({
866
+ this.editorStore.applicationStore.setActionAlertInfo({
867
867
  message: 'Mapping execution input data is already set',
868
868
  prompt: 'Do you want to regenerate the input data?',
869
869
  type: ActionAlertType.CAUTION,
870
- onEnter: (): void => this.editorStore.setBlockGlobalHotkeys(true),
871
- onClose: (): void => this.editorStore.setBlockGlobalHotkeys(false),
872
870
  actions: [
873
871
  {
874
872
  label: 'Regenerate',