@api-client/ui 0.2.2 → 0.2.3

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 (170) hide show
  1. package/package.json +7 -2
  2. package/test/env.ts +15 -0
  3. package/test/tsconfig.json +1 -7
  4. package/web-test-runner.config.js +5 -1
  5. package/build/src/visualization/elements/VizAssociationElement.d.ts +0 -4
  6. package/build/src/visualization/elements/VizAssociationElement.d.ts.map +0 -1
  7. package/build/src/visualization/elements/VizAssociationElement.js +0 -4
  8. package/build/src/visualization/elements/VizAssociationElement.js.map +0 -1
  9. package/build/src/visualization/elements/VizWorkspaceElement.d.ts +0 -110
  10. package/build/src/visualization/elements/VizWorkspaceElement.d.ts.map +0 -1
  11. package/build/src/visualization/elements/VizWorkspaceElement.js +0 -321
  12. package/build/src/visualization/elements/VizWorkspaceElement.js.map +0 -1
  13. package/build/src/visualization/elements/WorkspaceStyles.d.ts +0 -3
  14. package/build/src/visualization/elements/WorkspaceStyles.d.ts.map +0 -1
  15. package/build/src/visualization/elements/WorkspaceStyles.js +0 -168
  16. package/build/src/visualization/elements/WorkspaceStyles.js.map +0 -1
  17. package/build/src/visualization/lib/AnchorFinder.d.ts +0 -64
  18. package/build/src/visualization/lib/AnchorFinder.d.ts.map +0 -1
  19. package/build/src/visualization/lib/AnchorFinder.js +0 -107
  20. package/build/src/visualization/lib/AnchorFinder.js.map +0 -1
  21. package/build/src/visualization/lib/AnchorUtils.d.ts +0 -10
  22. package/build/src/visualization/lib/AnchorUtils.d.ts.map +0 -1
  23. package/build/src/visualization/lib/AnchorUtils.js +0 -44
  24. package/build/src/visualization/lib/AnchorUtils.js.map +0 -1
  25. package/build/src/visualization/lib/AssociationAnchors.d.ts +0 -134
  26. package/build/src/visualization/lib/AssociationAnchors.d.ts.map +0 -1
  27. package/build/src/visualization/lib/AssociationAnchors.js +0 -351
  28. package/build/src/visualization/lib/AssociationAnchors.js.map +0 -1
  29. package/build/src/visualization/lib/LabelSketch.d.ts +0 -16
  30. package/build/src/visualization/lib/LabelSketch.d.ts.map +0 -1
  31. package/build/src/visualization/lib/LabelSketch.js +0 -53
  32. package/build/src/visualization/lib/LabelSketch.js.map +0 -1
  33. package/build/src/visualization/lib/LineSketch.d.ts +0 -26
  34. package/build/src/visualization/lib/LineSketch.d.ts.map +0 -1
  35. package/build/src/visualization/lib/LineSketch.js +0 -55
  36. package/build/src/visualization/lib/LineSketch.js.map +0 -1
  37. package/build/src/visualization/lib/Point.d.ts +0 -74
  38. package/build/src/visualization/lib/Point.d.ts.map +0 -1
  39. package/build/src/visualization/lib/Point.js +0 -121
  40. package/build/src/visualization/lib/Point.js.map +0 -1
  41. package/build/src/visualization/lib/PositionUtils.d.ts +0 -65
  42. package/build/src/visualization/lib/PositionUtils.d.ts.map +0 -1
  43. package/build/src/visualization/lib/PositionUtils.js +0 -205
  44. package/build/src/visualization/lib/PositionUtils.js.map +0 -1
  45. package/build/src/visualization/lib/SelectionManager.d.ts +0 -183
  46. package/build/src/visualization/lib/SelectionManager.d.ts.map +0 -1
  47. package/build/src/visualization/lib/SelectionManager.js +0 -481
  48. package/build/src/visualization/lib/SelectionManager.js.map +0 -1
  49. package/build/src/visualization/lib/ShapeArtist.d.ts +0 -45
  50. package/build/src/visualization/lib/ShapeArtist.d.ts.map +0 -1
  51. package/build/src/visualization/lib/ShapeArtist.js +0 -209
  52. package/build/src/visualization/lib/ShapeArtist.js.map +0 -1
  53. package/build/src/visualization/lib/SvgMarkers.d.ts +0 -14
  54. package/build/src/visualization/lib/SvgMarkers.d.ts.map +0 -1
  55. package/build/src/visualization/lib/SvgMarkers.js +0 -77
  56. package/build/src/visualization/lib/SvgMarkers.js.map +0 -1
  57. package/build/src/visualization/lib/TipSketch.d.ts +0 -26
  58. package/build/src/visualization/lib/TipSketch.d.ts.map +0 -1
  59. package/build/src/visualization/lib/TipSketch.js +0 -77
  60. package/build/src/visualization/lib/TipSketch.js.map +0 -1
  61. package/build/src/visualization/lib/TouchSupport.d.ts +0 -14
  62. package/build/src/visualization/lib/TouchSupport.d.ts.map +0 -1
  63. package/build/src/visualization/lib/TouchSupport.js +0 -55
  64. package/build/src/visualization/lib/TouchSupport.js.map +0 -1
  65. package/build/src/visualization/lib/Utils.d.ts +0 -25
  66. package/build/src/visualization/lib/Utils.d.ts.map +0 -1
  67. package/build/src/visualization/lib/Utils.js +0 -59
  68. package/build/src/visualization/lib/Utils.js.map +0 -1
  69. package/build/src/visualization/lib/VisualizationTypes.d.ts +0 -216
  70. package/build/src/visualization/lib/VisualizationTypes.d.ts.map +0 -1
  71. package/build/src/visualization/lib/VisualizationTypes.js +0 -3
  72. package/build/src/visualization/lib/VisualizationTypes.js.map +0 -1
  73. package/build/src/visualization/lib/WorkspaceAlignment.d.ts +0 -51
  74. package/build/src/visualization/lib/WorkspaceAlignment.d.ts.map +0 -1
  75. package/build/src/visualization/lib/WorkspaceAlignment.js +0 -243
  76. package/build/src/visualization/lib/WorkspaceAlignment.js.map +0 -1
  77. package/build/src/visualization/lib/WorkspaceDebugging.d.ts +0 -104
  78. package/build/src/visualization/lib/WorkspaceDebugging.d.ts.map +0 -1
  79. package/build/src/visualization/lib/WorkspaceDebugging.js +0 -286
  80. package/build/src/visualization/lib/WorkspaceDebugging.js.map +0 -1
  81. package/build/src/visualization/lib/WorkspaceEdges.d.ts +0 -293
  82. package/build/src/visualization/lib/WorkspaceEdges.d.ts.map +0 -1
  83. package/build/src/visualization/lib/WorkspaceEdges.js +0 -1073
  84. package/build/src/visualization/lib/WorkspaceEdges.js.map +0 -1
  85. package/build/src/visualization/lib/WorkspaceGestures.d.ts +0 -119
  86. package/build/src/visualization/lib/WorkspaceGestures.d.ts.map +0 -1
  87. package/build/src/visualization/lib/WorkspaceGestures.js +0 -376
  88. package/build/src/visualization/lib/WorkspaceGestures.js.map +0 -1
  89. package/build/src/visualization/lib/WorkspaceSizing.d.ts +0 -66
  90. package/build/src/visualization/lib/WorkspaceSizing.d.ts.map +0 -1
  91. package/build/src/visualization/lib/WorkspaceSizing.js +0 -168
  92. package/build/src/visualization/lib/WorkspaceSizing.js.map +0 -1
  93. package/build/src/visualization/lib/lines/RectilinearLine.d.ts +0 -114
  94. package/build/src/visualization/lib/lines/RectilinearLine.d.ts.map +0 -1
  95. package/build/src/visualization/lib/lines/RectilinearLine.js +0 -605
  96. package/build/src/visualization/lib/lines/RectilinearLine.js.map +0 -1
  97. package/build/src/visualization/lib/tips/RectilinearTip.d.ts +0 -26
  98. package/build/src/visualization/lib/tips/RectilinearTip.d.ts.map +0 -1
  99. package/build/src/visualization/lib/tips/RectilinearTip.js +0 -149
  100. package/build/src/visualization/lib/tips/RectilinearTip.js.map +0 -1
  101. package/build/src/visualization/lib/tips/TipArtist.d.ts +0 -22
  102. package/build/src/visualization/lib/tips/TipArtist.d.ts.map +0 -1
  103. package/build/src/visualization/lib/tips/TipArtist.js +0 -31
  104. package/build/src/visualization/lib/tips/TipArtist.js.map +0 -1
  105. package/build/src/visualization/lib/types.d.ts +0 -164
  106. package/build/src/visualization/lib/types.d.ts.map +0 -1
  107. package/build/src/visualization/lib/types.js +0 -2
  108. package/build/src/visualization/lib/types.js.map +0 -1
  109. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts +0 -126
  110. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts.map +0 -1
  111. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js +0 -260
  112. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js.map +0 -1
  113. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts +0 -93
  114. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts.map +0 -1
  115. package/build/src/visualization/plugin/group-selection/GroupSelection.js +0 -250
  116. package/build/src/visualization/plugin/group-selection/GroupSelection.js.map +0 -1
  117. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts +0 -10
  118. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts.map +0 -1
  119. package/build/src/visualization/plugin/positioning/DataModelLayout.js +0 -105
  120. package/build/src/visualization/plugin/positioning/DataModelLayout.js.map +0 -1
  121. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts +0 -93
  122. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts.map +0 -1
  123. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js +0 -96
  124. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js.map +0 -1
  125. package/build/src/visualization/viz-association.d.ts +0 -7
  126. package/build/src/visualization/viz-association.d.ts.map +0 -1
  127. package/build/src/visualization/viz-association.js +0 -3
  128. package/build/src/visualization/viz-association.js.map +0 -1
  129. package/build/src/visualization/viz-workspace.d.ts +0 -7
  130. package/build/src/visualization/viz-workspace.d.ts.map +0 -1
  131. package/build/src/visualization/viz-workspace.js +0 -3
  132. package/build/src/visualization/viz-workspace.js.map +0 -1
  133. package/src/visualization/elements/VizAssociationElement.ts +0 -3
  134. package/src/visualization/elements/VizWorkspaceElement.ts +0 -302
  135. package/src/visualization/elements/WorkspaceStyles.ts +0 -168
  136. package/src/visualization/lib/AnchorFinder.ts +0 -112
  137. package/src/visualization/lib/AnchorUtils.ts +0 -53
  138. package/src/visualization/lib/AssociationAnchors.ts +0 -418
  139. package/src/visualization/lib/LabelSketch.ts +0 -67
  140. package/src/visualization/lib/LineSketch.ts +0 -62
  141. package/src/visualization/lib/Point.ts +0 -134
  142. package/src/visualization/lib/PositionUtils.ts +0 -218
  143. package/src/visualization/lib/SelectionManager.ts +0 -513
  144. package/src/visualization/lib/ShapeArtist.ts +0 -222
  145. package/src/visualization/lib/SvgMarkers.ts +0 -80
  146. package/src/visualization/lib/TipSketch.ts +0 -91
  147. package/src/visualization/lib/TouchSupport.ts +0 -72
  148. package/src/visualization/lib/Utils.ts +0 -63
  149. package/src/visualization/lib/VisualizationTypes.ts +0 -232
  150. package/src/visualization/lib/WorkspaceAlignment.ts +0 -261
  151. package/src/visualization/lib/WorkspaceDebugging.ts +0 -313
  152. package/src/visualization/lib/WorkspaceEdges.ts +0 -1153
  153. package/src/visualization/lib/WorkspaceGestures.ts +0 -400
  154. package/src/visualization/lib/WorkspaceSizing.ts +0 -181
  155. package/src/visualization/lib/lines/RectilinearLine.ts +0 -589
  156. package/src/visualization/lib/tips/RectilinearTip.ts +0 -156
  157. package/src/visualization/lib/tips/TipArtist.ts +0 -34
  158. package/src/visualization/lib/types.ts +0 -173
  159. package/src/visualization/plugin/dnd/DragAndDropPlugin.ts +0 -294
  160. package/src/visualization/plugin/group-selection/GroupSelection.ts +0 -271
  161. package/src/visualization/plugin/positioning/DataModelLayout.ts +0 -114
  162. package/src/visualization/plugin/positioning/WorkspaceLayout.ts +0 -149
  163. package/src/visualization/viz-association.ts +0 -9
  164. package/src/visualization/viz-workspace.ts +0 -9
  165. package/test/env.d.ts +0 -9
  166. package/test/env.js +0 -7
  167. package/test/visualization/lib/AnchorFinder.test.ts +0 -313
  168. package/test/visualization/lib/AnchorUtils.test.ts +0 -178
  169. package/test/visualization/lib/PositionUtils.test.ts +0 -406
  170. package/test/visualization/lib/test-styles.css +0 -80
