@finos/legend-application-studio 28.18.39 → 28.18.41

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 (181) hide show
  1. package/lib/__lib__/LegendStudioNavigation.d.ts +3 -3
  2. package/lib/__lib__/LegendStudioNavigation.d.ts.map +1 -1
  3. package/lib/__lib__/LegendStudioNavigation.js +3 -3
  4. package/lib/__lib__/LegendStudioNavigation.js.map +1 -1
  5. package/lib/components/LegendStudioWebApplication.d.ts.map +1 -1
  6. package/lib/components/LegendStudioWebApplication.js +12 -51
  7. package/lib/components/LegendStudioWebApplication.js.map +1 -1
  8. package/lib/components/editor/Editor.d.ts.map +1 -1
  9. package/lib/components/editor/Editor.js +1 -1
  10. package/lib/components/editor/Editor.js.map +1 -1
  11. package/lib/components/editor/QuickInput.d.ts.map +1 -1
  12. package/lib/components/editor/QuickInput.js +2 -2
  13. package/lib/components/editor/QuickInput.js.map +1 -1
  14. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.d.ts.map +1 -1
  15. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js +7 -10
  16. package/lib/components/editor/__test-utils__/EditorComponentTestUtils.js.map +1 -1
  17. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  18. package/lib/components/editor/command-center/ProjectSearchCommand.js +2 -2
  19. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  20. package/lib/components/editor/editor-group/GenerationSpecificationEditor.d.ts.map +1 -1
  21. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js +4 -1
  22. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js.map +1 -1
  23. package/lib/components/editor/editor-group/RuntimeEditor.d.ts.map +1 -1
  24. package/lib/components/editor/editor-group/RuntimeEditor.js +12 -10
  25. package/lib/components/editor/editor-group/RuntimeEditor.js.map +1 -1
  26. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  27. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +3 -4
  28. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  29. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.d.ts.map +1 -1
  30. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js +3 -3
  31. package/lib/components/editor/editor-group/data-editor/EmbeddedDataEditor.js.map +1 -1
  32. package/lib/components/editor/editor-group/database/IsolatedQueryDatabase.d.ts.map +1 -1
  33. package/lib/components/editor/editor-group/database/IsolatedQueryDatabase.js +3 -1
  34. package/lib/components/editor/editor-group/database/IsolatedQueryDatabase.js.map +1 -1
  35. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js +1 -1
  36. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
  37. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_BindingElementEditor.d.ts.map +1 -1
  38. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js +19 -13
  39. package/lib/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js.map +1 -1
  40. package/lib/components/editor/editor-group/function-activator/FunctionEditor.d.ts.map +1 -1
  41. package/lib/components/editor/editor-group/function-activator/FunctionEditor.js +9 -6
  42. package/lib/components/editor/editor-group/function-activator/FunctionEditor.js.map +1 -1
  43. package/lib/components/editor/editor-group/function-activator/HostedServiceFunctionActivatorEditor.d.ts.map +1 -1
  44. package/lib/components/editor/editor-group/function-activator/HostedServiceFunctionActivatorEditor.js +1 -1
  45. package/lib/components/editor/editor-group/function-activator/HostedServiceFunctionActivatorEditor.js.map +1 -1
  46. package/lib/components/editor/editor-group/function-activator/SnowflakeAppFunctionActivatorEditor.d.ts.map +1 -1
  47. package/lib/components/editor/editor-group/function-activator/SnowflakeAppFunctionActivatorEditor.js +8 -6
  48. package/lib/components/editor/editor-group/function-activator/SnowflakeAppFunctionActivatorEditor.js.map +1 -1
  49. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js +1 -1
  50. package/lib/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.js.map +1 -1
  51. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js +2 -2
  52. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  53. package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.d.ts.map +1 -1
  54. package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js +6 -2
  55. package/lib/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  56. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.d.ts.map +1 -1
  57. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +10 -6
  58. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
  59. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js +2 -2
  60. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  61. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -1
  62. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionQueryBuilder.js +3 -1
  63. package/lib/components/editor/editor-group/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -1
  64. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js +2 -2
  65. package/lib/components/editor/editor-group/mapping-editor/MappingTestableEditor.js.map +1 -1
  66. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
  67. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.js +7 -4
  68. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.js.map +1 -1
  69. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.d.ts.map +1 -1
  70. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.js +2 -2
  71. package/lib/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  72. package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.d.ts.map +1 -1
  73. package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js +6 -2
  74. package/lib/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  75. package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.d.ts.map +1 -1
  76. package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js +6 -2
  77. package/lib/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  78. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  79. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js +3 -1
  80. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  81. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js.map +1 -1
  82. package/lib/components/editor/editor-group/service-editor/ServiceEditor.d.ts.map +1 -1
  83. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js +2 -2
  84. package/lib/components/editor/editor-group/service-editor/ServiceEditor.js.map +1 -1
  85. package/lib/components/editor/editor-group/service-editor/ServiceExecutionEditor.js +2 -2
  86. package/lib/components/editor/editor-group/service-editor/ServiceExecutionEditor.js.map +1 -1
  87. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js +1 -1
  88. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js.map +1 -1
  89. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js.map +1 -1
  90. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js +3 -3
  91. package/lib/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.js.map +1 -1
  92. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js +1 -1
  93. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js.map +1 -1
  94. package/lib/components/editor/editor-group/uml-editor/ClassEditor.d.ts.map +1 -1
  95. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js +7 -4
  96. package/lib/components/editor/editor-group/uml-editor/ClassEditor.js.map +1 -1
  97. package/lib/components/editor/editor-group/uml-editor/PropertyEditor.js +1 -1
  98. package/lib/components/editor/editor-group/uml-editor/PropertyEditor.js.map +1 -1
  99. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.d.ts.map +1 -1
  100. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js +2 -2
  101. package/lib/components/editor/editor-group/uml-editor/StereotypeSelector.js.map +1 -1
  102. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.d.ts.map +1 -1
  103. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js +2 -2
  104. package/lib/components/editor/editor-group/uml-editor/TaggedValueEditor.js.map +1 -1
  105. package/lib/components/editor/panel-group/SQLPlaygroundPanel.js +3 -3
  106. package/lib/components/editor/panel-group/SQLPlaygroundPanel.js.map +1 -1
  107. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  108. package/lib/components/editor/side-bar/CreateNewElementModal.js +8 -2
  109. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  110. package/lib/components/editor/side-bar/Explorer.js +2 -2
  111. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  112. package/lib/components/editor/side-bar/ProjectOverview.d.ts.map +1 -1
  113. package/lib/components/editor/side-bar/ProjectOverview.js +3 -1
  114. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  115. package/lib/components/lazy-text-editor/LazyTextEditor.d.ts.map +1 -1
  116. package/lib/components/lazy-text-editor/LazyTextEditor.js +1 -1
  117. package/lib/components/lazy-text-editor/LazyTextEditor.js.map +1 -1
  118. package/lib/components/project-reviewer/ProjectReviewer.d.ts.map +1 -1
  119. package/lib/components/project-reviewer/ProjectReviewer.js +3 -2
  120. package/lib/components/project-reviewer/ProjectReviewer.js.map +1 -1
  121. package/lib/index.css +2 -2
  122. package/lib/index.css.map +1 -1
  123. package/lib/package.json +6 -6
  124. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  125. package/lib/stores/LegendStudioBaseStore.js +12 -7
  126. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  127. package/lib/stores/editor/EditorStore.d.ts +1 -1
  128. package/lib/stores/editor/EditorStore.d.ts.map +1 -1
  129. package/lib/stores/editor/EditorStore.js +1 -1
  130. package/lib/stores/editor/EditorStore.js.map +1 -1
  131. package/lib/stores/showcase/ShowcaseViewerStore.js +1 -1
  132. package/lib/stores/showcase/ShowcaseViewerStore.js.map +1 -1
  133. package/package.json +18 -18
  134. package/src/__lib__/LegendStudioNavigation.ts +5 -5
  135. package/src/components/LegendStudioWebApplication.tsx +127 -106
  136. package/src/components/editor/Editor.tsx +2 -1
  137. package/src/components/editor/QuickInput.tsx +3 -2
  138. package/src/components/editor/__test-utils__/EditorComponentTestUtils.tsx +29 -30
  139. package/src/components/editor/command-center/ProjectSearchCommand.tsx +4 -3
  140. package/src/components/editor/editor-group/GenerationSpecificationEditor.tsx +7 -2
  141. package/src/components/editor/editor-group/RuntimeEditor.tsx +16 -12
  142. package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +7 -13
  143. package/src/components/editor/editor-group/data-editor/EmbeddedDataEditor.tsx +10 -9
  144. package/src/components/editor/editor-group/database/IsolatedQueryDatabase.tsx +5 -1
  145. package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +1 -1
  146. package/src/components/editor/editor-group/external-format-editor/DSL_ExternalFormat_BindingElementEditor.tsx +20 -14
  147. package/src/components/editor/editor-group/function-activator/FunctionEditor.tsx +11 -8
  148. package/src/components/editor/editor-group/function-activator/HostedServiceFunctionActivatorEditor.tsx +0 -1
  149. package/src/components/editor/editor-group/function-activator/SnowflakeAppFunctionActivatorEditor.tsx +11 -7
  150. package/src/components/editor/editor-group/function-activator/testable/FunctionTestableEditor.tsx +1 -1
  151. package/src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx +4 -4
  152. package/src/components/editor/editor-group/mapping-editor/FlatDataPropertyMappingEditor.tsx +9 -2
  153. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +7 -6
  154. package/src/components/editor/editor-group/mapping-editor/MappingExecutionBuilder.tsx +3 -3
  155. package/src/components/editor/editor-group/mapping-editor/MappingExecutionQueryBuilder.tsx +3 -0
  156. package/src/components/editor/editor-group/mapping-editor/MappingTestableEditor.tsx +2 -2
  157. package/src/components/editor/editor-group/mapping-editor/NewMappingElementModal.tsx +9 -5
  158. package/src/components/editor/editor-group/mapping-editor/OperationSetImplementationEditor.tsx +3 -2
  159. package/src/components/editor/editor-group/mapping-editor/PurePropertyMappingEditor.tsx +9 -2
  160. package/src/components/editor/editor-group/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +9 -2
  161. package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx +7 -3
  162. package/src/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.tsx +1 -1
  163. package/src/components/editor/editor-group/service-editor/ServiceEditor.tsx +0 -2
  164. package/src/components/editor/editor-group/service-editor/ServiceExecutionEditor.tsx +5 -5
  165. package/src/components/editor/editor-group/service-editor/ServicePostValidationEditor.tsx +2 -2
  166. package/src/components/editor/editor-group/service-editor/ServiceRegistrationEditor.tsx +1 -1
  167. package/src/components/editor/editor-group/service-editor/testable/ServiceTestsEditor.tsx +3 -3
  168. package/src/components/editor/editor-group/uml-editor/AssociationEditor.tsx +3 -3
  169. package/src/components/editor/editor-group/uml-editor/ClassEditor.tsx +10 -7
  170. package/src/components/editor/editor-group/uml-editor/PropertyEditor.tsx +1 -1
  171. package/src/components/editor/editor-group/uml-editor/StereotypeSelector.tsx +5 -3
  172. package/src/components/editor/editor-group/uml-editor/TaggedValueEditor.tsx +4 -3
  173. package/src/components/editor/panel-group/SQLPlaygroundPanel.tsx +4 -4
  174. package/src/components/editor/side-bar/CreateNewElementModal.tsx +12 -4
  175. package/src/components/editor/side-bar/Explorer.tsx +3 -3
  176. package/src/components/editor/side-bar/ProjectOverview.tsx +5 -1
  177. package/src/components/lazy-text-editor/LazyTextEditor.tsx +2 -1
  178. package/src/components/project-reviewer/ProjectReviewer.tsx +3 -2
  179. package/src/stores/LegendStudioBaseStore.ts +12 -7
  180. package/src/stores/editor/EditorStore.ts +2 -2
  181. package/src/stores/showcase/ShowcaseViewerStore.ts +1 -1
