@finos/legend-application-studio 26.0.2 → 26.0.4

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 (182) hide show
  1. package/lib/application/LegendStudioApplicationConfig.d.ts +10 -13
  2. package/lib/application/LegendStudioApplicationConfig.d.ts.map +1 -1
  3. package/lib/application/LegendStudioApplicationConfig.js +11 -10
  4. package/lib/application/LegendStudioApplicationConfig.js.map +1 -1
  5. package/lib/components/ElementIconUtils.d.ts +1 -1
  6. package/lib/components/ElementIconUtils.d.ts.map +1 -1
  7. package/lib/components/ElementIconUtils.js +11 -5
  8. package/lib/components/ElementIconUtils.js.map +1 -1
  9. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.d.ts.map +1 -1
  10. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js +2 -0
  11. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js.map +1 -1
  12. package/lib/components/editor/editor-group/EditorGroup.d.ts.map +1 -1
  13. package/lib/components/editor/editor-group/EditorGroup.js +7 -1
  14. package/lib/components/editor/editor-group/EditorGroup.js.map +1 -1
  15. package/lib/components/editor/editor-group/FunctionEditor.d.ts +0 -16
  16. package/lib/components/editor/editor-group/FunctionEditor.d.ts.map +1 -1
  17. package/lib/components/editor/editor-group/FunctionEditor.js +79 -26
  18. package/lib/components/editor/editor-group/FunctionEditor.js.map +1 -1
  19. package/lib/components/editor/editor-group/{service-editor/TEMPORARY__SnowflakeServiceDeployer.d.ts → INTERNAL__UnknownFunctionActivatorEdtior.d.ts} +2 -2
  20. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.d.ts.map +1 -0
  21. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js +49 -0
  22. package/lib/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.js.map +1 -0
  23. package/lib/components/editor/editor-group/ModelImporter.js +1 -1
  24. package/lib/components/editor/editor-group/ModelImporter.js.map +1 -1
  25. package/lib/components/editor/editor-group/ProtocolValueBuilder.d.ts +22 -0
  26. package/lib/components/editor/editor-group/ProtocolValueBuilder.d.ts.map +1 -0
  27. package/lib/components/editor/editor-group/ProtocolValueBuilder.js +88 -0
  28. package/lib/components/editor/editor-group/ProtocolValueBuilder.js.map +1 -0
  29. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  30. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +5 -1
  31. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  32. package/lib/components/editor/editor-group/connection-editor/post-processor-editor/MapperPostProcessorEditor.js +1 -1
  33. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts +1 -1
  34. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  35. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
  36. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js +1 -1
  37. package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js +3 -3
  38. package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  39. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  40. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +3 -3
  41. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  42. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +1 -1
  43. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
  44. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js +1 -1
  45. package/lib/components/editor/editor-group/mapping-editor/MappingEditor.js.map +1 -1
  46. package/lib/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.d.ts +1 -1
  47. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.d.ts.map +1 -0
  48. package/lib/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.js +11 -11
  49. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -0
  50. package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js +4 -4
  51. package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  52. package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js +4 -4
  53. package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  54. package/lib/components/editor/editor-group/service-editor/ServiceEditor.d.ts.map +1 -1
  55. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js +0 -7
  56. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js.map +1 -1
  57. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js +3 -3
  58. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js.map +1 -1
  59. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js +3 -3
  60. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js.map +1 -1
  61. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.d.ts.map +1 -1
  62. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js +6 -2
  63. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js.map +1 -1
  64. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.d.ts.map +1 -1
  65. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js +10 -2
  66. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js.map +1 -1
  67. package/lib/components/workspace-setup/WorkspaceSetup.js +1 -1
  68. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  69. package/lib/index.css +2 -2
  70. package/lib/index.css.map +1 -1
  71. package/lib/package.json +2 -2
  72. package/lib/stores/LegendStudioApplicationPlugin.d.ts +1 -1
  73. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  74. package/lib/stores/editor/EditorGraphState.d.ts +3 -1
  75. package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
  76. package/lib/stores/editor/EditorGraphState.js +14 -0
  77. package/lib/stores/editor/EditorGraphState.js.map +1 -1
  78. package/lib/stores/editor/EditorStore.d.ts +5 -5
  79. package/lib/stores/editor/EditorStore.d.ts.map +1 -1
  80. package/lib/stores/editor/EditorStore.js +12 -7
  81. package/lib/stores/editor/EditorStore.js.map +1 -1
  82. package/lib/stores/editor/EditorTabManagerState.d.ts.map +1 -1
  83. package/lib/stores/editor/EditorTabManagerState.js +5 -1
  84. package/lib/stores/editor/EditorTabManagerState.js.map +1 -1
  85. package/lib/stores/editor/editor-state/ExternalFormatState.d.ts +3 -3
  86. package/lib/stores/editor/editor-state/ExternalFormatState.d.ts.map +1 -1
  87. package/lib/stores/editor/editor-state/ExternalFormatState.js +14 -14
  88. package/lib/stores/editor/editor-state/ExternalFormatState.js.map +1 -1
  89. package/lib/stores/editor/editor-state/GraphGenerationState.d.ts +2 -2
  90. package/lib/stores/editor/editor-state/GraphGenerationState.d.ts.map +1 -1
  91. package/lib/stores/editor/editor-state/GraphGenerationState.js +1 -1
  92. package/lib/stores/editor/editor-state/GraphGenerationState.js.map +1 -1
  93. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.d.ts +34 -0
  94. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.d.ts.map +1 -0
  95. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.js +118 -0
  96. package/lib/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.js.map +1 -0
  97. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.d.ts +10 -8
  98. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.d.ts.map +1 -1
  99. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js +16 -13
  100. package/lib/stores/editor/editor-state/element-editor-state/FunctionEditorState.js.map +1 -1
  101. package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.d.ts +31 -0
  102. package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.d.ts.map +1 -0
  103. package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js +91 -0
  104. package/lib/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js.map +1 -0
  105. package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.d.ts +69 -0
  106. package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.d.ts.map +1 -0
  107. package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.js +243 -0
  108. package/lib/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.js.map +1 -0
  109. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +2 -0
  110. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
  111. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js +8 -1
  112. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
  113. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts +2 -13
  114. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.d.ts.map +1 -1
  115. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js +1 -39
  116. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
  117. package/lib/stores/editor/utils/MockDataUtils.d.ts +0 -1
  118. package/lib/stores/editor/utils/MockDataUtils.d.ts.map +1 -1
  119. package/lib/stores/editor/utils/MockDataUtils.js +7 -20
  120. package/lib/stores/editor/utils/MockDataUtils.js.map +1 -1
  121. package/lib/stores/editor/utils/PackageTreeUtils.js +1 -1
  122. package/lib/stores/editor/utils/PackageTreeUtils.js.map +1 -1
  123. package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts +3 -1
  124. package/lib/stores/graph-modifier/DomainGraphModifierHelper.d.ts.map +1 -1
  125. package/lib/stores/graph-modifier/DomainGraphModifierHelper.js +4 -1
  126. package/lib/stores/graph-modifier/DomainGraphModifierHelper.js.map +1 -1
  127. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts +1 -0
  128. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
  129. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js +3 -0
  130. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
  131. package/lib/stores/project-view/ProjectViewerStore.js +7 -3
  132. package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
  133. package/package.json +12 -12
  134. package/src/application/LegendStudioApplicationConfig.ts +14 -20
  135. package/src/components/ElementIconUtils.tsx +14 -2
  136. package/src/components/editor/__test-utils__/EditorComponentTestUtils.tsx +2 -0
  137. package/src/components/editor/editor-group/EditorGroup.tsx +12 -1
  138. package/src/components/editor/editor-group/FunctionEditor.tsx +331 -85
  139. package/src/components/editor/editor-group/INTERNAL__UnknownFunctionActivatorEdtior.tsx +129 -0
  140. package/src/components/editor/editor-group/ModelImporter.tsx +1 -1
  141. package/src/components/editor/editor-group/ProtocolValueBuilder.tsx +225 -0
  142. package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +26 -1
  143. package/src/components/editor/editor-group/connection-editor/post-processor-editor/MapperPostProcessorEditor.tsx +1 -1
  144. package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +7 -28
  145. package/src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx +1 -1
  146. package/src/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.tsx +4 -4
  147. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +2 -3
  148. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +1 -1
  149. package/src/components/editor/editor-group/mapping-editor/MappingEditor.tsx +1 -1
  150. package/src/components/editor/{edit-panel/mapping-editor/testable → editor-group/mapping-editor}/MappingTestableEditor.tsx +13 -13
  151. package/src/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.tsx +5 -5
  152. package/src/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +5 -5
  153. package/src/components/editor/editor-group/service-editor/ServiceEditor.tsx +0 -10
  154. package/src/components/editor/editor-group/service-editor/ServicePostValidationEditor.tsx +3 -3
  155. package/src/components/editor/editor-group/uml-editor/ClassEditor.tsx +3 -3
  156. package/src/components/editor/editor-group/uml-editor/StereotypeSelector.tsx +12 -11
  157. package/src/components/editor/editor-group/uml-editor/TaggedValueEditor.tsx +18 -20
  158. package/src/components/workspace-setup/WorkspaceSetup.tsx +1 -1
  159. package/src/stores/LegendStudioApplicationPlugin.ts +14 -5
  160. package/src/stores/editor/EditorGraphState.ts +24 -0
  161. package/src/stores/editor/EditorStore.ts +16 -7
  162. package/src/stores/editor/EditorTabManagerState.ts +7 -0
  163. package/src/stores/editor/editor-state/ExternalFormatState.ts +14 -16
  164. package/src/stores/editor/editor-state/GraphGenerationState.ts +3 -2
  165. package/src/stores/editor/editor-state/element-editor-state/FunctionActivatorBuilderState.ts +178 -0
  166. package/src/stores/editor/editor-state/element-editor-state/FunctionEditorState.ts +21 -13
  167. package/src/stores/editor/editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.ts +136 -0
  168. package/src/stores/editor/editor-state/element-editor-state/ProtocolValueBuilderState.ts +364 -0
  169. package/src/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.ts +12 -0
  170. package/src/stores/editor/editor-state/element-editor-state/service/ServiceEditorState.ts +0 -53
  171. package/src/stores/editor/utils/MockDataUtils.ts +7 -28
  172. package/src/stores/editor/utils/PackageTreeUtils.ts +1 -1
  173. package/src/stores/graph-modifier/DomainGraphModifierHelper.ts +9 -1
  174. package/src/stores/graph-modifier/STO_Relational_GraphModifierHelper.ts +6 -0
  175. package/src/stores/project-view/ProjectViewerStore.ts +6 -6
  176. package/tsconfig.json +6 -2
  177. package/lib/components/editor/edit-panel/mapping-editor/testable/MappingTestableEditor.d.ts.map +0 -1
  178. package/lib/components/editor/edit-panel/mapping-editor/testable/MappingTestableEditor.js.map +0 -1
  179. package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.d.ts.map +0 -1
  180. package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.js +0 -39
  181. package/lib/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.js.map +0 -1
  182. package/src/components/editor/editor-group/service-editor/TEMPORARY__SnowflakeServiceDeployer.tsx +0 -79
