bpmn-js 18.2.0 → 18.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/LICENSE +23 -23
  2. package/README.md +95 -95
  3. package/dist/assets/bpmn-js.css +145 -145
  4. package/dist/bpmn-modeler.development.js +38724 -38473
  5. package/dist/bpmn-modeler.production.min.js +38 -38
  6. package/dist/bpmn-navigated-viewer.development.js +21139 -21139
  7. package/dist/bpmn-navigated-viewer.production.min.js +1 -1
  8. package/dist/bpmn-viewer.development.js +21080 -21080
  9. package/dist/bpmn-viewer.production.min.js +1 -1
  10. package/lib/BaseModeler.d.ts +15 -15
  11. package/lib/BaseModeler.js +79 -79
  12. package/lib/BaseViewer.d.ts +352 -352
  13. package/lib/BaseViewer.js +858 -858
  14. package/lib/Modeler.d.ts +86 -86
  15. package/lib/Modeler.js +206 -206
  16. package/lib/NavigatedViewer.d.ts +11 -11
  17. package/lib/NavigatedViewer.js +37 -37
  18. package/lib/Viewer.d.ts +47 -47
  19. package/lib/Viewer.js +76 -76
  20. package/lib/core/index.d.ts +10 -10
  21. package/lib/core/index.js +8 -8
  22. package/lib/draw/BpmnRenderUtil.d.ts +123 -123
  23. package/lib/draw/BpmnRenderUtil.js +256 -256
  24. package/lib/draw/BpmnRenderer.d.ts +116 -116
  25. package/lib/draw/BpmnRenderer.js +2339 -2339
  26. package/lib/draw/PathMap.d.ts +330 -330
  27. package/lib/draw/PathMap.js +478 -478
  28. package/lib/draw/TextRenderer.d.ts +74 -74
  29. package/lib/draw/TextRenderer.js +136 -136
  30. package/lib/draw/index.d.ts +10 -10
  31. package/lib/draw/index.js +11 -11
  32. package/lib/features/align-elements/AlignElementsContextPadProvider.d.ts +32 -32
  33. package/lib/features/align-elements/AlignElementsContextPadProvider.js +105 -105
  34. package/lib/features/align-elements/AlignElementsIcons.d.ts +10 -10
  35. package/lib/features/align-elements/AlignElementsIcons.js +43 -43
  36. package/lib/features/align-elements/AlignElementsMenuProvider.d.ts +32 -32
  37. package/lib/features/align-elements/AlignElementsMenuProvider.js +100 -100
  38. package/lib/features/align-elements/BpmnAlignElements.d.ts +9 -9
  39. package/lib/features/align-elements/BpmnAlignElements.js +45 -45
  40. package/lib/features/align-elements/index.d.ts +11 -11
  41. package/lib/features/align-elements/index.js +23 -23
  42. package/lib/features/append-preview/AppendPreview.d.ts +36 -36
  43. package/lib/features/append-preview/AppendPreview.js +108 -108
  44. package/lib/features/append-preview/index.d.ts +16 -16
  45. package/lib/features/append-preview/index.js +15 -15
  46. package/lib/features/auto-place/BpmnAutoPlace.d.ts +15 -15
  47. package/lib/features/auto-place/BpmnAutoPlace.js +22 -22
  48. package/lib/features/auto-place/BpmnAutoPlaceUtil.d.ts +52 -52
  49. package/lib/features/auto-place/BpmnAutoPlaceUtil.js +226 -226
  50. package/lib/features/auto-place/index.d.ts +7 -7
  51. package/lib/features/auto-place/index.js +8 -8
  52. package/lib/features/auto-resize/BpmnAutoResize.d.ts +25 -25
  53. package/lib/features/auto-resize/BpmnAutoResize.js +45 -45
  54. package/lib/features/auto-resize/BpmnAutoResizeProvider.d.ts +26 -26
  55. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +69 -69
  56. package/lib/features/auto-resize/index.d.ts +8 -8
  57. package/lib/features/auto-resize/index.js +12 -12
  58. package/lib/features/context-pad/ContextPadProvider.d.ts +62 -62
  59. package/lib/features/context-pad/ContextPadProvider.js +582 -582
  60. package/lib/features/context-pad/index.d.ts +7 -7
  61. package/lib/features/context-pad/index.js +22 -22
  62. package/lib/features/copy-paste/BpmnCopyPaste.d.ts +17 -17
  63. package/lib/features/copy-paste/BpmnCopyPaste.js +192 -192
  64. package/lib/features/copy-paste/ModdleCopy.d.ts +45 -45
  65. package/lib/features/copy-paste/index.d.ts +9 -9
  66. package/lib/features/copy-paste/index.js +13 -13
  67. package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
  68. package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
  69. package/lib/features/di-ordering/index.d.ts +6 -6
  70. package/lib/features/di-ordering/index.js +7 -7
  71. package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
  72. package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
  73. package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
  74. package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
  75. package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
  76. package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
  77. package/lib/features/distribute-elements/index.d.ts +9 -9
  78. package/lib/features/distribute-elements/index.js +19 -19
  79. package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
  80. package/lib/features/drilldown/DrilldownBreadcrumbs.js +138 -138
  81. package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
  82. package/lib/features/drilldown/DrilldownCentering.js +122 -122
  83. package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +20 -20
  84. package/lib/features/drilldown/DrilldownOverlayBehavior.js +218 -218
  85. package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
  86. package/lib/features/drilldown/SubprocessCompatibility.js +266 -266
  87. package/lib/features/drilldown/index.d.ts +13 -13
  88. package/lib/features/drilldown/index.js +16 -16
  89. package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
  90. package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
  91. package/lib/features/editor-actions/index.d.ts +6 -6
  92. package/lib/features/editor-actions/index.js +10 -10
  93. package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
  94. package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +14 -14
  95. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
  96. package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
  97. package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
  98. package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
  99. package/lib/features/grid-snapping/index.d.ts +11 -11
  100. package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
  101. package/lib/features/interaction-events/BpmnInteractionEvents.js +146 -146
  102. package/lib/features/interaction-events/index.d.ts +6 -6
  103. package/lib/features/interaction-events/index.js +5 -5
  104. package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
  105. package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
  106. package/lib/features/keyboard/index.d.ts +7 -7
  107. package/lib/features/keyboard/index.js +11 -11
  108. package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
  109. package/lib/features/label-editing/LabelEditingPreview.js +145 -145
  110. package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
  111. package/lib/features/label-editing/LabelEditingProvider.js +519 -519
  112. package/lib/features/label-editing/LabelUtil.d.ts +1 -1
  113. package/lib/features/label-editing/LabelUtil.js +4 -4
  114. package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
  115. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
  116. package/lib/features/label-editing/index.d.ts +9 -9
  117. package/lib/features/label-editing/index.js +21 -21
  118. package/lib/features/modeling/BpmnFactory.d.ts +73 -73
  119. package/lib/features/modeling/BpmnFactory.js +180 -180
  120. package/lib/features/modeling/BpmnLayouter.d.ts +30 -30
  121. package/lib/features/modeling/BpmnLayouter.js +488 -488
  122. package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
  123. package/lib/features/modeling/BpmnUpdater.js +818 -818
  124. package/lib/features/modeling/ElementFactory.d.ts +117 -117
  125. package/lib/features/modeling/ElementFactory.js +412 -412
  126. package/lib/features/modeling/ElementFactory.test.ts +132 -132
  127. package/lib/features/modeling/Modeling.d.ts +150 -150
  128. package/lib/features/modeling/Modeling.js +309 -309
  129. package/lib/features/modeling/Modeling.test.ts +147 -147
  130. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +19 -19
  131. package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +288 -288
  132. package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
  133. package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
  134. package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
  135. package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
  136. package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
  137. package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
  138. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
  139. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
  140. package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
  141. package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
  142. package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
  143. package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
  144. package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +43 -43
  145. package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
  146. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
  147. package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
  148. package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
  149. package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
  150. package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
  151. package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
  152. package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
  153. package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
  154. package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
  155. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
  156. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
  157. package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
  158. package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
  159. package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
  160. package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
  161. package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
  162. package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
  163. package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
  164. package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
  165. package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
  166. package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
  167. package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
  168. package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
  169. package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
  170. package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
  171. package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
  172. package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
  173. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
  174. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
  175. package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
  176. package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +59 -59
  177. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
  178. package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
  179. package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
  180. package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
  181. package/lib/features/modeling/behavior/ResizeBehavior.d.ts +64 -64
  182. package/lib/features/modeling/behavior/ResizeBehavior.js +265 -265
  183. package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
  184. package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
  185. package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
  186. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.d.ts +16 -16
  187. package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.js +66 -66
  188. package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
  189. package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
  190. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
  191. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
  192. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
  193. package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +55 -55
  194. package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
  195. package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
  196. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
  197. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
  198. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
  199. package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
  200. package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
  201. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
  202. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
  203. package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
  204. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
  205. package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
  206. package/lib/features/modeling/behavior/index.d.ts +2 -2
  207. package/lib/features/modeling/behavior/index.js +131 -131
  208. package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
  209. package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
  210. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
  211. package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
  212. package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
  213. package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
  214. package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
  215. package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
  216. package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
  217. package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
  218. package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
  219. package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
  220. package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
  221. package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
  222. package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
  223. package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
  224. package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
  225. package/lib/features/modeling/cmd/AddLaneHandler.js +187 -187
  226. package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
  227. package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
  228. package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
  229. package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
  230. package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
  231. package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
  232. package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
  233. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
  234. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
  235. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
  236. package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
  237. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
  238. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
  239. package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
  240. package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
  241. package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
  242. package/lib/features/modeling/index.d.ts +27 -27
  243. package/lib/features/modeling/index.js +45 -45
  244. package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
  245. package/lib/features/modeling/util/LaneUtil.js +188 -188
  246. package/lib/features/modeling/util/ModelingUtil.d.ts +23 -23
  247. package/lib/features/modeling/util/ModelingUtil.js +88 -88
  248. package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
  249. package/lib/features/modeling-feedback/ModelingFeedback.js +46 -46
  250. package/lib/features/modeling-feedback/index.d.ts +7 -7
  251. package/lib/features/modeling-feedback/index.js +12 -12
  252. package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
  253. package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
  254. package/lib/features/ordering/index.d.ts +6 -6
  255. package/lib/features/ordering/index.js +5 -5
  256. package/lib/features/outline/OutlineProvider.d.ts +39 -39
  257. package/lib/features/outline/OutlineProvider.js +189 -189
  258. package/lib/features/outline/OutlineUtil.d.ts +23 -23
  259. package/lib/features/outline/OutlineUtil.js +35 -35
  260. package/lib/features/outline/index.d.ts +7 -7
  261. package/lib/features/outline/index.js +10 -10
  262. package/lib/features/palette/PaletteProvider.d.ts +34 -34
  263. package/lib/features/palette/PaletteProvider.js +214 -214
  264. package/lib/features/palette/index.d.ts +9 -9
  265. package/lib/features/palette/index.js +23 -23
  266. package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
  267. package/lib/features/popup-menu/ReplaceMenuProvider.js +656 -629
  268. package/lib/features/popup-menu/index.d.ts +11 -11
  269. package/lib/features/popup-menu/index.js +16 -16
  270. package/lib/features/popup-menu/util/Icons.d.ts +5 -5
  271. package/lib/features/popup-menu/util/Icons.js +14 -14
  272. package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
  273. package/lib/features/popup-menu/util/TypeUtil.js +52 -52
  274. package/lib/features/replace/BpmnReplace.d.ts +45 -45
  275. package/lib/features/replace/BpmnReplace.js +391 -391
  276. package/lib/features/replace/ReplaceOptions.d.ts +85 -79
  277. package/lib/features/replace/ReplaceOptions.js +1198 -998
  278. package/lib/features/replace/index.d.ts +9 -9
  279. package/lib/features/replace/index.js +14 -14
  280. package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
  281. package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
  282. package/lib/features/replace-preview/index.d.ts +7 -7
  283. package/lib/features/replace-preview/index.js +11 -11
  284. package/lib/features/rules/BpmnRules.d.ts +181 -181
  285. package/lib/features/rules/BpmnRules.js +1191 -1191
  286. package/lib/features/rules/index.d.ts +7 -7
  287. package/lib/features/rules/index.js +11 -11
  288. package/lib/features/search/BpmnSearchProvider.d.ts +34 -34
  289. package/lib/features/search/BpmnSearchProvider.js +91 -91
  290. package/lib/features/search/index.d.ts +7 -7
  291. package/lib/features/search/index.js +14 -14
  292. package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
  293. package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
  294. package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
  295. package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
  296. package/lib/features/snapping/index.d.ts +9 -9
  297. package/lib/features/snapping/index.js +12 -12
  298. package/lib/features/space-tool/BpmnSpaceTool.d.ts +24 -21
  299. package/lib/features/space-tool/BpmnSpaceTool.js +96 -69
  300. package/lib/features/space-tool/index.d.ts +6 -6
  301. package/lib/features/space-tool/index.js +7 -7
  302. package/lib/import/BpmnImporter.d.ts +51 -51
  303. package/lib/import/BpmnImporter.js +363 -363
  304. package/lib/import/BpmnTreeWalker.d.ts +20 -20
  305. package/lib/import/BpmnTreeWalker.js +453 -453
  306. package/lib/import/Importer.d.ts +25 -25
  307. package/lib/import/Importer.js +222 -222
  308. package/lib/import/Util.d.ts +1 -1
  309. package/lib/import/Util.js +6 -6
  310. package/lib/import/index.d.ts +6 -6
  311. package/lib/import/index.js +9 -9
  312. package/lib/index.d.ts +1 -1
  313. package/lib/index.js +2 -2
  314. package/lib/model/Types.d.ts +25 -25
  315. package/lib/model/Types.ts +40 -40
  316. package/lib/util/CompatibilityUtil.d.ts +8 -8
  317. package/lib/util/CompatibilityUtil.js +29 -29
  318. package/lib/util/DiUtil.d.ts +60 -60
  319. package/lib/util/DiUtil.js +122 -122
  320. package/lib/util/DrilldownUtil.d.ts +39 -39
  321. package/lib/util/DrilldownUtil.js +69 -69
  322. package/lib/util/LabelUtil.d.ts +83 -83
  323. package/lib/util/LabelUtil.js +266 -266
  324. package/lib/util/ModelUtil.d.ts +40 -40
  325. package/lib/util/ModelUtil.js +58 -58
  326. package/lib/util/PoweredByUtil.d.ts +8 -8
  327. package/lib/util/PoweredByUtil.js +99 -99
  328. package/lib/util/Types.js +4 -4
  329. package/lib/util/Types.ts +3 -3
  330. package/package.json +131 -131
  331. package/test/helper/TranslationCollector.js +15 -15
  332. package/test/helper/index.js +313 -313
  333. package/test/matchers/BoundsMatchers.js +252 -252
  334. package/test/matchers/ConnectionMatchers.js +165 -165
  335. package/test/matchers/JSONMatcher.js +19 -19
  336. package/test/util/KeyEvents.js +22 -22
  337. package/test/util/MockEvents.js +61 -61
  338. package/test/util/custom-rules/CustomRules.js +16 -16
  339. package/test/util/custom-rules/index.js +6 -6
