bpmn-js 18.8.0 → 18.9.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 (345) hide show
  1. package/LICENSE +23 -23
  2. package/README.md +95 -95
  3. package/dist/assets/bpmn-js.css +145 -145
  4. package/dist/bpmn-modeler.development.js +39465 -39235
  5. package/dist/bpmn-modeler.production.min.js +36 -36
  6. package/dist/bpmn-navigated-viewer.development.js +21216 -21199
  7. package/dist/bpmn-navigated-viewer.production.min.js +5 -5
  8. package/dist/bpmn-viewer.development.js +21170 -21153
  9. package/dist/bpmn-viewer.production.min.js +5 -5
  10. package/lib/BaseModeler.d.ts +15 -15
  11. package/lib/BaseModeler.js +79 -79
  12. package/lib/BaseViewer.d.ts +352 -352
  13. package/lib/BaseViewer.js +858 -858
  14. package/lib/Modeler.d.ts +86 -86
  15. package/lib/Modeler.js +208 -206
  16. package/lib/NavigatedViewer.d.ts +11 -11
  17. package/lib/NavigatedViewer.js +37 -37
  18. package/lib/Viewer.d.ts +47 -47
  19. package/lib/Viewer.js +76 -76
  20. package/lib/core/index.d.ts +10 -10
  21. package/lib/core/index.js +8 -8
  22. package/lib/draw/BpmnRenderUtil.d.ts +123 -123
  23. package/lib/draw/BpmnRenderUtil.js +256 -256
  24. package/lib/draw/BpmnRenderer.d.ts +116 -116
  25. package/lib/draw/BpmnRenderer.js +2419 -2412
  26. package/lib/draw/PathMap.d.ts +330 -330
  27. package/lib/draw/PathMap.js +478 -478
  28. package/lib/draw/TextRenderer.d.ts +74 -74
  29. package/lib/draw/TextRenderer.js +136 -136
  30. package/lib/draw/index.d.ts +10 -10
  31. package/lib/draw/index.js +11 -11
  32. package/lib/features/align-elements/AlignElementsContextPadProvider.d.ts +32 -32
  33. package/lib/features/align-elements/AlignElementsContextPadProvider.js +105 -105
  34. package/lib/features/align-elements/AlignElementsIcons.d.ts +10 -10
  35. package/lib/features/align-elements/AlignElementsIcons.js +43 -43
  36. package/lib/features/align-elements/AlignElementsMenuProvider.d.ts +32 -32
  37. package/lib/features/align-elements/AlignElementsMenuProvider.js +100 -100
  38. package/lib/features/align-elements/BpmnAlignElements.d.ts +9 -9
  39. package/lib/features/align-elements/BpmnAlignElements.js +45 -45
  40. package/lib/features/align-elements/index.d.ts +17 -17
  41. package/lib/features/align-elements/index.js +23 -23
  42. package/lib/features/append-preview/AppendPreview.d.ts +36 -36
  43. package/lib/features/append-preview/AppendPreview.js +108 -108
  44. package/lib/features/append-preview/index.d.ts +18 -18
  45. package/lib/features/append-preview/index.js +15 -15
  46. package/lib/features/auto-place/BpmnAutoPlace.d.ts +15 -15
  47. package/lib/features/auto-place/BpmnAutoPlace.js +22 -22
  48. package/lib/features/auto-place/BpmnAutoPlaceUtil.d.ts +52 -52
  49. package/lib/features/auto-place/BpmnAutoPlaceUtil.js +226 -226
  50. package/lib/features/auto-place/index.d.ts +10 -10
  51. package/lib/features/auto-place/index.js +8 -8
  52. package/lib/features/auto-resize/BpmnAutoResize.d.ts +25 -25
  53. package/lib/features/auto-resize/BpmnAutoResize.js +45 -45
  54. package/lib/features/auto-resize/BpmnAutoResizeProvider.d.ts +26 -26
  55. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +69 -69
  56. package/lib/features/auto-resize/index.d.ts +8 -8
  57. package/lib/features/auto-resize/index.js +12 -12
  58. package/lib/features/context-pad/ContextPadProvider.d.ts +62 -62
  59. package/lib/features/context-pad/ContextPadProvider.js +592 -592
  60. package/lib/features/context-pad/index.d.ts +7 -7
  61. package/lib/features/context-pad/index.js +22 -22
  62. package/lib/features/copy-paste/BpmnCopyPaste.d.ts +17 -17
  63. package/lib/features/copy-paste/BpmnCopyPaste.js +192 -192
  64. package/lib/features/copy-paste/ModdleCopy.d.ts +45 -45
  65. package/lib/features/copy-paste/ModdleCopy.js +287 -287
  66. package/lib/features/copy-paste/index.d.ts +11 -11
  67. package/lib/features/copy-paste/index.js +13 -13
  68. package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
  69. package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
  70. package/lib/features/di-ordering/index.d.ts +6 -6
  71. package/lib/features/di-ordering/index.js +7 -7
  72. package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
  73. package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
  74. package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
  75. package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
  76. package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
  77. package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
  78. package/lib/features/distribute-elements/index.d.ts +13 -13
  79. package/lib/features/distribute-elements/index.js +19 -19
  80. package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
  81. package/lib/features/drilldown/DrilldownBreadcrumbs.js +138 -138
  82. package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
  83. package/lib/features/drilldown/DrilldownCentering.js +122 -122
  84. package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +20 -20
  85. package/lib/features/drilldown/DrilldownOverlayBehavior.js +218 -218
  86. package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
  87. package/lib/features/drilldown/SubprocessCompatibility.js +266 -266
  88. package/lib/features/drilldown/index.d.ts +19 -19
  89. package/lib/features/drilldown/index.js +16 -16
  90. package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
  91. package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
  92. package/lib/features/editor-actions/index.d.ts +8 -8
  93. package/lib/features/editor-actions/index.js +10 -10
  94. package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
  95. package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +14 -14
  96. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
  97. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
  98. package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
  99. package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
  100. package/lib/features/grid-snapping/index.d.ts +13 -13
  101. package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
  102. package/lib/features/interaction-events/BpmnInteractionEvents.js +146 -146
  103. package/lib/features/interaction-events/index.d.ts +6 -6
  104. package/lib/features/interaction-events/index.js +5 -5
  105. package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
  106. package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
  107. package/lib/features/keyboard/index.d.ts +10 -10
  108. package/lib/features/keyboard/index.js +11 -11
  109. package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
  110. package/lib/features/label-editing/LabelEditingPreview.js +145 -145
  111. package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
  112. package/lib/features/label-editing/LabelEditingProvider.js +519 -519
  113. package/lib/features/label-editing/LabelUtil.d.ts +1 -1
  114. package/lib/features/label-editing/LabelUtil.js +4 -4
  115. package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
  116. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
  117. package/lib/features/label-editing/index.d.ts +9 -9
  118. package/lib/features/label-editing/index.js +21 -21
  119. package/lib/features/label-link/LabelLink.d.ts +27 -0
  120. package/lib/features/label-link/LabelLink.js +202 -0
  121. package/lib/features/label-link/index.d.ts +14 -0
  122. package/lib/features/label-link/index.js +15 -0
  123. package/lib/features/modeling/BpmnFactory.d.ts +73 -73
  124. package/lib/features/modeling/BpmnFactory.js +180 -180
  125. package/lib/features/modeling/BpmnLayouter.d.ts +30 -30
  126. package/lib/features/modeling/BpmnLayouter.js +488 -488
  127. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  128. package/lib/features/modeling/BpmnUpdater.js +818 -818
  129. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  130. package/lib/features/modeling/ElementFactory.js +412 -412
  131. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  132. package/lib/features/modeling/Modeling.d.ts +150 -150
  133. package/lib/features/modeling/Modeling.js +309 -309
  134. package/lib/features/modeling/Modeling.test.ts +147 -147
  135. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +19 -19
  136. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +288 -288
  137. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  138. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  139. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  140. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  141. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  142. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  143. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  144. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  145. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  146. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  147. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  148. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  149. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +46 -46
  150. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  151. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  152. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  153. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  154. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  155. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  156. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  157. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  158. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  159. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  160. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  161. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  162. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  163. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  164. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  165. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  166. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  167. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  168. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  169. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  170. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  171. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  172. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  173. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  174. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  175. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  176. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  177. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  178. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  179. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  180. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  181. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +59 -59
  182. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  183. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  184. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  185. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  186. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +64 -64
  187. package/lib/features/modeling/behavior/ResizeBehavior.js +265 -265
  188. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  189. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  190. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  191. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.d.ts +16 -16
  192. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.js +66 -66
  193. package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
  194. package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
  195. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
  196. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
  197. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
  198. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +56 -56
  199. package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
  200. package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
  201. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
  202. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
  203. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
  204. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
  205. package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
  206. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
  207. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
  208. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
  209. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
  210. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
  211. package/lib/features/modeling/behavior/index.d.ts +85 -85
  212. package/lib/features/modeling/behavior/index.js +131 -131
  213. package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
  214. package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
  215. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
  216. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
  217. package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
  218. package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
  219. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
  220. package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
  221. package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
  222. package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
  223. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
  224. package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
  225. package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
  226. package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
  227. package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
  228. package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
  229. package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
  230. package/lib/features/modeling/cmd/AddLaneHandler.js +187 -187
  231. package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
  232. package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
  233. package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
  234. package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
  235. package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
  236. package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
  237. package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
  238. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
  239. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
  240. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
  241. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
  242. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
  243. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
  244. package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
  245. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
  246. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
  247. package/lib/features/modeling/index.d.ts +39 -39
  248. package/lib/features/modeling/index.js +45 -45
  249. package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
  250. package/lib/features/modeling/util/LaneUtil.js +188 -188
  251. package/lib/features/modeling/util/ModelingUtil.d.ts +23 -23
  252. package/lib/features/modeling/util/ModelingUtil.js +88 -88
  253. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  254. package/lib/features/modeling-feedback/ModelingFeedback.js +51 -51
  255. package/lib/features/modeling-feedback/index.d.ts +9 -9
  256. package/lib/features/modeling-feedback/index.js +12 -12
  257. package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
  258. package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
  259. package/lib/features/ordering/index.d.ts +6 -6
  260. package/lib/features/ordering/index.js +5 -5
  261. package/lib/features/outline/OutlineProvider.d.ts +39 -39
  262. package/lib/features/outline/OutlineProvider.js +203 -189
  263. package/lib/features/outline/OutlineUtil.d.ts +23 -23
  264. package/lib/features/outline/OutlineUtil.js +35 -35
  265. package/lib/features/outline/index.d.ts +10 -10
  266. package/lib/features/outline/index.js +10 -10
  267. package/lib/features/palette/PaletteProvider.d.ts +34 -34
  268. package/lib/features/palette/PaletteProvider.js +214 -214
  269. package/lib/features/palette/index.d.ts +22 -22
  270. package/lib/features/palette/index.js +23 -23
  271. package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
  272. package/lib/features/popup-menu/ReplaceMenuProvider.js +656 -656
  273. package/lib/features/popup-menu/index.d.ts +13 -13
  274. package/lib/features/popup-menu/index.js +16 -16
  275. package/lib/features/popup-menu/util/Icons.d.ts +5 -5
  276. package/lib/features/popup-menu/util/Icons.js +14 -14
  277. package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
  278. package/lib/features/popup-menu/util/TypeUtil.js +52 -52
  279. package/lib/features/replace/BpmnReplace.d.ts +45 -45
  280. package/lib/features/replace/BpmnReplace.js +391 -391
  281. package/lib/features/replace/ReplaceOptions.d.ts +85 -85
  282. package/lib/features/replace/ReplaceOptions.js +1198 -1198
  283. package/lib/features/replace/index.d.ts +16 -16
  284. package/lib/features/replace/index.js +14 -14
  285. package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
  286. package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
  287. package/lib/features/replace-preview/index.d.ts +9 -9
  288. package/lib/features/replace-preview/index.js +11 -11
  289. package/lib/features/rules/BpmnRules.d.ts +181 -181
  290. package/lib/features/rules/BpmnRules.js +1191 -1191
  291. package/lib/features/rules/index.d.ts +9 -9
  292. package/lib/features/rules/index.js +11 -11
  293. package/lib/features/search/BpmnSearchProvider.d.ts +34 -34
  294. package/lib/features/search/BpmnSearchProvider.js +91 -91
  295. package/lib/features/search/index.d.ts +11 -11
  296. package/lib/features/search/index.js +14 -14
  297. package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
  298. package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
  299. package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
  300. package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
  301. package/lib/features/snapping/index.d.ts +13 -13
  302. package/lib/features/snapping/index.js +12 -12
  303. package/lib/features/space-tool/BpmnSpaceTool.d.ts +24 -24
  304. package/lib/features/space-tool/BpmnSpaceTool.js +96 -96
  305. package/lib/features/space-tool/index.d.ts +9 -9
  306. package/lib/features/space-tool/index.js +7 -7
  307. package/lib/import/BpmnImporter.d.ts +51 -51
  308. package/lib/import/BpmnImporter.js +363 -363
  309. package/lib/import/BpmnTreeWalker.d.ts +20 -20
  310. package/lib/import/BpmnTreeWalker.js +452 -452
  311. package/lib/import/Importer.d.ts +25 -25
  312. package/lib/import/Importer.js +222 -222
  313. package/lib/import/Util.d.ts +1 -1
  314. package/lib/import/Util.js +6 -6
  315. package/lib/import/index.d.ts +8 -8
  316. package/lib/import/index.js +9 -9
  317. package/lib/index.d.ts +1 -1
  318. package/lib/index.js +2 -2
  319. package/lib/model/Types.d.ts +25 -25
  320. package/lib/model/Types.ts +40 -40
  321. package/lib/util/CompatibilityUtil.d.ts +8 -8
  322. package/lib/util/CompatibilityUtil.js +29 -29
  323. package/lib/util/DiUtil.d.ts +60 -60
  324. package/lib/util/DiUtil.js +122 -122
  325. package/lib/util/DrilldownUtil.d.ts +39 -39
  326. package/lib/util/DrilldownUtil.js +69 -69
  327. package/lib/util/LabelUtil.d.ts +92 -83
  328. package/lib/util/LabelUtil.js +277 -266
  329. package/lib/util/ModelUtil.d.ts +40 -40
  330. package/lib/util/ModelUtil.js +58 -58
  331. package/lib/util/PoweredByUtil.d.ts +8 -8
  332. package/lib/util/PoweredByUtil.js +99 -99
  333. package/lib/util/Types.js +4 -4
  334. package/lib/util/Types.ts +3 -3
  335. package/package.json +131 -131
  336. package/test/helper/TranslationCollector.js +15 -15
  337. package/test/helper/index.js +313 -313
  338. package/test/matchers/BoundsMatchers.js +252 -252
  339. package/test/matchers/ConnectionMatchers.js +165 -165
  340. package/test/matchers/JSONMatcher.js +19 -19
  341. package/test/util/KeyEvents.js +22 -22
  342. package/test/util/MockEvents.js +61 -61
  343. package/test/util/custom-rules/CustomRules.js +16 -16
  344. package/test/util/custom-rules/index.js +6 -6
  345. package/test/util/svgHelpers.js +52 -0
