bpmn-js 17.6.1 → 17.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/LICENSE +23 -23
  2. package/README.md +93 -93
  3. package/dist/assets/bpmn-js.css +145 -145
  4. package/dist/bpmn-modeler.development.js +25393 -25381
  5. package/dist/bpmn-modeler.production.min.js +2 -2
  6. package/dist/bpmn-navigated-viewer.development.js +21134 -21134
  7. package/dist/bpmn-navigated-viewer.production.min.js +1 -1
  8. package/dist/bpmn-viewer.development.js +21059 -21059
  9. package/dist/bpmn-viewer.production.min.js +1 -1
  10. package/index.js +2 -2
  11. package/lib/BaseModeler.d.ts +15 -15
  12. package/lib/BaseModeler.js +79 -79
  13. package/lib/BaseViewer.d.ts +352 -352
  14. package/lib/BaseViewer.js +858 -858
  15. package/lib/Modeler.d.ts +86 -86
  16. package/lib/Modeler.js +204 -204
  17. package/lib/NavigatedViewer.d.ts +11 -11
  18. package/lib/NavigatedViewer.js +37 -37
  19. package/lib/Viewer.d.ts +47 -47
  20. package/lib/Viewer.js +78 -78
  21. package/lib/core/index.d.ts +10 -10
  22. package/lib/core/index.js +8 -8
  23. package/lib/draw/BpmnRenderUtil.d.ts +123 -123
  24. package/lib/draw/BpmnRenderUtil.js +256 -256
  25. package/lib/draw/BpmnRenderer.d.ts +114 -114
  26. package/lib/draw/BpmnRenderer.js +2340 -2340
  27. package/lib/draw/PathMap.d.ts +330 -330
  28. package/lib/draw/PathMap.js +478 -478
  29. package/lib/draw/TextRenderer.d.ts +74 -74
  30. package/lib/draw/TextRenderer.js +136 -136
  31. package/lib/draw/index.d.ts +10 -10
  32. package/lib/draw/index.js +11 -11
  33. package/lib/features/align-elements/AlignElementsContextPadProvider.d.ts +32 -32
  34. package/lib/features/align-elements/AlignElementsContextPadProvider.js +105 -105
  35. package/lib/features/align-elements/AlignElementsIcons.d.ts +10 -10
  36. package/lib/features/align-elements/AlignElementsIcons.js +43 -43
  37. package/lib/features/align-elements/AlignElementsMenuProvider.d.ts +32 -32
  38. package/lib/features/align-elements/AlignElementsMenuProvider.js +100 -100
  39. package/lib/features/align-elements/BpmnAlignElements.d.ts +9 -9
  40. package/lib/features/align-elements/BpmnAlignElements.js +45 -45
  41. package/lib/features/align-elements/index.d.ts +11 -11
  42. package/lib/features/align-elements/index.js +23 -23
  43. package/lib/features/append-preview/AppendPreview.d.ts +36 -36
  44. package/lib/features/append-preview/AppendPreview.js +108 -108
  45. package/lib/features/append-preview/index.d.ts +16 -16
  46. package/lib/features/append-preview/index.js +15 -15
  47. package/lib/features/auto-place/BpmnAutoPlace.d.ts +13 -13
  48. package/lib/features/auto-place/BpmnAutoPlace.js +20 -20
  49. package/lib/features/auto-place/BpmnAutoPlaceUtil.d.ts +47 -47
  50. package/lib/features/auto-place/BpmnAutoPlaceUtil.js +225 -225
  51. package/lib/features/auto-place/index.d.ts +7 -7
  52. package/lib/features/auto-place/index.js +8 -8
  53. package/lib/features/auto-resize/BpmnAutoResize.d.ts +25 -25
  54. package/lib/features/auto-resize/BpmnAutoResize.js +45 -45
  55. package/lib/features/auto-resize/BpmnAutoResizeProvider.d.ts +26 -26
  56. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +69 -69
  57. package/lib/features/auto-resize/index.d.ts +8 -8
  58. package/lib/features/auto-resize/index.js +12 -12
  59. package/lib/features/context-pad/ContextPadProvider.d.ts +73 -73
  60. package/lib/features/context-pad/ContextPadProvider.js +591 -591
  61. package/lib/features/context-pad/index.d.ts +7 -7
  62. package/lib/features/context-pad/index.js +22 -22
  63. package/lib/features/copy-paste/BpmnCopyPaste.d.ts +17 -17
  64. package/lib/features/copy-paste/BpmnCopyPaste.js +192 -192
  65. package/lib/features/copy-paste/ModdleCopy.d.ts +45 -45
  66. package/lib/features/copy-paste/ModdleCopy.js +275 -275
  67. package/lib/features/copy-paste/index.d.ts +9 -9
  68. package/lib/features/copy-paste/index.js +13 -13
  69. package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
  70. package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
  71. package/lib/features/di-ordering/index.d.ts +6 -6
  72. package/lib/features/di-ordering/index.js +7 -7
  73. package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
  74. package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
  75. package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
  76. package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
  77. package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
  78. package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
  79. package/lib/features/distribute-elements/index.d.ts +9 -9
  80. package/lib/features/distribute-elements/index.js +19 -19
  81. package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
  82. package/lib/features/drilldown/DrilldownBreadcrumbs.js +131 -131
  83. package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
  84. package/lib/features/drilldown/DrilldownCentering.js +122 -122
  85. package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +18 -18
  86. package/lib/features/drilldown/DrilldownOverlayBehavior.js +210 -210
  87. package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
  88. package/lib/features/drilldown/SubprocessCompatibility.js +268 -268
  89. package/lib/features/drilldown/index.d.ts +13 -13
  90. package/lib/features/drilldown/index.js +16 -16
  91. package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
  92. package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
  93. package/lib/features/editor-actions/index.d.ts +6 -6
  94. package/lib/features/editor-actions/index.js +10 -10
  95. package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
  96. package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +12 -12
  97. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
  98. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
  99. package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
  100. package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
  101. package/lib/features/grid-snapping/index.d.ts +11 -11
  102. package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
  103. package/lib/features/interaction-events/BpmnInteractionEvents.js +150 -150
  104. package/lib/features/interaction-events/index.d.ts +6 -6
  105. package/lib/features/interaction-events/index.js +5 -5
  106. package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
  107. package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
  108. package/lib/features/keyboard/index.d.ts +7 -7
  109. package/lib/features/keyboard/index.js +11 -11
  110. package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
  111. package/lib/features/label-editing/LabelEditingPreview.js +144 -144
  112. package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
  113. package/lib/features/label-editing/LabelEditingProvider.js +519 -519
  114. package/lib/features/label-editing/LabelUtil.d.ts +1 -1
  115. package/lib/features/label-editing/LabelUtil.js +4 -4
  116. package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
  117. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
  118. package/lib/features/label-editing/index.d.ts +9 -9
  119. package/lib/features/label-editing/index.js +21 -21
  120. package/lib/features/modeling/BpmnFactory.d.ts +73 -73
  121. package/lib/features/modeling/BpmnFactory.js +180 -180
  122. package/lib/features/modeling/BpmnLayouter.d.ts +26 -26
  123. package/lib/features/modeling/BpmnLayouter.js +481 -481
  124. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  125. package/lib/features/modeling/BpmnUpdater.js +837 -837
  126. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  127. package/lib/features/modeling/ElementFactory.js +406 -406
  128. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  129. package/lib/features/modeling/Modeling.d.ts +150 -150
  130. package/lib/features/modeling/Modeling.js +307 -307
  131. package/lib/features/modeling/Modeling.test.ts +147 -147
  132. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +20 -20
  133. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +284 -284
  134. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  135. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  136. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  137. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  138. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  139. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  140. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  141. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  142. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  143. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  144. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  145. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  146. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +43 -43
  147. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  148. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  149. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  150. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  151. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  152. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  153. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  154. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  155. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  156. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  157. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  158. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  159. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  160. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  161. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  162. package/lib/features/modeling/behavior/GroupBehavior.js +332 -332
  163. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  164. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  165. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  166. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  167. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  168. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  169. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  170. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  171. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  172. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  173. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  174. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  175. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  176. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  177. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  178. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  179. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +54 -54
  180. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  181. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  182. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  183. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  184. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +67 -67
  185. package/lib/features/modeling/behavior/ResizeBehavior.js +262 -262
  186. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  187. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  188. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  189. package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
  190. package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
  191. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
  192. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
  193. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
  194. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +55 -55
  195. package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
  196. package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
  197. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
  198. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
  199. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
  200. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
  201. package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
  202. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
  203. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
  204. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
  205. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
  206. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
  207. package/lib/features/modeling/behavior/index.d.ts +2 -2
  208. package/lib/features/modeling/behavior/index.js +128 -128
  209. package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
  210. package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
  211. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
  212. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
  213. package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
  214. package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
  215. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
  216. package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
  217. package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
  218. package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
  219. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
  220. package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
  221. package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
  222. package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
  223. package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
  224. package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
  225. package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
  226. package/lib/features/modeling/cmd/AddLaneHandler.js +192 -192
  227. package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
  228. package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
  229. package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
  230. package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
  231. package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
  232. package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
  233. package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
  234. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
  235. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
  236. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
  237. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
  238. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
  239. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
  240. package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
  241. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
  242. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
  243. package/lib/features/modeling/index.d.ts +27 -27
  244. package/lib/features/modeling/index.js +45 -45
  245. package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
  246. package/lib/features/modeling/util/LaneUtil.js +188 -188
  247. package/lib/features/modeling/util/ModelingUtil.d.ts +21 -21
  248. package/lib/features/modeling/util/ModelingUtil.js +54 -54
  249. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  250. package/lib/features/modeling-feedback/ModelingFeedback.js +46 -46
  251. package/lib/features/modeling-feedback/index.d.ts +7 -7
  252. package/lib/features/modeling-feedback/index.js +12 -12
  253. package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
  254. package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
  255. package/lib/features/ordering/index.d.ts +6 -6
  256. package/lib/features/ordering/index.js +5 -5
  257. package/lib/features/outline/OutlineProvider.d.ts +34 -34
  258. package/lib/features/outline/OutlineProvider.js +179 -179
  259. package/lib/features/outline/OutlineUtil.d.ts +18 -18
  260. package/lib/features/outline/OutlineUtil.js +31 -31
  261. package/lib/features/outline/index.d.ts +7 -7
  262. package/lib/features/outline/index.js +10 -10
  263. package/lib/features/palette/PaletteProvider.d.ts +34 -34
  264. package/lib/features/palette/PaletteProvider.js +214 -214
  265. package/lib/features/palette/index.d.ts +9 -9
  266. package/lib/features/palette/index.js +23 -23
  267. package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
  268. package/lib/features/popup-menu/ReplaceMenuProvider.js +679 -679
  269. package/lib/features/popup-menu/index.d.ts +11 -11
  270. package/lib/features/popup-menu/index.js +16 -16
  271. package/lib/features/popup-menu/util/Icons.d.ts +5 -5
  272. package/lib/features/popup-menu/util/Icons.js +14 -14
  273. package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
  274. package/lib/features/popup-menu/util/TypeUtil.js +52 -52
  275. package/lib/features/replace/BpmnReplace.d.ts +47 -47
  276. package/lib/features/replace/BpmnReplace.js +382 -382
  277. package/lib/features/replace/ReplaceOptions.d.ts +75 -75
  278. package/lib/features/replace/ReplaceOptions.js +919 -919
  279. package/lib/features/replace/index.d.ts +9 -9
  280. package/lib/features/replace/index.js +14 -14
  281. package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
  282. package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
  283. package/lib/features/replace-preview/index.d.ts +7 -7
  284. package/lib/features/replace-preview/index.js +11 -11
  285. package/lib/features/rules/BpmnRules.d.ts +181 -181
  286. package/lib/features/rules/BpmnRules.js +1191 -1191
  287. package/lib/features/rules/index.d.ts +7 -7
  288. package/lib/features/rules/index.js +11 -11
  289. package/lib/features/search/BpmnSearchProvider.d.ts +29 -29
  290. package/lib/features/search/BpmnSearchProvider.js +136 -136
  291. package/lib/features/search/index.d.ts +7 -7
  292. package/lib/features/search/index.js +12 -12
  293. package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
  294. package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
  295. package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
  296. package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
  297. package/lib/features/snapping/index.d.ts +9 -9
  298. package/lib/features/snapping/index.js +12 -12
  299. package/lib/features/space-tool/BpmnSpaceTool.d.ts +21 -21
  300. package/lib/features/space-tool/BpmnSpaceTool.js +69 -69
  301. package/lib/features/space-tool/index.d.ts +6 -6
  302. package/lib/features/space-tool/index.js +7 -7
  303. package/lib/import/BpmnImporter.d.ts +51 -51
  304. package/lib/import/BpmnImporter.js +363 -363
  305. package/lib/import/BpmnTreeWalker.d.ts +20 -20
  306. package/lib/import/BpmnTreeWalker.js +453 -453
  307. package/lib/import/Importer.d.ts +25 -25
  308. package/lib/import/Importer.js +217 -217
  309. package/lib/import/Util.d.ts +1 -1
  310. package/lib/import/Util.js +6 -6
  311. package/lib/import/index.d.ts +6 -6
  312. package/lib/import/index.js +9 -9
  313. package/lib/model/Types.d.ts +25 -25
  314. package/lib/model/Types.ts +40 -40
  315. package/lib/util/CompatibilityUtil.d.ts +8 -8
  316. package/lib/util/CompatibilityUtil.js +29 -29
  317. package/lib/util/DiUtil.d.ts +60 -60
  318. package/lib/util/DiUtil.js +122 -122
  319. package/lib/util/DrilldownUtil.d.ts +39 -39
  320. package/lib/util/DrilldownUtil.js +69 -69
  321. package/lib/util/LabelUtil.d.ts +83 -83
  322. package/lib/util/LabelUtil.js +262 -262
  323. package/lib/util/ModelUtil.d.ts +40 -40
  324. package/lib/util/ModelUtil.js +58 -58
  325. package/lib/util/PoweredByUtil.d.ts +8 -8
  326. package/lib/util/PoweredByUtil.js +99 -99
  327. package/lib/util/Types.js +4 -4
  328. package/lib/util/Types.ts +3 -3
  329. package/package.json +132 -132
  330. package/test/helper/TranslationCollector.js +15 -15
  331. package/test/helper/index.js +313 -313
  332. package/test/matchers/BoundsMatchers.js +252 -252
  333. package/test/matchers/ConnectionMatchers.js +165 -165
  334. package/test/matchers/JSONMatcher.js +19 -19
  335. package/test/util/KeyEvents.js +22 -22
  336. package/test/util/MockEvents.js +61 -61
  337. package/test/util/custom-rules/CustomRules.js +16 -16
  338. package/test/util/custom-rules/index.js +6 -6
