@finos/legend-application-studio 13.0.1 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/lib/components/editor/command/project-search.css +1 -1
  2. package/lib/components/editor/command/project-search.css.map +1 -1
  3. package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
  4. package/lib/components/editor/command-center/ProjectSearchCommand.js +11 -3
  5. package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
  6. package/lib/components/editor/edit-panel/FunctionEditor.d.ts.map +1 -1
  7. package/lib/components/editor/edit-panel/FunctionEditor.js +41 -34
  8. package/lib/components/editor/edit-panel/FunctionEditor.js.map +1 -1
  9. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.d.ts.map +1 -1
  10. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js +35 -54
  11. package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js.map +1 -1
  12. package/lib/components/editor/edit-panel/GrammarTextEditor.d.ts.map +1 -1
  13. package/lib/components/editor/edit-panel/GrammarTextEditor.js +2 -2
  14. package/lib/components/editor/edit-panel/GrammarTextEditor.js.map +1 -1
  15. package/lib/components/editor/edit-panel/RuntimeEditor.d.ts.map +1 -1
  16. package/lib/components/editor/edit-panel/RuntimeEditor.js +11 -20
  17. package/lib/components/editor/edit-panel/RuntimeEditor.js.map +1 -1
  18. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.d.ts.map +1 -1
  19. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js +4 -8
  20. package/lib/components/editor/edit-panel/data-editor/DataElementEditor.js.map +1 -1
  21. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js +1 -1
  22. package/lib/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.js.map +1 -1
  23. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  24. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js +3 -7
  25. package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js.map +1 -1
  26. package/lib/components/editor/edit-panel/external-format-editor/BindingElementEditor.d.ts.map +1 -1
  27. package/lib/components/editor/edit-panel/external-format-editor/BindingElementEditor.js +2 -2
  28. package/lib/components/editor/edit-panel/external-format-editor/BindingElementEditor.js.map +1 -1
  29. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetElementEditor.js +1 -1
  30. package/lib/components/editor/edit-panel/external-format-editor/SchemaSetElementEditor.js.map +1 -1
  31. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.d.ts.map +1 -1
  32. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js +2 -9
  33. package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  34. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.d.ts.map +1 -1
  35. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js +3 -4
  36. package/lib/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.js.map +1 -1
  37. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  38. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js +3 -10
  39. package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  40. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.d.ts.map +1 -1
  41. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js +4 -10
  42. package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.js.map +1 -1
  43. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js +7 -9
  44. package/lib/components/editor/edit-panel/mapping-editor/MappingExplorer.js.map +1 -1
  45. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.d.ts.map +1 -1
  46. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js +9 -12
  47. package/lib/components/editor/edit-panel/mapping-editor/MappingTestEditor.js.map +1 -1
  48. package/lib/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.d.ts.map +1 -1
  49. package/lib/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.js +12 -10
  50. package/lib/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.js.map +1 -1
  51. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +2 -2
  52. package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
  53. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.d.ts.map +1 -1
  54. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js +5 -7
  55. package/lib/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.js.map +1 -1
  56. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.d.ts.map +1 -1
  57. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js +3 -4
  58. package/lib/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.js.map +1 -1
  59. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.d.ts.map +1 -1
  60. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js +1 -1
  61. package/lib/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.js.map +1 -1
  62. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.d.ts.map +1 -1
  63. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js +3 -5
  64. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionEditor.js.map +1 -1
  65. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  66. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +9 -6
  67. package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  68. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +1 -1
  69. package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
  70. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.d.ts.map +1 -1
  71. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js +4 -8
  72. package/lib/components/editor/edit-panel/uml-editor/AssociationEditor.js.map +1 -1
  73. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
  74. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +157 -57
  75. package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
  76. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.d.ts.map +1 -1
  77. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js +39 -21
  78. package/lib/components/editor/edit-panel/uml-editor/EnumerationEditor.js.map +1 -1
  79. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.d.ts.map +1 -1
  80. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js +62 -9
  81. package/lib/components/editor/edit-panel/uml-editor/ProfileEditor.js.map +1 -1
  82. package/lib/components/editor/edit-panel/uml-editor/PropertyEditor.d.ts.map +1 -1
  83. package/lib/components/editor/edit-panel/uml-editor/PropertyEditor.js +4 -8
  84. package/lib/components/editor/edit-panel/uml-editor/PropertyEditor.js.map +1 -1
  85. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.d.ts +7 -1
  86. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.d.ts.map +1 -1
  87. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js +33 -5
  88. package/lib/components/editor/edit-panel/uml-editor/StereotypeSelector.js.map +1 -1
  89. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.d.ts +7 -1
  90. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.d.ts.map +1 -1
  91. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js +35 -7
  92. package/lib/components/editor/edit-panel/uml-editor/TaggedValueEditor.js.map +1 -1
  93. package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
  94. package/lib/components/editor/side-bar/CreateNewElementModal.js +4 -4
  95. package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
  96. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  97. package/lib/components/editor/side-bar/Explorer.js +8 -15
  98. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  99. package/lib/components/shared/StudioLambdaEditor.d.ts +1 -0
  100. package/lib/components/shared/StudioLambdaEditor.d.ts.map +1 -1
  101. package/lib/components/shared/StudioLambdaEditor.js +2 -2
  102. package/lib/components/shared/StudioLambdaEditor.js.map +1 -1
  103. package/lib/components/workspace-setup/WorkspaceSetup.js +1 -1
  104. package/lib/components/workspace-setup/WorkspaceSetup.js.map +1 -1
  105. package/lib/index.css +2 -2
  106. package/lib/index.css.map +1 -1
  107. package/lib/package.json +5 -5
  108. package/lib/stores/EditorStore.d.ts.map +1 -1
  109. package/lib/stores/EditorStore.js +7 -7
  110. package/lib/stores/EditorStore.js.map +1 -1
  111. package/lib/stores/editor/NewElementState.d.ts.map +1 -1
  112. package/lib/stores/editor/NewElementState.js +8 -2
  113. package/lib/stores/editor/NewElementState.js.map +1 -1
  114. package/lib/stores/editor-state/GenerationSpecificationEditorState.d.ts +0 -2
  115. package/lib/stores/editor-state/GenerationSpecificationEditorState.d.ts.map +1 -1
  116. package/lib/stores/editor-state/GenerationSpecificationEditorState.js +1 -8
  117. package/lib/stores/editor-state/GenerationSpecificationEditorState.js.map +1 -1
  118. package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts.map +1 -1
  119. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js +2 -4
  120. package/lib/stores/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
  121. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js +1 -1
  122. package/lib/stores/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  123. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +1 -1
  124. package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
  125. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts +4 -1
  126. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.d.ts.map +1 -1
  127. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +31 -15
  128. package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
  129. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts +6 -3
  130. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
  131. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +30 -17
  132. package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  133. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js +1 -1
  134. package/lib/stores/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  135. package/lib/stores/graphModifier/DomainGraphModifierHelper.d.ts +10 -0
  136. package/lib/stores/graphModifier/DomainGraphModifierHelper.d.ts.map +1 -1
  137. package/lib/stores/graphModifier/DomainGraphModifierHelper.js +31 -1
  138. package/lib/stores/graphModifier/DomainGraphModifierHelper.js.map +1 -1
  139. package/lib/stores/shared/DnDUtil.d.ts +1 -2
  140. package/lib/stores/shared/DnDUtil.d.ts.map +1 -1
  141. package/lib/stores/shared/DnDUtil.js +0 -2
  142. package/lib/stores/shared/DnDUtil.js.map +1 -1
  143. package/package.json +13 -13
  144. package/src/components/editor/command-center/ProjectSearchCommand.tsx +13 -2
  145. package/src/components/editor/edit-panel/FunctionEditor.tsx +220 -152
  146. package/src/components/editor/edit-panel/GenerationSpecificationEditor.tsx +154 -184
  147. package/src/components/editor/edit-panel/GrammarTextEditor.tsx +4 -5
  148. package/src/components/editor/edit-panel/RuntimeEditor.tsx +89 -90
  149. package/src/components/editor/edit-panel/data-editor/DataElementEditor.tsx +57 -40
  150. package/src/components/editor/edit-panel/data-editor/RelationalCSVDataEditor.tsx +1 -1
  151. package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +50 -45
  152. package/src/components/editor/edit-panel/external-format-editor/BindingElementEditor.tsx +36 -32
  153. package/src/components/editor/edit-panel/external-format-editor/SchemaSetElementEditor.tsx +1 -1
  154. package/src/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.tsx +46 -41
  155. package/src/components/editor/edit-panel/mapping-editor/FlatDataPropertyMappingEditor.tsx +9 -7
  156. package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationEditor.tsx +18 -21
  157. package/src/components/editor/edit-panel/mapping-editor/MappingExecutionBuilder.tsx +39 -29
  158. package/src/components/editor/edit-panel/mapping-editor/MappingExplorer.tsx +39 -39
  159. package/src/components/editor/edit-panel/mapping-editor/MappingTestEditor.tsx +82 -58
  160. package/src/components/editor/edit-panel/mapping-editor/MappingTestsExplorer.tsx +66 -50
  161. package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +2 -2
  162. package/src/components/editor/edit-panel/mapping-editor/OperationSetImplementationEditor.tsx +48 -45
  163. package/src/components/editor/edit-panel/mapping-editor/PurePropertyMappingEditor.tsx +12 -8
  164. package/src/components/editor/edit-panel/mapping-editor/relational/RelationalPropertyMappingEditor.tsx +2 -3
  165. package/src/components/editor/edit-panel/service-editor/ServiceExecutionEditor.tsx +75 -72
  166. package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +63 -43
  167. package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +1 -1
  168. package/src/components/editor/edit-panel/uml-editor/AssociationEditor.tsx +55 -38
  169. package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +813 -499
  170. package/src/components/editor/edit-panel/uml-editor/EnumerationEditor.tsx +209 -113
  171. package/src/components/editor/edit-panel/uml-editor/ProfileEditor.tsx +184 -52
  172. package/src/components/editor/edit-panel/uml-editor/PropertyEditor.tsx +62 -39
  173. package/src/components/editor/edit-panel/uml-editor/StereotypeSelector.tsx +137 -52
  174. package/src/components/editor/edit-panel/uml-editor/TaggedValueEditor.tsx +171 -88
  175. package/src/components/editor/side-bar/CreateNewElementModal.tsx +4 -2
  176. package/src/components/editor/side-bar/Explorer.tsx +13 -20
  177. package/src/components/shared/StudioLambdaEditor.tsx +3 -0
  178. package/src/components/workspace-setup/WorkspaceSetup.tsx +1 -1
  179. package/src/stores/EditorStore.ts +7 -6
  180. package/src/stores/editor/NewElementState.ts +8 -2
  181. package/src/stores/editor-state/GenerationSpecificationEditorState.ts +1 -15
  182. package/src/stores/editor-state/element-editor-state/ElementEditorState.ts +2 -3
  183. package/src/stores/editor-state/element-editor-state/mapping/MappingEditorState.ts +1 -1
  184. package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +1 -1
  185. package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +46 -29
  186. package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +39 -20
  187. package/src/stores/editor-state/element-editor-state/service/ServiceRegistrationState.ts +1 -1
  188. package/src/stores/graphModifier/DomainGraphModifierHelper.ts +92 -0
  189. package/src/stores/shared/DnDUtil.ts +0 -2
