@finos/legend-application-studio 22.5.0 → 23.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 (472) hide show
  1. package/lib/application/LegendStudio.d.ts.map +1 -1
  2. package/lib/application/LegendStudio.js +8 -5
  3. package/lib/application/LegendStudio.js.map +1 -1
  4. package/lib/application/LegendStudioApplicationConfig.d.ts +4 -0
  5. package/lib/application/LegendStudioApplicationConfig.d.ts.map +1 -1
  6. package/lib/application/LegendStudioApplicationConfig.js +7 -1
  7. package/lib/application/LegendStudioApplicationConfig.js.map +1 -1
  8. package/lib/application/LegendStudioApplicationNavigationContext.d.ts.map +1 -0
  9. package/lib/application/LegendStudioApplicationNavigationContext.js.map +1 -0
  10. package/lib/application/LegendStudioCommand.d.ts.map +1 -0
  11. package/lib/application/LegendStudioCommand.js.map +1 -0
  12. package/lib/application/LegendStudioDocumentation.d.ts.map +1 -0
  13. package/lib/application/LegendStudioDocumentation.js.map +1 -0
  14. package/lib/{stores/LegendStudioAppEvent.d.ts → application/LegendStudioEvent.d.ts} +1 -1
  15. package/lib/application/LegendStudioEvent.d.ts.map +1 -0
  16. package/lib/{stores/LegendStudioAppEvent.js → application/LegendStudioEvent.js} +1 -1
  17. package/lib/application/LegendStudioEvent.js.map +1 -0
  18. package/lib/{stores/LegendStudioEventService.d.ts → application/LegendStudioEventHelper.d.ts} +3 -6
  19. package/lib/application/LegendStudioEventHelper.d.ts.map +1 -0
  20. package/lib/{stores/LegendStudioEventService.js → application/LegendStudioEventHelper.js} +4 -11
  21. package/lib/application/LegendStudioEventHelper.js.map +1 -0
  22. package/lib/{stores/LegendStudioRouter.d.ts → application/LegendStudioNavigation.d.ts} +24 -24
  23. package/lib/application/LegendStudioNavigation.d.ts.map +1 -0
  24. package/lib/{stores/LegendStudioRouter.js → application/LegendStudioNavigation.js} +28 -28
  25. package/lib/application/LegendStudioNavigation.js.map +1 -0
  26. package/lib/{stores/LegendStudioStorage.d.ts → application/LegendStudioSetting.d.ts} +4 -2
  27. package/lib/application/LegendStudioSetting.d.ts.map +1 -0
  28. package/lib/application/LegendStudioSetting.js +29 -0
  29. package/lib/application/LegendStudioSetting.js.map +1 -0
  30. package/lib/{stores/LegendStudioTelemetry.d.ts → application/LegendStudioTelemetryHelper.d.ts} +8 -8
  31. package/lib/application/LegendStudioTelemetryHelper.d.ts.map +1 -0
  32. package/lib/application/LegendStudioTelemetryHelper.js +37 -0
  33. package/lib/application/LegendStudioTelemetryHelper.js.map +1 -0
  34. package/lib/components/Core_LegendStudioApplicationPlugin.d.ts +2 -1
  35. package/lib/components/Core_LegendStudioApplicationPlugin.d.ts.map +1 -1
  36. package/lib/components/Core_LegendStudioApplicationPlugin.js +11 -6
  37. package/lib/components/Core_LegendStudioApplicationPlugin.js.map +1 -1
  38. package/lib/components/EditorComponentTestUtils.d.ts.map +1 -1
  39. package/lib/components/EditorComponentTestUtils.js +4 -5
  40. package/lib/components/EditorComponentTestUtils.js.map +1 -1
  41. package/lib/components/EmbeddedQueryBuilder.js +1 -1
  42. package/lib/components/EmbeddedQueryBuilder.js.map +1 -1
  43. package/lib/components/LegendStudioAppInfo.d.ts.map +1 -1
  44. package/lib/components/LegendStudioAppInfo.js +0 -1
  45. package/lib/components/LegendStudioAppInfo.js.map +1 -1
  46. package/lib/components/LegendStudioApplication.d.ts +0 -2
  47. package/lib/components/LegendStudioApplication.d.ts.map +1 -1
  48. package/lib/components/LegendStudioApplication.js +8 -8
  49. package/lib/components/LegendStudioApplication.js.map +1 -1
  50. package/lib/components/editor/ActivityBar.d.ts.map +1 -1
  51. package/lib/components/editor/ActivityBar.js +7 -2
  52. package/lib/components/editor/ActivityBar.js.map +1 -1
  53. package/lib/components/editor/Editor.d.ts.map +1 -1
  54. package/lib/components/editor/Editor.js +6 -2
  55. package/lib/components/editor/Editor.js.map +1 -1
  56. package/lib/components/editor/EditorStoreProvider.d.ts.map +1 -1
  57. package/lib/components/editor/EditorStoreProvider.js +1 -3
  58. package/lib/components/editor/EditorStoreProvider.js.map +1 -1
  59. package/lib/components/editor/StatusBar.d.ts.map +1 -1
  60. package/lib/components/editor/StatusBar.js +5 -8
  61. package/lib/components/editor/StatusBar.js.map +1 -1
  62. package/lib/components/editor/aux-panel/DevTool.js +2 -2
  63. package/lib/components/editor/aux-panel/DevTool.js.map +1 -1
  64. package/lib/components/editor/aux-panel/Problems.d.ts.map +1 -1
  65. package/lib/components/editor/aux-panel/Problems.js +4 -10
  66. package/lib/components/editor/aux-panel/Problems.js.map +1 -1
  67. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  68. package/lib/components/editor/command-center/ProjectSearchCommand.js +1 -1
  69. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  70. package/lib/components/editor/edit-panel/FileGenerationViewer.js +1 -1
  71. package/lib/components/editor/edit-panel/FileGenerationViewer.js.map +1 -1
  72. package/lib/components/editor/edit-panel/FunctionEditor.js +3 -3
  73. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  74. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js +2 -2
  75. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js.map +1 -1
  76. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  77. package/lib/components/editor/edit-panel/GrammarTextEditor.js +8 -7
  78. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  79. package/lib/components/editor/edit-panel/ModelImporter.js +1 -1
  80. package/lib/components/editor/edit-panel/ModelImporter.js.map +1 -1
  81. package/lib/components/editor/edit-panel/RuntimeEditor.js +3 -3
  82. package/lib/components/editor/edit-panel/RuntimeEditor.js.map +1 -1
  83. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js +1 -1
  84. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js.map +1 -1
  85. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js +1 -1
  86. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js.map +1 -1
  87. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +1 -1
  88. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  89. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +1 -1
  90. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  91. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js +1 -1
  92. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js.map +1 -1
  93. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.d.ts.map +1 -1
  94. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +1 -1
  95. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
  96. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js +1 -1
  97. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js.map +1 -1
  98. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  99. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +1 -3
  100. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  101. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -1
  102. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js +3 -2
  103. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -1
  104. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js +1 -1
  105. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js.map +1 -1
  106. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  107. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +1 -3
  108. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  109. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js +1 -1
  110. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  111. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js +1 -1
  112. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js.map +1 -1
  113. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +2 -2
  114. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  115. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js +2 -2
  116. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  117. package/{src/stores/LegendStudioStorage.ts → lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.d.ts} +5 -5
  118. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.d.ts.map +1 -0
  119. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.js +98 -0
  120. package/lib/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.js.map +1 -0
  121. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js +2 -2
  122. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js.map +1 -1
  123. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +2 -2
  124. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  125. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  126. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +0 -2
  127. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  128. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +1 -1
  129. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  130. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +2 -2
  131. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  132. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +8 -8
  133. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  134. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.d.ts.map +1 -1
  135. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js +1 -3
  136. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js.map +1 -1
  137. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +2 -2
  138. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  139. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js +1 -1
  140. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js.map +1 -1
  141. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js +1 -1
  142. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js.map +1 -1
  143. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js +1 -1
  144. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js.map +1 -1
  145. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  146. package/lib/components/editor/side-bar/CreateNewElementModal.js +4 -0
  147. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  148. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  149. package/lib/components/editor/side-bar/Explorer.js +18 -10
  150. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  151. package/lib/components/editor/side-bar/LocalChanges.d.ts.map +1 -1
  152. package/lib/components/editor/side-bar/LocalChanges.js +4 -3
  153. package/lib/components/editor/side-bar/LocalChanges.js.map +1 -1
  154. package/lib/components/editor/side-bar/ProjectDependantsEditor.js +1 -1
  155. package/lib/components/editor/side-bar/ProjectDependantsEditor.js.map +1 -1
  156. package/lib/components/editor/side-bar/ProjectOverview.js +1 -1
  157. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  158. package/lib/components/editor/side-bar/RegisterService.d.ts +8 -0
  159. package/lib/components/editor/side-bar/RegisterService.d.ts.map +1 -0
  160. package/lib/components/editor/side-bar/RegisterService.js +35 -0
  161. package/lib/components/editor/side-bar/RegisterService.js.map +1 -0
  162. package/lib/components/editor/side-bar/SideBar.d.ts.map +1 -1
  163. package/lib/components/editor/side-bar/SideBar.js +3 -0
  164. package/lib/components/editor/side-bar/SideBar.js.map +1 -1
  165. package/lib/components/editor/side-bar/WorkspaceReview.js +1 -1
  166. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  167. package/lib/components/editor/side-bar/WorkspaceUpdater.js +1 -1
  168. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  169. package/lib/components/project-viewer/ProjectViewer.d.ts.map +1 -1
  170. package/lib/components/project-viewer/ProjectViewer.js +7 -4
  171. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  172. package/lib/components/shared/ProjectSelectorUtils.js +1 -1
  173. package/lib/components/shared/ProjectSelectorUtils.js.map +1 -1
  174. package/lib/components/workspace-review/WorkspaceReview.js +1 -1
  175. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  176. package/lib/components/workspace-setup/CreateProjectModal.js +2 -2
  177. package/lib/components/workspace-setup/CreateProjectModal.js.map +1 -1
  178. package/lib/components/workspace-setup/CreateWorkspaceModal.js +1 -1
  179. package/lib/components/workspace-setup/CreateWorkspaceModal.js.map +1 -1
  180. package/lib/components/workspace-setup/WorkspaceSetup.js +6 -6
  181. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  182. package/lib/index.css +2 -2
  183. package/lib/index.css.map +1 -1
  184. package/lib/index.d.ts +6 -5
  185. package/lib/index.d.ts.map +1 -1
  186. package/lib/index.js +5 -5
  187. package/lib/index.js.map +1 -1
  188. package/lib/package.json +4 -4
  189. package/lib/stores/{LegendStudioCodeSnippets.d.ts → Core_CodeSnippets.d.ts} +1 -1
  190. package/lib/stores/Core_CodeSnippets.d.ts.map +1 -0
  191. package/lib/stores/{LegendStudioCodeSnippets.js → Core_CodeSnippets.js} +1 -1
  192. package/lib/stores/Core_CodeSnippets.js.map +1 -0
  193. package/lib/stores/DependencyProjectViewerHelper.js +1 -1
  194. package/lib/stores/DependencyProjectViewerHelper.js.map +1 -1
  195. package/lib/stores/EditorConfig.d.ts +2 -1
  196. package/lib/stores/EditorConfig.d.ts.map +1 -1
  197. package/lib/stores/EditorConfig.js +1 -0
  198. package/lib/stores/EditorConfig.js.map +1 -1
  199. package/lib/stores/EditorGraphState.d.ts +10 -71
  200. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  201. package/lib/stores/EditorGraphState.js +46 -540
  202. package/lib/stores/EditorGraphState.js.map +1 -1
  203. package/lib/stores/EditorSDLCState.js +1 -1
  204. package/lib/stores/EditorSDLCState.js.map +1 -1
  205. package/lib/stores/EditorStore.d.ts +13 -16
  206. package/lib/stores/EditorStore.d.ts.map +1 -1
  207. package/lib/stores/EditorStore.js +76 -215
  208. package/lib/stores/EditorStore.js.map +1 -1
  209. package/lib/stores/EditorStoreTestUtils.d.ts.map +1 -1
  210. package/lib/stores/EditorStoreTestUtils.js +1 -2
  211. package/lib/stores/EditorStoreTestUtils.js.map +1 -1
  212. package/lib/stores/EditorTabManagerState.d.ts +2 -1
  213. package/lib/stores/EditorTabManagerState.d.ts.map +1 -1
  214. package/lib/stores/EditorTabManagerState.js +63 -19
  215. package/lib/stores/EditorTabManagerState.js.map +1 -1
  216. package/lib/stores/EmbeddedQueryBuilderState.d.ts +0 -1
  217. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -1
  218. package/lib/stores/EmbeddedQueryBuilderState.js +10 -9
  219. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -1
  220. package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
  221. package/lib/stores/ExplorerTreeState.js +2 -2
  222. package/lib/stores/ExplorerTreeState.js.map +1 -1
  223. package/lib/stores/GraphEditFormModeState.d.ts +81 -0
  224. package/lib/stores/GraphEditFormModeState.d.ts.map +1 -0
  225. package/lib/stores/GraphEditFormModeState.js +370 -0
  226. package/lib/stores/GraphEditFormModeState.js.map +1 -0
  227. package/lib/stores/GraphEditGrammarModeState.d.ts +65 -0
  228. package/lib/stores/GraphEditGrammarModeState.d.ts.map +1 -0
  229. package/lib/stores/GraphEditGrammarModeState.js +315 -0
  230. package/lib/stores/GraphEditGrammarModeState.js.map +1 -0
  231. package/lib/stores/GraphEditorMode.d.ts +51 -0
  232. package/lib/stores/GraphEditorMode.d.ts.map +1 -0
  233. package/lib/stores/GraphEditorMode.js +35 -0
  234. package/lib/stores/GraphEditorMode.js.map +1 -0
  235. package/lib/stores/LegendStudioApplicationPlugin.d.ts +12 -5
  236. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  237. package/lib/stores/LegendStudioApplicationPlugin.js.map +1 -1
  238. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  239. package/lib/stores/LegendStudioBaseStore.js +25 -9
  240. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  241. package/lib/stores/editor/NewElementState.d.ts +2 -2
  242. package/lib/stores/editor/NewElementState.d.ts.map +1 -1
  243. package/lib/stores/editor/NewElementState.js +19 -10
  244. package/lib/stores/editor/NewElementState.js.map +1 -1
  245. package/lib/stores/editor/StandardEditorMode.js +1 -1
  246. package/lib/stores/editor/StandardEditorMode.js.map +1 -1
  247. package/lib/stores/editor-state/ExternalFormatState.js +1 -1
  248. package/lib/stores/editor-state/ExternalFormatState.js.map +1 -1
  249. package/lib/stores/editor-state/FileGenerationState.js +1 -1
  250. package/lib/stores/editor-state/FileGenerationState.js.map +1 -1
  251. package/lib/stores/editor-state/GrammarTextEditorState.d.ts.map +1 -1
  252. package/lib/stores/editor-state/GrammarTextEditorState.js +2 -2
  253. package/lib/stores/editor-state/GrammarTextEditorState.js.map +1 -1
  254. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  255. package/lib/stores/editor-state/GraphGenerationState.js +2 -2
  256. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  257. package/lib/stores/editor-state/ModelImporterState.js +1 -1
  258. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  259. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js +1 -1
  260. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js.map +1 -1
  261. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.d.ts.map +1 -1
  262. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js +1 -1
  263. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js.map +1 -1
  264. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts.map +1 -1
  265. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js +6 -3
  266. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js.map +1 -1
  267. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js +1 -1
  268. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js.map +1 -1
  269. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
  270. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js +1 -1
  271. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  272. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts +1 -1
  273. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts.map +1 -1
  274. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js +1 -1
  275. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js.map +1 -1
  276. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  277. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +8 -15
  278. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  279. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts.map +1 -1
  280. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +6 -11
  281. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
  282. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
  283. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +7 -14
  284. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  285. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -1
  286. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  287. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +3 -3
  288. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
  289. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js +1 -1
  290. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  291. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +1 -1
  292. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  293. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +1 -1
  294. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
  295. package/lib/stores/project-viewer/ProjectViewerEditorMode.js +1 -1
  296. package/lib/stores/project-viewer/ProjectViewerEditorMode.js.map +1 -1
  297. package/lib/stores/project-viewer/ProjectViewerStore.d.ts +1 -1
  298. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  299. package/lib/stores/project-viewer/ProjectViewerStore.js +9 -15
  300. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  301. package/lib/stores/sidebar-state/BulkServiceRegistrationState.d.ts +51 -0
  302. package/lib/stores/sidebar-state/BulkServiceRegistrationState.d.ts.map +1 -0
  303. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js +237 -0
  304. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js.map +1 -0
  305. package/lib/stores/sidebar-state/LocalChangesState.d.ts +6 -3
  306. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  307. package/lib/stores/sidebar-state/LocalChangesState.js +45 -12
  308. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  309. package/lib/stores/sidebar-state/ProjectOverviewState.js +2 -2
  310. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  311. package/lib/stores/sidebar-state/WorkflowManagerState.js +1 -1
  312. package/lib/stores/sidebar-state/WorkflowManagerState.js.map +1 -1
  313. package/lib/stores/sidebar-state/WorkspaceReviewState.js +2 -2
  314. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  315. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts.map +1 -1
  316. package/lib/stores/sidebar-state/WorkspaceSyncState.js +2 -2
  317. package/lib/stores/sidebar-state/WorkspaceSyncState.js.map +1 -1
  318. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +2 -2
  319. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  320. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +1 -1
  321. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  322. package/lib/stores/workspace-review/WorkspaceReviewStore.js +1 -1
  323. package/lib/stores/workspace-review/WorkspaceReviewStore.js.map +1 -1
  324. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +2 -2
  325. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  326. package/package.json +13 -13
  327. package/src/application/LegendStudio.tsx +8 -7
  328. package/src/application/LegendStudioApplicationConfig.ts +7 -0
  329. package/src/{stores/LegendStudioEventService.ts → application/LegendStudioEventHelper.ts} +3 -13
  330. package/src/{stores/LegendStudioRouter.ts → application/LegendStudioNavigation.ts} +40 -39
  331. package/{lib/stores/LegendStudioStorage.js → src/application/LegendStudioSetting.ts} +16 -6
  332. package/src/{stores/LegendStudioTelemetry.ts → application/LegendStudioTelemetryHelper.ts} +14 -26
  333. package/src/components/Core_LegendStudioApplicationPlugin.tsx +14 -5
  334. package/src/components/EditorComponentTestUtils.tsx +8 -14
  335. package/src/components/EmbeddedQueryBuilder.tsx +1 -1
  336. package/src/components/LegendStudioAppInfo.tsx +0 -1
  337. package/src/components/LegendStudioApplication.tsx +24 -21
  338. package/src/components/editor/ActivityBar.tsx +7 -1
  339. package/src/components/editor/Editor.tsx +10 -6
  340. package/src/components/editor/EditorStoreProvider.tsx +1 -8
  341. package/src/components/editor/StatusBar.tsx +10 -9
  342. package/src/components/editor/aux-panel/DevTool.tsx +3 -3
  343. package/src/components/editor/aux-panel/Problems.tsx +5 -10
  344. package/src/components/editor/command-center/ProjectSearchCommand.tsx +1 -4
  345. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +1 -1
  346. package/src/components/editor/edit-panel/FunctionEditor.tsx +3 -3
  347. package/src/components/editor/edit-panel/GenerationSpecificationEditor.tsx +2 -2
  348. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +13 -8
  349. package/src/components/editor/edit-panel/ModelImporter.tsx +1 -1
  350. package/src/components/editor/edit-panel/RuntimeEditor.tsx +3 -3
  351. package/src/components/editor/edit-panel/connection-editor/ConnectionEditor.tsx +1 -1
  352. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +1 -1
  353. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +1 -1
  354. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +1 -1
  355. package/src/components/editor/edit-panel/diff-editor/EntityDiffView.tsx +1 -1
  356. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +0 -1
  357. package/src/components/editor/edit-panel/mapping-editor/MappingEditor.tsx +1 -1
  358. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +1 -4
  359. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.tsx +3 -2
  360. package/src/components/editor/edit-panel/mapping-editor/MappingExplorer.tsx +1 -1
  361. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +1 -4
  362. package/src/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.tsx +1 -1
  363. package/src/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.tsx +1 -1
  364. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +3 -3
  365. package/src/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.tsx +2 -2
  366. package/src/components/editor/edit-panel/service-editor/BulkServiceRegistrationEditor.tsx +283 -0
  367. package/src/components/editor/edit-panel/service-editor/ServiceEditor.tsx +2 -2
  368. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +2 -2
  369. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +0 -3
  370. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +1 -1
  371. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +2 -2
  372. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +8 -8
  373. package/src/components/editor/edit-panel/uml-editor/ClassQueryBuilder.tsx +3 -4
  374. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +2 -2
  375. package/src/components/editor/edit-panel/uml-editor/ProfileEditor.tsx +1 -1
  376. package/src/components/editor/edit-panel/uml-editor/StereotypeSelector.tsx +1 -1
  377. package/src/components/editor/edit-panel/uml-editor/TaggedValueEditor.tsx +1 -1
  378. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -0
  379. package/src/components/editor/side-bar/Explorer.tsx +25 -15
  380. package/src/components/editor/side-bar/LocalChanges.tsx +4 -8
  381. package/src/components/editor/side-bar/ProjectDependantsEditor.tsx +1 -1
  382. package/src/components/editor/side-bar/ProjectOverview.tsx +1 -1
  383. package/src/components/editor/side-bar/RegisterService.tsx +139 -0
  384. package/src/components/editor/side-bar/SideBar.tsx +9 -0
  385. package/src/components/editor/side-bar/WorkspaceReview.tsx +1 -1
  386. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +1 -1
  387. package/src/components/project-viewer/ProjectViewer.tsx +8 -5
  388. package/src/components/shared/ProjectSelectorUtils.tsx +1 -1
  389. package/src/components/workspace-review/WorkspaceReview.tsx +1 -1
  390. package/src/components/workspace-setup/CreateProjectModal.tsx +2 -2
  391. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +1 -1
  392. package/src/components/workspace-setup/WorkspaceSetup.tsx +7 -7
  393. package/src/index.ts +9 -5
  394. package/src/stores/DependencyProjectViewerHelper.ts +1 -1
  395. package/src/stores/EditorConfig.ts +1 -0
  396. package/src/stores/EditorGraphState.ts +49 -798
  397. package/src/stores/EditorSDLCState.ts +1 -1
  398. package/src/stores/EditorStore.ts +104 -323
  399. package/src/stores/EditorStoreTestUtils.ts +0 -2
  400. package/src/stores/EditorTabManagerState.ts +90 -25
  401. package/src/stores/EmbeddedQueryBuilderState.ts +11 -11
  402. package/src/stores/ExplorerTreeState.ts +2 -4
  403. package/src/stores/GraphEditFormModeState.ts +605 -0
  404. package/src/stores/GraphEditGrammarModeState.ts +512 -0
  405. package/src/stores/GraphEditorMode.ts +77 -0
  406. package/src/stores/LegendStudioApplicationPlugin.ts +14 -4
  407. package/src/stores/LegendStudioBaseStore.ts +35 -11
  408. package/src/stores/editor/NewElementState.ts +36 -20
  409. package/src/stores/editor/StandardEditorMode.ts +1 -1
  410. package/src/stores/editor-state/ExternalFormatState.ts +1 -1
  411. package/src/stores/editor-state/FileGenerationState.ts +1 -1
  412. package/src/stores/editor-state/GrammarTextEditorState.ts +4 -5
  413. package/src/stores/editor-state/GraphGenerationState.ts +6 -2
  414. package/src/stores/editor-state/ModelImporterState.ts +1 -1
  415. package/src/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.ts +1 -1
  416. package/src/stores/editor-state/element-editor-state/ElementFileGenerationState.ts +5 -1
  417. package/src/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.ts +12 -5
  418. package/src/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.ts +1 -1
  419. package/src/stores/editor-state/element-editor-state/mapping/MappingEditorState.ts +1 -3
  420. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.ts +1 -1
  421. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +12 -21
  422. package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +6 -15
  423. package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +7 -20
  424. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -1
  425. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +3 -3
  426. package/src/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.ts +1 -1
  427. package/src/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +1 -1
  428. package/src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts +1 -1
  429. package/src/stores/project-viewer/ProjectViewerEditorMode.ts +1 -1
  430. package/src/stores/project-viewer/ProjectViewerStore.ts +14 -25
  431. package/src/stores/sidebar-state/BulkServiceRegistrationState.ts +370 -0
  432. package/src/stores/sidebar-state/LocalChangesState.ts +57 -16
  433. package/src/stores/sidebar-state/ProjectOverviewState.ts +2 -2
  434. package/src/stores/sidebar-state/WorkflowManagerState.ts +1 -1
  435. package/src/stores/sidebar-state/WorkspaceReviewState.ts +2 -2
  436. package/src/stores/sidebar-state/WorkspaceSyncState.ts +3 -2
  437. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +2 -2
  438. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +1 -1
  439. package/src/stores/workspace-review/WorkspaceReviewStore.ts +1 -1
  440. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +2 -2
  441. package/tsconfig.json +16 -11
  442. package/tsconfig.package.json +1 -2
  443. package/lib/stores/LegendStudioAppEvent.d.ts.map +0 -1
  444. package/lib/stores/LegendStudioAppEvent.js.map +0 -1
  445. package/lib/stores/LegendStudioApplicationNavigationContext.d.ts.map +0 -1
  446. package/lib/stores/LegendStudioApplicationNavigationContext.js.map +0 -1
  447. package/lib/stores/LegendStudioCodeSnippets.d.ts.map +0 -1
  448. package/lib/stores/LegendStudioCodeSnippets.js.map +0 -1
  449. package/lib/stores/LegendStudioCommand.d.ts.map +0 -1
  450. package/lib/stores/LegendStudioCommand.js.map +0 -1
  451. package/lib/stores/LegendStudioDocumentation.d.ts.map +0 -1
  452. package/lib/stores/LegendStudioDocumentation.js.map +0 -1
  453. package/lib/stores/LegendStudioEventService.d.ts.map +0 -1
  454. package/lib/stores/LegendStudioEventService.js.map +0 -1
  455. package/lib/stores/LegendStudioRouter.d.ts.map +0 -1
  456. package/lib/stores/LegendStudioRouter.js.map +0 -1
  457. package/lib/stores/LegendStudioStorage.d.ts.map +0 -1
  458. package/lib/stores/LegendStudioStorage.js.map +0 -1
  459. package/lib/stores/LegendStudioTelemetry.d.ts.map +0 -1
  460. package/lib/stores/LegendStudioTelemetry.js +0 -37
  461. package/lib/stores/LegendStudioTelemetry.js.map +0 -1
  462. /package/lib/{stores → application}/LegendStudioApplicationNavigationContext.d.ts +0 -0
  463. /package/lib/{stores → application}/LegendStudioApplicationNavigationContext.js +0 -0
  464. /package/lib/{stores → application}/LegendStudioCommand.d.ts +0 -0
  465. /package/lib/{stores → application}/LegendStudioCommand.js +0 -0
  466. /package/lib/{stores → application}/LegendStudioDocumentation.d.ts +0 -0
  467. /package/lib/{stores → application}/LegendStudioDocumentation.js +0 -0
  468. /package/src/{stores → application}/LegendStudioApplicationNavigationContext.ts +0 -0
  469. /package/src/{stores → application}/LegendStudioCommand.ts +0 -0
  470. /package/src/{stores → application}/LegendStudioDocumentation.ts +0 -0
  471. /package/src/{stores/LegendStudioAppEvent.ts → application/LegendStudioEvent.ts} +0 -0
  472. /package/src/stores/{LegendStudioCodeSnippets.ts → Core_CodeSnippets.ts} +0 -0
