bpmn-js 18.2.0 → 18.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/LICENSE +23 -23
  2. package/README.md +95 -95
  3. package/dist/assets/bpmn-js.css +145 -145
  4. package/dist/bpmn-modeler.development.js +38724 -38473
  5. package/dist/bpmn-modeler.production.min.js +38 -38
  6. package/dist/bpmn-navigated-viewer.development.js +21139 -21139
  7. package/dist/bpmn-navigated-viewer.production.min.js +1 -1
  8. package/dist/bpmn-viewer.development.js +21080 -21080
  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 +2339 -2339
  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 +11 -11
  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 +16 -16
  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 +7 -7
  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 +582 -582
  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/index.d.ts +9 -9
  66. package/lib/features/copy-paste/index.js +13 -13
  67. package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
  68. package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
  69. package/lib/features/di-ordering/index.d.ts +6 -6
  70. package/lib/features/di-ordering/index.js +7 -7
  71. package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
  72. package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
  73. package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
  74. package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
  75. package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
  76. package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
  77. package/lib/features/distribute-elements/index.d.ts +9 -9
  78. package/lib/features/distribute-elements/index.js +19 -19
  79. package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
  80. package/lib/features/drilldown/DrilldownBreadcrumbs.js +138 -138
  81. package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
  82. package/lib/features/drilldown/DrilldownCentering.js +122 -122
  83. package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +20 -20
  84. package/lib/features/drilldown/DrilldownOverlayBehavior.js +218 -218
  85. package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
  86. package/lib/features/drilldown/SubprocessCompatibility.js +266 -266
  87. package/lib/features/drilldown/index.d.ts +13 -13
  88. package/lib/features/drilldown/index.js +16 -16
  89. package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
  90. package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
  91. package/lib/features/editor-actions/index.d.ts +6 -6
  92. package/lib/features/editor-actions/index.js +10 -10
  93. package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
  94. package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +14 -14
  95. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
  96. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
  97. package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
  98. package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
  99. package/lib/features/grid-snapping/index.d.ts +11 -11
  100. package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
  101. package/lib/features/interaction-events/BpmnInteractionEvents.js +146 -146
  102. package/lib/features/interaction-events/index.d.ts +6 -6
  103. package/lib/features/interaction-events/index.js +5 -5
  104. package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
  105. package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
  106. package/lib/features/keyboard/index.d.ts +7 -7
  107. package/lib/features/keyboard/index.js +11 -11
  108. package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
  109. package/lib/features/label-editing/LabelEditingPreview.js +145 -145
  110. package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
  111. package/lib/features/label-editing/LabelEditingProvider.js +519 -519
  112. package/lib/features/label-editing/LabelUtil.d.ts +1 -1
  113. package/lib/features/label-editing/LabelUtil.js +4 -4
  114. package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
  115. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
  116. package/lib/features/label-editing/index.d.ts +9 -9
  117. package/lib/features/label-editing/index.js +21 -21
  118. package/lib/features/modeling/BpmnFactory.d.ts +73 -73
  119. package/lib/features/modeling/BpmnFactory.js +180 -180
  120. package/lib/features/modeling/BpmnLayouter.d.ts +30 -30
  121. package/lib/features/modeling/BpmnLayouter.js +488 -488
  122. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  123. package/lib/features/modeling/BpmnUpdater.js +818 -818
  124. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  125. package/lib/features/modeling/ElementFactory.js +412 -412
  126. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  127. package/lib/features/modeling/Modeling.d.ts +150 -150
  128. package/lib/features/modeling/Modeling.js +309 -309
  129. package/lib/features/modeling/Modeling.test.ts +147 -147
  130. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +19 -19
  131. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +288 -288
  132. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  133. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  134. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  135. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  136. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  137. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  138. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  139. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  140. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  141. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  142. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  143. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  144. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +43 -43
  145. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  146. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  147. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  148. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  149. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  150. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  151. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  152. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  153. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  154. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  155. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  156. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  157. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  158. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  159. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  160. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  161. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  162. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  163. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  164. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  165. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  166. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  167. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  168. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  169. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  170. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  171. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  172. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  173. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  174. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  175. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  176. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +59 -59
  177. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  178. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  179. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  180. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  181. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +64 -64
  182. package/lib/features/modeling/behavior/ResizeBehavior.js +265 -265
  183. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  184. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  185. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  186. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.d.ts +16 -16
  187. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.js +66 -66
  188. package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
  189. package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
  190. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
  191. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
  192. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
  193. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +55 -55
  194. package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
  195. package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
  196. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
  197. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
  198. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
  199. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
  200. package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
  201. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
  202. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
  203. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
  204. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
  205. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
  206. package/lib/features/modeling/behavior/index.d.ts +2 -2
  207. package/lib/features/modeling/behavior/index.js +131 -131
  208. package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
  209. package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
  210. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
  211. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
  212. package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
  213. package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
  214. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
  215. package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
  216. package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
  217. package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
  218. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
  219. package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
  220. package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
  221. package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
  222. package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
  223. package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
  224. package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
  225. package/lib/features/modeling/cmd/AddLaneHandler.js +187 -187
  226. package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
  227. package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
  228. package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
  229. package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
  230. package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
  231. package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
  232. package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
  233. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
  234. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
  235. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
  236. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
  237. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
  238. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
  239. package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
  240. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
  241. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
  242. package/lib/features/modeling/index.d.ts +27 -27
  243. package/lib/features/modeling/index.js +45 -45
  244. package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
  245. package/lib/features/modeling/util/LaneUtil.js +188 -188
  246. package/lib/features/modeling/util/ModelingUtil.d.ts +23 -23
  247. package/lib/features/modeling/util/ModelingUtil.js +88 -88
  248. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  249. package/lib/features/modeling-feedback/ModelingFeedback.js +46 -46
  250. package/lib/features/modeling-feedback/index.d.ts +7 -7
  251. package/lib/features/modeling-feedback/index.js +12 -12
  252. package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
  253. package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
  254. package/lib/features/ordering/index.d.ts +6 -6
  255. package/lib/features/ordering/index.js +5 -5
  256. package/lib/features/outline/OutlineProvider.d.ts +39 -39
  257. package/lib/features/outline/OutlineProvider.js +189 -189
  258. package/lib/features/outline/OutlineUtil.d.ts +23 -23
  259. package/lib/features/outline/OutlineUtil.js +35 -35
  260. package/lib/features/outline/index.d.ts +7 -7
  261. package/lib/features/outline/index.js +10 -10
  262. package/lib/features/palette/PaletteProvider.d.ts +34 -34
  263. package/lib/features/palette/PaletteProvider.js +214 -214
  264. package/lib/features/palette/index.d.ts +9 -9
  265. package/lib/features/palette/index.js +23 -23
  266. package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
  267. package/lib/features/popup-menu/ReplaceMenuProvider.js +656 -629
  268. package/lib/features/popup-menu/index.d.ts +11 -11
  269. package/lib/features/popup-menu/index.js +16 -16
  270. package/lib/features/popup-menu/util/Icons.d.ts +5 -5
  271. package/lib/features/popup-menu/util/Icons.js +14 -14
  272. package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
  273. package/lib/features/popup-menu/util/TypeUtil.js +52 -52
  274. package/lib/features/replace/BpmnReplace.d.ts +45 -45
  275. package/lib/features/replace/BpmnReplace.js +391 -391
  276. package/lib/features/replace/ReplaceOptions.d.ts +85 -79
  277. package/lib/features/replace/ReplaceOptions.js +1198 -998
  278. package/lib/features/replace/index.d.ts +9 -9
  279. package/lib/features/replace/index.js +14 -14
  280. package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
  281. package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
  282. package/lib/features/replace-preview/index.d.ts +7 -7
  283. package/lib/features/replace-preview/index.js +11 -11
  284. package/lib/features/rules/BpmnRules.d.ts +181 -181
  285. package/lib/features/rules/BpmnRules.js +1191 -1191
  286. package/lib/features/rules/index.d.ts +7 -7
  287. package/lib/features/rules/index.js +11 -11
  288. package/lib/features/search/BpmnSearchProvider.d.ts +34 -34
  289. package/lib/features/search/BpmnSearchProvider.js +91 -91
  290. package/lib/features/search/index.d.ts +7 -7
  291. package/lib/features/search/index.js +14 -14
  292. package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
  293. package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
  294. package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
  295. package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
  296. package/lib/features/snapping/index.d.ts +9 -9
  297. package/lib/features/snapping/index.js +12 -12
  298. package/lib/features/space-tool/BpmnSpaceTool.d.ts +24 -21
  299. package/lib/features/space-tool/BpmnSpaceTool.js +96 -69
  300. package/lib/features/space-tool/index.d.ts +6 -6
  301. package/lib/features/space-tool/index.js +7 -7
  302. package/lib/import/BpmnImporter.d.ts +51 -51
  303. package/lib/import/BpmnImporter.js +363 -363
  304. package/lib/import/BpmnTreeWalker.d.ts +20 -20
  305. package/lib/import/BpmnTreeWalker.js +453 -453
  306. package/lib/import/Importer.d.ts +25 -25
  307. package/lib/import/Importer.js +222 -222
  308. package/lib/import/Util.d.ts +1 -1
  309. package/lib/import/Util.js +6 -6
  310. package/lib/import/index.d.ts +6 -6
  311. package/lib/import/index.js +9 -9
  312. package/lib/index.d.ts +1 -1
  313. package/lib/index.js +2 -2
  314. package/lib/model/Types.d.ts +25 -25
  315. package/lib/model/Types.ts +40 -40
  316. package/lib/util/CompatibilityUtil.d.ts +8 -8
  317. package/lib/util/CompatibilityUtil.js +29 -29
  318. package/lib/util/DiUtil.d.ts +60 -60
  319. package/lib/util/DiUtil.js +122 -122
  320. package/lib/util/DrilldownUtil.d.ts +39 -39
  321. package/lib/util/DrilldownUtil.js +69 -69
  322. package/lib/util/LabelUtil.d.ts +83 -83
  323. package/lib/util/LabelUtil.js +266 -266
  324. package/lib/util/ModelUtil.d.ts +40 -40
  325. package/lib/util/ModelUtil.js +58 -58
  326. package/lib/util/PoweredByUtil.d.ts +8 -8
  327. package/lib/util/PoweredByUtil.js +99 -99
  328. package/lib/util/Types.js +4 -4
  329. package/lib/util/Types.ts +3 -3
  330. package/package.json +131 -131
  331. package/test/helper/TranslationCollector.js +15 -15
  332. package/test/helper/index.js +313 -313
  333. package/test/matchers/BoundsMatchers.js +252 -252
  334. package/test/matchers/ConnectionMatchers.js +165 -165
  335. package/test/matchers/JSONMatcher.js +19 -19
  336. package/test/util/KeyEvents.js +22 -22
  337. package/test/util/MockEvents.js +61 -61
  338. package/test/util/custom-rules/CustomRules.js +16 -16
  339. package/test/util/custom-rules/index.js +6 -6
