bpmn-js 17.6.0 → 17.6.2

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