@finos/legend-application-studio 20.1.2 → 20.2.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 (311) hide show
  1. package/lib/components/Core_LegendStudioApplicationPlugin.js +13 -13
  2. package/lib/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.js +4 -4
  3. package/lib/components/DSL_ExternalFormat_LegendStudioDocumentation.d.ts +2 -2
  4. package/lib/components/DSL_ExternalFormat_LegendStudioDocumentation.js +2 -2
  5. package/lib/components/LegendStudioApplication.d.ts.map +1 -1
  6. package/lib/components/LegendStudioApplication.js +19 -19
  7. package/lib/components/LegendStudioApplication.js.map +1 -1
  8. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  9. package/lib/components/editor/command-center/ProjectSearchCommand.js +1 -1
  10. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  11. package/lib/components/editor/edit-panel/EditPanel.d.ts.map +1 -1
  12. package/lib/components/editor/edit-panel/EditPanel.js +52 -73
  13. package/lib/components/editor/edit-panel/EditPanel.js.map +1 -1
  14. package/lib/components/editor/edit-panel/FileGenerationViewer.js +5 -5
  15. package/lib/components/editor/edit-panel/FileGenerationViewer.js.map +1 -1
  16. package/lib/components/editor/edit-panel/FunctionEditor.js +3 -3
  17. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  18. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.d.ts.map +1 -1
  19. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js +3 -3
  20. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js.map +1 -1
  21. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  22. package/lib/components/editor/edit-panel/GrammarTextEditor.js +14 -14
  23. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  24. package/lib/components/editor/edit-panel/ModelImporter.js +1 -1
  25. package/lib/components/editor/edit-panel/ModelImporter.js.map +1 -1
  26. package/lib/components/editor/edit-panel/RuntimeEditor.d.ts.map +1 -1
  27. package/lib/components/editor/edit-panel/RuntimeEditor.js +4 -4
  28. package/lib/components/editor/edit-panel/RuntimeEditor.js.map +1 -1
  29. package/lib/components/editor/edit-panel/UnsupportedElementEditor.d.ts.map +1 -1
  30. package/lib/components/editor/edit-panel/UnsupportedElementEditor.js +1 -1
  31. package/lib/components/editor/edit-panel/UnsupportedElementEditor.js.map +1 -1
  32. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js +1 -1
  33. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js.map +1 -1
  34. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +3 -3
  35. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  36. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  37. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +3 -3
  38. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  39. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js +1 -1
  40. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.js.map +1 -1
  41. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  42. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js +3 -3
  43. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js.map +1 -1
  44. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.d.ts.map +1 -1
  45. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js +1 -1
  46. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js.map +1 -1
  47. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js +3 -3
  48. package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.js.map +1 -1
  49. package/lib/components/editor/edit-panel/mapping-editor/ClassMappingEditor.js +1 -1
  50. package/lib/components/editor/edit-panel/mapping-editor/ClassMappingEditor.js.map +1 -1
  51. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js +2 -2
  52. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  53. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js +1 -1
  54. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  55. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +2 -2
  56. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  57. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js +2 -2
  58. package/lib/components/editor/edit-panel/mapping-editor/MappingEditor.js.map +1 -1
  59. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js +5 -5
  60. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js.map +1 -1
  61. package/lib/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.js +3 -3
  62. package/lib/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.js.map +1 -1
  63. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +1 -1
  64. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
  65. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js +3 -3
  66. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  67. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js +3 -3
  68. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.js.map +1 -1
  69. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.d.ts.map +1 -1
  70. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js +11 -9
  71. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  72. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js +2 -2
  73. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  74. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js +1 -1
  75. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.js.map +1 -1
  76. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.d.ts.map +1 -1
  77. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js +2 -2
  78. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js.map +1 -1
  79. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.d.ts.map +1 -1
  80. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +5 -4
  81. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  82. package/lib/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.d.ts.map +1 -1
  83. package/lib/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.js +1 -1
  84. package/lib/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.js.map +1 -1
  85. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  86. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js +10 -3
  87. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  88. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts.map +1 -1
  89. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +2 -2
  90. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  91. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
  92. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +8 -8
  93. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  94. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts.map +1 -1
  95. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +2 -2
  96. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  97. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.d.ts.map +1 -1
  98. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js +1 -1
  99. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js.map +1 -1
  100. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js +1 -1
  101. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js.map +1 -1
  102. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js +1 -1
  103. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js.map +1 -1
  104. package/lib/components/editor/edit-panel/uml-editor/UMLEditor.d.ts.map +1 -1
  105. package/lib/components/editor/edit-panel/uml-editor/UMLEditor.js +1 -1
  106. package/lib/components/editor/edit-panel/uml-editor/UMLEditor.js.map +1 -1
  107. package/lib/components/editor/side-bar/Explorer.js +5 -5
  108. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  109. package/lib/components/editor/side-bar/LocalChanges.js +6 -6
  110. package/lib/components/editor/side-bar/LocalChanges.js.map +1 -1
  111. package/lib/components/editor/side-bar/WorkspaceReview.js +4 -4
  112. package/lib/components/editor/side-bar/WorkspaceReview.js.map +1 -1
  113. package/lib/components/editor/side-bar/WorkspaceSyncConflictResolver.js +1 -1
  114. package/lib/components/editor/side-bar/WorkspaceSyncConflictResolver.js.map +1 -1
  115. package/lib/components/editor/side-bar/WorkspaceUpdateConflictResolver.js +6 -6
  116. package/lib/components/editor/side-bar/WorkspaceUpdateConflictResolver.js.map +1 -1
  117. package/lib/components/editor/side-bar/WorkspaceUpdater.js +6 -6
  118. package/lib/components/editor/side-bar/WorkspaceUpdater.js.map +1 -1
  119. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts.map +1 -1
  120. package/lib/components/workspace-review/WorkspaceReviewPanel.js +16 -16
  121. package/lib/components/workspace-review/WorkspaceReviewPanel.js.map +1 -1
  122. package/lib/components/workspace-review/WorkspaceReviewSideBar.js +4 -4
  123. package/lib/components/workspace-review/WorkspaceReviewSideBar.js.map +1 -1
  124. package/lib/index.css +2 -2
  125. package/lib/index.css.map +1 -1
  126. package/lib/index.d.ts +1 -0
  127. package/lib/index.d.ts.map +1 -1
  128. package/lib/index.js +1 -0
  129. package/lib/index.js.map +1 -1
  130. package/lib/package.json +1 -1
  131. package/lib/stores/EditorGraphState.d.ts +1 -1
  132. package/lib/stores/EditorGraphState.d.ts.map +1 -1
  133. package/lib/stores/EditorGraphState.js +24 -44
  134. package/lib/stores/EditorGraphState.js.map +1 -1
  135. package/lib/stores/EditorSDLCState.js +3 -3
  136. package/lib/stores/EditorSDLCState.js.map +1 -1
  137. package/lib/stores/EditorStore.d.ts +19 -42
  138. package/lib/stores/EditorStore.d.ts.map +1 -1
  139. package/lib/stores/EditorStore.js +42 -223
  140. package/lib/stores/EditorStore.js.map +1 -1
  141. package/lib/stores/EditorTabManagerState.d.ts +56 -0
  142. package/lib/stores/EditorTabManagerState.d.ts.map +1 -0
  143. package/lib/stores/EditorTabManagerState.js +144 -0
  144. package/lib/stores/EditorTabManagerState.js.map +1 -0
  145. package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
  146. package/lib/stores/ExplorerTreeState.js +1 -1
  147. package/lib/stores/ExplorerTreeState.js.map +1 -1
  148. package/lib/stores/LegendStudioDocumentation.d.ts +14 -14
  149. package/lib/stores/LegendStudioDocumentation.js +14 -14
  150. package/lib/stores/editor-state/EditorState.d.ts +7 -6
  151. package/lib/stores/editor-state/EditorState.d.ts.map +1 -1
  152. package/lib/stores/editor-state/EditorState.js +3 -6
  153. package/lib/stores/editor-state/EditorState.js.map +1 -1
  154. package/lib/stores/editor-state/FileGenerationViewerState.d.ts +5 -4
  155. package/lib/stores/editor-state/FileGenerationViewerState.d.ts.map +1 -1
  156. package/lib/stores/editor-state/FileGenerationViewerState.js +11 -8
  157. package/lib/stores/editor-state/FileGenerationViewerState.js.map +1 -1
  158. package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
  159. package/lib/stores/editor-state/GraphGenerationState.js +10 -16
  160. package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
  161. package/lib/stores/editor-state/ModelImporterState.d.ts +2 -1
  162. package/lib/stores/editor-state/ModelImporterState.d.ts.map +1 -1
  163. package/lib/stores/editor-state/ModelImporterState.js +4 -1
  164. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  165. package/lib/stores/editor-state/ProjectConfigurationEditorState.d.ts +2 -1
  166. package/lib/stores/editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
  167. package/lib/stores/editor-state/ProjectConfigurationEditorState.js +5 -2
  168. package/lib/stores/editor-state/ProjectConfigurationEditorState.js.map +1 -1
  169. package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts +13 -1
  170. package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts.map +1 -1
  171. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js +9 -2
  172. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
  173. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js +1 -1
  174. package/lib/stores/editor-state/element-editor-state/ElementFileGenerationState.js.map +1 -1
  175. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.d.ts +1 -3
  176. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
  177. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js +2 -3
  178. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  179. package/lib/stores/editor-state/element-editor-state/mapping/MappingElementState.d.ts +7 -6
  180. package/lib/stores/editor-state/element-editor-state/mapping/MappingElementState.d.ts.map +1 -1
  181. package/lib/stores/editor-state/element-editor-state/mapping/MappingElementState.js +7 -3
  182. package/lib/stores/editor-state/element-editor-state/mapping/MappingElementState.js.map +1 -1
  183. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts +3 -2
  184. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.d.ts.map +1 -1
  185. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +6 -2
  186. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  187. package/lib/stores/editor-state/element-editor-state/mapping/MappingTabManagerState.d.ts +19 -0
  188. package/lib/stores/editor-state/element-editor-state/mapping/MappingTabManagerState.d.ts.map +1 -0
  189. package/lib/stores/editor-state/element-editor-state/mapping/MappingTabManagerState.js +19 -0
  190. package/lib/stores/editor-state/element-editor-state/mapping/MappingTabManagerState.js.map +1 -0
  191. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts +3 -2
  192. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts.map +1 -1
  193. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +6 -2
  194. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
  195. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts +7 -0
  196. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts.map +1 -1
  197. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +21 -2
  198. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
  199. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.d.ts +5 -3
  200. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.d.ts.map +1 -1
  201. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js +8 -4
  202. package/lib/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js.map +1 -1
  203. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffEditorState.d.ts +1 -1
  204. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffEditorState.js +1 -1
  205. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.d.ts +7 -5
  206. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.d.ts.map +1 -1
  207. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js +19 -12
  208. package/lib/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.js.map +1 -1
  209. package/lib/stores/project-viewer/ProjectViewerStore.js +1 -1
  210. package/lib/stores/project-viewer/ProjectViewerStore.js.map +1 -1
  211. package/lib/stores/shared/DnDUtils.d.ts +1 -1
  212. package/lib/stores/shared/DnDUtils.d.ts.map +1 -1
  213. package/lib/stores/shared/DnDUtils.js.map +1 -1
  214. package/lib/stores/shared/modifier/DSL_Service_GraphModifierHelper.d.ts +1 -0
  215. package/lib/stores/shared/modifier/DSL_Service_GraphModifierHelper.d.ts.map +1 -1
  216. package/lib/stores/shared/modifier/DSL_Service_GraphModifierHelper.js +3 -0
  217. package/lib/stores/shared/modifier/DSL_Service_GraphModifierHelper.js.map +1 -1
  218. package/lib/stores/sidebar-state/LocalChangesState.js +4 -4
  219. package/lib/stores/sidebar-state/LocalChangesState.js.map +1 -1
  220. package/lib/stores/sidebar-state/WorkspaceReviewState.js +1 -1
  221. package/lib/stores/sidebar-state/WorkspaceReviewState.js.map +1 -1
  222. package/lib/stores/sidebar-state/WorkspaceSyncState.d.ts +6 -6
  223. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js +7 -7
  224. package/lib/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  225. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js +2 -2
  226. package/lib/stores/sidebar-state/WorkspaceUpdaterState.js.map +1 -1
  227. package/package.json +10 -10
  228. package/src/components/Core_LegendStudioApplicationPlugin.tsx +13 -13
  229. package/src/components/DSL_ExternalFormat_LegendStudioApplicationPlugin.tsx +4 -4
  230. package/src/components/DSL_ExternalFormat_LegendStudioDocumentation.ts +2 -2
  231. package/src/components/LegendStudioApplication.tsx +0 -3
  232. package/src/components/editor/command-center/ProjectSearchCommand.tsx +4 -1
  233. package/src/components/editor/edit-panel/EditPanel.tsx +74 -181
  234. package/src/components/editor/edit-panel/FileGenerationViewer.tsx +5 -5
  235. package/src/components/editor/edit-panel/FunctionEditor.tsx +3 -3
  236. package/src/components/editor/edit-panel/GenerationSpecificationEditor.tsx +7 -5
  237. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +16 -20
  238. package/src/components/editor/edit-panel/ModelImporter.tsx +1 -1
  239. package/src/components/editor/edit-panel/RuntimeEditor.tsx +6 -9
  240. package/src/components/editor/edit-panel/UnsupportedElementEditor.tsx +4 -3
  241. package/src/components/editor/edit-panel/connection-editor/ConnectionEditor.tsx +1 -1
  242. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +3 -3
  243. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +4 -3
  244. package/src/components/editor/edit-panel/diff-editor/EntityDiffView.tsx +1 -1
  245. package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +6 -5
  246. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.tsx +2 -1
  247. package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_SchemaSetElementEditor.tsx +3 -3
  248. package/src/components/editor/edit-panel/mapping-editor/ClassMappingEditor.tsx +1 -1
  249. package/src/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.tsx +2 -2
  250. package/src/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.tsx +1 -1
  251. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +2 -2
  252. package/src/components/editor/edit-panel/mapping-editor/MappingEditor.tsx +3 -3
  253. package/src/components/editor/edit-panel/mapping-editor/MappingExplorer.tsx +5 -5
  254. package/src/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.tsx +3 -3
  255. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +1 -1
  256. package/src/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.tsx +3 -3
  257. package/src/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.tsx +3 -3
  258. package/src/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.tsx +14 -9
  259. package/src/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +2 -2
  260. package/src/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.tsx +1 -1
  261. package/src/components/editor/edit-panel/service-editor/ServiceEditor.tsx +4 -2
  262. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +14 -4
  263. package/src/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.tsx +2 -1
  264. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.tsx +47 -8
  265. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +3 -2
  266. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +12 -8
  267. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +3 -2
  268. package/src/components/editor/edit-panel/uml-editor/ProfileEditor.tsx +2 -1
  269. package/src/components/editor/edit-panel/uml-editor/StereotypeSelector.tsx +1 -1
  270. package/src/components/editor/edit-panel/uml-editor/TaggedValueEditor.tsx +1 -1
  271. package/src/components/editor/edit-panel/uml-editor/UMLEditor.tsx +2 -1
  272. package/src/components/editor/side-bar/Explorer.tsx +5 -5
  273. package/src/components/editor/side-bar/LocalChanges.tsx +6 -6
  274. package/src/components/editor/side-bar/WorkspaceReview.tsx +4 -4
  275. package/src/components/editor/side-bar/WorkspaceSyncConflictResolver.tsx +6 -6
  276. package/src/components/editor/side-bar/WorkspaceUpdateConflictResolver.tsx +6 -6
  277. package/src/components/editor/side-bar/WorkspaceUpdater.tsx +6 -6
  278. package/src/components/workspace-review/WorkspaceReviewPanel.tsx +20 -24
  279. package/src/components/workspace-review/WorkspaceReviewSideBar.tsx +4 -4
  280. package/src/index.ts +1 -0
  281. package/src/stores/EditorGraphState.ts +39 -54
  282. package/src/stores/EditorSDLCState.ts +3 -3
  283. package/src/stores/EditorStore.ts +59 -303
  284. package/src/stores/EditorTabManagerState.ts +175 -0
  285. package/src/stores/ExplorerTreeState.ts +3 -1
  286. package/src/stores/LegendStudioDocumentation.ts +14 -14
  287. package/src/stores/editor-state/EditorState.ts +9 -8
  288. package/src/stores/editor-state/FileGenerationViewerState.ts +12 -8
  289. package/src/stores/editor-state/GraphGenerationState.ts +14 -26
  290. package/src/stores/editor-state/ModelImporterState.ts +5 -1
  291. package/src/stores/editor-state/ProjectConfigurationEditorState.ts +6 -2
  292. package/src/stores/editor-state/element-editor-state/ElementEditorState.ts +23 -2
  293. package/src/stores/editor-state/element-editor-state/ElementFileGenerationState.ts +1 -1
  294. package/src/stores/editor-state/element-editor-state/mapping/MappingEditorState.ts +7 -8
  295. package/src/stores/editor-state/element-editor-state/mapping/MappingElementState.ts +15 -6
  296. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +7 -2
  297. package/src/stores/editor-state/element-editor-state/mapping/MappingTabManagerState.ts +19 -0
  298. package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +7 -2
  299. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +32 -0
  300. package/src/stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.ts +21 -4
  301. package/src/stores/editor-state/entity-diff-editor-state/EntityDiffEditorState.ts +1 -1
  302. package/src/stores/editor-state/entity-diff-editor-state/EntityDiffViewState.ts +28 -12
  303. package/src/stores/project-viewer/ProjectViewerStore.ts +1 -1
  304. package/src/stores/shared/DnDUtils.ts +1 -1
  305. package/src/stores/shared/modifier/DSL_Service_GraphModifierHelper.ts +6 -0
  306. package/src/stores/sidebar-state/LocalChangesState.ts +4 -4
  307. package/src/stores/sidebar-state/WorkspaceReviewState.ts +1 -1
  308. package/src/stores/sidebar-state/WorkspaceSyncState.ts +6 -6
  309. package/src/stores/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +7 -7
  310. package/src/stores/sidebar-state/WorkspaceUpdaterState.ts +2 -2
  311. package/tsconfig.json +2 -0