@@ -33,6 +33,7 @@ import {
33
33
  MenuContent,
34
34
  CaretDownIcon,
35
35
  MenuContentItem,
36
+ PauseCircleIcon,
36
37
  } from '@finos/legend-art';
37
38
  import { debounce } from '@finos/legend-shared';
38
39
  import { flowResult } from 'mobx';
@@ -251,10 +252,16 @@ export const ServiceExecutionQueryEditor = observer(
251
252
  const importQuery = (): void => {
252
253
  queryState.setOpenQueryImporter(true);
253
254
  };
254
- // execute
255
- const handleExecute = applicationStore.guardUnhandledError(() =>
255
+
256
+ const runQuery = applicationStore.guardUnhandledError(() =>
256
257
  flowResult(executionState.handleExecute()),
257
258
  );
259
+
260
+ const cancelQuery = (): void => {
261
+ executionState.setIsRunningQuery(false);
262
+ executionState.setQueryRunPromise(undefined);
263
+ };
264
+
258
265
  const generatePlan = applicationStore.guardUnhandledError(() =>
259
266
  flowResult(executionState.generatePlan(false)),
260
267
  );
@@ -287,55 +294,68 @@ export const ServiceExecutionQueryEditor = observer(
287
294
  >
288
295
  <ArrowCircleDownIcon />
289
296
  </button>
290
- <button
291
- className="service-editor__execution__execute-btn"
292
- onClick={handleExecute}
293
- title="Run Query"
294
- disabled={executionState.isExecuting}
295
- tabIndex={-1}
296
- >
297
- <div className="service-editor__execution__execute-btn__label">
298
- <PlayIcon className="service-editor__execution__execute-btn__label__icon" />
299
- <div className="service-editor__execution__execute-btn__label__title">
300
- Run Query
297
+ {executionState.isRunningQuery ? (
298
+ <button
299
+ className="service-editor__execution__stop-btn"
300
+ onClick={cancelQuery}
301
+ tabIndex={-1}
302
+ >
303
+ <div className="btn--dark btn--caution service-editor__execution__stop-btn__label">
304
+ <PauseCircleIcon className="service-editor__execution__stop-btn__label__icon" />
305
+ <div className="service-editor__execution__stop-btn__label__title">
306
+ Stop
307
+ </div>
301
308
  </div>
302
- </div>
303
- <DropdownMenu
304
- className="service-editor__execution__execute-btn__dropdown-btn"
305
- disabled={
306
- executionState.isExecuting || executionState.isGeneratingPlan
307
- }
308
- content={
309
- <MenuContent>
310
- <MenuContentItem
311
- className="service-editor__execution__execute-btn__option"
312
- onClick={generatePlan}
313
- >
314
- Generate Plan
315
- </MenuContentItem>
316
- <MenuContentItem
317
- className="service-editor__execution__execute-btn__option"
318
- onClick={debugPlanGeneration}
319
- >
320
- Debug
321
- </MenuContentItem>
322
- </MenuContent>
323
- }
324
- menuProps={{
325
- anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
326
- transformOrigin: { vertical: 'top', horizontal: 'right' },
327
- }}
309
+ </button>
310
+ ) : (
311
+ <button
312
+ className="service-editor__execution__execute-btn"
313
+ onClick={runQuery}
314
+ title="Run Query"
315
+ disabled={executionState.isRunningQuery}
316
+ tabIndex={-1}
328
317
  >
329
- <CaretDownIcon />
330
- </DropdownMenu>
331
- </button>
318
+ <div className="service-editor__execution__execute-btn__label">
319
+ <PlayIcon className="service-editor__execution__execute-btn__label__icon" />
320
+ <div className="service-editor__execution__execute-btn__label__title">
321
+ Run Query
322
+ </div>
323
+ </div>
324
+ <DropdownMenu
325
+ className="service-editor__execution__execute-btn__dropdown-btn"
326
+ disabled={executionState.isGeneratingPlan}
327
+ content={
328
+ <MenuContent>
329
+ <MenuContentItem
330
+ className="service-editor__execution__execute-btn__option"
331
+ onClick={generatePlan}
332
+ >
333
+ Generate Plan
334
+ </MenuContentItem>
335
+ <MenuContentItem
336
+ className="service-editor__execution__execute-btn__option"
337
+ onClick={debugPlanGeneration}
338
+ >
339
+ Debug
340
+ </MenuContentItem>
341
+ </MenuContent>
342
+ }
343
+ menuProps={{
344
+ anchorOrigin: { vertical: 'bottom', horizontal: 'right' },
345
+ transformOrigin: { vertical: 'top', horizontal: 'right' },
346
+ }}
347
+ >
348
+ <CaretDownIcon />
349
+ </DropdownMenu>
350
+ </button>
351
+ )}
332
352
  </div>
333
353
  </div>
334
354
  <div className="panel__content property-mapping-editor__entry__container">
335
355
  <PanelLoadingIndicator
336
356
  isLoading={
337
357
  executionState.isOpeningQueryEditor ||
338
- executionState.isExecuting ||
358
+ executionState.isRunningQuery ||
339
359
  executionState.isGeneratingPlan
340
360
  }
341
361
  />
@@ -208,7 +208,7 @@ export const ServiceTestableEditor = observer(
208
208
  )}
209
209
  {!service.tests.length && (
210
210
  <BlankPanelPlaceholder
211
- placeholderText="Add Test Suite"
211
+ text="Add Test Suite"
212
212
  onClick={addSuite}
213
213
  clickActionType="add"
214
214
  tooltipText="Click to add test"
@@ -41,12 +41,19 @@ import {
41
41
  PlusIcon,
42
42
  ArrowCircleRightIcon,
43
43
  LongArrowRightIcon,
44
+ PanelDropZone,
44
45
  } from '@finos/legend-art';
45
46
  import { getElementIcon } from '../../../shared/ElementIconUtils.js';
46
47
  import { prettyCONSTName, guaranteeType } from '@finos/legend-shared';
47
48
  import { LEGEND_STUDIO_TEST_ID } from '../../../LegendStudioTestID.js';
48
- import { StereotypeSelector } from './StereotypeSelector.js';
49
- import { TaggedValueEditor } from './TaggedValueEditor.js';
49
+ import {
50
+ StereotypeDragPreviewLayer,
51
+ StereotypeSelector,
52
+ } from './StereotypeSelector.js';
53
+ import {
54
+ TaggedValueDragPreviewLayer,
55
+ TaggedValueEditor,
56
+ } from './TaggedValueEditor.js';
50
57
  import { PropertyEditor } from './PropertyEditor.js';
51
58
  import { useEditorStore } from '../../EditorStoreProvider.js';
52
59
  import {
@@ -388,11 +395,15 @@ export const AssociationEditor = observer(
388
395
  },
389
396
  [association, isReadOnly],
390
397
  );
391
- const [{ isTaggedValueDragOver }, dropTaggedValueRef] = useDrop(
398
+ const [{ isTaggedValueDragOver }, dropTaggedValueRef] = useDrop<
399
+ ElementDragSource,
400
+ void,
401
+ { isTaggedValueDragOver: boolean }
402
+ >(
392
403
  () => ({
393
404
  accept: [CORE_DND_TYPE.PROJECT_EXPLORER_PROFILE],
394
- drop: (item: ElementDragSource): void => handleDropTaggedValue(item),
395
- collect: (monitor): { isTaggedValueDragOver: boolean } => ({
405
+ drop: (item) => handleDropTaggedValue(item),
406
+ collect: (monitor) => ({
396
407
  isTaggedValueDragOver: monitor.isOver({ shallow: true }),
397
408
  }),
398
409
  }),
@@ -411,11 +422,15 @@ export const AssociationEditor = observer(
411
422
  },
412
423
  [association, isReadOnly],
413
424
  );
414
- const [{ isStereotypeDragOver }, dropStereotypeRef] = useDrop(
425
+ const [{ isStereotypeDragOver }, dropStereotypeRef] = useDrop<
426
+ ElementDragSource,
427
+ void,
428
+ { isStereotypeDragOver: boolean }
429
+ >(
415
430
  () => ({
416
431
  accept: [CORE_DND_TYPE.PROJECT_EXPLORER_PROFILE],
417
- drop: (item: ElementDragSource): void => handleDropStereotype(item),
418
- collect: (monitor): { isStereotypeDragOver: boolean } => ({
432
+ drop: (item) => handleDropStereotype(item),
433
+ collect: (monitor) => ({
419
434
  isStereotypeDragOver: monitor.isOver({ shallow: true }),
420
435
  }),
421
436
  }),
@@ -503,40 +518,42 @@ export const AssociationEditor = observer(
503
518
  </div>
504
519
  )}
505
520
  {selectedTab === UML_EDITOR_TAB.TAGGED_VALUES && (
506
- <div
507
- ref={dropTaggedValueRef}
508
- className={clsx('panel__content__lists', {
509
- 'panel__content__lists--dnd-over':
510
- isTaggedValueDragOver && !isReadOnly,
511
- })}
521
+ <PanelDropZone
522
+ isDragOver={isTaggedValueDragOver && !isReadOnly}
523
+ dropTargetConnector={dropTaggedValueRef}
512
524
  >
513
- {association.taggedValues.map((taggedValue) => (
514
- <TaggedValueEditor
515
- key={taggedValue._UUID}
516
- taggedValue={taggedValue}
517
- deleteValue={_deleteTaggedValue(taggedValue)}
518
- isReadOnly={isReadOnly}
519
- />
520
- ))}
521
- </div>
525
+ <div className="panel__content__lists">
526
+ <TaggedValueDragPreviewLayer />
527
+ {association.taggedValues.map((taggedValue) => (
528
+ <TaggedValueEditor
529
+ annotatedElement={association}
530
+ key={taggedValue._UUID}
531
+ taggedValue={taggedValue}
532
+ deleteValue={_deleteTaggedValue(taggedValue)}
533
+ isReadOnly={isReadOnly}
534
+ />
535
+ ))}
536
+ </div>
537
+ </PanelDropZone>
522
538
  )}
523
539
  {selectedTab === UML_EDITOR_TAB.STEREOTYPES && (
524
- <div
525
- ref={dropStereotypeRef}
526
- className={clsx('panel__content__lists', {
527
- 'panel__content__lists--dnd-over':
528
- isStereotypeDragOver && !isReadOnly,
529
- })}
540
+ <PanelDropZone
541
+ isDragOver={isStereotypeDragOver && !isReadOnly}
542
+ dropTargetConnector={dropStereotypeRef}
530
543
  >
531
- {association.stereotypes.map((stereotype) => (
532
- <StereotypeSelector
533
- key={stereotype.value._UUID}
534
- stereotype={stereotype}
535
- deleteStereotype={_deleteStereotype(stereotype)}
536
- isReadOnly={isReadOnly}
537
- />
538
- ))}
539
- </div>
544
+ <div className="panel__content__lists">
545
+ <StereotypeDragPreviewLayer />
546
+ {association.stereotypes.map((stereotype) => (
547
+ <StereotypeSelector
548
+ key={stereotype.value._UUID}
549
+ annotatedElement={association}
550
+ stereotype={stereotype}
551
+ deleteStereotype={_deleteStereotype(stereotype)}
552
+ isReadOnly={isReadOnly}
553
+ />
554
+ ))}
555
+ </div>
556
+ </PanelDropZone>
540
557
  )}
541
558
  </div>
542
559
  </div>