@finos/legend-application-studio 18.1.0 → 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 (343) 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 +14 -15
  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 +12 -6
  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 +17 -41
  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 +25 -17
  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.js +2 -2
  208. package/lib/stores/editor-state/ProjectConfigurationEditorState.js.map +1 -1
  209. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  210. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +1 -3
  211. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  212. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
  213. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -3
  214. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  215. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
  216. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js +2 -2
  217. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
  218. package/lib/stores/project-viewer/ProjectViewerStore.d.ts +2 -4
  219. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  220. package/lib/stores/project-viewer/ProjectViewerStore.js +45 -44
  221. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  222. package/lib/stores/shared/MockDataUtils.d.ts.map +1 -1
  223. package/lib/stores/shared/MockDataUtils.js +3 -4
  224. package/lib/stores/shared/MockDataUtils.js.map +1 -1
  225. package/lib/stores/shared/testable/TestableUtils.d.ts.map +1 -1
  226. package/lib/stores/shared/testable/TestableUtils.js +6 -6
  227. package/lib/stores/shared/testable/TestableUtils.js.map +1 -1
  228. package/lib/stores/sidebar-state/LocalChangesState.d.ts +1 -0
  229. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  230. package/lib/stores/sidebar-state/LocalChangesState.js +28 -10
  231. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  232. package/lib/stores/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
  233. package/lib/stores/sidebar-state/ProjectOverviewState.js +3 -2
  234. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  235. package/lib/stores/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
  236. package/lib/stores/sidebar-state/WorkspaceReviewState.js +10 -10
  237. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  238. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts.map +1 -1
  239. package/lib/stores/sidebar-state/WorkspaceSyncState.js +6 -8
  240. package/lib/stores/sidebar-state/WorkspaceSyncState.js.map +1 -1
  241. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts.map +1 -1
  242. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +20 -17
  243. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  244. package/lib/stores/sidebar-state/WorkspaceUpdaterState.d.ts.map +1 -1
  245. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +8 -7
  246. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  247. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +6 -6
  248. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  249. package/package.json +14 -16
  250. package/src/application/LegendStudio.tsx +3 -9
  251. package/src/components/Core_LegendStudioApplicationPlugin.tsx +9 -0
  252. package/src/components/EditorComponentTestUtils.tsx +8 -2
  253. package/src/components/LegendStudioApplication.tsx +28 -8
  254. package/src/components/editor/ActivityBar.tsx +35 -73
  255. package/src/components/editor/Editor.tsx +135 -172
  256. package/src/components/editor/StatusBar.tsx +16 -13
  257. package/src/components/editor/aux-panel/AuxiliaryPanel.tsx +1 -1
  258. package/src/components/editor/command-center/ProjectSearchCommand.tsx +12 -16
  259. package/src/components/editor/edit-panel/EditPanel.tsx +14 -22
  260. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +9 -11
  261. package/src/components/editor/edit-panel/FunctionEditor.tsx +2 -2
  262. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +2 -18
  263. package/src/components/editor/edit-panel/ModelImporter.tsx +10 -38
  264. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +2 -2
  265. package/src/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.tsx +32 -33
  266. package/src/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +28 -23
  267. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +8 -9
  268. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +8 -10
  269. package/src/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.tsx +7 -8
  270. package/src/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.tsx +2 -2
  271. package/src/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.tsx +9 -5
  272. package/src/components/editor/edit-panel/element-generation-editor/ElementNativeView.tsx +2 -2
  273. package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +5 -3
  274. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +2 -3
  275. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.tsx +2 -3
  276. package/src/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.tsx +3 -3
  277. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +5 -9
  278. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +23 -27
  279. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +20 -24
  280. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +4 -5
  281. package/src/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.tsx +4 -4
  282. package/src/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +4 -4
  283. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +57 -75
  284. package/src/components/editor/edit-panel/service-editor/NewServiceModal.tsx +7 -5
  285. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +16 -16
  286. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +15 -14
  287. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.tsx +9 -9
  288. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +5 -5
  289. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.tsx +4 -2
  290. package/src/components/editor/edit-panel/testable/TestAssertionEditor.tsx +2 -3
  291. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +12 -5
  292. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +17 -11
  293. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +14 -5
  294. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -5
  295. package/src/components/editor/side-bar/Explorer.tsx +31 -32
  296. package/src/components/editor/side-bar/WorkflowManager.tsx +3 -3
  297. package/src/components/editor/side-bar/WorkspaceReview.tsx +5 -35
  298. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +2 -31
  299. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +3 -4
  300. package/src/components/project-viewer/ProjectViewer.tsx +65 -78
  301. package/src/components/shared/DiffView.tsx +3 -22
  302. package/src/components/workspace-review/WorkspaceReview.tsx +26 -16
  303. package/src/components/workspace-review/WorkspaceReviewPanel.tsx +5 -9
  304. package/src/components/workspace-review/WorkspaceReviewSideBar.tsx +1 -1
  305. package/src/components/workspace-setup/CreateProjectModal.tsx +14 -10
  306. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +6 -5
  307. package/src/components/workspace-setup/WorkspaceSetup.tsx +6 -1
  308. package/src/index.ts +0 -1
  309. package/src/stores/EditorConfig.ts +0 -30
  310. package/src/stores/EditorGraphState.ts +9 -8
  311. package/src/stores/EditorSDLCState.ts +4 -2
  312. package/src/stores/EditorStore.ts +231 -245
  313. package/src/stores/EmbeddedQueryBuilderState.ts +14 -9
  314. package/src/stores/LegendStudioBaseStore.ts +33 -24
  315. package/src/stores/LegendStudioCommand.ts +83 -0
  316. package/src/stores/LegendStudioRouter.ts +50 -41
  317. package/src/stores/editor-state/GraphGenerationState.ts +3 -2
  318. package/src/stores/editor-state/ModelImporterState.ts +35 -23
  319. package/src/stores/editor-state/ProjectConfigurationEditorState.ts +2 -2
  320. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +1 -3
  321. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -3
  322. package/src/stores/editor-state/element-editor-state/testable/TestAssertionState.ts +2 -1
  323. package/src/stores/project-viewer/ProjectViewerStore.ts +65 -59
  324. package/src/stores/shared/MockDataUtils.ts +4 -3
  325. package/src/stores/shared/testable/TestableUtils.ts +6 -5
  326. package/src/stores/sidebar-state/LocalChangesState.ts +29 -9
  327. package/src/stores/sidebar-state/ProjectOverviewState.ts +4 -2
  328. package/src/stores/sidebar-state/WorkspaceReviewState.ts +11 -10
  329. package/src/stores/sidebar-state/WorkspaceSyncState.ts +6 -8
  330. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +20 -17
  331. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +8 -7
  332. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +6 -6
  333. package/tsconfig.json +1 -2
  334. package/lib/components/shared/StudioLambdaEditor.d.ts +0 -41
  335. package/lib/components/shared/StudioLambdaEditor.d.ts.map +0 -1
  336. package/lib/components/shared/StudioLambdaEditor.js +0 -53
  337. package/lib/components/shared/StudioLambdaEditor.js.map +0 -1
  338. package/lib/components/shared/StudioTextInputEditor.d.ts +0 -28
  339. package/lib/components/shared/StudioTextInputEditor.d.ts.map +0 -1
  340. package/lib/components/shared/StudioTextInputEditor.js +0 -36
  341. package/lib/components/shared/StudioTextInputEditor.js.map +0 -1
  342. package/src/components/shared/StudioLambdaEditor.tsx +0 -146
  343. package/src/components/shared/StudioTextInputEditor.tsx +0 -83
