bpmn-js 18.8.0 → 18.9.0

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