@finos/legend-application-studio 22.6.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 (450) 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/{src/stores/LegendStudioStorage.ts → lib/application/LegendStudioEventHelper.d.ts} +4 -4
  19. package/lib/application/LegendStudioEventHelper.d.ts.map +1 -0
  20. package/lib/{stores/LegendStudioEventService.d.ts → application/LegendStudioEventHelper.js} +6 -7
  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/{stores/LegendStudioEventService.js → application/LegendStudioSetting.js} +14 -14
  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.js +6 -6
  51. package/lib/components/editor/ActivityBar.js.map +1 -1
  52. package/lib/components/editor/Editor.d.ts.map +1 -1
  53. package/lib/components/editor/Editor.js +6 -2
  54. package/lib/components/editor/Editor.js.map +1 -1
  55. package/lib/components/editor/EditorStoreProvider.d.ts.map +1 -1
  56. package/lib/components/editor/EditorStoreProvider.js +1 -3
  57. package/lib/components/editor/EditorStoreProvider.js.map +1 -1
  58. package/lib/components/editor/StatusBar.d.ts.map +1 -1
  59. package/lib/components/editor/StatusBar.js +5 -8
  60. package/lib/components/editor/StatusBar.js.map +1 -1
  61. package/lib/components/editor/aux-panel/DevTool.js +2 -2
  62. package/lib/components/editor/aux-panel/DevTool.js.map +1 -1
  63. package/lib/components/editor/aux-panel/Problems.d.ts.map +1 -1
  64. package/lib/components/editor/aux-panel/Problems.js +4 -10
  65. package/lib/components/editor/aux-panel/Problems.js.map +1 -1
  66. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  67. package/lib/components/editor/command-center/ProjectSearchCommand.js +1 -1
  68. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  69. package/lib/components/editor/edit-panel/FileGenerationViewer.js +1 -1
  70. package/lib/components/editor/edit-panel/FileGenerationViewer.js.map +1 -1
  71. package/lib/components/editor/edit-panel/FunctionEditor.js +3 -3
  72. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  73. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js +2 -2
  74. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js.map +1 -1
  75. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  76. package/lib/components/editor/edit-panel/GrammarTextEditor.js +8 -7
  77. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  78. package/lib/components/editor/edit-panel/ModelImporter.js +1 -1
  79. package/lib/components/editor/edit-panel/ModelImporter.js.map +1 -1
  80. package/lib/components/editor/edit-panel/RuntimeEditor.js +3 -3
  81. package/lib/components/editor/edit-panel/RuntimeEditor.js.map +1 -1
  82. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js +1 -1
  83. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js.map +1 -1
  84. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js +1 -1
  85. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js.map +1 -1
  86. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +1 -1
  87. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  88. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +1 -1
  89. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  90. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js +1 -1
  91. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js.map +1 -1
  92. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.d.ts.map +1 -1
  93. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +1 -1
  94. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
  95. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js +1 -1
  96. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js.map +1 -1
  97. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  98. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +1 -3
  99. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  100. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -1
  101. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js +3 -2
  102. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -1
  103. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js +1 -1
  104. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js.map +1 -1
  105. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  106. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +1 -3
  107. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  108. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js +1 -1
  109. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  110. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js +1 -1
  111. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js.map +1 -1
  112. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +2 -2
  113. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  114. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js +2 -2
  115. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  116. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js +2 -2
  117. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js.map +1 -1
  118. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +2 -2
  119. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  120. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  121. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +0 -2
  122. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  123. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +1 -1
  124. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  125. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +2 -2
  126. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  127. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +8 -8
  128. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  129. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.d.ts.map +1 -1
  130. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js +1 -3
  131. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js.map +1 -1
  132. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +2 -2
  133. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  134. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js +1 -1
  135. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js.map +1 -1
  136. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js +1 -1
  137. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js.map +1 -1
  138. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js +1 -1
  139. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js.map +1 -1
  140. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  141. package/lib/components/editor/side-bar/CreateNewElementModal.js +4 -0
  142. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  143. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  144. package/lib/components/editor/side-bar/Explorer.js +18 -10
  145. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  146. package/lib/components/editor/side-bar/LocalChanges.d.ts.map +1 -1
  147. package/lib/components/editor/side-bar/LocalChanges.js +4 -3
  148. package/lib/components/editor/side-bar/LocalChanges.js.map +1 -1
  149. package/lib/components/editor/side-bar/ProjectDependantsEditor.js +1 -1
  150. package/lib/components/editor/side-bar/ProjectDependantsEditor.js.map +1 -1
  151. package/lib/components/editor/side-bar/ProjectOverview.js +1 -1
  152. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  153. package/lib/components/editor/side-bar/WorkspaceReview.js +1 -1
  154. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  155. package/lib/components/editor/side-bar/WorkspaceUpdater.js +1 -1
  156. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  157. package/lib/components/project-viewer/ProjectViewer.d.ts.map +1 -1
  158. package/lib/components/project-viewer/ProjectViewer.js +7 -4
  159. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  160. package/lib/components/shared/ProjectSelectorUtils.js +1 -1
  161. package/lib/components/shared/ProjectSelectorUtils.js.map +1 -1
  162. package/lib/components/workspace-review/WorkspaceReview.js +1 -1
  163. package/lib/components/workspace-review/WorkspaceReview.js.map +1 -1
  164. package/lib/components/workspace-setup/CreateProjectModal.js +2 -2
  165. package/lib/components/workspace-setup/CreateProjectModal.js.map +1 -1
  166. package/lib/components/workspace-setup/CreateWorkspaceModal.js +1 -1
  167. package/lib/components/workspace-setup/CreateWorkspaceModal.js.map +1 -1
  168. package/lib/components/workspace-setup/WorkspaceSetup.js +6 -6
  169. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  170. package/lib/index.css +2 -2
  171. package/lib/index.css.map +1 -1
  172. package/lib/index.d.ts +6 -5
  173. package/lib/index.d.ts.map +1 -1
  174. package/lib/index.js +5 -5
  175. package/lib/index.js.map +1 -1
  176. package/lib/package.json +4 -4
  177. package/lib/stores/{LegendStudioCodeSnippets.d.ts → Core_CodeSnippets.d.ts} +1 -1
  178. package/lib/stores/Core_CodeSnippets.d.ts.map +1 -0
  179. package/lib/stores/{LegendStudioCodeSnippets.js → Core_CodeSnippets.js} +1 -1
  180. package/lib/stores/Core_CodeSnippets.js.map +1 -0
  181. package/lib/stores/DependencyProjectViewerHelper.js +1 -1
  182. package/lib/stores/DependencyProjectViewerHelper.js.map +1 -1
  183. package/lib/stores/EditorGraphState.d.ts +10 -71
  184. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  185. package/lib/stores/EditorGraphState.js +46 -540
  186. package/lib/stores/EditorGraphState.js.map +1 -1
  187. package/lib/stores/EditorSDLCState.js +1 -1
  188. package/lib/stores/EditorSDLCState.js.map +1 -1
  189. package/lib/stores/EditorStore.d.ts +11 -16
  190. package/lib/stores/EditorStore.d.ts.map +1 -1
  191. package/lib/stores/EditorStore.js +73 -215
  192. package/lib/stores/EditorStore.js.map +1 -1
  193. package/lib/stores/EditorStoreTestUtils.d.ts.map +1 -1
  194. package/lib/stores/EditorStoreTestUtils.js +1 -2
  195. package/lib/stores/EditorStoreTestUtils.js.map +1 -1
  196. package/lib/stores/EditorTabManagerState.d.ts +2 -1
  197. package/lib/stores/EditorTabManagerState.d.ts.map +1 -1
  198. package/lib/stores/EditorTabManagerState.js +63 -19
  199. package/lib/stores/EditorTabManagerState.js.map +1 -1
  200. package/lib/stores/EmbeddedQueryBuilderState.d.ts +0 -1
  201. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -1
  202. package/lib/stores/EmbeddedQueryBuilderState.js +10 -9
  203. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -1
  204. package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
  205. package/lib/stores/ExplorerTreeState.js +2 -2
  206. package/lib/stores/ExplorerTreeState.js.map +1 -1
  207. package/lib/stores/GraphEditFormModeState.d.ts +81 -0
  208. package/lib/stores/GraphEditFormModeState.d.ts.map +1 -0
  209. package/lib/stores/GraphEditFormModeState.js +370 -0
  210. package/lib/stores/GraphEditFormModeState.js.map +1 -0
  211. package/lib/stores/GraphEditGrammarModeState.d.ts +65 -0
  212. package/lib/stores/GraphEditGrammarModeState.d.ts.map +1 -0
  213. package/lib/stores/GraphEditGrammarModeState.js +315 -0
  214. package/lib/stores/GraphEditGrammarModeState.js.map +1 -0
  215. package/lib/stores/GraphEditorMode.d.ts +51 -0
  216. package/lib/stores/GraphEditorMode.d.ts.map +1 -0
  217. package/lib/stores/GraphEditorMode.js +35 -0
  218. package/lib/stores/GraphEditorMode.js.map +1 -0
  219. package/lib/stores/LegendStudioApplicationPlugin.d.ts +12 -5
  220. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  221. package/lib/stores/LegendStudioApplicationPlugin.js.map +1 -1
  222. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  223. package/lib/stores/LegendStudioBaseStore.js +25 -9
  224. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  225. package/lib/stores/editor/NewElementState.d.ts +2 -2
  226. package/lib/stores/editor/NewElementState.d.ts.map +1 -1
  227. package/lib/stores/editor/NewElementState.js +19 -10
  228. package/lib/stores/editor/NewElementState.js.map +1 -1
  229. package/lib/stores/editor/StandardEditorMode.js +1 -1
  230. package/lib/stores/editor/StandardEditorMode.js.map +1 -1
  231. package/lib/stores/editor-state/ExternalFormatState.js +1 -1
  232. package/lib/stores/editor-state/ExternalFormatState.js.map +1 -1
  233. package/lib/stores/editor-state/FileGenerationState.js +1 -1
  234. package/lib/stores/editor-state/FileGenerationState.js.map +1 -1
  235. package/lib/stores/editor-state/GrammarTextEditorState.d.ts.map +1 -1
  236. package/lib/stores/editor-state/GrammarTextEditorState.js +2 -2
  237. package/lib/stores/editor-state/GrammarTextEditorState.js.map +1 -1
  238. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  239. package/lib/stores/editor-state/GraphGenerationState.js +2 -2
  240. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  241. package/lib/stores/editor-state/ModelImporterState.js +1 -1
  242. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  243. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js +1 -1
  244. package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js.map +1 -1
  245. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.d.ts.map +1 -1
  246. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js +1 -1
  247. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js.map +1 -1
  248. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts.map +1 -1
  249. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js +6 -3
  250. package/lib/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.js.map +1 -1
  251. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js +1 -1
  252. package/lib/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.js.map +1 -1
  253. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
  254. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js +1 -1
  255. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  256. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts +1 -1
  257. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts.map +1 -1
  258. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js +1 -1
  259. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js.map +1 -1
  260. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  261. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +8 -15
  262. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  263. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts.map +1 -1
  264. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +6 -11
  265. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
  266. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
  267. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +7 -14
  268. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  269. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -1
  270. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  271. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +3 -3
  272. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
  273. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js +1 -1
  274. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  275. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +1 -1
  276. package/lib/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  277. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js +1 -1
  278. package/lib/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.js.map +1 -1
  279. package/lib/stores/project-viewer/ProjectViewerEditorMode.js +1 -1
  280. package/lib/stores/project-viewer/ProjectViewerEditorMode.js.map +1 -1
  281. package/lib/stores/project-viewer/ProjectViewerStore.d.ts +1 -1
  282. package/lib/stores/project-viewer/ProjectViewerStore.d.ts.map +1 -1
  283. package/lib/stores/project-viewer/ProjectViewerStore.js +9 -15
  284. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  285. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js +1 -1
  286. package/lib/stores/sidebar-state/BulkServiceRegistrationState.js.map +1 -1
  287. package/lib/stores/sidebar-state/LocalChangesState.d.ts +6 -3
  288. package/lib/stores/sidebar-state/LocalChangesState.d.ts.map +1 -1
  289. package/lib/stores/sidebar-state/LocalChangesState.js +45 -12
  290. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  291. package/lib/stores/sidebar-state/ProjectOverviewState.js +2 -2
  292. package/lib/stores/sidebar-state/ProjectOverviewState.js.map +1 -1
  293. package/lib/stores/sidebar-state/WorkflowManagerState.js +1 -1
  294. package/lib/stores/sidebar-state/WorkflowManagerState.js.map +1 -1
  295. package/lib/stores/sidebar-state/WorkspaceReviewState.js +2 -2
  296. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  297. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts.map +1 -1
  298. package/lib/stores/sidebar-state/WorkspaceSyncState.js +2 -2
  299. package/lib/stores/sidebar-state/WorkspaceSyncState.js.map +1 -1
  300. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +2 -2
  301. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  302. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +1 -1
  303. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  304. package/lib/stores/workspace-review/WorkspaceReviewStore.js +1 -1
  305. package/lib/stores/workspace-review/WorkspaceReviewStore.js.map +1 -1
  306. package/lib/stores/workspace-setup/WorkspaceSetupStore.js +2 -2
  307. package/lib/stores/workspace-setup/WorkspaceSetupStore.js.map +1 -1
  308. package/package.json +13 -13
  309. package/src/application/LegendStudio.tsx +8 -7
  310. package/src/application/LegendStudioApplicationConfig.ts +7 -0
  311. package/src/{stores/LegendStudioEventService.ts → application/LegendStudioEventHelper.ts} +3 -13
  312. package/src/{stores/LegendStudioRouter.ts → application/LegendStudioNavigation.ts} +40 -39
  313. package/{lib/stores/LegendStudioStorage.js → src/application/LegendStudioSetting.ts} +16 -6
  314. package/src/{stores/LegendStudioTelemetry.ts → application/LegendStudioTelemetryHelper.ts} +14 -26
  315. package/src/components/Core_LegendStudioApplicationPlugin.tsx +14 -5
  316. package/src/components/EditorComponentTestUtils.tsx +8 -14
  317. package/src/components/EmbeddedQueryBuilder.tsx +1 -1
  318. package/src/components/LegendStudioAppInfo.tsx +0 -1
  319. package/src/components/LegendStudioApplication.tsx +24 -21
  320. package/src/components/editor/ActivityBar.tsx +6 -6
  321. package/src/components/editor/Editor.tsx +10 -6
  322. package/src/components/editor/EditorStoreProvider.tsx +1 -8
  323. package/src/components/editor/StatusBar.tsx +10 -9
  324. package/src/components/editor/aux-panel/DevTool.tsx +3 -3
  325. package/src/components/editor/aux-panel/Problems.tsx +5 -10
  326. package/src/components/editor/command-center/ProjectSearchCommand.tsx +1 -4
  327. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +1 -1
  328. package/src/components/editor/edit-panel/FunctionEditor.tsx +3 -3
  329. package/src/components/editor/edit-panel/GenerationSpecificationEditor.tsx +2 -2
  330. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +13 -8
  331. package/src/components/editor/edit-panel/ModelImporter.tsx +1 -1
  332. package/src/components/editor/edit-panel/RuntimeEditor.tsx +3 -3
  333. package/src/components/editor/edit-panel/connection-editor/ConnectionEditor.tsx +1 -1
  334. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +1 -1
  335. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +1 -1
  336. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +1 -1
  337. package/src/components/editor/edit-panel/diff-editor/EntityDiffView.tsx +1 -1
  338. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +0 -1
  339. package/src/components/editor/edit-panel/mapping-editor/MappingEditor.tsx +1 -1
  340. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +1 -4
  341. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.tsx +3 -2
  342. package/src/components/editor/edit-panel/mapping-editor/MappingExplorer.tsx +1 -1
  343. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +1 -4
  344. package/src/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.tsx +1 -1
  345. package/src/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.tsx +1 -1
  346. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +3 -3
  347. package/src/components/editor/edit-panel/project-configuration-editor/ProjectDependencyEditor.tsx +2 -2
  348. package/src/components/editor/edit-panel/service-editor/ServiceEditor.tsx +2 -2
  349. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +2 -2
  350. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +0 -3
  351. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +1 -1
  352. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +2 -2
  353. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +8 -8
  354. package/src/components/editor/edit-panel/uml-editor/ClassQueryBuilder.tsx +3 -4
  355. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +2 -2
  356. package/src/components/editor/edit-panel/uml-editor/ProfileEditor.tsx +1 -1
  357. package/src/components/editor/edit-panel/uml-editor/StereotypeSelector.tsx +1 -1
  358. package/src/components/editor/edit-panel/uml-editor/TaggedValueEditor.tsx +1 -1
  359. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -0
  360. package/src/components/editor/side-bar/Explorer.tsx +25 -15
  361. package/src/components/editor/side-bar/LocalChanges.tsx +4 -8
  362. package/src/components/editor/side-bar/ProjectDependantsEditor.tsx +1 -1
  363. package/src/components/editor/side-bar/ProjectOverview.tsx +1 -1
  364. package/src/components/editor/side-bar/WorkspaceReview.tsx +1 -1
  365. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +1 -1
  366. package/src/components/project-viewer/ProjectViewer.tsx +8 -5
  367. package/src/components/shared/ProjectSelectorUtils.tsx +1 -1
  368. package/src/components/workspace-review/WorkspaceReview.tsx +1 -1
  369. package/src/components/workspace-setup/CreateProjectModal.tsx +2 -2
  370. package/src/components/workspace-setup/CreateWorkspaceModal.tsx +1 -1
  371. package/src/components/workspace-setup/WorkspaceSetup.tsx +7 -7
  372. package/src/index.ts +9 -5
  373. package/src/stores/DependencyProjectViewerHelper.ts +1 -1
  374. package/src/stores/EditorGraphState.ts +49 -798
  375. package/src/stores/EditorSDLCState.ts +1 -1
  376. package/src/stores/EditorStore.ts +98 -323
  377. package/src/stores/EditorStoreTestUtils.ts +0 -2
  378. package/src/stores/EditorTabManagerState.ts +90 -25
  379. package/src/stores/EmbeddedQueryBuilderState.ts +11 -11
  380. package/src/stores/ExplorerTreeState.ts +2 -4
  381. package/src/stores/GraphEditFormModeState.ts +605 -0
  382. package/src/stores/GraphEditGrammarModeState.ts +512 -0
  383. package/src/stores/GraphEditorMode.ts +77 -0
  384. package/src/stores/LegendStudioApplicationPlugin.ts +14 -4
  385. package/src/stores/LegendStudioBaseStore.ts +35 -11
  386. package/src/stores/editor/NewElementState.ts +36 -20
  387. package/src/stores/editor/StandardEditorMode.ts +1 -1
  388. package/src/stores/editor-state/ExternalFormatState.ts +1 -1
  389. package/src/stores/editor-state/FileGenerationState.ts +1 -1
  390. package/src/stores/editor-state/GrammarTextEditorState.ts +4 -5
  391. package/src/stores/editor-state/GraphGenerationState.ts +6 -2
  392. package/src/stores/editor-state/ModelImporterState.ts +1 -1
  393. package/src/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.ts +1 -1
  394. package/src/stores/editor-state/element-editor-state/ElementFileGenerationState.ts +5 -1
  395. package/src/stores/editor-state/element-editor-state/connection/DatabaseBuilderState.ts +12 -5
  396. package/src/stores/editor-state/element-editor-state/external-format/DSL_ExternalFormat_SchemaSetEditorState.ts +1 -1
  397. package/src/stores/editor-state/element-editor-state/mapping/MappingEditorState.ts +1 -3
  398. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.ts +1 -1
  399. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +12 -21
  400. package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +6 -15
  401. package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +7 -20
  402. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -1
  403. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +3 -3
  404. package/src/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.ts +1 -1
  405. package/src/stores/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +1 -1
  406. package/src/stores/editor-state/project-configuration-editor-state/ProjectDependencyEditorState.ts +1 -1
  407. package/src/stores/project-viewer/ProjectViewerEditorMode.ts +1 -1
  408. package/src/stores/project-viewer/ProjectViewerStore.ts +14 -25
  409. package/src/stores/sidebar-state/BulkServiceRegistrationState.ts +1 -1
  410. package/src/stores/sidebar-state/LocalChangesState.ts +57 -16
  411. package/src/stores/sidebar-state/ProjectOverviewState.ts +2 -2
  412. package/src/stores/sidebar-state/WorkflowManagerState.ts +1 -1
  413. package/src/stores/sidebar-state/WorkspaceReviewState.ts +2 -2
  414. package/src/stores/sidebar-state/WorkspaceSyncState.ts +3 -2
  415. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +2 -2
  416. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +1 -1
  417. package/src/stores/workspace-review/WorkspaceReviewStore.ts +1 -1
  418. package/src/stores/workspace-setup/WorkspaceSetupStore.ts +2 -2
  419. package/tsconfig.json +13 -11
  420. package/tsconfig.package.json +1 -2
  421. package/lib/stores/LegendStudioAppEvent.d.ts.map +0 -1
  422. package/lib/stores/LegendStudioAppEvent.js.map +0 -1
  423. package/lib/stores/LegendStudioApplicationNavigationContext.d.ts.map +0 -1
  424. package/lib/stores/LegendStudioApplicationNavigationContext.js.map +0 -1
  425. package/lib/stores/LegendStudioCodeSnippets.d.ts.map +0 -1
  426. package/lib/stores/LegendStudioCodeSnippets.js.map +0 -1
  427. package/lib/stores/LegendStudioCommand.d.ts.map +0 -1
  428. package/lib/stores/LegendStudioCommand.js.map +0 -1
  429. package/lib/stores/LegendStudioDocumentation.d.ts.map +0 -1
  430. package/lib/stores/LegendStudioDocumentation.js.map +0 -1
  431. package/lib/stores/LegendStudioEventService.d.ts.map +0 -1
  432. package/lib/stores/LegendStudioEventService.js.map +0 -1
  433. package/lib/stores/LegendStudioRouter.d.ts.map +0 -1
  434. package/lib/stores/LegendStudioRouter.js.map +0 -1
  435. package/lib/stores/LegendStudioStorage.d.ts.map +0 -1
  436. package/lib/stores/LegendStudioStorage.js.map +0 -1
  437. package/lib/stores/LegendStudioTelemetry.d.ts.map +0 -1
  438. package/lib/stores/LegendStudioTelemetry.js +0 -37
  439. package/lib/stores/LegendStudioTelemetry.js.map +0 -1
  440. /package/lib/{stores → application}/LegendStudioApplicationNavigationContext.d.ts +0 -0
  441. /package/lib/{stores → application}/LegendStudioApplicationNavigationContext.js +0 -0
  442. /package/lib/{stores → application}/LegendStudioCommand.d.ts +0 -0
  443. /package/lib/{stores → application}/LegendStudioCommand.js +0 -0
  444. /package/lib/{stores → application}/LegendStudioDocumentation.d.ts +0 -0
  445. /package/lib/{stores → application}/LegendStudioDocumentation.js +0 -0
  446. /package/src/{stores → application}/LegendStudioApplicationNavigationContext.ts +0 -0
  447. /package/src/{stores → application}/LegendStudioCommand.ts +0 -0
  448. /package/src/{stores → application}/LegendStudioDocumentation.ts +0 -0
  449. /package/src/{stores/LegendStudioAppEvent.ts → application/LegendStudioEvent.ts} +0 -0
  450. /package/src/stores/{LegendStudioCodeSnippets.ts → Core_CodeSnippets.ts} +0 -0