@@ -35,7 +35,11 @@ import {
35
35
  RefreshIcon,
36
36
  TimesIcon,
37
37
  } from '@finos/legend-art';
38
- import { type ValueSpecification, PrimitiveType } from '@finos/legend-graph';
38
+ import {
39
+ type ValueSpecification,
40
+ PrimitiveType,
41
+ PureMultiExecution,
42
+ } from '@finos/legend-graph';
39
43
  import { BasicValueSpecificationEditor } from '@finos/legend-query-builder';
40
44
  import {
41
45
  filterByType,
@@ -47,9 +51,10 @@ import { observer } from 'mobx-react-lite';
47
51
  import { forwardRef, useEffect, useState } from 'react';
48
52
  import type { ServiceTestSuiteState } from '../../../../../stores/editor-state/element-editor-state/service/testable/ServiceTestableState.js';
49
53
  import {
50
- ServiceValueSpecificationTestParameterState,
54
+ type KeyOption,
51
55
  type ServiceTestSetupState,
52
56
  type ServiceTestState,
57
+ ServiceValueSpecificationTestParameterState,
53
58
  } from '../../../../../stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js';
54
59
  import { TESTABLE_TEST_TAB } from '../../../../../stores/editor-state/element-editor-state/testable/TestableEditorState.js';
55
60
  import type { TestAssertionEditorState } from '../../../../../stores/editor-state/element-editor-state/testable/TestAssertionState.js';
@@ -276,15 +281,25 @@ const ServiceTestSetupEditor = observer(
276
281
  const format = test.serializationFormat;
277
282
  const selectedSerializationFormat = setupState.getSelectedFormatOption();
278
283
  const options = setupState.options;
284
+ const keyOptions = setupState.keyOptions;
285
+ const [selectedKeys, setSelectedKeys] = useState<KeyOption[]>(
286
+ setupState.getSelectedKeyOptions(),
287
+ );
279
288
  const isReadOnly =
280
289
  serviceTestState.suiteState.testableState.serviceEditorState.isReadOnly;
281
- const onChange = (val: { label: string; value: string } | null): void => {
290
+ const onSerializationFormatChange = (
291
+ val: { label: string; value: string } | null,
292
+ ): void => {
282
293
  if (val === null) {
283
294
  setupState.changeSerializationFormat(undefined);
284
295
  } else if (val.value !== format) {
285
296
  setupState.changeSerializationFormat(val.value);
286
297
  }
287
298
  };
299
+ const onKeyOptionChange = (val: KeyOption[]): void => {
300
+ setupState.addServiceTestAssertKeys(val.map((op) => op.value));
301
+ setSelectedKeys(val);
302
+ };
288
303
  const addParameter = (): void => {
289
304
  setupState.setShowNewParameterModal(true);
290
305
  };
@@ -307,27 +322,27 @@ const ServiceTestSetupEditor = observer(
307
322
  </div>
308
323
  <div className="service-test-editor__content">
309
324
  <ResizablePanelGroup orientation="horizontal">
310
- <ResizablePanel size={200} minSize={28}>
325
+ <ResizablePanel size={230} minSize={28}>
311
326
  <div className="service-test-data-editor panel">
312
327
  <div className="service-test-suite-editor__header">
313
328
  <div className="service-test-suite-editor__header__title">
314
329
  <div className="service-test-suite-editor__header__title__label">
315
- serialization
330
+ configuration
316
331
  </div>
317
332
  </div>
318
333
  </div>
319
- <div className="service-test-editor__setup__serialization">
334
+ <div className="service-test-editor__setup__configuration">
320
335
  <div className="panel__content__form__section">
321
336
  <div className="panel__content__form__section__header__label">
322
337
  Serialization Format
323
338
  </div>
324
339
  <div className="panel__content__form__section__header__prompt">
325
- format to serialize execution result
340
+ Format to serialize execution result
326
341
  </div>
327
342
  <CustomSelectorInput
328
343
  className="panel__content__form__section__dropdown"
329
344
  options={options}
330
- onChange={onChange}
345
+ onChange={onSerializationFormatChange}
331
346
  value={selectedSerializationFormat}
332
347
  isClearable={true}
333
348
  escapeClearsValue={true}
@@ -335,6 +350,30 @@ const ServiceTestSetupEditor = observer(
335
350
  disable={isReadOnly}
336
351
  />
337
352
  </div>
353
+ {setupState.testState.testable.execution instanceof
354
+ PureMultiExecution && (
355
+ <div className="panel__content__form__section">
356
+ <div className="panel__content__form__section__header__label">
357
+ Keys
358
+ </div>
359
+ <div className="panel__content__form__section__header__prompt">
360
+ Specify keys for each test to run assertions against
361
+ selected env keys
362
+ </div>
363
+ <CustomSelectorInput
364
+ className="panel__content__form__section__dropdown"
365
+ options={keyOptions}
366
+ onChange={onKeyOptionChange}
367
+ value={selectedKeys}
368
+ isClearable={true}
369
+ escapeClearsValue={true}
370
+ darkMode={true}
371
+ isMulti={true}
372
+ disable={isReadOnly}
373
+ placeholder={'Choose keys...'}
374
+ />
375
+ </div>
376
+ )}
338
377
  </div>
339
378
  </div>
340
379
  </ResizablePanel>
@@ -186,7 +186,7 @@ const AssociationPropertyBasicEditor = observer(
186
186
  // Other
187
187
  const openElement = (): void => {
188
188
  if (!(propertyType instanceof PrimitiveType)) {
189
- editorStore.openElement(
189
+ editorStore.tabManagerState.openElementEditor(
190
190
  propertyType instanceof Unit ? propertyType.measure : propertyType,
191
191
  );
192
192
  }
@@ -322,7 +322,8 @@ export const AssociationEditor = observer(
322
322
  (props: { association: Association }) => {
323
323
  const { association } = props;
324
324
  const editorStore = useEditorStore();
325
- const editorState = editorStore.getCurrentEditorState(UMLEditorState);
325
+ const editorState =
326
+ editorStore.tabManagerState.getCurrentEditorState(UMLEditorState);
326
327
  const isReadOnly = editorState.isReadOnly;
327
328
  // Selected property
328
329
  const [selectedProperty, setSelectedProperty] = useState<
@@ -272,14 +272,15 @@ const PropertyBasicEditor = observer(
272
272
  // Other
273
273
  const openElement = (): void => {
274
274
  if (!(propertyType instanceof PrimitiveType)) {
275
- editorStore.openElement(
275
+ editorStore.tabManagerState.openElementEditor(
276
276
  propertyType instanceof Unit ? propertyType.measure : propertyType,
277
277
  );
278
278
  }
279
279
  };
280
280
  // NOTE: for now we do not allow directly modifying inherited and associated properties,
281
281
  // we would make the user go to the supertype or the association where the property comes from
282
- const visitOwner = (): void => editorStore.openElement(property._OWNER);
282
+ const visitOwner = (): void =>
283
+ editorStore.tabManagerState.openElementEditor(property._OWNER);
283
284
 
284
285
  return (
285
286
  <div ref={ref} className="property-basic-editor__container">
@@ -626,13 +627,13 @@ const DerivedPropertyBasicEditor = observer(
626
627
  );
627
628
  const openElement = (): void => {
628
629
  if (!(propertyType instanceof PrimitiveType)) {
629
- editorStore.openElement(
630
+ editorStore.tabManagerState.openElementEditor(
630
631
  propertyType instanceof Unit ? propertyType.measure : propertyType,
631
632
  );
632
633
  }
633
634
  };
634
635
  const visitOwner = (): void =>
635
- editorStore.openElement(derivedProperty._OWNER);
636
+ editorStore.tabManagerState.openElementEditor(derivedProperty._OWNER);
636
637
  const remove = applicationStore.guardUnhandledError(async () => {
637
638
  await flowResult(dpState.convertLambdaObjectToGrammarString(false));
638
639
  deleteDerivedProperty();
@@ -913,7 +914,8 @@ const ConstraintEditor = observer(
913
914
  );
914
915
  deleteConstraint();
915
916
  });
916
- const visitOwner = (): void => editorStore.openElement(constraint._OWNER);
917
+ const visitOwner = (): void =>
918
+ editorStore.tabManagerState.openElementEditor(constraint._OWNER);
917
919
 
918
920
  return (
919
921
  <div ref={ref} className="constraint-editor__container">
@@ -1068,7 +1070,8 @@ const SuperTypeEditor = observer(
1068
1070
  const selectedType = { value: rawType, label: rawType.name };
1069
1071
  const changeType = (val: PackageableElementOption<Class>): void =>
1070
1072
  setGenericTypeReferenceValue(superType, new GenericType(val.value));
1071
- const visitDerivationSource = (): void => editorStore.openElement(rawType);
1073
+ const visitDerivationSource = (): void =>
1074
+ editorStore.tabManagerState.openElementEditor(rawType);
1072
1075
 
1073
1076
  return (
1074
1077
  <div ref={ref} className="super-type-editor__container">
@@ -1665,7 +1668,7 @@ export const ClassFormEditor = observer(
1665
1668
  : undefined;
1666
1669
  const visitGenerationParentElement = (): void => {
1667
1670
  if (generationParentElement) {
1668
- editorStore.openElement(generationParentElement);
1671
+ editorStore.tabManagerState.openElementEditor(generationParentElement);
1669
1672
  }
1670
1673
  };
1671
1674
 
@@ -1834,7 +1837,8 @@ export const ClassFormEditor = observer(
1834
1837
  export const ClassEditor = observer((props: { _class: Class }) => {
1835
1838
  const { _class } = props;
1836
1839
  const editorStore = useEditorStore();
1837
- const editorState = editorStore.getCurrentEditorState(ClassEditorState);
1840
+ const editorState =
1841
+ editorStore.tabManagerState.getCurrentEditorState(ClassEditorState);
1838
1842
 
1839
1843
  const classPreviewRenderers = editorStore.pluginManager
1840
1844
  .getApplicationPlugins()
@@ -397,7 +397,8 @@ export const EnumerationEditor = observer(
397
397
  (props: { enumeration: Enumeration }) => {
398
398
  const { enumeration } = props;
399
399
  const editorStore = useEditorStore();
400
- const editorState = editorStore.getCurrentEditorState(UMLEditorState);
400
+ const editorState =
401
+ editorStore.tabManagerState.getCurrentEditorState(UMLEditorState);
401
402
  const isReadOnly = editorState.isReadOnly;
402
403
  // Selected enum value
403
404
  const [selectedEnum, setSelectedEnum] = useState<Enum | undefined>();
@@ -533,7 +534,7 @@ export const EnumerationEditor = observer(
533
534
  : undefined;
534
535
  const visitGenerationParentElement = (): void => {
535
536
  if (generationParentElement) {
536
- editorStore.openElement(generationParentElement);
537
+ editorStore.tabManagerState.openElementEditor(generationParentElement);
537
538
  }
538
539
  };
539
540
 
@@ -250,7 +250,8 @@ const StereotypeBasicEditor = observer(
250
250
  export const ProfileEditor = observer((props: { profile: Profile }) => {
251
251
  const { profile } = props;
252
252
  const editorStore = useEditorStore();
253
- const editorState = editorStore.getCurrentEditorState(UMLEditorState);
253
+ const editorState =
254
+ editorStore.tabManagerState.getCurrentEditorState(UMLEditorState);
254
255
  const isReadOnly = editorState.isReadOnly;
255
256
  // Tab
256
257
  const selectedTab = editorState.selectedTab;
@@ -107,7 +107,7 @@ export const StereotypeSelector = observer(
107
107
  }
108
108
  };
109
109
  const visitProfile = (): void =>
110
- editorStore.openElement(selectedProfile.value);
110
+ editorStore.tabManagerState.openElementEditor(selectedProfile.value);
111
111
  // Stereotype
112
112
  const stereotypeOptions = selectedProfile.value.p_stereotypes.map((st) => ({
113
113
  label: st.value,
@@ -113,7 +113,7 @@ export const TaggedValueEditor = observer(
113
113
  }
114
114
  };
115
115
  const visitProfile = (): void =>
116
- editorStore.openElement(selectedProfile.value);
116
+ editorStore.tabManagerState.openElementEditor(selectedProfile.value);
117
117
  // Tag
118
118
  const tagOptions = selectedProfile.value.p_tags.map((tag) => ({
119
119
  label: tag.value,
@@ -25,7 +25,8 @@ import { Class, Enumeration, Association, Profile } from '@finos/legend-graph';
25
25
 
26
26
  export const UMLEditor = observer(() => {
27
27
  const editorStore = useEditorStore();
28
- const umlEditorState = editorStore.getCurrentEditorState(UMLEditorState);
28
+ const umlEditorState =
29
+ editorStore.tabManagerState.getCurrentEditorState(UMLEditorState);
29
30
  const currentElement = umlEditorState.element;
30
31
 
31
32
  return (
@@ -349,11 +349,11 @@ const ExplorerContextMenu = observer(
349
349
  const ProjectConfig = observer(() => {
350
350
  const editorStore = useEditorStore();
351
351
  const openConfigurationEditor = (): void =>
352
- editorStore.openSingletonEditorState(
352
+ editorStore.tabManagerState.openTab(
353
353
  editorStore.projectConfigurationEditorState,
354
354
  );
355
355
  const isSelected =
356
- editorStore.currentEditorState ===
356
+ editorStore.tabManagerState.currentTab ===
357
357
  editorStore.projectConfigurationEditorState &&
358
358
  // if we select non-element like packages, we need to deselect project configuration
359
359
  // so maybe a good TODO is to move this to explorer tree state
@@ -528,7 +528,7 @@ const ExplorerTrees = observer(() => {
528
528
  const editorStore = useEditorStore();
529
529
  const { isInGrammarTextMode, isInViewerMode } = editorStore;
530
530
  const openModelImport = (): void =>
531
- editorStore.openSingletonEditorState(editorStore.modelImporterState);
531
+ editorStore.tabManagerState.openTab(editorStore.modelImporterState);
532
532
  const graph = editorStore.graphManagerState.graph;
533
533
  // Explorer tree
534
534
  const treeData = editorStore.explorerTreeState.getTreeData();
@@ -733,9 +733,9 @@ const ProjectExplorerActionPanel = observer((props: { disabled: boolean }) => {
733
733
  editorStore.explorerTreeState.setTreeData({ ...treeData });
734
734
  };
735
735
  const showModelImporter = (): void =>
736
- editorStore.openState(editorStore.modelImporterState);
736
+ editorStore.tabManagerState.openTab(editorStore.modelImporterState);
737
737
  const openConfigurationEditor = (): void =>
738
- editorStore.openSingletonEditorState(
738
+ editorStore.tabManagerState.openTab(
739
739
  editorStore.projectConfigurationEditorState,
740
740
  );
741
741
 
@@ -163,11 +163,11 @@ export const LocalChanges = observer(() => {
163
163
  localChangesState.workspaceSyncState.pullChangesState.isInProgress ||
164
164
  localChangesState.refreshWorkspaceSyncStatusState.isInProgress;
165
165
  // Changes
166
- const currentEditorState = editorStore.currentEditorState;
166
+ const currentTabState = editorStore.tabManagerState.currentTab;
167
167
  const isSelectedDiff = (diff: EntityDiff): boolean =>
168
- currentEditorState instanceof EntityDiffViewState &&
169
- diff.oldPath === currentEditorState.fromEntityPath &&
170
- diff.newPath === currentEditorState.toEntityPath;
168
+ currentTabState instanceof EntityDiffViewState &&
169
+ diff.oldPath === currentTabState.fromEntityPath &&
170
+ diff.newPath === currentTabState.toEntityPath;
171
171
  const changes =
172
172
  editorStore.changeDetectionState.workspaceLocalLatestRevisionState.changes;
173
173
  const openChange =
@@ -178,8 +178,8 @@ export const LocalChanges = observer(() => {
178
178
  const conflicts =
179
179
  editorStore.changeDetectionState.potentialWorkspacePullConflicts;
180
180
  const isSelectedConflict = (conflict: EntityChangeConflict): boolean =>
181
- currentEditorState instanceof EntityChangeConflictEditorState &&
182
- conflict.entityPath === currentEditorState.entityPath;
181
+ currentTabState instanceof EntityChangeConflictEditorState &&
182
+ conflict.entityPath === currentTabState.entityPath;
183
183
  const openPotentialConflict =
184
184
  (conflict: EntityChangeConflict): (() => void) =>
185
185
  (): void =>
@@ -42,12 +42,12 @@ import { formatDistanceToNow } from '@finos/legend-shared';
42
42
  export const WorkspaceReviewDiffs = observer(() => {
43
43
  const editorStore = useEditorStore();
44
44
  const workspaceReviewState = editorStore.workspaceReviewState;
45
- const currentEditorState = editorStore.currentEditorState;
45
+ const currentTabState = editorStore.tabManagerState.currentTab;
46
46
  const changes = editorStore.changeDetectionState.aggregatedWorkspaceChanges;
47
47
  const isSelectedDiff = (diff: EntityDiff): boolean =>
48
- currentEditorState instanceof EntityDiffViewState &&
49
- diff.oldPath === currentEditorState.fromEntityPath &&
50
- diff.newPath === currentEditorState.toEntityPath;
48
+ currentTabState instanceof EntityDiffViewState &&
49
+ diff.oldPath === currentTabState.fromEntityPath &&
50
+ diff.newPath === currentTabState.toEntityPath;
51
51
  const openChange =
52
52
  (diff: EntityDiff): (() => void) =>
53
53
  (): void =>
@@ -41,7 +41,7 @@ import {
41
41
  EntityChangeConflictSideBarItem,
42
42
  } from '../edit-panel/diff-editor/EntityChangeConflictEditor.js';
43
43
  import { EntityChangeConflictEditorState } from '../../../stores/editor-state/entity-diff-editor-state/EntityChangeConflictEditorState.js';
44
- import type { EntityDiffEditorState } from '../../../stores/editor-state/entity-diff-editor-state/EntityDiffEditorState.js';
44
+ import type { EntityDiffViewerState } from '../../../stores/editor-state/entity-diff-editor-state/EntityDiffEditorState.js';
45
45
  import {
46
46
  EntityDiffSideBarItem,
47
47
  EntityDiffView,
@@ -70,18 +70,18 @@ export const WorkspaceSyncConflictResolver = observer(() => {
70
70
  currentDiffEditorState instanceof EntityChangeConflictEditorState &&
71
71
  conflict.entityPath === currentDiffEditorState.entityPath;
72
72
  const closeTabOnMiddleClick =
73
- (conflictState: EntityDiffEditorState): React.MouseEventHandler =>
73
+ (conflictState: EntityDiffViewerState): React.MouseEventHandler =>
74
74
  (event): void => {
75
75
  if (event.nativeEvent.button === 1) {
76
76
  updateConflictState.closeConflict(conflictState);
77
77
  }
78
78
  };
79
79
  const closeTab =
80
- (conflictState: EntityDiffEditorState): React.MouseEventHandler =>
80
+ (conflictState: EntityDiffViewerState): React.MouseEventHandler =>
81
81
  (event): void =>
82
82
  updateConflictState.closeConflict(conflictState);
83
83
  const openTab =
84
- (conflictState: EntityDiffEditorState): (() => void) =>
84
+ (conflictState: EntityDiffViewerState): (() => void) =>
85
85
  (): void =>
86
86
  updateConflictState.openState(conflictState);
87
87
  const isSelectedDiff = (diff: EntityDiff): boolean =>
@@ -215,9 +215,9 @@ export const WorkspaceSyncConflictResolver = observer(() => {
215
215
  className="workspace-sync-conflict-resolver__header__tab__label"
216
216
  tabIndex={-1}
217
217
  onClick={openTab(mergedState)}
218
- title={mergedState.headerName}
218
+ title={mergedState.label}
219
219
  >
220
- {mergedState.headerName}
220
+ {mergedState.label}
221
221
  </button>
222
222
  <button
223
223
  className="workspace-sync-conflict-resolver__header__tab__close-btn"
@@ -42,7 +42,7 @@ export const WorkspaceUpdateConflictResolver = observer(() => {
42
42
  const editorStore = useEditorStore();
43
43
  const applicationStore = useApplicationStore();
44
44
  const sdlcState = editorStore.sdlcState;
45
- const currentEditorState = editorStore.currentEditorState;
45
+ const currentTabState = editorStore.tabManagerState.currentTab;
46
46
  const conflictResolutionState = editorStore.conflictResolutionState;
47
47
  // Actions
48
48
  const isRunningTask =
@@ -66,8 +66,8 @@ export const WorkspaceUpdateConflictResolver = observer(() => {
66
66
  // Conflicts
67
67
  const conflicts = conflictResolutionState.conflicts;
68
68
  const isSelectedConflict = (conflict: EntityChangeConflict): boolean =>
69
- currentEditorState instanceof EntityChangeConflictEditorState &&
70
- conflict.entityPath === currentEditorState.entityPath;
69
+ currentTabState instanceof EntityChangeConflictEditorState &&
70
+ conflict.entityPath === currentTabState.entityPath;
71
71
  const openConflict =
72
72
  (conflict: EntityChangeConflict): (() => void) =>
73
73
  (): void =>
@@ -79,9 +79,9 @@ export const WorkspaceUpdateConflictResolver = observer(() => {
79
79
  (): void =>
80
80
  conflictResolutionState.openConflictResolutionChange(diff);
81
81
  const isSelectedDiff = (diff: EntityDiff): boolean =>
82
- currentEditorState instanceof EntityDiffViewState &&
83
- diff.oldPath === currentEditorState.fromEntityPath &&
84
- diff.newPath === currentEditorState.toEntityPath;
82
+ currentTabState instanceof EntityDiffViewState &&
83
+ diff.oldPath === currentTabState.fromEntityPath &&
84
+ diff.newPath === currentTabState.toEntityPath;
85
85
 
86
86
  return (
87
87
  <div className="panel conflict-resolution">
@@ -47,7 +47,7 @@ export const WorkspaceUpdater = observer(() => {
47
47
  const editorStore = useEditorStore();
48
48
  const applicationStore = useLegendStudioApplicationStore();
49
49
  const sdlcState = editorStore.sdlcState;
50
- const currentEditorState = editorStore.currentEditorState;
50
+ const currentTabState = editorStore.tabManagerState.currentTab;
51
51
  const workspaceUpdaterState = editorStore.workspaceUpdaterState;
52
52
  // Actions
53
53
  const updateWorkspace = (): void => {
@@ -68,8 +68,8 @@ export const WorkspaceUpdater = observer(() => {
68
68
  const conflicts =
69
69
  editorStore.changeDetectionState.potentialWorkspaceUpdateConflicts;
70
70
  const isSelectedConflict = (conflict: EntityChangeConflict): boolean =>
71
- currentEditorState instanceof EntityChangeConflictEditorState &&
72
- conflict.entityPath === currentEditorState.entityPath;
71
+ currentTabState instanceof EntityChangeConflictEditorState &&
72
+ conflict.entityPath === currentTabState.entityPath;
73
73
  const openPotentialConflict =
74
74
  (conflict: EntityChangeConflict): (() => void) =>
75
75
  (): void =>
@@ -84,9 +84,9 @@ export const WorkspaceUpdater = observer(() => {
84
84
  .includes(change.entityPath),
85
85
  );
86
86
  const isSelectedDiff = (diff: EntityDiff): boolean =>
87
- currentEditorState instanceof EntityDiffViewState &&
88
- diff.oldPath === currentEditorState.fromEntityPath &&
89
- diff.newPath === currentEditorState.toEntityPath;
87
+ currentTabState instanceof EntityDiffViewState &&
88
+ diff.oldPath === currentTabState.fromEntityPath &&
89
+ diff.newPath === currentTabState.toEntityPath;
90
90
  const openChange =
91
91
  (diff: EntityDiff): (() => void) =>
92
92
  (): void =>
@@ -39,10 +39,9 @@ const WorkspaceReviewPanelHeaderTabContextMenu = observer(
39
39
  >(function ReviewPanelHeaderTabContextMenu(props, ref) {
40
40
  const { editorState } = props;
41
41
  const editorStore = useEditorStore();
42
- const close = (): void => editorStore.closeState(editorState);
43
- const closeOthers = (): void =>
44
- editorStore.closeAllOtherStates(editorState);
45
- const closeAll = (): void => editorStore.closeAllStates();
42
+ const close = (): void => editorStore.tabManagerState.closeTab(editorState);
43
+ const closeOthers = (): void => editorStore.tabManagerState.closeAllTabs();
44
+ const closeAll = (): void => editorStore.tabManagerState.closeAllTabs();
46
45
 
47
46
  return (
48
47
  <div
@@ -57,7 +56,7 @@ const WorkspaceReviewPanelHeaderTabContextMenu = observer(
57
56
  </button>
58
57
  <button
59
58
  className="workspace-review-panel__header__tab__context-menu__item"
60
- disabled={editorStore.openedEditorStates.length < 2}
59
+ disabled={editorStore.tabManagerState.tabs.length < 2}
61
60
  onClick={closeOthers}
62
61
  >
63
62
  Close Others
@@ -75,48 +74,45 @@ const WorkspaceReviewPanelHeaderTabContextMenu = observer(
75
74
 
76
75
  export const WorkspaceReviewPanel = observer(() => {
77
76
  const editorStore = useEditorStore();
78
- const currentEditorState =
79
- editorStore.currentEditorState instanceof EntityDiffViewState
80
- ? editorStore.currentEditorState
77
+ const currentTabState =
78
+ editorStore.tabManagerState.currentTab instanceof EntityDiffViewState
79
+ ? editorStore.tabManagerState.currentTab
81
80
  : undefined;
82
- const openedEditorStates = editorStore.openedEditorStates.filter(
81
+ const openedTabStates = editorStore.tabManagerState.tabs.filter(
83
82
  filterByType(EntityDiffViewState),
84
83
  );
85
84
  const closeTab =
86
85
  (diffState: EditorState): React.MouseEventHandler =>
87
86
  (event): void =>
88
- editorStore.closeState(diffState);
87
+ editorStore.tabManagerState.closeTab(diffState);
89
88
  const closeTabOnMiddleClick =
90
89
  (editorState: EditorState): React.MouseEventHandler =>
91
90
  (event): void => {
92
91
  if (event.nativeEvent.button === 1) {
93
- editorStore.closeState(editorState);
92
+ editorStore.tabManagerState.closeTab(editorState);
94
93
  }
95
94
  };
96
95
  const switchTab =
97
96
  (editorState: EditorState): (() => void) =>
98
97
  (): void =>
99
- editorStore.openState(editorState);
98
+ editorStore.tabManagerState.openTab(editorState);
100
99
  const switchViewMode =
101
100
  (mode: DIFF_VIEW_MODE): (() => void) =>
102
101
  (): void =>
103
- currentEditorState?.setDiffMode(mode);
102
+ currentTabState?.setDiffMode(mode);
104
103
 
105
- if (!currentEditorState) {
104
+ if (!currentTabState) {
106
105
  return <WorkspaceReviewPanelSplashScreen />;
107
106
  }
108
107
  return (
109
108
  <div className="panel workspace-review-panel">
110
- <ContextMenu
111
- className="panel__header workspace-review-panel__header"
112
- disabled={true}
113
- >
109
+ <div className="panel__header workspace-review-panel__header">
114
110
  <div className="workspace-review-panel__header__tabs">
115
- {openedEditorStates.map((editorState) => (
111
+ {openedTabStates.map((editorState) => (
116
112
  <div
117
113
  className={clsx('workspace-review-panel__header__tab', {
118
114
  'workspace-review-panel__header__tab--active':
119
- editorState === currentEditorState,
115
+ editorState === currentTabState,
120
116
  })}
121
117
  key={editorState.uuid}
122
118
  onMouseUp={closeTabOnMiddleClick(editorState)}
@@ -134,7 +130,7 @@ export const WorkspaceReviewPanel = observer(() => {
134
130
  tabIndex={-1}
135
131
  onClick={switchTab(editorState)}
136
132
  >
137
- {editorState.headerName}
133
+ {editorState.label}
138
134
  </button>
139
135
  <button
140
136
  className="workspace-review-panel__header__tab__close-btn"
@@ -173,13 +169,13 @@ export const WorkspaceReviewPanel = observer(() => {
173
169
  }}
174
170
  >
175
171
  <div className="workspace-review-panel__element-view__type__label">
176
- {currentEditorState.diffMode}
172
+ {currentTabState.diffMode}
177
173
  </div>
178
174
  </DropdownMenu>
179
175
  </div>
180
- </ContextMenu>
176
+ </div>
181
177
  <div className="panel__content workspace-review-panel__content">
182
- <EntityDiffView entityDiffViewState={currentEditorState} />
178
+ <EntityDiffView entityDiffViewState={currentTabState} />
183
179
  </div>
184
180
  </div>
185
181
  );
@@ -100,11 +100,11 @@ export const WorkspaceReviewSideBar = observer(() => {
100
100
  );
101
101
  // Changes
102
102
  const changes = editorStore.changeDetectionState.aggregatedWorkspaceChanges;
103
- const currentEditorState = editorStore.currentEditorState;
103
+ const currentTabState = editorStore.tabManagerState.currentTab;
104
104
  const isSelectedDiff = (diff: EntityDiff): boolean =>
105
- currentEditorState instanceof EntityDiffViewState &&
106
- diff.oldPath === currentEditorState.fromEntityPath &&
107
- diff.newPath === currentEditorState.toEntityPath;
105
+ currentTabState instanceof EntityDiffViewState &&
106
+ diff.oldPath === currentTabState.fromEntityPath &&
107
+ diff.newPath === currentTabState.toEntityPath;
108
108
  const openChange =
109
109
  (diff: EntityDiff): (() => void) =>
110
110
  (): void =>
package/src/index.ts CHANGED
@@ -25,6 +25,7 @@ export { queryClass } from './components/editor/edit-panel/uml-editor/ClassQuery
25
25
 
26
26
  // stores
27
27
  export * from './stores/LegendStudioApplicationPlugin.js';
28
+ export * from './stores/EditorTabManagerState.js';
28
29
  export * from './stores/EditorStore.js';
29
30
  export * from './stores/EditorConfig.js';
30
31
  export * from './stores/editor-state/ModelImporterState.js';