bpmn-js 17.6.0 → 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 (339) 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/assets/diagram-js.css +966 -969
  5. package/dist/bpmn-modeler.development.js +59330 -59198
  6. package/dist/bpmn-modeler.production.min.js +8 -8
  7. package/dist/bpmn-navigated-viewer.development.js +22449 -22449
  8. package/dist/bpmn-navigated-viewer.production.min.js +1 -1
  9. package/dist/bpmn-viewer.development.js +21433 -21433
  10. package/dist/bpmn-viewer.production.min.js +1 -1
  11. package/index.js +2 -2
  12. package/lib/BaseModeler.d.ts +15 -15
  13. package/lib/BaseModeler.js +79 -79
  14. package/lib/BaseViewer.d.ts +352 -352
  15. package/lib/BaseViewer.js +858 -858
  16. package/lib/Modeler.d.ts +86 -86
  17. package/lib/Modeler.js +204 -204
  18. package/lib/NavigatedViewer.d.ts +11 -11
  19. package/lib/NavigatedViewer.js +37 -37
  20. package/lib/Viewer.d.ts +47 -47
  21. package/lib/Viewer.js +78 -78
  22. package/lib/core/index.d.ts +10 -10
  23. package/lib/core/index.js +8 -8
  24. package/lib/draw/BpmnRenderUtil.d.ts +123 -123
  25. package/lib/draw/BpmnRenderUtil.js +256 -256
  26. package/lib/draw/BpmnRenderer.d.ts +114 -114
  27. package/lib/draw/BpmnRenderer.js +2340 -2340
  28. package/lib/draw/PathMap.d.ts +330 -330
  29. package/lib/draw/PathMap.js +478 -478
  30. package/lib/draw/TextRenderer.d.ts +74 -74
  31. package/lib/draw/TextRenderer.js +136 -136
  32. package/lib/draw/index.d.ts +10 -10
  33. package/lib/draw/index.js +11 -11
  34. package/lib/features/align-elements/AlignElementsContextPadProvider.d.ts +32 -32
  35. package/lib/features/align-elements/AlignElementsContextPadProvider.js +105 -105
  36. package/lib/features/align-elements/AlignElementsIcons.d.ts +10 -10
  37. package/lib/features/align-elements/AlignElementsIcons.js +43 -43
  38. package/lib/features/align-elements/AlignElementsMenuProvider.d.ts +32 -32
  39. package/lib/features/align-elements/AlignElementsMenuProvider.js +100 -100
  40. package/lib/features/align-elements/BpmnAlignElements.d.ts +9 -9
  41. package/lib/features/align-elements/BpmnAlignElements.js +45 -45
  42. package/lib/features/align-elements/index.d.ts +11 -11
  43. package/lib/features/align-elements/index.js +23 -23
  44. package/lib/features/append-preview/AppendPreview.d.ts +36 -36
  45. package/lib/features/append-preview/AppendPreview.js +108 -108
  46. package/lib/features/append-preview/index.d.ts +16 -16
  47. package/lib/features/append-preview/index.js +15 -15
  48. package/lib/features/auto-place/BpmnAutoPlace.d.ts +13 -13
  49. package/lib/features/auto-place/BpmnAutoPlace.js +20 -20
  50. package/lib/features/auto-place/BpmnAutoPlaceUtil.d.ts +47 -47
  51. package/lib/features/auto-place/BpmnAutoPlaceUtil.js +225 -225
  52. package/lib/features/auto-place/index.d.ts +7 -7
  53. package/lib/features/auto-place/index.js +8 -8
  54. package/lib/features/auto-resize/BpmnAutoResize.d.ts +25 -25
  55. package/lib/features/auto-resize/BpmnAutoResize.js +45 -45
  56. package/lib/features/auto-resize/BpmnAutoResizeProvider.d.ts +26 -26
  57. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +69 -69
  58. package/lib/features/auto-resize/index.d.ts +8 -8
  59. package/lib/features/auto-resize/index.js +12 -12
  60. package/lib/features/context-pad/ContextPadProvider.d.ts +73 -73
  61. package/lib/features/context-pad/ContextPadProvider.js +591 -591
  62. package/lib/features/context-pad/index.d.ts +7 -7
  63. package/lib/features/context-pad/index.js +22 -22
  64. package/lib/features/copy-paste/BpmnCopyPaste.d.ts +17 -17
  65. package/lib/features/copy-paste/BpmnCopyPaste.js +192 -192
  66. package/lib/features/copy-paste/ModdleCopy.d.ts +45 -45
  67. package/lib/features/copy-paste/ModdleCopy.js +275 -275
  68. package/lib/features/copy-paste/index.d.ts +9 -9
  69. package/lib/features/copy-paste/index.js +13 -13
  70. package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
  71. package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
  72. package/lib/features/di-ordering/index.d.ts +6 -6
  73. package/lib/features/di-ordering/index.js +7 -7
  74. package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
  75. package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
  76. package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
  77. package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
  78. package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
  79. package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
  80. package/lib/features/distribute-elements/index.d.ts +9 -9
  81. package/lib/features/distribute-elements/index.js +19 -19
  82. package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
  83. package/lib/features/drilldown/DrilldownBreadcrumbs.js +131 -131
  84. package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
  85. package/lib/features/drilldown/DrilldownCentering.js +122 -122
  86. package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +18 -18
  87. package/lib/features/drilldown/DrilldownOverlayBehavior.js +210 -210
  88. package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
  89. package/lib/features/drilldown/SubprocessCompatibility.js +268 -268
  90. package/lib/features/drilldown/index.d.ts +13 -13
  91. package/lib/features/drilldown/index.js +16 -16
  92. package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
  93. package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
  94. package/lib/features/editor-actions/index.d.ts +6 -6
  95. package/lib/features/editor-actions/index.js +10 -10
  96. package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
  97. package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +12 -12
  98. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
  99. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
  100. package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
  101. package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
  102. package/lib/features/grid-snapping/index.d.ts +11 -11
  103. package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
  104. package/lib/features/interaction-events/BpmnInteractionEvents.js +150 -150
  105. package/lib/features/interaction-events/index.d.ts +6 -6
  106. package/lib/features/interaction-events/index.js +5 -5
  107. package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
  108. package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
  109. package/lib/features/keyboard/index.d.ts +7 -7
  110. package/lib/features/keyboard/index.js +11 -11
  111. package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
  112. package/lib/features/label-editing/LabelEditingPreview.js +144 -144
  113. package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
  114. package/lib/features/label-editing/LabelEditingProvider.js +519 -519
  115. package/lib/features/label-editing/LabelUtil.d.ts +1 -1
  116. package/lib/features/label-editing/LabelUtil.js +4 -4
  117. package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
  118. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
  119. package/lib/features/label-editing/index.d.ts +9 -9
  120. package/lib/features/label-editing/index.js +21 -21
  121. package/lib/features/modeling/BpmnFactory.d.ts +73 -73
  122. package/lib/features/modeling/BpmnFactory.js +180 -180
  123. package/lib/features/modeling/BpmnLayouter.d.ts +26 -26
  124. package/lib/features/modeling/BpmnLayouter.js +481 -481
  125. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  126. package/lib/features/modeling/BpmnUpdater.js +837 -837
  127. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  128. package/lib/features/modeling/ElementFactory.js +406 -406
  129. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  130. package/lib/features/modeling/Modeling.d.ts +150 -150
  131. package/lib/features/modeling/Modeling.js +307 -307
  132. package/lib/features/modeling/Modeling.test.ts +147 -147
  133. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +20 -20
  134. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +284 -284
  135. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  136. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  137. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  138. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  139. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  140. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  141. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  142. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  143. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  144. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  145. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  146. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  147. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +43 -43
  148. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  149. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  150. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  151. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  152. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  153. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  154. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  155. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  156. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  157. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  158. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  159. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  160. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  161. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  162. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  163. package/lib/features/modeling/behavior/GroupBehavior.js +332 -332
  164. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  165. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  166. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  167. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  168. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  169. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  170. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  171. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  172. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  173. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  174. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  175. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  176. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  177. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  178. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  179. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  180. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +54 -54
  181. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  182. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  183. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  184. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  185. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +67 -67
  186. package/lib/features/modeling/behavior/ResizeBehavior.js +262 -262
  187. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  188. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  189. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  190. package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
  191. package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
  192. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
  193. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
  194. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
  195. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +55 -55
  196. package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
  197. package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
  198. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
  199. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
  200. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
  201. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
  202. package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
  203. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
  204. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
  205. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
  206. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
  207. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
  208. package/lib/features/modeling/behavior/index.d.ts +2 -2
  209. package/lib/features/modeling/behavior/index.js +128 -128
  210. package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
  211. package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
  212. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
  213. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
  214. package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
  215. package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
  216. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
  217. package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
  218. package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
  219. package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
  220. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
  221. package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
  222. package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
  223. package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
  224. package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
  225. package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
  226. package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
  227. package/lib/features/modeling/cmd/AddLaneHandler.js +192 -192
  228. package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
  229. package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
  230. package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
  231. package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
  232. package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
  233. package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
  234. package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
  235. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
  236. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
  237. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
  238. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
  239. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
  240. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
  241. package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
  242. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
  243. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
  244. package/lib/features/modeling/index.d.ts +27 -27
  245. package/lib/features/modeling/index.js +45 -45
  246. package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
  247. package/lib/features/modeling/util/LaneUtil.js +188 -188
  248. package/lib/features/modeling/util/ModelingUtil.d.ts +21 -21
  249. package/lib/features/modeling/util/ModelingUtil.js +54 -54
  250. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  251. package/lib/features/modeling-feedback/ModelingFeedback.js +46 -46
  252. package/lib/features/modeling-feedback/index.d.ts +7 -7
  253. package/lib/features/modeling-feedback/index.js +12 -12
  254. package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
  255. package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
  256. package/lib/features/ordering/index.d.ts +6 -6
  257. package/lib/features/ordering/index.js +5 -5
  258. package/lib/features/outline/OutlineProvider.d.ts +34 -34
  259. package/lib/features/outline/OutlineProvider.js +179 -179
  260. package/lib/features/outline/OutlineUtil.d.ts +18 -18
  261. package/lib/features/outline/OutlineUtil.js +31 -31
  262. package/lib/features/outline/index.d.ts +7 -7
  263. package/lib/features/outline/index.js +10 -10
  264. package/lib/features/palette/PaletteProvider.d.ts +34 -34
  265. package/lib/features/palette/PaletteProvider.js +214 -214
  266. package/lib/features/palette/index.d.ts +9 -9
  267. package/lib/features/palette/index.js +23 -23
  268. package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
  269. package/lib/features/popup-menu/ReplaceMenuProvider.js +679 -679
  270. package/lib/features/popup-menu/index.d.ts +11 -11
  271. package/lib/features/popup-menu/index.js +16 -16
  272. package/lib/features/popup-menu/util/Icons.d.ts +5 -5
  273. package/lib/features/popup-menu/util/Icons.js +14 -14
  274. package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
  275. package/lib/features/popup-menu/util/TypeUtil.js +52 -52
  276. package/lib/features/replace/BpmnReplace.d.ts +47 -47
  277. package/lib/features/replace/BpmnReplace.js +382 -382
  278. package/lib/features/replace/ReplaceOptions.d.ts +75 -75
  279. package/lib/features/replace/ReplaceOptions.js +919 -919
  280. package/lib/features/replace/index.d.ts +9 -9
  281. package/lib/features/replace/index.js +14 -14
  282. package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
  283. package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
  284. package/lib/features/replace-preview/index.d.ts +7 -7
  285. package/lib/features/replace-preview/index.js +11 -11
  286. package/lib/features/rules/BpmnRules.d.ts +181 -181
  287. package/lib/features/rules/BpmnRules.js +1191 -1191
  288. package/lib/features/rules/index.d.ts +7 -7
  289. package/lib/features/rules/index.js +11 -11
  290. package/lib/features/search/BpmnSearchProvider.d.ts +29 -29
  291. package/lib/features/search/BpmnSearchProvider.js +136 -136
  292. package/lib/features/search/index.d.ts +7 -7
  293. package/lib/features/search/index.js +12 -12
  294. package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
  295. package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
  296. package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
  297. package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
  298. package/lib/features/snapping/index.d.ts +9 -9
  299. package/lib/features/snapping/index.js +12 -12
  300. package/lib/features/space-tool/BpmnSpaceTool.d.ts +21 -21
  301. package/lib/features/space-tool/BpmnSpaceTool.js +69 -69
  302. package/lib/features/space-tool/index.d.ts +6 -6
  303. package/lib/features/space-tool/index.js +7 -7
  304. package/lib/import/BpmnImporter.d.ts +51 -51
  305. package/lib/import/BpmnImporter.js +363 -363
  306. package/lib/import/BpmnTreeWalker.d.ts +20 -20
  307. package/lib/import/BpmnTreeWalker.js +453 -453
  308. package/lib/import/Importer.d.ts +25 -25
  309. package/lib/import/Importer.js +217 -217
  310. package/lib/import/Util.d.ts +1 -1
  311. package/lib/import/Util.js +6 -6
  312. package/lib/import/index.d.ts +6 -6
  313. package/lib/import/index.js +9 -9
  314. package/lib/model/Types.d.ts +25 -25
  315. package/lib/model/Types.ts +40 -40
  316. package/lib/util/CompatibilityUtil.d.ts +8 -8
  317. package/lib/util/CompatibilityUtil.js +29 -29
  318. package/lib/util/DiUtil.d.ts +60 -60
  319. package/lib/util/DiUtil.js +122 -122
  320. package/lib/util/DrilldownUtil.d.ts +39 -39
  321. package/lib/util/DrilldownUtil.js +69 -69
  322. package/lib/util/LabelUtil.d.ts +83 -83
  323. package/lib/util/LabelUtil.js +262 -262
  324. package/lib/util/ModelUtil.d.ts +40 -40
  325. package/lib/util/ModelUtil.js +58 -58
  326. package/lib/util/PoweredByUtil.d.ts +8 -8
  327. package/lib/util/PoweredByUtil.js +99 -99
  328. package/lib/util/Types.js +4 -4
  329. package/lib/util/Types.ts +3 -3
  330. package/package.json +132 -132
  331. package/test/helper/TranslationCollector.js +15 -15
  332. package/test/helper/index.js +313 -313
  333. package/test/matchers/BoundsMatchers.js +252 -252
  334. package/test/matchers/ConnectionMatchers.js +165 -165
  335. package/test/matchers/JSONMatcher.js +19 -19
  336. package/test/util/KeyEvents.js +22 -22
  337. package/test/util/MockEvents.js +61 -61
  338. package/test/util/custom-rules/CustomRules.js +16 -16
  339. 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
+ }