@@ -0,0 +1,370 @@
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
+ import { isElementReadOnly, Package, GRAPH_MANAGER_EVENT, EngineError, GraphBuilderError, CompilationError, extractSourceInformationCoordinates, reportGraphAnalytics, } from '@finos/legend-graph';
17
+ import { isNonNullable, assertErrorThrown, LogEvent, ActionState, assertType, guaranteeNonNullable, StopWatch, } from '@finos/legend-shared';
18
+ import { flowResult } from 'mobx';
19
+ import { FormLocalChangesState } from './sidebar-state/LocalChangesState.js';
20
+ import { GlobalTestRunnerState } from './sidebar-state/testable/GlobalTestRunnerState.js';
21
+ import { CHANGE_DETECTION_EVENT } from './ChangeDetectionEvent.js';
22
+ import { GraphCompilationOutcome } from './EditorGraphState.js';
23
+ import { GRAPH_EDITOR_MODE, AUX_PANEL_MODE } from './EditorConfig.js';
24
+ import { graph_addElement, graph_deleteElement, graph_deleteOwnElement, graph_dispose, graph_renameElement, } from './shared/modifier/GraphModifierHelper.js';
25
+ import { ElementEditorState } from './editor-state/element-editor-state/ElementEditorState.js';
26
+ import { LegendStudioTelemetryHelper } from '../application/LegendStudioTelemetryHelper.js';
27
+ import { GraphEditorMode } from './GraphEditorMode.js';
28
+ export class GraphEditFormModeState extends GraphEditorMode {
29
+ *initialize() {
30
+ this.editorStore.localChangesState = new FormLocalChangesState(this.editorStore, this.editorStore.sdlcState);
31
+ this.editorStore.graphState.clearProblems();
32
+ if (this.editorStore.graphState.mostRecentCompilationOutcome ===
33
+ GraphCompilationOutcome.SUCCEEDED) {
34
+ yield flowResult(this.editorStore.graphEditorMode.updateGraphAndApplication(this.editorStore.graphState.compilationResultEntities));
35
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(this.editorStore.graphEditorMode.getCurrentGraphHash());
36
+ this.editorStore.graphState.compilationResultEntities = [];
37
+ if (this.editorStore.tabManagerState.currentTab) {
38
+ this.editorStore.tabManagerState.openTab(this.editorStore.tabManagerState.currentTab);
39
+ }
40
+ }
41
+ }
42
+ *addElement(element, packagePath, openAfterCreate) {
43
+ graph_addElement(this.editorStore.graphManagerState.graph, element, packagePath, this.editorStore.changeDetectionState.observerContext);
44
+ this.editorStore.explorerTreeState.reprocess();
45
+ if (openAfterCreate) {
46
+ this.openElement(element);
47
+ }
48
+ }
49
+ *deleteElement(element) {
50
+ if (this.editorStore.graphState.checkIfApplicationUpdateOperationIsRunning() ||
51
+ isElementReadOnly(element)) {
52
+ return;
53
+ }
54
+ const generatedChildrenElements = (this.editorStore.graphState.graphGenerationState.generatedEntities.get(element.path) ?? [])
55
+ .map((genChildEntity) => this.editorStore.graphManagerState.graph.generationModel.allOwnElements.find((genElement) => genElement.path === genChildEntity.path))
56
+ .filter(isNonNullable);
57
+ const elementsToDelete = [element, ...generatedChildrenElements];
58
+ this.editorStore.tabManagerState.tabs =
59
+ this.editorStore.tabManagerState.tabs.filter((elementState) => {
60
+ if (elementState instanceof ElementEditorState) {
61
+ if (elementState === this.editorStore.tabManagerState.currentTab) {
62
+ // avoid closing the current editor state as this will be taken care of
63
+ // by the `closeState()` call later
64
+ return true;
65
+ }
66
+ return !elementsToDelete.includes(elementState.element);
67
+ }
68
+ return true;
69
+ });
70
+ if (this.editorStore.tabManagerState.currentTab &&
71
+ this.editorStore.tabManagerState.currentTab instanceof
72
+ ElementEditorState &&
73
+ elementsToDelete.includes(this.editorStore.tabManagerState.currentTab.element)) {
74
+ this.editorStore.tabManagerState.closeTab(this.editorStore.tabManagerState.currentTab);
75
+ }
76
+ // remove/retire the element's generated children before remove the element itself
77
+ generatedChildrenElements.forEach((el) => graph_deleteOwnElement(this.editorStore.graphManagerState.graph.generationModel, el));
78
+ graph_deleteElement(this.editorStore.graphManagerState.graph, element);
79
+ const extraElementEditorPostDeleteActions = this.editorStore.pluginManager
80
+ .getApplicationPlugins()
81
+ .flatMap((plugin) => plugin.getExtraElementEditorPostDeleteActions?.() ?? []);
82
+ for (const postDeleteAction of extraElementEditorPostDeleteActions) {
83
+ postDeleteAction(this.editorStore, element);
84
+ }
85
+ // reprocess project explorer tree
86
+ this.editorStore.explorerTreeState.reprocess();
87
+ // recompile
88
+ yield flowResult(this.globalCompile({
89
+ message: `Can't compile graph after deletion and error cannot be located in form mode. Redirected to text mode for debugging`,
90
+ }));
91
+ }
92
+ *renameElement(element, newPath) {
93
+ if (isElementReadOnly(element)) {
94
+ return;
95
+ }
96
+ graph_renameElement(this.editorStore.graphManagerState.graph, element, newPath, this.editorStore.changeDetectionState.observerContext);
97
+ const extraElementEditorPostRenameActions = this.editorStore.pluginManager
98
+ .getApplicationPlugins()
99
+ .flatMap((plugin) => plugin.getExtraElementEditorPostRenameActions?.() ?? []);
100
+ for (const postRenameAction of extraElementEditorPostRenameActions) {
101
+ postRenameAction(this.editorStore, element);
102
+ }
103
+ // reprocess project explorer tree
104
+ this.editorStore.explorerTreeState.reprocess();
105
+ if (element instanceof Package) {
106
+ this.editorStore.explorerTreeState.openNode(element);
107
+ }
108
+ else if (element.package) {
109
+ this.editorStore.explorerTreeState.openNode(element.package);
110
+ }
111
+ // recompile
112
+ yield flowResult(this.globalCompile({
113
+ message: `Can't compile graph after renaming and error cannot be located in form mode. Redirected to text mode for debugging`,
114
+ }));
115
+ }
116
+ getCurrentGraphHash() {
117
+ return this.editorStore.changeDetectionState.currentGraphHash;
118
+ }
119
+ get mode() {
120
+ return GRAPH_EDITOR_MODE.FORM;
121
+ }
122
+ /**
123
+ * NOTE: IMPORTANT! This method is both a savior and a sinner. It helps reprocessing the graph state to use a new graph
124
+ * built from the new model context data, it resets the graph properly. The bane here is that resetting the graph properly is
125
+ * not trivial, for example, in the cleanup phase, there are things we want to re-use, such as the one-time processed system
126
+ * metamodels or the `reusable` metamodels from project dependencies. There are also explorer states like the package tree,
127
+ * opened tabs, change detection, etc. to take care of. There are a lot of potential pitfalls. For these, we will add the
128
+ * marker:
129
+ *
130
+ * @risk memory-leak
131
+ *
132
+ * to indicate we should check carefully these pieces when we detect memory issue as it might still
133
+ * be referring to the old graph
134
+ *
135
+ * In the past, we have found that there are a few potential root causes for memory leak:
136
+ * 1. State management Mobx allows references, as such, it is sometimes hard to trace down which references can cause problem
137
+ * We have to understand that the behind this updater is very simple (replace), yet to do it cleanly is not easy, since
138
+ * so far it is tempting to refer to elements in the graph from various editor state. On top of that, change detection
139
+ * sometimes obfuscate the investigation but we have cleared it out with explicit disposing of reaction
140
+ * 2. Reusable models, at this point in time, we haven't completed stabilize the logic for handling generated models, as well
141
+ * as dependencies, we intended to save computation time by reusing these while updating the graph. This can pose potential
142
+ * danger as well. Beware the way when we start to make system/project dependencies references elements of current graph
143
+ * e.g. when we have a computed value in a immutable class that get all subclasses, etc.
144
+ * 3. We reprocess editor states to ensure good UX, e.g. find tabs to keep open, find tree nodes to expand, etc.
145
+ * after updating the graph. These in our experience is the **MOST COMMON** source of memory leak. It is actually
146
+ * quite predictable since structures like tabs and tree node embeds graph data, which are references to the old graph
147
+ *
148
+ * NOTE: One big obfuscating factor is overlapping graph refresh. Sometimes, we observed that calling this update graph
149
+ * method multiple times can throws Mobx off and causes reusing change detection state to cause memory-leak. As such,
150
+ * we have blocked the possibility of calling compilation/graph-update/generation simultaneously
151
+ *
152
+ * A note on how to debug memory-leak issue:
153
+ * 1. Open browser Memory monitor
154
+ * 2. Go to text mode and compile multiple times (triggering graph update)
155
+ * 3. Try to force garbage collection, if we see memory goes up after while, it's pretty clear that this is memory-leak
156
+ * (note that since we disallow stacking multiple compilation and graph update, we have simplify the detection a lot)
157
+ * See https://auth0.com/blog/four-types-of-leaks-in-your-javascript-code-and-how-to-get-rid-of-them/
158
+ */
159
+ *updateGraphAndApplication(entities) {
160
+ const startTime = Date.now();
161
+ this.editorStore.graphState.isUpdatingApplication = true;
162
+ this.editorStore.graphState.isUpdatingGraph = true;
163
+ try {
164
+ const newGraph = this.editorStore.graphManagerState.createEmptyGraph();
165
+ yield flowResult(this.editorStore.graphState.rebuildDependencies(newGraph));
166
+ /**
167
+ * Backup and editor states info before resetting. Here we store the element paths of the
168
+ * elements editors as element paths don't refer to the actual graph. We can find the element
169
+ * from the new graph that is built by using element path and can reprocess the element editor states.
170
+ * The other kind of editors we reprocess are file generation editors, we store them as is as they don't
171
+ * hold any reference to the actual graph.
172
+ */
173
+ const openedTabPaths = [];
174
+ this.editorStore.tabManagerState.tabs.forEach((state) => {
175
+ if (state instanceof ElementEditorState) {
176
+ openedTabPaths.push(state.elementPath);
177
+ }
178
+ });
179
+ // Only stores editor state for file generation editors as they don't hold any references to the
180
+ // actual graph.
181
+ const currentTabState = this.editorStore.tabManagerState.currentTab instanceof
182
+ ElementEditorState
183
+ ? undefined
184
+ : this.editorStore.tabManagerState.currentTab;
185
+ const currentTabElementPath = this.editorStore.tabManagerState.currentTab instanceof
186
+ ElementEditorState
187
+ ? this.editorStore.tabManagerState.currentTab.elementPath
188
+ : undefined;
189
+ /**
190
+ * We remove the current editor state so that we no longer let React displays the element that belongs to the old graph
191
+ * NOTE: this causes an UI flash, but this is in many way, acceptable since the user probably should know that we are
192
+ * refreshing the memory graph anyway.
193
+ *
194
+ * If this is really bothering, we can handle it by building mocked replica of the current editor state using stub element
195
+ * e.g. if the current editor is a class, we stub the class, create a new class editor state around it and copy over
196
+ * navigation information, etc.
197
+ */
198
+ this.editorStore.tabManagerState.closeAllTabs();
199
+ this.editorStore.changeDetectionState.stop(); // stop change detection before disposing hash
200
+ yield flowResult(graph_dispose(this.editorStore.graphManagerState.graph));
201
+ const graphBuildState = ActionState.create();
202
+ yield this.editorStore.graphManagerState.graphManager.buildGraph(newGraph, entities, graphBuildState, {
203
+ TEMPORARY__preserveSectionIndex: this.editorStore.applicationStore.config.options
204
+ .TEMPORARY__preserveSectionIndex,
205
+ strict: this.editorStore.graphState.enableStrictMode,
206
+ });
207
+ // Activity States
208
+ this.editorStore.globalTestRunnerState = new GlobalTestRunnerState(this.editorStore, this.editorStore.sdlcState);
209
+ // NOTE: build model generation entities every-time we rebuild the graph - should we do this?
210
+ const generationsBuildState = ActionState.create();
211
+ yield this.editorStore.graphManagerState.graphManager.buildGenerations(newGraph, this.editorStore.graphState.graphGenerationState.generatedEntities, generationsBuildState);
212
+ this.editorStore.graphManagerState.graph = newGraph;
213
+ // NOTE: here we don't want to modify the current graph build state directly
214
+ // instead, we quietly run this in the background and then sync it with the current build state
215
+ this.editorStore.graphManagerState.graphBuildState.sync(graphBuildState);
216
+ this.editorStore.graphManagerState.generationsBuildState.sync(generationsBuildState);
217
+ this.editorStore.explorerTreeState.reprocess();
218
+ /**
219
+ * Re-build the editor states which were opened before from the information we have stored before
220
+ * creating the new graph
221
+ */
222
+ this.editorStore.tabManagerState.recoverTabs(openedTabPaths, currentTabState, currentTabElementPath);
223
+ this.editorStore.applicationStore.logService.info(LogEvent.create(GRAPH_MANAGER_EVENT.UPDATE_AND_REBUILD_GRAPH__SUCCESS), '[TOTAL]', Date.now() - startTime, 'ms');
224
+ this.editorStore.graphState.isUpdatingGraph = false;
225
+ // ======= (RE)START CHANGE DETECTION =======
226
+ yield flowResult(this.editorStore.changeDetectionState.observeGraph());
227
+ yield this.editorStore.changeDetectionState.preComputeGraphElementHashes();
228
+ this.editorStore.changeDetectionState.start();
229
+ this.editorStore.applicationStore.logService.info(LogEvent.create(CHANGE_DETECTION_EVENT.CHANGE_DETECTION_RESTART__SUCCESS), '[ASYNC]');
230
+ // ======= FINISHED (RE)START CHANGE DETECTION =======
231
+ }
232
+ catch (error) {
233
+ assertErrorThrown(error);
234
+ this.editorStore.applicationStore.logService.error(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE), error);
235
+ this.editorStore.changeDetectionState.stop(true); // force stop change detection
236
+ this.editorStore.graphState.isUpdatingGraph = false;
237
+ // Note: in the future this function will probably be ideal to refactor when we have different classes for each mode
238
+ // as we would handle this error differently in `text` mode and `form` mode.
239
+ if (error instanceof GraphBuilderError) {
240
+ this.editorStore.applicationStore.alertService.setBlockingAlert({
241
+ message: `Can't build graph: ${error.message}`,
242
+ prompt: 'Refreshing full application...',
243
+ showLoading: true,
244
+ });
245
+ this.editorStore.tabManagerState.closeAllTabs();
246
+ this.editorStore.cleanUp();
247
+ yield flowResult(this.editorStore.buildGraph(entities));
248
+ }
249
+ }
250
+ finally {
251
+ this.editorStore.graphState.isUpdatingApplication = false;
252
+ this.editorStore.applicationStore.alertService.setBlockingAlert(undefined);
253
+ }
254
+ }
255
+ // TODO: when we support showing multiple notifications, we can take this options out as the only users of this
256
+ // is delete element flow, where we want to say `re-compiling graph after deletion`, but because sometimes, compilation
257
+ // is so fast, the message flashes, so we want to combine with the message in this method
258
+ *globalCompile(options) {
259
+ if (this.editorStore.graphState.checkIfApplicationUpdateOperationIsRunning()) {
260
+ this.editorStore.graphState.setMostRecentCompilationOutcome(GraphCompilationOutcome.SKIPPED);
261
+ return;
262
+ }
263
+ const stopWatch = new StopWatch();
264
+ const report = reportGraphAnalytics(this.editorStore.graphManagerState.graph);
265
+ LegendStudioTelemetryHelper.logEvent_GraphCompilationLaunched(this.editorStore.applicationStore.telemetryService);
266
+ const currentGraphHash = this.getCurrentGraphHash();
267
+ try {
268
+ this.editorStore.graphState.isRunningGlobalCompile = true;
269
+ this.editorStore.graphState.clearProblems();
270
+ if (options?.openConsole) {
271
+ this.editorStore.setActiveAuxPanelMode(AUX_PANEL_MODE.CONSOLE);
272
+ }
273
+ // NOTE: here we always keep the source information while compiling in form mode
274
+ // so that the form parts where the user interacted with (i.e. where the lamdbas source
275
+ // information are populated), can reveal compilation error. If compilation errors
276
+ // show up in other parts, the user will get redirected to text-mode
277
+ const compilationResult = (yield this.editorStore.graphManagerState.graphManager.compileGraph(this.editorStore.graphManagerState.graph, {
278
+ keepSourceInformation: true,
279
+ }, report));
280
+ this.editorStore.graphState.warnings = compilationResult.warnings
281
+ ? this.editorStore.graphState.TEMPORARY__removeDependencyProblems(compilationResult.warnings)
282
+ : [];
283
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(currentGraphHash);
284
+ if (!options?.disableNotificationOnSuccess) {
285
+ if (this.editorStore.graphState.warnings.length) {
286
+ this.editorStore.applicationStore.notificationService.notifyWarning(`Compilation suceeded with warnings`);
287
+ }
288
+ else {
289
+ if (!options?.disableNotificationOnSuccess) {
290
+ this.editorStore.applicationStore.notificationService.notifySuccess('Compiled successfully');
291
+ }
292
+ }
293
+ }
294
+ report.timings =
295
+ this.editorStore.applicationStore.timeService.finalizeTimingsRecord(stopWatch, report.timings);
296
+ LegendStudioTelemetryHelper.logEvent_GraphCompilationSucceeded(this.editorStore.applicationStore.telemetryService, report);
297
+ this.editorStore.graphState.setMostRecentCompilationOutcome(GraphCompilationOutcome.SUCCEEDED);
298
+ }
299
+ catch (error) {
300
+ assertErrorThrown(error);
301
+ // TODO: we probably should make this pattern of error the handling for all other exceptions in the codebase
302
+ // i.e. there should be a catch-all handler (we can use if-else construct to check error types)
303
+ assertType(error, EngineError, `Unhandled exception:\n${error}`);
304
+ this.editorStore.applicationStore.logService.error(LogEvent.create(GRAPH_MANAGER_EVENT.COMPILATION_FAILURE), error);
305
+ this.editorStore.graphState.setMostRecentCompilationGraphHash(currentGraphHash);
306
+ let fallbackToTextModeForDebugging = true;
307
+ // if compilation failed, we try to reveal the error in form mode,
308
+ // if even this fail, we will fall back to show it in text mode
309
+ if (error instanceof CompilationError) {
310
+ const errorCoordinates = extractSourceInformationCoordinates(error.sourceInformation);
311
+ if (errorCoordinates) {
312
+ const element = this.editorStore.graphManagerState.graph.getNullableElement(guaranteeNonNullable(errorCoordinates[0], `Can't reveal compilation error: element path is missing`), false);
313
+ if (element) {
314
+ this.openElement(element);
315
+ if (this.editorStore.tabManagerState.currentTab instanceof
316
+ ElementEditorState) {
317
+ // check if we can reveal the error in the element editor state
318
+ fallbackToTextModeForDebugging =
319
+ !this.editorStore.tabManagerState.currentTab.revealCompilationError(error);
320
+ }
321
+ }
322
+ }
323
+ }
324
+ // decide if we need to fall back to text mode for debugging
325
+ if (fallbackToTextModeForDebugging) {
326
+ // TODO: when we support showing multiple notifications, we can split this into 2
327
+ this.editorStore.applicationStore.notificationService.notifyWarning(options?.message ??
328
+ 'Compilation failed and error cannot be located in form mode. Redirected to text mode for debugging.');
329
+ this.editorStore.graphState.setMostRecentCompilationOutcome(GraphCompilationOutcome.FAILED);
330
+ yield flowResult(this.editorStore.switchModes(GRAPH_EDITOR_MODE.GRAMMAR_TEXT, {
331
+ isCompilationFailure: true,
332
+ }));
333
+ }
334
+ else {
335
+ this.editorStore.graphState.error = error;
336
+ this.editorStore.applicationStore.notificationService.notifyWarning(`Compilation failed: ${error.message}`);
337
+ this.editorStore.graphState.setMostRecentCompilationOutcome(GraphCompilationOutcome.FAILED);
338
+ }
339
+ }
340
+ finally {
341
+ this.editorStore.graphState.isRunningGlobalCompile = false;
342
+ }
343
+ }
344
+ goToProblem(problem) {
345
+ return;
346
+ }
347
+ *onLeave() {
348
+ return;
349
+ }
350
+ *cleanupBeforeEntering(fallbackOptions) {
351
+ return;
352
+ }
353
+ *handleCleanupFailure(error) {
354
+ return;
355
+ }
356
+ openElement(element) {
357
+ if (!(element instanceof Package)) {
358
+ const existingElementState = this.editorStore.tabManagerState.tabs.find((state) => state instanceof ElementEditorState && state.element === element);
359
+ const newTab = existingElementState ??
360
+ this.editorStore.tabManagerState.createElementEditorState(element);
361
+ if (newTab) {
362
+ this.editorStore.tabManagerState.openTab(newTab);
363
+ }
364
+ else {
365
+ this.editorStore.applicationStore.notificationService.notifyWarning(`Can't open editor for element '${element.path}'`);
366
+ }
367
+ }
368
+ }
369
+ }
370
+ //# sourceMappingURL=GraphEditFormModeState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphEditFormModeState.js","sourceRoot":"","sources":["../../src/stores/GraphEditFormModeState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
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
+ import { type PackageableElement, type TextCompilationResult, type GraphManagerOperationReport } from '@finos/legend-graph';
17
+ import { type GeneratorFn } from '@finos/legend-shared';
18
+ import type { Entity } from '@finos/legend-storage';
19
+ import { GrammarTextEditorState } from './editor-state/GrammarTextEditorState.js';
20
+ import type { EditorStore } from './EditorStore.js';
21
+ import { type Problem } from './EditorGraphState.js';
22
+ import { GRAPH_EDITOR_MODE } from './EditorConfig.js';
23
+ import { GraphEditorMode } from './GraphEditorMode.js';
24
+ export declare class GraphEditGrammarModeState extends GraphEditorMode {
25
+ grammarTextEditorState: GrammarTextEditorState;
26
+ constructor(editorStore: EditorStore);
27
+ computeEntitiesFromCurrentGrammar(): Promise<Entity[]>;
28
+ initialize(isFallback?: boolean): GeneratorFn<void>;
29
+ setGraphGrammarFromEntites(entities: Entity[]): GeneratorFn<void>;
30
+ setGraphGrammar(): GeneratorFn<void>;
31
+ compileText(options?: {
32
+ onError?: () => void;
33
+ }, report?: GraphManagerOperationReport): GeneratorFn<TextCompilationResult>;
34
+ getCurrentGraphHash(): string;
35
+ addElement(element: PackageableElement, packagePath: string | undefined, openAfterCreate: boolean): GeneratorFn<void>;
36
+ deleteElement(element: PackageableElement): GeneratorFn<void>;
37
+ renameElement(element: PackageableElement, newPath: string): GeneratorFn<void>;
38
+ get mode(): GRAPH_EDITOR_MODE;
39
+ /**
40
+ * Creates a new explorer tree state when compiling in text mode. It resets the explorer state properly
41
+ * after the new graph is built. It tries to maintain the explorer state similar to what it was before compilation.
42
+ * To achieve that we store node ids of the opened nodes before creating a new explorer state. After creating a
43
+ * new state we open the nodes which were opened before so that user see the same explorer state as before.
44
+ */
45
+ reprocessExplorerTreeInTextMode(): void;
46
+ updateGraphAndApplication(entities: Entity[]): GeneratorFn<void>;
47
+ globalCompile(options?: {
48
+ ignoreBlocking?: boolean | undefined;
49
+ suppressCompilationFailureMessage?: boolean | undefined;
50
+ disableNotificationOnSuccess?: boolean | undefined;
51
+ openConsole?: boolean;
52
+ }): GeneratorFn<void>;
53
+ goToProblem(problem: Problem): void;
54
+ onLeave(fallbackOptions?: {
55
+ isCompilationFailure?: boolean;
56
+ isGraphBuildFailure?: boolean;
57
+ }): GeneratorFn<void>;
58
+ handleCleanupFailure(error: unknown): GeneratorFn<void>;
59
+ cleanupBeforeEntering(fallbackOptions?: {
60
+ isCompilationFailure?: boolean;
61
+ isGraphBuildFailure?: boolean;
62
+ }): GeneratorFn<void>;
63
+ openElement(element: PackageableElement): void;
64
+ }
65
+ //# sourceMappingURL=GraphEditGrammarModeState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphEditGrammarModeState.d.ts","sourceRoot":"","sources":["../../src/stores/GraphEditGrammarModeState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,qBAAqB,EAG1B,KAAK,2BAA2B,EAEjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,WAAW,EAKjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAkB,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,sBAAsB,EAAE,sBAAsB,CAAC;gBAEnC,WAAW,EAAE,WAAW;IAW9B,iCAAiC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAM3D,UAAU,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAsCnD,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IAUjE,eAAe,IAAI,WAAW,CAAC,IAAI,CAAC;IAUpC,WAAW,CACV,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB,EACD,MAAM,CAAC,EAAE,2BAA2B,GACnC,WAAW,CAAC,qBAAqB,CAAC;IAQrC,mBAAmB,IAAI,MAAM;IAI5B,UAAU,CACT,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,eAAe,EAAE,OAAO,GACvB,WAAW,CAAC,IAAI,CAAC;IAInB,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC;IAI7D,aAAa,CACZ,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,GACd,WAAW,CAAC,IAAI,CAAC;IAIpB,IAAI,IAAI,IAAI,iBAAiB,CAE5B;IAED;;;;;OAKG;IACH,+BAA+B,IAAI,IAAI;IAiCtC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC;IA2DhE,aAAa,CAAC,OAAO,CAAC,EAAE;QACvB,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACrC,iCAAiC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACxD,4BAA4B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QACnD,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,GAAG,WAAW,CAAC,IAAI,CAAC;IA8GrB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC,OAAO,CAAC,eAAe,CAAC,EAAE;QACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,WAAW,CAAC,IAAI,CAAC;IAuCpB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAwDvD,qBAAqB,CAAC,eAAe,CAAC,EAAE;QACvC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,WAAW,CAAC,IAAI,CAAC;IAcrB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAK/C"}