@@ -1,382 +1,382 @@
1
- import {
2
- pick,
3
- assign,
4
- filter,
5
- forEach,
6
- isArray,
7
- isUndefined,
8
- has
9
- } from 'min-dash';
10
-
11
- import {
12
- is,
13
- getBusinessObject
14
- } from '../../util/ModelUtil';
15
-
16
- import {
17
- isAny
18
- } from '../modeling/util/ModelingUtil';
19
-
20
- import {
21
- isExpanded,
22
- isEventSubProcess
23
- } from '../../util/DiUtil';
24
-
25
- import { getPropertyNames } from '../copy-paste/ModdleCopy';
26
-
27
- /**
28
- * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory
29
- * @typedef {import('../modeling/ElementFactory').default} ElementFactory
30
- * @typedef {import('../copy-paste/ModdleCopy').default} ModdleCopy
31
- * @typedef {import('../modeling/Modeling').default} Modeling
32
- * @typedef {import('diagram-js/lib/features/replace/Replace').default} Replace
33
- * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
34
- *
35
- * @typedef {import('../../model/Types').Element} Element
36
- * @typedef {import('../../model/Types').Shape} Shape
37
- * @typedef {import('../../model/Types').ModdleElement} ModdleElement
38
- *
39
- * @typedef { {
40
- * type: string;
41
- * cancelActivity: boolean;
42
- * instantiate: boolean;
43
- * eventGatewayType: string;
44
- * triggeredByEvent: boolean;
45
- * isInterrupting: boolean;
46
- * collapsed: boolean;
47
- * isExpanded: boolean;
48
- * eventDefinitionType: string;
49
- * eventDefinitionAttrs: Object;
50
- * host: Shape;
51
- * } } TargetElement
52
- *
53
- * @typedef { {
54
- * moveChildren: boolean;
55
- * } & Record<string, any> } Hints
56
- */
57
-
58
- function copyProperties(source, target, properties) {
59
- if (!isArray(properties)) {
60
- properties = [ properties ];
61
- }
62
-
63
- forEach(properties, function(property) {
64
- if (!isUndefined(source[property])) {
65
- target[property] = source[property];
66
- }
67
- });
68
- }
69
-
70
-
71
- var CUSTOM_PROPERTIES = [
72
- 'cancelActivity',
73
- 'instantiate',
74
- 'eventGatewayType',
75
- 'triggeredByEvent',
76
- 'isInterrupting'
77
- ];
78
-
79
- /**
80
- * Check if element should be collapsed or expanded.
81
- */
82
- function shouldToggleCollapsed(element, targetElement) {
83
-
84
- var oldCollapsed = (
85
- element && has(element, 'collapsed') ? element.collapsed : !isExpanded(element)
86
- );
87
-
88
- var targetCollapsed;
89
-
90
- if (targetElement && (has(targetElement, 'collapsed') || has(targetElement, 'isExpanded'))) {
91
-
92
- // property is explicitly set so use it
93
- targetCollapsed = (
94
- has(targetElement, 'collapsed') ? targetElement.collapsed : !targetElement.isExpanded
95
- );
96
- } else {
97
-
98
- // keep old state
99
- targetCollapsed = oldCollapsed;
100
- }
101
-
102
- if (oldCollapsed !== targetCollapsed) {
103
- return true;
104
- }
105
-
106
- return false;
107
- }
108
-
109
-
110
- /**
111
- * BPMN-specific replace.
112
- *
113
- * @param {BpmnFactory} bpmnFactory
114
- * @param {ElementFactory} elementFactory
115
- * @param {ModdleCopy} moddleCopy
116
- * @param {Modeling} modeling
117
- * @param {Replace} replace
118
- * @param {Rules} rules
119
- */
120
- export default function BpmnReplace(
121
- bpmnFactory,
122
- elementFactory,
123
- moddleCopy,
124
- modeling,
125
- replace,
126
- rules
127
- ) {
128
-
129
- /**
130
- * Prepares a new business object for the replacement element
131
- * and triggers the replace operation.
132
- *
133
- * @param {Element} element
134
- * @param {TargetElement} targetElement
135
- * @param {Hints} [hints]
136
- *
137
- * @return {Element}
138
- */
139
- function replaceElement(element, targetElement, hints) {
140
-
141
- hints = hints || {};
142
-
143
- var type = targetElement.type,
144
- oldBusinessObject = element.businessObject;
145
-
146
- if (isSubProcess(oldBusinessObject) && type === 'bpmn:SubProcess') {
147
- if (shouldToggleCollapsed(element, targetElement)) {
148
-
149
- // expanding or collapsing process
150
- modeling.toggleCollapse(element);
151
-
152
- return element;
153
- }
154
- }
155
-
156
- var newBusinessObject = bpmnFactory.create(type);
157
-
158
- var newElement = {
159
- type: type,
160
- businessObject: newBusinessObject,
161
- };
162
-
163
- newElement.di = {};
164
-
165
- if (type === 'bpmn:ExclusiveGateway') {
166
- newElement.di.isMarkerVisible = true;
167
- }
168
-
169
- // colors will be set to DI
170
- copyProperties(element.di, newElement.di, [
171
- 'fill',
172
- 'stroke',
173
- 'background-color',
174
- 'border-color',
175
- 'color'
176
- ]);
177
-
178
- var elementProps = getPropertyNames(oldBusinessObject.$descriptor),
179
- newElementProps = getPropertyNames(newBusinessObject.$descriptor, true),
180
- copyProps = intersection(elementProps, newElementProps);
181
-
182
- // initialize special properties defined in target definition
183
- assign(newBusinessObject, pick(targetElement, CUSTOM_PROPERTIES));
184
-
185
- var properties = filter(copyProps, function(propertyName) {
186
-
187
- // copying event definitions, unless we replace
188
- if (propertyName === 'eventDefinitions') {
189
- return hasEventDefinition(element, targetElement.eventDefinitionType);
190
- }
191
-
192
- // retain loop characteristics if the target element
193
- // is not an event sub process
194
- if (propertyName === 'loopCharacteristics') {
195
- return !isEventSubProcess(newBusinessObject);
196
- }
197
-
198
- // so the applied properties from 'target' don't get lost
199
- if (has(newBusinessObject, propertyName)) {
200
- return false;
201
- }
202
-
203
- if (propertyName === 'processRef' && targetElement.isExpanded === false) {
204
- return false;
205
- }
206
-
207
- if (propertyName === 'triggeredByEvent') {
208
- return false;
209
- }
210
-
211
- if (propertyName === 'isForCompensation') {
212
- return !isEventSubProcess(newBusinessObject);
213
- }
214
-
215
- return true;
216
- });
217
-
218
- newBusinessObject = moddleCopy.copyElement(
219
- oldBusinessObject,
220
- newBusinessObject,
221
- properties
222
- );
223
-
224
- // initialize custom BPMN extensions
225
- if (targetElement.eventDefinitionType) {
226
-
227
- // only initialize with new eventDefinition
228
- // if we did not set an event definition yet,
229
- // i.e. because we copied it
230
- if (!hasEventDefinition(newBusinessObject, targetElement.eventDefinitionType)) {
231
- newElement.eventDefinitionType = targetElement.eventDefinitionType;
232
- newElement.eventDefinitionAttrs = targetElement.eventDefinitionAttrs;
233
- }
234
- }
235
-
236
- if (is(oldBusinessObject, 'bpmn:Activity')) {
237
-
238
- if (isSubProcess(oldBusinessObject)) {
239
-
240
- // no toggeling, so keep old state
241
- newElement.isExpanded = isExpanded(element);
242
- }
243
-
244
- // else if property is explicitly set, use it
245
- else if (targetElement && has(targetElement, 'isExpanded')) {
246
- newElement.isExpanded = targetElement.isExpanded;
247
-
248
- // assign default size of new expanded element
249
- var defaultSize = elementFactory.getDefaultSize(newBusinessObject, {
250
- isExpanded: newElement.isExpanded
251
- });
252
-
253
- newElement.width = defaultSize.width;
254
- newElement.height = defaultSize.height;
255
-
256
- // keep element centered
257
- newElement.x = element.x - (newElement.width - element.width) / 2;
258
- newElement.y = element.y - (newElement.height - element.height) / 2;
259
- }
260
-
261
- // TODO: need also to respect min/max Size
262
- // copy size, from an expanded subprocess to an expanded alternative subprocess
263
- // except bpmn:Task, because Task is always expanded
264
- if ((isExpanded(element) && !is(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {
265
- newElement.width = element.width;
266
- newElement.height = element.height;
267
- }
268
- }
269
-
270
- // remove children if not expanding sub process
271
- if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {
272
- hints.moveChildren = false;
273
- }
274
-
275
- // transform collapsed/expanded pools
276
- if (is(oldBusinessObject, 'bpmn:Participant')) {
277
-
278
- // create expanded pool
279
- if (targetElement.isExpanded === true) {
280
- newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');
281
- } else {
282
-
283
- // remove children when transforming to collapsed pool
284
- hints.moveChildren = false;
285
- }
286
-
287
- // apply same width and default height
288
- newElement.width = element.width;
289
- newElement.height = elementFactory.getDefaultSize(newElement).height;
290
- }
291
-
292
- if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {
293
- newElement.height = elementFactory.getDefaultSize(newElement).height;
294
- newElement.width = elementFactory.getDefaultSize(newElement).width;
295
- }
296
-
297
- newBusinessObject.name = oldBusinessObject.name;
298
-
299
- // retain default flow's reference between inclusive <-> exclusive gateways and activities
300
- if (
301
- isAny(oldBusinessObject, [
302
- 'bpmn:ExclusiveGateway',
303
- 'bpmn:InclusiveGateway',
304
- 'bpmn:Activity'
305
- ]) &&
306
- isAny(newBusinessObject, [
307
- 'bpmn:ExclusiveGateway',
308
- 'bpmn:InclusiveGateway',
309
- 'bpmn:Activity'
310
- ])
311
- ) {
312
- newBusinessObject.default = oldBusinessObject.default;
313
- }
314
-
315
- if (
316
- targetElement.host &&
317
- !is(oldBusinessObject, 'bpmn:BoundaryEvent') &&
318
- is(newBusinessObject, 'bpmn:BoundaryEvent')
319
- ) {
320
- newElement.host = targetElement.host;
321
- }
322
-
323
- // The DataStoreReference element is 14px wider than the DataObjectReference element
324
- // This ensures that they stay centered on the x axis when replaced
325
- if (
326
- newElement.type === 'bpmn:DataStoreReference' ||
327
- newElement.type === 'bpmn:DataObjectReference'
328
- ) {
329
- newElement.x = element.x + (element.width - newElement.width) / 2;
330
- }
331
-
332
- return replace.replaceElement(element, newElement, { ...hints, targetElement });
333
- }
334
-
335
- this.replaceElement = replaceElement;
336
- }
337
-
338
- BpmnReplace.$inject = [
339
- 'bpmnFactory',
340
- 'elementFactory',
341
- 'moddleCopy',
342
- 'modeling',
343
- 'replace',
344
- 'rules'
345
- ];
346
-
347
- /**
348
- * @param {ModdleElement} businessObject
349
- *
350
- * @return {boolean}
351
- */
352
- function isSubProcess(businessObject) {
353
- return is(businessObject, 'bpmn:SubProcess');
354
- }
355
-
356
- /**
357
- * @param {Element|ModdleElement} element
358
- * @param {string} type
359
- *
360
- * @return {boolean}
361
- */
362
- function hasEventDefinition(element, type) {
363
- var businessObject = getBusinessObject(element);
364
-
365
- return type && businessObject.get('eventDefinitions').some(function(definition) {
366
- return is(definition, type);
367
- });
368
- }
369
-
370
- /**
371
- * Compute intersection between two arrays.
372
- *
373
- * @param {Array} a
374
- * @param {Array} b
375
- *
376
- * @return {Array}
377
- */
378
- function intersection(a, b) {
379
- return a.filter(function(item) {
380
- return b.includes(item);
381
- });
382
- }
1
+ import {
2
+ pick,
3
+ assign,
4
+ filter,
5
+ forEach,
6
+ isArray,
7
+ isUndefined,
8
+ has
9
+ } from 'min-dash';
10
+
11
+ import {
12
+ is,
13
+ getBusinessObject
14
+ } from '../../util/ModelUtil';
15
+
16
+ import {
17
+ isAny
18
+ } from '../modeling/util/ModelingUtil';
19
+
20
+ import {
21
+ isExpanded,
22
+ isEventSubProcess
23
+ } from '../../util/DiUtil';
24
+
25
+ import { getPropertyNames } from '../copy-paste/ModdleCopy';
26
+
27
+ /**
28
+ * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory
29
+ * @typedef {import('../modeling/ElementFactory').default} ElementFactory
30
+ * @typedef {import('../copy-paste/ModdleCopy').default} ModdleCopy
31
+ * @typedef {import('../modeling/Modeling').default} Modeling
32
+ * @typedef {import('diagram-js/lib/features/replace/Replace').default} Replace
33
+ * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
34
+ *
35
+ * @typedef {import('../../model/Types').Element} Element
36
+ * @typedef {import('../../model/Types').Shape} Shape
37
+ * @typedef {import('../../model/Types').ModdleElement} ModdleElement
38
+ *
39
+ * @typedef { {
40
+ * type: string;
41
+ * cancelActivity: boolean;
42
+ * instantiate: boolean;
43
+ * eventGatewayType: string;
44
+ * triggeredByEvent: boolean;
45
+ * isInterrupting: boolean;
46
+ * collapsed: boolean;
47
+ * isExpanded: boolean;
48
+ * eventDefinitionType: string;
49
+ * eventDefinitionAttrs: Object;
50
+ * host: Shape;
51
+ * } } TargetElement
52
+ *
53
+ * @typedef { {
54
+ * moveChildren: boolean;
55
+ * } & Record<string, any> } Hints
56
+ */
57
+
58
+ function copyProperties(source, target, properties) {
59
+ if (!isArray(properties)) {
60
+ properties = [ properties ];
61
+ }
62
+
63
+ forEach(properties, function(property) {
64
+ if (!isUndefined(source[property])) {
65
+ target[property] = source[property];
66
+ }
67
+ });
68
+ }
69
+
70
+
71
+ var CUSTOM_PROPERTIES = [
72
+ 'cancelActivity',
73
+ 'instantiate',
74
+ 'eventGatewayType',
75
+ 'triggeredByEvent',
76
+ 'isInterrupting'
77
+ ];
78
+
79
+ /**
80
+ * Check if element should be collapsed or expanded.
81
+ */
82
+ function shouldToggleCollapsed(element, targetElement) {
83
+
84
+ var oldCollapsed = (
85
+ element && has(element, 'collapsed') ? element.collapsed : !isExpanded(element)
86
+ );
87
+
88
+ var targetCollapsed;
89
+
90
+ if (targetElement && (has(targetElement, 'collapsed') || has(targetElement, 'isExpanded'))) {
91
+
92
+ // property is explicitly set so use it
93
+ targetCollapsed = (
94
+ has(targetElement, 'collapsed') ? targetElement.collapsed : !targetElement.isExpanded
95
+ );
96
+ } else {
97
+
98
+ // keep old state
99
+ targetCollapsed = oldCollapsed;
100
+ }
101
+
102
+ if (oldCollapsed !== targetCollapsed) {
103
+ return true;
104
+ }
105
+
106
+ return false;
107
+ }
108
+
109
+
110
+ /**
111
+ * BPMN-specific replace.
112
+ *
113
+ * @param {BpmnFactory} bpmnFactory
114
+ * @param {ElementFactory} elementFactory
115
+ * @param {ModdleCopy} moddleCopy
116
+ * @param {Modeling} modeling
117
+ * @param {Replace} replace
118
+ * @param {Rules} rules
119
+ */
120
+ export default function BpmnReplace(
121
+ bpmnFactory,
122
+ elementFactory,
123
+ moddleCopy,
124
+ modeling,
125
+ replace,
126
+ rules
127
+ ) {
128
+
129
+ /**
130
+ * Prepares a new business object for the replacement element
131
+ * and triggers the replace operation.
132
+ *
133
+ * @param {Element} element
134
+ * @param {TargetElement} targetElement
135
+ * @param {Hints} [hints]
136
+ *
137
+ * @return {Element}
138
+ */
139
+ function replaceElement(element, targetElement, hints) {
140
+
141
+ hints = hints || {};
142
+
143
+ var type = targetElement.type,
144
+ oldBusinessObject = element.businessObject;
145
+
146
+ if (isSubProcess(oldBusinessObject) && type === 'bpmn:SubProcess') {
147
+ if (shouldToggleCollapsed(element, targetElement)) {
148
+
149
+ // expanding or collapsing process
150
+ modeling.toggleCollapse(element);
151
+
152
+ return element;
153
+ }
154
+ }
155
+
156
+ var newBusinessObject = bpmnFactory.create(type);
157
+
158
+ var newElement = {
159
+ type: type,
160
+ businessObject: newBusinessObject,
161
+ };
162
+
163
+ newElement.di = {};
164
+
165
+ if (type === 'bpmn:ExclusiveGateway') {
166
+ newElement.di.isMarkerVisible = true;
167
+ }
168
+
169
+ // colors will be set to DI
170
+ copyProperties(element.di, newElement.di, [
171
+ 'fill',
172
+ 'stroke',
173
+ 'background-color',
174
+ 'border-color',
175
+ 'color'
176
+ ]);
177
+
178
+ var elementProps = getPropertyNames(oldBusinessObject.$descriptor),
179
+ newElementProps = getPropertyNames(newBusinessObject.$descriptor, true),
180
+ copyProps = intersection(elementProps, newElementProps);
181
+
182
+ // initialize special properties defined in target definition
183
+ assign(newBusinessObject, pick(targetElement, CUSTOM_PROPERTIES));
184
+
185
+ var properties = filter(copyProps, function(propertyName) {
186
+
187
+ // copying event definitions, unless we replace
188
+ if (propertyName === 'eventDefinitions') {
189
+ return hasEventDefinition(element, targetElement.eventDefinitionType);
190
+ }
191
+
192
+ // retain loop characteristics if the target element
193
+ // is not an event sub process
194
+ if (propertyName === 'loopCharacteristics') {
195
+ return !isEventSubProcess(newBusinessObject);
196
+ }
197
+
198
+ // so the applied properties from 'target' don't get lost
199
+ if (has(newBusinessObject, propertyName)) {
200
+ return false;
201
+ }
202
+
203
+ if (propertyName === 'processRef' && targetElement.isExpanded === false) {
204
+ return false;
205
+ }
206
+
207
+ if (propertyName === 'triggeredByEvent') {
208
+ return false;
209
+ }
210
+
211
+ if (propertyName === 'isForCompensation') {
212
+ return !isEventSubProcess(newBusinessObject);
213
+ }
214
+
215
+ return true;
216
+ });
217
+
218
+ newBusinessObject = moddleCopy.copyElement(
219
+ oldBusinessObject,
220
+ newBusinessObject,
221
+ properties
222
+ );
223
+
224
+ // initialize custom BPMN extensions
225
+ if (targetElement.eventDefinitionType) {
226
+
227
+ // only initialize with new eventDefinition
228
+ // if we did not set an event definition yet,
229
+ // i.e. because we copied it
230
+ if (!hasEventDefinition(newBusinessObject, targetElement.eventDefinitionType)) {
231
+ newElement.eventDefinitionType = targetElement.eventDefinitionType;
232
+ newElement.eventDefinitionAttrs = targetElement.eventDefinitionAttrs;
233
+ }
234
+ }
235
+
236
+ if (is(oldBusinessObject, 'bpmn:Activity')) {
237
+
238
+ if (isSubProcess(oldBusinessObject)) {
239
+
240
+ // no toggeling, so keep old state
241
+ newElement.isExpanded = isExpanded(element);
242
+ }
243
+
244
+ // else if property is explicitly set, use it
245
+ else if (targetElement && has(targetElement, 'isExpanded')) {
246
+ newElement.isExpanded = targetElement.isExpanded;
247
+
248
+ // assign default size of new expanded element
249
+ var defaultSize = elementFactory.getDefaultSize(newBusinessObject, {
250
+ isExpanded: newElement.isExpanded
251
+ });
252
+
253
+ newElement.width = defaultSize.width;
254
+ newElement.height = defaultSize.height;
255
+
256
+ // keep element centered
257
+ newElement.x = element.x - (newElement.width - element.width) / 2;
258
+ newElement.y = element.y - (newElement.height - element.height) / 2;
259
+ }
260
+
261
+ // TODO: need also to respect min/max Size
262
+ // copy size, from an expanded subprocess to an expanded alternative subprocess
263
+ // except bpmn:Task, because Task is always expanded
264
+ if ((isExpanded(element) && !is(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {
265
+ newElement.width = element.width;
266
+ newElement.height = element.height;
267
+ }
268
+ }
269
+
270
+ // remove children if not expanding sub process
271
+ if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {
272
+ hints.moveChildren = false;
273
+ }
274
+
275
+ // transform collapsed/expanded pools
276
+ if (is(oldBusinessObject, 'bpmn:Participant')) {
277
+
278
+ // create expanded pool
279
+ if (targetElement.isExpanded === true) {
280
+ newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');
281
+ } else {
282
+
283
+ // remove children when transforming to collapsed pool
284
+ hints.moveChildren = false;
285
+ }
286
+
287
+ // apply same width and default height
288
+ newElement.width = element.width;
289
+ newElement.height = elementFactory.getDefaultSize(newElement).height;
290
+ }
291
+
292
+ if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {
293
+ newElement.height = elementFactory.getDefaultSize(newElement).height;
294
+ newElement.width = elementFactory.getDefaultSize(newElement).width;
295
+ }
296
+
297
+ newBusinessObject.name = oldBusinessObject.name;
298
+
299
+ // retain default flow's reference between inclusive <-> exclusive gateways and activities
300
+ if (
301
+ isAny(oldBusinessObject, [
302
+ 'bpmn:ExclusiveGateway',
303
+ 'bpmn:InclusiveGateway',
304
+ 'bpmn:Activity'
305
+ ]) &&
306
+ isAny(newBusinessObject, [
307
+ 'bpmn:ExclusiveGateway',
308
+ 'bpmn:InclusiveGateway',
309
+ 'bpmn:Activity'
310
+ ])
311
+ ) {
312
+ newBusinessObject.default = oldBusinessObject.default;
313
+ }
314
+
315
+ if (
316
+ targetElement.host &&
317
+ !is(oldBusinessObject, 'bpmn:BoundaryEvent') &&
318
+ is(newBusinessObject, 'bpmn:BoundaryEvent')
319
+ ) {
320
+ newElement.host = targetElement.host;
321
+ }
322
+
323
+ // The DataStoreReference element is 14px wider than the DataObjectReference element
324
+ // This ensures that they stay centered on the x axis when replaced
325
+ if (
326
+ newElement.type === 'bpmn:DataStoreReference' ||
327
+ newElement.type === 'bpmn:DataObjectReference'
328
+ ) {
329
+ newElement.x = element.x + (element.width - newElement.width) / 2;
330
+ }
331
+
332
+ return replace.replaceElement(element, newElement, { ...hints, targetElement });
333
+ }
334
+
335
+ this.replaceElement = replaceElement;
336
+ }
337
+
338
+ BpmnReplace.$inject = [
339
+ 'bpmnFactory',
340
+ 'elementFactory',
341
+ 'moddleCopy',
342
+ 'modeling',
343
+ 'replace',
344
+ 'rules'
345
+ ];
346
+
347
+ /**
348
+ * @param {ModdleElement} businessObject
349
+ *
350
+ * @return {boolean}
351
+ */
352
+ function isSubProcess(businessObject) {
353
+ return is(businessObject, 'bpmn:SubProcess');
354
+ }
355
+
356
+ /**
357
+ * @param {Element|ModdleElement} element
358
+ * @param {string} type
359
+ *
360
+ * @return {boolean}
361
+ */
362
+ function hasEventDefinition(element, type) {
363
+ var businessObject = getBusinessObject(element);
364
+
365
+ return type && businessObject.get('eventDefinitions').some(function(definition) {
366
+ return is(definition, type);
367
+ });
368
+ }
369
+
370
+ /**
371
+ * Compute intersection between two arrays.
372
+ *
373
+ * @param {Array} a
374
+ * @param {Array} b
375
+ *
376
+ * @return {Array}
377
+ */
378
+ function intersection(a, b) {
379
+ return a.filter(function(item) {
380
+ return b.includes(item);
381
+ });
382
+ }