bpmn-js 18.7.0 → 18.8.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 (340) 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 +39037 -39033
  5. package/dist/bpmn-modeler.production.min.js +2 -2
  6. package/dist/bpmn-navigated-viewer.development.js +20869 -20869
  7. package/dist/bpmn-navigated-viewer.production.min.js +1 -1
  8. package/dist/bpmn-viewer.development.js +20807 -20807
  9. package/dist/bpmn-viewer.production.min.js +1 -1
  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 +206 -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 +2412 -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 -286
  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/modeling/BpmnFactory.d.ts +73 -73
  120. package/lib/features/modeling/BpmnFactory.js +180 -180
  121. package/lib/features/modeling/BpmnLayouter.d.ts +30 -30
  122. package/lib/features/modeling/BpmnLayouter.js +488 -488
  123. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  124. package/lib/features/modeling/BpmnUpdater.js +818 -818
  125. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  126. package/lib/features/modeling/ElementFactory.js +412 -412
  127. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  128. package/lib/features/modeling/Modeling.d.ts +150 -150
  129. package/lib/features/modeling/Modeling.js +309 -309
  130. package/lib/features/modeling/Modeling.test.ts +147 -147
  131. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +19 -19
  132. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +288 -288
  133. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  134. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  135. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  136. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  137. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  138. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  139. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  140. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  141. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  142. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  143. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  144. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  145. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +46 -43
  146. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  147. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  148. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  149. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  150. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  151. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  152. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  153. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  154. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  155. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  156. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  157. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  158. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  159. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  160. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  161. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  162. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  163. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  164. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  165. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  166. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  167. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  168. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  169. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  170. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  171. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  172. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  173. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  174. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  175. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  176. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  177. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +59 -59
  178. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  179. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  180. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  181. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  182. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +64 -64
  183. package/lib/features/modeling/behavior/ResizeBehavior.js +265 -265
  184. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  185. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  186. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  187. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.d.ts +16 -16
  188. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.js +66 -66
  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 +56 -56
  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 +85 -85
  208. package/lib/features/modeling/behavior/index.js +131 -131
  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 +187 -187
  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 +39 -39
  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 +23 -23
  248. package/lib/features/modeling/util/ModelingUtil.js +88 -88
  249. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  250. package/lib/features/modeling-feedback/ModelingFeedback.js +51 -51
  251. package/lib/features/modeling-feedback/index.d.ts +9 -9
  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 +39 -39
  258. package/lib/features/outline/OutlineProvider.js +189 -189
  259. package/lib/features/outline/OutlineUtil.d.ts +23 -23
  260. package/lib/features/outline/OutlineUtil.js +35 -35
  261. package/lib/features/outline/index.d.ts +10 -10
  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 +22 -22
  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 +656 -656
  269. package/lib/features/popup-menu/index.d.ts +13 -13
  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 +45 -45
  276. package/lib/features/replace/BpmnReplace.js +391 -391
  277. package/lib/features/replace/ReplaceOptions.d.ts +85 -85
  278. package/lib/features/replace/ReplaceOptions.js +1198 -1198
  279. package/lib/features/replace/index.d.ts +16 -16
  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 +9 -9
  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 +9 -9
  288. package/lib/features/rules/index.js +11 -11
  289. package/lib/features/search/BpmnSearchProvider.d.ts +34 -34
  290. package/lib/features/search/BpmnSearchProvider.js +91 -91
  291. package/lib/features/search/index.d.ts +11 -11
  292. package/lib/features/search/index.js +14 -14
  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 +13 -13
  298. package/lib/features/snapping/index.js +12 -12
  299. package/lib/features/space-tool/BpmnSpaceTool.d.ts +24 -24
  300. package/lib/features/space-tool/BpmnSpaceTool.js +96 -96
  301. package/lib/features/space-tool/index.d.ts +9 -9
  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 +452 -452
  307. package/lib/import/Importer.d.ts +25 -25
  308. package/lib/import/Importer.js +222 -222
  309. package/lib/import/Util.d.ts +1 -1
  310. package/lib/import/Util.js +6 -6
  311. package/lib/import/index.d.ts +8 -8
  312. package/lib/import/index.js +9 -9
  313. package/lib/index.d.ts +1 -1
  314. package/lib/index.js +2 -2
  315. package/lib/model/Types.d.ts +25 -25
  316. package/lib/model/Types.ts +40 -40
  317. package/lib/util/CompatibilityUtil.d.ts +8 -8
  318. package/lib/util/CompatibilityUtil.js +29 -29
  319. package/lib/util/DiUtil.d.ts +60 -60
  320. package/lib/util/DiUtil.js +122 -122
  321. package/lib/util/DrilldownUtil.d.ts +39 -39
  322. package/lib/util/DrilldownUtil.js +69 -69
  323. package/lib/util/LabelUtil.d.ts +83 -83
  324. package/lib/util/LabelUtil.js +266 -266
  325. package/lib/util/ModelUtil.d.ts +40 -40
  326. package/lib/util/ModelUtil.js +58 -58
  327. package/lib/util/PoweredByUtil.d.ts +8 -8
  328. package/lib/util/PoweredByUtil.js +99 -99
  329. package/lib/util/Types.js +4 -4
  330. package/lib/util/Types.ts +3 -3
  331. package/package.json +131 -131
  332. package/test/helper/TranslationCollector.js +15 -15
  333. package/test/helper/index.js +313 -313
  334. package/test/matchers/BoundsMatchers.js +252 -252
  335. package/test/matchers/ConnectionMatchers.js +165 -165
  336. package/test/matchers/JSONMatcher.js +19 -19
  337. package/test/util/KeyEvents.js +22 -22
  338. package/test/util/MockEvents.js +61 -61
  339. package/test/util/custom-rules/CustomRules.js +16 -16
  340. package/test/util/custom-rules/index.js +6 -6
