@finos/legend-extension-dsl-diagram 0.1.0 → 1.0.2

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 (47) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/DSLDiagram_Extension.d.ts +0 -5
  3. package/lib/DSLDiagram_Extension.d.ts.map +1 -1
  4. package/lib/DSLDiagram_Extension.js +0 -12
  5. package/lib/DSLDiagram_Extension.js.map +1 -1
  6. package/lib/DiagramRenderer.d.ts.map +1 -1
  7. package/lib/DiagramRenderer.js +76 -50
  8. package/lib/DiagramRenderer.js.map +1 -1
  9. package/lib/components/studio/ClassDiagramPreview.js +1 -1
  10. package/lib/components/studio/ClassDiagramPreview.js.map +1 -1
  11. package/lib/components/studio/{DSLDiagram_StudioPlugin.d.ts → DSLDiagram_LegendStudioPlugin.d.ts} +5 -5
  12. package/lib/components/studio/DSLDiagram_LegendStudioPlugin.d.ts.map +1 -0
  13. package/lib/components/studio/{DSLDiagram_StudioPlugin.js → DSLDiagram_LegendStudioPlugin.js} +4 -4
  14. package/lib/components/studio/DSLDiagram_LegendStudioPlugin.js.map +1 -0
  15. package/lib/components/studio/{DSLDiagram_StudioPlugin_Extension.d.ts → DSLDiagram_LegendStudioPlugin_Extension.d.ts} +3 -3
  16. package/lib/components/studio/DSLDiagram_LegendStudioPlugin_Extension.d.ts.map +1 -0
  17. package/lib/components/studio/{DSLDiagram_StudioPlugin_Extension.js → DSLDiagram_LegendStudioPlugin_Extension.js} +1 -1
  18. package/lib/components/studio/DSLDiagram_LegendStudioPlugin_Extension.js.map +1 -0
  19. package/lib/components/studio/DiagramEditor.js +36 -36
  20. package/lib/components/studio/DiagramEditor.js.map +1 -1
  21. package/lib/index.css +1 -1
  22. package/lib/index.css.map +1 -1
  23. package/lib/index.d.ts +2 -1
  24. package/lib/index.d.ts.map +1 -1
  25. package/lib/index.js +2 -1
  26. package/lib/index.js.map +1 -1
  27. package/lib/models/metamodels/pure/packageableElements/diagram/RelationshipView.d.ts.map +1 -1
  28. package/lib/models/metamodels/pure/packageableElements/diagram/RelationshipView.js +3 -0
  29. package/lib/models/metamodels/pure/packageableElements/diagram/RelationshipView.js.map +1 -1
  30. package/lib/stores/studio/DiagramEditorState.d.ts.map +1 -1
  31. package/lib/stores/studio/DiagramEditorState.js +3 -3
  32. package/lib/stores/studio/DiagramEditorState.js.map +1 -1
  33. package/package.json +15 -16
  34. package/src/DSLDiagram_Extension.ts +0 -15
  35. package/src/DiagramRenderer.ts +94 -73
  36. package/src/components/studio/{DSLDiagram_StudioPlugin.tsx → DSLDiagram_LegendStudioPlugin.tsx} +7 -7
  37. package/src/components/studio/{DSLDiagram_StudioPlugin_Extension.tsx → DSLDiagram_LegendStudioPlugin_Extension.tsx} +3 -3
  38. package/src/components/studio/DiagramEditor.tsx +2 -2
  39. package/src/index.ts +3 -1
  40. package/src/models/metamodels/pure/packageableElements/diagram/RelationshipView.ts +24 -14
  41. package/src/stores/studio/DiagramEditorState.ts +3 -7
  42. package/tsconfig.json +3 -2
  43. package/tsconfig.package.json +1 -0
  44. package/lib/components/studio/DSLDiagram_StudioPlugin.d.ts.map +0 -1
  45. package/lib/components/studio/DSLDiagram_StudioPlugin.js.map +0 -1
  46. package/lib/components/studio/DSLDiagram_StudioPlugin_Extension.d.ts.map +0 -1
  47. package/lib/components/studio/DSLDiagram_StudioPlugin_Extension.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @finos/legend-extension-dsl-diagram