@@ -1,363 +1,363 @@
1
- import {
2
- assign
3
- } from 'min-dash';
4
-
5
- import { is } from '../util/ModelUtil';
6
-
7
- import {
8
- isLabelExternal,
9
- getExternalLabelBounds,
10
- getLabel
11
- } from '../util/LabelUtil';
12
-
13
- import {
14
- getMid
15
- } from 'diagram-js/lib/layout/LayoutUtil';
16
-
17
- import {
18
- isExpanded
19
- } from '../util/DiUtil';
20
-
21
- import {
22
- elementToString
23
- } from './Util';
24
-
25
- /**
26
- * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas
27
- * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry
28
- * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus
29
- *
30
- * @typedef {import('../features/modeling/ElementFactory').default} ElementFactory
31
- * @typedef {import('../draw/TextRenderer').default} TextRenderer
32
- *
33
- * @typedef {import('../model/Types').Element} Element
34
- * @typedef {import('../model/Types').Label} Label
35
- * @typedef {import('../model/Types').Shape} Shape
36
- * @typedef {import('../model/Types').Connection} Connection
37
- * @typedef {import('../model/Types').Root} Root
38
- * @typedef {import('../model/Types').ModdleElement} ModdleElement
39
- */
40
-
41
- /**
42
- * @param {ModdleElement} semantic
43
- * @param {ModdleElement} di
44
- * @param {Object} [attrs=null]
45
- *
46
- * @return {Object}
47
- */
48
- function elementData(semantic, di, attrs) {
49
- return assign({
50
- id: semantic.id,
51
- type: semantic.$type,
52
- businessObject: semantic,
53
- di: di
54
- }, attrs);
55
- }
56
-
57
- function getWaypoints(di, source, target) {
58
-
59
- var waypoints = di.waypoint;
60
-
61
- if (!waypoints || waypoints.length < 2) {
62
- return [ getMid(source), getMid(target) ];
63
- }
64
-
65
- return waypoints.map(function(p) {
66
- return { x: p.x, y: p.y };
67
- });
68
- }
69
-
70
- function notYetDrawn(semantic, refSemantic, property) {
71
- return new Error(
72
- `element ${ elementToString(refSemantic) } referenced by ${ elementToString(semantic) }#${ property } not yet drawn`
73
- );
74
- }
75
-
76
-
77
- /**
78
- * An importer that adds bpmn elements to the canvas
79
- *
80
- * @param {EventBus} eventBus
81
- * @param {Canvas} canvas
82
- * @param {ElementFactory} elementFactory
83
- * @param {ElementRegistry} elementRegistry
84
- * @param {TextRenderer} textRenderer
85
- */
86
- export default function BpmnImporter(
87
- eventBus, canvas, elementFactory,
88
- elementRegistry, textRenderer) {
89
-
90
- this._eventBus = eventBus;
91
- this._canvas = canvas;
92
- this._elementFactory = elementFactory;
93
- this._elementRegistry = elementRegistry;
94
- this._textRenderer = textRenderer;
95
- }
96
-
97
- BpmnImporter.$inject = [
98
- 'eventBus',
99
- 'canvas',
100
- 'elementFactory',
101
- 'elementRegistry',
102
- 'textRenderer'
103
- ];
104
-
105
-
106
- /**
107
- * Add a BPMN element (semantic) to the canvas making it a child of the
108
- * given parent.
109
- *
110
- * @param {ModdleElement} semantic
111
- * @param {ModdleElement} di
112
- * @param {Shape} parentElement
113
- *
114
- * @return {Shape | Root | Connection}
115
- */
116
- BpmnImporter.prototype.add = function(semantic, di, parentElement) {
117
- var element,
118
- hidden;
119
-
120
- var parentIndex;
121
-
122
- // ROOT ELEMENT
123
- // handle the special case that we deal with a
124
- // invisible root element (process, subprocess or collaboration)
125
- if (is(di, 'bpmndi:BPMNPlane')) {
126
-
127
- var attrs = is(semantic, 'bpmn:SubProcess')
128
- ? { id: semantic.id + '_plane' }
129
- : {};
130
-
131
- // add a virtual element (not being drawn)
132
- element = this._elementFactory.createRoot(elementData(semantic, di, attrs));
133
-
134
- this._canvas.addRootElement(element);
135
- }
136
-
137
- // SHAPE
138
- else if (is(di, 'bpmndi:BPMNShape')) {
139
-
140
- var collapsed = !isExpanded(semantic, di),
141
- isFrame = isFrameElement(semantic);
142
-
143
- hidden = parentElement && (parentElement.hidden || parentElement.collapsed);
144
-
145
- var bounds = di.bounds;
146
-
147
- element = this._elementFactory.createShape(elementData(semantic, di, {
148
- collapsed: collapsed,
149
- hidden: hidden,
150
- x: Math.round(bounds.x),
151
- y: Math.round(bounds.y),
152
- width: Math.round(bounds.width),
153
- height: Math.round(bounds.height),
154
- isFrame: isFrame
155
- }));
156
-
157
- if (is(semantic, 'bpmn:BoundaryEvent')) {
158
- this._attachBoundary(semantic, element);
159
- }
160
-
161
- // insert lanes behind other flow nodes (cf. #727)
162
- if (is(semantic, 'bpmn:Lane')) {
163
- parentIndex = 0;
164
- }
165
-
166
- if (is(semantic, 'bpmn:DataStoreReference')) {
167
-
168
- // check whether data store is inside our outside of its semantic parent
169
- if (!isPointInsideBBox(parentElement, getMid(bounds))) {
170
- parentElement = this._canvas.findRoot(parentElement);
171
- }
172
- }
173
-
174
- this._canvas.addShape(element, parentElement, parentIndex);
175
- }
176
-
177
- // CONNECTION
178
- else if (is(di, 'bpmndi:BPMNEdge')) {
179
-
180
- var source = this._getSource(semantic),
181
- target = this._getTarget(semantic);
182
-
183
- hidden = parentElement && (parentElement.hidden || parentElement.collapsed);
184
-
185
- element = this._elementFactory.createConnection(elementData(semantic, di, {
186
- hidden: hidden,
187
- source: source,
188
- target: target,
189
- waypoints: getWaypoints(di, source, target)
190
- }));
191
-
192
- if (is(semantic, 'bpmn:DataAssociation')) {
193
-
194
- // render always on top; this ensures DataAssociations
195
- // are rendered correctly across different "hacks" people
196
- // love to model such as cross participant / sub process
197
- // associations
198
- parentElement = this._canvas.findRoot(parentElement);
199
- }
200
-
201
- this._canvas.addConnection(element, parentElement, parentIndex);
202
- } else {
203
- throw new Error(
204
- `unknown di ${ elementToString(di) } for element ${ elementToString(semantic) }`
205
- );
206
- }
207
-
208
- // (optional) LABEL
209
- if (isLabelExternal(semantic) && getLabel(element)) {
210
- this.addLabel(semantic, di, element);
211
- }
212
-
213
- this._eventBus.fire('bpmnElement.added', { element: element });
214
-
215
- return element;
216
- };
217
-
218
-
219
- /**
220
- * Attach a boundary element to the given host.
221
- *
222
- * @param {ModdleElement} boundarySemantic
223
- * @param {Shape} boundaryElement
224
- */
225
- BpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElement) {
226
- var hostSemantic = boundarySemantic.attachedToRef;
227
-
228
- if (!hostSemantic) {
229
- throw new Error(
230
- `missing ${ elementToString(boundarySemantic) }#attachedToRef`
231
- );
232
- }
233
-
234
- var host = this._elementRegistry.get(hostSemantic.id),
235
- attachers = host && host.attachers;
236
-
237
- if (!host) {
238
- throw notYetDrawn(boundarySemantic, hostSemantic, 'attachedToRef');
239
- }
240
-
241
- // wire element.host <> host.attachers
242
- boundaryElement.host = host;
243
-
244
- if (!attachers) {
245
- host.attachers = attachers = [];
246
- }
247
-
248
- if (attachers.indexOf(boundaryElement) === -1) {
249
- attachers.push(boundaryElement);
250
- }
251
- };
252
-
253
-
254
- /**
255
- * Add a label to a given element.
256
- *
257
- * @param {ModdleElement} semantic
258
- * @param {ModdleElement} di
259
- * @param {Element} element
260
- *
261
- * @return {Label}
262
- */
263
- BpmnImporter.prototype.addLabel = function(semantic, di, element) {
264
- var bounds,
265
- text,
266
- label;
267
-
268
- bounds = getExternalLabelBounds(di, element);
269
-
270
- text = getLabel(element);
271
-
272
- if (text) {
273
-
274
- // get corrected bounds from actual layouted text
275
- bounds = this._textRenderer.getExternalLabelBounds(bounds, text);
276
- }
277
-
278
- label = this._elementFactory.createLabel(elementData(semantic, di, {
279
- id: semantic.id + '_label',
280
- labelTarget: element,
281
- type: 'label',
282
- hidden: element.hidden || !getLabel(element),
283
- x: Math.round(bounds.x),
284
- y: Math.round(bounds.y),
285
- width: Math.round(bounds.width),
286
- height: Math.round(bounds.height)
287
- }));
288
-
289
- return this._canvas.addShape(label, element.parent);
290
- };
291
-
292
- /**
293
- * Get the source or target of the given connection.
294
- *
295
- * @param {ModdleElement} semantic
296
- * @param {'source' | 'target'} side
297
- *
298
- * @return {Element}
299
- */
300
- BpmnImporter.prototype._getConnectedElement = function(semantic, side) {
301
-
302
- var element,
303
- refSemantic,
304
- type = semantic.$type;
305
-
306
- refSemantic = semantic[side + 'Ref'];
307
-
308
- // handle mysterious isMany DataAssociation#sourceRef
309
- if (side === 'source' && type === 'bpmn:DataInputAssociation') {
310
- refSemantic = refSemantic && refSemantic[0];
311
- }
312
-
313
- // fix source / target for DataInputAssociation / DataOutputAssociation
314
- if (side === 'source' && type === 'bpmn:DataOutputAssociation' ||
315
- side === 'target' && type === 'bpmn:DataInputAssociation') {
316
-
317
- refSemantic = semantic.$parent;
318
- }
319
-
320
- element = refSemantic && this._getElement(refSemantic);
321
-
322
- if (element) {
323
- return element;
324
- }
325
-
326
- if (refSemantic) {
327
- throw notYetDrawn(semantic, refSemantic, side + 'Ref');
328
- } else {
329
- throw new Error(
330
- `${ elementToString(semantic) }#${ side } Ref not specified`
331
- );
332
- }
333
- };
334
-
335
- BpmnImporter.prototype._getSource = function(semantic) {
336
- return this._getConnectedElement(semantic, 'source');
337
- };
338
-
339
- BpmnImporter.prototype._getTarget = function(semantic) {
340
- return this._getConnectedElement(semantic, 'target');
341
- };
342
-
343
-
344
- BpmnImporter.prototype._getElement = function(semantic) {
345
- return this._elementRegistry.get(semantic.id);
346
- };
347
-
348
-
349
- // helpers ////////////////////
350
-
351
- function isPointInsideBBox(bbox, point) {
352
- var x = point.x,
353
- y = point.y;
354
-
355
- return x >= bbox.x &&
356
- x <= bbox.x + bbox.width &&
357
- y >= bbox.y &&
358
- y <= bbox.y + bbox.height;
359
- }
360
-
361
- function isFrameElement(semantic) {
362
- return is(semantic, 'bpmn:Group');
363
- }
1
+ import {
2
+ assign
3
+ } from 'min-dash';
4
+
5
+ import { is } from '../util/ModelUtil';
6
+
7
+ import {
8
+ isLabelExternal,
9
+ getExternalLabelBounds,
10
+ getLabel
11
+ } from '../util/LabelUtil';
12
+
13
+ import {
14
+ getMid
15
+ } from 'diagram-js/lib/layout/LayoutUtil';
16
+
17
+ import {
18
+ isExpanded
19
+ } from '../util/DiUtil';
20
+
21
+ import {
22
+ elementToString
23
+ } from './Util';
24
+
25
+ /**
26
+ * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas
27
+ * @typedef {import('diagram-js/lib/core/ElementRegistry').default} ElementRegistry
28
+ * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus
29
+ *
30
+ * @typedef {import('../features/modeling/ElementFactory').default} ElementFactory
31
+ * @typedef {import('../draw/TextRenderer').default} TextRenderer
32
+ *
33
+ * @typedef {import('../model/Types').Element} Element
34
+ * @typedef {import('../model/Types').Label} Label
35
+ * @typedef {import('../model/Types').Shape} Shape
36
+ * @typedef {import('../model/Types').Connection} Connection
37
+ * @typedef {import('../model/Types').Root} Root
38
+ * @typedef {import('../model/Types').ModdleElement} ModdleElement
39
+ */
40
+
41
+ /**
42
+ * @param {ModdleElement} semantic
43
+ * @param {ModdleElement} di
44
+ * @param {Object} [attrs=null]
45
+ *
46
+ * @return {Object}
47
+ */
48
+ function elementData(semantic, di, attrs) {
49
+ return assign({
50
+ id: semantic.id,
51
+ type: semantic.$type,
52
+ businessObject: semantic,
53
+ di: di
54
+ }, attrs);
55
+ }
56
+
57
+ function getWaypoints(di, source, target) {
58
+
59
+ var waypoints = di.waypoint;
60
+
61
+ if (!waypoints || waypoints.length < 2) {
62
+ return [ getMid(source), getMid(target) ];
63
+ }
64
+
65
+ return waypoints.map(function(p) {
66
+ return { x: p.x, y: p.y };
67
+ });
68
+ }
69
+
70
+ function notYetDrawn(semantic, refSemantic, property) {
71
+ return new Error(
72
+ `element ${ elementToString(refSemantic) } referenced by ${ elementToString(semantic) }#${ property } not yet drawn`
73
+ );
74
+ }
75
+
76
+
77
+ /**
78
+ * An importer that adds bpmn elements to the canvas
79
+ *
80
+ * @param {EventBus} eventBus
81
+ * @param {Canvas} canvas
82
+ * @param {ElementFactory} elementFactory
83
+ * @param {ElementRegistry} elementRegistry
84
+ * @param {TextRenderer} textRenderer
85
+ */
86
+ export default function BpmnImporter(
87
+ eventBus, canvas, elementFactory,
88
+ elementRegistry, textRenderer) {
89
+
90
+ this._eventBus = eventBus;
91
+ this._canvas = canvas;
92
+ this._elementFactory = elementFactory;
93
+ this._elementRegistry = elementRegistry;
94
+ this._textRenderer = textRenderer;
95
+ }
96
+
97
+ BpmnImporter.$inject = [
98
+ 'eventBus',
99
+ 'canvas',
100
+ 'elementFactory',
101
+ 'elementRegistry',
102
+ 'textRenderer'
103
+ ];
104
+
105
+
106
+ /**
107
+ * Add a BPMN element (semantic) to the canvas making it a child of the
108
+ * given parent.
109
+ *
110
+ * @param {ModdleElement} semantic
111
+ * @param {ModdleElement} di
112
+ * @param {Shape} parentElement
113
+ *
114
+ * @return {Shape | Root | Connection}
115
+ */
116
+ BpmnImporter.prototype.add = function(semantic, di, parentElement) {
117
+ var element,
118
+ hidden;
119
+
120
+ var parentIndex;
121
+
122
+ // ROOT ELEMENT
123
+ // handle the special case that we deal with a
124
+ // invisible root element (process, subprocess or collaboration)
125
+ if (is(di, 'bpmndi:BPMNPlane')) {
126
+
127
+ var attrs = is(semantic, 'bpmn:SubProcess')
128
+ ? { id: semantic.id + '_plane' }
129
+ : {};
130
+
131
+ // add a virtual element (not being drawn)
132
+ element = this._elementFactory.createRoot(elementData(semantic, di, attrs));
133
+
134
+ this._canvas.addRootElement(element);
135
+ }
136
+
137
+ // SHAPE
138
+ else if (is(di, 'bpmndi:BPMNShape')) {
139
+
140
+ var collapsed = !isExpanded(semantic, di),
141
+ isFrame = isFrameElement(semantic);
142
+
143
+ hidden = parentElement && (parentElement.hidden || parentElement.collapsed);
144
+
145
+ var bounds = di.bounds;
146
+
147
+ element = this._elementFactory.createShape(elementData(semantic, di, {
148
+ collapsed: collapsed,
149
+ hidden: hidden,
150
+ x: Math.round(bounds.x),
151
+ y: Math.round(bounds.y),
152
+ width: Math.round(bounds.width),
153
+ height: Math.round(bounds.height),
154
+ isFrame: isFrame
155
+ }));
156
+
157
+ if (is(semantic, 'bpmn:BoundaryEvent')) {
158
+ this._attachBoundary(semantic, element);
159
+ }
160
+
161
+ // insert lanes behind other flow nodes (cf. #727)
162
+ if (is(semantic, 'bpmn:Lane')) {
163
+ parentIndex = 0;
164
+ }
165
+
166
+ if (is(semantic, 'bpmn:DataStoreReference')) {
167
+
168
+ // check whether data store is inside our outside of its semantic parent
169
+ if (!isPointInsideBBox(parentElement, getMid(bounds))) {
170
+ parentElement = this._canvas.findRoot(parentElement);
171
+ }
172
+ }
173
+
174
+ this._canvas.addShape(element, parentElement, parentIndex);
175
+ }
176
+
177
+ // CONNECTION
178
+ else if (is(di, 'bpmndi:BPMNEdge')) {
179
+
180
+ var source = this._getSource(semantic),
181
+ target = this._getTarget(semantic);
182
+
183
+ hidden = parentElement && (parentElement.hidden || parentElement.collapsed);
184
+
185
+ element = this._elementFactory.createConnection(elementData(semantic, di, {
186
+ hidden: hidden,
187
+ source: source,
188
+ target: target,
189
+ waypoints: getWaypoints(di, source, target)
190
+ }));
191
+
192
+ if (is(semantic, 'bpmn:DataAssociation')) {
193
+
194
+ // render always on top; this ensures DataAssociations
195
+ // are rendered correctly across different "hacks" people
196
+ // love to model such as cross participant / sub process
197
+ // associations
198
+ parentElement = this._canvas.findRoot(parentElement);
199
+ }
200
+
201
+ this._canvas.addConnection(element, parentElement, parentIndex);
202
+ } else {
203
+ throw new Error(
204
+ `unknown di ${ elementToString(di) } for element ${ elementToString(semantic) }`
205
+ );
206
+ }
207
+
208
+ // (optional) LABEL
209
+ if (isLabelExternal(semantic) && getLabel(element)) {
210
+ this.addLabel(semantic, di, element);
211
+ }
212
+
213
+ this._eventBus.fire('bpmnElement.added', { element: element });
214
+
215
+ return element;
216
+ };
217
+
218
+
219
+ /**
220
+ * Attach a boundary element to the given host.
221
+ *
222
+ * @param {ModdleElement} boundarySemantic
223
+ * @param {Shape} boundaryElement
224
+ */
225
+ BpmnImporter.prototype._attachBoundary = function(boundarySemantic, boundaryElement) {
226
+ var hostSemantic = boundarySemantic.attachedToRef;
227
+
228
+ if (!hostSemantic) {
229
+ throw new Error(
230
+ `missing ${ elementToString(boundarySemantic) }#attachedToRef`
231
+ );
232
+ }
233
+
234
+ var host = this._elementRegistry.get(hostSemantic.id),
235
+ attachers = host && host.attachers;
236
+
237
+ if (!host) {
238
+ throw notYetDrawn(boundarySemantic, hostSemantic, 'attachedToRef');
239
+ }
240
+
241
+ // wire element.host <> host.attachers
242
+ boundaryElement.host = host;
243
+
244
+ if (!attachers) {
245
+ host.attachers = attachers = [];
246
+ }
247
+
248
+ if (attachers.indexOf(boundaryElement) === -1) {
249
+ attachers.push(boundaryElement);
250
+ }
251
+ };
252
+
253
+
254
+ /**
255
+ * Add a label to a given element.
256
+ *
257
+ * @param {ModdleElement} semantic
258
+ * @param {ModdleElement} di
259
+ * @param {Element} element
260
+ *
261
+ * @return {Label}
262
+ */
263
+ BpmnImporter.prototype.addLabel = function(semantic, di, element) {
264
+ var bounds,
265
+ text,
266
+ label;
267
+
268
+ bounds = getExternalLabelBounds(di, element);
269
+
270
+ text = getLabel(element);
271
+
272
+ if (text) {
273
+
274
+ // get corrected bounds from actual layouted text
275
+ bounds = this._textRenderer.getExternalLabelBounds(bounds, text);
276
+ }
277
+
278
+ label = this._elementFactory.createLabel(elementData(semantic, di, {
279
+ id: semantic.id + '_label',
280
+ labelTarget: element,
281
+ type: 'label',
282
+ hidden: element.hidden || !getLabel(element),
283
+ x: Math.round(bounds.x),
284
+ y: Math.round(bounds.y),
285
+ width: Math.round(bounds.width),
286
+ height: Math.round(bounds.height)
287
+ }));
288
+
289
+ return this._canvas.addShape(label, element.parent);
290
+ };
291
+
292
+ /**
293
+ * Get the source or target of the given connection.
294
+ *
295
+ * @param {ModdleElement} semantic
296
+ * @param {'source' | 'target'} side
297
+ *
298
+ * @return {Element}
299
+ */
300
+ BpmnImporter.prototype._getConnectedElement = function(semantic, side) {
301
+
302
+ var element,
303
+ refSemantic,
304
+ type = semantic.$type;
305
+
306
+ refSemantic = semantic[side + 'Ref'];
307
+
308
+ // handle mysterious isMany DataAssociation#sourceRef
309
+ if (side === 'source' && type === 'bpmn:DataInputAssociation') {
310
+ refSemantic = refSemantic && refSemantic[0];
311
+ }
312
+
313
+ // fix source / target for DataInputAssociation / DataOutputAssociation
314
+ if (side === 'source' && type === 'bpmn:DataOutputAssociation' ||
315
+ side === 'target' && type === 'bpmn:DataInputAssociation') {
316
+
317
+ refSemantic = semantic.$parent;
318
+ }
319
+
320
+ element = refSemantic && this._getElement(refSemantic);
321
+
322
+ if (element) {
323
+ return element;
324
+ }
325
+
326
+ if (refSemantic) {
327
+ throw notYetDrawn(semantic, refSemantic, side + 'Ref');
328
+ } else {
329
+ throw new Error(
330
+ `${ elementToString(semantic) }#${ side } Ref not specified`
331
+ );
332
+ }
333
+ };
334
+
335
+ BpmnImporter.prototype._getSource = function(semantic) {
336
+ return this._getConnectedElement(semantic, 'source');
337
+ };
338
+
339
+ BpmnImporter.prototype._getTarget = function(semantic) {
340
+ return this._getConnectedElement(semantic, 'target');
341
+ };
342
+
343
+
344
+ BpmnImporter.prototype._getElement = function(semantic) {
345
+ return this._elementRegistry.get(semantic.id);
346
+ };
347
+
348
+
349
+ // helpers ////////////////////
350
+
351
+ function isPointInsideBBox(bbox, point) {
352
+ var x = point.x,
353
+ y = point.y;
354
+
355
+ return x >= bbox.x &&
356
+ x <= bbox.x + bbox.width &&
357
+ y >= bbox.y &&
358
+ y <= bbox.y + bbox.height;
359
+ }
360
+
361
+ function isFrameElement(semantic) {
362
+ return is(semantic, 'bpmn:Group');
363
+ }