@@ -15,16 +15,14 @@
15
15
  */
16
16
 
17
17
  import { observer } from 'mobx-react-lite';
18
- import { ACTIVITY_MODE } from '../../stores/EditorConfig.js';
18
+ import { ACTIVITY_MODE, AUX_PANEL_MODE } from '../../stores/EditorConfig.js';
19
19
  import { LEGEND_STUDIO_TEST_ID } from '../LegendStudioTestID.js';
20
20
  import {
21
- CheckIcon,
22
21
  clsx,
23
22
  DropdownMenu,
24
23
  RepoIcon,
25
24
  MenuContent,
26
25
  MenuContentItem,
27
- MenuContentItemIcon,
28
26
  MenuContentItemLabel,
29
27
  GitPullRequestIcon,
30
28
  GitMergeIcon,
@@ -48,16 +46,14 @@ import { useLegendStudioApplicationStore } from '../LegendStudioBaseStoreProvide
48
46
  const SettingsMenu = observer(
49
47
  forwardRef<HTMLDivElement, unknown>(function SettingsMenu(props, ref) {
50
48
  const editorStore = useEditorStore();
51
- const toggleDevTool = (): void => {
52
- editorStore.setDevTool(!editorStore.isDevToolEnabled);
49
+ const showDeveloperTool = (): void => {
50
+ editorStore.auxPanelDisplayState.open();
51
+ editorStore.setActiveAuxPanelMode(AUX_PANEL_MODE.DEV_TOOL);
53
52
  };
54
53
 
55
54
  return (
56
55
  <MenuContent ref={ref} className="activity-bar__setting__menu">
57
- <MenuContentItem onClick={toggleDevTool}>
58
- <MenuContentItemIcon>
59
- {editorStore.isDevToolEnabled ? <CheckIcon /> : null}
60
- </MenuContentItemIcon>
56
+ <MenuContentItem onClick={showDeveloperTool}>
61
57
  <MenuContentItemLabel>Show Developer Tool</MenuContentItemLabel>
62
58
  </MenuContentItem>
63
59
  </MenuContent>
@@ -76,10 +72,6 @@ export const ActivityBarMenu: React.FC = () => {
76
72
  const applicationStore = useLegendStudioApplicationStore();
77
73
  const appDocUrl = applicationStore.documentationService.url;
78
74
 
79
- // menu
80
- const [openMenuDropdown, setOpenMenuDropdown] = useState(false);
81
- const showMenuDropdown = (): void => setOpenMenuDropdown(true);
82
- const hideMenuDropdown = (): void => setOpenMenuDropdown(false);
83
75
  // about modal
84
76
  const [openAppInfo, setOpenAppInfo] = useState(false);
85
77
  const showAppInfo = (): void => setOpenAppInfo(true);
@@ -106,58 +98,34 @@ export const ActivityBarMenu: React.FC = () => {
106
98
 
107
99
  return (
108
100
  <>
109
- <DropdownMenu
110
- className={clsx('app__header__action', {
111
- 'menu__trigger--on-menu-open': openMenuDropdown,
112
- })}
113
- onClose={hideMenuDropdown}
114
- menuProps={{
115
- anchorOrigin: { vertical: 'top', horizontal: 'right' },
116
- transformOrigin: { vertical: 'top', horizontal: 'left' },
117
- elevation: 7,
118
- }}
119
- content={
120
- <MenuContent className="app__header__menu">
121
- <MenuContentItem
122
- className="app__header__menu__item"
123
- onClick={showAppInfo}
124
- >
125
- About
126
- </MenuContentItem>
127
- <MenuContentItem
128
- className="app__header__menu__item"
129
- onClick={openHelp}
130
- >
131
- Help...
132
- </MenuContentItem>
133
- <MenuContentItem
134
- className="app__header__menu__item"
135
- disabled={!appDocUrl}
136
- onClick={goToDocumentation}
137
- >
138
- See Documentation
139
- </MenuContentItem>
140
- <MenuContentDivider />
141
- <MenuContentItem
142
- className="app__header__menu__item"
143
- onClick={goToWorkspaceSetup}
144
- >
145
- Back to workspace setup
146
- </MenuContentItem>
147
- </MenuContent>
148
- }
149
- >
150
- <div className="activity-bar__menu">
151
- <button
152
- className="activity-bar__menu-item"
153
- tabIndex={-1}
154
- onClick={showMenuDropdown}
155
- title="Menu"
156
- >
157
- <MenuIcon />
158
- </button>
159
- </div>
160
- </DropdownMenu>
101
+ <div className="activity-bar__menu">
102
+ <DropdownMenu
103
+ className="activity-bar__menu-item"
104
+ menuProps={{
105
+ anchorOrigin: { vertical: 'top', horizontal: 'right' },
106
+ transformOrigin: { vertical: 'top', horizontal: 'left' },
107
+ elevation: 7,
108
+ }}
109
+ content={
110
+ <MenuContent>
111
+ <MenuContentItem onClick={showAppInfo}>About</MenuContentItem>
112
+ <MenuContentItem onClick={openHelp}>Help...</MenuContentItem>
113
+ <MenuContentItem
114
+ disabled={!appDocUrl}
115
+ onClick={goToDocumentation}
116
+ >
117
+ See Documentation
118
+ </MenuContentItem>
119
+ <MenuContentDivider />
120
+ <MenuContentItem onClick={goToWorkspaceSetup}>
121
+ Back to workspace setup
122
+ </MenuContentItem>
123
+ </MenuContent>
124
+ }
125
+ >
126
+ <MenuIcon />
127
+ </DropdownMenu>
128
+ </div>
161
129
  <LegendStudioAppInfo open={openAppInfo} closeModal={hideAppInfo} />
162
130
  </>
163
131
  );
@@ -373,7 +341,7 @@ export const ActivityBar = observer(() => {
373
341
  ))}
374
342
  </div>
375
343
  <DropdownMenu
376
- className="activity-bar__setting"
344
+ className="activity-bar__item"
377
345
  content={<SettingsMenu />}
378
346
  menuProps={{
379
347
  anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
@@ -381,13 +349,7 @@ export const ActivityBar = observer(() => {
381
349
  elevation: 7,
382
350
  }}
383
351
  >
384
- <button
385
- className="activity-bar__item"
386
- tabIndex={-1}
387
- title="Settings..."
388
- >
389
- <CogIcon />
390
- </button>
352
+ <CogIcon />
391
353
  </DropdownMenu>
392
354
  </div>
393
355
  );
@@ -18,8 +18,7 @@ import { Fragment, useEffect } from 'react';
18
18
  import { observer } from 'mobx-react-lite';
19
19
  import {
20
20
  type ResizablePanelHandlerProps,
21
- buildReactHotkeysConfiguration,
22
- getControlledResizablePanelProps,
21
+ getCollapsiblePanelGroupProps,
23
22
  ResizablePanel,
24
23
  ResizablePanelGroup,
25
24
  ResizablePanelSplitter,
@@ -29,22 +28,21 @@ import {
29
28
  import { AuxiliaryPanel } from './aux-panel/AuxiliaryPanel.js';
30
29
  import { SideBar } from './side-bar/SideBar.js';
31
30
  import { EditPanel, EditPanelSplashScreen } from './edit-panel/EditPanel.js';
32
- import { GlobalHotKeys } from 'react-hotkeys';
33
31
  import { GrammarTextEditor } from './edit-panel/GrammarTextEditor.js';
34
32
  import { StatusBar } from './StatusBar.js';
35
33
  import { ActivityBar } from './ActivityBar.js';
36
- import type {
37
- EditorPathParams,
38
- GroupEditorPathParams,
39
- } from '../../stores/LegendStudioRouter.js';
34
+ import type { WorkspaceEditorPathParams } from '../../stores/LegendStudioRouter.js';
40
35
  import { ProjectSearchCommand } from '../editor/command-center/ProjectSearchCommand.js';
41
- import { isNonNullable } from '@finos/legend-shared';
36
+ import { guaranteeNonNullable, isNonNullable } from '@finos/legend-shared';
42
37
  import { flowResult } from 'mobx';
43
38
  import { useEditorStore, withEditorStore } from './EditorStoreProvider.js';
44
39
  import {
45
40
  useApplicationStore,
46
41
  useApplicationNavigationContext,
47
42
  useParams,
43
+ ActionAlertType,
44
+ ActionAlertActionType,
45
+ useCommands,
48
46
  } from '@finos/legend-application';
49
47
  import { WorkspaceType } from '@finos/legend-server-sdlc';
50
48
  import { WorkspaceSyncConflictResolver } from './side-bar/WorkspaceSyncConflictResolver.js';
@@ -53,18 +51,23 @@ import { EmbeddedQueryBuilder } from '../EmbeddedQueryBuilder.js';
53
51
 
54
52
  export const Editor = withEditorStore(
55
53
  observer(() => {
56
- const params = useParams<EditorPathParams | GroupEditorPathParams>();
54
+ const params = useParams<WorkspaceEditorPathParams>();
57
55
  const projectId = params.projectId;
58
- const workspaceType = (params as { groupWorkspaceId: string | undefined })
59
- .groupWorkspaceId
56
+ const workspaceType = params.groupWorkspaceId
60
57
  ? WorkspaceType.GROUP
61
58
  : WorkspaceType.USER;
62
- const workspaceId =
63
- workspaceType === WorkspaceType.GROUP
64
- ? (params as GroupEditorPathParams).groupWorkspaceId
65
- : (params as EditorPathParams).workspaceId;
59
+ const workspaceId = guaranteeNonNullable(
60
+ params.groupWorkspaceId ?? params.workspaceId,
61
+ `Workspace/group workspace ID is not provided`,
62
+ );
66
63
  const editorStore = useEditorStore();
67
64
  const applicationStore = useApplicationStore();
65
+ const editable =
66
+ editorStore.graphManagerState.graphBuildState.hasCompleted &&
67
+ editorStore.isInitialized;
68
+ const isResolvingConflicts =
69
+ editorStore.isInConflictResolutionMode &&
70
+ !editorStore.conflictResolutionState.hasResolvedAllConflicts;
68
71
 
69
72
  // Extensions
70
73
  const extraEditorExtensionComponents = editorStore.pluginManager
@@ -79,7 +82,7 @@ export const Editor = withEditorStore(
79
82
  <Fragment key={config.key}>{config.renderer(editorStore)}</Fragment>
80
83
  ));
81
84
 
82
- // Resize
85
+ // layout
83
86
  const { ref, width, height } = useResizeDetector<HTMLDivElement>();
84
87
  // These create snapping effect on panel resizing
85
88
  const resizeSideBar = (handleProps: ResizablePanelHandlerProps): void =>
@@ -87,12 +90,29 @@ export const Editor = withEditorStore(
87
90
  (handleProps.domElement as HTMLDivElement).getBoundingClientRect()
88
91
  .width,
89
92
  );
90
-
91
93
  const resizeAuxPanel = (handleProps: ResizablePanelHandlerProps): void =>
92
94
  editorStore.auxPanelDisplayState.setSize(
93
95
  (handleProps.domElement as HTMLDivElement).getBoundingClientRect()
94
96
  .height,
95
97
  );
98
+ const sideBarCollapsiblePanelGroupProps = getCollapsiblePanelGroupProps(
99
+ editorStore.sideBarDisplayState.size === 0,
100
+ {
101
+ onStopResize: resizeSideBar,
102
+ size: editorStore.sideBarDisplayState.size,
103
+ },
104
+ );
105
+ const auxCollapsiblePanelGroupProps = getCollapsiblePanelGroupProps(
106
+ editorStore.auxPanelDisplayState.size === 0,
107
+ {
108
+ onStopResize: resizeAuxPanel,
109
+ size: editorStore.auxPanelDisplayState.size,
110
+ },
111
+ );
112
+ const maximizedAuxCollapsiblePanelGroupProps =
113
+ getCollapsiblePanelGroupProps(
114
+ editorStore.auxPanelDisplayState.isMaximized,
115
+ );
96
116
 
97
117
  useEffect(() => {
98
118
  if (ref.current) {
@@ -100,15 +120,10 @@ export const Editor = withEditorStore(
100
120
  }
101
121
  }, [editorStore, ref, height, width]);
102
122
 
103
- // Hotkeys
104
- const [hotkeyMapping, hotkeyHandlers] = buildReactHotkeysConfiguration(
105
- editorStore.hotkeys,
106
- );
107
-
108
- // Cleanup the editor
109
- useEffect(() => (): void => editorStore.cleanUp(), [editorStore]);
110
-
111
- // Initialize the app
123
+ // initialize
124
+ useEffect(() => {
125
+ editorStore.internalizeEntityPath(params);
126
+ }, [editorStore, params]);
112
127
  useEffect(() => {
113
128
  flowResult(
114
129
  editorStore.initialize(projectId, workspaceId, workspaceType),
@@ -116,165 +131,113 @@ export const Editor = withEditorStore(
116
131
  }, [editorStore, applicationStore, projectId, workspaceId, workspaceType]);
117
132
 
118
133
  useEffect(() => {
119
- applicationStore.navigator.blockPlatformNavigation([
120
- (): boolean =>
121
- editorStore.isInConflictResolutionMode ||
122
- editorStore.localChangesState.hasUnpushedChanges,
123
- ]);
134
+ applicationStore.navigator.blockNavigation(
135
+ [
136
+ (): boolean =>
137
+ editorStore.isInConflictResolutionMode ||
138
+ editorStore.localChangesState.hasUnpushedChanges,
139
+ ],
140
+ (onProceed: () => void): void => {
141
+ applicationStore.setActionAlertInfo({
142
+ // TODO?: should we make this message generic like the `BeforeUnloadEvent` message?
143
+ message: editorStore.isInConflictResolutionMode
144
+ ? 'You have not accepted the conflict resolution, the current resolution will be discarded. Leave anyway?'
145
+ : 'You have unpushed changes. Leave anyway?',
146
+ type: ActionAlertType.CAUTION,
147
+ actions: [
148
+ {
149
+ label: 'Leave this page',
150
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
151
+ handler: (): void => onProceed(),
152
+ },
153
+ {
154
+ label: 'Stay on this page',
155
+ type: ActionAlertActionType.PROCEED,
156
+ default: true,
157
+ },
158
+ ],
159
+ });
160
+ },
161
+ );
124
162
  return (): void => {
125
- applicationStore.navigator.unblockPlatformNavigation();
163
+ applicationStore.navigator.unblockNavigation();
126
164
  };
127
165
  }, [editorStore, applicationStore]);
128
166
 
129
- // Route Navigation Blocking
130
- // See https://medium.com/@michaelchan_13570/using-react-router-v4-prompt-with-custom-modal-component-ca839f5faf39
131
- // const [blockedLocation, setBlockedLocation] = useState<
132
- // Location | undefined
133
- // >();
134
- // const retryBlockedLocation = useCallback(
135
- // (allowedNavigation: boolean): void => {
136
- // if (allowedNavigation && blockedLocation) {
137
- // applicationStore.navigator.goToLocation(blockedLocation.pathname);
138
- // }
139
- // },
140
- // [blockedLocation, applicationStore],
141
- // );
142
- // // NOTE: we have to use `useStateWithCallback` here because we want to guarantee that we call `history.push(blockedLocation.pathname)`
143
- // // after confirmedAllowNavigation is flipped, otherwise we would end up in the `false` case of handleBlockedNavigation again!
144
- // // Another way to go about this is to use `setTimeout(() => history.push(...), 0)` but it can potentially be more error-prone
145
- // // See https://www.robinwieruch.de/react-usestate-callback
146
- // const [confirmedAllowNavigation, setConfirmedAllowNavigation] =
147
- // useStateWithCallback<boolean>(false, retryBlockedLocation);
148
- // const onNavigationChangeIndicator = Boolean(
149
- // editorStore.changeDetectionState.workspaceLocalLatestRevisionState.changes
150
- // .length,
151
- // );
152
- // const handleRouteNavigationBlocking = (nextLocation: Location): boolean => {
153
- // // NOTE: as long as we're in conflict resolution, we want this block to be present
154
- // const showAlert =
155
- // editorStore.isInConflictResolutionMode ||
156
- // editorStore.hasUnpushedChanges;
157
- // if (
158
- // !editorStore.ignoreNavigationBlocking &&
159
- // !confirmedAllowNavigation &&
160
- // showAlert
161
- // ) {
162
- // editorStore.setActionAlertInfo({
163
- // message: editorStore.isInConflictResolutionMode
164
- // ? 'You have not accepted the conflict resolution, the current resolution will be discarded. Leave anyway?'
165
- // : 'You have unpushed changes. Leave anyway?',
166
- // type: ActionAlertType.CAUTION,
167
- // onEnter: (): void => editorStore.setBlockGlobalHotkeys(true),
168
- // onClose: (): void => editorStore.setBlockGlobalHotkeys(false),
169
- // actions: [
170
- // {
171
- // label: 'Leave this page',
172
- // type: ActionAlertActionType.PROCEED_WITH_CAUTION,
173
- // handler: (): void => setConfirmedAllowNavigation(true),
174
- // },
175
- // {
176
- // label: 'Stay on this page',
177
- // type: ActionAlertActionType.PROCEED,
178
- // default: true,
179
- // handler: (): void => setBlockedLocation(undefined),
180
- // },
181
- // ],
182
- // });
183
- // setBlockedLocation(nextLocation);
184
- // return false;
185
- // }
186
- // // Reset the confirm flag and the blocked location here
187
- // setBlockedLocation(undefined);
188
- // setConfirmedAllowNavigation(false);
189
- // return true;
190
- // };
191
- const editable =
192
- editorStore.graphManagerState.graphBuildState.hasCompleted &&
193
- editorStore.isInitialized;
194
- const isResolvingConflicts =
195
- editorStore.isInConflictResolutionMode &&
196
- !editorStore.conflictResolutionState.hasResolvedAllConflicts;
197
-
198
167
  useApplicationNavigationContext(
199
168
  LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY.EDITOR,
200
169
  );
201
170
 
171
+ useCommands(editorStore);
172
+
173
+ // Cleanup the editor
174
+ useEffect(() => (): void => editorStore.cleanUp(), [editorStore]);
175
+
202
176
  return (
203
177
  <div className="app__page">
204
178
  <div className="editor">
205
- <GlobalHotKeys
206
- keyMap={hotkeyMapping}
207
- handlers={hotkeyHandlers}
208
- allowChanges={true}
209
- >
210
- <div className="editor__body">
211
- <ActivityBar />
212
- <div ref={ref} className="editor__content-container">
213
- <div className="editor__content">
214
- <ResizablePanelGroup orientation="vertical">
215
- <ResizablePanel
216
- {...getControlledResizablePanelProps(
217
- editorStore.sideBarDisplayState.size === 0,
218
- {
219
- onStopResize: resizeSideBar,
220
- size: editorStore.sideBarDisplayState.size,
221
- },
222
- )}
223
- direction={1}
224
- >
225
- <SideBar />
226
- </ResizablePanel>
227
- <ResizablePanelSplitter />
228
- <ResizablePanel minSize={300}>
229
- <ResizablePanelGroup orientation="horizontal">
230
- <ResizablePanel
231
- {...getControlledResizablePanelProps(
232
- editorStore.auxPanelDisplayState.isMaximized,
233
- )}
234
- >
235
- {(isResolvingConflicts || editable) &&
236
- editorStore.isInFormMode && <EditPanel />}
237
- {editable && editorStore.isInGrammarTextMode && (
238
- <GrammarTextEditor />
239
- )}
240
- {!editable && <EditPanelSplashScreen />}
241
- </ResizablePanel>
242
- <ResizablePanelSplitter>
243
- <ResizablePanelSplitterLine
244
- color={
245
- editorStore.auxPanelDisplayState.isMaximized
246
- ? 'transparent'
247
- : 'var(--color-dark-grey-250)'
248
- }
249
- />
250
- </ResizablePanelSplitter>
251
- <ResizablePanel
252
- {...getControlledResizablePanelProps(
253
- editorStore.auxPanelDisplayState.size === 0,
254
- {
255
- onStopResize: resizeAuxPanel,
256
- size: editorStore.auxPanelDisplayState.size,
257
- },
258
- )}
259
- direction={-1}
260
- >
261
- <AuxiliaryPanel />
262
- </ResizablePanel>
263
- </ResizablePanelGroup>
264
- </ResizablePanel>
265
- </ResizablePanelGroup>
266
- </div>
179
+ <div className="editor__body">
180
+ <ActivityBar />
181
+ <div ref={ref} className="editor__content-container">
182
+ <div className="editor__content">
183
+ <ResizablePanelGroup orientation="vertical">
184
+ <ResizablePanel
185
+ {...sideBarCollapsiblePanelGroupProps.collapsiblePanel}
186
+ direction={1}
187
+ >
188
+ <SideBar />
189
+ </ResizablePanel>
190
+ <ResizablePanelSplitter />
191
+ <ResizablePanel
192
+ {...sideBarCollapsiblePanelGroupProps.remainingPanel}
193
+ minSize={300}
194
+ >
195
+ <ResizablePanelGroup orientation="horizontal">
196
+ <ResizablePanel
197
+ {...maximizedAuxCollapsiblePanelGroupProps.collapsiblePanel}
198
+ {...(editorStore.auxPanelDisplayState.size === 0
199
+ ? auxCollapsiblePanelGroupProps.remainingPanel
200
+ : {})}
201
+ >
202
+ {(isResolvingConflicts || editable) &&
203
+ editorStore.isInFormMode && <EditPanel />}
204
+ {editable && editorStore.isInGrammarTextMode && (
205
+ <GrammarTextEditor />
206
+ )}
207
+ {!editable && <EditPanelSplashScreen />}
208
+ </ResizablePanel>
209
+ <ResizablePanelSplitter>
210
+ <ResizablePanelSplitterLine
211
+ color={
212
+ editorStore.auxPanelDisplayState.isMaximized
213
+ ? 'transparent'
214
+ : 'var(--color-dark-grey-250)'
215
+ }
216
+ />
217
+ </ResizablePanelSplitter>
218
+ <ResizablePanel
219
+ {...auxCollapsiblePanelGroupProps.collapsiblePanel}
220
+ {...(editorStore.auxPanelDisplayState.isMaximized
221
+ ? maximizedAuxCollapsiblePanelGroupProps.remainingPanel
222
+ : {})}
223
+ direction={-1}
224
+ >
225
+ <AuxiliaryPanel />
226
+ </ResizablePanel>
227
+ </ResizablePanelGroup>
228
+ </ResizablePanel>
229
+ </ResizablePanelGroup>
267
230
  </div>
268
231
  </div>
269
- <StatusBar actionsDisabled={!editable} />
270
- {editable && <ProjectSearchCommand />}
271
- {editorStore.localChangesState.workspaceSyncState
272
- .workspaceSyncConflictResolutionState.showModal && (
273
- <WorkspaceSyncConflictResolver />
274
- )}
275
- <EmbeddedQueryBuilder />
276
- {extraEditorExtensionComponents}
277
- </GlobalHotKeys>
232
+ </div>
233
+ <StatusBar actionsDisabled={!editable} />
234
+ {editable && <ProjectSearchCommand />}
235
+ {editorStore.localChangesState.workspaceSyncState
236
+ .workspaceSyncConflictResolutionState.showModal && (
237
+ <WorkspaceSyncConflictResolver />
238
+ )}
239
+ <EmbeddedQueryBuilder />
240
+ {extraEditorExtensionComponents}
278
241
  </div>
279
242
  </div>
280
243
  );
@@ -31,31 +31,30 @@ import { LEGEND_STUDIO_TEST_ID } from '../LegendStudioTestID.js';
31
31
  import { ACTIVITY_MODE } from '../../stores/EditorConfig.js';
32
32
  import {
33
33
  generateSetupRoute,
34
- type EditorPathParams,
35
- type GroupEditorPathParams,
34
+ type WorkspaceEditorPathParams,
36
35
  } from '../../stores/LegendStudioRouter.js';
37
36
  import { flowResult } from 'mobx';
38
37
  import { useEditorStore } from './EditorStoreProvider.js';
39
38
  import { WorkspaceType } from '@finos/legend-server-sdlc';
40
39
  import { useLegendStudioApplicationStore } from '../LegendStudioBaseStoreProvider.js';
41
40
  import { useParams } from '@finos/legend-application';
41
+ import { guaranteeNonNullable } from '@finos/legend-shared';
42
42
 
43
43
  export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
44
44
  const { actionsDisabled } = props;
45
- const params = useParams<EditorPathParams | GroupEditorPathParams>();
45
+ const params = useParams<WorkspaceEditorPathParams>();
46
46
  const editorStore = useEditorStore();
47
47
  const applicationStore = useLegendStudioApplicationStore();
48
48
  const isInConflictResolutionMode = editorStore.isInConflictResolutionMode;
49
49
  // SDLC
50
50
  const projectId = params.projectId;
51
- const workspaceType = (params as { groupWorkspaceId: string | undefined })
52
- .groupWorkspaceId
51
+ const workspaceType = params.groupWorkspaceId
53
52
  ? WorkspaceType.GROUP
54
53
  : WorkspaceType.USER;
55
- const workspaceId =
56
- workspaceType === WorkspaceType.GROUP
57
- ? (params as GroupEditorPathParams).groupWorkspaceId
58
- : (params as EditorPathParams).workspaceId;
54
+ const workspaceId = guaranteeNonNullable(
55
+ params.groupWorkspaceId ?? params.workspaceId,
56
+ `Workspace/group workspace ID is not provided`,
57
+ );
59
58
  const currentProject = editorStore.sdlcState.currentProject;
60
59
  const goToWorkspaceUpdater = (): void =>
61
60
  editorStore.setActiveActivity(
@@ -155,8 +154,10 @@ export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
155
154
  title="Go back to workspace setup using the specified project"
156
155
  tabIndex={-1}
157
156
  onClick={(): void =>
158
- applicationStore.navigator.goToLocation(
159
- generateSetupRoute(projectId),
157
+ applicationStore.navigator.visitAddress(
158
+ applicationStore.navigator.generateAddress(
159
+ generateSetupRoute(projectId),
160
+ ),
160
161
  )
161
162
  }
162
163
  >
@@ -168,8 +169,10 @@ export const StatusBar = observer((props: { actionsDisabled: boolean }) => {
168
169
  title="Go back to workspace setup using the specified workspace"
169
170
  tabIndex={-1}
170
171
  onClick={(): void =>
171
- applicationStore.navigator.goToLocation(
172
- generateSetupRoute(projectId, workspaceId, workspaceType),
172
+ applicationStore.navigator.visitAddress(
173
+ applicationStore.navigator.generateAddress(
174
+ generateSetupRoute(projectId, workspaceId, workspaceType),
175
+ ),
173
176
  )
174
177
  }
175
178
  >
@@ -57,7 +57,7 @@ export const AuxiliaryPanel = observer(() => {
57
57
  mode: AUX_PANEL_MODE.DEV_TOOL,
58
58
  name: 'DEVELOPER TOOLS',
59
59
  icon: undefined,
60
- isVisible: editorStore.isDevToolEnabled,
60
+ isVisible: true,
61
61
  },
62
62
  };
63
63
 
@@ -98,6 +98,8 @@ export const ProjectSearchCommand = observer(() => {
98
98
  <div className="modal search-modal modal--dark">
99
99
  <div className="project-search-command">
100
100
  <DropdownMenu
101
+ className="project-search-command__type"
102
+ title="Choose Element Type..."
101
103
  content={
102
104
  <div className="project-search-command__options">
103
105
  <div
@@ -118,22 +120,16 @@ export const ProjectSearchCommand = observer(() => {
118
120
  </div>
119
121
  }
120
122
  >
121
- <button
122
- className="project-search-command__type"
123
- tabIndex={-1}
124
- title="Choose Element Type..."
125
- >
126
- <div className="project-search-command__type__label">
127
- {elementType ? (
128
- getElementTypeIcon(editorStore, elementType)
129
- ) : (
130
- <MoreHorizontalIcon />
131
- )}
132
- </div>
133
- <div className="project-search-command__type__selector">
134
- <CaretDownIcon />
135
- </div>
136
- </button>
123
+ <div className="project-search-command__type__label">
124
+ {elementType ? (
125
+ getElementTypeIcon(editorStore, elementType)
126
+ ) : (
127
+ <MoreHorizontalIcon />
128
+ )}
129
+ </div>
130
+ <div className="project-search-command__type__selector">
131
+ <CaretDownIcon />
132
+ </div>
137
133
  </DropdownMenu>
138
134
  <CustomSelectorInput
139
135
  ref={selectorRef}