2
2
 
3
+ ## 1.0.2
4
+
5
+ ## 1.0.1
6
+
7
+ ## 1.0.0
8
+
9
+ ### Major Changes
10
+
11
+ - [#692](https://github.com/finos/legend-studio/pull/692) [`caab0e67`](https://github.com/finos/legend-studio/commit/caab0e6772181e514b246fe6030a02e7169952cc) ([@akphi](https://github.com/akphi)) - **BREAKING CHANGE:** Remove `LegendStudioPreset` and `LegendQueryPreset` and expose `LegendStudioPlugin` and `LegendQueryPlugin` respectively as we now prefer the usage of `@finos/legend-graph-extension-collection` to better manage graph presets.
12
+
13
+ ## 0.1.2
14
+
15
+ ## 0.1.1
16
+
3
17
  ## 0.1.0
4
18
 
5
19
  ### Minor Changes
@@ -15,13 +15,8 @@
15
15
  */
16
16
  import { AbstractPreset } from '@finos/legend-shared';
17
17
  import type { GraphPluginManager } from '@finos/legend-graph';
18
- import type { StudioPluginManager } from '@finos/legend-studio';
19
18
  export declare class DSLDiagram_GraphPreset extends AbstractPreset {
20
19
  constructor();
21
20
  install(pluginManager: GraphPluginManager): void;
22
21
  }
23
- export declare class DSLDiagram_StudioPreset extends AbstractPreset {
24
- constructor();
25
- install(pluginManager: StudioPluginManager): void;
26
- }
27
22
  //# sourceMappingURL=DSLDiagram_Extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSLDiagram_Extension.d.ts","sourceRoot":"","sources":["../src/DSLDiagram_Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,qBAAa,sBAAuB,SAAQ,cAAc;;IAKxD,OAAO,CAAC,aAAa,EAAE,kBAAkB,GAAG,IAAI;CAKjD;AAED,qBAAa,uBAAwB,SAAQ,cAAc;;IAKzD,OAAO,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;CAMlD"}
1
+ {"version":3,"file":"DSLDiagram_Extension.d.ts","sourceRoot":"","sources":["../src/DSLDiagram_Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,qBAAa,sBAAuB,SAAQ,cAAc;;IAKxD,OAAO,CAAC,aAAa,EAAE,kBAAkB,GAAG,IAAI;CAKjD"}
@@ -17,7 +17,6 @@ import packageJson from '../package.json';
17
17
  import { AbstractPreset } from '@finos/legend-shared';
18
18
  import { DSLDiagram_PureGraphManagerPlugin } from './graphManager/DSLDiagram_PureGraphManagerPlugin';
19
19
  import { DSLDiagram_PureProtocolProcessorPlugin } from './models/protocols/pure/DSLDiagram_PureProtocolProcessorPlugin';
20
- import { DSLDiagram_StudioPlugin } from './components/studio/DSLDiagram_StudioPlugin';
21
20
  import { DSLDiagram_PureGraphPlugin } from './graph/DSLDiagram_PureGraphPlugin';
22
21
  export class DSLDiagram_GraphPreset extends AbstractPreset {
23
22
  constructor() {
@@ -29,15 +28,4 @@ export class DSLDiagram_GraphPreset extends AbstractPreset {
29
28
  new DSLDiagram_PureProtocolProcessorPlugin().install(pluginManager);
30
29
  }
31
30
  }
32
- export class DSLDiagram_StudioPreset extends AbstractPreset {
33
- constructor() {
34
- super(packageJson.extensions.studioPreset, packageJson.version);
35
- }
36
- install(pluginManager) {
37
- new DSLDiagram_StudioPlugin().install(pluginManager);
38
- new DSLDiagram_PureGraphPlugin().install(pluginManager);
39
- new DSLDiagram_PureGraphManagerPlugin().install(pluginManager);
40
- new DSLDiagram_PureProtocolProcessorPlugin().install(pluginManager);
41
- }
42
- }
43
31
  //# sourceMappingURL=DSLDiagram_Extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DSLDiagram_Extension.js","sourceRoot":"","sources":["../src/DSLDiagram_Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,sCAAsC,EAAE,MAAM,gEAAgE,CAAC;AAGxH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AACtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;QACE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,aAAiC;QACvC,IAAI,0BAA0B,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,iCAAiC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,sCAAsC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,cAAc;IACzD;QACE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,aAAkC;QACxC,IAAI,uBAAuB,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrD,IAAI,0BAA0B,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,iCAAiC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,sCAAsC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"DSLDiagram_Extension.js","sourceRoot":"","sources":["../src/DSLDiagram_Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,sCAAsC,EAAE,MAAM,gEAAgE,CAAC;AAExH,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD;QACE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,aAAiC;QACvC,IAAI,0BAA0B,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,iCAAiC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,sCAAsC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../src/DiagramRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DiagramRenderer.d.ts","sourceRoot":"","sources":["../src/DiagramRenderer.ts"],"names":[],"mappings":"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"}
@@ -489,12 +489,11 @@ export class DiagramRenderer {
489
489
  }
490
490
  manageVirtualScreen() {
491
491
  if (this.diagram.classViews.length) {
492
- let minX = this.diagram.classViews[0].position.x;
493
- let minY = this.diagram.classViews[0].position.y;
494
- let maxX = this.diagram.classViews[0].position.x +
495
- this.diagram.classViews[0].rectangle.width;
496
- let maxY = this.diagram.classViews[0].position.y +
497
- this.diagram.classViews[0].rectangle.height;
492
+ const firstClassView = guaranteeNonNullable(this.diagram.classViews[0]);
493
+ let minX = firstClassView.position.x;
494
+ let minY = firstClassView.position.y;
495
+ let maxX = firstClassView.position.x + firstClassView.rectangle.width;
496
+ let maxY = firstClassView.position.y + firstClassView.rectangle.height;
498
497
  for (const classView of this.diagram.classViews) {
499
498
  minX = Math.min(minX, classView.position.x);
500
499
  minY = Math.min(minY, classView.position.y);
@@ -508,7 +507,10 @@ export class DiagramRenderer {
508
507
  let fullPath = relationshipView.buildFullPath();
509
508
  fullPath = manageInsidePointsDynamically(fullPath, relationshipView.from.classView.value, relationshipView.to.classView.value);
510
509
  if (relationshipView instanceof PropertyView) {
511
- const box = this.drawLinePropertyText(fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], relationshipView.to.classView.value, relationshipView.property.value, false);
510
+ const box = this.drawLinePropertyText(
511
+ // NOTE: by the way we compute the full path, it would guarantee
512
+ // to always have at least 2 points
513
+ fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], relationshipView.to.classView.value, relationshipView.property.value, false);
512
514
  minX = Math.min(minX, box.position.x);
513
515
  minY = Math.min(minY, box.position.y);
514
516
  maxX = Math.max(maxX, box.edgePoint().x);
@@ -1157,7 +1159,10 @@ export class DiagramRenderer {
1157
1159
  fullPath = manageInsidePointsDynamically(fullPath, propertyView.from.classView.value, propertyView.to.classView.value);
1158
1160
  // const toProperty = asso instanceof.property ? asso.property : asso.association.properties[1];
1159
1161
  const toProperty = propertyView.property.value;
1160
- this.drawLinePropertyText(fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], propertyView.to.classView.value, toProperty, false);
1162
+ this.drawLinePropertyText(
1163
+ // NOTE: by the way we compute the full path, it would guarantee
1164
+ // to always have at least 2 points
1165
+ fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], propertyView.to.classView.value, toProperty, false);
1161
1166
  // if (asso.association) {
1162
1167
  // this.displayText(fullPath[1], fullPath[0], asso.from.classView, asso.association.properties[0], this.ctx);
1163
1168
  // }
@@ -1234,6 +1239,8 @@ export class DiagramRenderer {
1234
1239
  const rect = inheritance.to.classView.value.rectangle;
1235
1240
  let fullPath = inheritance.buildFullPath();
1236
1241
  fullPath = manageInsidePointsDynamically(fullPath, inheritance.from.classView.value, inheritance.to.classView.value);
1242
+ // NOTE: by the way we compute the full path, it would guarantee
1243
+ // to always have at least 2 points
1237
1244
  const startX = fullPath[fullPath.length - 2].x;
1238
1245
  const startY = fullPath[fullPath.length - 2].y;
1239
1246
  const endX = fullPath[fullPath.length - 1].x;
@@ -1312,17 +1319,25 @@ export class DiagramRenderer {
1312
1319
  angle = endX >= startX ? angle : angle + Math.PI;
1313
1320
  this.ctx.beginPath();
1314
1321
  this.ctx.moveTo(resultX +
1315
- (this.screenOffset.x + this.triangle[0].rotateX(angle)) * this.zoom, resultY +
1316
- (this.screenOffset.y + this.triangle[0].rotateY(angle)) * this.zoom);
1322
+ (this.screenOffset.x + this.triangle[0].rotateX(angle)) *
1323
+ this.zoom, resultY +
1324
+ (this.screenOffset.y + this.triangle[0].rotateY(angle)) *
1325
+ this.zoom);
1317
1326
  this.ctx.lineTo(resultX +
1318
- (this.screenOffset.x + this.triangle[1].rotateX(angle)) * this.zoom, resultY +
1319
- (this.screenOffset.y + this.triangle[1].rotateY(angle)) * this.zoom);
1327
+ (this.screenOffset.x + this.triangle[1].rotateX(angle)) *
1328
+ this.zoom, resultY +
1329
+ (this.screenOffset.y + this.triangle[1].rotateY(angle)) *
1330
+ this.zoom);
1320
1331
  this.ctx.lineTo(resultX +
1321
- (this.screenOffset.x + this.triangle[2].rotateX(angle)) * this.zoom, resultY +
1322
- (this.screenOffset.y + this.triangle[2].rotateY(angle)) * this.zoom);
1332
+ (this.screenOffset.x + this.triangle[2].rotateX(angle)) *
1333
+ this.zoom, resultY +
1334
+ (this.screenOffset.y + this.triangle[2].rotateY(angle)) *
1335
+ this.zoom);
1323
1336
  this.ctx.lineTo(resultX +
1324
- (this.screenOffset.x + this.triangle[0].rotateX(angle)) * this.zoom, resultY +
1325
- (this.screenOffset.y + this.triangle[0].rotateY(angle)) * this.zoom);
1337
+ (this.screenOffset.x + this.triangle[0].rotateX(angle)) *
1338
+ this.zoom, resultY +
1339
+ (this.screenOffset.y + this.triangle[0].rotateY(angle)) *
1340
+ this.zoom);
1326
1341
  this.ctx.fillStyle = this.generalizationViewInheritanceTriangeFillColor;
1327
1342
  this.ctx.fill();
1328
1343
  this.ctx.stroke();
@@ -1560,7 +1575,8 @@ export class DiagramRenderer {
1560
1575
  nextZoomLevel = Math.ceil(currentZoomLevel / 10) * 10 - 10;
1561
1576
  }
1562
1577
  else if (currentZoomLevel >=
1563
- DIAGRAM_ZOOM_LEVELS[DIAGRAM_ZOOM_LEVELS.length - 1] + 100) {
1578
+ DIAGRAM_ZOOM_LEVELS[DIAGRAM_ZOOM_LEVELS.length - 1] +
1579
+ 100) {
1564
1580
  nextZoomLevel = Math.ceil(currentZoomLevel / 100) * 100 - 100;
1565
1581
  }
1566
1582
  else {
@@ -1575,9 +1591,9 @@ export class DiagramRenderer {
1575
1591
  this.handleAddRelationship) {
1576
1592
  const eventPointInModelCoordinate = this.canvasCoordinateToModelCoordinate(this.eventCoordinateToCanvasCoordinate(new Point(e.x, e.y)));
1577
1593
  for (let i = this.diagram.classViews.length - 1; i >= 0; i--) {
1578
- if (this.diagram.classViews[i].contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1579
- const targetClassView = this.diagram.classViews[i];
1580
- const gview = this.handleAddRelationship(this.startClassView, this.diagram.classViews[i]);
1594
+ const targetClassView = this.diagram.classViews[i];
1595
+ if (targetClassView.contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1596
+ const gview = this.handleAddRelationship(this.startClassView, targetClassView);
1581
1597
  if (gview) {
1582
1598
  gview.from.setOffsetX(-(this.startClassView.position.x +
1583
1599
  this.startClassView.rectangle.width / 2 -
@@ -1668,7 +1684,8 @@ export class DiagramRenderer {
1668
1684
  // Check if the selection lies within the bottom right corner box of a box (so we can do resize of box here)
1669
1685
  // NOTE: Traverse backwards the class views to preserve z-index buffer
1670
1686
  for (let i = this.diagram.classViews.length - 1; i >= 0; i--) {
1671
- if (this.diagram.classViews[i]
1687
+ const targetClassView = this.diagram.classViews[i];
1688
+ if (targetClassView
1672
1689
  .buildBottomRightCornerBox()
1673
1690
  .contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1674
1691
  this.setSelectedClasses([]);
@@ -1694,11 +1711,11 @@ export class DiagramRenderer {
1694
1711
  let anyClassesSelected = false;
1695
1712
  // Traverse backwards the class views to preserve z-index buffer
1696
1713
  for (let i = this.diagram.classViews.length - 1; i >= 0; i--) {
1697
- if (this.diagram.classViews[i].contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1714
+ const targetClassView = this.diagram.classViews[i];
1715
+ if (targetClassView.contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1698
1716
  if (this.selectedClasses.length === 0 ||
1699
- this.selectedClasses.indexOf(this.diagram.classViews[i]) ===
1700
- -1) {
1701
- this.setSelectedClasses([this.diagram.classViews[i]]);
1717
+ this.selectedClasses.indexOf(targetClassView) === -1) {
1718
+ this.setSelectedClasses([targetClassView]);
1702
1719
  }
1703
1720
  if (!this.isReadOnly) {
1704
1721
  // Bring the class view to front
@@ -1775,8 +1792,9 @@ export class DiagramRenderer {
1775
1792
  this.setSelectionStart(eventPointInModelCoordinate);
1776
1793
  this.startClassView = undefined;
1777
1794
  for (let i = this.diagram.classViews.length - 1; i >= 0; i--) {
1778
- if (this.diagram.classViews[i].contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1779
- this.startClassView = this.diagram.classViews[i];
1795
+ const targetClassView = this.diagram.classViews[i];
1796
+ if (targetClassView.contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
1797
+ this.startClassView = targetClassView;
1780
1798
  }
1781
1799
  }
1782
1800
  if (!this.startClassView) {
@@ -2001,7 +2019,10 @@ export class DiagramRenderer {
2001
2019
  for (const propertyHolderView of propertyHolderViews) {
2002
2020
  let fullPath = propertyHolderView.buildFullPath();
2003
2021
  fullPath = manageInsidePointsDynamically(fullPath, propertyHolderView.from.classView.value, propertyHolderView.to.classView.value);
2004
- const propertyInfoBox = this.drawLinePropertyText(fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], propertyHolderView.to.classView.value, propertyHolderView.property.value, false);
2022
+ const propertyInfoBox = this.drawLinePropertyText(
2023
+ // NOTE: by the way we compute the full path, it would guarantee
2024
+ // to always have at least 2 points
2025
+ fullPath[fullPath.length - 2], fullPath[fullPath.length - 1], propertyHolderView.to.classView.value, propertyHolderView.property.value, false);
2005
2026
  if (propertyInfoBox.contains(eventPointInModelCoordinate.x, eventPointInModelCoordinate.y)) {
2006
2027
  this.setMouseOverPropertyHolderViewLabel(propertyHolderView);
2007
2028
  break;
@@ -2028,33 +2049,38 @@ export class DiagramRenderer {
2028
2049
  return [];
2029
2050
  }
2030
2051
  layoutTaxonomy(classViewLevels, diagram, positionInitialClass, superType) {
2031
- //Offsets
2052
+ // Offsets
2032
2053
  const spaceY = 30;
2033
2054
  const spaceX = 10;
2034
2055
  classViewLevels.reverse();
2035
- const classViews = classViewLevels.flatMap((level, currentLevelIndex) => {
2056
+ const classViews = classViewLevels.flatMap((levels, currentLevelIndex) => {
2036
2057
  // Get the bounding box of the precedent level
2037
2058
  let precedentTotalWidth = 0;
2038
2059
  let precedentTotalHeight = 0;
2039
2060
  let precedentX = 0;
2040
2061
  let precedentY = 0;
2041
2062
  if (currentLevelIndex > 0) {
2042
- const precedentByX = [...classViewLevels[currentLevelIndex - 1]].sort((a, b) => a.position.x - b.position.x);
2043
- precedentX = precedentByX[0].position.x;
2044
- precedentTotalWidth =
2045
- precedentByX[precedentByX.length - 1].position.x +
2046
- precedentByX[precedentByX.length - 1].rectangle.width -
2047
- precedentByX[0].position.x;
2048
- const precedentByY = [...classViewLevels[currentLevelIndex - 1]].sort((a, b) => a.position.y - b.position.y);
2049
- precedentY = precedentByY[0].position.y;
2050
- precedentTotalHeight =
2051
- precedentByY[precedentByY.length - 1].position.y +
2052
- precedentByY[precedentByY.length - 1].rectangle.height -
2053
- precedentByY[0].position.y;
2063
+ const precedent = classViewLevels[currentLevelIndex - 1];
2064
+ if (precedent.length) {
2065
+ const precedentByX = [...precedent].sort((a, b) => a.position.x - b.position.x);
2066
+ precedentX = precedentByX[0].position.x;
2067
+ precedentTotalWidth =
2068
+ precedentByX[precedentByX.length - 1].position.x +
2069
+ precedentByX[precedentByX.length - 1].rectangle
2070
+ .width -
2071
+ precedentByX[0].position.x;
2072
+ const precedentByY = [...precedent].sort((a, b) => a.position.y - b.position.y);
2073
+ precedentY = precedentByY[0].position.y;
2074
+ precedentTotalHeight =
2075
+ precedentByY[precedentByY.length - 1].position.y +
2076
+ precedentByY[precedentByY.length - 1].rectangle
2077
+ .height -
2078
+ precedentByY[0].position.y;
2079
+ }
2054
2080
  }
2055
2081
  // Get the bounding box of current Level
2056
- const maxHeight = Math.max(...level.map((classView) => classView.rectangle.height));
2057
- const totalWidth = level
2082
+ const maxHeight = Math.max(...levels.map((classView) => classView.rectangle.height));
2083
+ const totalWidth = levels
2058
2084
  .map((classView) => classView.rectangle.width)
2059
2085
  .reduce((a, b) => a + b + spaceX);
2060
2086
  // Get the starting position
@@ -2064,19 +2090,19 @@ export class DiagramRenderer {
2064
2090
  : precedentY + precedentTotalHeight + spaceY;
2065
2091
  // Set layout of current level
2066
2092
  if (positionInitialClass || currentLevelIndex > 0) {
2067
- level[0].setPosition(new Point(startX, currentLevelY));
2068
- level.forEach((view, index) => {
2069
- if (index > 0) {
2070
- const precedent = level[index - 1];
2093
+ levels[0].setPosition(new Point(startX, currentLevelY));
2094
+ levels.forEach((view, idx) => {
2095
+ if (idx > 0) {
2096
+ const precedent = levels[idx - 1];
2071
2097
  view.setPosition(new Point(precedent.position.x + precedent.rectangle.width + spaceX, currentLevelY));
2072
2098
  }
2073
2099
  });
2074
2100
  }
2075
- return level;
2101
+ return levels;
2076
2102
  });
2077
2103
  const generalizationViews = (superType ? classViewLevels : classViewLevels.reverse())
2078
2104
  .slice(0, classViewLevels.length - 1)
2079
- .flatMap((level, i) => level.flatMap((fromClassView) => classViewLevels[i + 1].flatMap((toClassView) => {
2105
+ .flatMap((level, idx) => level.flatMap((fromClassView) => classViewLevels[idx + 1].flatMap((toClassView) => {
2080
2106
  if (fromClassView.class.value.generalizations
2081
2107
  .map((g) => g.value.rawType)
2082
2108
  .includes(toClassView.class.value)) {