@@ -1,412 +1,412 @@
1
- import {
2
- assign,
3
- forEach,
4
- has,
5
- isDefined,
6
- isObject,
7
- omit
8
- } from 'min-dash';
9
-
10
- import inherits from 'inherits-browser';
11
-
12
- import {
13
- getBusinessObject,
14
- getDi,
15
- is
16
- } from '../../util/ModelUtil';
17
-
18
- import {
19
- isAny
20
- } from '../modeling/util/ModelingUtil';
21
-
22
- import {
23
- isExpanded
24
- } from '../../util/DiUtil';
25
-
26
- import BaseElementFactory from 'diagram-js/lib/core/ElementFactory';
27
-
28
- import {
29
- DEFAULT_LABEL_SIZE
30
- } from '../../util/LabelUtil';
31
-
32
- import {
33
- ensureCompatDiRef
34
- } from '../../util/CompatibilityUtil';
35
-
36
- /**
37
- * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions
38
- *
39
- * @typedef {import('./BpmnFactory').default} BpmnFactory
40
- *
41
- * @typedef {import('../../model/Types').BpmnAttributes} BpmnAttributes
42
- * @typedef {import('../../model/Types').Connection} Connection
43
- * @typedef {import('../../model/Types').Element} Element
44
- * @typedef {import('../../model/Types').Label} Label
45
- * @typedef {import('../../model/Types').Root} Root
46
- * @typedef {import('../../model/Types').Shape} Shape
47
- * @typedef {import('../../model/Types').Moddle} Moddle
48
- * @typedef {import('../../model/Types').ModdleElement} ModdleElement
49
- */
50
-
51
- /**
52
- * A BPMN-specific element factory.
53
- *
54
- * @template {Connection} [T=Connection]
55
- * @template {Label} [U=Label]
56
- * @template {Root} [V=Root]
57
- * @template {Shape} [W=Shape]
58
- *
59
- * @extends {BaseElementFactory<T, U, V, W>}
60
- *
61
- * @param {BpmnFactory} bpmnFactory
62
- * @param {Moddle} moddle
63
- */
64
- export default function ElementFactory(bpmnFactory, moddle) {
65
- BaseElementFactory.call(this);
66
-
67
- this._bpmnFactory = bpmnFactory;
68
- this._moddle = moddle;
69
- }
70
-
71
- inherits(ElementFactory, BaseElementFactory);
72
-
73
- ElementFactory.$inject = [
74
- 'bpmnFactory',
75
- 'moddle'
76
- ];
77
-
78
- ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create;
79
-
80
- /**
81
- * Create a root element.
82
- *
83
- * @overlord
84
- * @param {'root'} elementType
85
- * @param {Partial<Root> & Partial<BpmnAttributes>} [attrs]
86
- * @return {V}
87
- */
88
-
89
- /**
90
- * Create a shape.
91
- *
92
- * @overlord
93
- * @param {'shape'} elementType
94
- * @param {Partial<Shape> & Partial<BpmnAttributes>} [attrs]
95
- * @return {W}
96
- */
97
-
98
- /**
99
- * Create a connection.
100
- *
101
- * @overlord
102
- * @param {'connection'} elementType
103
- * @param {Partial<Connection> & Partial<BpmnAttributes>} [attrs]
104
- * @return {T}
105
- */
106
-
107
- /**
108
- * Create a label.
109
- *
110
- * @param {'label'} elementType
111
- * @param {Partial<Label> & Partial<BpmnAttributes>} [attrs]
112
- * @return {U}
113
- */
114
- ElementFactory.prototype.create = function(elementType, attrs) {
115
-
116
- // no special magic for labels,
117
- // we assume their businessObjects have already been created
118
- // and wired via attrs
119
- if (elementType === 'label') {
120
- var di = attrs.di || this._bpmnFactory.createDiLabel();
121
- return this._baseCreate(elementType, assign({ type: 'label', di: di }, DEFAULT_LABEL_SIZE, attrs));
122
- }
123
-
124
- return this.createElement(elementType, attrs);
125
- };
126
-
127
- /**
128
- * Create a BPMN root element.
129
- *
130
- * @overlord
131
- * @param {'root'} elementType
132
- * @param {Partial<Root> & Partial<BpmnAttributes>} [attrs]
133
- * @return {V}
134
- */
135
-
136
- /**
137
- * Create a BPMN shape.
138
- *
139
- * @overlord
140
- * @param {'shape'} elementType
141
- * @param {Partial<Shape> & Partial<BpmnAttributes>} [attrs]
142
- * @return {W}
143
- */
144
-
145
- /**
146
- * Create a BPMN connection.
147
- *
148
- * @param {'connection'} elementType
149
- * @param {Partial<Connection> & Partial<BpmnAttributes>} [attrs]
150
- * @return {T}
151
- */
152
- ElementFactory.prototype.createElement = function(elementType, attrs) {
153
-
154
- attrs = assign({}, attrs || {});
155
-
156
- var size;
157
-
158
- var businessObject = attrs.businessObject,
159
- di = attrs.di;
160
-
161
- if (!businessObject) {
162
- if (!attrs.type) {
163
- throw new Error('no shape type specified');
164
- }
165
-
166
- businessObject = this._bpmnFactory.create(attrs.type);
167
-
168
- ensureCompatDiRef(businessObject);
169
- }
170
-
171
- if (!isModdleDi(di)) {
172
- var diAttrs = assign(
173
- {},
174
- di || {},
175
- { id: businessObject.id + '_di' }
176
- );
177
-
178
- if (elementType === 'root') {
179
- di = this._bpmnFactory.createDiPlane(businessObject, diAttrs);
180
- } else if (elementType === 'connection') {
181
- di = this._bpmnFactory.createDiEdge(businessObject, diAttrs);
182
- } else {
183
- di = this._bpmnFactory.createDiShape(businessObject, diAttrs);
184
- }
185
- }
186
-
187
- if (is(businessObject, 'bpmn:Group')) {
188
- attrs = assign({
189
- isFrame: true
190
- }, attrs);
191
- }
192
-
193
- attrs = applyAttributes(businessObject, attrs, [
194
- 'processRef',
195
- 'isInterrupting',
196
- 'associationDirection',
197
- 'isForCompensation'
198
- ]);
199
-
200
- if (attrs.isExpanded) {
201
- attrs = applyAttribute(di, attrs, 'isExpanded');
202
- }
203
-
204
- if (isAny(businessObject, [ 'bpmn:Lane', 'bpmn:Participant' ])) {
205
- attrs = applyAttribute(di, attrs, 'isHorizontal');
206
- }
207
-
208
- if (is(businessObject, 'bpmn:SubProcess')) {
209
- attrs.collapsed = !isExpanded(businessObject, di);
210
- }
211
-
212
- if (is(businessObject, 'bpmn:ExclusiveGateway')) {
213
- if (has(di, 'isMarkerVisible')) {
214
- if (di.isMarkerVisible === undefined) {
215
- di.isMarkerVisible = false;
216
- }
217
- } else {
218
- di.isMarkerVisible = true;
219
- }
220
- }
221
-
222
- if (isDefined(attrs.triggeredByEvent)) {
223
- businessObject.triggeredByEvent = attrs.triggeredByEvent;
224
- delete attrs.triggeredByEvent;
225
- }
226
-
227
- if (isDefined(attrs.cancelActivity)) {
228
- businessObject.cancelActivity = attrs.cancelActivity;
229
- delete attrs.cancelActivity;
230
- }
231
-
232
- var eventDefinitions,
233
- newEventDefinition;
234
-
235
- if (attrs.eventDefinitionType) {
236
- eventDefinitions = businessObject.get('eventDefinitions') || [];
237
- newEventDefinition = this._bpmnFactory.create(attrs.eventDefinitionType, attrs.eventDefinitionAttrs);
238
-
239
- if (attrs.eventDefinitionType === 'bpmn:ConditionalEventDefinition') {
240
- newEventDefinition.condition = this._bpmnFactory.create('bpmn:FormalExpression');
241
- }
242
-
243
- eventDefinitions.push(newEventDefinition);
244
-
245
- newEventDefinition.$parent = businessObject;
246
- businessObject.eventDefinitions = eventDefinitions;
247
-
248
- delete attrs.eventDefinitionType;
249
- }
250
-
251
- size = this.getDefaultSize(businessObject, di);
252
-
253
- attrs = assign({
254
- id: businessObject.id
255
- }, size, attrs, {
256
- businessObject: businessObject,
257
- di: di
258
- });
259
-
260
- return this._baseCreate(elementType, attrs);
261
- };
262
-
263
- /**
264
- * Get the default size of a diagram element.
265
- *
266
- * @param {Element} element The element.
267
- * @param {ModdleElement} di The DI.
268
- *
269
- * @return {Dimensions} Default width and height of the element.
270
- */
271
- ElementFactory.prototype.getDefaultSize = function(element, di) {
272
-
273
- var bo = getBusinessObject(element);
274
- di = di || getDi(element);
275
-
276
- if (is(bo, 'bpmn:SubProcess')) {
277
- if (isExpanded(bo, di)) {
278
- return { width: 350, height: 200 };
279
- } else {
280
- return { width: 100, height: 80 };
281
- }
282
- }
283
-
284
- if (is(bo, 'bpmn:Task')) {
285
- return { width: 100, height: 80 };
286
- }
287
-
288
- if (is(bo, 'bpmn:Gateway')) {
289
- return { width: 50, height: 50 };
290
- }
291
-
292
- if (is(bo, 'bpmn:Event')) {
293
- return { width: 36, height: 36 };
294
- }
295
-
296
- if (is(bo, 'bpmn:Participant')) {
297
- var isHorizontalPool = di.isHorizontal === undefined || di.isHorizontal === true;
298
- if (isExpanded(bo, di)) {
299
- if (isHorizontalPool) {
300
- return { width: 600, height: 250 };
301
- }
302
- return { width: 250, height: 600 };
303
- } else {
304
- if (isHorizontalPool) {
305
- return { width: 400, height: 60 };
306
- }
307
- return { width: 60, height: 400 };
308
- }
309
- }
310
-
311
- if (is(bo, 'bpmn:Lane')) {
312
- return { width: 400, height: 100 };
313
- }
314
-
315
- if (is(bo, 'bpmn:DataObjectReference')) {
316
- return { width: 36, height: 50 };
317
- }
318
-
319
- if (is(bo, 'bpmn:DataStoreReference')) {
320
- return { width: 50, height: 50 };
321
- }
322
-
323
- if (is(bo, 'bpmn:TextAnnotation')) {
324
- return { width: 100, height: 30 };
325
- }
326
-
327
- if (is(bo, 'bpmn:Group')) {
328
- return { width: 300, height: 300 };
329
- }
330
-
331
- return { width: 100, height: 80 };
332
- };
333
-
334
-
335
- /**
336
- * Create participant.
337
- *
338
- * @param {boolean|Partial<Shape> & Partial<BpmnAttributes>} [attrs]
339
- * Attributes or whether the participant is expanded.
340
- *
341
- * @return {W} The created participant.
342
- */
343
- ElementFactory.prototype.createParticipantShape = function(attrs) {
344
-
345
- if (!isObject(attrs)) {
346
- attrs = { isExpanded: attrs };
347
- }
348
-
349
- attrs = assign({ type: 'bpmn:Participant' }, attrs || {});
350
-
351
- // participants are expanded by default
352
- if (attrs.isExpanded !== false) {
353
- attrs.processRef = this._bpmnFactory.create('bpmn:Process');
354
- }
355
-
356
- return this.createShape(attrs);
357
- };
358
-
359
-
360
- // helpers //////////////////////
361
-
362
- /**
363
- * Apply attributes from a map to the given element, remove attribute from the
364
- * map on application.
365
- *
366
- * @param {Element} element
367
- * @param {Object} attrs (in/out map of attributes)
368
- * @param {string[]} attributeNames name of attributes to apply
369
- *
370
- * @return {Object} changed attrs
371
- */
372
- function applyAttributes(element, attrs, attributeNames) {
373
-
374
- forEach(attributeNames, function(property) {
375
- attrs = applyAttribute(element, attrs, property);
376
- });
377
-
378
- return attrs;
379
- }
380
-
381
- /**
382
- * Apply named property to element and drain it from the attrs collection.
383
- *
384
- * @param {Element} element
385
- * @param {Object} attrs (in/out map of attributes)
386
- * @param {string} attributeName to apply
387
- *
388
- * @return {Object} changed attrs
389
- */
390
- function applyAttribute(element, attrs, attributeName) {
391
- if (attrs[attributeName] === undefined) {
392
- return attrs;
393
- }
394
-
395
- element[attributeName] = attrs[attributeName];
396
-
397
- return omit(attrs, [ attributeName ]);
398
- }
399
-
400
- /**
401
- * @param {Element} element
402
- *
403
- * @return {boolean}
404
- */
405
- function isModdleDi(element) {
406
- return isAny(element, [
407
- 'bpmndi:BPMNShape',
408
- 'bpmndi:BPMNEdge',
409
- 'bpmndi:BPMNDiagram',
410
- 'bpmndi:BPMNPlane',
411
- ]);
412
- }
1
+ import {
2
+ assign,
3
+ forEach,
4
+ has,
5
+ isDefined,
6
+ isObject,
7
+ omit
8
+ } from 'min-dash';
9
+
10
+ import inherits from 'inherits-browser';
11
+
12
+ import {
13
+ getBusinessObject,
14
+ getDi,
15
+ is
16
+ } from '../../util/ModelUtil';
17
+
18
+ import {
19
+ isAny
20
+ } from '../modeling/util/ModelingUtil';
21
+
22
+ import {
23
+ isExpanded
24
+ } from '../../util/DiUtil';
25
+
26
+ import BaseElementFactory from 'diagram-js/lib/core/ElementFactory';
27
+
28
+ import {
29
+ DEFAULT_LABEL_SIZE
30
+ } from '../../util/LabelUtil';
31
+
32
+ import {
33
+ ensureCompatDiRef
34
+ } from '../../util/CompatibilityUtil';
35
+
36
+ /**
37
+ * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions
38
+ *
39
+ * @typedef {import('./BpmnFactory').default} BpmnFactory
40
+ *
41
+ * @typedef {import('../../model/Types').BpmnAttributes} BpmnAttributes
42
+ * @typedef {import('../../model/Types').Connection} Connection
43
+ * @typedef {import('../../model/Types').Element} Element
44
+ * @typedef {import('../../model/Types').Label} Label
45
+ * @typedef {import('../../model/Types').Root} Root
46
+ * @typedef {import('../../model/Types').Shape} Shape
47
+ * @typedef {import('../../model/Types').Moddle} Moddle
48
+ * @typedef {import('../../model/Types').ModdleElement} ModdleElement
49
+ */
50
+
51
+ /**
52
+ * A BPMN-specific element factory.
53
+ *
54
+ * @template {Connection} [T=Connection]
55
+ * @template {Label} [U=Label]
56
+ * @template {Root} [V=Root]
57
+ * @template {Shape} [W=Shape]
58
+ *
59
+ * @extends {BaseElementFactory<T, U, V, W>}
60
+ *
61
+ * @param {BpmnFactory} bpmnFactory
62
+ * @param {Moddle} moddle
63
+ */
64
+ export default function ElementFactory(bpmnFactory, moddle) {
65
+ BaseElementFactory.call(this);
66
+
67
+ this._bpmnFactory = bpmnFactory;
68
+ this._moddle = moddle;
69
+ }
70
+
71
+ inherits(ElementFactory, BaseElementFactory);
72
+
73
+ ElementFactory.$inject = [
74
+ 'bpmnFactory',
75
+ 'moddle'
76
+ ];
77
+
78
+ ElementFactory.prototype._baseCreate = BaseElementFactory.prototype.create;
79
+
80
+ /**
81
+ * Create a root element.
82
+ *
83
+ * @overlord
84
+ * @param {'root'} elementType
85
+ * @param {Partial<Root> & Partial<BpmnAttributes>} [attrs]
86
+ * @return {V}
87
+ */
88
+
89
+ /**
90
+ * Create a shape.
91
+ *
92
+ * @overlord
93
+ * @param {'shape'} elementType
94
+ * @param {Partial<Shape> & Partial<BpmnAttributes>} [attrs]
95
+ * @return {W}
96
+ */
97
+
98
+ /**
99
+ * Create a connection.
100
+ *
101
+ * @overlord
102
+ * @param {'connection'} elementType
103
+ * @param {Partial<Connection> & Partial<BpmnAttributes>} [attrs]
104
+ * @return {T}
105
+ */
106
+
107
+ /**
108
+ * Create a label.
109
+ *
110
+ * @param {'label'} elementType
111
+ * @param {Partial<Label> & Partial<BpmnAttributes>} [attrs]
112
+ * @return {U}
113
+ */
114
+ ElementFactory.prototype.create = function(elementType, attrs) {
115
+
116
+ // no special magic for labels,
117
+ // we assume their businessObjects have already been created
118
+ // and wired via attrs
119
+ if (elementType === 'label') {
120
+ var di = attrs.di || this._bpmnFactory.createDiLabel();
121
+ return this._baseCreate(elementType, assign({ type: 'label', di: di }, DEFAULT_LABEL_SIZE, attrs));
122
+ }
123
+
124
+ return this.createElement(elementType, attrs);
125
+ };
126
+
127
+ /**
128
+ * Create a BPMN root element.
129
+ *
130
+ * @overlord
131
+ * @param {'root'} elementType
132
+ * @param {Partial<Root> & Partial<BpmnAttributes>} [attrs]
133
+ * @return {V}
134
+ */
135
+
136
+ /**
137
+ * Create a BPMN shape.
138
+ *
139
+ * @overlord
140
+ * @param {'shape'} elementType
141
+ * @param {Partial<Shape> & Partial<BpmnAttributes>} [attrs]
142
+ * @return {W}
143
+ */
144
+
145
+ /**
146
+ * Create a BPMN connection.
147
+ *
148
+ * @param {'connection'} elementType
149
+ * @param {Partial<Connection> & Partial<BpmnAttributes>} [attrs]
150
+ * @return {T}
151
+ */
152
+ ElementFactory.prototype.createElement = function(elementType, attrs) {
153
+
154
+ attrs = assign({}, attrs || {});
155
+
156
+ var size;
157
+
158
+ var businessObject = attrs.businessObject,
159
+ di = attrs.di;
160
+
161
+ if (!businessObject) {
162
+ if (!attrs.type) {
163
+ throw new Error('no shape type specified');
164
+ }
165
+
166
+ businessObject = this._bpmnFactory.create(attrs.type);
167
+
168
+ ensureCompatDiRef(businessObject);
169
+ }
170
+
171
+ if (!isModdleDi(di)) {
172
+ var diAttrs = assign(
173
+ {},
174
+ di || {},
175
+ { id: businessObject.id + '_di' }
176
+ );
177
+
178
+ if (elementType === 'root') {
179
+ di = this._bpmnFactory.createDiPlane(businessObject, diAttrs);
180
+ } else if (elementType === 'connection') {
181
+ di = this._bpmnFactory.createDiEdge(businessObject, diAttrs);
182
+ } else {
183
+ di = this._bpmnFactory.createDiShape(businessObject, diAttrs);
184
+ }
185
+ }
186
+
187
+ if (is(businessObject, 'bpmn:Group')) {
188
+ attrs = assign({
189
+ isFrame: true
190
+ }, attrs);
191
+ }
192
+
193
+ attrs = applyAttributes(businessObject, attrs, [
194
+ 'processRef',
195
+ 'isInterrupting',
196
+ 'associationDirection',
197
+ 'isForCompensation'
198
+ ]);
199
+
200
+ if (attrs.isExpanded) {
201
+ attrs = applyAttribute(di, attrs, 'isExpanded');
202
+ }
203
+
204
+ if (isAny(businessObject, [ 'bpmn:Lane', 'bpmn:Participant' ])) {
205
+ attrs = applyAttribute(di, attrs, 'isHorizontal');
206
+ }
207
+
208
+ if (is(businessObject, 'bpmn:SubProcess')) {
209
+ attrs.collapsed = !isExpanded(businessObject, di);
210
+ }
211
+
212
+ if (is(businessObject, 'bpmn:ExclusiveGateway')) {
213
+ if (has(di, 'isMarkerVisible')) {
214
+ if (di.isMarkerVisible === undefined) {
215
+ di.isMarkerVisible = false;
216
+ }
217
+ } else {
218
+ di.isMarkerVisible = true;
219
+ }
220
+ }
221
+
222
+ if (isDefined(attrs.triggeredByEvent)) {
223
+ businessObject.triggeredByEvent = attrs.triggeredByEvent;
224
+ delete attrs.triggeredByEvent;
225
+ }
226
+
227
+ if (isDefined(attrs.cancelActivity)) {
228
+ businessObject.cancelActivity = attrs.cancelActivity;
229
+ delete attrs.cancelActivity;
230
+ }
231
+
232
+ var eventDefinitions,
233
+ newEventDefinition;
234
+
235
+ if (attrs.eventDefinitionType) {
236
+ eventDefinitions = businessObject.get('eventDefinitions') || [];
237
+ newEventDefinition = this._bpmnFactory.create(attrs.eventDefinitionType, attrs.eventDefinitionAttrs);
238
+
239
+ if (attrs.eventDefinitionType === 'bpmn:ConditionalEventDefinition') {
240
+ newEventDefinition.condition = this._bpmnFactory.create('bpmn:FormalExpression');
241
+ }
242
+
243
+ eventDefinitions.push(newEventDefinition);
244
+
245
+ newEventDefinition.$parent = businessObject;
246
+ businessObject.eventDefinitions = eventDefinitions;
247
+
248
+ delete attrs.eventDefinitionType;
249
+ }
250
+
251
+ size = this.getDefaultSize(businessObject, di);
252
+
253
+ attrs = assign({
254
+ id: businessObject.id
255
+ }, size, attrs, {
256
+ businessObject: businessObject,
257
+ di: di
258
+ });
259
+
260
+ return this._baseCreate(elementType, attrs);
261
+ };
262
+
263
+ /**
264
+ * Get the default size of a diagram element.
265
+ *
266
+ * @param {Element} element The element.
267
+ * @param {ModdleElement} di The DI.
268
+ *
269
+ * @return {Dimensions} Default width and height of the element.
270
+ */
271
+ ElementFactory.prototype.getDefaultSize = function(element, di) {
272
+
273
+ var bo = getBusinessObject(element);
274
+ di = di || getDi(element);
275
+
276
+ if (is(bo, 'bpmn:SubProcess')) {
277
+ if (isExpanded(bo, di)) {
278
+ return { width: 350, height: 200 };
279
+ } else {
280
+ return { width: 100, height: 80 };
281
+ }
282
+ }
283
+
284
+ if (is(bo, 'bpmn:Task')) {
285
+ return { width: 100, height: 80 };
286
+ }
287
+
288
+ if (is(bo, 'bpmn:Gateway')) {
289
+ return { width: 50, height: 50 };
290
+ }
291
+
292
+ if (is(bo, 'bpmn:Event')) {
293
+ return { width: 36, height: 36 };
294
+ }
295
+
296
+ if (is(bo, 'bpmn:Participant')) {
297
+ var isHorizontalPool = di.isHorizontal === undefined || di.isHorizontal === true;
298
+ if (isExpanded(bo, di)) {
299
+ if (isHorizontalPool) {
300
+ return { width: 600, height: 250 };
301
+ }
302
+ return { width: 250, height: 600 };
303
+ } else {
304
+ if (isHorizontalPool) {
305
+ return { width: 400, height: 60 };
306
+ }
307
+ return { width: 60, height: 400 };
308
+ }
309
+ }
310
+
311
+ if (is(bo, 'bpmn:Lane')) {
312
+ return { width: 400, height: 100 };
313
+ }
314
+
315
+ if (is(bo, 'bpmn:DataObjectReference')) {
316
+ return { width: 36, height: 50 };
317
+ }
318
+
319
+ if (is(bo, 'bpmn:DataStoreReference')) {
320
+ return { width: 50, height: 50 };
321
+ }
322
+
323
+ if (is(bo, 'bpmn:TextAnnotation')) {
324
+ return { width: 100, height: 30 };
325
+ }
326
+
327
+ if (is(bo, 'bpmn:Group')) {
328
+ return { width: 300, height: 300 };
329
+ }
330
+
331
+ return { width: 100, height: 80 };
332
+ };
333
+
334
+
335
+ /**
336
+ * Create participant.
337
+ *
338
+ * @param {boolean|Partial<Shape> & Partial<BpmnAttributes>} [attrs]
339
+ * Attributes or whether the participant is expanded.
340
+ *
341
+ * @return {W} The created participant.
342
+ */
343
+ ElementFactory.prototype.createParticipantShape = function(attrs) {
344
+
345
+ if (!isObject(attrs)) {
346
+ attrs = { isExpanded: attrs };
347
+ }
348
+
349
+ attrs = assign({ type: 'bpmn:Participant' }, attrs || {});
350
+
351
+ // participants are expanded by default
352
+ if (attrs.isExpanded !== false) {
353
+ attrs.processRef = this._bpmnFactory.create('bpmn:Process');
354
+ }
355
+
356
+ return this.createShape(attrs);
357
+ };
358
+
359
+
360
+ // helpers //////////////////////
361
+
362
+ /**
363
+ * Apply attributes from a map to the given element, remove attribute from the
364
+ * map on application.
365
+ *
366
+ * @param {Element} element
367
+ * @param {Object} attrs (in/out map of attributes)
368
+ * @param {string[]} attributeNames name of attributes to apply
369
+ *
370
+ * @return {Object} changed attrs
371
+ */
372
+ function applyAttributes(element, attrs, attributeNames) {
373
+
374
+ forEach(attributeNames, function(property) {
375
+ attrs = applyAttribute(element, attrs, property);
376
+ });
377
+
378
+ return attrs;
379
+ }
380
+
381
+ /**
382
+ * Apply named property to element and drain it from the attrs collection.
383
+ *
384
+ * @param {Element} element
385
+ * @param {Object} attrs (in/out map of attributes)
386
+ * @param {string} attributeName to apply
387
+ *
388
+ * @return {Object} changed attrs
389
+ */
390
+ function applyAttribute(element, attrs, attributeName) {
391
+ if (attrs[attributeName] === undefined) {
392
+ return attrs;
393
+ }
394
+
395
+ element[attributeName] = attrs[attributeName];
396
+
397
+ return omit(attrs, [ attributeName ]);
398
+ }
399
+
400
+ /**
401
+ * @param {Element} element
402
+ *
403
+ * @return {boolean}
404
+ */
405
+ function isModdleDi(element) {
406
+ return isAny(element, [
407
+ 'bpmndi:BPMNShape',
408
+ 'bpmndi:BPMNEdge',
409
+ 'bpmndi:BPMNDiagram',
410
+ 'bpmndi:BPMNPlane',
411
+ ]);
412
+ }