@@ -1,105 +1,105 @@
1
- import {
2
- assign
3
- } from 'min-dash';
4
-
5
- import ICONS from './AlignElementsIcons';
6
-
7
- /**
8
- * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas
9
- * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').default} ContextPad
10
- * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu
11
- * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate
12
- *
13
- * @typedef {import('../../model/Types').Element} Element
14
- * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').ContextPadEntries} ContextPadEntries
15
- * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default<Element>} ContextPadProvider
16
- */
17
-
18
- var LOW_PRIORITY = 900;
19
-
20
- /**
21
- * A provider for the `Align elements` context pad entry.
22
- *
23
- * @implements {ContextPadProvider}
24
- *
25
- * @param {ContextPad} contextPad
26
- * @param {PopupMenu} popupMenu
27
- * @param {Translate} translate
28
- * @param {Canvas} canvas
29
- */
30
- export default function AlignElementsContextPadProvider(contextPad, popupMenu, translate, canvas) {
31
-
32
- contextPad.registerProvider(LOW_PRIORITY, this);
33
-
34
- this._contextPad = contextPad;
35
- this._popupMenu = popupMenu;
36
- this._translate = translate;
37
- this._canvas = canvas;
38
- }
39
-
40
- AlignElementsContextPadProvider.$inject = [
41
- 'contextPad',
42
- 'popupMenu',
43
- 'translate',
44
- 'canvas'
45
- ];
46
-
47
- /**
48
- * @param {Element[]} elements
49
- *
50
- * @return {ContextPadEntries}
51
- */
52
- AlignElementsContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) {
53
- var actions = {};
54
-
55
- if (this._isAllowed(elements)) {
56
- assign(actions, this._getEntries(elements));
57
- }
58
-
59
- return actions;
60
- };
61
-
62
- AlignElementsContextPadProvider.prototype._isAllowed = function(elements) {
63
- return !this._popupMenu.isEmpty(elements, 'align-elements');
64
- };
65
-
66
- AlignElementsContextPadProvider.prototype._getEntries = function() {
67
- var self = this;
68
-
69
- return {
70
- 'align-elements': {
71
- group: 'align-elements',
72
- title: self._translate('Align elements'),
73
- html: `<div class="entry">${ICONS['align']}</div>`,
74
- action: {
75
- click: function(event, target) {
76
- var position = self._getMenuPosition(target);
77
-
78
- assign(position, {
79
- cursor: {
80
- x: event.x,
81
- y: event.y
82
- }
83
- });
84
-
85
- self._popupMenu.open(target, 'align-elements', position);
86
- }
87
- }
88
- }
89
- };
90
- };
91
-
92
- AlignElementsContextPadProvider.prototype._getMenuPosition = function(elements) {
93
- var Y_OFFSET = 5;
94
-
95
- var pad = this._contextPad.getPad(elements).html;
96
-
97
- var padRect = pad.getBoundingClientRect();
98
-
99
- var pos = {
100
- x: padRect.left,
101
- y: padRect.bottom + Y_OFFSET
102
- };
103
-
104
- return pos;
105
- };
1
+ import {
2
+ assign
3
+ } from 'min-dash';
4
+
5
+ import ICONS from './AlignElementsIcons';
6
+
7
+ /**
8
+ * @typedef {import('diagram-js/lib/core/Canvas').default} Canvas
9
+ * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').default} ContextPad
10
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu
11
+ * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate
12
+ *
13
+ * @typedef {import('../../model/Types').Element} Element
14
+ * @typedef {import('diagram-js/lib/features/context-pad/ContextPad').ContextPadEntries} ContextPadEntries
15
+ * @typedef {import('diagram-js/lib/features/context-pad/ContextPadProvider').default<Element>} ContextPadProvider
16
+ */
17
+
18
+ var LOW_PRIORITY = 900;
19
+
20
+ /**
21
+ * A provider for the `Align elements` context pad entry.
22
+ *
23
+ * @implements {ContextPadProvider}
24
+ *
25
+ * @param {ContextPad} contextPad
26
+ * @param {PopupMenu} popupMenu
27
+ * @param {Translate} translate
28
+ * @param {Canvas} canvas
29
+ */
30
+ export default function AlignElementsContextPadProvider(contextPad, popupMenu, translate, canvas) {
31
+
32
+ contextPad.registerProvider(LOW_PRIORITY, this);
33
+
34
+ this._contextPad = contextPad;
35
+ this._popupMenu = popupMenu;
36
+ this._translate = translate;
37
+ this._canvas = canvas;
38
+ }
39
+
40
+ AlignElementsContextPadProvider.$inject = [
41
+ 'contextPad',
42
+ 'popupMenu',
43
+ 'translate',
44
+ 'canvas'
45
+ ];
46
+
47
+ /**
48
+ * @param {Element[]} elements
49
+ *
50
+ * @return {ContextPadEntries}
51
+ */
52
+ AlignElementsContextPadProvider.prototype.getMultiElementContextPadEntries = function(elements) {
53
+ var actions = {};
54
+
55
+ if (this._isAllowed(elements)) {
56
+ assign(actions, this._getEntries(elements));
57
+ }
58
+
59
+ return actions;
60
+ };
61
+
62
+ AlignElementsContextPadProvider.prototype._isAllowed = function(elements) {
63
+ return !this._popupMenu.isEmpty(elements, 'align-elements');
64
+ };
65
+
66
+ AlignElementsContextPadProvider.prototype._getEntries = function() {
67
+ var self = this;
68
+
69
+ return {
70
+ 'align-elements': {
71
+ group: 'align-elements',
72
+ title: self._translate('Align elements'),
73
+ html: `<div class="entry">${ICONS['align']}</div>`,
74
+ action: {
75
+ click: function(event, target) {
76
+ var position = self._getMenuPosition(target);
77
+
78
+ assign(position, {
79
+ cursor: {
80
+ x: event.x,
81
+ y: event.y
82
+ }
83
+ });
84
+
85
+ self._popupMenu.open(target, 'align-elements', position);
86
+ }
87
+ }
88
+ }
89
+ };
90
+ };
91
+
92
+ AlignElementsContextPadProvider.prototype._getMenuPosition = function(elements) {
93
+ var Y_OFFSET = 5;
94
+
95
+ var pad = this._contextPad.getPad(elements).html;
96
+
97
+ var padRect = pad.getBoundingClientRect();
98
+
99
+ var pos = {
100
+ x: padRect.left,
101
+ y: padRect.bottom + Y_OFFSET
102
+ };
103
+
104
+ return pos;
105
+ };
@@ -1,10 +1,10 @@
1
- export default icons;
2
- declare namespace icons {
3
- let align: string;
4
- let bottom: string;
5
- let center: string;
6
- let left: string;
7
- let right: string;
8
- let top: string;
9
- let middle: string;
10
- }
1
+ export default icons;
2
+ declare namespace icons {
3
+ let align: string;
4
+ let bottom: string;
5
+ let center: string;
6
+ let left: string;
7
+ let right: string;
8
+ let top: string;
9
+ let middle: string;
10
+ }
@@ -1,43 +1,43 @@
1
- /**
2
- * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`,
3
- * and then replace respective icons with the optimized data URIs in `./dist`.
4
- */
5
- var icons = {
6
- align: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000">
7
- <line x1="200" y1="150" x2="200" y2="1850" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
8
- <rect x="500" y="150" width="1300" height="700" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
9
- <rect x="500" y="1150" width="700" height="700" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
10
- </svg>`,
11
- bottom: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
12
- <line x1="150" y1="1650" x2="1650" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
13
- <rect x="150" y="350" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
14
- <rect x="1050" y="850" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
15
- </svg>`,
16
- center: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
17
- <line x1="900" y1="150" x2="900" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
18
- <rect x="250" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
19
- <rect x="500" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
20
- </svg>`,
21
- left: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
22
- <line x1="100" y1="150" x2="100" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
23
- <rect x="100" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
24
- <rect x="100" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
25
- </svg>`,
26
- right: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
27
- <line x1="1650" y1="150" x2="1650" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
28
- <rect x="350" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
29
- <rect x="850" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
30
- </svg>`,
31
- top: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
32
- <line x1="150" y1="150" x2="1650" y2="150" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
33
- <rect x="150" y="150" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
34
- <rect x="1050" y="150" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
35
- </svg>`,
36
- middle: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
37
- <line x1="150" y1="900" x2="1650" y2="900" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
38
- <rect x="150" y="250" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
39
- <rect x="1050" y="500" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
40
- </svg>`
41
- };
42
-
43
- export default icons;
1
+ /**
2
+ * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`,
3
+ * and then replace respective icons with the optimized data URIs in `./dist`.
4
+ */
5
+ var icons = {
6
+ align: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000">
7
+ <line x1="200" y1="150" x2="200" y2="1850" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
8
+ <rect x="500" y="150" width="1300" height="700" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
9
+ <rect x="500" y="1150" width="700" height="700" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
10
+ </svg>`,
11
+ bottom: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
12
+ <line x1="150" y1="1650" x2="1650" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
13
+ <rect x="150" y="350" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
14
+ <rect x="1050" y="850" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
15
+ </svg>`,
16
+ center: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
17
+ <line x1="900" y1="150" x2="900" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
18
+ <rect x="250" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
19
+ <rect x="500" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
20
+ </svg>`,
21
+ left: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
22
+ <line x1="100" y1="150" x2="100" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
23
+ <rect x="100" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
24
+ <rect x="100" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
25
+ </svg>`,
26
+ right: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
27
+ <line x1="1650" y1="150" x2="1650" y2="1650" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
28
+ <rect x="350" y="150" width="1300" height="600" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
29
+ <rect x="850" y="1050" width="800" height="600" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
30
+ </svg>`,
31
+ top: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
32
+ <line x1="150" y1="150" x2="1650" y2="150" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
33
+ <rect x="150" y="150" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
34
+ <rect x="1050" y="150" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
35
+ </svg>`,
36
+ middle: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 1800">
37
+ <line x1="150" y1="900" x2="1650" y2="900" style="stroke:currentColor;stroke-width:100;stroke-linecap:round;"/>
38
+ <rect x="150" y="250" width="600" height="1300" rx="1" style="fill:none;stroke:currentColor;stroke-width:100;"></rect>
39
+ <rect x="1050" y="500" width="600" height="800" rx="1" style="fill:currentColor;stroke:currentColor;stroke-width:100;opacity:.5;"></rect>
40
+ </svg>`
41
+ };
42
+
43
+ export default icons;
@@ -1,32 +1,32 @@
1
- /**
2
- * A provider for the `Align elements` popup menu.
3
- *
4
- * @implements {PopupMenuProvider}
5
- *
6
- */
7
- export default class AlignElementsMenuProvider implements PopupMenuProvider {
8
- static $inject: string[];
9
-
10
- /**
11
- * @param popupMenu
12
- * @param alignElements
13
- * @param translate
14
- * @param rules
15
- */
16
- constructor(popupMenu: PopupMenu, alignElements: AlignElements, translate: Translate, rules: Rules);
17
-
18
- /**
19
- * @param target
20
- *
21
- * @return
22
- */
23
- getPopupMenuEntries(target: PopupMenuTarget): PopupMenuEntries;
24
- }
25
-
26
- type AlignElements = import("diagram-js/lib/features/align-elements/AlignElements").default;
27
- type PopupMenu = import("diagram-js/lib/features/popup-menu/PopupMenu").default;
28
- type Rules = import("diagram-js/lib/features/rules/Rules").default;
29
- export type Translate = typeof import("diagram-js/lib/i18n/translate/translate").default;
30
- type PopupMenuEntries = import("diagram-js/lib/features/popup-menu/PopupMenu").PopupMenuEntries;
31
- type PopupMenuProvider = import("diagram-js/lib/features/popup-menu/PopupMenuProvider").default;
32
- type PopupMenuTarget = import("diagram-js/lib/features/popup-menu/PopupMenu").PopupMenuTarget;
1
+ /**
2
+ * A provider for the `Align elements` popup menu.
3
+ *
4
+ * @implements {PopupMenuProvider}
5
+ *
6
+ */
7
+ export default class AlignElementsMenuProvider implements PopupMenuProvider {
8
+ static $inject: string[];
9
+
10
+ /**
11
+ * @param popupMenu
12
+ * @param alignElements
13
+ * @param translate
14
+ * @param rules
15
+ */
16
+ constructor(popupMenu: PopupMenu, alignElements: AlignElements, translate: Translate, rules: Rules);
17
+
18
+ /**
19
+ * @param target
20
+ *
21
+ * @return
22
+ */
23
+ getPopupMenuEntries(target: PopupMenuTarget): PopupMenuEntries;
24
+ }
25
+
26
+ type AlignElements = import("diagram-js/lib/features/align-elements/AlignElements").default;
27
+ type PopupMenu = import("diagram-js/lib/features/popup-menu/PopupMenu").default;
28
+ type Rules = import("diagram-js/lib/features/rules/Rules").default;
29
+ export type Translate = typeof import("diagram-js/lib/i18n/translate/translate").default;
30
+ type PopupMenuEntries = import("diagram-js/lib/features/popup-menu/PopupMenu").PopupMenuEntries;
31
+ type PopupMenuProvider = import("diagram-js/lib/features/popup-menu/PopupMenuProvider").default;
32
+ type PopupMenuTarget = import("diagram-js/lib/features/popup-menu/PopupMenu").PopupMenuTarget;
@@ -1,100 +1,100 @@
1
- import ICONS from './AlignElementsIcons';
2
-
3
- import {
4
- assign,
5
- forEach,
6
- } from 'min-dash';
7
-
8
- /**
9
- * @typedef {import('diagram-js/lib/features/align-elements/AlignElements').default} AlignElements
10
- * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu
11
- * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
12
- * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate
13
- *
14
- * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuEntries} PopupMenuEntries
15
- * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider
16
- * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget
17
- */
18
-
19
- var ALIGNMENT_OPTIONS = [
20
- 'left',
21
- 'center',
22
- 'right',
23
- 'top',
24
- 'middle',
25
- 'bottom'
26
- ];
27
-
28
- /**
29
- * A provider for the `Align elements` popup menu.
30
- *
31
- * @implements {PopupMenuProvider}
32
- *
33
- * @param {PopupMenu} popupMenu
34
- * @param {AlignElements} alignElements
35
- * @param {Translate} translate
36
- * @param {Rules} rules
37
- */
38
- export default function AlignElementsMenuProvider(popupMenu, alignElements, translate, rules) {
39
-
40
- this._alignElements = alignElements;
41
- this._translate = translate;
42
- this._popupMenu = popupMenu;
43
- this._rules = rules;
44
-
45
- popupMenu.registerProvider('align-elements', this);
46
- }
47
-
48
- AlignElementsMenuProvider.$inject = [
49
- 'popupMenu',
50
- 'alignElements',
51
- 'translate',
52
- 'rules'
53
- ];
54
-
55
- /**
56
- * @param {PopupMenuTarget} target
57
- *
58
- * @return {PopupMenuEntries}
59
- */
60
- AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(target) {
61
- var entries = {};
62
-
63
- if (this._isAllowed(target)) {
64
- assign(entries, this._getEntries(target));
65
- }
66
-
67
- return entries;
68
- };
69
-
70
- AlignElementsMenuProvider.prototype._isAllowed = function(target) {
71
- return this._rules.allowed('elements.align', { elements: target });
72
- };
73
-
74
- /**
75
- * @param {PopupMenuTarget} target
76
- *
77
- * @return {PopupMenuEntries}
78
- */
79
- AlignElementsMenuProvider.prototype._getEntries = function(target) {
80
- var alignElements = this._alignElements,
81
- translate = this._translate,
82
- popupMenu = this._popupMenu;
83
-
84
- var entries = {};
85
-
86
- forEach(ALIGNMENT_OPTIONS, function(alignment) {
87
- entries[ 'align-elements-' + alignment ] = {
88
- group: 'align',
89
- title: translate('Align elements ' + alignment),
90
- className: 'bjs-align-elements-menu-entry',
91
- imageHtml: ICONS[ alignment ],
92
- action: function() {
93
- alignElements.trigger(target, alignment);
94
- popupMenu.close();
95
- }
96
- };
97
- });
98
-
99
- return entries;
100
- };
1
+ import ICONS from './AlignElementsIcons';
2
+
3
+ import {
4
+ assign,
5
+ forEach,
6
+ } from 'min-dash';
7
+
8
+ /**
9
+ * @typedef {import('diagram-js/lib/features/align-elements/AlignElements').default} AlignElements
10
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').default} PopupMenu
11
+ * @typedef {import('diagram-js/lib/features/rules/Rules').default} Rules
12
+ * @typedef {import('diagram-js/lib/i18n/translate/translate').default} Translate
13
+ *
14
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuEntries} PopupMenuEntries
15
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenuProvider').default} PopupMenuProvider
16
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget
17
+ */
18
+
19
+ var ALIGNMENT_OPTIONS = [
20
+ 'left',
21
+ 'center',
22
+ 'right',
23
+ 'top',
24
+ 'middle',
25
+ 'bottom'
26
+ ];
27
+
28
+ /**
29
+ * A provider for the `Align elements` popup menu.
30
+ *
31
+ * @implements {PopupMenuProvider}
32
+ *
33
+ * @param {PopupMenu} popupMenu
34
+ * @param {AlignElements} alignElements
35
+ * @param {Translate} translate
36
+ * @param {Rules} rules
37
+ */
38
+ export default function AlignElementsMenuProvider(popupMenu, alignElements, translate, rules) {
39
+
40
+ this._alignElements = alignElements;
41
+ this._translate = translate;
42
+ this._popupMenu = popupMenu;
43
+ this._rules = rules;
44
+
45
+ popupMenu.registerProvider('align-elements', this);
46
+ }
47
+
48
+ AlignElementsMenuProvider.$inject = [
49
+ 'popupMenu',
50
+ 'alignElements',
51
+ 'translate',
52
+ 'rules'
53
+ ];
54
+
55
+ /**
56
+ * @param {PopupMenuTarget} target
57
+ *
58
+ * @return {PopupMenuEntries}
59
+ */
60
+ AlignElementsMenuProvider.prototype.getPopupMenuEntries = function(target) {
61
+ var entries = {};
62
+
63
+ if (this._isAllowed(target)) {
64
+ assign(entries, this._getEntries(target));
65
+ }
66
+
67
+ return entries;
68
+ };
69
+
70
+ AlignElementsMenuProvider.prototype._isAllowed = function(target) {
71
+ return this._rules.allowed('elements.align', { elements: target });
72
+ };
73
+
74
+ /**
75
+ * @param {PopupMenuTarget} target
76
+ *
77
+ * @return {PopupMenuEntries}
78
+ */
79
+ AlignElementsMenuProvider.prototype._getEntries = function(target) {
80
+ var alignElements = this._alignElements,
81
+ translate = this._translate,
82
+ popupMenu = this._popupMenu;
83
+
84
+ var entries = {};
85
+
86
+ forEach(ALIGNMENT_OPTIONS, function(alignment) {
87
+ entries[ 'align-elements-' + alignment ] = {
88
+ group: 'align',
89
+ title: translate('Align elements ' + alignment),
90
+ className: 'bjs-align-elements-menu-entry',
91
+ imageHtml: ICONS[ alignment ],
92
+ action: function() {
93
+ alignElements.trigger(target, alignment);
94
+ popupMenu.close();
95
+ }
96
+ };
97
+ });
98
+
99
+ return entries;
100
+ };
@@ -1,9 +1,9 @@
1
- /**
2
- * Rule provider for aligning BPMN elements.
3
- *
4
- */
5
- export default class BpmnAlignElements extends RuleProvider {
6
- }
7
-
8
- type EventBus = import("diagram-js/lib/core/EventBus").default;
9
- import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider';
1
+ /**
2
+ * Rule provider for aligning BPMN elements.
3
+ *
4
+ */
5
+ export default class BpmnAlignElements extends RuleProvider {
6
+ }
7
+
8
+ type EventBus = import("diagram-js/lib/core/EventBus").default;
9
+ import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider';