bpmn-js 0.20.6 → 0.22.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 (410) hide show
  1. package/.eslintrc +33 -33
  2. package/.npmignore +8 -8
  3. package/.travis.yml +19 -17
  4. package/.wiredeps +88 -88
  5. package/CONTRIBUTING.md +55 -55
  6. package/Gruntfile.js +129 -129
  7. package/LICENSE +22 -22
  8. package/README.md +113 -113
  9. package/assets/bpmn-font/css/bpmn-embedded.css +159 -159
  10. package/assets/bpmn-font/css/bpmn.css +161 -161
  11. package/assets/bpmn-font/font/bpmn.svg +116 -116
  12. package/docs/architecture/overview.svg +48 -48
  13. package/docs/project/COMMIT_MESSAGES.md +82 -82
  14. package/docs/project/SETUP.md +66 -66
  15. package/docs/project/setup-alternative.sh +41 -41
  16. package/docs/project/setup.bat +45 -45
  17. package/docs/project/setup.sh +40 -40
  18. package/docs/translations.json +97 -97
  19. package/lib/Modeler.js +208 -208
  20. package/lib/NavigatedViewer.js +27 -27
  21. package/lib/Viewer.js +503 -503
  22. package/lib/core/index.js +5 -5
  23. package/lib/draw/BpmnRenderer.js +1934 -1934
  24. package/lib/draw/PathMap.js +478 -478
  25. package/lib/draw/index.js +5 -5
  26. package/lib/features/auto-resize/BpmnAutoResize.js +34 -34
  27. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +51 -51
  28. package/lib/features/auto-resize/index.js +5 -5
  29. package/lib/features/context-pad/ContextPadProvider.js +374 -374
  30. package/lib/features/context-pad/index.js +11 -11
  31. package/lib/features/copy-paste/BpmnCopyPaste.js +157 -154
  32. package/lib/features/copy-paste/index.js +7 -7
  33. package/lib/features/distribute-elements/BpmnDistributeElements.js +34 -34
  34. package/lib/features/distribute-elements/index.js +7 -7
  35. package/lib/features/editor-actions/BpmnEditorActions.js +130 -130
  36. package/lib/features/editor-actions/index.js +15 -15
  37. package/lib/features/global-connect/BpmnGlobalConnect.js +49 -49
  38. package/lib/features/global-connect/index.js +7 -7
  39. package/lib/features/keyboard/BpmnKeyBindings.js +72 -72
  40. package/lib/features/keyboard/index.js +7 -7
  41. package/lib/features/label-editing/LabelEditingPreview.js +122 -0
  42. package/lib/features/label-editing/LabelEditingProvider.js +292 -193
  43. package/lib/features/label-editing/LabelUtil.js +43 -43
  44. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +116 -112
  45. package/lib/features/label-editing/index.js +14 -9
  46. package/lib/features/modeling/BpmnFactory.js +97 -97
  47. package/lib/features/modeling/BpmnLayouter.js +191 -191
  48. package/lib/features/modeling/BpmnUpdater.js +692 -688
  49. package/lib/features/modeling/ElementFactory.js +218 -218
  50. package/lib/features/modeling/Modeling.js +183 -183
  51. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  52. package/lib/features/modeling/behavior/CopyPasteBehavior.js +69 -69
  53. package/lib/features/modeling/behavior/CreateBoundaryEventBehavior.js +51 -51
  54. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +37 -37
  55. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +91 -91
  56. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +151 -151
  57. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +107 -107
  58. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +165 -131
  59. package/lib/features/modeling/behavior/ImportDockingFix.js +80 -80
  60. package/lib/features/modeling/behavior/LabelBehavior.js +222 -222
  61. package/lib/features/modeling/behavior/ModelingFeedback.js +50 -50
  62. package/lib/features/modeling/behavior/RemoveElementBehavior.js +73 -73
  63. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +50 -50
  64. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +128 -128
  65. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +118 -116
  66. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +59 -59
  67. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +138 -138
  68. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +27 -27
  69. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +54 -54
  70. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +156 -156
  71. package/lib/features/modeling/behavior/index.js +44 -44
  72. package/lib/features/modeling/behavior/util/GeometricUtil.js +129 -129
  73. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +218 -218
  74. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +233 -233
  75. package/lib/features/modeling/behavior/util/LineIntersect.js +36 -36
  76. package/lib/features/modeling/cmd/AddLaneHandler.js +83 -83
  77. package/lib/features/modeling/cmd/IdClaimHandler.js +41 -41
  78. package/lib/features/modeling/cmd/ResizeLaneHandler.js +125 -125
  79. package/lib/features/modeling/cmd/SplitLaneHandler.js +82 -82
  80. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +78 -78
  81. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +185 -185
  82. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +264 -264
  83. package/lib/features/modeling/index.js +23 -23
  84. package/lib/features/modeling/util/LaneUtil.js +157 -157
  85. package/lib/features/modeling/util/ModelingUtil.js +48 -48
  86. package/lib/features/ordering/BpmnOrderingProvider.js +147 -147
  87. package/lib/features/ordering/index.js +6 -6
  88. package/lib/features/palette/PaletteProvider.js +158 -158
  89. package/lib/features/palette/index.js +13 -13
  90. package/lib/features/popup-menu/ReplaceMenuProvider.js +479 -479
  91. package/lib/features/popup-menu/index.js +7 -7
  92. package/lib/features/popup-menu/util/TypeUtil.js +41 -41
  93. package/lib/features/replace/BpmnReplace.js +197 -197
  94. package/lib/features/replace/ReplaceOptions.js +787 -787
  95. package/lib/features/replace/index.js +7 -7
  96. package/lib/features/replace-preview/BpmnReplacePreview.js +113 -113
  97. package/lib/features/replace-preview/index.js +5 -5
  98. package/lib/features/rules/BpmnRules.js +807 -806
  99. package/lib/features/rules/index.js +7 -7
  100. package/lib/features/search/BpmnSearchProvider.js +128 -128
  101. package/lib/features/search/index.js +7 -7
  102. package/lib/features/snapping/BpmnSnapping.js +511 -495
  103. package/lib/features/snapping/BpmnSnappingUtil.js +159 -159
  104. package/lib/features/snapping/index.js +3 -3
  105. package/lib/import/BpmnImporter.js +302 -302
  106. package/lib/import/BpmnTreeWalker.js +445 -445
  107. package/lib/import/Importer.js +69 -69
  108. package/lib/import/Util.js +8 -8
  109. package/lib/import/index.js +5 -5
  110. package/lib/util/DiUtil.js +60 -60
  111. package/lib/util/LabelUtil.js +139 -139
  112. package/lib/util/ModelUtil.js +31 -31
  113. package/lib/util/PoweredByUtil.js +82 -82
  114. package/lib/util/model/ModelCloneHelper.js +201 -201
  115. package/lib/util/model/ModelCloneUtils.js +35 -35
  116. package/package.json +22 -22
  117. package/resources/initial.bpmn +12 -12
  118. package/resources/screencast.gif +0 -0
  119. package/tasks/banner.txt +11 -11
  120. package/tasks/bundle.js +162 -162
  121. package/test/TestHelper.js +17 -17
  122. package/test/config/karma.unit.js +46 -46
  123. package/test/config/translation-reporter.js +48 -48
  124. package/test/fixtures/bpmn/align-elements.bpmn +136 -136
  125. package/test/fixtures/bpmn/basic.bpmn +17 -17
  126. package/test/fixtures/bpmn/boundary-events.bpmn +59 -59
  127. package/test/fixtures/bpmn/collaboration/collaboration-empty-participant.bpmn +13 -13
  128. package/test/fixtures/bpmn/collaboration/collaboration-message-flows.bpmn +89 -89
  129. package/test/fixtures/bpmn/collaboration/collaboration-participant.bpmn +59 -59
  130. package/test/fixtures/bpmn/collaboration/process-empty.bpmn +6 -6
  131. package/test/fixtures/bpmn/collaboration/process.bpmn +47 -47
  132. package/test/fixtures/bpmn/collaboration-data-items.bpmn +81 -81
  133. package/test/fixtures/bpmn/collaboration-message-flows.bpmn +82 -82
  134. package/test/fixtures/bpmn/collaboration-sequence-flows.bpmn +83 -83
  135. package/test/fixtures/bpmn/collaboration.bpmn +50 -50
  136. package/test/fixtures/bpmn/complex.bpmn +2151 -2151
  137. package/test/fixtures/bpmn/conditions.bpmn +82 -82
  138. package/test/fixtures/bpmn/containers.bpmn +128 -128
  139. package/test/fixtures/bpmn/distribute-elements-filtering.bpmn +58 -58
  140. package/test/fixtures/bpmn/distribute-elements.bpmn +232 -232
  141. package/test/fixtures/bpmn/draw/activity-markers-combination.bpmn +141 -141
  142. package/test/fixtures/bpmn/draw/activity-markers-simple.bpmn +47 -47
  143. package/test/fixtures/bpmn/draw/activity-markers.bpmn +212 -212
  144. package/test/fixtures/bpmn/draw/associations.bpmn +55 -55
  145. package/test/fixtures/bpmn/draw/boundary-event-with-refnode.bpmn +81 -81
  146. package/test/fixtures/bpmn/draw/boundary-event-without-refnode.bpmn +81 -81
  147. package/test/fixtures/bpmn/draw/boundary-event-z-index.bpmn +82 -82
  148. package/test/fixtures/bpmn/draw/call-activity.bpmn +12 -12
  149. package/test/fixtures/bpmn/draw/colors.bpmn +411 -411
  150. package/test/fixtures/bpmn/draw/conditional-flow-default.bpmn +100 -100
  151. package/test/fixtures/bpmn/draw/conditional-flow-gateways.bpmn +72 -72
  152. package/test/fixtures/bpmn/draw/conditional-flow-typed-task.bpmn +33 -33
  153. package/test/fixtures/bpmn/draw/conditional-flow.bpmn +248 -248
  154. package/test/fixtures/bpmn/draw/data-objects.bpmn +265 -265
  155. package/test/fixtures/bpmn/draw/event-subprocesses-collapsed.bpmn +200 -200
  156. package/test/fixtures/bpmn/draw/event-subprocesses-expanded.bpmn +274 -274
  157. package/test/fixtures/bpmn/draw/events-interrupting.bpmn +370 -370
  158. package/test/fixtures/bpmn/draw/events.bpmn +374 -374
  159. package/test/fixtures/bpmn/draw/gateway-type-default.bpmn +45 -45
  160. package/test/fixtures/bpmn/draw/gateways.bpmn +61 -61
  161. package/test/fixtures/bpmn/draw/group.bpmn +24 -24
  162. package/test/fixtures/bpmn/draw/message-marker.bpmn +112 -112
  163. package/test/fixtures/bpmn/draw/pools-with-collection-marker.bpmn +104 -104
  164. package/test/fixtures/bpmn/draw/pools.bpmn +82 -82
  165. package/test/fixtures/bpmn/draw/task-types.bpmn +77 -77
  166. package/test/fixtures/bpmn/draw/text-annotation.bpmn +71 -71
  167. package/test/fixtures/bpmn/draw/xor.bpmn +45 -45
  168. package/test/fixtures/bpmn/empty-definitions.bpmn +4 -4
  169. package/test/fixtures/bpmn/error/categoryValue.bpmn +26 -26
  170. package/test/fixtures/bpmn/error/di-plane-no-bpmn-element.bpmn +9 -9
  171. package/test/fixtures/bpmn/error/duplicate-ids.bpmn +14 -14
  172. package/test/fixtures/bpmn/error/invalid-child.bpmn +6 -6
  173. package/test/fixtures/bpmn/error/missing-namespace.bpmn +12 -12
  174. package/test/fixtures/bpmn/event-sub-processes.bpmn +47 -47
  175. package/test/fixtures/bpmn/extension/camunda.bpmn +52 -52
  176. package/test/fixtures/bpmn/extension/custom-override.bpmn +53 -53
  177. package/test/fixtures/bpmn/extension/custom.bpmn +53 -53
  178. package/test/fixtures/bpmn/features/copy-paste/basic.bpmn +111 -111
  179. package/test/fixtures/bpmn/features/copy-paste/collaboration-multiple.bpmn +102 -102
  180. package/test/fixtures/bpmn/features/copy-paste/collaboration.bpmn +74 -74
  181. package/test/fixtures/bpmn/features/copy-paste/data-associations.bpmn +61 -61
  182. package/test/fixtures/bpmn/features/copy-paste/properties.bpmn +43 -43
  183. package/test/fixtures/bpmn/features/drop/drop.bpmn +41 -41
  184. package/test/fixtures/bpmn/features/drop/recursive-task.bpmn +37 -37
  185. package/test/fixtures/bpmn/features/label-editing/labels.bpmn +178 -248
  186. package/test/fixtures/bpmn/features/modeling/update-label.bpmn +24 -24
  187. package/test/fixtures/bpmn/features/replace/01_replace.bpmn +193 -193
  188. package/test/fixtures/bpmn/features/replace/association-gateways.bpmn +173 -173
  189. package/test/fixtures/bpmn/features/replace/cancel-events.bpmn +49 -49
  190. package/test/fixtures/bpmn/features/replace/clone-properties.bpmn +141 -141
  191. package/test/fixtures/bpmn/features/replace/connection.bpmn +42 -42
  192. package/test/fixtures/bpmn/features/rules/event-based-gateway-outgoing-edge.bpmn +72 -72
  193. package/test/fixtures/bpmn/features/rules/link-event.bpmn +35 -35
  194. package/test/fixtures/bpmn/features/rules/text-annotation-association.bpmn +30 -30
  195. package/test/fixtures/bpmn/flow-markers.bpmn +212 -212
  196. package/test/fixtures/bpmn/import/boundaryEvent.bpmn +33 -33
  197. package/test/fixtures/bpmn/import/collaboration.bpmn +50 -50
  198. package/test/fixtures/bpmn/import/collapsed/collaboration.bpmn +76 -76
  199. package/test/fixtures/bpmn/import/collapsed/process.bpmn +84 -84
  200. package/test/fixtures/bpmn/import/collapsed/processWithChildren.bpmn +273 -273
  201. package/test/fixtures/bpmn/import/default-attrs.bpmn +24 -24
  202. package/test/fixtures/bpmn/import/error/boundaryEvent-invalidAttachToRef.bpmn +30 -30
  203. package/test/fixtures/bpmn/import/error/boundaryEvent-missingAttachToRef.bpmn +33 -33
  204. package/test/fixtures/bpmn/import/error/dangling-process-message-flow.bpmn +81 -81
  205. package/test/fixtures/bpmn/import/error/invalid-flow-element.bpmn +35 -35
  206. package/test/fixtures/bpmn/import/error/multiple-dis.bpmn +23 -23
  207. package/test/fixtures/bpmn/import/labels/collaboration-message-flows.bpmn +41 -41
  208. package/test/fixtures/bpmn/import/labels/collaboration.bpmn +72 -72
  209. package/test/fixtures/bpmn/import/labels/embedded.bpmn +39 -39
  210. package/test/fixtures/bpmn/import/labels/external-no-di.bpmn +42 -42
  211. package/test/fixtures/bpmn/import/labels/external.bpmn +69 -69
  212. package/test/fixtures/bpmn/import/position/position-testcase.bpmn +57 -57
  213. package/test/fixtures/bpmn/import/process.bpmn +60 -60
  214. package/test/fixtures/bpmn/nested-subprocesses.bpmn +118 -118
  215. package/test/fixtures/bpmn/sequence-flows.bpmn +60 -60
  216. package/test/fixtures/bpmn/simple-cropping.bpmn +84 -84
  217. package/test/fixtures/bpmn/simple-resizable.bpmn +50 -50
  218. package/test/fixtures/bpmn/simple.bpmn +60 -60
  219. package/test/fixtures/json/model/camunda.json +1042 -1042
  220. package/test/fixtures/json/model/custom-override.json +39 -39
  221. package/test/fixtures/json/model/custom.json +39 -39
  222. package/test/helper/TranslationCollector.js +17 -17
  223. package/test/helper/index.js +249 -249
  224. package/test/integration/CustomElementsSpec.js +223 -223
  225. package/test/integration/ReimportSpec.js +89 -89
  226. package/test/integration/SimpleModelingSpec.js +29 -29
  227. package/test/integration/custom-elements/CustomElementFactory.js +77 -77
  228. package/test/integration/custom-elements/CustomRenderer.js +151 -151
  229. package/test/integration/custom-elements/CustomRules.js +148 -148
  230. package/test/integration/custom-elements/CustomUpdater.js +115 -115
  231. package/test/integration/custom-elements/index.js +7 -7
  232. package/test/integration/model/BpmnModdleSpec.js +65 -65
  233. package/test/matchers/JSONMatcher.js +19 -19
  234. package/test/spec/ModelerSpec.js +401 -401
  235. package/test/spec/NavigatedViewerSpec.js +58 -58
  236. package/test/spec/ViewerSpec.js +977 -977
  237. package/test/spec/draw/BpmnRendererSpec.js +311 -311
  238. package/test/spec/environment/MockingSpec.js +53 -53
  239. package/test/spec/features/align-elements/BpmnAlignElementsSpec.js +137 -137
  240. package/test/spec/features/auto-resize/AutoResize.lanes.bpmn +54 -54
  241. package/test/spec/features/auto-resize/AutoResize.multi-selection.bpmn +22 -22
  242. package/test/spec/features/auto-resize/AutoResize.nested-sub-processes.bpmn +47 -47
  243. package/test/spec/features/auto-resize/AutoResize.participant.bpmn +38 -38
  244. package/test/spec/features/auto-resize/AutoResize.space-tool.bpmn +38 -38
  245. package/test/spec/features/auto-resize/AutoResize.sub-processes.bpmn +37 -37
  246. package/test/spec/features/auto-resize/AutoResizeSpec.js +607 -607
  247. package/test/spec/features/context-pad/ContextPad.activation.bpmn +51 -51
  248. package/test/spec/features/context-pad/ContextPadProviderSpec.js +440 -440
  249. package/test/spec/features/copy-paste/BpmnCopyPasteSpec.js +763 -725
  250. package/test/spec/features/copy-paste/DescriptorTree.js +58 -58
  251. package/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js +113 -113
  252. package/test/spec/features/editor-actions/BpmnEditorActionsSpec.js +72 -72
  253. package/test/spec/features/global-connect/BpmnGlobalConnectSpec.js +61 -61
  254. package/test/spec/features/keyboard/BpmnKeyBindingsSpec.js +142 -142
  255. package/test/spec/features/label-editing/LabelEditingPreviewSpec.js +133 -0
  256. package/test/spec/features/label-editing/LabelEditingProviderSpec.js +636 -601
  257. package/test/spec/features/label-editing/TouchIntegrationSpec.js +40 -40
  258. package/test/spec/features/modeling/AppendShapeSpec.js +332 -332
  259. package/test/spec/features/modeling/BendpointsSpec.js +25 -25
  260. package/test/spec/features/modeling/BpmnFactorySpec.js +73 -73
  261. package/test/spec/features/modeling/BpmnUpdater.bpmn +99 -99
  262. package/test/spec/features/modeling/BpmnUpdaterSpec.js +79 -79
  263. package/test/spec/features/modeling/CreateConnectionSpec.js +171 -171
  264. package/test/spec/features/modeling/DeleteConnectionSpec.js +75 -75
  265. package/test/spec/features/modeling/DeleteParticipantSpec.js +97 -97
  266. package/test/spec/features/modeling/DeleteShapeSpec.js +75 -75
  267. package/test/spec/features/modeling/DropSpec.js +123 -123
  268. package/test/spec/features/modeling/IdClaim.bpmn +13 -13
  269. package/test/spec/features/modeling/IdClaimSpec.js +50 -50
  270. package/test/spec/features/modeling/LabelBoundsSpec.js +342 -340
  271. package/test/spec/features/modeling/LabelBoundsSpec.simple.bpmn +27 -27
  272. package/test/spec/features/modeling/LabelLayouting.initial.bpmn +37 -37
  273. package/test/spec/features/modeling/LabelLayouting.move.bpmn +99 -99
  274. package/test/spec/features/modeling/LabelLayouting.special.bpmn +76 -76
  275. package/test/spec/features/modeling/LabelLayoutingSpec.js +603 -603
  276. package/test/spec/features/modeling/MoveConnectionSpec.js +101 -101
  277. package/test/spec/features/modeling/MoveElements.flow-collaboration.bpmn +45 -45
  278. package/test/spec/features/modeling/MoveElementsSpec.js +70 -70
  279. package/test/spec/features/modeling/MoveRulesSpec.js +151 -151
  280. package/test/spec/features/modeling/MoveShapeSpec.js +353 -353
  281. package/test/spec/features/modeling/ResizeShapeSpec.js +73 -73
  282. package/test/spec/features/modeling/SpaceToolSpec.js +251 -251
  283. package/test/spec/features/modeling/UpdateAttachmentSpec.js +96 -96
  284. package/test/spec/features/modeling/UpdateLabelSpec.js +130 -130
  285. package/test/spec/features/modeling/UpdatePropertiesSpec.js +503 -503
  286. package/test/spec/features/modeling/append/TextAnnotationSpec.js +136 -136
  287. package/test/spec/features/modeling/behavior/CompensationAssociationBehavior.bpmn +26 -26
  288. package/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js +43 -43
  289. package/test/spec/features/modeling/behavior/CreateBoundaryEventBehaviorSpec.js +58 -58
  290. package/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js +224 -224
  291. package/test/spec/features/modeling/behavior/DataInputAssociationBehavior.bpmn +33 -33
  292. package/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js +146 -146
  293. package/test/spec/features/modeling/behavior/DataObjectBehavior.create-data-association.bpmn +21 -21
  294. package/test/spec/features/modeling/behavior/DataObjectBehavior.data-object-reference.bpmn +13 -13
  295. package/test/spec/features/modeling/behavior/DataObjectBehavior.remove-data-association.bpmn +41 -41
  296. package/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js +297 -297
  297. package/test/spec/features/modeling/behavior/DataStoreBehavior.bpmn +26 -26
  298. package/test/spec/features/modeling/behavior/DataStoreBehavior.connect.bpmn +57 -57
  299. package/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js +228 -228
  300. package/test/spec/features/modeling/behavior/DropOnFlowBehavior.bpmn +71 -67
  301. package/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js +591 -418
  302. package/test/spec/features/modeling/behavior/ImportDockingFix.bpmn +61 -61
  303. package/test/spec/features/modeling/behavior/ImportDockingFixSpec.js +37 -37
  304. package/test/spec/features/modeling/behavior/LabelBehaviorSpec.js +277 -277
  305. package/test/spec/features/modeling/behavior/ReconnectConnection.data-association.bpmn +41 -41
  306. package/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js +120 -120
  307. package/test/spec/features/modeling/behavior/RemoveElementBehavior.bpmn +181 -181
  308. package/test/spec/features/modeling/behavior/RemoveElementBehavior.perpendicular.bpmn +159 -159
  309. package/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js +251 -251
  310. package/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js +125 -125
  311. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.association.bpmn +26 -26
  312. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.boundary-events.bpmn +40 -40
  313. package/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn +121 -121
  314. package/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js +439 -439
  315. package/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js +450 -450
  316. package/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js +653 -653
  317. package/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.bpmn +48 -48
  318. package/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js +77 -77
  319. package/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js +127 -127
  320. package/test/spec/features/modeling/behavior/util/LabelLayoutUtilSpec.js +75 -75
  321. package/test/spec/features/modeling/behavior/util/LineAttachmentUtilSpec.js +294 -294
  322. package/test/spec/features/modeling/behavior/util/LineIntersectSpec.js +32 -32
  323. package/test/spec/features/modeling/lanes/AddLaneSpec.js +263 -263
  324. package/test/spec/features/modeling/lanes/DeleteLaneSpec.js +126 -126
  325. package/test/spec/features/modeling/lanes/ResizeLaneSpec.js +366 -366
  326. package/test/spec/features/modeling/lanes/SplitLaneSpec.js +216 -216
  327. package/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js +271 -271
  328. package/test/spec/features/modeling/lanes/flowNodeRefs.bpmn +56 -56
  329. package/test/spec/features/modeling/lanes/lanes.bpmn +83 -83
  330. package/test/spec/features/modeling/lanes/participant-lane.bpmn +27 -27
  331. package/test/spec/features/modeling/lanes/participant-no-lane.bpmn +22 -22
  332. package/test/spec/features/modeling/layout/Helper.js +64 -64
  333. package/test/spec/features/modeling/layout/LayoutAssociationSpec.js +101 -101
  334. package/test/spec/features/modeling/layout/LayoutConnectionSpec.js +98 -98
  335. package/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js +98 -98
  336. package/test/spec/features/modeling/layout/LayoutMessageFlowSpec.bpmn +119 -119
  337. package/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js +313 -313
  338. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn +65 -65
  339. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.flowElements.bpmn +70 -70
  340. package/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js +323 -323
  341. package/test/spec/features/ordering/BpmnOrderingProviderSpec.js +231 -231
  342. package/test/spec/features/ordering/Helper.js +185 -185
  343. package/test/spec/features/ordering/ordering-start-event.bpmn +17 -17
  344. package/test/spec/features/ordering/ordering-subprocesses.bpmn +41 -41
  345. package/test/spec/features/ordering/ordering.bpmn +105 -105
  346. package/test/spec/features/palette/PaletteProviderSpec.js +33 -33
  347. package/test/spec/features/popup-menu/ReplaceMenuProvider.collapsedSubProcess.bpmn +13 -13
  348. package/test/spec/features/popup-menu/ReplaceMenuProvider.compensation-activity.bpmn +12 -12
  349. package/test/spec/features/popup-menu/ReplaceMenuProvider.conditionalFlows.bpmn +66 -66
  350. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlows.bpmn +126 -126
  351. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlowsFromComplexGateways.bpmn +48 -48
  352. package/test/spec/features/popup-menu/ReplaceMenuProvider.defaultFlowsFromInclusiveGateways.bpmn +48 -48
  353. package/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js +1957 -1957
  354. package/test/spec/features/replace/BpmnReplace.collaboration.bpmn +70 -70
  355. package/test/spec/features/replace/BpmnReplace.compensation.bpmn +12 -12
  356. package/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn +126 -126
  357. package/test/spec/features/replace/BpmnReplaceSpec.js +1302 -1302
  358. package/test/spec/features/replace/ReplaceRulesSpec.js +78 -78
  359. package/test/spec/features/replace/SubProcess-collapsed.bpmn +36 -36
  360. package/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js +304 -304
  361. package/test/spec/features/rules/BpmnRules.boundaryEvent.bpmn +93 -93
  362. package/test/spec/features/rules/BpmnRules.collaboration-dataAssociation.bpmn +35 -35
  363. package/test/spec/features/rules/BpmnRules.collaboration-lanes.bpmn +79 -79
  364. package/test/spec/features/rules/BpmnRules.collaboration.bpmn +138 -138
  365. package/test/spec/features/rules/BpmnRules.compensation.bpmn +65 -65
  366. package/test/spec/features/rules/BpmnRules.dataAssociation.bpmn +33 -33
  367. package/test/spec/features/rules/BpmnRules.eventBasedGateway.bpmn +82 -82
  368. package/test/spec/features/rules/BpmnRules.messageFlow.bpmn +27 -27
  369. package/test/spec/features/rules/BpmnRules.multiSelectionPools.bpmn +37 -37
  370. package/test/spec/features/rules/BpmnRules.process.bpmn +91 -91
  371. package/test/spec/features/rules/BpmnRules.subProcess-dataAssociation.bpmn +44 -44
  372. package/test/spec/features/rules/BpmnRulesSpec.js +1468 -1424
  373. package/test/spec/features/rules/Helper.js +82 -82
  374. package/test/spec/features/search/BpmnSearchProviderSpec.js +158 -158
  375. package/test/spec/features/search/bpmn-search-collaboration.bpmn +106 -106
  376. package/test/spec/features/search/bpmn-search.bpmn +100 -100
  377. package/test/spec/features/snapping/BpmnSnapping.connect.bpmn +36 -36
  378. package/test/spec/features/snapping/BpmnSnapping.labels.bpmn +27 -27
  379. package/test/spec/features/snapping/BpmnSnapping.lanes-resize.bpmn +43 -43
  380. package/test/spec/features/snapping/BpmnSnapping.participant-resize.bpmn +50 -50
  381. package/test/spec/features/snapping/BpmnSnapping.sequenceFlow.bpmn +41 -0
  382. package/test/spec/features/snapping/BpmnSnapping.subProcess-resize.bpmn +21 -21
  383. package/test/spec/features/snapping/BpmnSnapping.textAnnotation-resize.bpmn +22 -22
  384. package/test/spec/features/snapping/BpmnSnappingSpec.js +824 -758
  385. package/test/spec/features/snapping/BpmnSnappingUtil.lanes-flowNodes.bpmn +82 -82
  386. package/test/spec/features/snapping/BpmnSnappingUtil.lanes.bpmn +35 -35
  387. package/test/spec/features/snapping/BpmnSnappingUtilSpec.js +285 -285
  388. package/test/spec/i18n/custom-translate/custom-translate.js +14 -14
  389. package/test/spec/i18n/custom-translate/index.js +2 -2
  390. package/test/spec/i18n/translateSpec.js +56 -56
  391. package/test/spec/import/ImporterSpec.js +428 -428
  392. package/test/spec/import/ModelWiringSpec.js +194 -194
  393. package/test/spec/import/elements/AssociationSpec.collaboration.bpmn +51 -51
  394. package/test/spec/import/elements/AssociationSpec.compensation.bpmn +28 -28
  395. package/test/spec/import/elements/AssociationSpec.data-association.bpmn +39 -39
  396. package/test/spec/import/elements/AssociationSpec.data-input-output.bpmn +40 -40
  397. package/test/spec/import/elements/AssociationSpec.events.bpmn +51 -51
  398. package/test/spec/import/elements/AssociationSpec.js +175 -175
  399. package/test/spec/import/elements/AssociationSpec.text-annotation.bpmn +37 -37
  400. package/test/spec/import/elements/CollapsedSpec.js +118 -118
  401. package/test/spec/import/elements/LabelSpec.js +85 -85
  402. package/test/spec/import/lane-flowNodes.bpmn +44 -44
  403. package/test/spec/import/lane-missing-flowNodeRef.bpmn +24 -24
  404. package/test/spec/util/ModelCloneHelperSpec.js +381 -381
  405. package/test/spec/util/ModelUtilSpec.js +65 -65
  406. package/test/spec/util/camunda-moddle.js +70 -70
  407. package/test/util/MockEvents.js +62 -62
  408. package/test/util/ModelingUtil.js +117 -117
  409. package/test/util/custom-rules/CustomRules.js +18 -18
  410. package/test/util/custom-rules/index.js +4 -4