@@ -1 +0,0 @@
1
- {"version":3,"file":"RectilinearLine.js","sourceRoot":"","sources":["../../../../../src/visualization/lib/lines/RectilinearLine.ts"],"names":[],"mappings":"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","sourcesContent":["import { findDirection } from '../PositionUtils.js'\nimport { Point } from '../Point.js'\nimport { ILineSketchOptions, IVisualizationRectilinearLineShape } from '../VisualizationTypes.js'\nimport { GeoDirection, IWorkspaceEdge } from '../types.js'\n\nexport const startWest = Symbol('startWest')\nexport const startEast = Symbol('startEast')\nexport const startSouth = Symbol('startSouth')\nexport const startNorth = Symbol('startNorth')\nexport const sketchEastEast = Symbol('sketchEastEast')\nexport const sketchEastWest = Symbol('sketchEastWest')\nexport const sketchEastSouth = Symbol('sketchEastSouth')\nexport const sketchEastNorth = Symbol('sketchEastNorth')\nexport const sketchNorthWest = Symbol('sketchNorthWest')\nexport const sketchNorthEast = Symbol('sketchNorthEast')\nexport const sketchNorthSouth = Symbol('sketchNorthSouth')\nexport const sketchNorthNorth = Symbol('sketchNorthNorth')\nexport const sketchWestSouth = Symbol('sketchWestSouth')\nexport const sketchWestWest = Symbol('sketchWestWest')\nexport const sketchWestEast = Symbol('sketchWestEast')\nexport const sketchWestNorth = Symbol('sketchWestNorth')\nexport const sketchSouthNorth = Symbol('sketchSouthNorth')\nexport const sketchSouthWest = Symbol('sketchSouthWest')\nexport const sketchSouthSouth = Symbol('sketchSouthSouth')\nexport const sketchSouthEast = Symbol('sketchSouthEast')\n\nexport const ElbowThreshold = 24\n\n/**\n * A class that draws a rectilinear line\n */\nexport class RectilinearLine {\n ep: Point\n\n sp: Point\n\n source: DOMRect\n\n target: DOMRect\n\n others?: IWorkspaceEdge[]\n\n /**\n * The default padding to use when computing distance between the line and an object.\n */\n overlapPadding = 20\n\n /**\n * The list of all points (start + end + control points)\n */\n coordinates: Point[]\n\n /**\n * The list of all control points.\n */\n controlPoints: Point[] = []\n\n transformOrigin: string\n\n /**\n * The delta between Y coordinates\n */\n dx: number\n\n /**\n * The delta between Y coordinates\n */\n dy: number\n\n /**\n * Half distance between start.x and end.x\n */\n halfX: number\n\n /**\n * Half distance between start.y and end.y\n */\n halfY: number\n\n constructor(config: ILineSketchOptions) {\n const { endPoint, target, startPoint, source, others } = config\n this.ep = endPoint\n this.sp = startPoint\n this.source = source\n this.target = target\n this.others = others\n this.coordinates = [startPoint]\n this.transformOrigin = `${startPoint.x}px ${endPoint.y}px`\n this.dx = endPoint.x - startPoint.x\n this.dy = endPoint.y - startPoint.y\n this.halfX = Math.abs(this.dx) / 2\n this.halfY = Math.abs(this.dy) / 2\n }\n\n /**\n * Sketches a regular line.\n * @returns Computed model for the association.\n */\n sketch(): IVisualizationRectilinearLineShape | null {\n const { sp, ep, source, target } = this\n if (!sp.validate() || !ep.validate()) {\n return null\n }\n const directions = findDirection(sp, ep, source, target)\n const { start, end } = directions\n // console.log(start, end);\n if (start === 'west') {\n this[startWest](end)\n } else if (start === 'south') {\n this[startSouth](end)\n } else if (start === 'east') {\n this[startEast](end)\n } else {\n this[startNorth](end)\n }\n\n const { coordinates, controlPoints, transformOrigin } = this\n coordinates.push(this.ep)\n const path = coordinates.map((item) => `${item.x},${item.y}`).join(' ')\n const result: IVisualizationRectilinearLineShape = {\n controlPoints,\n transformOrigin,\n type: 'rectilinear',\n coordinates,\n rotate: 0,\n path,\n startPoint: sp,\n endPoint: ep,\n }\n return result\n }\n\n /**\n * Adds a control point to the list of points.\n */\n addCP(x = 0, y = 0): Point {\n const cp = new Point(x, y)\n this.coordinates.push(cp)\n this.controlPoints.push(cp)\n return cp\n }\n\n /**\n * Computes the line that starts on the west side of the source object\n * and end in the `end`\n * @param end The direction where the line ends.\n */\n [startWest](end: GeoDirection): void {\n if (end === 'west') {\n this[sketchWestWest]()\n } else if (end === 'south') {\n this[sketchWestSouth]()\n } else if (end === 'east') {\n this[sketchWestEast]()\n } else {\n this[sketchWestNorth]()\n }\n }\n\n [sketchWestSouth](): void {\n const { target, sp, ep, overlapPadding, dx, dy } = this\n if (dx >= 0) {\n if (dy < 0) {\n // go around the source to the right\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, target.bottom + overlapPadding)\n this.addCP(ep.x, cp2.y)\n } else {\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, target.bottom + overlapPadding)\n this.addCP(ep.x, cp2.y)\n }\n } else if (dy < 0) {\n this.addCP(ep.x, sp.y)\n } else {\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, target.bottom + overlapPadding)\n this.addCP(ep.x, cp2.y)\n }\n }\n\n [sketchWestWest](): void {\n const { source, target, sp, ep, overlapPadding, halfX, dy } = this\n const overlap = source.left < target.right\n if (overlap) {\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, source.top - overlapPadding)\n const cp3 = this.addCP(Math.max(target.right, source.right) + overlapPadding, cp2.y)\n this.addCP(cp3.x, ep.y)\n } else {\n // draw a straight line when distance between the two is below the threshold\n if (Math.abs(dy) > ElbowThreshold) {\n this.addCP(sp.x - halfX, sp.y)\n this.addCP(ep.x + halfX, ep.y)\n }\n }\n }\n\n [sketchWestEast](): void {\n const { source, target, sp, ep, overlapPadding } = this\n const overlap = source.left < target.left\n if (overlap) {\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n this.addCP(cp1.x, ep.y)\n } else {\n const cp1 = this.addCP(ep.x - overlapPadding, sp.y)\n this.addCP(cp1.x, ep.y)\n }\n }\n\n [sketchWestNorth](): void {\n const { source, target, sp, ep, overlapPadding } = this\n const overlap = source.left < target.right\n if (overlap) {\n const cp1 = this.addCP(sp.x - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, ep.y - overlapPadding)\n this.addCP(ep.x, cp2.y)\n } else {\n this.addCP(ep.x, sp.y)\n }\n }\n\n /**\n * Computes the line that starts on the west side of the source object\n * and end in the `end`\n * @param end The direction where the line ends.\n */\n [startSouth](end: GeoDirection): void {\n if (end === 'west') {\n this[sketchSouthWest]()\n } else if (end === 'south') {\n this[sketchSouthSouth]()\n } else if (end === 'east') {\n this[sketchSouthEast]()\n } else {\n this[sketchSouthNorth]()\n }\n }\n\n [sketchSouthNorth](): void {\n const { source, target, sp, ep, halfY, overlapPadding, dx } = this\n const overlapping = source.bottom + overlapPadding > target.top - overlapPadding\n if (overlapping) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n let cp2\n if (source.right < target.left) {\n // the target is on the right\n cp2 = this.addCP(target.left - overlapPadding, cp1.y)\n } else {\n // the target is on the left\n cp2 = this.addCP(target.right + overlapPadding, cp1.y)\n }\n const cp3 = this.addCP(cp2.x, target.top - overlapPadding)\n this.addCP(ep.x, cp3.y)\n } else {\n // draw a straight line instead of the elbow when the distance is below the threshold\n if (Math.abs(dx) > ElbowThreshold) {\n const cp1 = this.addCP(sp.x, sp.y + halfY)\n this.addCP(ep.x, cp1.y)\n }\n }\n }\n\n [sketchSouthWest](): void {\n const { sp, ep, dx, dy, halfY, halfX, overlapPadding } = this\n if (dx >= 0) {\n if (dy < 0) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n const cp2 = this.addCP(ep.x + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n const cp1 = this.addCP(sp.x, sp.y + halfY)\n const cp2 = this.addCP(ep.x + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n } else if (dy < 0) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n const cp2 = this.addCP(ep.x + halfX, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n this.addCP(sp.x, ep.y)\n }\n }\n\n [sketchSouthSouth](): void {\n const { source, target, sp, ep, overlapPadding } = this\n if (source.bottom + 2 * overlapPadding > target.bottom) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n this.addCP(ep.x, cp1.y)\n } else {\n const cp1 = this.addCP(sp.x, ep.y + overlapPadding)\n this.addCP(ep.x, cp1.y)\n }\n }\n\n [sketchSouthEast](): void {\n const { source, sp, ep, dx, dy, overlapPadding, halfX, halfY } = this\n if (dx >= 0) {\n if (dy < 0) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n let c2x = sp.x + halfX\n if (c2x < source.right + overlapPadding) {\n c2x = ep.x - overlapPadding\n }\n const cp2 = this.addCP(c2x, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n this.addCP(sp.x, ep.y)\n }\n } else if (dy < 0) {\n const cp1 = this.addCP(sp.x, sp.y + overlapPadding)\n const cp2 = this.addCP(ep.x - overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n const cp1 = this.addCP(sp.x, sp.y + halfY)\n const cp2 = this.addCP(ep.x - overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n }\n\n /**\n * Computes the line that starts on the west side of the source object\n * and end in the `end`\n * @param end The direction where the line ends.\n */\n [startEast](end: GeoDirection): void {\n if (end === 'west') {\n this[sketchEastWest]()\n } else if (end === 'east') {\n this[sketchEastEast]()\n } else if (end === 'south') {\n this[sketchEastSouth]()\n } else {\n this[sketchEastNorth]()\n }\n }\n\n [sketchEastEast](): void {\n const { source, target, sp, ep, overlapPadding, halfX, dy } = this\n\n if (sp.x + 2 * overlapPadding > target.x) {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, source.top - overlapPadding)\n const cp3 = this.addCP(ep.x - overlapPadding, cp2.y)\n this.addCP(cp3.x, ep.y)\n } else {\n // draw a straight line when distance between the two is below the threshold\n if (Math.abs(dy) > ElbowThreshold) {\n const cp1 = this.addCP(sp.x + halfX, sp.y)\n this.addCP(cp1.x, ep.y)\n }\n }\n }\n\n [sketchEastWest](): void {\n const { source, target, sp, ep, overlapPadding, dx } = this\n if (dx >= 0) {\n // target on the right\n if (sp.y > target.top - overlapPadding && sp.y < target.bottom + overlapPadding) {\n // line is going through the target object\n const targetAbove = ep.y < sp.y\n const cp1 = this.addCP(target.left - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x)\n if (targetAbove) {\n cp2.y = target.bottom + overlapPadding\n } else {\n cp2.y = target.top - overlapPadding\n }\n const cp3 = this.addCP(ep.x + overlapPadding, cp2.y)\n this.addCP(cp3.x, ep.y)\n } else {\n const cp1 = this.addCP(ep.x + overlapPadding, sp.y)\n this.addCP(cp1.x, ep.y)\n }\n } else {\n // target on the left\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n if (ep.y > source.top - overlapPadding && ep.y < source.bottom + overlapPadding) {\n // line is going through the source object\n const targetAbove = ep.y < sp.y\n const cp2 = this.addCP(cp1.x)\n if (targetAbove) {\n cp2.y = source.top - overlapPadding\n } else {\n cp2.y = source.bottom + overlapPadding\n }\n const cp3 = this.addCP(source.left - overlapPadding, cp2.y)\n this.addCP(cp3.x, ep.y)\n } else {\n this.addCP(cp1.x, ep.y)\n }\n }\n }\n\n [sketchEastSouth](): void {\n const { source, target, sp, ep, overlapPadding } = this\n const targetAround = ep.y > sp.y\n const sourceAround = sp.x > ep.x\n\n if (targetAround && sourceAround) {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, Math.max(ep.y, source.bottom) + overlapPadding)\n this.addCP(ep.x, cp2.y)\n } else if (targetAround) {\n const overlapping = sp.x + overlapPadding > target.left\n if (overlapping) {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, target.bottom + overlapPadding)\n const cp3 = this.addCP(target.left - overlapPadding, cp2.y)\n const cp4 = this.addCP(cp3.x, ep.y - overlapPadding)\n this.addCP(ep.x, cp4.y)\n } else {\n const cp1 = this.addCP(target.left - overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, ep.y + overlapPadding)\n this.addCP(ep.x, cp2.y)\n }\n } else if (sourceAround) {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, source.bottom + overlapPadding)\n const cp3 = this.addCP(target.right + overlapPadding, cp2.y)\n const cp4 = this.addCP(cp3.x, target.bottom + overlapPadding)\n this.addCP(ep.x, cp4.y)\n } else {\n this.addCP(ep.x, sp.y)\n }\n }\n\n [sketchEastNorth](): void {\n const { source, target, sp, ep, overlapPadding, dx, dy } = this\n if (dx >= 0) {\n if (dy < 0) {\n const cp1 = this.addCP(target.right + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, target.top - overlapPadding)\n this.addCP(ep.x, cp2.y)\n } else if (source.right > target.left - overlapPadding) {\n // go around the source\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, source.bottom + overlapPadding)\n const cp3 = this.addCP(target.left - overlapPadding, cp2.y)\n const cp4 = this.addCP(cp3.x, target.bottom + overlapPadding)\n this.addCP(ep.x, cp4.y)\n } else {\n this.addCP(ep.x, sp.y)\n }\n } else if (source.bottom + 2 * overlapPadding < target.top) {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, source.bottom + overlapPadding)\n this.addCP(ep.x, cp2.y)\n } else {\n const cp1 = this.addCP(sp.x + overlapPadding, sp.y)\n const cp2 = this.addCP(cp1.x, Math.min(target.top, source.top) - overlapPadding)\n this.addCP(ep.x, cp2.y)\n }\n }\n\n /**\n * Computes the line that starts on the west side of the source object\n * and end in the `end`\n * @param end The direction where the line ends.\n */\n [startNorth](end: GeoDirection): void {\n if (end === 'west') {\n this[sketchNorthWest]()\n } else if (end === 'north') {\n this[sketchNorthNorth]()\n } else if (end === 'east') {\n this[sketchNorthEast]()\n } else {\n this[sketchNorthSouth]()\n }\n }\n\n [sketchNorthWest](): void {\n const { source, target, sp, ep, overlapPadding, dx, dy } = this\n if (dx >= 0) {\n if (dy < 0) {\n if (target.bottom + 2 * overlapPadding > sp.y) {\n // go above the target\n const cp1 = this.addCP(sp.x, target.top - overlapPadding)\n const cp2 = this.addCP(ep.x + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n // go below the target\n const cp1 = this.addCP(sp.x, target.bottom + overlapPadding)\n const cp2 = this.addCP(ep.x + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n } else {\n const cp1 = this.addCP(sp.x, Math.min(sp.y, target.top) - overlapPadding)\n const cp2 = this.addCP(Math.max(ep.x, source.right) + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n } else if (dx < 0) {\n if (ep.y < sp.y - overlapPadding) {\n this.addCP(sp.x, ep.y)\n } else {\n const cp1 = this.addCP(sp.x, Math.min(sp.y, target.top) - overlapPadding)\n if (ep.x + 2 * overlapPadding > source.left) {\n const cp2 = this.addCP(source.left - overlapPadding, cp1.y)\n const cp3 = this.addCP(cp2.x, target.top - overlapPadding)\n const cp4 = this.addCP(target.right + overlapPadding, cp3.y)\n this.addCP(cp4.x, ep.y)\n } else {\n const cp2 = this.addCP(Math.min(ep.x, source.left) + overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n }\n }\n }\n\n [sketchNorthEast](): void {\n const { source, target, sp, ep, overlapPadding, dx, dy } = this\n const cp1 = this.addCP(sp.x, sp.y - overlapPadding)\n if (dx >= 0) {\n if (dy < 0) {\n this.addCP(sp.x, ep.y)\n } else if (source.right > target.left - overlapPadding) {\n const cp2 = this.addCP(source.right + overlapPadding, cp1.y)\n const cp3 = this.addCP(cp2.x, source.bottom + overlapPadding)\n const cp4 = this.addCP(ep.x - overlapPadding, cp3.y)\n this.addCP(cp4.x, ep.y)\n } else {\n const cp2 = this.addCP(ep.x - overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n }\n } else {\n if (cp1.y > target.top - overlapPadding && cp1.y < target.bottom + overlapPadding) {\n const cp2 = this.addCP(target.right + overlapPadding, cp1.y)\n const posy = ep.y < sp.y ? target.bottom + overlapPadding : target.top - overlapPadding\n const cp3 = this.addCP(cp2.x, posy)\n this.addCP(ep.x - overlapPadding, cp3.y)\n } else {\n const overlapping = ep.x - overlapPadding > source.left\n if (overlapping) {\n const cp2 = this.addCP(source.left - overlapPadding, cp1.y)\n this.addCP(cp2.x, ep.y)\n } else {\n this.addCP(ep.x - overlapPadding, cp1.y)\n }\n }\n this.addCP(ep.x - overlapPadding, ep.y)\n }\n }\n\n [sketchNorthSouth](): void {\n const { source, target, sp, ep, overlapPadding, dy, dx, halfY } = this\n // (dy < 0) - the source is below target\n // (ep.y + 2*overlapPadding < sp.y) - there is a room to render the line between the boxes\n if (dy < 0 && ep.y + 2 * overlapPadding < sp.y) {\n // draw a straight line instead of the elbow when the distance is below the threshold\n if (Math.abs(dx) > ElbowThreshold) {\n const cp1 = this.addCP(sp.x, ep.y + halfY) // ep.y + overlapPadding\n this.addCP(ep.x, cp1.y)\n }\n } else {\n const cp1 = this.addCP(sp.x, sp.y - overlapPadding)\n let cp2\n if (sp.x < ep.x) {\n // to the left\n cp2 = this.addCP(Math.max(target.left - overlapPadding, source.right + overlapPadding), cp1.y)\n } else {\n // to the right\n cp2 = this.addCP(Math.min(target.right + overlapPadding, source.left - overlapPadding), cp1.y)\n }\n const cp3 = this.addCP(cp2.x, ep.y - overlapPadding)\n this.addCP(ep.x, cp3.y)\n }\n }\n\n [sketchNorthNorth](): void {\n const { source, target, sp, ep, overlapPadding, dy } = this\n if (dy < 0 && ep.y + 2 * overlapPadding < sp.y) {\n const cp1 = this.addCP(sp.x, ep.y - overlapPadding)\n this.addCP(ep.x, cp1.y)\n } else {\n const cp1 = this.addCP(sp.x, sp.y - overlapPadding)\n let cp2\n if (sp.x < ep.x) {\n // to the left\n cp2 = this.addCP(Math.max(target.left - overlapPadding, source.right + overlapPadding), cp1.y)\n } else {\n // to the right\n cp2 = this.addCP(Math.min(target.right + overlapPadding, source.left - overlapPadding), cp1.y)\n }\n const cp3 = this.addCP(cp2.x, ep.y - overlapPadding)\n this.addCP(ep.x, cp3.y)\n }\n }\n}\n"]}
@@ -1,26 +0,0 @@
1
- import { IEdgeDirections } from '../types.js';
2
- import { IAssociationTip, IVisualizationRectilinearLineShape } from '../VisualizationTypes.js';
3
- import { TipArtist } from './TipArtist.js';
4
- export declare class RectilinearTip extends TipArtist {
5
- line: IVisualizationRectilinearLineShape;
6
- constructor(position: 'start' | 'end', line: IVisualizationRectilinearLineShape, directions: IEdgeDirections);
7
- /**
8
- * Draws an tip representing a parent.
9
- */
10
- parent(): IAssociationTip;
11
- /**
12
- * Draws an tip representing a direction to / from the point.
13
- * @returns {IAssociationTip}
14
- */
15
- direction(): IAssociationTip;
16
- /**
17
- * Draws an tip representing an association.
18
- * @param type The type of the association to draw.
19
- */
20
- association(type?: string): IAssociationTip;
21
- /**
22
- * Draws an tip representing an association with a default style.
23
- */
24
- defaultAssociation(): IAssociationTip;
25
- }
26
- //# sourceMappingURL=RectilinearTip.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RectilinearTip.d.ts","sourceRoot":"","sources":["../../../../../src/visualization/lib/tips/RectilinearTip.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,kCAAkC,EAAE,MAAM,0BAA0B,CAAA;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,qBAAa,cAAe,SAAQ,SAAS;IAClC,IAAI,EAAE,kCAAkC,CAAA;gBAErC,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,kCAAkC,EAAE,UAAU,EAAE,eAAe;IAK5G;;OAEG;IACM,MAAM,IAAI,eAAe;IAyClC;;;OAGG;IACM,SAAS,IAAI,eAAe;IA0CrC;;;OAGG;IACM,WAAW,CAAC,IAAI,SAAY,GAAG,eAAe;IASvD;;OAEG;IACH,kBAAkB,IAAI,eAAe;CAmCtC"}
@@ -1,149 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import { Point } from '../Point.js';
3
- import { TipArtist } from './TipArtist.js';
4
- export class RectilinearTip extends TipArtist {
5
- line;
6
- constructor(position, line, directions) {
7
- super(position, line, directions);
8
- this.line = line;
9
- }
10
- /**
11
- * Draws an tip representing a parent.
12
- */
13
- parent() {
14
- const { line, directions, position } = this;
15
- const coordinates = line.coordinates;
16
- const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1];
17
- const { x, y } = startPoint;
18
- const tv = new Point(0, 0);
19
- const lv = new Point(0, 0);
20
- const rv = new Point(0, 0);
21
- tv.x = x;
22
- tv.y = y;
23
- lv.x = x - 8;
24
- lv.y = y + 16;
25
- rv.x = x + 8;
26
- rv.y = y + 16;
27
- const vertexes = [tv, lv, rv];
28
- const path = vertexes.map((item) => `${item.x},${item.y}`).join(' ');
29
- let rotate;
30
- switch (directions.end) {
31
- case 'east':
32
- rotate = 90;
33
- break;
34
- case 'west':
35
- rotate = 270;
36
- break;
37
- case 'south':
38
- rotate = 0;
39
- break;
40
- default:
41
- rotate = 180;
42
- break;
43
- }
44
- return {
45
- path,
46
- coordinates: vertexes,
47
- transformOrigin: `${x}px ${y}px`,
48
- rotate,
49
- svg: 'polygon',
50
- style: 'parent',
51
- };
52
- }
53
- /**
54
- * Draws an tip representing a direction to / from the point.
55
- * @returns {IAssociationTip}
56
- */
57
- direction() {
58
- const { line, directions, position } = this;
59
- const coordinates = line.coordinates;
60
- const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1];
61
- const { x, y } = startPoint;
62
- const tv = new Point(0, 0);
63
- const lv = new Point(0, 0);
64
- const rv = new Point(0, 0);
65
- tv.x = x;
66
- tv.y = y;
67
- lv.x = x - 8;
68
- lv.y = y - 16;
69
- rv.x = x + 8;
70
- rv.y = y - 16;
71
- const vertexes = [tv, lv, rv];
72
- const path = vertexes.map((item) => `${item.x},${item.y}`).join(' ');
73
- let rotate;
74
- const origin = position === 'start' ? directions.start : directions.end;
75
- switch (origin) {
76
- case 'east':
77
- rotate = position === 'start' ? 90 : 270;
78
- break;
79
- case 'west':
80
- rotate = position === 'start' ? 270 : 90;
81
- break;
82
- case 'south':
83
- rotate = 180;
84
- break;
85
- default:
86
- rotate = 0;
87
- break;
88
- }
89
- return {
90
- path,
91
- coordinates: vertexes,
92
- transformOrigin: `${x}px ${y}px`,
93
- rotate,
94
- svg: 'polygon',
95
- style: 'direction',
96
- };
97
- }
98
- /**
99
- * Draws an tip representing an association.
100
- * @param type The type of the association to draw.
101
- */
102
- association(type = 'default') {
103
- switch (type) {
104
- case 'default':
105
- return this.defaultAssociation();
106
- default:
107
- throw new Error(`Unsupported association type.`);
108
- }
109
- }
110
- /**
111
- * Draws an tip representing an association with a default style.
112
- */
113
- defaultAssociation() {
114
- const { line, directions, position } = this;
115
- const coordinates = line.coordinates;
116
- const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1];
117
- const { x, y } = startPoint;
118
- const tv = new Point(x - 8, y);
119
- const lv = new Point(x, y - 16);
120
- const rv = new Point(x + 8, y);
121
- const vertexes = [tv, lv, rv];
122
- const path = vertexes.map((item) => `${item.x} ${item.y}`).join(', ');
123
- let rotate;
124
- const origin = position === 'start' ? directions.start : directions.end;
125
- switch (origin) {
126
- case 'east':
127
- rotate = position === 'start' ? 90 : 270;
128
- break;
129
- case 'west':
130
- rotate = position === 'start' ? 270 : 90;
131
- break;
132
- case 'south':
133
- rotate = 180;
134
- break;
135
- default:
136
- rotate = 0;
137
- break;
138
- }
139
- return {
140
- path,
141
- coordinates: vertexes,
142
- transformOrigin: `${x}px ${y}px`,
143
- rotate,
144
- svg: 'polyline',
145
- style: 'association',
146
- };
147
- }
148
- }
149
- //# sourceMappingURL=RectilinearTip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RectilinearTip.js","sourceRoot":"","sources":["../../../../../src/visualization/lib/tips/RectilinearTip.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Point } from '../Point.js'\nimport { IEdgeDirections } from '../types.js'\nimport { IAssociationTip, IVisualizationRectilinearLineShape } from '../VisualizationTypes.js'\nimport { TipArtist } from './TipArtist.js'\n\nexport class RectilinearTip extends TipArtist {\n override line: IVisualizationRectilinearLineShape\n\n constructor(position: 'start' | 'end', line: IVisualizationRectilinearLineShape, directions: IEdgeDirections) {\n super(position, line, directions)\n this.line = line\n }\n\n /**\n * Draws an tip representing a parent.\n */\n override parent(): IAssociationTip {\n const { line, directions, position } = this\n const coordinates = line.coordinates!\n const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1]\n const { x, y } = startPoint\n const tv = new Point(0, 0)\n const lv = new Point(0, 0)\n const rv = new Point(0, 0)\n tv.x = x\n tv.y = y\n lv.x = x - 8\n lv.y = y + 16\n rv.x = x + 8\n rv.y = y + 16\n const vertexes = [tv, lv, rv]\n const path = vertexes.map((item) => `${item.x},${item.y}`).join(' ')\n let rotate\n switch (directions.end) {\n case 'east':\n rotate = 90\n break\n case 'west':\n rotate = 270\n break\n case 'south':\n rotate = 0\n break\n default:\n rotate = 180\n break\n }\n return {\n path,\n coordinates: vertexes,\n transformOrigin: `${x}px ${y}px`,\n rotate,\n svg: 'polygon',\n style: 'parent',\n }\n }\n\n /**\n * Draws an tip representing a direction to / from the point.\n * @returns {IAssociationTip}\n */\n override direction(): IAssociationTip {\n const { line, directions, position } = this\n const coordinates = line.coordinates!\n const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1]\n const { x, y } = startPoint\n const tv = new Point(0, 0)\n const lv = new Point(0, 0)\n const rv = new Point(0, 0)\n tv.x = x\n tv.y = y\n lv.x = x - 8\n lv.y = y - 16\n rv.x = x + 8\n rv.y = y - 16\n const vertexes = [tv, lv, rv]\n const path = vertexes.map((item) => `${item.x},${item.y}`).join(' ')\n let rotate\n const origin = position === 'start' ? directions.start : directions.end\n switch (origin) {\n case 'east':\n rotate = position === 'start' ? 90 : 270\n break\n case 'west':\n rotate = position === 'start' ? 270 : 90\n break\n case 'south':\n rotate = 180\n break\n default:\n rotate = 0\n break\n }\n return {\n path,\n coordinates: vertexes,\n transformOrigin: `${x}px ${y}px`,\n rotate,\n svg: 'polygon',\n style: 'direction',\n }\n }\n\n /**\n * Draws an tip representing an association.\n * @param type The type of the association to draw.\n */\n override association(type = 'default'): IAssociationTip {\n switch (type) {\n case 'default':\n return this.defaultAssociation()\n default:\n throw new Error(`Unsupported association type.`)\n }\n }\n\n /**\n * Draws an tip representing an association with a default style.\n */\n defaultAssociation(): IAssociationTip {\n const { line, directions, position } = this\n const coordinates = line.coordinates!\n const startPoint = position === 'start' ? coordinates[0] : coordinates[coordinates.length - 1]\n const { x, y } = startPoint\n const tv = new Point(x - 8, y)\n const lv = new Point(x, y - 16)\n const rv = new Point(x + 8, y)\n const vertexes = [tv, lv, rv]\n const path = vertexes.map((item) => `${item.x} ${item.y}`).join(', ')\n let rotate\n const origin = position === 'start' ? directions.start : directions.end\n switch (origin) {\n case 'east':\n rotate = position === 'start' ? 90 : 270\n break\n case 'west':\n rotate = position === 'start' ? 270 : 90\n break\n case 'south':\n rotate = 180\n break\n default:\n rotate = 0\n break\n }\n return {\n path,\n coordinates: vertexes,\n transformOrigin: `${x}px ${y}px`,\n rotate,\n svg: 'polyline',\n style: 'association',\n }\n }\n}\n"]}
@@ -1,22 +0,0 @@
1
- import { IEdgeDirections } from '../types.js';
2
- import { IAssociationTip, IVisualizationAssociationShape } from '../VisualizationTypes.js';
3
- export declare class TipArtist {
4
- position: 'start' | 'end';
5
- line: IVisualizationAssociationShape;
6
- directions: IEdgeDirections;
7
- constructor(position: 'start' | 'end', line: IVisualizationAssociationShape, directions: IEdgeDirections);
8
- /**
9
- * Draws an tip representing a parent.
10
- */
11
- parent(): IAssociationTip;
12
- /**
13
- * Draws an tip representing a direction to / from the point.
14
- */
15
- direction(): IAssociationTip;
16
- /**
17
- * Draws an tip representing an association.
18
- * @param type The type of the association to draw.
19
- */
20
- association(type?: string): IAssociationTip;
21
- }
22
- //# sourceMappingURL=TipArtist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TipArtist.d.ts","sourceRoot":"","sources":["../../../../../src/visualization/lib/tips/TipArtist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAA;AAE1F,qBAAa,SAAS;IAEX,QAAQ,EAAE,OAAO,GAAG,KAAK;IACzB,IAAI,EAAE,8BAA8B;IACpC,UAAU,EAAE,eAAe;gBAF3B,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,IAAI,EAAE,8BAA8B,EACpC,UAAU,EAAE,eAAe;IAGpC;;OAEG;IACH,MAAM,IAAI,eAAe;IAIzB;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;;OAGG;IACH,WAAW,CAAC,IAAI,SAAY,GAAG,eAAe;CAG/C"}
@@ -1,31 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-vars */
2
- export class TipArtist {
3
- position;
4
- line;
5
- directions;
6
- constructor(position, line, directions) {
7
- this.position = position;
8
- this.line = line;
9
- this.directions = directions;
10
- }
11
- /**
12
- * Draws an tip representing a parent.
13
- */
14
- parent() {
15
- throw new Error('Not implemented');
16
- }
17
- /**
18
- * Draws an tip representing a direction to / from the point.
19
- */
20
- direction() {
21
- throw new Error('Not implemented');
22
- }
23
- /**
24
- * Draws an tip representing an association.
25
- * @param type The type of the association to draw.
26
- */
27
- association(type = 'default') {
28
- throw new Error('Not implemented');
29
- }
30
- }
31
- //# sourceMappingURL=TipArtist.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TipArtist.js","sourceRoot":"","sources":["../../../../../src/visualization/lib/tips/TipArtist.ts"],"names":[],"mappings":"AAAA,sDAAsD;AAKtD,MAAM,OAAO,SAAS;IAEX;IACA;IACA;IAHT,YACS,QAAyB,EACzB,IAAoC,EACpC,UAA2B;QAF3B,aAAQ,GAAR,QAAQ,CAAiB;QACzB,SAAI,GAAJ,IAAI,CAAgC;QACpC,eAAU,GAAV,UAAU,CAAiB;IACjC,CAAC;IAEJ;;OAEG;IACH,MAAM;QACJ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;OAGG;IACH,WAAW,CAAC,IAAI,GAAG,SAAS;QAC1B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { IEdgeDirections } from '../types.js'\nimport { IAssociationTip, IVisualizationAssociationShape } from '../VisualizationTypes.js'\n\nexport class TipArtist {\n constructor(\n public position: 'start' | 'end',\n public line: IVisualizationAssociationShape,\n public directions: IEdgeDirections\n ) {}\n\n /**\n * Draws an tip representing a parent.\n */\n parent(): IAssociationTip {\n throw new Error('Not implemented')\n }\n\n /**\n * Draws an tip representing a direction to / from the point.\n */\n direction(): IAssociationTip {\n throw new Error('Not implemented')\n }\n\n /**\n * Draws an tip representing an association.\n * @param type The type of the association to draw.\n */\n association(type = 'default'): IAssociationTip {\n throw new Error('Not implemented')\n }\n}\n"]}
@@ -1,164 +0,0 @@
1
- import type { IAssociationShape } from './VisualizationTypes.js';
2
- import type { Point } from './Point.js';
3
- export type xPositionOrCoord = number | number[];
4
- export type GeoDirection = 'south' | 'west' | 'north' | 'east';
5
- /**
6
- * A workspace element edge definition.
7
- * This model is being visualized in the view.
8
- */
9
- export interface IWorkspaceEdge {
10
- /**
11
- * An unique id of the association.
12
- * Usually it is the domain id of the domain object, but it may be any value.
13
- */
14
- id: string;
15
- /**
16
- * The domain id of the association's source
17
- */
18
- source: string;
19
- /**
20
- * The domain id of the association's source
21
- */
22
- target: string;
23
- /**
24
- * When true then the user is allowed to change the potion of the association in the source and the target.
25
- */
26
- positionChange: boolean;
27
- /**
28
- * The directions of the end of the association line.
29
- */
30
- directions: IEdgeDirections;
31
- /**
32
- * The computed shape of the association.
33
- */
34
- shape: IAssociationShape;
35
- }
36
- export interface IEdgeDirections {
37
- /**
38
- * The direction the edge is pointing to when attached to the target of an association.
39
- */
40
- start: GeoDirection;
41
- /**
42
- * The direction the edge is pointing at the beginning of the association.
43
- */
44
- end: GeoDirection;
45
- }
46
- /**
47
- * An interface describing a structure of a selected domain object in the workspace.
48
- * This is used when reading value of `selection.selected` of the workspace element.
49
- */
50
- export interface ISelectedDomain {
51
- /**
52
- * The domain id of the selected object.
53
- */
54
- id: string;
55
- /**
56
- * The HTML element name of the selected object.
57
- */
58
- name: string;
59
- /**
60
- * A reference to the selected node.
61
- */
62
- node: Element;
63
- }
64
- /**
65
- * A definition used by the `WorkspaceEdges` class to compute the visualization line representing an association.
66
- */
67
- export interface ICalculateEdgeOptions {
68
- /**
69
- * The visualization object that is the source of the association.
70
- */
71
- sourceElement: HTMLElement;
72
- /**
73
- * The visualization object that is the target of the association.
74
- */
75
- targetElement: HTMLElement;
76
- /**
77
- * The association domain id. Can be a random string not really being a domain id (parent visualization, for example)
78
- */
79
- id: string;
80
- /**
81
- * The name of the association (rendered label)
82
- */
83
- name?: string;
84
- /**
85
- * If supported by the source object, the name of the slot to use to start the line.
86
- */
87
- sourceSlot?: string;
88
- /**
89
- * If supported by the target object, the name of the slot to use to end the line at.
90
- */
91
- targetSlot?: string;
92
- /**
93
- * Other associations already built between the two objects.
94
- */
95
- others?: IWorkspaceEdge[];
96
- }
97
- export interface IWorkspaceRenderingOptions {
98
- /**
99
- * The domain if of the currently rendered object
100
- */
101
- id: string;
102
- /**
103
- * The type of the currently rendered object. This is helpful for APIs where different views are possible.
104
- */
105
- type?: unknown;
106
- }
107
- export interface IAnchorAssociationCreateEventDetail {
108
- source: {
109
- /**
110
- * The domain id of the association source
111
- */
112
- id: string;
113
- /**
114
- * The workspace coordinates of the staring point
115
- */
116
- point: Point;
117
- /**
118
- * The slot name of the source object
119
- */
120
- slot: string;
121
- };
122
- target: {
123
- /**
124
- * The domain id of the association target
125
- */
126
- id: string;
127
- /**
128
- * The workspace coordinates of the end point
129
- */
130
- point: Point;
131
- /**
132
- * The slot name of the target object
133
- */
134
- slot: string;
135
- };
136
- }
137
- export interface IAnchorAssociationUpdateEventDetail {
138
- source: {
139
- /**
140
- * The domain id of the association
141
- */
142
- associationId: string;
143
- /**
144
- * The direction where the association changed (at the end changing
145
- * the target or at the beginning changing the source)
146
- */
147
- direction: 'start' | 'end';
148
- };
149
- target: {
150
- /**
151
- * The domain id of the new target/source (depending on the source.direction)
152
- */
153
- id: string;
154
- /**
155
- * The workspace coordinates of the start/end point (depending on the source.direction)
156
- */
157
- point: Point;
158
- /**
159
- * The slot name to use
160
- */
161
- slot: string;
162
- };
163
- }
164
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/visualization/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;AAChD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE9D;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,cAAc,EAAE,OAAO,CAAA;IACvB;;OAEG;IACH,UAAU,EAAE,eAAe,CAAA;IAC3B;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,YAAY,CAAA;IACnB;;OAEG;IACH,GAAG,EAAE,YAAY,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,aAAa,EAAE,WAAW,CAAA;IAC1B;;OAEG;IACH,aAAa,EAAE,WAAW,CAAA;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE;QACN;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV;;WAEG;QACH,KAAK,EAAE,KAAK,CAAA;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED,MAAM,EAAE;QACN;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV;;WAEG;QACH,KAAK,EAAE,KAAK,CAAA;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE;QACN;;WAEG;QACH,aAAa,EAAE,MAAM,CAAA;QACrB;;;WAGG;QACH,SAAS,EAAE,OAAO,GAAG,KAAK,CAAA;KAC3B,CAAA;IAED,MAAM,EAAE;QACN;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV;;WAEG;QACH,KAAK,EAAE,KAAK,CAAA;QACZ;;WAEG;QACH,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/visualization/lib/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { IAssociationShape } from './VisualizationTypes.js'\nimport type { Point } from './Point.js'\n\nexport type xPositionOrCoord = number | number[]\nexport type GeoDirection = 'south' | 'west' | 'north' | 'east'\n\n/**\n * A workspace element edge definition.\n * This model is being visualized in the view.\n */\nexport interface IWorkspaceEdge {\n /**\n * An unique id of the association.\n * Usually it is the domain id of the domain object, but it may be any value.\n */\n id: string\n /**\n * The domain id of the association's source\n */\n source: string\n /**\n * The domain id of the association's source\n */\n target: string\n /**\n * When true then the user is allowed to change the potion of the association in the source and the target.\n */\n positionChange: boolean\n /**\n * The directions of the end of the association line.\n */\n directions: IEdgeDirections\n /**\n * The computed shape of the association.\n */\n shape: IAssociationShape\n}\n\nexport interface IEdgeDirections {\n /**\n * The direction the edge is pointing to when attached to the target of an association.\n */\n start: GeoDirection\n /**\n * The direction the edge is pointing at the beginning of the association.\n */\n end: GeoDirection\n}\n\n/**\n * An interface describing a structure of a selected domain object in the workspace.\n * This is used when reading value of `selection.selected` of the workspace element.\n */\nexport interface ISelectedDomain {\n /**\n * The domain id of the selected object.\n */\n id: string\n /**\n * The HTML element name of the selected object.\n */\n name: string\n /**\n * A reference to the selected node.\n */\n node: Element\n}\n\n/**\n * A definition used by the `WorkspaceEdges` class to compute the visualization line representing an association.\n */\nexport interface ICalculateEdgeOptions {\n /**\n * The visualization object that is the source of the association.\n */\n sourceElement: HTMLElement\n /**\n * The visualization object that is the target of the association.\n */\n targetElement: HTMLElement\n /**\n * The association domain id. Can be a random string not really being a domain id (parent visualization, for example)\n */\n id: string\n /**\n * The name of the association (rendered label)\n */\n name?: string\n /**\n * If supported by the source object, the name of the slot to use to start the line.\n */\n sourceSlot?: string\n /**\n * If supported by the target object, the name of the slot to use to end the line at.\n */\n targetSlot?: string\n /**\n * Other associations already built between the two objects.\n */\n others?: IWorkspaceEdge[]\n}\n\nexport interface IWorkspaceRenderingOptions {\n /**\n * The domain if of the currently rendered object\n */\n id: string\n /**\n * The type of the currently rendered object. This is helpful for APIs where different views are possible.\n */\n type?: unknown\n}\n\nexport interface IAnchorAssociationCreateEventDetail {\n source: {\n /**\n * The domain id of the association source\n */\n id: string\n /**\n * The workspace coordinates of the staring point\n */\n point: Point\n /**\n * The slot name of the source object\n */\n slot: string\n }\n\n target: {\n /**\n * The domain id of the association target\n */\n id: string\n /**\n * The workspace coordinates of the end point\n */\n point: Point\n /**\n * The slot name of the target object\n */\n slot: string\n }\n}\n\nexport interface IAnchorAssociationUpdateEventDetail {\n source: {\n /**\n * The domain id of the association\n */\n associationId: string\n /**\n * The direction where the association changed (at the end changing\n * the target or at the beginning changing the source)\n */\n direction: 'start' | 'end'\n }\n\n target: {\n /**\n * The domain id of the new target/source (depending on the source.direction)\n */\n id: string\n /**\n * The workspace coordinates of the start/end point (depending on the source.direction)\n */\n point: Point\n /**\n * The slot name to use\n */\n slot: string\n }\n}\n"]}