@finos/legend-application-studio 28.18.40 → 28.18.42

Sign up to get free protection for your applications and to get access to all the features.
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
  }