@finos/legend-application-studio 18.1.0 → 19.1.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 (349) 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.d.ts.map +1 -1
  35. package/lib/components/editor/edit-panel/FunctionEditor.js +33 -7
  36. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  37. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  38. package/lib/components/editor/edit-panel/GrammarTextEditor.js +4 -16
  39. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  40. package/lib/components/editor/edit-panel/ModelImporter.d.ts.map +1 -1
  41. package/lib/components/editor/edit-panel/ModelImporter.js +6 -32
  42. package/lib/components/editor/edit-panel/ModelImporter.js.map +1 -1
  43. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js +2 -3
  44. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js.map +1 -1
  45. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  46. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js +14 -15
  47. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  48. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.d.ts.map +1 -1
  49. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js +12 -6
  50. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js.map +1 -1
  51. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.d.ts.map +1 -1
  52. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +3 -3
  53. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  54. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  55. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +3 -4
  56. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  57. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.d.ts.map +1 -1
  58. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js +7 -8
  59. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js.map +1 -1
  60. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.d.ts.map +1 -1
  61. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.js +3 -3
  62. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.js.map +1 -1
  63. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.d.ts.map +1 -1
  64. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js +4 -5
  65. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js.map +1 -1
  66. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.js +2 -3
  67. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.js.map +1 -1
  68. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  69. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js +2 -3
  70. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js.map +1 -1
  71. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.d.ts.map +1 -1
  72. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +2 -3
  73. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
  74. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.d.ts.map +1 -1
  75. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js +2 -3
  76. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.js.map +1 -1
  77. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js +3 -3
  78. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  79. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  80. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +5 -9
  81. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  82. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  83. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +12 -15
  84. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  85. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  86. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +9 -12
  87. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  88. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
  89. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +4 -5
  90. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
  91. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js +4 -4
  92. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  93. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js +4 -4
  94. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  95. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.d.ts.map +1 -1
  96. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +17 -41
  97. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  98. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.d.ts.map +1 -1
  99. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.js +4 -5
  100. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.js.map +1 -1
  101. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +16 -16
  102. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  103. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  104. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +6 -7
  105. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  106. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js +9 -9
  107. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js.map +1 -1
  108. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +5 -5
  109. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  110. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  111. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js +4 -2
  112. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  113. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.d.ts.map +1 -1
  114. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.js +2 -3
  115. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.js.map +1 -1
  116. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts.map +1 -1
  117. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +7 -5
  118. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  119. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
  120. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +12 -8
  121. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  122. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts.map +1 -1
  123. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +7 -5
  124. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  125. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  126. package/lib/components/editor/side-bar/CreateNewElementModal.js +4 -5
  127. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  128. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  129. package/lib/components/editor/side-bar/Explorer.js +21 -12
  130. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  131. package/lib/components/editor/side-bar/WorkflowManager.js +3 -5
  132. package/lib/components/editor/side-bar/WorkflowManager.js.map +1 -1
  133. package/lib/components/editor/side-bar/WorkspaceReview.d.ts.map +1 -1
  134. package/lib/components/editor/side-bar/WorkspaceReview.js +5 -32
  135. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  136. package/lib/components/editor/side-bar/WorkspaceUpdater.d.ts.map +1 -1
  137. package/lib/components/editor/side-bar/WorkspaceUpdater.js +2 -26
  138. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  139. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
  140. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +3 -4
  141. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
  142. package/lib/components/project-viewer/ProjectViewer.d.ts.map +1 -1
  143. package/lib/components/project-viewer/ProjectViewer.js +19 -33
  144. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  145. package/lib/components/shared/DiffView.d.ts.map +1 -1
  146. package/lib/components/shared/DiffView.js +4 -19
  147. package/lib/components/shared/DiffView.js.map +1 -1
  148. package/lib/components/workspace-review/WorkspaceReview.d.ts.map +1 -1
  149. package/lib/components/workspace-review/WorkspaceReview.js +8 -6
  150. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  151. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts.map +1 -1
  152. package/lib/components/workspace-review/WorkspaceReviewPanel.js +2 -2
  153. package/lib/components/workspace-review/WorkspaceReviewPanel.js.map +1 -1
  154. package/lib/components/workspace-review/WorkspaceReviewSideBar.js +1 -1
  155. package/lib/components/workspace-review/WorkspaceReviewSideBar.js.map +1 -1
  156. package/lib/components/workspace-setup/CreateProjectModal.d.ts.map +1 -1
  157. package/lib/components/workspace-setup/CreateProjectModal.js +10 -6
  158. package/lib/components/workspace-setup/CreateProjectModal.js.map +1 -1
  159. package/lib/components/workspace-setup/CreateWorkspaceModal.d.ts.map +1 -1
  160. package/lib/components/workspace-setup/CreateWorkspaceModal.js +4 -5
  161. package/lib/components/workspace-setup/CreateWorkspaceModal.js.map +1 -1
  162. package/lib/components/workspace-setup/WorkspaceSetup.d.ts.map +1 -1
  163. package/lib/components/workspace-setup/WorkspaceSetup.js +4 -1
  164. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  165. package/lib/index.css +2 -2
  166. package/lib/index.css.map +1 -1
  167. package/lib/index.d.ts +0 -1
  168. package/lib/index.d.ts.map +1 -1
  169. package/lib/index.js +0 -1
  170. package/lib/index.js.map +1 -1
  171. package/lib/package.json +5 -7
  172. package/lib/stores/EditorConfig.d.ts +0 -28
  173. package/lib/stores/EditorConfig.d.ts.map +1 -1
  174. package/lib/stores/EditorConfig.js +0 -29
  175. package/lib/stores/EditorConfig.js.map +1 -1
  176. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  177. package/lib/stores/EditorGraphState.js +8 -8
  178. package/lib/stores/EditorGraphState.js.map +1 -1
  179. package/lib/stores/EditorSDLCState.d.ts.map +1 -1
  180. package/lib/stores/EditorSDLCState.js +4 -2
  181. package/lib/stores/EditorSDLCState.js.map +1 -1
  182. package/lib/stores/EditorStore.d.ts +27 -30
  183. package/lib/stores/EditorStore.d.ts.map +1 -1
  184. package/lib/stores/EditorStore.js +183 -146
  185. package/lib/stores/EditorStore.js.map +1 -1
  186. package/lib/stores/EmbeddedQueryBuilderState.d.ts +1 -1
  187. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -1
  188. package/lib/stores/EmbeddedQueryBuilderState.js +7 -8
  189. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -1
  190. package/lib/stores/LegendStudioBaseStore.d.ts +1 -1
  191. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  192. package/lib/stores/LegendStudioBaseStore.js +25 -17
  193. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  194. package/lib/stores/LegendStudioCommand.d.ts +32 -0
  195. package/lib/stores/LegendStudioCommand.d.ts.map +1 -0
  196. package/lib/stores/LegendStudioCommand.js +81 -0
  197. package/lib/stores/LegendStudioCommand.js.map +1 -0
  198. package/lib/stores/LegendStudioRouter.d.ts +15 -15
  199. package/lib/stores/LegendStudioRouter.d.ts.map +1 -1
  200. package/lib/stores/LegendStudioRouter.js +37 -24
  201. package/lib/stores/LegendStudioRouter.js.map +1 -1
  202. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  203. package/lib/stores/editor-state/GraphGenerationState.js +2 -3
  204. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  205. package/lib/stores/editor-state/ModelImporterState.d.ts.map +1 -1
  206. package/lib/stores/editor-state/ModelImporterState.js +21 -21
  207. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  208. package/lib/stores/editor-state/ProjectConfigurationEditorState.js +2 -2
  209. package/lib/stores/editor-state/ProjectConfigurationEditorState.js.map +1 -1
  210. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  211. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +1 -3
  212. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  213. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
  214. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -3
  215. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  216. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.d.ts.map +1 -1
  217. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js +2 -2
  218. package/lib/stores/editor-state/element-editor-state/testable/TestAssertionState.js.map +1 -1
  219. package/lib/stores/project-viewer/ProjectViewerStore.d.ts +2 -4
  220. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  221. package/lib/stores/project-viewer/ProjectViewerStore.js +45 -44
  222. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  223. package/lib/stores/shared/MockDataUtils.d.ts.map +1 -1
  224. package/lib/stores/shared/MockDataUtils.js +3 -4
  225. package/lib/stores/shared/MockDataUtils.js.map +1 -1
  226. package/lib/stores/shared/PackageTreeUtils.d.ts +1 -0
  227. package/lib/stores/shared/PackageTreeUtils.d.ts.map +1 -1
  228. package/lib/stores/shared/PackageTreeUtils.js +5 -2
  229. package/lib/stores/shared/PackageTreeUtils.js.map +1 -1
  230. package/lib/stores/shared/testable/TestableUtils.d.ts.map +1 -1
  231. package/lib/stores/shared/testable/TestableUtils.js +6 -6
  232. package/lib/stores/shared/testable/TestableUtils.js.map +1 -1
  233. package/lib/stores/sidebar-state/LocalChangesState.d.ts +1 -0
  234. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  235. package/lib/stores/sidebar-state/LocalChangesState.js +42 -25
  236. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  237. package/lib/stores/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
  238. package/lib/stores/sidebar-state/ProjectOverviewState.js +3 -2
  239. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  240. package/lib/stores/sidebar-state/WorkspaceReviewState.d.ts.map +1 -1
  241. package/lib/stores/sidebar-state/WorkspaceReviewState.js +10 -10
  242. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  243. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts.map +1 -1
  244. package/lib/stores/sidebar-state/WorkspaceSyncState.js +6 -8
  245. package/lib/stores/sidebar-state/WorkspaceSyncState.js.map +1 -1
  246. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts.map +1 -1
  247. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +20 -17
  248. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  249. package/lib/stores/sidebar-state/WorkspaceUpdaterState.d.ts.map +1 -1
  250. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +8 -7
  251. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  252. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +6 -6
  253. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  254. package/package.json +14 -16
  255. package/src/application/LegendStudio.tsx +3 -9
  256. package/src/components/Core_LegendStudioApplicationPlugin.tsx +9 -0
  257. package/src/components/EditorComponentTestUtils.tsx +8 -2
  258. package/src/components/LegendStudioApplication.tsx +28 -8
  259. package/src/components/editor/ActivityBar.tsx +35 -73
  260. package/src/components/editor/Editor.tsx +135 -172
  261. package/src/components/editor/StatusBar.tsx +16 -13
  262. package/src/components/editor/aux-panel/AuxiliaryPanel.tsx +1 -1
  263. package/src/components/editor/command-center/ProjectSearchCommand.tsx +12 -16
  264. package/src/components/editor/edit-panel/EditPanel.tsx +14 -22
  265. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +9 -11
  266. package/src/components/editor/edit-panel/FunctionEditor.tsx +51 -5
  267. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +2 -18
  268. package/src/components/editor/edit-panel/ModelImporter.tsx +10 -38
  269. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +2 -2
  270. package/src/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.tsx +32 -33
  271. package/src/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +28 -23
  272. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +8 -9
  273. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +8 -10
  274. package/src/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.tsx +7 -8
  275. package/src/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.tsx +2 -2
  276. package/src/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.tsx +9 -5
  277. package/src/components/editor/edit-panel/element-generation-editor/ElementNativeView.tsx +2 -2
  278. package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +5 -3
  279. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +2 -3
  280. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetModelGenerationEditor.tsx +2 -3
  281. package/src/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.tsx +3 -3
  282. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +5 -9
  283. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +23 -27
  284. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +20 -24
  285. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +4 -5
  286. package/src/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.tsx +4 -4
  287. package/src/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +4 -4
  288. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +57 -75
  289. package/src/components/editor/edit-panel/service-editor/NewServiceModal.tsx +7 -5
  290. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +16 -16
  291. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +15 -14
  292. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.tsx +9 -9
  293. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +5 -5
  294. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.tsx +4 -2
  295. package/src/components/editor/edit-panel/testable/TestAssertionEditor.tsx +2 -3
  296. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +12 -5
  297. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +17 -11
  298. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +14 -5
  299. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -5
  300. package/src/components/editor/side-bar/Explorer.tsx +60 -39
  301. package/src/components/editor/side-bar/WorkflowManager.tsx +3 -3
  302. package/src/components/editor/side-bar/WorkspaceReview.tsx +5 -35
  303. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +2 -31
  304. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +3 -4
  305. package/src/components/project-viewer/ProjectViewer.tsx +65 -78
  306. package/src/components/shared/DiffView.tsx +3 -22
  307. package/src/components/workspace-review/WorkspaceReview.tsx +26 -16
  308. package/src/components/workspace-review/WorkspaceReviewPanel.tsx +5 -9
  309. package/src/components/workspace-review/WorkspaceReviewSideBar.tsx +1 -1
  310. package/src/components/workspace-setup/CreateProjectModal.tsx +14 -10
  311. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +6 -5
  312. package/src/components/workspace-setup/WorkspaceSetup.tsx +6 -1
  313. package/src/index.ts +0 -1
  314. package/src/stores/EditorConfig.ts +0 -30
  315. package/src/stores/EditorGraphState.ts +9 -8
  316. package/src/stores/EditorSDLCState.ts +4 -2
  317. package/src/stores/EditorStore.ts +231 -245
  318. package/src/stores/EmbeddedQueryBuilderState.ts +14 -9
  319. package/src/stores/LegendStudioBaseStore.ts +33 -24
  320. package/src/stores/LegendStudioCommand.ts +83 -0
  321. package/src/stores/LegendStudioRouter.ts +50 -41
  322. package/src/stores/editor-state/GraphGenerationState.ts +3 -2
  323. package/src/stores/editor-state/ModelImporterState.ts +35 -23
  324. package/src/stores/editor-state/ProjectConfigurationEditorState.ts +2 -2
  325. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +1 -3
  326. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -3
  327. package/src/stores/editor-state/element-editor-state/testable/TestAssertionState.ts +2 -1
  328. package/src/stores/project-viewer/ProjectViewerStore.ts +65 -59
  329. package/src/stores/shared/MockDataUtils.ts +4 -3
  330. package/src/stores/shared/PackageTreeUtils.ts +10 -1
  331. package/src/stores/shared/testable/TestableUtils.ts +6 -5
  332. package/src/stores/sidebar-state/LocalChangesState.ts +50 -36
  333. package/src/stores/sidebar-state/ProjectOverviewState.ts +4 -2
  334. package/src/stores/sidebar-state/WorkspaceReviewState.ts +11 -10
  335. package/src/stores/sidebar-state/WorkspaceSyncState.ts +6 -8
  336. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +20 -17
  337. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +8 -7
  338. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +6 -6
  339. package/tsconfig.json +1 -2
  340. package/lib/components/shared/StudioLambdaEditor.d.ts +0 -41
  341. package/lib/components/shared/StudioLambdaEditor.d.ts.map +0 -1
  342. package/lib/components/shared/StudioLambdaEditor.js +0 -53
  343. package/lib/components/shared/StudioLambdaEditor.js.map +0 -1
  344. package/lib/components/shared/StudioTextInputEditor.d.ts +0 -28
  345. package/lib/components/shared/StudioTextInputEditor.d.ts.map +0 -1
  346. package/lib/components/shared/StudioTextInputEditor.js +0 -36
  347. package/lib/components/shared/StudioTextInputEditor.js.map +0 -1
  348. package/src/components/shared/StudioLambdaEditor.tsx +0 -146
  349. package/src/components/shared/StudioTextInputEditor.tsx +0 -83
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { action, flowResult, makeAutoObservable, observable } from 'mobx';
17
+ import { computed, flow, flowResult, makeObservable, observable } from 'mobx';
18
18
  import type { EditorStore } from '../EditorStore.js';
19
19
  import {
20
20
  type GeneratorFn,
@@ -68,20 +68,32 @@ interface ProjectViewerGraphBuilderMaterial {
68
68
  }
69
69
 
70
70
  export class ProjectViewerStore {
71
- editorStore: EditorStore;
71
+ readonly editorStore: EditorStore;
72
72
  currentRevision?: Revision | undefined;
73
73
  latestVersion?: Version | undefined;
74
74
  revision?: Revision | undefined;
75
75
  version?: Version | undefined;
76
- elementPath?: string | undefined;
76
+ initialEntityPath?: string | undefined;
77
77
  projectGAVCoordinates?: ProjectGAVCoordinates | undefined;
78
78
  workflowManagerState: WorkflowManagerState | undefined;
79
79
 
80
80
  constructor(editorStore: EditorStore) {
81
- makeAutoObservable(this, {
82
- editorStore: false,
81
+ makeObservable<
82
+ ProjectViewerStore,
83
+ 'initializeWithProjectInformation' | 'initializeWithGAV'
84
+ >(this, {
85
+ currentRevision: observable,
86
+ latestVersion: observable,
87
+ revision: observable,
88
+ version: observable,
83
89
  projectGAVCoordinates: observable.ref,
84
- internalizeEntityPath: action,
90
+ workflowManagerState: observable.ref,
91
+ onLatestVersion: computed,
92
+ onCurrentRevision: computed,
93
+ initializeWithProjectInformation: flow,
94
+ initializeWithGAV: flow,
95
+ buildGraph: flow,
96
+ initialize: flow,
85
97
  });
86
98
 
87
99
  this.editorStore = editorStore;
@@ -92,6 +104,7 @@ export class ProjectViewerStore {
92
104
  this.latestVersion && this.version && this.latestVersion === this.version,
93
105
  );
94
106
  }
107
+
95
108
  get onCurrentRevision(): boolean {
96
109
  return Boolean(
97
110
  this.currentRevision &&
@@ -110,9 +123,9 @@ export class ProjectViewerStore {
110
123
  internalizeEntityPath(params: ViewerPathParams): void {
111
124
  const { gav, projectId, revisionId, versionId, entityPath } = params;
112
125
  if (entityPath) {
113
- this.elementPath = entityPath;
126
+ this.initialEntityPath = entityPath;
114
127
  if (projectId) {
115
- this.editorStore.applicationStore.navigator.goToLocation(
128
+ this.editorStore.applicationStore.navigator.updateCurrentLocation(
116
129
  versionId
117
130
  ? generateViewVersionRoute(projectId, versionId)
118
131
  : revisionId
@@ -125,35 +138,13 @@ export class ProjectViewerStore {
125
138
  artifactId,
126
139
  versionId: _versionId,
127
140
  } = parseGAVCoordinates(gav);
128
- this.editorStore.applicationStore.navigator.goToLocation(
141
+ this.editorStore.applicationStore.navigator.updateCurrentLocation(
129
142
  generateViewProjectByGAVRoute(groupId, artifactId, _versionId),
130
143
  );
131
144
  }
132
145
  }
133
146
  }
134
147
 
135
- private *initializeGraphManagerState(): GeneratorFn<void> {
136
- // setup engine
137
- yield this.editorStore.graphManagerState.graphManager.initialize(
138
- {
139
- env: this.editorStore.applicationStore.config.env,
140
- tabSize: TAB_SIZE,
141
- clientConfig: {
142
- baseUrl: this.editorStore.applicationStore.config.engineServerUrl,
143
- queryBaseUrl:
144
- this.editorStore.applicationStore.config.engineQueryServerUrl,
145
- enableCompression: true,
146
- },
147
- },
148
- {
149
- tracerService: this.editorStore.applicationStore.tracerService,
150
- },
151
- );
152
-
153
- // initialize graph manager
154
- yield this.editorStore.graphManagerState.initializeSystem();
155
- }
156
-
157
148
  /**
158
149
  * Initialize the graph by fetching project information from the SDLC server.
159
150
  */
@@ -357,8 +348,23 @@ export class ProjectViewerStore {
357
348
  try {
358
349
  const stopWatch = new StopWatch();
359
350
 
360
- // initialize system
361
- yield flowResult(this.initializeGraphManagerState());
351
+ // initialize graph manager
352
+ yield this.editorStore.graphManagerState.graphManager.initialize(
353
+ {
354
+ env: this.editorStore.applicationStore.config.env,
355
+ tabSize: TAB_SIZE,
356
+ clientConfig: {
357
+ baseUrl: this.editorStore.applicationStore.config.engineServerUrl,
358
+ queryBaseUrl:
359
+ this.editorStore.applicationStore.config.engineQueryServerUrl,
360
+ enableCompression: true,
361
+ },
362
+ },
363
+ {
364
+ tracerService: this.editorStore.applicationStore.tracerService,
365
+ },
366
+ );
367
+ yield this.editorStore.graphManagerState.initializeSystem();
362
368
 
363
369
  // reset
364
370
  this.editorStore.graphManagerState.resetGraph();
@@ -549,22 +555,40 @@ export class ProjectViewerStore {
549
555
  if (
550
556
  this.editorStore.graphManagerState.graphBuildState.hasSucceeded &&
551
557
  this.editorStore.explorerTreeState.buildState.hasCompleted &&
552
- this.elementPath
558
+ this.initialEntityPath
553
559
  ) {
554
560
  try {
555
- const element = this.editorStore.graphManagerState.graph.getElement(
556
- this.elementPath,
561
+ this.editorStore.openElement(
562
+ this.editorStore.graphManagerState.graph.getElement(
563
+ this.initialEntityPath,
564
+ ),
557
565
  );
558
- this.editorStore.openElement(element);
559
566
  } catch {
560
- const elementPath = this.elementPath;
561
- this.elementPath = undefined;
567
+ const elementPath = this.initialEntityPath;
568
+ this.initialEntityPath = undefined;
562
569
  throw new AssertionError(
563
- `Can't find element '${elementPath}' in project '${this.editorStore.sdlcState.activeProject.projectId}'`,
570
+ `Can't find element with path '${elementPath}'`,
564
571
  );
565
572
  }
566
573
  }
567
- this.initWorkflowManagerState();
574
+
575
+ // initialize workflow manager
576
+ // NOTE: We will not show workflow viewer when `GAV` coordinates are provided
577
+ // as we don't know which sdlc instance to fetch from.
578
+ // Revision will be supported once `SDLC` adds the workflow apis.
579
+ if (this.version) {
580
+ this.workflowManagerState = new ProjectVersionWorkflowManagerState(
581
+ this.editorStore,
582
+ this.editorStore.sdlcState,
583
+ this.version,
584
+ );
585
+ } else if (!this.projectGAVCoordinates && !this.revision) {
586
+ this.workflowManagerState = new ProjectWorkflowManagerState(
587
+ this.editorStore,
588
+ this.editorStore.sdlcState,
589
+ );
590
+ }
591
+
568
592
  onLeave(true);
569
593
  } catch (error) {
570
594
  assertErrorThrown(error);
@@ -576,22 +600,4 @@ export class ProjectViewerStore {
576
600
  onLeave(false);
577
601
  }
578
602
  }
579
-
580
- initWorkflowManagerState(): void {
581
- // NOTE: We will not show workflow viewer when `GAV` coordinates are provided
582
- // as we don't know which sdlc instance to fetch from.
583
- // Revision will be supported once `SDLC` adds the workflow apis.
584
- if (this.version) {
585
- this.workflowManagerState = new ProjectVersionWorkflowManagerState(
586
- this.editorStore,
587
- this.editorStore.sdlcState,
588
- this.version,
589
- );
590
- } else if (!this.projectGAVCoordinates && !this.revision) {
591
- this.workflowManagerState = new ProjectWorkflowManagerState(
592
- this.editorStore,
593
- this.editorStore.sdlcState,
594
- );
595
- }
596
- }
597
603
  }
@@ -14,9 +14,10 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { format, addDays } from 'date-fns';
18
17
  import {
18
+ addDays,
19
19
  assertErrorThrown,
20
+ formatDate,
20
21
  Randomizer,
21
22
  UnsupportedOperationError,
22
23
  } from '@finos/legend-shared';
@@ -54,7 +55,7 @@ export const createMockPrimitiveProperty = (
54
55
  // NOTE that `Date` is the umbrella type that comprises `StrictDate` and `DateTime`, but for simplicity, we will generate `Date` as `StrictDate`
55
56
  case PRIMITIVE_TYPE.DATE:
56
57
  case PRIMITIVE_TYPE.STRICTDATE:
57
- return format(
58
+ return formatDate(
58
59
  randomizer.getRandomDate(
59
60
  new Date(Date.now()),
60
61
  addDays(Date.now(), 100),
@@ -62,7 +63,7 @@ export const createMockPrimitiveProperty = (
62
63
  DATE_FORMAT,
63
64
  );
64
65
  case PRIMITIVE_TYPE.DATETIME:
65
- return format(
66
+ return formatDate(
66
67
  randomizer.getRandomDate(
67
68
  new Date(Date.now()),
68
69
  addDays(Date.now(), 100),
@@ -40,6 +40,7 @@ import {
40
40
  FileGenerationSpecification,
41
41
  GenerationSpecification,
42
42
  DataElement,
43
+ generateFunctionPrettyName,
43
44
  } from '@finos/legend-graph';
44
45
 
45
46
  const getElementProjectExplorerDnDType = (
@@ -105,6 +106,14 @@ export const getSelectedPackageTreeNodePackage = (
105
106
  : node.packageableElement.package
106
107
  : undefined;
107
108
 
109
+ export const generatePackageableElementTreeNodeDataLabel = (
110
+ element: PackageableElement,
111
+ node?: PackageTreeNodeData,
112
+ ): string =>
113
+ element instanceof ConcreteFunctionDefinition
114
+ ? generateFunctionPrettyName(element, false)
115
+ : node?.label ?? element.name;
116
+
108
117
  export const getPackableElementTreeNodeData = (
109
118
  editorStore: EditorStore,
110
119
  element: PackageableElement,
@@ -112,7 +121,7 @@ export const getPackableElementTreeNodeData = (
112
121
  ): PackageTreeNodeData => ({
113
122
  id: element.path,
114
123
  dndType: getElementProjectExplorerDnDType(editorStore, element),
115
- label: element.name,
124
+ label: generatePackageableElementTreeNodeDataLabel(element),
116
125
  childrenIds:
117
126
  element instanceof Package
118
127
  ? element.children
@@ -44,6 +44,7 @@ import {
44
44
  guaranteeNonEmptyString,
45
45
  isNonNullable,
46
46
  returnUndefOnError,
47
+ UnsupportedOperationError,
47
48
  } from '@finos/legend-shared';
48
49
  import { EmbeddedDataType } from '../../editor-state/ExternalFormatState.js';
49
50
  import type { EditorStore } from '../../EditorStore.js';
@@ -85,7 +86,7 @@ export class TEMPORARY_EmbeddedDataConnectionVisitor
85
86
  }
86
87
 
87
88
  visit_Connection(connection: Connection): EmbeddedData {
88
- throw new Error('Method not implemented.');
89
+ throw new UnsupportedOperationError();
89
90
  }
90
91
  visit_ConnectionPointer(connection: ConnectionPointer): EmbeddedData {
91
92
  const packageableConnection =
@@ -93,7 +94,7 @@ export class TEMPORARY_EmbeddedDataConnectionVisitor
93
94
  return packageableConnection.accept_ConnectionVisitor(this);
94
95
  }
95
96
  visit_ModelChainConnection(connection: ModelChainConnection): EmbeddedData {
96
- throw new Error('Method not implemented.');
97
+ throw new UnsupportedOperationError();
97
98
  }
98
99
  visit_JsonModelConnection(connection: JsonModelConnection): EmbeddedData {
99
100
  const _class = connection.class.value;
@@ -106,15 +107,15 @@ export class TEMPORARY_EmbeddedDataConnectionVisitor
106
107
  return data;
107
108
  }
108
109
  visit_XmlModelConnection(connection: XmlModelConnection): EmbeddedData {
109
- throw new Error('Method not implemented.');
110
+ throw new UnsupportedOperationError();
110
111
  }
111
112
  visit_FlatDataConnection(connection: FlatDataConnection): EmbeddedData {
112
- throw new Error('Method not implemented.');
113
+ throw new UnsupportedOperationError();
113
114
  }
114
115
  visit_RelationalDatabaseConnection(
115
116
  connection: RelationalDatabaseConnection,
116
117
  ): EmbeddedData {
117
- throw new Error('Method not implemented.');
118
+ throw new UnsupportedOperationError();
118
119
  }
119
120
  }
120
121
 
@@ -15,7 +15,6 @@
15
15
  */
16
16
 
17
17
  import { action, makeAutoObservable, flowResult, flow } from 'mobx';
18
- import { format } from 'date-fns';
19
18
  import type { EditorStore } from '../EditorStore.js';
20
19
  import type { EditorSDLCState } from '../EditorSDLCState.js';
21
20
  import { CHANGE_DETECTION_EVENT } from '../ChangeDetectionEvent.js';
@@ -33,6 +32,7 @@ import {
33
32
  assertTrue,
34
33
  readFileAsText,
35
34
  ActionState,
35
+ formatDate,
36
36
  } from '@finos/legend-shared';
37
37
  import {
38
38
  TAB_SIZE,
@@ -193,12 +193,14 @@ export class LocalChangesState {
193
193
  openLocalChange(diff: EntityDiff): void {
194
194
  const fromEntityGetter = (
195
195
  entityPath: string | undefined,
196
- ): Entity | undefined =>
197
- entityPath
198
- ? this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.entities.find(
199
- (e) => e.path === entityPath,
200
- )
201
- : undefined;
196
+ ): Entity | undefined => {
197
+ if (entityPath) {
198
+ return this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.entities.find(
199
+ (e) => e.path === entityPath,
200
+ );
201
+ }
202
+ return undefined;
203
+ };
202
204
  const toEntityGetter = (
203
205
  entityPath: string | undefined,
204
206
  ): Entity | undefined => {
@@ -250,31 +252,23 @@ export class LocalChangesState {
250
252
  const fromEntityGetter = (
251
253
  entityPath: string | undefined,
252
254
  ): Entity | undefined => {
253
- if (!entityPath) {
254
- return undefined;
255
- }
256
- const element =
257
- this.editorStore.graphManagerState.graph.getNullableElement(entityPath);
258
- if (!element) {
259
- return undefined;
260
- }
261
- const entity =
262
- this.editorStore.graphManagerState.graphManager.elementToEntity(
263
- element,
264
- {
265
- pruneSourceInformation: true,
266
- },
255
+ if (entityPath) {
256
+ return this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.entities.find(
257
+ (e) => e.path === entityPath,
267
258
  );
268
- return entity;
259
+ }
260
+ return undefined;
269
261
  };
270
262
  const toEntityGetter = (
271
263
  entityPath: string | undefined,
272
- ): Entity | undefined =>
273
- entityPath
274
- ? this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.entities.find(
275
- (e) => e.path === entityPath,
276
- )
277
- : undefined;
264
+ ): Entity | undefined => {
265
+ if (entityPath) {
266
+ return this.editorStore.changeDetectionState.workspaceRemoteLatestRevisionState.entities.find(
267
+ (e) => e.path === entityPath,
268
+ );
269
+ }
270
+ return undefined;
271
+ };
278
272
  const fromEntity = EntityDiff.shouldOldEntityExist(diff)
279
273
  ? guaranteeNonNullable(
280
274
  fromEntityGetter(diff.getValidatedOldPath()),
@@ -442,7 +436,7 @@ export class LocalChangesState {
442
436
  downloadLocalChanges = (): void => {
443
437
  const fileName = `entityChanges_(${this.sdlcState.currentProject?.name}_${
444
438
  this.sdlcState.activeWorkspace.workspaceId
445
- })_${format(new Date(Date.now()), DATE_TIME_FORMAT)}.json`;
439
+ })_${formatDate(new Date(Date.now()), DATE_TIME_FORMAT)}.json`;
446
440
  const content = JSON.stringify(
447
441
  {
448
442
  message: '', // TODO?
@@ -468,7 +462,7 @@ export class LocalChangesState {
468
462
  this.sdlcState.checkIfCurrentWorkspaceIsInConflictResolutionMode(),
469
463
  )) as boolean;
470
464
  if (isInConflictResolutionMode) {
471
- this.editorStore.setBlockingAlert({
465
+ this.editorStore.applicationStore.setBlockingAlert({
472
466
  message: 'Workspace is in conflict resolution mode',
473
467
  prompt: 'Please refresh the application',
474
468
  });
@@ -518,12 +512,10 @@ export class LocalChangesState {
518
512
  yield flowResult(
519
513
  this.editorStore.changeDetectionState.computeAggregatedWorkspaceRemoteChanges(),
520
514
  );
521
- this.editorStore.setActionAlertInfo({
515
+ this.editorStore.applicationStore.setActionAlertInfo({
522
516
  message: 'Local workspace is out-of-sync',
523
517
  prompt: 'Please pull remote changes before pushing your local changes',
524
518
  type: ActionAlertType.CAUTION,
525
- onEnter: (): void => this.editorStore.setBlockGlobalHotkeys(true),
526
- onClose: (): void => this.editorStore.setBlockGlobalHotkeys(false),
527
519
  actions: [
528
520
  {
529
521
  label: 'Pull remote changes',
@@ -623,13 +615,11 @@ export class LocalChangesState {
623
615
  error,
624
616
  );
625
617
  }
626
- this.editorStore.setActionAlertInfo({
618
+ this.editorStore.applicationStore.setActionAlertInfo({
627
619
  message: `Change detection engine failed to build hashes index for workspace after syncing`,
628
620
  prompt:
629
621
  'To fix this, you can either try to keep refreshing local changes until success or trust and reuse current workspace hashes index',
630
622
  type: ActionAlertType.CAUTION,
631
- onEnter: (): void => this.editorStore.setBlockGlobalHotkeys(true),
632
- onClose: (): void => this.editorStore.setBlockGlobalHotkeys(false),
633
623
  actions: [
634
624
  {
635
625
  label: 'Use local hashes index',
@@ -693,4 +683,28 @@ export class LocalChangesState {
693
683
  this.pushChangesState.complete();
694
684
  }
695
685
  }
686
+
687
+ alertUnsavedChanges(onProceed: () => void): void {
688
+ if (this.hasUnpushedChanges) {
689
+ this.editorStore.applicationStore.setActionAlertInfo({
690
+ message:
691
+ 'Unsaved changes to your query will be lost if you continue. Do you still want to proceed?',
692
+ type: ActionAlertType.CAUTION,
693
+ actions: [
694
+ {
695
+ label: 'Proceed',
696
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
697
+ handler: (): void => onProceed(),
698
+ },
699
+ {
700
+ label: 'Abort',
701
+ type: ActionAlertActionType.PROCEED,
702
+ default: true,
703
+ },
704
+ ],
705
+ });
706
+ } else {
707
+ onProceed();
708
+ }
709
+ }
696
710
  }
@@ -117,11 +117,13 @@ export class ProjectOverviewState {
117
117
  this.editorStore.applicationStore.notifyWarning(
118
118
  'Current workspace is deleted. Redirecting to workspace setup',
119
119
  );
120
- this.editorStore.setIgnoreNavigationBlocking(true);
121
- this.editorStore.applicationStore.navigator.reloadToLocation(
120
+ this.editorStore.applicationStore.navigator.goToLocation(
122
121
  generateSetupRoute(
123
122
  this.editorStore.sdlcState.activeProject.projectId,
124
123
  ),
124
+ {
125
+ ignoreBlocking: true,
126
+ },
125
127
  );
126
128
  }
127
129
  } catch (error) {
@@ -206,7 +206,7 @@ export class WorkspaceReviewState {
206
206
  *recreateWorkspaceAfterCommittingReview(): GeneratorFn<void> {
207
207
  try {
208
208
  this.isRecreatingWorkspaceAfterCommittingReview = true;
209
- this.editorStore.setBlockingAlert({
209
+ this.editorStore.applicationStore.setBlockingAlert({
210
210
  message: 'Recreating workspace...',
211
211
  prompt: 'Please do not close the application',
212
212
  showLoading: true,
@@ -216,8 +216,9 @@ export class WorkspaceReviewState {
216
216
  this.sdlcState.activeWorkspace.workspaceId,
217
217
  this.sdlcState.activeWorkspace.workspaceType,
218
218
  );
219
- this.editorStore.setIgnoreNavigationBlocking(true);
220
- this.editorStore.applicationStore.navigator.reload();
219
+ this.editorStore.applicationStore.navigator.reload({
220
+ ignoreBlocking: true,
221
+ });
221
222
  } catch (error) {
222
223
  assertErrorThrown(error);
223
224
  this.editorStore.applicationStore.log.error(
@@ -226,7 +227,7 @@ export class WorkspaceReviewState {
226
227
  );
227
228
  this.editorStore.applicationStore.notifyError(error);
228
229
  } finally {
229
- this.editorStore.setBlockingAlert(undefined);
230
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
230
231
  this.isRecreatingWorkspaceAfterCommittingReview = false;
231
232
  }
232
233
  }
@@ -324,7 +325,7 @@ export class WorkspaceReviewState {
324
325
  this.sdlcState.checkIfCurrentWorkspaceIsInConflictResolutionMode(),
325
326
  )) as boolean;
326
327
  if (isInConflictResolutionMode) {
327
- this.editorStore.setBlockingAlert({
328
+ this.editorStore.applicationStore.setBlockingAlert({
328
329
  message: 'Workspace is in conflict resolution mode',
329
330
  prompt: 'Please refresh the application',
330
331
  });
@@ -344,12 +345,10 @@ export class WorkspaceReviewState {
344
345
  review.id,
345
346
  { message: `${review.title} [review]` },
346
347
  );
347
- this.editorStore.setActionAlertInfo({
348
+ this.editorStore.applicationStore.setActionAlertInfo({
348
349
  message: 'Committed review successfully',
349
350
  prompt:
350
351
  'You can create a new workspace with the same name or leave for the start page',
351
- onEnter: (): void => this.editorStore.setBlockGlobalHotkeys(true),
352
- onClose: (): void => this.editorStore.setBlockGlobalHotkeys(false),
353
352
  actions: [
354
353
  {
355
354
  label: 'Create new workspace',
@@ -362,11 +361,13 @@ export class WorkspaceReviewState {
362
361
  label: 'Leave',
363
362
  type: ActionAlertActionType.PROCEED,
364
363
  handler: (): void => {
365
- this.editorStore.setIgnoreNavigationBlocking(true);
366
- this.editorStore.applicationStore.navigator.reloadToLocation(
364
+ this.editorStore.applicationStore.navigator.goToLocation(
367
365
  generateSetupRoute(
368
366
  this.editorStore.sdlcState.activeProject.projectId,
369
367
  ),
368
+ {
369
+ ignoreBlocking: true,
370
+ },
370
371
  );
371
372
  },
372
373
  default: true,
@@ -434,7 +434,7 @@ export class WorkspaceSyncState {
434
434
  *pullChanges(): GeneratorFn<void> {
435
435
  try {
436
436
  assertTrue(this.sdlcState.isWorkspaceOutOfSync);
437
- this.editorStore.setBlockingAlert({
437
+ this.editorStore.applicationStore.setBlockingAlert({
438
438
  message: `Pulling latest changes...`,
439
439
  showLoading: true,
440
440
  });
@@ -451,14 +451,12 @@ export class WorkspaceSyncState {
451
451
  this.editorStore.changeDetectionState.potentialWorkspacePullConflicts;
452
452
  }
453
453
  if (conflicts.length) {
454
- this.editorStore.setBlockingAlert(undefined);
455
- this.editorStore.setActionAlertInfo({
454
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
455
+ this.editorStore.applicationStore.setActionAlertInfo({
456
456
  message: 'Conflicts found while pulling changes',
457
457
  prompt:
458
458
  'You can either force-pull (override local changes) or resolve these conflicts manually',
459
459
  type: ActionAlertType.CAUTION,
460
- onEnter: (): void => this.editorStore.setBlockGlobalHotkeys(true),
461
- onClose: (): void => this.editorStore.setBlockGlobalHotkeys(false),
462
460
  actions: [
463
461
  {
464
462
  label: 'Resolve merge conflicts',
@@ -550,13 +548,13 @@ export class WorkspaceSyncState {
550
548
  `Can't force-pull remote workspace changes. Error: ${error.message}`,
551
549
  );
552
550
  } finally {
553
- this.editorStore.setBlockingAlert(undefined);
551
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
554
552
  }
555
553
  }
556
554
 
557
555
  *applyResolutionChanges(): GeneratorFn<void> {
558
556
  try {
559
- this.editorStore.setBlockingAlert({
557
+ this.editorStore.applicationStore.setBlockingAlert({
560
558
  message: `Applying resolutions and reloading graph...`,
561
559
  showLoading: true,
562
560
  });
@@ -572,7 +570,7 @@ export class WorkspaceSyncState {
572
570
  `Can't apply resolutions to local workspace. Error: ${error.message}`,
573
571
  );
574
572
  } finally {
575
- this.editorStore.setBlockingAlert(undefined);
573
+ this.editorStore.applicationStore.setBlockingAlert(undefined);
576
574
  }
577
575
  }
578
576
  }