@@ -1162,7 +1162,7 @@ const RelationalConnectionStoreEditor = observer(
1162
1162
  const selectedStore = {
1163
1163
  value: store,
1164
1164
  label: isStoreEmpty ? noStoreLabel : store.path,
1165
- };
1165
+ } as PackageableElementOption<Store>;
1166
1166
  const onStoreChange = (
1167
1167
  val: PackageableElementOption<Store> | null,
1168
1168
  ): void => {
@@ -1195,7 +1195,7 @@ const RelationalConnectionStoreEditor = observer(
1195
1195
  .TEMPORARY__isLightColorThemeEnabled
1196
1196
  }
1197
1197
  disabled={isReadOnly}
1198
- hasError={isStoreEmpty}
1198
+ hasError={Boolean(isStoreEmpty)}
1199
1199
  />
1200
1200
  <PanelDivider />
1201
1201
  <button
@@ -1885,21 +1885,15 @@ export const RelationalDatabaseConnectionEditor = observer(
1885
1885
  }) => {
1886
1886
  const { connectionValueState, isReadOnly } = props;
1887
1887
  const selectedTab = connectionValueState.selectedTab;
1888
- const changeTab =
1889
- <T,>( // eslint-disable-line
1890
- tab: T,
1891
- ) =>
1892
- (): void => {
1893
- connectionValueState.setSelectedTab(
1894
- tab as unknown as RELATIONAL_DATABASE_TAB_TYPE,
1895
- );
1896
- };
1888
+ const changeTab = (tab: string) => (): void => {
1889
+ connectionValueState.setSelectedTab(tab as RELATIONAL_DATABASE_TAB_TYPE);
1890
+ };
1897
1891
 
1898
1892
  return (
1899
1893
  <Panel>
1900
1894
  <PanelTabs
1901
- tabTitles={Object.values(RELATIONAL_DATABASE_TAB_TYPE)}
1902
- changeTheTab={changeTab}
1895
+ tabs={Object.values(RELATIONAL_DATABASE_TAB_TYPE)}
1896
+ changeTab={changeTab}
1903
1897
  selectedTab={selectedTab}
1904
1898
  tabClassName="relational-connection-editor__tab"
1905
1899
  />
@@ -177,12 +177,13 @@ export const DataElementReferenceDataEditor = observer(
177
177
  const applicationStore = editorStore.applicationStore;
178
178
  const options =
179
179
  editorStore.graphManagerState.usableDataElements.map(buildElementOption);
180
- const selectedOption = buildElementOption(dataElement);
181
- const onDataElementChange = (val: {
182
- label: string;
183
- value?: DataElement;
184
- }): void => {
185
- if (val.value !== selectedOption.value && val.value) {
180
+ const selectedOption = buildElementOption(
181
+ dataElement,
182
+ ) as PackageableElementOption<DataElement>;
183
+ const onDataElementChange = (
184
+ val: PackageableElementOption<DataElement>,
185
+ ): void => {
186
+ if (val.value !== selectedOption.value) {
186
187
  dataElementReferenceState.setDataElement(val.value);
187
188
  }
188
189
  };
@@ -255,8 +256,8 @@ export const ModelEmbeddedDataEditor = observer(
255
256
  const elementFilterOption = createFilter({
256
257
  ignoreCase: true,
257
258
  ignoreAccents: false,
258
- stringify: (option: PackageableElementOption<Class>): string =>
259
- option.value.path,
259
+ stringify: (option: { data: PackageableElementOption<Class> }): string =>
260
+ option.data.value.path,
260
261
  });
261
262
  const editorStore = modelStoreDataState.editorStore;
262
263
  const applicationStore = editorStore.applicationStore;
@@ -293,7 +294,7 @@ export const ModelEmbeddedDataEditor = observer(
293
294
  <PURE_ClassIcon />
294
295
  </div>
295
296
  <CustomSelectorInput
296
- ref={classSelectorRef}
297
+ inputRef={classSelectorRef}
297
298
  className="sample-data-generator__controller__class-selector"
298
299
  options={classOptions}
299
300
  onChange={changeClass}
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import {
18
+ type Database,
18
19
  type PackageableConnection,
19
20
  getMappingCompatibleClasses,
20
21
  } from '@finos/legend-graph';
@@ -86,7 +87,10 @@ const IsolatedDatabseQueryBuilderSetupPanelContext = observer(
86
87
  className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
87
88
  noMatchMessage="No compatible mapping found for specified class"
88
89
  disabled={true}
89
- options={[]}
90
+ options={[] as { label: string; value: Database }[]}
91
+ onChange={() => {
92
+ // do nothing
93
+ }}
90
94
  value={databaseOption}
91
95
  darkMode={
92
96
  !queryBuilderState.applicationStore.layoutService
@@ -455,7 +455,7 @@ const GenerationEnumPropertyEditor = observer(
455
455
  darkMode={
456
456
  !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled
457
457
  }
458
- disable={isReadOnly}
458
+ disabled={isReadOnly}
459
459
  />
460
460
  </div>
461
461
  );
@@ -205,21 +205,27 @@ const BindingGeneralEditor = observer(
205
205
  PackageableElementExplicitReference.create(val.value),
206
206
  );
207
207
  };
208
- const selectedSchemaSet = {
209
- value: binding.schemaSet,
210
- label: binding.schemaSet?.valueForSerialization,
211
- };
212
- const schemaIdOptions = selectedSchemaSet.value?.value.schemas.map((e) => ({
213
- value: e.id,
214
- label: e.id,
215
- }));
208
+ const selectedSchemaSet = binding.schemaSet
209
+ ? {
210
+ label: binding.schemaSet.valueForSerialization ?? '',
211
+ value: binding.schemaSet.value,
212
+ }
213
+ : null;
214
+ const schemaIdOptions = selectedSchemaSet?.value.schemas
215
+ .filter((e) => e.id)
216
+ .map((e) => ({
217
+ value: guaranteeNonNullable(e.id),
218
+ label: guaranteeNonNullable(e.id),
219
+ }));
216
220
  const onSchemaIdChange = (
217
221
  val: { label: string; value: string } | null,
218
222
  ): void => externalFormat_Binding_setSchemaId(binding, val?.value);
219
- const selectedSchemaId = {
220
- value: binding.schemaId,
221
- label: binding.schemaId,
222
- };
223
+ const selectedSchemaId = binding.schemaId
224
+ ? {
225
+ value: binding.schemaId,
226
+ label: binding.schemaId,
227
+ }
228
+ : null;
223
229
  const projectSelectorRef = useRef<SelectComponent>(null);
224
230
  const contentTypeOptions =
225
231
  editorStore.graphState.graphGenerationState.externalFormatState.formatContentTypes.map(
@@ -260,7 +266,7 @@ const BindingGeneralEditor = observer(
260
266
  <CustomSelectorInput
261
267
  className="binding-general-editor__section__dropdown"
262
268
  disabled={isReadOnly}
263
- ref={projectSelectorRef}
269
+ inputRef={projectSelectorRef}
264
270
  options={schemaSetOptions}
265
271
  onChange={onSchemaSetChange}
266
272
  value={selectedSchemaSet}
@@ -279,7 +285,7 @@ const BindingGeneralEditor = observer(
279
285
  <CustomSelectorInput
280
286
  className="binding-general-editor__section__dropdown"
281
287
  disabled={isReadOnly}
282
- ref={projectSelectorRef}
288
+ inputRef={projectSelectorRef}
283
289
  options={schemaIdOptions}
284
290
  onChange={onSchemaIdChange}
285
291
  value={selectedSchemaId}
@@ -238,8 +238,8 @@ const ParameterBasicEditor = observer(
238
238
  const filterOption = createFilter({
239
239
  ignoreCase: true,
240
240
  ignoreAccents: false,
241
- stringify: (option: PackageableElementOption<Type>): string =>
242
- option.value.path,
241
+ stringify: (option: { data: PackageableElementOption<Type> }): string =>
242
+ option.data.value.path,
243
243
  });
244
244
  const selectedType = { value: paramType, label: paramType.name };
245
245
  const changeType = (val: PackageableElementOption<Type>): void => {
@@ -503,10 +503,13 @@ const ReturnTypeEditor = observer(
503
503
  const filterOption = createFilter({
504
504
  ignoreCase: true,
505
505
  ignoreAccents: false,
506
- stringify: (option: PackageableElementOption<Type>): string =>
507
- option.value.path,
506
+ stringify: (option: { data: PackageableElementOption<Type> }): string =>
507
+ option.data.value.path,
508
508
  });
509
- const selectedType = { value: returnType, label: returnType.value.name };
509
+ const selectedType = {
510
+ value: returnType.value,
511
+ label: returnType.value.name,
512
+ };
510
513
  const changeType = (val: PackageableElementOption<Type>): void => {
511
514
  function_setReturnType(functionElement, val.value);
512
515
  setIsEditingType(false);
@@ -774,7 +777,7 @@ const FunctionPromoteEditor = observer(
774
777
  cardMedia={<div className="coming-soon-label">Coming Soon</div>}
775
778
  cardName={type}
776
779
  cardContent="Deploy the function in the definition of a Store persistence"
777
- isDisable={true}
780
+ disabled={true}
778
781
  isActive={
779
782
  activatorPromoteState.activateType ===
780
783
  FUNCTION_ACTIVATE_TYPE.SERVICE_JAR
@@ -788,7 +791,7 @@ const FunctionPromoteEditor = observer(
788
791
  cardMedia={<div className="coming-soon-label">Coming Soon</div>}
789
792
  cardName={type}
790
793
  cardContent="Use the service in a refiner context"
791
- isDisable={true}
794
+ disabled={true}
792
795
  isActive={
793
796
  activatorPromoteState.activateType ===
794
797
  FUNCTION_ACTIVATE_TYPE.REFINER
@@ -802,7 +805,7 @@ const FunctionPromoteEditor = observer(
802
805
  cardMedia={<div className="coming-soon-label">Coming Soon</div>}
803
806
  cardName={type}
804
807
  cardContent="Deploy the function as a UDTF(user-defined table function) in BigQuery"
805
- isDisable={true}
808
+ disabled={true}
806
809
  isActive={
807
810
  activatorPromoteState.activateType ===
808
811
  FUNCTION_ACTIVATE_TYPE.BIG_QUERY_NATIVE_APP
@@ -553,7 +553,6 @@ export const HostedServiceFunctionActivatorEditor = observer(() => {
553
553
  <CustomSelectorInput
554
554
  className="service-editor__owner__selector"
555
555
  placeholder="Enter an owner..."
556
- spellCheck={false}
557
556
  inputValue={searchText}
558
557
  options={userOptions}
559
558
  allowCreating={true}
@@ -62,8 +62,8 @@ export const SnowflakeAppFunctionActivatorEditor = observer(() => {
62
62
  const connectionFilterOption = createFilter({
63
63
  ignoreCase: true,
64
64
  ignoreAccents: false,
65
- stringify: (option: RelationalDatabaseConnectionOption): string =>
66
- option.value.path,
65
+ stringify: (option: { data: RelationalDatabaseConnectionOption }): string =>
66
+ option.data.value.path,
67
67
  });
68
68
  const connectionOptions = editorStore.graphManagerState.usableConnections
69
69
  .filter(
@@ -230,7 +230,7 @@ export const SnowflakeAppFunctionActivatorEditor = observer(() => {
230
230
  <PURE_ConnectionIcon />
231
231
  </div>
232
232
  <CustomSelectorInput
233
- ref={connectionSelectorRef}
233
+ inputRef={connectionSelectorRef}
234
234
  className="snowflake-app-function-activator-editor__config__connection-selector__input"
235
235
  options={connectionOptions}
236
236
  onChange={changeConnection}
@@ -286,10 +286,14 @@ export const SnowflakeAppFunctionActivatorEditor = observer(() => {
286
286
  className="snowflake-app-function-activator-editor__config__connection-selector__input"
287
287
  options={permissionSchemeOptions}
288
288
  onChange={changePermissionScheme}
289
- value={{
290
- label: activator.permissionScheme,
291
- value: activator.permissionScheme,
292
- }}
289
+ value={
290
+ activator.permissionScheme
291
+ ? {
292
+ label: activator.permissionScheme,
293
+ value: activator.permissionScheme,
294
+ }
295
+ : null
296
+ }
293
297
  darkMode={
294
298
  !applicationStore.layoutService
295
299
  .TEMPORARY__isLightColorThemeEnabled
@@ -555,7 +555,7 @@ const NewParameterModal = observer(
555
555
  !applicationStore.layoutService
556
556
  .TEMPORARY__isLightColorThemeEnabled
557
557
  }
558
- disable={isReadOnly}
558
+ disabled={isReadOnly}
559
559
  />
560
560
  <div className="search-modal__actions">
561
561
  <button className="btn btn--dark" disabled={isReadOnly}>
@@ -101,9 +101,9 @@ const EnumerationMappingSourceSelectorModal = observer(
101
101
  const filterOption = createFilter({
102
102
  ignoreCase: true,
103
103
  ignoreAccents: false,
104
- stringify: (
105
- option: PackageableElementOption<PackageableElement>,
106
- ): string => option.value.path,
104
+ stringify: (option: {
105
+ data: PackageableElementOption<PackageableElement>;
106
+ }): string => option.data.value.path,
107
107
  });
108
108
  const sourceType = enumerationMapping.sourceType?.value;
109
109
  const selectedSourceType = sourceType
@@ -149,7 +149,7 @@ const EnumerationMappingSourceSelectorModal = observer(
149
149
  >
150
150
  <ModalTitle title="Choose a Source" />
151
151
  <CustomSelectorInput
152
- ref={sourceSelectorRef}
152
+ inputRef={sourceSelectorRef}
153
153
  options={options}
154
154
  onChange={changeSourceType}
155
155
  value={selectedSourceType}
@@ -138,7 +138,6 @@ const EnumerationPropertyMappingEditor = observer(
138
138
  mappingEditorState.mapping,
139
139
  enumeration,
140
140
  ).map((em) => ({ value: em, label: em.id.value }));
141
- const transformerLabel = propertyMapping.transformer?.valueForSerialization;
142
141
  const handleSelectionChange = (
143
142
  val: { label: string; value: EnumerationMapping } | null,
144
143
  ): void =>
@@ -193,7 +192,15 @@ const EnumerationPropertyMappingEditor = observer(
193
192
  disabled={options.length <= 1 || isReadOnly}
194
193
  options={options}
195
194
  onChange={handleSelectionChange}
196
- value={{ value: transformerLabel, label: transformerLabel }}
195
+ value={
196
+ propertyMapping.transformer
197
+ ? {
198
+ label:
199
+ propertyMapping.transformer.valueForSerialization ?? '',
200
+ value: propertyMapping.transformer.value,
201
+ }
202
+ : null
203
+ }
197
204
  placeholder="Choose an existing enumeration mapping"
198
205
  />
199
206
  <button
@@ -44,7 +44,7 @@ import {
44
44
  PackageableElement,
45
45
  FlatData,
46
46
  } from '@finos/legend-graph';
47
- import { UnsupportedOperationError } from '@finos/legend-shared';
47
+ import { isNonNullable, UnsupportedOperationError } from '@finos/legend-shared';
48
48
  import { flowResult } from 'mobx';
49
49
  import { useEditorStore } from '../../EditorStoreProvider.js';
50
50
  import { useApplicationStore } from '@finos/legend-application';
@@ -183,7 +183,9 @@ export const InstanceSetImplementationSourceSelectorModal = observer(
183
183
  mainTableAlias.name = mainTableAlias.relation.value.name;
184
184
  return mainTableAlias;
185
185
  })
186
- ).map(buildMappingElementSourceOption);
186
+ )
187
+ .map(buildMappingElementSourceOption)
188
+ .filter(isNonNullable);
187
189
  const sourceFilterOption = createFilter({
188
190
  ignoreCase: true,
189
191
  ignoreAccents: false,
@@ -207,9 +209,7 @@ export const InstanceSetImplementationSourceSelectorModal = observer(
207
209
  editorStore.pluginManager.getApplicationPlugins(),
208
210
  ),
209
211
  );
210
- const changeSourceType = (
211
- val: MappingElementSourceSelectOption | null,
212
- ): Promise<void> =>
212
+ const changeSourceType = (val: MappingElementSourceSelectOption | null) => {
213
213
  flowResult(
214
214
  mappingEditorState.changeClassMappingSourceDriver(
215
215
  setImplementation,
@@ -218,6 +218,7 @@ export const InstanceSetImplementationSourceSelectorModal = observer(
218
218
  )
219
219
  .then(() => closeModal())
220
220
  .catch(applicationStore.alertUnhandledError);
221
+ };
221
222
  const handleEnter = (): void => sourceSelectorRef.current?.focus();
222
223
 
223
224
  return (
@@ -244,7 +245,7 @@ export const InstanceSetImplementationSourceSelectorModal = observer(
244
245
  >
245
246
  <ModalTitle title="Choose a Source" />
246
247
  <CustomSelectorInput
247
- ref={sourceSelectorRef}
248
+ inputRef={sourceSelectorRef}
248
249
  options={options}
249
250
  onChange={changeSourceType}
250
251
  value={selectedSourceType}
@@ -127,8 +127,8 @@ export const ClassMappingSelectorModal = observer(
127
127
  const filterOption = createFilter({
128
128
  ignoreCase: true,
129
129
  ignoreAccents: false,
130
- stringify: (option: ClassMappingSelectOption): string =>
131
- getMappingElementLabel(option.value, editorStore).value,
130
+ stringify: (option: { data: ClassMappingSelectOption }): string =>
131
+ getMappingElementLabel(option.data.value, editorStore).value,
132
132
  });
133
133
  const classMappingOptions = uniq(
134
134
  getAllClassMappings(mappingEditorState.mapping)
@@ -164,7 +164,7 @@ export const ClassMappingSelectorModal = observer(
164
164
  >
165
165
  <ModalTitle title="Choose a class mapping" />
166
166
  <CustomSelectorInput
167
- ref={classMappingSelectorRef}
167
+ inputRef={classMappingSelectorRef}
168
168
  options={classMappingOptions}
169
169
  onChange={changeClassMappingOption}
170
170
  value={null}
@@ -62,6 +62,9 @@ const MappingExecutionQueryBuilderSetupPanelContent = observer(
62
62
  className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
63
63
  disabled={true}
64
64
  options={[]}
65
+ onChange={() => {
66
+ // do nothing
67
+ }}
65
68
  value={selectedMappingOption}
66
69
  darkMode={
67
70
  !applicationStore.layoutService
@@ -365,7 +365,7 @@ const CreateTestModal = observer(
365
365
  Mapped Class for which you would like to build test suite for
366
366
  </div>
367
367
  <CustomSelectorInput
368
- ref={mappedClassSelectorRef}
368
+ inputRef={mappedClassSelectorRef}
369
369
  options={mappedClassOptions}
370
370
  onChange={changeClassOption}
371
371
  value={selectedClassOption}
@@ -536,7 +536,7 @@ const CreateStoreTestDataModal = observer(
536
536
  Store to add test data
537
537
  </div>
538
538
  <CustomSelectorInput
539
- ref={mappedStoreRef}
539
+ inputRef={mappedStoreRef}
540
540
  options={selectedStoreOptions}
541
541
  onChange={changeStoreOption}
542
542
  formatOptionLabel={getPackageableElementOptionFormatter({})}
@@ -88,11 +88,15 @@ export const NewMappingElementModal = observer(() => {
88
88
  const filterOption = createFilter({
89
89
  ignoreCase: true,
90
90
  ignoreAccents: false,
91
- stringify: (option: PackageableElementOption<PackageableElement>): string =>
92
- option.value.path,
91
+ stringify: (option: {
92
+ data: PackageableElementOption<PackageableElement>;
93
+ }): string => option.data.value.path,
93
94
  });
94
95
  const selectedOption = spec?.target
95
- ? { label: spec.target.name, value: spec.target.path }
96
+ ? {
97
+ label: spec.target.name,
98
+ value: spec.target,
99
+ }
96
100
  : null;
97
101
  const handleTargetChange = (
98
102
  val: PackageableElementOption<PackageableElement> | null,
@@ -231,7 +235,7 @@ export const NewMappingElementModal = observer(() => {
231
235
  {titleText && <div className="modal__title">{titleText}</div>}
232
236
  {spec.showTarget && (
233
237
  <CustomSelectorInput
234
- ref={targetSelectorRef}
238
+ inputRef={targetSelectorRef}
235
239
  options={options}
236
240
  filterOption={filterOption}
237
241
  onChange={handleTargetChange}
@@ -266,7 +270,7 @@ export const NewMappingElementModal = observer(() => {
266
270
  <>
267
271
  <PanelDivider />
268
272
  <CustomSelectorInput
269
- ref={classMappingTypeSelectorRef}
273
+ inputRef={classMappingTypeSelectorRef}
270
274
  options={classMappingTypeOptions}
271
275
  onChange={changeClassMappingType}
272
276
  value={classMappingType}
@@ -91,7 +91,8 @@ export const OperationSetImplementationEditor = observer(
91
91
  )
92
92
  .map((si) => ({ value: si, label: si.id.value }));
93
93
  const filterOption = createFilter({
94
- stringify: (option: SetImplementationOption): string => option.label,
94
+ stringify: (option: { data: SetImplementationOption }): string =>
95
+ option.data.label,
95
96
  });
96
97
  const addParameter = (): void =>
97
98
  operationMapping_addParameter(
@@ -235,7 +236,7 @@ export const OperationSetImplementationEditor = observer(
235
236
  onChange={changeParamater(param)}
236
237
  filterOption={filterOption}
237
238
  value={{
238
- value: param,
239
+ value: param.setImplementation.value,
239
240
  label: param.setImplementation.value.id.value,
240
241
  }}
241
242
  placeholder="Select parameter ID"
@@ -140,7 +140,6 @@ const EnumerationPropertyMappingEditor = observer(
140
140
  mappingEditorState.mapping,
141
141
  enumeration,
142
142
  ).map((em) => ({ value: em, label: em.id.value }));
143
- const transformerLabel = propertyMapping.transformer?.valueForSerialization;
144
143
  const handleSelectionChange = (
145
144
  val: { label: string; value: EnumerationMapping } | null,
146
145
  ): void =>
@@ -197,7 +196,15 @@ const EnumerationPropertyMappingEditor = observer(
197
196
  disabled={options.length <= 1 || isReadOnly}
198
197
  options={options}
199
198
  onChange={handleSelectionChange}
200
- value={{ value: transformerLabel, label: transformerLabel }}
199
+ value={
200
+ propertyMapping.transformer
201
+ ? {
202
+ label:
203
+ propertyMapping.transformer.valueForSerialization ?? '',
204
+ value: propertyMapping.transformer.value,
205
+ }
206
+ : null
207
+ }
201
208
  placeholder="Choose an existing enumeration mapping"
202
209
  />
203
210
  <button
@@ -106,7 +106,6 @@ const EnumerationPropertyMappingEditor = observer(
106
106
  mappingEditorState.mapping,
107
107
  enumeration,
108
108
  ).map((em) => ({ value: em, label: em.id.value }));
109
- const transformerLabel = propertyMapping.transformer?.valueForSerialization;
110
109
  const handleSelectionChange = (
111
110
  val: { label: string; value: EnumerationMapping } | null,
112
111
  ): void =>
@@ -156,7 +155,15 @@ const EnumerationPropertyMappingEditor = observer(
156
155
  disabled={options.length <= 1 || isReadOnly}
157
156
  options={options}
158
157
  onChange={handleSelectionChange}
159
- value={{ value: transformerLabel, label: transformerLabel }}
158
+ value={
159
+ propertyMapping.transformer
160
+ ? {
161
+ value: propertyMapping.transformer.value,
162
+ label:
163
+ propertyMapping.transformer.valueForSerialization ?? '',
164
+ }
165
+ : null
166
+ }
160
167
  placeholder="Choose an existing enumeration mapping"
161
168
  />
162
169
  <button
@@ -896,12 +896,16 @@ const ProjectVersionDependencyEditor = observer(
896
896
  <div className="project-dependency-editor">
897
897
  <CustomSelectorInput
898
898
  className="project-dependency-editor__selector"
899
- ref={projectSelectorRef}
899
+ inputRef={projectSelectorRef}
900
900
  disabled={projectDisabled}
901
901
  options={projectsOptions}
902
902
  isClearable={true}
903
903
  escapeClearsValue={true}
904
- onChange={onProjectSelectionChange}
904
+ onChange={(val: ProjectOption | null) => {
905
+ onProjectSelectionChange(val).catch(
906
+ applicationStore.alertUnhandledError,
907
+ );
908
+ }}
905
909
  value={selectedProjectOption}
906
910
  isLoading={configState.fetchingProjectVersionsState.isInProgress}
907
911
  formatOptionLabel={formatOptionLabel}
@@ -911,7 +915,7 @@ const ProjectVersionDependencyEditor = observer(
911
915
  />
912
916
  <CustomSelectorInput
913
917
  className="project-dependency-editor__selector"
914
- ref={versionSelectorRef}
918
+ inputRef={versionSelectorRef}
915
919
  options={versionOptions}
916
920
  isClearable={true}
917
921
  escapeClearsValue={true}
@@ -84,7 +84,7 @@ export const BulkServiceRegistrationEditor = observer(() => {
84
84
  }
85
85
  : null;
86
86
  const onServiceTypeSelectionChange = (
87
- val: { label: ServiceExecutionMode; value: ServiceExecutionMode } | null,
87
+ val: { label: string; value: ServiceExecutionMode } | null,
88
88
  ): void => {
89
89
  globalBulkServiceRegistrationState.serviceConfigState.updateType(
90
90
  val?.value,
@@ -479,7 +479,6 @@ const ServiceGeneralEditor = observer(() => {
479
479
  <CustomSelectorInput
480
480
  className="service-editor__owner__selector"
481
481
  placeholder="Enter an owner..."
482
- spellCheck={false}
483
482
  inputValue={searchText}
484
483
  options={userOptions}
485
484
  allowCreating={true}
@@ -638,7 +637,6 @@ const ServiceGeneralEditor = observer(() => {
638
637
  <CustomSelectorInput
639
638
  className="service-editor__owner__selector"
640
639
  placeholder="Enter an owner..."
641
- spellCheck={false}
642
640
  inputValue={searchText}
643
641
  options={userOptions}
644
642
  allowCreating={true}
@@ -116,7 +116,7 @@ const PureExecutionContextConfigurationEditor = observer(
116
116
  const selectedMappingOption = {
117
117
  value: mapping,
118
118
  label: isMappingEmpty ? noMappingLabel : mapping.path,
119
- };
119
+ } as PackageableElementOption<Mapping>;
120
120
  const onMappingSelectionChange = (
121
121
  val: PackageableElementOption<Mapping>,
122
122
  ): void => {
@@ -143,7 +143,7 @@ const PureExecutionContextConfigurationEditor = observer(
143
143
  ? []
144
144
  : ([{ label: customRuntimeLabel }] as {
145
145
  label: string | React.ReactNode;
146
- value?: Runtime;
146
+ value: Runtime | undefined;
147
147
  }[]);
148
148
  // NOTE: for now, only include runtime associated with the mapping
149
149
  // TODO?: Should we bring the runtime compatibility check from query to here?
@@ -197,7 +197,7 @@ const PureExecutionContextConfigurationEditor = observer(
197
197
  };
198
198
  const onRuntimeSelectionChange = (val: {
199
199
  label: string | React.ReactNode;
200
- value?: Runtime;
200
+ value: Runtime | undefined;
201
201
  }): void => {
202
202
  if (val.value === undefined) {
203
203
  pureExecutionState.useCustomRuntime();
@@ -280,7 +280,7 @@ const PureExecutionContextConfigurationEditor = observer(
280
280
  !applicationStore.layoutService
281
281
  .TEMPORARY__isLightColorThemeEnabled
282
282
  }
283
- hasError={isMappingEmpty}
283
+ hasError={Boolean(isMappingEmpty)}
284
284
  />
285
285
  <button
286
286
  className="btn--dark btn--sm service-execution-editor__configuration__item__btn"
@@ -406,7 +406,7 @@ export const ChangeExecutionModal = observer(
406
406
  !applicationStore.layoutService
407
407
  .TEMPORARY__isLightColorThemeEnabled
408
408
  }
409
- disable={isReadOnly}
409
+ disabled={isReadOnly}
410
410
  />
411
411
  );
412
412
  }