@@ -0,0 +1,512 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ ActionAlertActionType,
19
+ ActionAlertType,
20
+ } from '@finos/legend-application';
21
+ import {
22
+ type PackageableElement,
23
+ GRAPH_MANAGER_EVENT,
24
+ type TextCompilationResult,
25
+ EngineError,
26
+ GraphBuilderError,
27
+ type GraphManagerOperationReport,
28
+ reportGraphAnalytics,
29
+ } from '@finos/legend-graph';
30
+ import {
31
+ type GeneratorFn,
32
+ assertErrorThrown,
33
+ LogEvent,
34
+ ActionState,
35
+ StopWatch,
36
+ } from '@finos/legend-shared';
37
+ import type { Entity } from '@finos/legend-storage';
38
+ import { makeObservable, flow, flowResult, observable } from 'mobx';
39
+ import { GrammarTextEditorState } from './editor-state/GrammarTextEditorState.js';
40
+ import type { EditorStore } from './EditorStore.js';
41
+ import { ExplorerTreeState } from './ExplorerTreeState.js';
42
+
43
+ import { TextLocalChangesState } from './sidebar-state/LocalChangesState.js';
44
+ import { GraphCompilationOutcome, type Problem } from './EditorGraphState.js';
45
+ import { GRAPH_EDITOR_MODE, AUX_PANEL_MODE } from './EditorConfig.js';
46
+ import { graph_dispose } from './shared/modifier/GraphModifierHelper.js';
47
+ import { LegendStudioTelemetryHelper } from '../application/LegendStudioTelemetryHelper.js';
48
+ import { GraphEditorMode } from './GraphEditorMode.js';
49
+ import { ElementEditorState } from './editor-state/element-editor-state/ElementEditorState.js';
50
+
51
+ export class GraphEditGrammarModeState extends GraphEditorMode {
52
+ grammarTextEditorState: GrammarTextEditorState;
53
+
54
+ constructor(editorStore: EditorStore) {
55
+ super(editorStore);
56
+ makeObservable(this, {
57
+ grammarTextEditorState: observable,
58
+ setGraphGrammar: flow,
59
+ setGraphGrammarFromEntites: flow,
60
+ compileText: flow,
61
+ });
62
+ this.grammarTextEditorState = new GrammarTextEditorState(this.editorStore);
63
+ }
64
+
65
+ async computeEntitiesFromCurrentGrammar(): Promise<Entity[]> {
66
+ return this.editorStore.graphManagerState.graphManager.pureCodeToEntities(
67
+ this.grammarTextEditorState.graphGrammarText,
68
+ );
69
+ }
70
+
71
+ *initialize(isFallback?: boolean): GeneratorFn<void> {
72
+ this.editorStore.localChangesState = new TextLocalChangesState(
73
+ this.editorStore,
74
+ this.editorStore.sdlcState,
75
+ );
76
+ this.editorStore.graphState.clearProblems();
77
+ this.editorStore.changeDetectionState.stop();
78
+ try {
79
+ yield flowResult(
80
+ this.editorStore.changeDetectionState.computeLocalChangesInTextMode(
81
+ (yield this.computeEntitiesFromCurrentGrammar()) as Entity[],
82
+ ),
83
+ );
84
+ } catch (error) {
85
+ assertErrorThrown(error);
86
+ this.editorStore.applicationStore.logService.warn(
87
+ LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
88
+ error,
89
+ );
90
+ }
91
+ if (isFallback) {
92
+ yield flowResult(
93
+ this.globalCompile({
94
+ ignoreBlocking: true,
95
+ suppressCompilationFailureMessage: true,
96
+ }),
97
+ );
98
+ }
99
+ // navigate to the currently opened element immediately after entering text mode editor
100
+ if (
101
+ this.editorStore.tabManagerState.currentTab instanceof ElementEditorState
102
+ ) {
103
+ this.grammarTextEditorState.setCurrentElementLabelRegexString(
104
+ this.editorStore.tabManagerState.currentTab.element,
105
+ );
106
+ }
107
+ }
108
+
109
+ *setGraphGrammarFromEntites(entities: Entity[]): GeneratorFn<void> {
110
+ const editorGrammar =
111
+ (yield this.editorStore.graphManagerState.graphManager.entitiesToPureCode(
112
+ entities,
113
+ )) as string;
114
+ yield flowResult(
115
+ this.grammarTextEditorState.setGraphGrammarText(editorGrammar),
116
+ );
117
+ }
118
+
119
+ *setGraphGrammar(): GeneratorFn<void> {
120
+ const graphGrammar =
121
+ (yield this.editorStore.graphManagerState.graphManager.graphToPureCode(
122
+ this.editorStore.graphManagerState.graph,
123
+ )) as string;
124
+ yield flowResult(
125
+ this.grammarTextEditorState.setGraphGrammarText(graphGrammar),
126
+ );
127
+ }
128
+
129
+ *compileText(
130
+ options?: {
131
+ onError?: () => void;
132
+ },
133
+ report?: GraphManagerOperationReport,
134
+ ): GeneratorFn<TextCompilationResult> {
135
+ return (yield this.editorStore.graphManagerState.graphManager.compileText(
136
+ this.grammarTextEditorState.graphGrammarText,
137
+ this.editorStore.graphManagerState.graph,
138
+ options,
139
+ )) as TextCompilationResult;
140
+ }
141
+
142
+ getCurrentGraphHash(): string {
143
+ return this.grammarTextEditorState.currentTextGraphHash;
144
+ }
145
+
146
+ *addElement(
147
+ element: PackageableElement,
148
+ packagePath: string | undefined,
149
+ openAfterCreate: boolean,
150
+ ): GeneratorFn<void> {
151
+ return;
152
+ }
153
+
154
+ *deleteElement(element: PackageableElement): GeneratorFn<void> {
155
+ return;
156
+ }
157
+
158
+ *renameElement(
159
+ element: PackageableElement,
160
+ newPath: string,
161
+ ): GeneratorFn<void> {
162
+ return;
163
+ }
164
+
165
+ get mode(): GRAPH_EDITOR_MODE {
166
+ return GRAPH_EDITOR_MODE.GRAMMAR_TEXT;
167
+ }
168
+
169
+ /**
170
+ * Creates a new explorer tree state when compiling in text mode. It resets the explorer state properly
171
+ * after the new graph is built. It tries to maintain the explorer state similar to what it was before compilation.
172
+ * To achieve that we store node ids of the opened nodes before creating a new explorer state. After creating a
173
+ * new state we open the nodes which were opened before so that user see the same explorer state as before.
174
+ */
175
+ reprocessExplorerTreeInTextMode(): void {
176
+ const mainTreeOpenedNodeIds = this.editorStore.explorerTreeState.treeData
177
+ ? Array.from(this.editorStore.explorerTreeState.treeData.nodes.values())
178
+ .filter((node) => node.isOpen)
179
+ .map((node) => node.id)
180
+ : [];
181
+ const generationTreeOpenedNodeIds = this.editorStore.explorerTreeState
182
+ .generationTreeData
183
+ ? Array.from(
184
+ this.editorStore.explorerTreeState.generationTreeData.nodes.values(),
185
+ )
186
+ .filter((node) => node.isOpen)
187
+ .map((node) => node.id)
188
+ : [];
189
+ // Storing dependencyTree, filegenerationTree, systemTree as is as they don't
190
+ // hold any reference to actual graph
191
+ const systemTreeData = this.editorStore.explorerTreeState.systemTreeData;
192
+ const dependencyTreeData =
193
+ this.editorStore.explorerTreeState.dependencyTreeData;
194
+ const selectedNodeId = this.editorStore.explorerTreeState.selectedNode?.id;
195
+ this.editorStore.explorerTreeState = new ExplorerTreeState(
196
+ this.editorStore,
197
+ );
198
+ this.editorStore.explorerTreeState.systemTreeData = systemTreeData;
199
+ this.editorStore.explorerTreeState.dependencyTreeData = dependencyTreeData;
200
+ this.editorStore.explorerTreeState.buildTreeInTextMode();
201
+ this.editorStore.explorerTreeState.openExplorerTreeNodes(
202
+ mainTreeOpenedNodeIds,
203
+ generationTreeOpenedNodeIds,
204
+ selectedNodeId,
205
+ );
206
+ }
207
+
208
+ *updateGraphAndApplication(entities: Entity[]): GeneratorFn<void> {
209
+ const startTime = Date.now();
210
+ this.editorStore.graphState.isUpdatingApplication = true;
211
+ this.editorStore.graphState.isUpdatingGraph = true;
212
+ try {
213
+ const newGraph = this.editorStore.graphManagerState.createEmptyGraph();
214
+ yield flowResult(
215
+ this.editorStore.graphState.rebuildDependencies(newGraph),
216
+ );
217
+ yield flowResult(graph_dispose(this.editorStore.graphManagerState.graph));
218
+
219
+ const graphBuildState = ActionState.create();
220
+ yield this.editorStore.graphManagerState.graphManager.buildLightGraph(
221
+ newGraph,
222
+ entities,
223
+ graphBuildState,
224
+ {
225
+ TEMPORARY__preserveSectionIndex:
226
+ this.editorStore.applicationStore.config.options
227
+ .TEMPORARY__preserveSectionIndex,
228
+ strict: this.editorStore.graphState.enableStrictMode,
229
+ },
230
+ );
231
+
232
+ this.editorStore.graphManagerState.graph = newGraph;
233
+ // NOTE: here we don't want to modify the current graph build state directly
234
+ // instead, we quietly run this in the background and then sync it with the current build state
235
+ this.editorStore.graphManagerState.graphBuildState.sync(graphBuildState);
236
+ this.reprocessExplorerTreeInTextMode();
237
+
238
+ this.editorStore.applicationStore.logService.info(
239
+ LogEvent.create(GRAPH_MANAGER_EVENT.UPDATE_AND_REBUILD_GRAPH__SUCCESS),
240
+ '[TOTAL]',
241
+ Date.now() - startTime,
242
+ 'ms',
243
+ );
244
+ this.editorStore.graphState.isUpdatingGraph = false;
245
+ } catch (error) {
246
+ assertErrorThrown(error);
247
+ this.editorStore.applicationStore.logService.error(
248
+ LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE),
249
+ error,
250
+ );
251
+ this.editorStore.graphState.isUpdatingGraph = false;
252
+ if (error instanceof GraphBuilderError) {
253
+ this.editorStore.applicationStore.notificationService.notifyError(
254
+ `Can't build graph: ${error.message}`,
255
+ );
256
+ }
257
+ } finally {
258
+ this.editorStore.graphState.isUpdatingApplication = false;
259
+ this.editorStore.applicationStore.alertService.setBlockingAlert(
260
+ undefined,
261
+ );
262
+ }
263
+ }
264
+
265
+ // TODO: when we support showing multiple notifications, we can take this `suppressCompilationFailureMessage` out as
266
+ // we can show the transition between form mode and text mode warning and the compilation failure warning at the same time
267
+ *globalCompile(options?: {
268
+ ignoreBlocking?: boolean | undefined;
269
+ suppressCompilationFailureMessage?: boolean | undefined;
270
+ disableNotificationOnSuccess?: boolean | undefined;
271
+ openConsole?: boolean;
272
+ }): GeneratorFn<void> {
273
+ if (
274
+ !options?.ignoreBlocking &&
275
+ this.editorStore.graphState.checkIfApplicationUpdateOperationIsRunning()
276
+ ) {
277
+ this.editorStore.graphState.setMostRecentCompilationOutcome(
278
+ GraphCompilationOutcome.SKIPPED,
279
+ );
280
+ return;
281
+ }
282
+
283
+ const stopWatch = new StopWatch();
284
+ const report = reportGraphAnalytics(
285
+ this.editorStore.graphManagerState.graph,
286
+ );
287
+ LegendStudioTelemetryHelper.logEvent_TextCompilationLaunched(
288
+ this.editorStore.applicationStore.telemetryService,
289
+ );
290
+
291
+ const currentGraphHash = this.getCurrentGraphHash();
292
+
293
+ try {
294
+ this.editorStore.graphState.isRunningGlobalCompile = true;
295
+ this.editorStore.graphState.clearProblems();
296
+ if (options?.openConsole) {
297
+ this.editorStore.setActiveAuxPanelMode(AUX_PANEL_MODE.CONSOLE);
298
+ }
299
+
300
+ const compilationResult = (yield flowResult(
301
+ this.compileText({}, report),
302
+ )) as TextCompilationResult;
303
+
304
+ const entities = compilationResult.entities;
305
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(
306
+ currentGraphHash,
307
+ );
308
+ this.editorStore.graphState.warnings = compilationResult.warnings
309
+ ? this.editorStore.graphState.TEMPORARY__removeDependencyProblems(
310
+ compilationResult.warnings,
311
+ )
312
+ : [];
313
+
314
+ if (!options?.disableNotificationOnSuccess) {
315
+ if (this.editorStore.graphState.warnings.length) {
316
+ this.editorStore.applicationStore.notificationService.notifyWarning(
317
+ `Compilation suceeded with warnings`,
318
+ );
319
+ } else {
320
+ if (!options?.disableNotificationOnSuccess) {
321
+ this.editorStore.applicationStore.notificationService.notifySuccess(
322
+ 'Compiled successfully',
323
+ );
324
+ }
325
+ }
326
+ }
327
+
328
+ yield flowResult(this.updateGraphAndApplication(entities));
329
+
330
+ // Remove `SectionIndex when computing changes in text mode as engine after
331
+ // transforming grammarToJson would return `SectionIndex` which is not
332
+ // required to do change detection.
333
+ yield flowResult(
334
+ this.editorStore.changeDetectionState.computeLocalChangesInTextMode(
335
+ this.editorStore.graphManagerState.graphManager.getElementEntities(
336
+ entities,
337
+ ),
338
+ ),
339
+ );
340
+ this.editorStore.graphState.setMostRecentCompilationOutcome(
341
+ GraphCompilationOutcome.SUCCEEDED,
342
+ );
343
+ report.timings =
344
+ this.editorStore.applicationStore.timeService.finalizeTimingsRecord(
345
+ stopWatch,
346
+ report.timings,
347
+ );
348
+ LegendStudioTelemetryHelper.logEvent_TextCompilationSucceeded(
349
+ this.editorStore.applicationStore.telemetryService,
350
+ report,
351
+ );
352
+ } catch (error) {
353
+ assertErrorThrown(error);
354
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(
355
+ currentGraphHash,
356
+ );
357
+ if (error instanceof EngineError) {
358
+ this.editorStore.graphState.error = error;
359
+ if (error.sourceInformation) {
360
+ this.grammarTextEditorState.setForcedCursorPosition({
361
+ lineNumber: error.sourceInformation.startLine,
362
+ column: error.sourceInformation.startColumn,
363
+ });
364
+ }
365
+ }
366
+ if (
367
+ !this.editorStore.applicationStore.notificationService.notification ||
368
+ !options?.suppressCompilationFailureMessage
369
+ ) {
370
+ this.editorStore.applicationStore.notificationService.notifyWarning(
371
+ `Compilation failed: ${error.message}`,
372
+ );
373
+ }
374
+ this.editorStore.graphState.setMostRecentCompilationOutcome(
375
+ GraphCompilationOutcome.FAILED,
376
+ );
377
+ } finally {
378
+ this.editorStore.graphState.isRunningGlobalCompile = false;
379
+ }
380
+ }
381
+
382
+ goToProblem(problem: Problem): void {
383
+ // NOTE: in text mode, we allow click to go to position even when the problems might already be stale
384
+ if (problem.sourceInformation) {
385
+ this.grammarTextEditorState.setForcedCursorPosition({
386
+ lineNumber: problem.sourceInformation.startLine,
387
+ column: problem.sourceInformation.startColumn,
388
+ });
389
+ }
390
+ }
391
+
392
+ *onLeave(fallbackOptions?: {
393
+ isCompilationFailure?: boolean;
394
+ isGraphBuildFailure?: boolean;
395
+ }): GeneratorFn<void> {
396
+ if (!fallbackOptions) {
397
+ this.editorStore.graphState.isApplicationLeavingGraphEditMode = true;
398
+ this.editorStore.graphState.clearProblems();
399
+ this.editorStore.applicationStore.alertService.setBlockingAlert({
400
+ message: 'Compiling graph before leaving text mode...',
401
+ showLoading: true,
402
+ });
403
+ const compilationResult = (yield flowResult(
404
+ this.compileText(
405
+ // surpress the modal to reveal error properly in the text editor
406
+ // if the blocking modal is not dismissed, the edior will not be able to gain focus as modal has a focus trap
407
+ // therefore, the editor will not be able to get the focus
408
+ {
409
+ onError: () =>
410
+ this.editorStore.applicationStore.alertService.setBlockingAlert(
411
+ undefined,
412
+ ),
413
+ },
414
+ ),
415
+ )) as TextCompilationResult;
416
+ this.editorStore.graphState.setMostRecentCompilationOutcome(
417
+ GraphCompilationOutcome.SUCCEEDED,
418
+ );
419
+
420
+ this.editorStore.graphState.warnings = compilationResult.warnings
421
+ ? this.editorStore.graphState.TEMPORARY__removeDependencyProblems(
422
+ compilationResult.warnings,
423
+ )
424
+ : [];
425
+ this.editorStore.graphState.compilationResultEntities =
426
+ compilationResult.entities;
427
+ this.editorStore.applicationStore.alertService.setBlockingAlert({
428
+ message: 'Leaving text mode and rebuilding graph...',
429
+ showLoading: true,
430
+ });
431
+ }
432
+ }
433
+
434
+ *handleCleanupFailure(error: unknown): GeneratorFn<void> {
435
+ assertErrorThrown(error);
436
+ this.editorStore.graphState.setMostRecentCompilationOutcome(
437
+ GraphCompilationOutcome.FAILED,
438
+ );
439
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(
440
+ this.getCurrentGraphHash(),
441
+ );
442
+ if (error instanceof EngineError && error.sourceInformation) {
443
+ this.grammarTextEditorState.setForcedCursorPosition({
444
+ lineNumber: error.sourceInformation.startLine,
445
+ column: error.sourceInformation.startColumn,
446
+ });
447
+ }
448
+ this.editorStore.applicationStore.logService.error(
449
+ LogEvent.create(GRAPH_MANAGER_EVENT.COMPILATION_FAILURE),
450
+ 'Compilation failed:',
451
+ error,
452
+ );
453
+ if (this.editorStore.graphManagerState.graphBuildState.hasFailed) {
454
+ // TODO: when we support showing multiple notification, we can split this into 2 messages
455
+ this.editorStore.applicationStore.notificationService.notifyWarning(
456
+ `Can't build graph, please resolve compilation error before leaving text mode. Compilation failed with error: ${error.message}`,
457
+ );
458
+ } else {
459
+ this.editorStore.applicationStore.notificationService.notifyWarning(
460
+ `Compilation failed: ${error.message}`,
461
+ );
462
+ this.editorStore.applicationStore.alertService.setActionAlertInfo({
463
+ message: 'Project is not in a compiled state',
464
+ prompt:
465
+ 'All changes made since the last time the graph was built successfully will be lost',
466
+ type: ActionAlertType.CAUTION,
467
+ actions: [
468
+ {
469
+ label: 'Discard Changes',
470
+ default: true,
471
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
472
+ handler: (): void => {
473
+ flowResult(
474
+ this.editorStore.switchModes(GRAPH_EDITOR_MODE.FORM, {
475
+ isCompilationFailure: true,
476
+ }),
477
+ ).catch(this.editorStore.applicationStore.alertUnhandledError);
478
+ },
479
+ },
480
+ {
481
+ label: 'Stay',
482
+ default: true,
483
+ type: ActionAlertActionType.PROCEED,
484
+ },
485
+ ],
486
+ });
487
+ }
488
+ }
489
+
490
+ *cleanupBeforeEntering(fallbackOptions?: {
491
+ isCompilationFailure?: boolean;
492
+ isGraphBuildFailure?: boolean;
493
+ }): GeneratorFn<void> {
494
+ if (fallbackOptions?.isGraphBuildFailure) {
495
+ yield flowResult(
496
+ this.setGraphGrammarFromEntites(
497
+ this.editorStore.changeDetectionState
498
+ .workspaceLocalLatestRevisionState.entities,
499
+ ),
500
+ );
501
+ } else {
502
+ yield flowResult(this.setGraphGrammar());
503
+ }
504
+ this.editorStore.applicationStore.alertService.setBlockingAlert(undefined);
505
+ }
506
+
507
+ openElement(element: PackageableElement): void {
508
+ // in text mode, we want to select the block of code that corresponds to the element if possible
509
+ // the cheap way to do this is to search by element label text, e.g. `Mapping some::package::someMapping`
510
+ this.grammarTextEditorState.setCurrentElementLabelRegexString(element);
511
+ }
512
+ }
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import type { PackageableElement } from '@finos/legend-graph';
18
+ import type { GeneratorFn } from '@finos/legend-shared';
19
+ import type { Entity } from '@finos/legend-storage';
20
+ import { makeObservable, flow, action } from 'mobx';
21
+ import type { EditorStore } from './EditorStore.js';
22
+
23
+ import type { GRAPH_EDITOR_MODE } from './EditorConfig.js';
24
+ import type { Problem } from './EditorGraphState.js';
25
+
26
+ export abstract class GraphEditorMode {
27
+ readonly editorStore: EditorStore;
28
+
29
+ constructor(editorStore: EditorStore) {
30
+ makeObservable(this, {
31
+ initialize: flow,
32
+ addElement: flow,
33
+ deleteElement: flow,
34
+ renameElement: flow,
35
+ globalCompile: flow,
36
+ updateGraphAndApplication: flow,
37
+ onLeave: flow,
38
+ cleanupBeforeEntering: flow,
39
+ handleCleanupFailure: flow,
40
+ openElement: action,
41
+ });
42
+ this.editorStore = editorStore;
43
+ }
44
+
45
+ abstract initialize(isFallback?: boolean): GeneratorFn<void>;
46
+ abstract addElement(
47
+ element: PackageableElement,
48
+ packagePath: string | undefined,
49
+ openAfterCreate: boolean,
50
+ ): GeneratorFn<void>;
51
+ abstract deleteElement(element: PackageableElement): GeneratorFn<void>;
52
+ abstract renameElement(
53
+ element: PackageableElement,
54
+ newPath: string,
55
+ ): GeneratorFn<void>;
56
+ abstract getCurrentGraphHash(): string | undefined;
57
+ abstract globalCompile(options?: {
58
+ message?: string;
59
+ disableNotificationOnSuccess?: boolean;
60
+ openConsole?: boolean;
61
+ ignoreBlocking?: boolean | undefined;
62
+ suppressCompilationFailureMessage?: boolean | undefined;
63
+ }): GeneratorFn<void>;
64
+ abstract updateGraphAndApplication(entities: Entity[]): GeneratorFn<void>;
65
+ abstract get mode(): GRAPH_EDITOR_MODE;
66
+ abstract goToProblem(problem: Problem): void;
67
+ abstract onLeave(fallbackOptions?: {
68
+ isCompilationFailure?: boolean;
69
+ isGraphBuildFailure?: boolean;
70
+ }): GeneratorFn<void>;
71
+ abstract cleanupBeforeEntering(fallbackOptions?: {
72
+ isCompilationFailure?: boolean;
73
+ isGraphBuildFailure?: boolean;
74
+ }): GeneratorFn<void>;
75
+ abstract handleCleanupFailure(error: unknown): GeneratorFn<void>;
76
+ abstract openElement(element: PackageableElement): void;
77
+ }
@@ -26,6 +26,7 @@ import {
26
26
  type DocumentationEntry,
27
27
  type PureGrammarTextSuggestion,
28
28
  LegendApplicationPlugin,
29
+ type ApplicationPageEntry,
29
30
  } from '@finos/legend-application';
30
31
  import type { TestableMetadata } from './sidebar-state/testable/GlobalTestRunnerState.js';
31
32
  import type {
@@ -69,6 +70,10 @@ export type ModelImporterExtensionConfiguration = {
69
70
  ) => Promise<void>;
70
71
  };
71
72
 
73
+ export type LegendStudioApplicationPageEntry = ApplicationPageEntry & {
74
+ bypassSDLC?: boolean | undefined;
75
+ };
76
+
72
77
  export type TestableMetadataGetter = (
73
78
  testable: Testable,
74
79
  editorStore: EditorStore,
@@ -85,6 +90,11 @@ export abstract class LegendStudioApplicationPlugin extends LegendApplicationPlu
85
90
  pluginManager.registerApplicationPlugin(this);
86
91
  }
87
92
 
93
+ /**
94
+ * Get the list of application page entries to be rendered
95
+ */
96
+ override getExtraApplicationPageEntries?(): LegendStudioApplicationPageEntry[];
97
+
88
98
  /**
89
99
  * Get the list of items to be rendered in the explorer context menu.
90
100
  */
@@ -98,14 +108,14 @@ export abstract class LegendStudioApplicationPlugin extends LegendApplicationPlu
98
108
  getExtraEditorExtensionStateCreators?(): EditorExtensionStateCreator[];
99
109
 
100
110
  /**
101
- * Get the list of renderers for the preview panel of a class.
111
+ * Get the list of configurations for the renderer of editor extension states.
102
112
  */
103
- getExtraClassPreviewRenderers?(): ClassPreviewRenderer[];
113
+ getExtraEditorExtensionComponentRendererConfigurations?(): EditorExtensionComponentRendererConfiguration[];
104
114
 
105
115
  /**
106
- * Get the list of configurations for the renderer of editor extension states.
116
+ * Get the list of renderers for the preview panel of a class.
107
117
  */
108
- getExtraEditorExtensionComponentRendererConfigurations?(): EditorExtensionComponentRendererConfiguration[];
118
+ getExtraClassPreviewRenderers?(): ClassPreviewRenderer[];
109
119
 
110
120
  /**
111
121
  * Get the list of extension configurations for model importer.