@@ -50,7 +50,7 @@ import {
50
50
  CLASS_PROPERTY_TYPE,
51
51
  getClassPropertyType,
52
52
  } from '../../../../stores/editor/utils/ModelClassifierUtils.js';
53
- import { LambdaEditor } from '@finos/legend-query-builder';
53
+ import { InlineLambdaEditor } from '@finos/legend-query-builder';
54
54
 
55
55
  const SimplePropertyMappingEditor = observer(
56
56
  (props: {
@@ -82,7 +82,7 @@ const SimplePropertyMappingEditor = observer(
82
82
  return (
83
83
  <div className="property-mapping-editor__entry__container">
84
84
  <div ref={drop} className="property-mapping-editor__entry">
85
- <LambdaEditor
85
+ <InlineLambdaEditor
86
86
  className={clsx({ 'lambda-editor--dnd-match': canDrop })}
87
87
  disabled={transformProps.disableTransform}
88
88
  lambdaEditorState={propertyMappingState}
@@ -198,7 +198,7 @@ const EnumerationPropertyMappingEditor = observer(
198
198
  options={options}
199
199
  onChange={handleSelectionChange}
200
200
  value={{ value: transformerLabel, label: transformerLabel }}
201
- placeholder="Select an existing enumeration mapping"
201
+ placeholder="Choose an existing enumeration mapping"
202
202
  />
203
203
  <button
204
204
  className="property-mapping-editor__entry__visit-btn"
@@ -209,7 +209,7 @@ const EnumerationPropertyMappingEditor = observer(
209
209
  <ArrowCircleRightIcon />
210
210
  </button>
211
211
  </div>
212
- <LambdaEditor
212
+ <InlineLambdaEditor
213
213
  className={clsx(
214
214
  'property-mapping-editor__entry__enumeration__transform',
215
215
  { 'lambda-editor--dnd-match': canDrop },
@@ -297,7 +297,7 @@ const ClassPropertyMappingEditor = observer(
297
297
  <ArrowCircleRightIcon />
298
298
  </button>
299
299
  </div>
300
- <LambdaEditor
300
+ <InlineLambdaEditor
301
301
  className={clsx({ 'lambda-editor--dnd-match': canDrop })}
302
302
  disabled={transformProps.disableTransform}
303
303
  lambdaEditorState={propertyMappingState}
@@ -51,7 +51,7 @@ import {
51
51
  CLASS_PROPERTY_TYPE,
52
52
  getClassPropertyType,
53
53
  } from '../../../../../stores/editor/utils/ModelClassifierUtils.js';
54
- import { LambdaEditor } from '@finos/legend-query-builder';
54
+ import { InlineLambdaEditor } from '@finos/legend-query-builder';
55
55
 
56
56
  const SimplePropertyMappingEditor = observer(
57
57
  (props: {
@@ -67,7 +67,7 @@ const SimplePropertyMappingEditor = observer(
67
67
  return (
68
68
  <div className="property-mapping-editor__entry__container">
69
69
  <div ref={drop} className="property-mapping-editor__entry">
70
- <LambdaEditor
70
+ <InlineLambdaEditor
71
71
  disabled={transformProps.disableTransform}
72
72
  lambdaEditorState={propertyMappingState}
73
73
  forceBackdrop={transformProps.forceBackdrop}
@@ -157,7 +157,7 @@ const EnumerationPropertyMappingEditor = observer(
157
157
  options={options}
158
158
  onChange={handleSelectionChange}
159
159
  value={{ value: transformerLabel, label: transformerLabel }}
160
- placeholder="Select an existing enumeration mapping"
160
+ placeholder="Choose an existing enumeration mapping"
161
161
  />
162
162
  <button
163
163
  className="property-mapping-editor__entry__visit-btn"
@@ -168,7 +168,7 @@ const EnumerationPropertyMappingEditor = observer(
168
168
  <ArrowCircleRightIcon />
169
169
  </button>
170
170
  </div>
171
- <LambdaEditor
171
+ <InlineLambdaEditor
172
172
  className={clsx(
173
173
  'property-mapping-editor__entry__enumeration__transform',
174
174
  )}
@@ -249,7 +249,7 @@ const ClassPropertyMappingEditor = observer(
249
249
  <ArrowCircleRightIcon />
250
250
  </button>
251
251
  </div>
252
- <LambdaEditor
252
+ <InlineLambdaEditor
253
253
  disabled={transformProps.disableTransform}
254
254
  lambdaEditorState={propertyMappingState}
255
255
  forceBackdrop={transformProps.forceBackdrop}
@@ -36,7 +36,6 @@ import { debounce, prettyCONSTName } from '@finos/legend-shared';
36
36
  import { ServiceExecutionEditor } from './ServiceExecutionEditor.js';
37
37
  import { LEGEND_STUDIO_TEST_ID } from '../../../../__lib__/LegendStudioTesting.js';
38
38
  import { ServiceRegistrationEditor } from './ServiceRegistrationEditor.js';
39
- import { TEMPORARY__SnowflakeServiceDeployer } from './TEMPORARY__SnowflakeServiceDeployer.js';
40
39
  import { useEditorStore } from '../../EditorStoreProvider.js';
41
40
  import {
42
41
  service_addOwner,
@@ -475,8 +474,6 @@ export const ServiceEditor = observer(() => {
475
474
  validationState={serviceState.postValidationState}
476
475
  />
477
476
  );
478
- case SERVICE_TAB.TEMPORARY__SNOWFLAKE_SERVICE_DEPLOYMENT:
479
- return <TEMPORARY__SnowflakeServiceDeployer />;
480
477
  default:
481
478
  return null;
482
479
  }
@@ -522,13 +519,6 @@ export const ServiceEditor = observer(() => {
522
519
  editorStore.applicationStore.config.options
523
520
  .TEMPORARY__serviceRegistrationConfig.length,
524
521
  );
525
- } else if (
526
- tab === SERVICE_TAB.TEMPORARY__SNOWFLAKE_SERVICE_DEPLOYMENT
527
- ) {
528
- return Boolean(
529
- editorStore.applicationStore.config
530
- .TEMPORARY__snowflakeServiceDeploymentUrl,
531
- );
532
522
  }
533
523
  return true;
534
524
  })
@@ -47,7 +47,7 @@ import {
47
47
  serviceValidation_setASsertionId,
48
48
  serviceValidation_setDescription,
49
49
  } from '../../../../stores/graph-modifier/DSL_Service_GraphModifierHelper.js';
50
- import { LambdaEditor } from '@finos/legend-query-builder';
50
+ import { InlineLambdaEditor } from '@finos/legend-query-builder';
51
51
  import { flowResult } from 'mobx';
52
52
 
53
53
  const ServicePostValidationAssertionEditor = observer(
@@ -106,7 +106,7 @@ const ServicePostValidationAssertionEditor = observer(
106
106
  { backdrop__element: hasParserError },
107
107
  )}
108
108
  >
109
- <LambdaEditor
109
+ <InlineLambdaEditor
110
110
  className="service-post-validation-editor__lambda-editor"
111
111
  disabled={isReadOnly || postValState.isRunningLambdaConversion}
112
112
  lambdaEditorState={assertionState}
@@ -158,7 +158,7 @@ const ServicePostValidationParameterEditor = observer(
158
158
  { backdrop__element: hasParserError },
159
159
  )}
160
160
  >
161
- <LambdaEditor
161
+ <InlineLambdaEditor
162
162
  className="service-post-validation-editor__lambda-editor"
163
163
  disabled={isReadOnly || postValState.isRunningLambdaConversion}
164
164
  lambdaEditorState={paramState}
@@ -134,7 +134,7 @@ import {
134
134
  getClassPropertyType,
135
135
  } from '../../../../stores/editor/utils/ModelClassifierUtils.js';
136
136
  import { LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY } from '../../../../__lib__/LegendStudioApplicationNavigationContext.js';
137
- import { LambdaEditor } from '@finos/legend-query-builder';
137
+ import { InlineLambdaEditor } from '@finos/legend-query-builder';
138
138
 
139
139
  type ClassPropertyDragSource = {
140
140
  property: Property;
@@ -836,7 +836,7 @@ const DerivedPropertyBasicEditor = observer(
836
836
  </button>
837
837
  )}
838
838
  </div>
839
- <LambdaEditor
839
+ <InlineLambdaEditor
840
840
  disabled={
841
841
  editorState.classState
842
842
  .isConvertingDerivedPropertyLambdaObjects ||
@@ -1006,7 +1006,7 @@ const ConstraintEditor = observer(
1006
1006
  </button>
1007
1007
  )}
1008
1008
  </div>
1009
- <LambdaEditor
1009
+ <InlineLambdaEditor
1010
1010
  disabled={
1011
1011
  editorState.classState.isConvertingConstraintLambdaObjects ||
1012
1012
  isReadOnly ||
@@ -25,6 +25,7 @@ import {
25
25
  PanelDnDEntry,
26
26
  DragPreviewLayer,
27
27
  useDragPreviewLayer,
28
+ clsx,
28
29
  } from '@finos/legend-art';
29
30
  import { useEditorStore } from '../../EditorStoreProvider.js';
30
31
  import {
@@ -182,12 +183,12 @@ export const StereotypeSelector = observer(
182
183
  dropTargetConnector={handleRef}
183
184
  isBeingDragged={isBeingDragged}
184
185
  />
185
- <div className="stereotype-selector">
186
- <div
187
- className={`stereotype-selector__profile ${
188
- darkTheme ? 'stereotype-selector-dark-theme' : ''
189
- } stereotype-selector__profile`}
190
- >
186
+ <div
187
+ className={clsx('stereotype-selector', {
188
+ 'stereotype-selector--dark': darkTheme,
189
+ })}
190
+ >
191
+ <div className="stereotype-selector__profile">
191
192
  <CustomSelectorInput
192
193
  className="stereotype-selector__profile__selector"
193
194
  disabled={isReadOnly}
@@ -199,9 +200,7 @@ export const StereotypeSelector = observer(
199
200
  darkMode={Boolean(darkTheme)}
200
201
  />
201
202
  <button
202
- className={`stereotype-selector__profile__visit-btn ${
203
- darkTheme ? 'stereotype-selector-dark-theme' : ''
204
- }`}
203
+ className="stereotype-selector__profile__visit-btn"
205
204
  disabled={isStubbed_PackageableElement(stereotype.value._OWNER)}
206
205
  onClick={visitProfile}
207
206
  tabIndex={-1}
@@ -218,11 +217,13 @@ export const StereotypeSelector = observer(
218
217
  value={selectedStereotype}
219
218
  placeholder="Choose a stereotype"
220
219
  filterOption={stereotypeFilterOption}
221
- darkMode={darkTheme ?? false}
220
+ darkMode={Boolean(darkTheme)}
222
221
  />
223
222
  {!isReadOnly && (
224
223
  <button
225
- className="uml-element-editor__remove-btn"
224
+ className={clsx('uml-element-editor__remove-btn', {
225
+ 'btn--dark btn--caution': darkTheme,
226
+ })}
226
227
  disabled={isReadOnly}
227
228
  onClick={deleteStereotype}
228
229
  tabIndex={-1}
@@ -193,12 +193,12 @@ export const TaggedValueEditor = observer(
193
193
  dropTargetConnector={handleRef}
194
194
  isBeingDragged={isBeingDragged}
195
195
  />
196
- <div className="tagged-value-editor">
197
- <div
198
- className={`tagged-value-editor__profile ${
199
- darkTheme ? 'tagged-value-editor-dark-theme' : ''
200
- }`}
201
- >
196
+ <div
197
+ className={clsx('tagged-value-editor', {
198
+ 'tagged-value-editor--dark': darkTheme,
199
+ })}
200
+ >
201
+ <div className="tagged-value-editor__profile">
202
202
  <CustomSelectorInput
203
203
  className="tagged-value-editor__profile__selector"
204
204
  disabled={isReadOnly}
@@ -207,12 +207,10 @@ export const TaggedValueEditor = observer(
207
207
  value={selectedProfile}
208
208
  placeholder="Choose a profile"
209
209
  filterOption={profileFilterOption}
210
- darkMode={darkTheme ?? false}
210
+ darkMode={Boolean(darkTheme)}
211
211
  />
212
212
  <button
213
- className={`tagged-value-editor__profile__visit-btn ${
214
- darkTheme ? 'tagged-value-editor-dark-theme' : ''
215
- }`}
213
+ className="tagged-value-editor__profile__visit-btn"
216
214
  disabled={isStubbed_PackageableElement(
217
215
  taggedValue.tag.value._OWNER,
218
216
  )}
@@ -235,7 +233,9 @@ export const TaggedValueEditor = observer(
235
233
  />
236
234
  {!isReadOnly && (
237
235
  <button
238
- className="uml-element-editor__remove-btn"
236
+ className={clsx('uml-element-editor__remove-btn', {
237
+ 'btn--dark btn--caution': darkTheme,
238
+ })}
239
239
  disabled={isReadOnly}
240
240
  onClick={deleteValue}
241
241
  tabIndex={-1}
@@ -251,9 +251,9 @@ export const TaggedValueEditor = observer(
251
251
  >
252
252
  {isExpanded && (
253
253
  <textarea
254
- className={`tagged-value-editor__value__input ${
255
- darkTheme ? 'tagged-value-editor-dark-theme' : ''
256
- }`}
254
+ className={clsx('tagged-value-editor__value__input', {
255
+ 'input--dark': darkTheme,
256
+ })}
257
257
  spellCheck={false}
258
258
  disabled={isReadOnly}
259
259
  value={taggedValue.value}
@@ -263,9 +263,9 @@ export const TaggedValueEditor = observer(
263
263
  )}
264
264
  {!isExpanded && (
265
265
  <input
266
- className={`tagged-value-editor__value__input ${
267
- darkTheme ? 'tagged-value-editor-dark-theme' : ''
268
- }`}
266
+ className={clsx('tagged-value-editor__value__input', {
267
+ 'input--dark': darkTheme,
268
+ })}
269
269
  spellCheck={false}
270
270
  disabled={isReadOnly}
271
271
  value={taggedValue.value}
@@ -274,9 +274,7 @@ export const TaggedValueEditor = observer(
274
274
  />
275
275
  )}
276
276
  <button
277
- className={`tagged-value-editor__value__expand-btn ${
278
- darkTheme ? 'tagged-value-editor-dark-theme' : ''
279
- }`}
277
+ className="tagged-value-editor__value__expand-btn"
280
278
  onClick={toggleExpandedMode}
281
279
  tabIndex={-1}
282
280
  title="Expand/Collapse"
@@ -297,7 +297,7 @@ export const WorkspaceSetup = withWorkspaceSetupStore(
297
297
  setupStore.loadWorkspacesState.isInProgress
298
298
  ? 'Loading workspaces...'
299
299
  : !setupStore.currentProject
300
- ? 'In order to select a workspace, a project must be selected'
300
+ ? 'In order to choose a workspace, a project must be chosen'
301
301
  : workspaceOptions.length
302
302
  ? 'Choose an existing workspace'
303
303
  : 'You have no workspaces. Please create one to proceed...'
@@ -144,21 +144,30 @@ export type ElementClassifier = (
144
144
  metamodel: PackageableElement,
145
145
  ) => string | undefined;
146
146
 
147
+ // TODO: we should consider restrict the usage of type classifier and consider using the element instead
148
+ // the only mechanism that really needs the type classifier is element creation, which we could refactor
149
+ // to have a plugin that produces a single configuration for the creation ceremony
150
+ // e.g.
151
+ // export type ElementCreatorConfiguration = {
152
+ // key: string;
153
+ // label: string;
154
+ // icon: React.ReactNode;
155
+ // ...
156
+ // }
157
+ export type ElementIconGetter = (
158
+ type: string,
159
+ element: PackageableElement | undefined,
160
+ ) => React.ReactNode | undefined;
147
161
  export type ElementTypeLabelGetter = (type: string) => string | undefined;
148
-
149
- export type ElementIconGetter = (type: string) => React.ReactNode | undefined;
150
-
151
162
  export type NewElementFromStateCreator = (
152
163
  type: string,
153
164
  name: string,
154
165
  state: NewElementState,
155
166
  ) => PackageableElement | undefined;
156
-
157
167
  export type NewElementDriverCreator = (
158
168
  editorStore: EditorStore,
159
169
  type: string,
160
170
  ) => NewElementDriver<PackageableElement> | undefined;
161
-
162
171
  export type NewElementDriverEditorRenderer = (
163
172
  type: string,
164
173
  ) => React.ReactNode | undefined;
@@ -90,6 +90,7 @@ import {
90
90
  type PureModel,
91
91
  createGraphBuilderReport,
92
92
  ExecutionEnvironmentInstance,
93
+ type FunctionActivatorConfiguration,
93
94
  } from '@finos/legend-graph';
94
95
  import { CONFIGURATION_EDITOR_TAB } from './editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js';
95
96
  import { PACKAGEABLE_ELEMENT_TYPE } from './utils/ModelClassifierUtils.js';
@@ -128,6 +129,8 @@ export class EditorGraphState {
128
129
  isUpdatingGraph = false; // critical synchronous update to refresh the graph
129
130
  isUpdatingApplication = false; // including graph update and async operations such as change detection
130
131
 
132
+ functionActivatorConfigurations: FunctionActivatorConfiguration[] = [];
133
+
131
134
  warnings: CompilationWarning[] = [];
132
135
  error: EngineError | undefined;
133
136
  compilationResultEntities: Entity[] = [];
@@ -144,6 +147,9 @@ export class EditorGraphState {
144
147
  isApplicationLeavingGraphEditMode: observable,
145
148
  isUpdatingGraph: observable,
146
149
  isUpdatingApplication: observable,
150
+
151
+ functionActivatorConfigurations: observable,
152
+
147
153
  mostRecentCompilationGraphHash: observable,
148
154
  mostRecentCompilationOutcome: observable,
149
155
  warnings: observable,
@@ -155,6 +161,7 @@ export class EditorGraphState {
155
161
  clearProblems: action,
156
162
  setEnableStrictMode: action,
157
163
  setMostRecentCompilationGraphHash: action,
164
+ fetchAvailableFunctionActivatorConfigurations: flow,
158
165
  buildGraph: flow,
159
166
  loadEntityChangesToGraph: flow,
160
167
  updateGenerationGraphAndApplication: flow,
@@ -269,6 +276,23 @@ export class EditorGraphState {
269
276
  this.enableStrictMode = val;
270
277
  }
271
278
 
279
+ *fetchAvailableFunctionActivatorConfigurations(): GeneratorFn<void> {
280
+ try {
281
+ this.functionActivatorConfigurations =
282
+ (yield this.editorStore.graphManagerState.graphManager.getAvailableFunctionActivatorConfigurations(
283
+ this.editorStore.graphManagerState.coreModel,
284
+ this.editorStore.graphManagerState.systemModel,
285
+ )) as FunctionActivatorConfiguration[];
286
+ } catch (error) {
287
+ assertErrorThrown(error);
288
+ this.editorStore.applicationStore.logService.error(
289
+ LogEvent.create(LEGEND_STUDIO_APP_EVENT.GENERIC_FAILURE),
290
+ error,
291
+ );
292
+ this.editorStore.applicationStore.notificationService.notifyError(error);
293
+ }
294
+ }
295
+
272
296
  *buildGraph(entities: Entity[]): GeneratorFn<GraphBuilderResult> {
273
297
  try {
274
298
  this.isInitializingGraph = true;
@@ -128,14 +128,18 @@ export class EditorStore implements CommandRegistrar {
128
128
  mode = EDITOR_MODE.STANDARD;
129
129
 
130
130
  editorExtensionStates: EditorExtensionState[] = [];
131
- explorerTreeState: ExplorerTreeState;
131
+
132
+ // SDLC
132
133
  sdlcState: EditorSDLCState;
134
+ changeDetectionState: ChangeDetectionState;
135
+
136
+ // TODO: make EditorGraphState extend GraphMangerState and merge the state together for Studio
133
137
  graphState: EditorGraphState;
134
138
  graphManagerState: GraphManagerState;
135
139
  graphEditorMode: GraphEditorMode;
136
- changeDetectionState: ChangeDetectionState;
137
- modelImporterState: ModelImporterState;
138
- projectConfigurationEditorState: ProjectConfigurationEditorState;
140
+
141
+ // sidebar and panel
142
+ explorerTreeState: ExplorerTreeState;
139
143
  projectOverviewState: ProjectOverviewState;
140
144
  workspaceWorkflowManagerState: WorkspaceWorkflowManagerState;
141
145
  globalTestRunnerState: GlobalTestRunnerState;
@@ -143,10 +147,13 @@ export class EditorStore implements CommandRegistrar {
143
147
  workspaceReviewState: WorkspaceReviewState;
144
148
  localChangesState: LocalChangesState;
145
149
  conflictResolutionState: WorkspaceUpdateConflictResolutionState;
150
+ globalBulkServiceRegistrationState: GlobalBulkServiceRegistrationState;
146
151
  devToolState: DevToolPanelState;
152
+
153
+ modelImporterState: ModelImporterState;
154
+ projectConfigurationEditorState: ProjectConfigurationEditorState;
147
155
  embeddedQueryBuilderState: EmbeddedQueryBuilderState;
148
156
  newElementState: NewElementState;
149
- globalBulkServiceRegistrationState: GlobalBulkServiceRegistrationState;
150
157
  /**
151
158
  * Since we want to share element generation state across all element in the editor, we will create 1 element generate state
152
159
  * per file generation configuration type.
@@ -688,7 +695,8 @@ export class EditorStore implements CommandRegistrar {
688
695
  this.workspaceUpdaterState.fetchLatestCommittedReviews(),
689
696
  this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
690
697
  this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
691
- this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatsDescriptions(),
698
+ this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
699
+ this.graphState.fetchAvailableFunctionActivatorConfigurations(),
692
700
  this.sdlcState.fetchProjectVersions(),
693
701
  this.sdlcState.fetchPublishedProjectVersions(),
694
702
  ]);
@@ -728,7 +736,8 @@ export class EditorStore implements CommandRegistrar {
728
736
  this.sdlcState.checkIfWorkspaceIsOutdated(),
729
737
  this.projectConfigurationEditorState.fetchLatestProjectStructureVersion(),
730
738
  this.graphState.graphGenerationState.fetchAvailableFileGenerationDescriptions(),
731
- this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatsDescriptions(),
739
+ this.graphState.graphGenerationState.externalFormatState.fetchExternalFormatDescriptions(),
740
+ this.graphState.fetchAvailableFunctionActivatorConfigurations(),
732
741
  this.sdlcState.fetchProjectVersions(),
733
742
  this.sdlcState.fetchPublishedProjectVersions(),
734
743
  ]);
@@ -32,6 +32,7 @@ import {
32
32
  Profile,
33
33
  Service,
34
34
  type PackageableElement,
35
+ INTERNAL__UnknownFunctionActivator,
35
36
  } from '@finos/legend-graph';
36
37
  import {
37
38
  type Clazz,
@@ -57,6 +58,7 @@ import { UnsupportedElementEditorState } from './editor-state/UnsupportedElement
57
58
  import type { EditorStore } from './EditorStore.js';
58
59
  import type { DSL_LegendStudioApplicationPlugin_Extension } from '../LegendStudioApplicationPlugin.js';
59
60
  import { TabManagerState } from '@finos/legend-lego/application';
61
+ import { INTERNAL__UnknownFunctionActivatorEdtiorState } from './editor-state/element-editor-state/INTERNAL__UnknownFunctionActivatorEditorState.js';
60
62
 
61
63
  export class EditorTabManagerState extends TabManagerState {
62
64
  readonly editorStore: EditorStore;
@@ -124,6 +126,11 @@ export class EditorTabManagerState extends TabManagerState {
124
126
  return new FileGenerationEditorState(this.editorStore, element);
125
127
  } else if (element instanceof DataElement) {
126
128
  return new PackageableDataEditorState(this.editorStore, element);
129
+ } else if (element instanceof INTERNAL__UnknownFunctionActivator) {
130
+ return new INTERNAL__UnknownFunctionActivatorEdtiorState(
131
+ this.editorStore,
132
+ element,
133
+ );
127
134
  }
128
135
  const extraElementEditorStateCreators = this.editorStore.pluginManager
129
136
  .getApplicationPlugins()
@@ -41,60 +41,58 @@ export enum EmbeddedDataType {
41
41
  export class ExternalFormatState {
42
42
  fetchingDescriptionsState = ActionState.create();
43
43
  editorStore: EditorStore;
44
- externalFormatsDescriptions: ExternalFormatDescription[] = [];
44
+ externalFormatDescriptions: ExternalFormatDescription[] = [];
45
45
  schemaGenerationStates: ElementXTSchemaGenerationState[] = [];
46
46
 
47
47
  constructor(editorStore: EditorStore) {
48
48
  makeObservable<ExternalFormatState>(this, {
49
- externalFormatsDescriptions: observable,
49
+ externalFormatDescriptions: observable,
50
50
  schemaGenerationStates: observable,
51
- setExternalFormatsDescriptions: action,
52
- fetchExternalFormatsDescriptions: flow,
51
+ setExternalFormatDescriptions: action,
52
+ fetchExternalFormatDescriptions: flow,
53
53
  });
54
54
 
55
55
  this.editorStore = editorStore;
56
56
  }
57
57
 
58
58
  get formatTypes(): string[] {
59
- return this.externalFormatsDescriptions.map((e) => e.name);
59
+ return this.externalFormatDescriptions.map((e) => e.name);
60
60
  }
61
61
 
62
62
  get formatTypeOptions(): ExternalFormatTypeOption[] {
63
- return this.externalFormatsDescriptions.map((types) => ({
63
+ return this.externalFormatDescriptions.map((types) => ({
64
64
  value: types.name,
65
65
  label: types.name,
66
66
  }));
67
67
  }
68
68
 
69
69
  get formatContentTypes(): string[] {
70
- return this.externalFormatsDescriptions.map((e) => e.contentTypes).flat();
70
+ return this.externalFormatDescriptions.map((e) => e.contentTypes).flat();
71
71
  }
72
72
 
73
73
  get externalFormatDescriptionsWithModelGenerationSupport(): ExternalFormatDescription[] {
74
- return this.externalFormatsDescriptions.filter(
74
+ return this.externalFormatDescriptions.filter(
75
75
  (d) => d.supportsModelGeneration,
76
76
  );
77
77
  }
78
78
 
79
79
  getFormatTypeForContentType(contentType: string): string | undefined {
80
- return this.externalFormatsDescriptions.find(
80
+ return this.externalFormatDescriptions.find(
81
81
  (externalFormatDescription) =>
82
82
  externalFormatDescription.contentTypes[0] === contentType,
83
83
  )?.name;
84
84
  }
85
85
 
86
- setExternalFormatsDescriptions(
87
- externalFormatsDescriptions: ExternalFormatDescription[],
88
- ): void {
89
- this.externalFormatsDescriptions = externalFormatsDescriptions;
86
+ setExternalFormatDescriptions(val: ExternalFormatDescription[]): void {
87
+ this.externalFormatDescriptions = val;
90
88
  }
91
89
 
92
- *fetchExternalFormatsDescriptions(): GeneratorFn<void> {
90
+ *fetchExternalFormatDescriptions(): GeneratorFn<void> {
93
91
  try {
94
92
  this.fetchingDescriptionsState.inProgress();
95
93
  const externalFormatDescriptions =
96
94
  (yield this.editorStore.graphManagerState.graphManager.getAvailableExternalFormatsDescriptions()) as ExternalFormatDescription[];
97
- this.setExternalFormatsDescriptions(externalFormatDescriptions);
95
+ this.setExternalFormatDescriptions(externalFormatDescriptions);
98
96
  this.schemaGenerationStates = externalFormatDescriptions
99
97
  .filter((s) => s.supportsSchemaGeneration)
100
98
  .map(
@@ -114,6 +112,6 @@ export class ExternalFormatState {
114
112
  }
115
113
 
116
114
  getTypeDescription(type: string): ExternalFormatDescription | undefined {
117
- return this.externalFormatsDescriptions.find((e) => e.name === type);
115
+ return this.externalFormatDescriptions.find((e) => e.name === type);
118
116
  }
119
117
  }
@@ -78,10 +78,11 @@ export type FileGenerationTypeOption = {
78
78
  };
79
79
 
80
80
  export class GraphGenerationState {
81
- editorStore: EditorStore;
81
+ readonly editorStore: EditorStore;
82
+ readonly clearingGenerationEntitiesState = ActionState.create();
83
+
82
84
  isRunningGlobalGenerate = false;
83
85
  generatedEntities = new Map<string, Entity[]>();
84
- clearingGenerationEntitiesState = ActionState.create();
85
86
  externalFormatState: ExternalFormatState;
86
87
  // NOTE: this will eventually be removed once we also do model/schema import using external format
87
88
  // See https://github.com/finos/legend-studio/issues/866