@@ -1,98 +1,98 @@
1
- [
2
- "Activate the create/remove space tool",
3
- "Activate the global connect tool",
4
- "Activate the hand tool",
5
- "Activate the lasso tool",
6
- "Ad-hoc",
7
- "Append compensation activity",
8
- "Append {type}",
9
- "Business Rule Task",
10
- "Call Activity",
11
- "Cancel Boundary Event",
12
- "Cancel End Event",
13
- "Change type",
14
- "Compensation Boundary Event",
15
- "Compensation End Event",
16
- "Compensation Intermediate Throw Event",
17
- "Compensation Start Event",
18
- "Complex Gateway",
19
- "Conditional Boundary Event",
20
- "Conditional Boundary Event (non-interrupting)",
21
- "Conditional Flow",
22
- "Conditional Intermediate Catch Event",
23
- "Conditional Start Event",
24
- "Conditional Start Event (non-interrupting)",
25
- "Connect using Association",
26
- "Connect using DataInputAssociation",
27
- "Connect using Sequence/MessageFlow or Association",
28
- "Create IntermediateThrowEvent/BoundaryEvent",
29
- "Create Pool/Participant",
30
- "Create expanded SubProcess",
31
- "Create {type}",
32
- "Default Flow",
33
- "End Event",
34
- "Error Boundary Event",
35
- "Error End Event",
36
- "Error Start Event",
37
- "Escalation Boundary Event",
38
- "Escalation Boundary Event (non-interrupting)",
39
- "Escalation End Event",
40
- "Escalation Intermediate Throw Event",
41
- "Escalation Start Event",
42
- "Escalation Start Event (non-interrupting)",
43
- "Event Sub Process",
44
- "Exclusive Gateway",
45
- "HELLO {you}!",
46
- "Inclusive Gateway",
47
- "Intermediate Throw Event",
48
- "Link Intermediate Catch Event",
49
- "Link Intermediate Throw Event",
50
- "Loop",
51
- "Manual Task",
52
- "Message Boundary Event",
53
- "Message Boundary Event (non-interrupting)",
54
- "Message End Event",
55
- "Message Intermediate Catch Event",
56
- "Message Intermediate Throw Event",
57
- "Message Start Event",
58
- "Message Start Event (non-interrupting)",
59
- "Parallel Gateway",
60
- "Parallel Multi Instance",
61
- "Receive Task",
62
- "Remove",
63
- "Script Task",
64
- "Send Task",
65
- "Sequence Flow",
66
- "Sequential Multi Instance",
67
- "Service Task",
68
- "Signal Boundary Event",
69
- "Signal Boundary Event (non-interrupting)",
70
- "Signal End Event",
71
- "Signal Intermediate Catch Event",
72
- "Signal Intermediate Throw Event",
73
- "Signal Start Event",
74
- "Signal Start Event (non-interrupting)",
75
- "Start Event",
76
- "Sub Process",
77
- "Sub Process (collapsed)",
78
- "Sub Process (expanded)",
79
- "Task",
80
- "Terminate End Event",
81
- "Timer Boundary Event",
82
- "Timer Boundary Event (non-interrupting)",
83
- "Timer Intermediate Catch Event",
84
- "Timer Start Event",
85
- "Timer Start Event (non-interrupting)",
86
- "Transaction",
87
- "User Task",
88
- "correcting missing bpmnElement on {plane} to {rootElement}",
89
- "element {element} referenced by {referenced}#{property} not yet drawn",
90
- "failed to import {element}",
91
- "flow elements must be children of pools/participants",
92
- "missing {semantic}#attachedToRef",
93
- "multiple DI elements defined for {element}",
94
- "no bpmnElement referenced in {element}",
95
- "no diagram to display",
96
- "no process or collaboration to display",
97
- "participants cannot be pasted onto a non-empty process diagram"
1
+ [
2
+ "Activate the create/remove space tool",
3
+ "Activate the global connect tool",
4
+ "Activate the hand tool",
5
+ "Activate the lasso tool",
6
+ "Ad-hoc",
7
+ "Append compensation activity",
8
+ "Append {type}",
9
+ "Business Rule Task",
10
+ "Call Activity",
11
+ "Cancel Boundary Event",
12
+ "Cancel End Event",
13
+ "Change type",
14
+ "Compensation Boundary Event",
15
+ "Compensation End Event",
16
+ "Compensation Intermediate Throw Event",
17
+ "Compensation Start Event",
18
+ "Complex Gateway",
19
+ "Conditional Boundary Event",
20
+ "Conditional Boundary Event (non-interrupting)",
21
+ "Conditional Flow",
22
+ "Conditional Intermediate Catch Event",
23
+ "Conditional Start Event",
24
+ "Conditional Start Event (non-interrupting)",
25
+ "Connect using Association",
26
+ "Connect using DataInputAssociation",
27
+ "Connect using Sequence/MessageFlow or Association",
28
+ "Create IntermediateThrowEvent/BoundaryEvent",
29
+ "Create Pool/Participant",
30
+ "Create expanded SubProcess",
31
+ "Create {type}",
32
+ "Default Flow",
33
+ "End Event",
34
+ "Error Boundary Event",
35
+ "Error End Event",
36
+ "Error Start Event",
37
+ "Escalation Boundary Event",
38
+ "Escalation Boundary Event (non-interrupting)",
39
+ "Escalation End Event",
40
+ "Escalation Intermediate Throw Event",
41
+ "Escalation Start Event",
42
+ "Escalation Start Event (non-interrupting)",
43
+ "Event Sub Process",
44
+ "Exclusive Gateway",
45
+ "HELLO {you}!",
46
+ "Inclusive Gateway",
47
+ "Intermediate Throw Event",
48
+ "Link Intermediate Catch Event",
49
+ "Link Intermediate Throw Event",
50
+ "Loop",
51
+ "Manual Task",
52
+ "Message Boundary Event",
53
+ "Message Boundary Event (non-interrupting)",
54
+ "Message End Event",
55
+ "Message Intermediate Catch Event",
56
+ "Message Intermediate Throw Event",
57
+ "Message Start Event",
58
+ "Message Start Event (non-interrupting)",
59
+ "Parallel Gateway",
60
+ "Parallel Multi Instance",
61
+ "Receive Task",
62
+ "Remove",
63
+ "Script Task",
64
+ "Send Task",
65
+ "Sequence Flow",
66
+ "Sequential Multi Instance",
67
+ "Service Task",
68
+ "Signal Boundary Event",
69
+ "Signal Boundary Event (non-interrupting)",
70
+ "Signal End Event",
71
+ "Signal Intermediate Catch Event",
72
+ "Signal Intermediate Throw Event",
73
+ "Signal Start Event",
74
+ "Signal Start Event (non-interrupting)",
75
+ "Start Event",
76
+ "Sub Process",
77
+ "Sub Process (collapsed)",
78
+ "Sub Process (expanded)",
79
+ "Task",
80
+ "Terminate End Event",
81
+ "Timer Boundary Event",
82
+ "Timer Boundary Event (non-interrupting)",
83
+ "Timer Intermediate Catch Event",
84
+ "Timer Start Event",
85
+ "Timer Start Event (non-interrupting)",
86
+ "Transaction",
87
+ "User Task",
88
+ "correcting missing bpmnElement on {plane} to {rootElement}",
89
+ "element {element} referenced by {referenced}#{property} not yet drawn",
90
+ "failed to import {element}",
91
+ "flow elements must be children of pools/participants",
92
+ "missing {semantic}#attachedToRef",
93
+ "multiple DI elements defined for {element}",
94
+ "no bpmnElement referenced in {element}",
95
+ "no diagram to display",
96
+ "no process or collaboration to display",
97
+ "participants cannot be pasted onto a non-empty process diagram"
98
98
  ]
package/lib/Modeler.js CHANGED
@@ -1,208 +1,208 @@
1
- 'use strict';
2
-
3
- var inherits = require('inherits');
4
-
5
- var Ids = require('ids');
6
-
7
- var Viewer = require('./Viewer');
8
-
9
- var NavigatedViewer = require('./NavigatedViewer');
10
-
11
- var initialDiagram =
12
- '<?xml version="1.0" encoding="UTF-8"?>' +
13
- '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
14
- 'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
15
- 'xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
16
- 'xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" ' +
17
- 'targetNamespace="http://bpmn.io/schema/bpmn" ' +
18
- 'id="Definitions_1">' +
19
- '<bpmn:process id="Process_1" isExecutable="false">' +
20
- '<bpmn:startEvent id="StartEvent_1"/>' +
21
- '</bpmn:process>' +
22
- '<bpmndi:BPMNDiagram id="BPMNDiagram_1">' +
23
- '<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">' +
24
- '<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">' +
25
- '<dc:Bounds height="36.0" width="36.0" x="173.0" y="102.0"/>' +
26
- '</bpmndi:BPMNShape>' +
27
- '</bpmndi:BPMNPlane>' +
28
- '</bpmndi:BPMNDiagram>' +
29
- '</bpmn:definitions>';
30
-
31
-
32
- /**
33
- * A modeler for BPMN 2.0 diagrams.
34
- *
35
- *
36
- * ## Extending the Modeler
37
- *
38
- * In order to extend the viewer pass extension modules to bootstrap via the
39
- * `additionalModules` option. An extension module is an object that exposes
40
- * named services.
41
- *
42
- * The following example depicts the integration of a simple
43
- * logging component that integrates with interaction events:
44
- *
45
- *
46
- * ```javascript
47
- *
48
- * // logging component
49
- * function InteractionLogger(eventBus) {
50
- * eventBus.on('element.hover', function(event) {
51
- * console.log()
52
- * })
53
- * }
54
- *
55
- * InteractionLogger.$inject = [ 'eventBus' ]; // minification save
56
- *
57
- * // extension module
58
- * var extensionModule = {
59
- * __init__: [ 'interactionLogger' ],
60
- * interactionLogger: [ 'type', InteractionLogger ]
61
- * };
62
- *
63
- * // extend the viewer
64
- * var bpmnModeler = new Modeler({ additionalModules: [ extensionModule ] });
65
- * bpmnModeler.importXML(...);
66
- * ```
67
- *
68
- *
69
- * ## Customizing / Replacing Components
70
- *
71
- * You can replace individual diagram components by redefining them in override modules.
72
- * This works for all components, including those defined in the core.
73
- *
74
- * Pass in override modules via the `options.additionalModules` flag like this:
75
- *
76
- * ```javascript
77
- * function CustomContextPadProvider(contextPad) {
78
- *
79
- * contextPad.registerProvider(this);
80
- *
81
- * this.getContextPadEntries = function(element) {
82
- * // no entries, effectively disable the context pad
83
- * return {};
84
- * };
85
- * }
86
- *
87
- * CustomContextPadProvider.$inject = [ 'contextPad' ];
88
- *
89
- * var overrideModule = {
90
- * contextPadProvider: [ 'type', CustomContextPadProvider ]
91
- * };
92
- *
93
- * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});
94
- * ```
95
- *
96
- * @param {Object} [options] configuration options to pass to the viewer
97
- * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.
98
- * @param {String|Number} [options.width] the width of the viewer
99
- * @param {String|Number} [options.height] the height of the viewer
100
- * @param {Object} [options.moddleExtensions] extension packages to provide
101
- * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules
102
- * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules
103
- */
104
- function Modeler(options) {
105
- Viewer.call(this, options);
106
-
107
- // hook ID collection into the modeler
108
- this.on('import.parse.complete', function(event) {
109
- if (!event.error) {
110
- this._collectIds(event.definitions, event.context);
111
- }
112
- }, this);
113
-
114
- this.on('diagram.destroy', function() {
115
- this.moddle.ids.clear();
116
- }, this);
117
- }
118
-
119
- inherits(Modeler, Viewer);
120
-
121
- module.exports = Modeler;
122
-
123
- module.exports.Viewer = Viewer;
124
-
125
- module.exports.NavigatedViewer = NavigatedViewer;
126
-
127
- /**
128
- * Create a new diagram to start modeling.
129
- *
130
- * @param {Function} [done]
131
- */
132
- Modeler.prototype.createDiagram = function(done) {
133
- return this.importXML(initialDiagram, done);
134
- };
135
-
136
- /**
137
- * Create a moddle instance, attaching ids to it.
138
- *
139
- * @param {Object} options
140
- */
141
- Modeler.prototype._createModdle = function(options) {
142
- var moddle = Viewer.prototype._createModdle.call(this, options);
143
-
144
- // attach ids to moddle to be able to track
145
- // and validated ids in the BPMN 2.0 XML document
146
- // tree
147
- moddle.ids = new Ids([ 32, 36, 1 ]);
148
-
149
- return moddle;
150
- };
151
-
152
- /**
153
- * Collect ids processed during parsing of the
154
- * definitions object.
155
- *
156
- * @param {ModdleElement} definitions
157
- * @param {Context} context
158
- */
159
- Modeler.prototype._collectIds = function(definitions, context) {
160
-
161
- var moddle = definitions.$model,
162
- ids = moddle.ids,
163
- id;
164
-
165
- // remove references from previous import
166
- ids.clear();
167
-
168
- for (id in context.elementsById) {
169
- ids.claim(id, context.elementsById[id]);
170
- }
171
- };
172
-
173
-
174
- Modeler.prototype._interactionModules = [
175
- // non-modeling components
176
- require('diagram-js/lib/navigation/movecanvas'),
177
- require('diagram-js/lib/navigation/touch'),
178
- require('diagram-js/lib/navigation/zoomscroll')
179
- ];
180
-
181
- Modeler.prototype._modelingModules = [
182
- // modeling components
183
- require('diagram-js/lib/features/auto-scroll'),
184
- require('diagram-js/lib/features/bendpoints'),
185
- require('diagram-js/lib/features/move'),
186
- require('diagram-js/lib/features/resize'),
187
- require('./features/auto-resize'),
188
- require('./features/editor-actions'),
189
- require('./features/context-pad'),
190
- require('./features/keyboard'),
191
- require('./features/label-editing'),
192
- require('./features/modeling'),
193
- require('./features/palette'),
194
- require('./features/replace-preview'),
195
- require('./features/snapping')
196
- ];
197
-
198
-
199
- // modules the modeler is composed of
200
- //
201
- // - viewer modules
202
- // - interaction modules
203
- // - modeling modules
204
-
205
- Modeler.prototype._modules = [].concat(
206
- Modeler.prototype._modules,
207
- Modeler.prototype._interactionModules,
208
- Modeler.prototype._modelingModules);
1
+ 'use strict';
2
+
3
+ var inherits = require('inherits');
4
+
5
+ var Ids = require('ids');
6
+
7
+ var Viewer = require('./Viewer');
8
+
9
+ var NavigatedViewer = require('./NavigatedViewer');
10
+
11
+ var initialDiagram =
12
+ '<?xml version="1.0" encoding="UTF-8"?>' +
13
+ '<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
14
+ 'xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" ' +
15
+ 'xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" ' +
16
+ 'xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" ' +
17
+ 'targetNamespace="http://bpmn.io/schema/bpmn" ' +
18
+ 'id="Definitions_1">' +
19
+ '<bpmn:process id="Process_1" isExecutable="false">' +
20
+ '<bpmn:startEvent id="StartEvent_1"/>' +
21
+ '</bpmn:process>' +
22
+ '<bpmndi:BPMNDiagram id="BPMNDiagram_1">' +
23
+ '<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">' +
24
+ '<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">' +
25
+ '<dc:Bounds height="36.0" width="36.0" x="173.0" y="102.0"/>' +
26
+ '</bpmndi:BPMNShape>' +
27
+ '</bpmndi:BPMNPlane>' +
28
+ '</bpmndi:BPMNDiagram>' +
29
+ '</bpmn:definitions>';
30
+
31
+
32
+ /**
33
+ * A modeler for BPMN 2.0 diagrams.
34
+ *
35
+ *
36
+ * ## Extending the Modeler
37
+ *
38
+ * In order to extend the viewer pass extension modules to bootstrap via the
39
+ * `additionalModules` option. An extension module is an object that exposes
40
+ * named services.
41
+ *
42
+ * The following example depicts the integration of a simple
43
+ * logging component that integrates with interaction events:
44
+ *
45
+ *
46
+ * ```javascript
47
+ *
48
+ * // logging component
49
+ * function InteractionLogger(eventBus) {
50
+ * eventBus.on('element.hover', function(event) {
51
+ * console.log()
52
+ * })
53
+ * }
54
+ *
55
+ * InteractionLogger.$inject = [ 'eventBus' ]; // minification save
56
+ *
57
+ * // extension module
58
+ * var extensionModule = {
59
+ * __init__: [ 'interactionLogger' ],
60
+ * interactionLogger: [ 'type', InteractionLogger ]
61
+ * };
62
+ *
63
+ * // extend the viewer
64
+ * var bpmnModeler = new Modeler({ additionalModules: [ extensionModule ] });
65
+ * bpmnModeler.importXML(...);
66
+ * ```
67
+ *
68
+ *
69
+ * ## Customizing / Replacing Components
70
+ *
71
+ * You can replace individual diagram components by redefining them in override modules.
72
+ * This works for all components, including those defined in the core.
73
+ *
74
+ * Pass in override modules via the `options.additionalModules` flag like this:
75
+ *
76
+ * ```javascript
77
+ * function CustomContextPadProvider(contextPad) {
78
+ *
79
+ * contextPad.registerProvider(this);
80
+ *
81
+ * this.getContextPadEntries = function(element) {
82
+ * // no entries, effectively disable the context pad
83
+ * return {};
84
+ * };
85
+ * }
86
+ *
87
+ * CustomContextPadProvider.$inject = [ 'contextPad' ];
88
+ *
89
+ * var overrideModule = {
90
+ * contextPadProvider: [ 'type', CustomContextPadProvider ]
91
+ * };
92
+ *
93
+ * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});
94
+ * ```
95
+ *
96
+ * @param {Object} [options] configuration options to pass to the viewer
97
+ * @param {DOMElement} [options.container] the container to render the viewer in, defaults to body.
98
+ * @param {String|Number} [options.width] the width of the viewer
99
+ * @param {String|Number} [options.height] the height of the viewer
100
+ * @param {Object} [options.moddleExtensions] extension packages to provide
101
+ * @param {Array<didi.Module>} [options.modules] a list of modules to override the default modules
102
+ * @param {Array<didi.Module>} [options.additionalModules] a list of modules to use with the default modules
103
+ */
104
+ function Modeler(options) {
105
+ Viewer.call(this, options);
106
+
107
+ // hook ID collection into the modeler
108
+ this.on('import.parse.complete', function(event) {
109
+ if (!event.error) {
110
+ this._collectIds(event.definitions, event.context);
111
+ }
112
+ }, this);
113
+
114
+ this.on('diagram.destroy', function() {
115
+ this.moddle.ids.clear();
116
+ }, this);
117
+ }
118
+
119
+ inherits(Modeler, Viewer);
120
+
121
+ module.exports = Modeler;
122
+
123
+ module.exports.Viewer = Viewer;
124
+
125
+ module.exports.NavigatedViewer = NavigatedViewer;
126
+
127
+ /**
128
+ * Create a new diagram to start modeling.
129
+ *
130
+ * @param {Function} [done]
131
+ */
132
+ Modeler.prototype.createDiagram = function(done) {
133
+ return this.importXML(initialDiagram, done);
134
+ };
135
+
136
+ /**
137
+ * Create a moddle instance, attaching ids to it.
138
+ *
139
+ * @param {Object} options
140
+ */
141
+ Modeler.prototype._createModdle = function(options) {
142
+ var moddle = Viewer.prototype._createModdle.call(this, options);
143
+
144
+ // attach ids to moddle to be able to track
145
+ // and validated ids in the BPMN 2.0 XML document
146
+ // tree
147
+ moddle.ids = new Ids([ 32, 36, 1 ]);
148
+
149
+ return moddle;
150
+ };
151
+
152
+ /**
153
+ * Collect ids processed during parsing of the
154
+ * definitions object.
155
+ *
156
+ * @param {ModdleElement} definitions
157
+ * @param {Context} context
158
+ */
159
+ Modeler.prototype._collectIds = function(definitions, context) {
160
+
161
+ var moddle = definitions.$model,
162
+ ids = moddle.ids,
163
+ id;
164
+
165
+ // remove references from previous import
166
+ ids.clear();
167
+
168
+ for (id in context.elementsById) {
169
+ ids.claim(id, context.elementsById[id]);
170
+ }
171
+ };
172
+
173
+
174
+ Modeler.prototype._interactionModules = [
175
+ // non-modeling components
176
+ require('diagram-js/lib/navigation/movecanvas'),
177
+ require('diagram-js/lib/navigation/touch'),
178
+ require('diagram-js/lib/navigation/zoomscroll')
179
+ ];
180
+
181
+ Modeler.prototype._modelingModules = [
182
+ // modeling components
183
+ require('diagram-js/lib/features/auto-scroll'),
184
+ require('diagram-js/lib/features/bendpoints'),
185
+ require('diagram-js/lib/features/move'),
186
+ require('diagram-js/lib/features/resize'),
187
+ require('./features/auto-resize'),
188
+ require('./features/editor-actions'),
189
+ require('./features/context-pad'),
190
+ require('./features/keyboard'),
191
+ require('./features/label-editing'),
192
+ require('./features/modeling'),
193
+ require('./features/palette'),
194
+ require('./features/replace-preview'),
195
+ require('./features/snapping')
196
+ ];
197
+
198
+
199
+ // modules the modeler is composed of
200
+ //
201
+ // - viewer modules
202
+ // - interaction modules
203
+ // - modeling modules
204
+
205
+ Modeler.prototype._modules = [].concat(
206
+ Modeler.prototype._modules,
207
+ Modeler.prototype._interactionModules,
208
+ Modeler.prototype._modelingModules);
@@ -1,28 +1,28 @@
1
- 'use strict';
2
-
3
- var inherits = require('inherits');
4
-
5
- var Viewer = require('./Viewer');
6
-
7
-
8
- /**
9
- * A viewer that includes mouse navigation facilities
10
- *
11
- * @param {Object} options
12
- */
13
- function NavigatedViewer(options) {
14
- Viewer.call(this, options);
15
- }
16
-
17
- inherits(NavigatedViewer, Viewer);
18
-
19
- module.exports = NavigatedViewer;
20
-
21
- NavigatedViewer.prototype._navigationModules = [
22
- require('diagram-js/lib/navigation/zoomscroll'),
23
- require('diagram-js/lib/navigation/movecanvas')
24
- ];
25
-
26
- NavigatedViewer.prototype._modules = [].concat(
27
- NavigatedViewer.prototype._modules,
1
+ 'use strict';
2
+
3
+ var inherits = require('inherits');
4
+
5
+ var Viewer = require('./Viewer');
6
+
7
+
8
+ /**
9
+ * A viewer that includes mouse navigation facilities
10
+ *
11
+ * @param {Object} options
12
+ */
13
+ function NavigatedViewer(options) {
14
+ Viewer.call(this, options);
15
+ }
16
+
17
+ inherits(NavigatedViewer, Viewer);
18
+
19
+ module.exports = NavigatedViewer;
20
+
21
+ NavigatedViewer.prototype._navigationModules = [
22
+ require('diagram-js/lib/navigation/zoomscroll'),
23
+ require('diagram-js/lib/navigation/movecanvas')
24
+ ];
25
+
26
+ NavigatedViewer.prototype._modules = [].concat(
27
+ NavigatedViewer.prototype._modules,
28
28
  NavigatedViewer.prototype._navigationModules);