@finos/legend-application-studio 15.1.0 → 16.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 (362) hide show
  1. package/lib/application/LegendStudio.d.ts.map +1 -1
  2. package/lib/application/LegendStudio.js +5 -2
  3. package/lib/application/LegendStudio.js.map +1 -1
  4. package/lib/application/LegendStudioPluginManager.js +2 -2
  5. package/lib/application/LegendStudioPluginManager.js.map +1 -1
  6. package/lib/components/DSLExternalFormat_LegendStudioApplicationPlugin.d.ts +4 -4
  7. package/lib/components/DSLExternalFormat_LegendStudioApplicationPlugin.d.ts.map +1 -1
  8. package/lib/components/DSLExternalFormat_LegendStudioApplicationPlugin.js +3 -3
  9. package/lib/components/DSLExternalFormat_LegendStudioApplicationPlugin.js.map +1 -1
  10. package/lib/components/EditorComponentTestUtils.d.ts +1 -1
  11. package/lib/components/EditorComponentTestUtils.d.ts.map +1 -1
  12. package/lib/components/EditorComponentTestUtils.js +19 -23
  13. package/lib/components/EditorComponentTestUtils.js.map +1 -1
  14. package/lib/components/EmbeddedQueryBuilder.d.ts +19 -0
  15. package/lib/components/EmbeddedQueryBuilder.d.ts.map +1 -0
  16. package/lib/components/EmbeddedQueryBuilder.js +80 -0
  17. package/lib/components/EmbeddedQueryBuilder.js.map +1 -0
  18. package/lib/components/LegendStudioApplication.d.ts +0 -1
  19. package/lib/components/LegendStudioApplication.d.ts.map +1 -1
  20. package/lib/components/editor/Editor.d.ts.map +1 -1
  21. package/lib/components/editor/Editor.js +12 -13
  22. package/lib/components/editor/Editor.js.map +1 -1
  23. package/lib/components/editor/StatusBar.d.ts +0 -1
  24. package/lib/components/editor/StatusBar.d.ts.map +1 -1
  25. package/lib/components/editor/aux-panel/AuxiliaryPanel.d.ts +0 -1
  26. package/lib/components/editor/aux-panel/AuxiliaryPanel.d.ts.map +1 -1
  27. package/lib/components/editor/aux-panel/Console.d.ts +0 -1
  28. package/lib/components/editor/aux-panel/Console.d.ts.map +1 -1
  29. package/lib/components/editor/aux-panel/DevTool.d.ts +0 -1
  30. package/lib/components/editor/aux-panel/DevTool.d.ts.map +1 -1
  31. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts +0 -1
  32. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  33. package/lib/components/editor/edit-panel/FileGenerationViewer.d.ts +0 -1
  34. package/lib/components/editor/edit-panel/FileGenerationViewer.d.ts.map +1 -1
  35. package/lib/components/editor/edit-panel/FunctionEditor.d.ts +0 -1
  36. package/lib/components/editor/edit-panel/FunctionEditor.d.ts.map +1 -1
  37. package/lib/components/editor/edit-panel/FunctionEditor.js +3 -3
  38. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  39. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.d.ts +0 -1
  40. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.d.ts.map +1 -1
  41. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  42. package/lib/components/editor/edit-panel/GrammarTextEditor.js +15 -3
  43. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  44. package/lib/components/editor/edit-panel/ModelImporter.d.ts +0 -1
  45. package/lib/components/editor/edit-panel/ModelImporter.d.ts.map +1 -1
  46. package/lib/components/editor/edit-panel/RuntimeEditor.d.ts +0 -1
  47. package/lib/components/editor/edit-panel/RuntimeEditor.d.ts.map +1 -1
  48. package/lib/components/editor/edit-panel/UnsupportedElementEditor.d.ts +0 -1
  49. package/lib/components/editor/edit-panel/UnsupportedElementEditor.d.ts.map +1 -1
  50. package/lib/components/editor/edit-panel/UnsupportedElementEditor.js +1 -1
  51. package/lib/components/editor/edit-panel/UnsupportedElementEditor.js.map +1 -1
  52. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.d.ts +0 -1
  53. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.d.ts.map +1 -1
  54. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js +2 -2
  55. package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js.map +1 -1
  56. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.d.ts +0 -1
  57. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.d.ts.map +1 -1
  58. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js +1 -1
  59. package/lib/components/editor/edit-panel/connection-editor/DatabaseBuilder.js.map +1 -1
  60. package/lib/{stores/editor-state/element-editor-state/mapping/relational → components/editor/edit-panel/connection-editor}/DatabaseEditorHelper.d.ts +0 -0
  61. package/lib/components/editor/edit-panel/connection-editor/DatabaseEditorHelper.d.ts.map +1 -0
  62. package/lib/{stores/editor-state/element-editor-state/mapping/relational → components/editor/edit-panel/connection-editor}/DatabaseEditorHelper.js +0 -0
  63. package/lib/components/editor/edit-panel/connection-editor/DatabaseEditorHelper.js.map +1 -0
  64. package/lib/components/editor/edit-panel/connection-editor/FlatDataConnectionEditor.d.ts +0 -1
  65. package/lib/components/editor/edit-panel/connection-editor/FlatDataConnectionEditor.d.ts.map +1 -1
  66. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.d.ts +3 -13
  67. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  68. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js +103 -41
  69. package/lib/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  70. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.d.ts +25 -0
  71. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.d.ts.map +1 -0
  72. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js +77 -0
  73. package/lib/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.js.map +1 -0
  74. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.d.ts +0 -1
  75. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.d.ts.map +1 -1
  76. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  77. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js +1 -1
  78. package/lib/components/editor/edit-panel/data-editor/EmbeddedDataEditor.js.map +1 -1
  79. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.d.ts +0 -1
  80. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.d.ts.map +1 -1
  81. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.d.ts +0 -1
  82. package/lib/components/editor/edit-panel/diff-editor/EntityChangeConflictEditor.d.ts.map +1 -1
  83. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.d.ts +0 -1
  84. package/lib/components/editor/edit-panel/diff-editor/EntityDiffView.d.ts.map +1 -1
  85. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.d.ts +0 -1
  86. package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.d.ts.map +1 -1
  87. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.d.ts +0 -1
  88. package/lib/components/editor/edit-panel/element-generation-editor/ElementNativeView.d.ts.map +1 -1
  89. package/lib/components/editor/edit-panel/external-format-editor/BindingElementEditor.d.ts +0 -1
  90. package/lib/components/editor/edit-panel/external-format-editor/BindingElementEditor.d.ts.map +1 -1
  91. package/lib/components/editor/edit-panel/external-format-editor/ExternalFormatConnectionEditor.d.ts +0 -1
  92. package/lib/components/editor/edit-panel/external-format-editor/ExternalFormatConnectionEditor.d.ts.map +1 -1
  93. package/lib/components/editor/edit-panel/external-format-editor/NewSchemaSetDriver.d.ts +0 -1
  94. package/lib/components/editor/edit-panel/external-format-editor/NewSchemaSetDriver.d.ts.map +1 -1
  95. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetElementEditor.d.ts +0 -1
  96. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetElementEditor.d.ts.map +1 -1
  97. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetModelGenerationEditor.d.ts +0 -1
  98. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetModelGenerationEditor.d.ts.map +1 -1
  99. package/lib/components/editor/edit-panel/mapping-editor/ClassMappingEditor.d.ts +0 -1
  100. package/lib/components/editor/edit-panel/mapping-editor/ClassMappingEditor.d.ts.map +1 -1
  101. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.d.ts +0 -1
  102. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.d.ts.map +1 -1
  103. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js +1 -1
  104. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  105. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.d.ts +0 -1
  106. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.d.ts.map +1 -1
  107. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.d.ts +0 -1
  108. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  109. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +2 -2
  110. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  111. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.d.ts +0 -1
  112. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.d.ts.map +1 -1
  113. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +2 -5
  114. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
  115. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts +0 -1
  116. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  117. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +40 -8
  118. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  119. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts +18 -0
  120. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -0
  121. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js +38 -0
  122. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -0
  123. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts +0 -1
  124. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  125. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +40 -8
  126. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  127. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.d.ts +0 -1
  128. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
  129. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +4 -4
  130. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
  131. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.d.ts +0 -1
  132. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.d.ts.map +1 -1
  133. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.d.ts +0 -1
  134. package/lib/components/editor/edit-panel/mapping-editor/PropertyMappingsEditor.d.ts.map +1 -1
  135. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.d.ts +0 -1
  136. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.d.ts.map +1 -1
  137. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.d.ts +0 -1
  138. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.d.ts.map +1 -1
  139. package/lib/components/editor/edit-panel/mapping-editor/relational/TableOrViewSourceTree.js +1 -1
  140. package/lib/components/editor/edit-panel/mapping-editor/relational/TableOrViewSourceTree.js.map +1 -1
  141. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.d.ts +0 -1
  142. package/lib/components/editor/edit-panel/project-configuration-editor/ProjectConfigurationEditor.d.ts.map +1 -1
  143. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.d.ts +0 -1
  144. package/lib/components/editor/edit-panel/service-editor/NewServiceModal.d.ts.map +1 -1
  145. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.d.ts +0 -1
  146. package/lib/components/editor/edit-panel/service-editor/ServiceEditor.d.ts.map +1 -1
  147. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.d.ts +0 -1
  148. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.d.ts.map +1 -1
  149. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +2 -1
  150. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  151. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts +0 -1
  152. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  153. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +58 -10
  154. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  155. package/lib/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.d.ts +0 -1
  156. package/lib/components/editor/edit-panel/service-editor/ServiceRegistrationEditor.d.ts.map +1 -1
  157. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.d.ts +0 -1
  158. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.d.ts.map +1 -1
  159. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js +7 -5
  160. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.js.map +1 -1
  161. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.d.ts +0 -1
  162. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.d.ts.map +1 -1
  163. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.d.ts +0 -1
  164. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestsEditor.d.ts.map +1 -1
  165. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.d.ts +0 -1
  166. package/lib/components/editor/edit-panel/testable/TestAssertionEditor.d.ts.map +1 -1
  167. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts +0 -1
  168. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts.map +1 -1
  169. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +2 -2
  170. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  171. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts +0 -1
  172. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
  173. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +9 -7
  174. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  175. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.d.ts +19 -0
  176. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.d.ts.map +1 -0
  177. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js +80 -0
  178. package/lib/components/editor/edit-panel/uml-editor/ClassQueryBuilder.js.map +1 -0
  179. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts +0 -1
  180. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts.map +1 -1
  181. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.d.ts +0 -1
  182. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.d.ts.map +1 -1
  183. package/lib/components/editor/edit-panel/uml-editor/PropertyEditor.d.ts +0 -1
  184. package/lib/components/editor/edit-panel/uml-editor/PropertyEditor.d.ts.map +1 -1
  185. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.d.ts.map +1 -1
  186. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js +4 -1
  187. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js.map +1 -1
  188. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.d.ts.map +1 -1
  189. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js +4 -1
  190. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js.map +1 -1
  191. package/lib/components/editor/edit-panel/uml-editor/UMLEditor.d.ts +0 -1
  192. package/lib/components/editor/edit-panel/uml-editor/UMLEditor.d.ts.map +1 -1
  193. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts +0 -1
  194. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  195. package/lib/components/editor/side-bar/CreateNewElementModal.js +7 -4
  196. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  197. package/lib/components/editor/side-bar/Explorer.d.ts +0 -1
  198. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  199. package/lib/components/editor/side-bar/Explorer.js +15 -8
  200. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  201. package/lib/components/editor/side-bar/LocalChanges.d.ts +0 -1
  202. package/lib/components/editor/side-bar/LocalChanges.d.ts.map +1 -1
  203. package/lib/components/editor/side-bar/ProjectOverview.d.ts +0 -1
  204. package/lib/components/editor/side-bar/ProjectOverview.d.ts.map +1 -1
  205. package/lib/components/editor/side-bar/SideBar.d.ts +0 -1
  206. package/lib/components/editor/side-bar/SideBar.d.ts.map +1 -1
  207. package/lib/components/editor/side-bar/WorkflowManager.d.ts +0 -1
  208. package/lib/components/editor/side-bar/WorkflowManager.d.ts.map +1 -1
  209. package/lib/components/editor/side-bar/WorkspaceReview.d.ts +0 -1
  210. package/lib/components/editor/side-bar/WorkspaceReview.d.ts.map +1 -1
  211. package/lib/components/editor/side-bar/WorkspaceSyncConflictResolver.d.ts +0 -1
  212. package/lib/components/editor/side-bar/WorkspaceSyncConflictResolver.d.ts.map +1 -1
  213. package/lib/components/editor/side-bar/WorkspaceUpdateConflictResolver.d.ts +0 -1
  214. package/lib/components/editor/side-bar/WorkspaceUpdateConflictResolver.d.ts.map +1 -1
  215. package/lib/components/editor/side-bar/WorkspaceUpdater.d.ts +0 -1
  216. package/lib/components/editor/side-bar/WorkspaceUpdater.d.ts.map +1 -1
  217. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts +0 -1
  218. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
  219. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +8 -2
  220. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
  221. package/lib/components/project-viewer/ProjectViewer.d.ts.map +1 -1
  222. package/lib/components/project-viewer/ProjectViewer.js +5 -6
  223. package/lib/components/project-viewer/ProjectViewer.js.map +1 -1
  224. package/lib/components/shared/DiffView.d.ts +0 -1
  225. package/lib/components/shared/DiffView.d.ts.map +1 -1
  226. package/lib/components/shared/StudioLambdaEditor.d.ts +0 -1
  227. package/lib/components/shared/StudioLambdaEditor.d.ts.map +1 -1
  228. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts +0 -1
  229. package/lib/components/workspace-review/WorkspaceReviewPanel.d.ts.map +1 -1
  230. package/lib/components/workspace-review/WorkspaceReviewSideBar.d.ts +0 -1
  231. package/lib/components/workspace-review/WorkspaceReviewSideBar.d.ts.map +1 -1
  232. package/lib/components/workspace-setup/ProjectCreateModal.d.ts +0 -1
  233. package/lib/components/workspace-setup/ProjectCreateModal.d.ts.map +1 -1
  234. package/lib/index.css +2 -2
  235. package/lib/index.css.map +1 -1
  236. package/lib/index.d.ts +4 -3
  237. package/lib/index.d.ts.map +1 -1
  238. package/lib/index.js +4 -3
  239. package/lib/index.js.map +1 -1
  240. package/lib/package.json +9 -9
  241. package/lib/stores/DSLMapping_LegendStudioApplicationPlugin_Extension.d.ts +0 -18
  242. package/lib/stores/DSLMapping_LegendStudioApplicationPlugin_Extension.d.ts.map +1 -1
  243. package/lib/stores/DSLService_LegendStudioApplicationPlugin_Extension.d.ts +0 -10
  244. package/lib/stores/DSLService_LegendStudioApplicationPlugin_Extension.d.ts.map +1 -1
  245. package/lib/stores/EditorGraphState.js +1 -1
  246. package/lib/stores/EditorStore.d.ts +3 -9
  247. package/lib/stores/EditorStore.d.ts.map +1 -1
  248. package/lib/stores/EditorStore.js +6 -54
  249. package/lib/stores/EditorStore.js.map +1 -1
  250. package/lib/stores/EmbeddedQueryBuilderState.d.ts +40 -0
  251. package/lib/stores/EmbeddedQueryBuilderState.d.ts.map +1 -0
  252. package/lib/stores/EmbeddedQueryBuilderState.js +80 -0
  253. package/lib/stores/EmbeddedQueryBuilderState.js.map +1 -0
  254. package/lib/stores/LegendStudioApplicationNavigationContext.d.ts +1 -0
  255. package/lib/stores/LegendStudioApplicationNavigationContext.d.ts.map +1 -1
  256. package/lib/stores/LegendStudioApplicationNavigationContext.js +1 -0
  257. package/lib/stores/LegendStudioApplicationNavigationContext.js.map +1 -1
  258. package/lib/stores/LegendStudioApplicationPlugin.d.ts +7 -7
  259. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  260. package/lib/stores/LegendStudioCodeSnippets.d.ts +2 -0
  261. package/lib/stores/LegendStudioCodeSnippets.d.ts.map +1 -1
  262. package/lib/stores/LegendStudioCodeSnippets.js +28 -0
  263. package/lib/stores/LegendStudioCodeSnippets.js.map +1 -1
  264. package/lib/stores/StoreRelational_LegendStudioApplicationPlugin_Extension.d.ts +41 -6
  265. package/lib/stores/StoreRelational_LegendStudioApplicationPlugin_Extension.d.ts.map +1 -1
  266. package/lib/stores/editor/NewElementState.d.ts +1 -1
  267. package/lib/stores/editor/NewElementState.d.ts.map +1 -1
  268. package/lib/stores/editor/NewElementState.js +5 -3
  269. package/lib/stores/editor/NewElementState.js.map +1 -1
  270. package/lib/stores/editor-state/ModelImporterState.d.ts.map +1 -1
  271. package/lib/stores/editor-state/ModelImporterState.js +10 -6
  272. package/lib/stores/editor-state/ModelImporterState.js.map +1 -1
  273. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +9 -2
  274. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
  275. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.js +40 -10
  276. package/lib/stores/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
  277. package/lib/stores/editor-state/element-editor-state/connection/PostProcessorEditorState.d.ts +30 -0
  278. package/lib/stores/editor-state/element-editor-state/connection/PostProcessorEditorState.d.ts.map +1 -0
  279. package/lib/stores/editor-state/element-editor-state/connection/PostProcessorEditorState.js +49 -0
  280. package/lib/stores/editor-state/element-editor-state/connection/PostProcessorEditorState.js.map +1 -0
  281. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts +29 -0
  282. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.d.ts.map +1 -0
  283. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js +42 -0
  284. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js.map +1 -0
  285. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +1 -1
  286. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  287. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts +2 -1
  288. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.d.ts.map +1 -1
  289. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js +6 -4
  290. package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.js.map +1 -1
  291. package/lib/stores/graphModifier/StoreRelational_GraphModifierHelper.d.ts +10 -1
  292. package/lib/stores/graphModifier/StoreRelational_GraphModifierHelper.d.ts.map +1 -1
  293. package/lib/stores/graphModifier/StoreRelational_GraphModifierHelper.js +27 -1
  294. package/lib/stores/graphModifier/StoreRelational_GraphModifierHelper.js.map +1 -1
  295. package/lib/stores/shared/DnDUtil.js +1 -1
  296. package/lib/stores/shared/PackageTreeUtil.js +6 -6
  297. package/lib/stores/shared/PackageTreeUtil.js.map +1 -1
  298. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.d.ts +1 -3
  299. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.d.ts.map +1 -1
  300. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js +1 -4
  301. package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js.map +1 -1
  302. package/package.json +17 -17
  303. package/src/application/LegendStudio.tsx +8 -2
  304. package/src/application/LegendStudioPluginManager.ts +2 -2
  305. package/src/components/DSLExternalFormat_LegendStudioApplicationPlugin.tsx +5 -5
  306. package/src/components/EditorComponentTestUtils.tsx +20 -35
  307. package/src/components/EmbeddedQueryBuilder.tsx +165 -0
  308. package/src/components/editor/Editor.tsx +77 -79
  309. package/src/components/editor/edit-panel/FunctionEditor.tsx +9 -2
  310. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +24 -2
  311. package/src/components/editor/edit-panel/UnsupportedElementEditor.tsx +1 -1
  312. package/src/components/editor/edit-panel/connection-editor/ConnectionEditor.tsx +6 -2
  313. package/src/components/editor/edit-panel/connection-editor/DatabaseBuilder.tsx +1 -1
  314. package/src/{stores/editor-state/element-editor-state/mapping/relational → components/editor/edit-panel/connection-editor}/DatabaseEditorHelper.tsx +0 -0
  315. package/src/components/editor/edit-panel/connection-editor/RelationalDatabaseConnectionEditor.tsx +371 -172
  316. package/src/components/editor/edit-panel/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +279 -0
  317. package/src/components/editor/edit-panel/data-editor/EmbeddedDataEditor.tsx +2 -1
  318. package/src/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.tsx +5 -1
  319. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +2 -2
  320. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +2 -9
  321. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +88 -15
  322. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.tsx +93 -0
  323. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +81 -16
  324. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +4 -3
  325. package/src/components/editor/edit-panel/mapping-editor/relational/TableOrViewSourceTree.tsx +1 -1
  326. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +6 -2
  327. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +115 -20
  328. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestDataEditor.tsx +12 -5
  329. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +3 -1
  330. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +21 -12
  331. package/src/components/editor/edit-panel/uml-editor/ClassQueryBuilder.tsx +159 -0
  332. package/src/components/editor/edit-panel/uml-editor/StereotypeSelector.tsx +7 -4
  333. package/src/components/editor/edit-panel/uml-editor/TaggedValueEditor.tsx +7 -4
  334. package/src/components/editor/side-bar/CreateNewElementModal.tsx +9 -3
  335. package/src/components/editor/side-bar/Explorer.tsx +20 -10
  336. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +13 -1
  337. package/src/components/project-viewer/ProjectViewer.tsx +36 -38
  338. package/src/index.ts +7 -3
  339. package/src/stores/DSLMapping_LegendStudioApplicationPlugin_Extension.ts +0 -27
  340. package/src/stores/DSLService_LegendStudioApplicationPlugin_Extension.ts +0 -14
  341. package/src/stores/EditorGraphState.ts +1 -1
  342. package/src/stores/EditorStore.ts +5 -81
  343. package/src/stores/EmbeddedQueryBuilderState.ts +105 -0
  344. package/src/stores/LegendStudioApplicationNavigationContext.ts +1 -0
  345. package/src/stores/LegendStudioApplicationPlugin.ts +7 -7
  346. package/src/stores/LegendStudioCodeSnippets.ts +34 -0
  347. package/src/stores/StoreRelational_LegendStudioApplicationPlugin_Extension.ts +74 -5
  348. package/src/stores/editor/NewElementState.ts +8 -7
  349. package/src/stores/editor-state/ModelImporterState.ts +15 -11
  350. package/src/stores/editor-state/element-editor-state/connection/ConnectionEditorState.ts +55 -9
  351. package/src/stores/editor-state/element-editor-state/connection/PostProcessorEditorState.ts +73 -0
  352. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.ts +58 -0
  353. package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +1 -1
  354. package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestDataState.ts +14 -4
  355. package/src/stores/graphModifier/StoreRelational_GraphModifierHelper.ts +64 -0
  356. package/src/stores/shared/DnDUtil.ts +1 -1
  357. package/src/stores/shared/PackageTreeUtil.ts +6 -6
  358. package/src/stores/sidebar-state/testable/GlobalTestRunnerState.ts +2 -9
  359. package/tsconfig.json +10 -3
  360. package/tsconfig.package.json +38 -0
  361. package/lib/stores/editor-state/element-editor-state/mapping/relational/DatabaseEditorHelper.d.ts.map +0 -1
  362. package/lib/stores/editor-state/element-editor-state/mapping/relational/DatabaseEditorHelper.js.map +0 -1
@@ -0,0 +1,279 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ ResizablePanelGroup,
19
+ ResizablePanel,
20
+ PanelHeaderActionItem,
21
+ PlusIcon,
22
+ ResizablePanelSplitter,
23
+ PanelTextEditor,
24
+ PanelForm,
25
+ ContextMenu,
26
+ MenuContent,
27
+ MenuContentItem,
28
+ DropdownMenu,
29
+ PanelListSelectorItem,
30
+ BlankPanelContent,
31
+ ResizablePanelSplitterLine,
32
+ Panel,
33
+ PanelHeader,
34
+ PanelContent,
35
+ } from '@finos/legend-art';
36
+ import {
37
+ type Mapper,
38
+ MapperPostProcessor,
39
+ TableNameMapper,
40
+ SchemaNameMapper,
41
+ } from '@finos/legend-graph';
42
+ import { observer } from 'mobx-react-lite';
43
+ import type { MapperPostProcessorEditorState } from '../../../../../stores/editor-state/element-editor-state/connection/PostProcessorEditorState.js';
44
+ import {
45
+ mapperPostProcessor_addMapper,
46
+ mapperPostProcessor_deleteMapper,
47
+ mapper_setFrom,
48
+ mapper_setTo,
49
+ schemaNameMapper_setFrom,
50
+ schemaNameMapper_setTo,
51
+ } from '../../../../../stores/graphModifier/StoreRelational_GraphModifierHelper.js';
52
+
53
+ export const MapperPostProcessorEditor = observer(
54
+ (props: {
55
+ postProcessor: MapperPostProcessor;
56
+ isReadOnly: boolean;
57
+ postProcessorState: MapperPostProcessorEditorState;
58
+ }) => {
59
+ const { postProcessorState, isReadOnly, postProcessor } = props;
60
+ const selectedMapper = postProcessorState.selectedMapper;
61
+
62
+ const selectedSchemaNameMapper =
63
+ selectedMapper instanceof TableNameMapper
64
+ ? selectedMapper.schema
65
+ : undefined;
66
+
67
+ const selectMapper = (val: Mapper): void => {
68
+ postProcessorState.setSelectedMapper(val);
69
+ };
70
+
71
+ const addSchemaMapper = (): void => {
72
+ mapperPostProcessor_addMapper(
73
+ postProcessor,
74
+ new SchemaNameMapper('', ''),
75
+ );
76
+ postProcessorState.setSelectedMapper(postProcessor.mappers.at(-1));
77
+ };
78
+
79
+ const addTableMapper = (): void => {
80
+ mapperPostProcessor_addMapper(
81
+ postProcessor,
82
+ new TableNameMapper('', '', new SchemaNameMapper('', '')),
83
+ );
84
+ postProcessorState.setSelectedMapper(postProcessor.mappers.at(-1));
85
+ };
86
+
87
+ const deleteMapper =
88
+ (mapper: Mapper): (() => void) =>
89
+ (): void => {
90
+ if (postProcessorState.postProcessor instanceof MapperPostProcessor) {
91
+ mapperPostProcessor_deleteMapper(
92
+ postProcessorState.postProcessor,
93
+ mapper,
94
+ );
95
+ }
96
+
97
+ if (mapper === postProcessorState.selectedMapper) {
98
+ postProcessorState.setSelectedMapper(undefined);
99
+ }
100
+ };
101
+
102
+ const mappers = postProcessor.mappers;
103
+
104
+ const isSchemaMapperDuplicated = (val: Mapper): boolean =>
105
+ mappers.filter(
106
+ (mapper) =>
107
+ mapper.from === val.from &&
108
+ mapper.to === val.to &&
109
+ val instanceof SchemaNameMapper &&
110
+ mapper instanceof SchemaNameMapper,
111
+ ).length >= 2;
112
+
113
+ const isTableMapperDuplicated = (val: Mapper): boolean =>
114
+ mappers
115
+ .filter(
116
+ (mapper) =>
117
+ val instanceof TableNameMapper && mapper instanceof TableNameMapper,
118
+ )
119
+ .filter(
120
+ (mapper) =>
121
+ (mapper as TableNameMapper).schema.from ===
122
+ (val as TableNameMapper).schema.from &&
123
+ (mapper as TableNameMapper).schema.from ===
124
+ (val as TableNameMapper).schema.from &&
125
+ (mapper as TableNameMapper).from ===
126
+ (val as TableNameMapper).from &&
127
+ (mapper as TableNameMapper).from === (val as TableNameMapper).from,
128
+ ).length >= 2;
129
+
130
+ const isMapperDuplicated = (val: Mapper): boolean =>
131
+ isSchemaMapperDuplicated(val) || isTableMapperDuplicated(val);
132
+
133
+ return (
134
+ <ResizablePanelGroup orientation="horizontal">
135
+ <ResizablePanel>
136
+ <ResizablePanelGroup orientation="vertical">
137
+ <ResizablePanel size={170} minSize={70}>
138
+ <Panel>
139
+ <PanelHeader title="mapper">
140
+ <DropdownMenu
141
+ disabled={isReadOnly}
142
+ content={
143
+ <MenuContent>
144
+ <MenuContentItem onClick={addSchemaMapper}>
145
+ New Schema Mapper
146
+ </MenuContentItem>
147
+ <MenuContentItem onClick={addTableMapper}>
148
+ New Table Mapper
149
+ </MenuContentItem>
150
+ </MenuContent>
151
+ }
152
+ menuProps={{
153
+ anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
154
+ transformOrigin: { vertical: 'top', horizontal: 'right' },
155
+ elevation: 7,
156
+ }}
157
+ >
158
+ <PanelHeaderActionItem
159
+ disabled={isReadOnly}
160
+ title="Create Mapper"
161
+ >
162
+ <PlusIcon />
163
+ </PanelHeaderActionItem>
164
+ </DropdownMenu>
165
+ </PanelHeader>
166
+ <PanelContent>
167
+ {mappers.map((mapper) => (
168
+ <ContextMenu
169
+ key={mapper._UUID}
170
+ disabled={isReadOnly}
171
+ content={
172
+ <MenuContent>
173
+ <MenuContentItem
174
+ disabled={isReadOnly}
175
+ onClick={deleteMapper(mapper)}
176
+ >
177
+ Delete
178
+ </MenuContentItem>
179
+ </MenuContent>
180
+ }
181
+ menuProps={{ elevation: 7 }}
182
+ >
183
+ <PanelListSelectorItem
184
+ title={
185
+ mapper instanceof TableNameMapper
186
+ ? 'Table Mapper'
187
+ : 'Schema Mapper'
188
+ }
189
+ validationErrorMessage={
190
+ isMapperDuplicated(mapper)
191
+ ? 'Mappers have the same values'
192
+ : undefined
193
+ }
194
+ isSelected={
195
+ mapper === postProcessorState.selectedMapper
196
+ }
197
+ onSelect={() => selectMapper(mapper)}
198
+ />
199
+ </ContextMenu>
200
+ ))}
201
+ </PanelContent>{' '}
202
+ </Panel>
203
+ </ResizablePanel>
204
+ <ResizablePanelSplitter>
205
+ <ResizablePanelSplitterLine color="var(--color-dark-grey-200)" />
206
+ </ResizablePanelSplitter>
207
+ <ResizablePanel>
208
+ <Panel>
209
+ <PanelHeader
210
+ title={
211
+ postProcessorState.selectedMapper instanceof TableNameMapper
212
+ ? 'Table Mapper'
213
+ : 'Schema Mapper'
214
+ }
215
+ ></PanelHeader>
216
+ <PanelContent>
217
+ {!selectedMapper && (
218
+ <BlankPanelContent>
219
+ {!mappers.length
220
+ ? 'Add a mapper'
221
+ : 'Select a mapper to view'}
222
+ </BlankPanelContent>
223
+ )}
224
+ {selectedMapper && (
225
+ <PanelForm>
226
+ <PanelTextEditor
227
+ isReadOnly={isReadOnly}
228
+ value={selectedMapper.from}
229
+ name="From"
230
+ update={(value: string | undefined): void =>
231
+ mapper_setFrom(selectedMapper, value ?? '')
232
+ }
233
+ />
234
+ <PanelTextEditor
235
+ isReadOnly={isReadOnly}
236
+ value={selectedMapper.to}
237
+ name="To"
238
+ update={(value: string | undefined): void =>
239
+ mapper_setTo(selectedMapper, value ?? '')
240
+ }
241
+ />
242
+
243
+ {selectedSchemaNameMapper && (
244
+ <>
245
+ <PanelTextEditor
246
+ isReadOnly={isReadOnly}
247
+ value={selectedSchemaNameMapper.from}
248
+ name="Schema - From"
249
+ update={(value: string | undefined): void => {
250
+ schemaNameMapper_setFrom(
251
+ selectedSchemaNameMapper,
252
+ value ?? '',
253
+ );
254
+ }}
255
+ />
256
+ <PanelTextEditor
257
+ isReadOnly={isReadOnly}
258
+ value={selectedSchemaNameMapper.to}
259
+ name="Schema - To"
260
+ update={(value: string | undefined): void =>
261
+ schemaNameMapper_setTo(
262
+ selectedSchemaNameMapper,
263
+ value ?? '',
264
+ )
265
+ }
266
+ />
267
+ </>
268
+ )}
269
+ </PanelForm>
270
+ )}
271
+ </PanelContent>
272
+ </Panel>
273
+ </ResizablePanel>
274
+ </ResizablePanelGroup>
275
+ </ResizablePanel>
276
+ </ResizablePanelGroup>
277
+ );
278
+ },
279
+ );
@@ -157,7 +157,8 @@ export const DataElementReferenceDataEditor = observer(
157
157
  const dataElement =
158
158
  dataElementReferenceState.embeddedData.dataElement.value;
159
159
  const editorStore = dataElementReferenceState.editorStore;
160
- const options = editorStore.dataOptions;
160
+ const options =
161
+ editorStore.graphManagerState.usableDataElements.map(buildElementOption);
161
162
  const selectedOption = buildElementOption(dataElement);
162
163
  const onDataElementChange = (val: {
163
164
  label: string;
@@ -89,7 +89,11 @@ const EnumerationMappingSourceSelectorModal = observer(
89
89
  ),
90
90
  ]
91
91
  .map(buildElementOption)
92
- .concat(editorStore.enumerationOptions);
92
+ .concat(
93
+ editorStore.graphManagerState.usableEnumerations.map(
94
+ buildElementOption,
95
+ ),
96
+ );
93
97
 
94
98
  const sourceSelectorRef = useRef<SelectComponent>(null);
95
99
  const filterOption = createFilter({
@@ -363,7 +363,7 @@ export const InstanceSetImplementationSourceExplorer = observer(
363
363
  {isUnsupported && (
364
364
  <UnsupportedEditorPanel
365
365
  isReadOnly={isReadOnly}
366
- text={`Can't display class mapping source in form mode`}
366
+ text="Can't display class mapping source in form mode"
367
367
  ></UnsupportedEditorPanel>
368
368
  )}
369
369
  {sourceElementForSourceSelectorModal !== undefined && (
@@ -573,7 +573,7 @@ export const InstanceSetImplementationEditor = observer(
573
573
  {isUnsupported && (
574
574
  <UnsupportedEditorPanel
575
575
  isReadOnly={isReadOnly}
576
- text={`Can't display class mapping in form mode`}
576
+ text="Can't display class mapping in form mode"
577
577
  ></UnsupportedEditorPanel>
578
578
  )}
579
579
  </div>
@@ -128,22 +128,15 @@ export const InstanceSetImplementationSourceSelectorModal = observer(
128
128
  const editorStore = useEditorStore();
129
129
  const applicationStore = useApplicationStore();
130
130
  const options = (
131
- editorStore.graphManagerState.graph.ownClasses as MappingElementSource[]
131
+ editorStore.graphManagerState.usableClasses as MappingElementSource[]
132
132
  )
133
- .concat(
134
- editorStore.graphManagerState.graph.dependencyManager
135
- .classes as MappingElementSource[],
136
- )
137
133
  .concat(
138
134
  editorStore.graphManagerState.graph.ownFlatDatas.flatMap(
139
135
  getAllRecordTypes,
140
136
  ),
141
137
  )
142
138
  .concat(
143
- editorStore.graphManagerState.graph.ownDatabases
144
- .concat(
145
- editorStore.graphManagerState.graph.dependencyManager.databases,
146
- )
139
+ editorStore.graphManagerState.usableDatabases
147
140
  .flatMap((e) =>
148
141
  e.schemas.flatMap((schema) =>
149
142
  (schema.tables as (Table | View)[]).concat(schema.views),
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { Fragment, useState, useRef, useCallback } from 'react';
17
+ import { useState, useRef, useCallback } from 'react';
18
18
  import { flowResult } from 'mobx';
19
19
  import {
20
20
  Dialog,
@@ -38,6 +38,7 @@ import {
38
38
  RefreshIcon,
39
39
  RobotIcon,
40
40
  PanelDropZone,
41
+ PencilIcon,
41
42
  } from '@finos/legend-art';
42
43
  import { observer } from 'mobx-react-lite';
43
44
  import {
@@ -52,7 +53,12 @@ import {
52
53
  type MappingElementDragSource,
53
54
  CORE_DND_TYPE,
54
55
  } from '../../../../stores/shared/DnDUtil.js';
55
- import { guaranteeType, uniq } from '@finos/legend-shared';
56
+ import {
57
+ assertErrorThrown,
58
+ guaranteeType,
59
+ hashObject,
60
+ uniq,
61
+ } from '@finos/legend-shared';
56
62
  import {
57
63
  type MappingExecutionState,
58
64
  MappingExecutionEmptyInputDataState,
@@ -78,13 +84,14 @@ import {
78
84
  isStubbed_RawLambda,
79
85
  } from '@finos/legend-graph';
80
86
  import { StudioTextInputEditor } from '../../../shared/StudioTextInputEditor.js';
81
- import type { DSLMapping_LegendStudioApplicationPlugin_Extension } from '../../../../stores/DSLMapping_LegendStudioApplicationPlugin_Extension.js';
82
87
  import { objectInputData_setData } from '../../../../stores/graphModifier/DSLMapping_GraphModifierHelper.js';
83
88
  import { flatData_setData } from '../../../../stores/graphModifier/StoreFlatData_GraphModifierHelper.js';
84
89
  import {
85
90
  relationalInputData_setData,
86
91
  relationalInputData_setInputType,
87
92
  } from '../../../../stores/graphModifier/StoreRelational_GraphModifierHelper.js';
93
+ import { MappingExecutionQueryBuilderState } from '../../../../stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js';
94
+ import type { QueryBuilderState } from '@finos/legend-query-builder';
88
95
 
89
96
  interface ClassMappingSelectOption {
90
97
  label: string;
@@ -179,17 +186,76 @@ const MappingExecutionQueryEditor = observer(
179
186
  const editorStore = useEditorStore();
180
187
  const applicationStore = useApplicationStore();
181
188
 
182
- const extraQueryEditorActions = editorStore.pluginManager
183
- .getApplicationPlugins()
184
- .flatMap(
185
- (plugin) =>
186
- (
187
- plugin as DSLMapping_LegendStudioApplicationPlugin_Extension
188
- ).getExtraMappingExecutionQueryEditorActionConfigurations?.() ?? [],
189
- )
190
- .map((config) => (
191
- <Fragment key={config.key}>{config.renderer(executionState)}</Fragment>
192
- ));
189
+ // actions
190
+ const editWithQueryBuilder = applicationStore.guardUnhandledError(
191
+ async () => {
192
+ const embeddedQueryBuilderState = editorStore.embeddedQueryBuilderState;
193
+ await flowResult(
194
+ embeddedQueryBuilderState.setEmbeddedQueryBuilderConfiguration({
195
+ setupQueryBuilderState: (): QueryBuilderState => {
196
+ const queryBuilderState = new MappingExecutionQueryBuilderState(
197
+ executionState.mappingEditorState.mapping,
198
+ embeddedQueryBuilderState.editorStore.applicationStore,
199
+ embeddedQueryBuilderState.editorStore.graphManagerState,
200
+ );
201
+ queryBuilderState.initializeWithQuery(
202
+ executionState.queryState.query,
203
+ );
204
+ queryBuilderState.changeDetectionState.setQueryHashCode(
205
+ hashObject(executionState.queryState.query),
206
+ );
207
+ queryBuilderState.changeDetectionState.setIsEnabled(true);
208
+ return queryBuilderState;
209
+ },
210
+ actionConfigs: [
211
+ {
212
+ key: 'save-query-btn',
213
+ renderer: (
214
+ queryBuilderState: QueryBuilderState,
215
+ ): React.ReactNode => {
216
+ const save = applicationStore.guardUnhandledError(
217
+ async (): Promise<void> => {
218
+ try {
219
+ const rawLambda = queryBuilderState.buildQuery();
220
+ await flowResult(
221
+ executionState.queryState.updateLamba(rawLambda),
222
+ );
223
+ applicationStore.notifySuccess(
224
+ `Mapping execution query is updated`,
225
+ );
226
+ queryBuilderState.changeDetectionState.setQueryHashCode(
227
+ hashObject(rawLambda),
228
+ );
229
+ embeddedQueryBuilderState.setEmbeddedQueryBuilderConfiguration(
230
+ undefined,
231
+ );
232
+ } catch (error) {
233
+ assertErrorThrown(error);
234
+ applicationStore.notifyError(
235
+ `Can't save query: ${error.message}`,
236
+ );
237
+ }
238
+ },
239
+ );
240
+ return (
241
+ <button
242
+ className="query-builder__dialog__header__custom-action"
243
+ tabIndex={-1}
244
+ onClick={save}
245
+ >
246
+ Save Query
247
+ </button>
248
+ );
249
+ },
250
+ },
251
+ ],
252
+ disableCompile: isStubbed_RawLambda(
253
+ executionState.queryState.query,
254
+ ),
255
+ }),
256
+ );
257
+ },
258
+ );
193
259
 
194
260
  // Class mapping selector
195
261
  const [openClassMappingSelectorModal, setOpenClassMappingSelectorModal] =
@@ -309,7 +375,14 @@ const MappingExecutionQueryEditor = observer(
309
375
  <div className="panel__header__title__label">query</div>
310
376
  </div>
311
377
  <div className="panel__header__actions">
312
- {extraQueryEditorActions}
378
+ <button
379
+ className="panel__header__action"
380
+ tabIndex={-1}
381
+ onClick={editWithQueryBuilder}
382
+ title="Edit query..."
383
+ >
384
+ <PencilIcon />
385
+ </button>
313
386
  <button
314
387
  className="panel__header__action"
315
388
  tabIndex={-1}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import { observer } from 'mobx-react-lite';
18
+ import {
19
+ buildElementOption,
20
+ getPackageableElementOptionFormatter,
21
+ useApplicationStore,
22
+ } from '@finos/legend-application';
23
+ import { CustomSelectorInput, PURE_MappingIcon } from '@finos/legend-art';
24
+ import { getMappingCompatibleClasses } from '@finos/legend-graph';
25
+ import { QueryBuilderClassSelector } from '@finos/legend-query-builder';
26
+ import type { MappingExecutionQueryBuilderState } from '../../../../stores/editor-state/element-editor-state/mapping/MappingExecutionQueryBuilderState.js';
27
+
28
+ /**
29
+ * This setup panel supports limited cascading, we will only show:
30
+ * - For class selector: the list of compatible class with the specified mapping
31
+ */
32
+ const MappingExecutionQueryBuilderSetupPanelContent = observer(
33
+ (props: { queryBuilderState: MappingExecutionQueryBuilderState }) => {
34
+ const { queryBuilderState } = props;
35
+ const applicationStore = useApplicationStore();
36
+
37
+ // mapping
38
+ const selectedMappingOption = buildElementOption(
39
+ queryBuilderState.executionMapping,
40
+ );
41
+
42
+ // class
43
+ const classes = getMappingCompatibleClasses(
44
+ queryBuilderState.executionMapping,
45
+ queryBuilderState.graphManagerState.usableClasses,
46
+ );
47
+
48
+ return (
49
+ <>
50
+ <div className="query-builder__setup__config-group">
51
+ <div className="query-builder__setup__config-group__header">
52
+ <div className="query-builder__setup__config-group__header__title">
53
+ execution context
54
+ </div>
55
+ </div>
56
+ <div className="query-builder__setup__config-group__content">
57
+ <div className="query-builder__setup__config-group__item">
58
+ <div
59
+ className="btn--sm query-builder__setup__config-group__item__label"
60
+ title="mapping"
61
+ >
62
+ <PURE_MappingIcon />
63
+ </div>
64
+ <CustomSelectorInput
65
+ className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
66
+ disabled={true}
67
+ options={[]}
68
+ value={selectedMappingOption}
69
+ darkMode={!applicationStore.TEMPORARY__isLightThemeEnabled}
70
+ formatOptionLabel={getPackageableElementOptionFormatter({
71
+ darkMode: !applicationStore.TEMPORARY__isLightThemeEnabled,
72
+ })}
73
+ />
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <QueryBuilderClassSelector
78
+ queryBuilderState={queryBuilderState}
79
+ classes={classes}
80
+ noMatchMessage="No compatible class found for specified mapping"
81
+ />
82
+ </>
83
+ );
84
+ },
85
+ );
86
+
87
+ export const renderMappingExecutionQueryBuilderSetupPanelContent = (
88
+ queryBuilderState: MappingExecutionQueryBuilderState,
89
+ ): React.ReactNode => (
90
+ <MappingExecutionQueryBuilderSetupPanelContent
91
+ queryBuilderState={queryBuilderState}
92
+ />
93
+ );