@@ -1,391 +1,391 @@
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
- getDi,
14
- getBusinessObject
15
- } from '../../util/ModelUtil';
16
-
17
- import {
18
- isAny
19
- } from '../modeling/util/ModelingUtil';
20
-
21
- import {
22
- isExpanded,
23
- isEventSubProcess,
24
- isHorizontal
25
- } from '../../util/DiUtil';
26
-
27
- import { getPropertyNames } from '../copy-paste/ModdleCopy';
28
-
29
- /**
30
- * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory
31
- * @typedef {import('../modeling/ElementFactory').default} ElementFactory
32
- * @typedef {import('../copy-paste/ModdleCopy').default} ModdleCopy
33
- * @typedef {import('../modeling/Modeling').default} Modeling
34
- * @typedef {import('diagram-js/lib/features/replace/Replace').default} Replace
35
- * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
36
- *
37
- * @typedef {import('../../model/Types').Element} Element
38
- * @typedef {import('../../model/Types').Shape} Shape
39
- * @typedef {import('../../model/Types').ModdleElement} ModdleElement
40
- *
41
- * @typedef { {
42
- * type: string;
43
- * cancelActivity: boolean;
44
- * instantiate: boolean;
45
- * eventGatewayType: string;
46
- * triggeredByEvent: boolean;
47
- * isInterrupting: boolean;
48
- * collapsed: boolean;
49
- * isExpanded: boolean;
50
- * eventDefinitionType: string;
51
- * eventDefinitionAttrs: Object;
52
- * host: Shape;
53
- * } } TargetElement
54
- *
55
- * @typedef { {
56
- * moveChildren: boolean;
57
- * } & Record<string, any> } Hints
58
- */
59
-
60
- function copyProperties(source, target, properties) {
61
- if (!isArray(properties)) {
62
- properties = [ properties ];
63
- }
64
-
65
- forEach(properties, function(property) {
66
- if (!isUndefined(source[property])) {
67
- target[property] = source[property];
68
- }
69
- });
70
- }
71
-
72
-
73
- var CUSTOM_PROPERTIES = [
74
- 'cancelActivity',
75
- 'instantiate',
76
- 'eventGatewayType',
77
- 'triggeredByEvent',
78
- 'isInterrupting'
79
- ];
80
-
81
- /**
82
- * Check if element should be collapsed or expanded.
83
- */
84
- function shouldToggleCollapsed(element, targetElement) {
85
-
86
- var oldCollapsed = (
87
- element && has(element, 'collapsed') ? element.collapsed : !isExpanded(element)
88
- );
89
-
90
- var targetCollapsed;
91
-
92
- if (targetElement && (has(targetElement, 'collapsed') || has(targetElement, 'isExpanded'))) {
93
-
94
- // property is explicitly set so use it
95
- targetCollapsed = (
96
- has(targetElement, 'collapsed') ? targetElement.collapsed : !targetElement.isExpanded
97
- );
98
- } else {
99
-
100
- // keep old state
101
- targetCollapsed = oldCollapsed;
102
- }
103
-
104
- if (oldCollapsed !== targetCollapsed) {
105
- return true;
106
- }
107
-
108
- return false;
109
- }
110
-
111
-
112
- /**
113
- * BPMN-specific replace.
114
- *
115
- * @param {BpmnFactory} bpmnFactory
116
- * @param {ElementFactory} elementFactory
117
- * @param {ModdleCopy} moddleCopy
118
- * @param {Modeling} modeling
119
- * @param {Replace} replace
120
- * @param {Rules} rules
121
- */
122
- export default function BpmnReplace(
123
- bpmnFactory,
124
- elementFactory,
125
- moddleCopy,
126
- modeling,
127
- replace,
128
- rules
129
- ) {
130
-
131
- /**
132
- * Prepares a new business object for the replacement element
133
- * and triggers the replace operation.
134
- *
135
- * @param {Element} element
136
- * @param {TargetElement} targetElement
137
- * @param {Hints} [hints]
138
- *
139
- * @return {Element}
140
- */
141
- function replaceElement(element, targetElement, hints) {
142
-
143
- hints = hints || {};
144
-
145
- var type = targetElement.type,
146
- oldBusinessObject = element.businessObject;
147
-
148
- if (isSubProcess(oldBusinessObject) && (type === 'bpmn:SubProcess' || type === 'bpmn:AdHocSubProcess')) {
149
- if (shouldToggleCollapsed(element, targetElement)) {
150
-
151
- // expanding or collapsing process
152
- modeling.toggleCollapse(element);
153
-
154
- return element;
155
- }
156
- }
157
-
158
- var newBusinessObject = bpmnFactory.create(type);
159
-
160
- var newElement = {
161
- type: type,
162
- businessObject: newBusinessObject,
163
- };
164
-
165
- newElement.di = {};
166
-
167
- if (type === 'bpmn:ExclusiveGateway') {
168
- newElement.di.isMarkerVisible = true;
169
- }
170
-
171
- // colors will be set to DI
172
- copyProperties(element.di, newElement.di, [
173
- 'fill',
174
- 'stroke',
175
- 'background-color',
176
- 'border-color',
177
- 'color'
178
- ]);
179
-
180
- var elementProps = getPropertyNames(oldBusinessObject.$descriptor),
181
- newElementProps = getPropertyNames(newBusinessObject.$descriptor, true),
182
- copyProps = intersection(elementProps, newElementProps);
183
-
184
- // initialize special properties defined in target definition
185
- assign(newBusinessObject, pick(targetElement, CUSTOM_PROPERTIES));
186
-
187
- var properties = filter(copyProps, function(propertyName) {
188
-
189
- // copying event definitions, unless we replace
190
- if (propertyName === 'eventDefinitions') {
191
- return hasEventDefinition(element, targetElement.eventDefinitionType);
192
- }
193
-
194
- // retain loop characteristics if the target element
195
- // is not an event sub process
196
- if (propertyName === 'loopCharacteristics') {
197
- return !isEventSubProcess(newBusinessObject);
198
- }
199
-
200
- // so the applied properties from 'target' don't get lost
201
- if (has(newBusinessObject, propertyName)) {
202
- return false;
203
- }
204
-
205
- if (propertyName === 'processRef' && targetElement.isExpanded === false) {
206
- return false;
207
- }
208
-
209
- if (propertyName === 'triggeredByEvent') {
210
- return false;
211
- }
212
-
213
- if (propertyName === 'isForCompensation') {
214
- return !isEventSubProcess(newBusinessObject);
215
- }
216
-
217
- return true;
218
- });
219
-
220
- newBusinessObject = moddleCopy.copyElement(
221
- oldBusinessObject,
222
- newBusinessObject,
223
- properties
224
- );
225
-
226
- // initialize custom BPMN extensions
227
- if (targetElement.eventDefinitionType) {
228
-
229
- // only initialize with new eventDefinition
230
- // if we did not set an event definition yet,
231
- // i.e. because we copied it
232
- if (!hasEventDefinition(newBusinessObject, targetElement.eventDefinitionType)) {
233
- newElement.eventDefinitionType = targetElement.eventDefinitionType;
234
- newElement.eventDefinitionAttrs = targetElement.eventDefinitionAttrs;
235
- }
236
- }
237
-
238
- if (is(oldBusinessObject, 'bpmn:Activity')) {
239
-
240
- if (isSubProcess(oldBusinessObject)) {
241
-
242
- // no toggeling, so keep old state
243
- newElement.isExpanded = isExpanded(element);
244
- }
245
-
246
- // else if property is explicitly set, use it
247
- else if (targetElement && has(targetElement, 'isExpanded')) {
248
- newElement.isExpanded = targetElement.isExpanded;
249
-
250
- // assign default size of new expanded element
251
- var defaultSize = elementFactory.getDefaultSize(newBusinessObject, {
252
- isExpanded: newElement.isExpanded
253
- });
254
-
255
- newElement.width = defaultSize.width;
256
- newElement.height = defaultSize.height;
257
-
258
- // keep element centered
259
- newElement.x = element.x - (newElement.width - element.width) / 2;
260
- newElement.y = element.y - (newElement.height - element.height) / 2;
261
- }
262
-
263
- // TODO: need also to respect min/max Size
264
- // copy size, from an expanded subprocess to an expanded alternative subprocess
265
- // except bpmn:Task, because Task is always expanded
266
- if ((isExpanded(element) && !is(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {
267
- newElement.width = element.width;
268
- newElement.height = element.height;
269
- }
270
- }
271
-
272
- // remove children if not expanding sub process
273
- if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {
274
- hints.moveChildren = false;
275
- }
276
-
277
- // transform collapsed/expanded pools
278
- if (is(oldBusinessObject, 'bpmn:Participant')) {
279
-
280
- // create expanded pool
281
- if (targetElement.isExpanded === true) {
282
- newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');
283
- } else {
284
-
285
- // remove children when transforming to collapsed pool
286
- hints.moveChildren = false;
287
- }
288
-
289
- // apply same directionality
290
- var isHorizontalPool = isHorizontal(element);
291
- if (!getDi(element).isHorizontal) {
292
- getDi(newElement).isHorizontal = isHorizontalPool;
293
- }
294
-
295
- // keep the existing size of the pool's direction to
296
- // prevent dangling message flows
297
- newElement.width = isHorizontalPool ? element.width : elementFactory.getDefaultSize(newElement).width;
298
- newElement.height = isHorizontalPool ? elementFactory.getDefaultSize(newElement).height : element.height;
299
- }
300
-
301
- if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {
302
- newElement.height = elementFactory.getDefaultSize(newElement).height;
303
- newElement.width = elementFactory.getDefaultSize(newElement).width;
304
- }
305
-
306
- newBusinessObject.name = oldBusinessObject.name;
307
-
308
- // retain default flow's reference between inclusive <-> exclusive gateways and activities
309
- if (
310
- isAny(oldBusinessObject, [
311
- 'bpmn:ExclusiveGateway',
312
- 'bpmn:InclusiveGateway',
313
- 'bpmn:Activity'
314
- ]) &&
315
- isAny(newBusinessObject, [
316
- 'bpmn:ExclusiveGateway',
317
- 'bpmn:InclusiveGateway',
318
- 'bpmn:Activity'
319
- ])
320
- ) {
321
- newBusinessObject.default = oldBusinessObject.default;
322
- }
323
-
324
- if (
325
- targetElement.host &&
326
- !is(oldBusinessObject, 'bpmn:BoundaryEvent') &&
327
- is(newBusinessObject, 'bpmn:BoundaryEvent')
328
- ) {
329
- newElement.host = targetElement.host;
330
- }
331
-
332
- // The DataStoreReference element is 14px wider than the DataObjectReference element
333
- // This ensures that they stay centered on the x axis when replaced
334
- if (
335
- newElement.type === 'bpmn:DataStoreReference' ||
336
- newElement.type === 'bpmn:DataObjectReference'
337
- ) {
338
- newElement.x = element.x + (element.width - newElement.width) / 2;
339
- }
340
-
341
- return replace.replaceElement(element, newElement, { ...hints, targetElement });
342
- }
343
-
344
- this.replaceElement = replaceElement;
345
- }
346
-
347
- BpmnReplace.$inject = [
348
- 'bpmnFactory',
349
- 'elementFactory',
350
- 'moddleCopy',
351
- 'modeling',
352
- 'replace',
353
- 'rules'
354
- ];
355
-
356
- /**
357
- * @param {ModdleElement} businessObject
358
- *
359
- * @return {boolean}
360
- */
361
- function isSubProcess(businessObject) {
362
- return is(businessObject, 'bpmn:SubProcess');
363
- }
364
-
365
- /**
366
- * @param {Element|ModdleElement} element
367
- * @param {string} type
368
- *
369
- * @return {boolean}
370
- */
371
- function hasEventDefinition(element, type) {
372
- var businessObject = getBusinessObject(element);
373
-
374
- return type && businessObject.get('eventDefinitions').some(function(definition) {
375
- return is(definition, type);
376
- });
377
- }
378
-
379
- /**
380
- * Compute intersection between two arrays.
381
- *
382
- * @param {Array} a
383
- * @param {Array} b
384
- *
385
- * @return {Array}
386
- */
387
- function intersection(a, b) {
388
- return a.filter(function(item) {
389
- return b.includes(item);
390
- });
391
- }
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
+ getDi,
14
+ getBusinessObject
15
+ } from '../../util/ModelUtil';
16
+
17
+ import {
18
+ isAny
19
+ } from '../modeling/util/ModelingUtil';
20
+
21
+ import {
22
+ isExpanded,
23
+ isEventSubProcess,
24
+ isHorizontal
25
+ } from '../../util/DiUtil';
26
+
27
+ import { getPropertyNames } from '../copy-paste/ModdleCopy';
28
+
29
+ /**
30
+ * @typedef {import('../modeling/BpmnFactory').default} BpmnFactory
31
+ * @typedef {import('../modeling/ElementFactory').default} ElementFactory
32
+ * @typedef {import('../copy-paste/ModdleCopy').default} ModdleCopy
33
+ * @typedef {import('../modeling/Modeling').default} Modeling
34
+ * @typedef {import('diagram-js/lib/features/replace/Replace').default} Replace
35
+ * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
36
+ *
37
+ * @typedef {import('../../model/Types').Element} Element
38
+ * @typedef {import('../../model/Types').Shape} Shape
39
+ * @typedef {import('../../model/Types').ModdleElement} ModdleElement
40
+ *
41
+ * @typedef { {
42
+ * type: string;
43
+ * cancelActivity: boolean;
44
+ * instantiate: boolean;
45
+ * eventGatewayType: string;
46
+ * triggeredByEvent: boolean;
47
+ * isInterrupting: boolean;
48
+ * collapsed: boolean;
49
+ * isExpanded: boolean;
50
+ * eventDefinitionType: string;
51
+ * eventDefinitionAttrs: Object;
52
+ * host: Shape;
53
+ * } } TargetElement
54
+ *
55
+ * @typedef { {
56
+ * moveChildren: boolean;
57
+ * } & Record<string, any> } Hints
58
+ */
59
+
60
+ function copyProperties(source, target, properties) {
61
+ if (!isArray(properties)) {
62
+ properties = [ properties ];
63
+ }
64
+
65
+ forEach(properties, function(property) {
66
+ if (!isUndefined(source[property])) {
67
+ target[property] = source[property];
68
+ }
69
+ });
70
+ }
71
+
72
+
73
+ var CUSTOM_PROPERTIES = [
74
+ 'cancelActivity',
75
+ 'instantiate',
76
+ 'eventGatewayType',
77
+ 'triggeredByEvent',
78
+ 'isInterrupting'
79
+ ];
80
+
81
+ /**
82
+ * Check if element should be collapsed or expanded.
83
+ */
84
+ function shouldToggleCollapsed(element, targetElement) {
85
+
86
+ var oldCollapsed = (
87
+ element && has(element, 'collapsed') ? element.collapsed : !isExpanded(element)
88
+ );
89
+
90
+ var targetCollapsed;
91
+
92
+ if (targetElement && (has(targetElement, 'collapsed') || has(targetElement, 'isExpanded'))) {
93
+
94
+ // property is explicitly set so use it
95
+ targetCollapsed = (
96
+ has(targetElement, 'collapsed') ? targetElement.collapsed : !targetElement.isExpanded
97
+ );
98
+ } else {
99
+
100
+ // keep old state
101
+ targetCollapsed = oldCollapsed;
102
+ }
103
+
104
+ if (oldCollapsed !== targetCollapsed) {
105
+ return true;
106
+ }
107
+
108
+ return false;
109
+ }
110
+
111
+
112
+ /**
113
+ * BPMN-specific replace.
114
+ *
115
+ * @param {BpmnFactory} bpmnFactory
116
+ * @param {ElementFactory} elementFactory
117
+ * @param {ModdleCopy} moddleCopy
118
+ * @param {Modeling} modeling
119
+ * @param {Replace} replace
120
+ * @param {Rules} rules
121
+ */
122
+ export default function BpmnReplace(
123
+ bpmnFactory,
124
+ elementFactory,
125
+ moddleCopy,
126
+ modeling,
127
+ replace,
128
+ rules
129
+ ) {
130
+
131
+ /**
132
+ * Prepares a new business object for the replacement element
133
+ * and triggers the replace operation.
134
+ *
135
+ * @param {Element} element
136
+ * @param {TargetElement} targetElement
137
+ * @param {Hints} [hints]
138
+ *
139
+ * @return {Element}
140
+ */
141
+ function replaceElement(element, targetElement, hints) {
142
+
143
+ hints = hints || {};
144
+
145
+ var type = targetElement.type,
146
+ oldBusinessObject = element.businessObject;
147
+
148
+ if (isSubProcess(oldBusinessObject) && (type === 'bpmn:SubProcess' || type === 'bpmn:AdHocSubProcess')) {
149
+ if (shouldToggleCollapsed(element, targetElement)) {
150
+
151
+ // expanding or collapsing process
152
+ modeling.toggleCollapse(element);
153
+
154
+ return element;
155
+ }
156
+ }
157
+
158
+ var newBusinessObject = bpmnFactory.create(type);
159
+
160
+ var newElement = {
161
+ type: type,
162
+ businessObject: newBusinessObject,
163
+ };
164
+
165
+ newElement.di = {};
166
+
167
+ if (type === 'bpmn:ExclusiveGateway') {
168
+ newElement.di.isMarkerVisible = true;
169
+ }
170
+
171
+ // colors will be set to DI
172
+ copyProperties(element.di, newElement.di, [
173
+ 'fill',
174
+ 'stroke',
175
+ 'background-color',
176
+ 'border-color',
177
+ 'color'
178
+ ]);
179
+
180
+ var elementProps = getPropertyNames(oldBusinessObject.$descriptor),
181
+ newElementProps = getPropertyNames(newBusinessObject.$descriptor, true),
182
+ copyProps = intersection(elementProps, newElementProps);
183
+
184
+ // initialize special properties defined in target definition
185
+ assign(newBusinessObject, pick(targetElement, CUSTOM_PROPERTIES));
186
+
187
+ var properties = filter(copyProps, function(propertyName) {
188
+
189
+ // copying event definitions, unless we replace
190
+ if (propertyName === 'eventDefinitions') {
191
+ return hasEventDefinition(element, targetElement.eventDefinitionType);
192
+ }
193
+
194
+ // retain loop characteristics if the target element
195
+ // is not an event sub process
196
+ if (propertyName === 'loopCharacteristics') {
197
+ return !isEventSubProcess(newBusinessObject);
198
+ }
199
+
200
+ // so the applied properties from 'target' don't get lost
201
+ if (has(newBusinessObject, propertyName)) {
202
+ return false;
203
+ }
204
+
205
+ if (propertyName === 'processRef' && targetElement.isExpanded === false) {
206
+ return false;
207
+ }
208
+
209
+ if (propertyName === 'triggeredByEvent') {
210
+ return false;
211
+ }
212
+
213
+ if (propertyName === 'isForCompensation') {
214
+ return !isEventSubProcess(newBusinessObject);
215
+ }
216
+
217
+ return true;
218
+ });
219
+
220
+ newBusinessObject = moddleCopy.copyElement(
221
+ oldBusinessObject,
222
+ newBusinessObject,
223
+ properties
224
+ );
225
+
226
+ // initialize custom BPMN extensions
227
+ if (targetElement.eventDefinitionType) {
228
+
229
+ // only initialize with new eventDefinition
230
+ // if we did not set an event definition yet,
231
+ // i.e. because we copied it
232
+ if (!hasEventDefinition(newBusinessObject, targetElement.eventDefinitionType)) {
233
+ newElement.eventDefinitionType = targetElement.eventDefinitionType;
234
+ newElement.eventDefinitionAttrs = targetElement.eventDefinitionAttrs;
235
+ }
236
+ }
237
+
238
+ if (is(oldBusinessObject, 'bpmn:Activity')) {
239
+
240
+ if (isSubProcess(oldBusinessObject)) {
241
+
242
+ // no toggeling, so keep old state
243
+ newElement.isExpanded = isExpanded(element);
244
+ }
245
+
246
+ // else if property is explicitly set, use it
247
+ else if (targetElement && has(targetElement, 'isExpanded')) {
248
+ newElement.isExpanded = targetElement.isExpanded;
249
+
250
+ // assign default size of new expanded element
251
+ var defaultSize = elementFactory.getDefaultSize(newBusinessObject, {
252
+ isExpanded: newElement.isExpanded
253
+ });
254
+
255
+ newElement.width = defaultSize.width;
256
+ newElement.height = defaultSize.height;
257
+
258
+ // keep element centered
259
+ newElement.x = element.x - (newElement.width - element.width) / 2;
260
+ newElement.y = element.y - (newElement.height - element.height) / 2;
261
+ }
262
+
263
+ // TODO: need also to respect min/max Size
264
+ // copy size, from an expanded subprocess to an expanded alternative subprocess
265
+ // except bpmn:Task, because Task is always expanded
266
+ if ((isExpanded(element) && !is(oldBusinessObject, 'bpmn:Task')) && newElement.isExpanded) {
267
+ newElement.width = element.width;
268
+ newElement.height = element.height;
269
+ }
270
+ }
271
+
272
+ // remove children if not expanding sub process
273
+ if (isSubProcess(oldBusinessObject) && !isSubProcess(newBusinessObject)) {
274
+ hints.moveChildren = false;
275
+ }
276
+
277
+ // transform collapsed/expanded pools
278
+ if (is(oldBusinessObject, 'bpmn:Participant')) {
279
+
280
+ // create expanded pool
281
+ if (targetElement.isExpanded === true) {
282
+ newBusinessObject.processRef = bpmnFactory.create('bpmn:Process');
283
+ } else {
284
+
285
+ // remove children when transforming to collapsed pool
286
+ hints.moveChildren = false;
287
+ }
288
+
289
+ // apply same directionality
290
+ var isHorizontalPool = isHorizontal(element);
291
+ if (!getDi(element).isHorizontal) {
292
+ getDi(newElement).isHorizontal = isHorizontalPool;
293
+ }
294
+
295
+ // keep the existing size of the pool's direction to
296
+ // prevent dangling message flows
297
+ newElement.width = isHorizontalPool ? element.width : elementFactory.getDefaultSize(newElement).width;
298
+ newElement.height = isHorizontalPool ? elementFactory.getDefaultSize(newElement).height : element.height;
299
+ }
300
+
301
+ if (!rules.allowed('shape.resize', { shape: newBusinessObject })) {
302
+ newElement.height = elementFactory.getDefaultSize(newElement).height;
303
+ newElement.width = elementFactory.getDefaultSize(newElement).width;
304
+ }
305
+
306
+ newBusinessObject.name = oldBusinessObject.name;
307
+
308
+ // retain default flow's reference between inclusive <-> exclusive gateways and activities
309
+ if (
310
+ isAny(oldBusinessObject, [
311
+ 'bpmn:ExclusiveGateway',
312
+ 'bpmn:InclusiveGateway',
313
+ 'bpmn:Activity'
314
+ ]) &&
315
+ isAny(newBusinessObject, [
316
+ 'bpmn:ExclusiveGateway',
317
+ 'bpmn:InclusiveGateway',
318
+ 'bpmn:Activity'
319
+ ])
320
+ ) {
321
+ newBusinessObject.default = oldBusinessObject.default;
322
+ }
323
+
324
+ if (
325
+ targetElement.host &&
326
+ !is(oldBusinessObject, 'bpmn:BoundaryEvent') &&
327
+ is(newBusinessObject, 'bpmn:BoundaryEvent')
328
+ ) {
329
+ newElement.host = targetElement.host;
330
+ }
331
+
332
+ // The DataStoreReference element is 14px wider than the DataObjectReference element
333
+ // This ensures that they stay centered on the x axis when replaced
334
+ if (
335
+ newElement.type === 'bpmn:DataStoreReference' ||
336
+ newElement.type === 'bpmn:DataObjectReference'
337
+ ) {
338
+ newElement.x = element.x + (element.width - newElement.width) / 2;
339
+ }
340
+
341
+ return replace.replaceElement(element, newElement, { ...hints, targetElement });
342
+ }
343
+
344
+ this.replaceElement = replaceElement;
345
+ }
346
+
347
+ BpmnReplace.$inject = [
348
+ 'bpmnFactory',
349
+ 'elementFactory',
350
+ 'moddleCopy',
351
+ 'modeling',
352
+ 'replace',
353
+ 'rules'
354
+ ];
355
+
356
+ /**
357
+ * @param {ModdleElement} businessObject
358
+ *
359
+ * @return {boolean}
360
+ */
361
+ function isSubProcess(businessObject) {
362
+ return is(businessObject, 'bpmn:SubProcess');
363
+ }
364
+
365
+ /**
366
+ * @param {Element|ModdleElement} element
367
+ * @param {string} type
368
+ *
369
+ * @return {boolean}
370
+ */
371
+ function hasEventDefinition(element, type) {
372
+ var businessObject = getBusinessObject(element);
373
+
374
+ return type && businessObject.get('eventDefinitions').some(function(definition) {
375
+ return is(definition, type);
376
+ });
377
+ }
378
+
379
+ /**
380
+ * Compute intersection between two arrays.
381
+ *
382
+ * @param {Array} a
383
+ * @param {Array} b
384
+ *
385
+ * @return {Array}
386
+ */
387
+ function intersection(a, b) {
388
+ return a.filter(function(item) {
389
+ return b.includes(item);
390
+ });
391
+ }