bpmn-js 18.2.0 → 18.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +23 -23
- package/README.md +95 -95
- package/dist/assets/bpmn-js.css +145 -145
- package/dist/bpmn-modeler.development.js +38704 -38477
- package/dist/bpmn-modeler.production.min.js +11 -11
- package/dist/bpmn-navigated-viewer.development.js +21139 -21139
- package/dist/bpmn-navigated-viewer.production.min.js +1 -1
- package/dist/bpmn-viewer.development.js +21080 -21080
- package/dist/bpmn-viewer.production.min.js +1 -1
- package/lib/BaseModeler.d.ts +15 -15
- package/lib/BaseModeler.js +79 -79
- package/lib/BaseViewer.d.ts +352 -352
- package/lib/BaseViewer.js +858 -858
- package/lib/Modeler.d.ts +86 -86
- package/lib/Modeler.js +206 -206
- package/lib/NavigatedViewer.d.ts +11 -11
- package/lib/NavigatedViewer.js +37 -37
- package/lib/Viewer.d.ts +47 -47
- package/lib/Viewer.js +76 -76
- package/lib/core/index.d.ts +10 -10
- package/lib/core/index.js +8 -8
- package/lib/draw/BpmnRenderUtil.d.ts +123 -123
- package/lib/draw/BpmnRenderUtil.js +256 -256
- package/lib/draw/BpmnRenderer.d.ts +116 -116
- package/lib/draw/BpmnRenderer.js +2339 -2339
- package/lib/draw/PathMap.d.ts +330 -330
- package/lib/draw/PathMap.js +478 -478
- package/lib/draw/TextRenderer.d.ts +74 -74
- package/lib/draw/TextRenderer.js +136 -136
- package/lib/draw/index.d.ts +10 -10
- package/lib/draw/index.js +11 -11
- package/lib/features/align-elements/AlignElementsContextPadProvider.d.ts +32 -32
- package/lib/features/align-elements/AlignElementsContextPadProvider.js +105 -105
- package/lib/features/align-elements/AlignElementsIcons.d.ts +10 -10
- package/lib/features/align-elements/AlignElementsIcons.js +43 -43
- package/lib/features/align-elements/AlignElementsMenuProvider.d.ts +32 -32
- package/lib/features/align-elements/AlignElementsMenuProvider.js +100 -100
- package/lib/features/align-elements/BpmnAlignElements.d.ts +9 -9
- package/lib/features/align-elements/BpmnAlignElements.js +45 -45
- package/lib/features/align-elements/index.d.ts +11 -11
- package/lib/features/align-elements/index.js +23 -23
- package/lib/features/append-preview/AppendPreview.d.ts +36 -36
- package/lib/features/append-preview/AppendPreview.js +108 -108
- package/lib/features/append-preview/index.d.ts +16 -16
- package/lib/features/append-preview/index.js +15 -15
- package/lib/features/auto-place/BpmnAutoPlace.d.ts +15 -15
- package/lib/features/auto-place/BpmnAutoPlace.js +22 -22
- package/lib/features/auto-place/BpmnAutoPlaceUtil.d.ts +52 -52
- package/lib/features/auto-place/BpmnAutoPlaceUtil.js +226 -226
- package/lib/features/auto-place/index.d.ts +7 -7
- package/lib/features/auto-place/index.js +8 -8
- package/lib/features/auto-resize/BpmnAutoResize.d.ts +25 -25
- package/lib/features/auto-resize/BpmnAutoResize.js +45 -45
- package/lib/features/auto-resize/BpmnAutoResizeProvider.d.ts +26 -26
- package/lib/features/auto-resize/BpmnAutoResizeProvider.js +69 -69
- package/lib/features/auto-resize/index.d.ts +8 -8
- package/lib/features/auto-resize/index.js +12 -12
- package/lib/features/context-pad/ContextPadProvider.d.ts +62 -62
- package/lib/features/context-pad/ContextPadProvider.js +582 -582
- package/lib/features/context-pad/index.d.ts +7 -7
- package/lib/features/context-pad/index.js +22 -22
- package/lib/features/copy-paste/BpmnCopyPaste.d.ts +17 -17
- package/lib/features/copy-paste/BpmnCopyPaste.js +192 -192
- package/lib/features/copy-paste/ModdleCopy.d.ts +45 -45
- package/lib/features/copy-paste/index.d.ts +9 -9
- package/lib/features/copy-paste/index.js +13 -13
- package/lib/features/di-ordering/BpmnDiOrdering.d.ts +11 -11
- package/lib/features/di-ordering/BpmnDiOrdering.js +48 -48
- package/lib/features/di-ordering/index.d.ts +6 -6
- package/lib/features/di-ordering/index.js +7 -7
- package/lib/features/distribute-elements/BpmnDistributeElements.d.ts +10 -10
- package/lib/features/distribute-elements/BpmnDistributeElements.js +60 -60
- package/lib/features/distribute-elements/DistributeElementsIcons.d.ts +5 -5
- package/lib/features/distribute-elements/DistributeElementsIcons.js +18 -18
- package/lib/features/distribute-elements/DistributeElementsMenuProvider.d.ts +32 -32
- package/lib/features/distribute-elements/DistributeElementsMenuProvider.js +92 -92
- package/lib/features/distribute-elements/index.d.ts +9 -9
- package/lib/features/distribute-elements/index.js +19 -19
- package/lib/features/drilldown/DrilldownBreadcrumbs.d.ts +19 -19
- package/lib/features/drilldown/DrilldownBreadcrumbs.js +138 -138
- package/lib/features/drilldown/DrilldownCentering.d.ts +17 -17
- package/lib/features/drilldown/DrilldownCentering.js +122 -122
- package/lib/features/drilldown/DrilldownOverlayBehavior.d.ts +20 -20
- package/lib/features/drilldown/DrilldownOverlayBehavior.js +218 -218
- package/lib/features/drilldown/SubprocessCompatibility.d.ts +21 -21
- package/lib/features/drilldown/SubprocessCompatibility.js +266 -266
- package/lib/features/drilldown/index.d.ts +13 -13
- package/lib/features/drilldown/index.js +16 -16
- package/lib/features/editor-actions/BpmnEditorActions.d.ts +13 -13
- package/lib/features/editor-actions/BpmnEditorActions.js +187 -187
- package/lib/features/editor-actions/index.d.ts +6 -6
- package/lib/features/editor-actions/index.js +10 -10
- package/lib/features/grid-snapping/BpmnGridSnapping.d.ts +9 -9
- package/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.d.ts +14 -14
- package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.d.ts +27 -27
- package/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js +155 -155
- package/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.d.ts +13 -13
- package/lib/features/grid-snapping/behavior/index.d.ts +10 -10
- package/lib/features/grid-snapping/index.d.ts +11 -11
- package/lib/features/interaction-events/BpmnInteractionEvents.d.ts +18 -18
- package/lib/features/interaction-events/BpmnInteractionEvents.js +146 -146
- package/lib/features/interaction-events/index.d.ts +6 -6
- package/lib/features/interaction-events/index.js +5 -5
- package/lib/features/keyboard/BpmnKeyboardBindings.d.ts +15 -15
- package/lib/features/keyboard/BpmnKeyboardBindings.js +179 -179
- package/lib/features/keyboard/index.d.ts +7 -7
- package/lib/features/keyboard/index.js +11 -11
- package/lib/features/label-editing/LabelEditingPreview.d.ts +13 -13
- package/lib/features/label-editing/LabelEditingPreview.js +145 -145
- package/lib/features/label-editing/LabelEditingProvider.d.ts +62 -62
- package/lib/features/label-editing/LabelEditingProvider.js +519 -519
- package/lib/features/label-editing/LabelUtil.d.ts +1 -1
- package/lib/features/label-editing/LabelUtil.js +4 -4
- package/lib/features/label-editing/cmd/UpdateLabelHandler.d.ts +22 -22
- package/lib/features/label-editing/cmd/UpdateLabelHandler.js +149 -149
- package/lib/features/label-editing/index.d.ts +9 -9
- package/lib/features/label-editing/index.js +21 -21
- package/lib/features/modeling/BpmnFactory.d.ts +73 -73
- package/lib/features/modeling/BpmnFactory.js +180 -180
- package/lib/features/modeling/BpmnLayouter.d.ts +30 -30
- package/lib/features/modeling/BpmnLayouter.js +488 -488
- package/lib/features/modeling/BpmnUpdater.d.ts +90 -90
- package/lib/features/modeling/BpmnUpdater.js +818 -818
- package/lib/features/modeling/ElementFactory.d.ts +117 -117
- package/lib/features/modeling/ElementFactory.js +412 -412
- package/lib/features/modeling/ElementFactory.test.ts +132 -132
- package/lib/features/modeling/Modeling.d.ts +150 -150
- package/lib/features/modeling/Modeling.js +309 -309
- package/lib/features/modeling/Modeling.test.ts +147 -147
- package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.d.ts +19 -19
- package/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js +288 -288
- package/lib/features/modeling/behavior/AppendBehavior.d.ts +6 -6
- package/lib/features/modeling/behavior/AppendBehavior.js +42 -42
- package/lib/features/modeling/behavior/AssociationBehavior.d.ts +11 -11
- package/lib/features/modeling/behavior/AttachEventBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/AttachEventBehavior.js +106 -106
- package/lib/features/modeling/behavior/BoundaryEventBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/BoundaryEventBehavior.js +74 -74
- package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.d.ts +17 -17
- package/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js +222 -222
- package/lib/features/modeling/behavior/CreateBehavior.d.ts +9 -9
- package/lib/features/modeling/behavior/CreateBehavior.js +33 -33
- package/lib/features/modeling/behavior/CreateDataObjectBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/CreateDataObjectBehavior.js +43 -43
- package/lib/features/modeling/behavior/CreateParticipantBehavior.d.ts +19 -19
- package/lib/features/modeling/behavior/CreateParticipantBehavior.js +237 -237
- package/lib/features/modeling/behavior/DataInputAssociationBehavior.d.ts +21 -21
- package/lib/features/modeling/behavior/DataInputAssociationBehavior.js +162 -162
- package/lib/features/modeling/behavior/DataStoreBehavior.d.ts +19 -19
- package/lib/features/modeling/behavior/DeleteLaneBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/DeleteLaneBehavior.js +162 -162
- package/lib/features/modeling/behavior/DetachEventBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/DetachEventBehavior.js +101 -101
- package/lib/features/modeling/behavior/DropOnFlowBehavior.d.ts +13 -13
- package/lib/features/modeling/behavior/DropOnFlowBehavior.js +221 -221
- package/lib/features/modeling/behavior/EventBasedGatewayBehavior.d.ts +11 -11
- package/lib/features/modeling/behavior/EventBasedGatewayBehavior.js +110 -110
- package/lib/features/modeling/behavior/FixHoverBehavior.d.ts +17 -17
- package/lib/features/modeling/behavior/GroupBehavior.d.ts +26 -26
- package/lib/features/modeling/behavior/ImportDockingFix.d.ts +13 -13
- package/lib/features/modeling/behavior/ImportDockingFix.js +83 -83
- package/lib/features/modeling/behavior/IsHorizontalFix.d.ts +10 -10
- package/lib/features/modeling/behavior/IsHorizontalFix.js +54 -54
- package/lib/features/modeling/behavior/LabelBehavior.d.ts +56 -56
- package/lib/features/modeling/behavior/LabelBehavior.js +364 -364
- package/lib/features/modeling/behavior/LayoutConnectionBehavior.d.ts +16 -16
- package/lib/features/modeling/behavior/LayoutConnectionBehavior.js +121 -121
- package/lib/features/modeling/behavior/MessageFlowBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/NonInterruptingBehavior.d.ts +4 -4
- package/lib/features/modeling/behavior/NonInterruptingBehavior.js +41 -41
- package/lib/features/modeling/behavior/RemoveElementBehavior.d.ts +13 -13
- package/lib/features/modeling/behavior/RemoveElementBehavior.js +91 -91
- package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.d.ts +16 -16
- package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +41 -41
- package/lib/features/modeling/behavior/RemoveParticipantBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/RemoveParticipantBehavior.js +59 -59
- package/lib/features/modeling/behavior/ReplaceConnectionBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/ReplaceConnectionBehavior.js +194 -194
- package/lib/features/modeling/behavior/ReplaceElementBehaviour.d.ts +23 -23
- package/lib/features/modeling/behavior/ReplaceElementBehaviour.js +144 -144
- package/lib/features/modeling/behavior/ResizeBehavior.d.ts +64 -64
- package/lib/features/modeling/behavior/ResizeBehavior.js +265 -265
- package/lib/features/modeling/behavior/ResizeLaneBehavior.d.ts +16 -16
- package/lib/features/modeling/behavior/ResizeLaneBehavior.js +70 -70
- package/lib/features/modeling/behavior/RootElementReferenceBehavior.d.ts +25 -25
- package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.d.ts +16 -16
- package/lib/features/modeling/behavior/SetCompensationActivityAfterPasteBehavior.js +66 -66
- package/lib/features/modeling/behavior/SpaceToolBehavior.d.ts +10 -10
- package/lib/features/modeling/behavior/SpaceToolBehavior.js +207 -207
- package/lib/features/modeling/behavior/SubProcessPlaneBehavior.d.ts +28 -28
- package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +588 -588
- package/lib/features/modeling/behavior/SubProcessStartEventBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/SubProcessStartEventBehavior.js +55 -55
- package/lib/features/modeling/behavior/TextAnnotationBehavior.d.ts +6 -6
- package/lib/features/modeling/behavior/TextAnnotationBehavior.js +42 -42
- package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.d.ts +14 -14
- package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +87 -87
- package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.d.ts +13 -13
- package/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js +156 -156
- package/lib/features/modeling/behavior/UnclaimIdBehavior.d.ts +19 -19
- package/lib/features/modeling/behavior/UnclaimIdBehavior.js +64 -64
- package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.d.ts +16 -16
- package/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js +59 -59
- package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.d.ts +15 -15
- package/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js +157 -157
- package/lib/features/modeling/behavior/index.d.ts +2 -2
- package/lib/features/modeling/behavior/index.js +131 -131
- package/lib/features/modeling/behavior/util/CategoryUtil.d.ts +49 -49
- package/lib/features/modeling/behavior/util/CategoryUtil.js +86 -86
- package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.d.ts +19 -19
- package/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js +22 -22
- package/lib/features/modeling/behavior/util/GeometricUtil.d.ts +1 -1
- package/lib/features/modeling/behavior/util/LabelLayoutUtil.d.ts +32 -32
- package/lib/features/modeling/behavior/util/LabelLayoutUtil.js +41 -41
- package/lib/features/modeling/behavior/util/LayoutUtil.d.ts +48 -48
- package/lib/features/modeling/behavior/util/LayoutUtil.js +259 -259
- package/lib/features/modeling/behavior/util/LineAttachmentUtil.d.ts +37 -37
- package/lib/features/modeling/behavior/util/LineAttachmentUtil.js +241 -241
- package/lib/features/modeling/behavior/util/LineIntersect.d.ts +13 -13
- package/lib/features/modeling/behavior/util/LineIntersect.js +39 -39
- package/lib/features/modeling/behavior/util/NonInterruptingUtil.d.ts +3 -3
- package/lib/features/modeling/behavior/util/NonInterruptingUtil.js +32 -32
- package/lib/features/modeling/behavior/util/ResizeUtil.d.ts +1 -1
- package/lib/features/modeling/cmd/AddLaneHandler.d.ts +22 -22
- package/lib/features/modeling/cmd/AddLaneHandler.js +187 -187
- package/lib/features/modeling/cmd/IdClaimHandler.d.ts +22 -22
- package/lib/features/modeling/cmd/IdClaimHandler.js +51 -51
- package/lib/features/modeling/cmd/ResizeLaneHandler.d.ts +39 -39
- package/lib/features/modeling/cmd/ResizeLaneHandler.js +146 -146
- package/lib/features/modeling/cmd/SetColorHandler.d.ts +18 -18
- package/lib/features/modeling/cmd/SplitLaneHandler.d.ts +20 -20
- package/lib/features/modeling/cmd/SplitLaneHandler.js +99 -99
- package/lib/features/modeling/cmd/UpdateCanvasRootHandler.d.ts +20 -20
- package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +99 -99
- package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.d.ts +21 -21
- package/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js +218 -218
- package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.d.ts +20 -20
- package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +107 -107
- package/lib/features/modeling/cmd/UpdatePropertiesHandler.d.ts +58 -58
- package/lib/features/modeling/cmd/UpdatePropertiesHandler.js +260 -260
- package/lib/features/modeling/cmd/UpdateSemanticParentHandler.d.ts +18 -18
- package/lib/features/modeling/index.d.ts +27 -27
- package/lib/features/modeling/index.js +45 -45
- package/lib/features/modeling/util/LaneUtil.d.ts +46 -46
- package/lib/features/modeling/util/LaneUtil.js +188 -188
- package/lib/features/modeling/util/ModelingUtil.d.ts +23 -23
- package/lib/features/modeling/util/ModelingUtil.js +88 -88
- package/lib/features/modeling-feedback/ModelingFeedback.d.ts +13 -13
- package/lib/features/modeling-feedback/ModelingFeedback.js +46 -46
- package/lib/features/modeling-feedback/index.d.ts +7 -7
- package/lib/features/modeling-feedback/index.js +12 -12
- package/lib/features/ordering/BpmnOrderingProvider.d.ts +19 -19
- package/lib/features/ordering/BpmnOrderingProvider.js +191 -191
- package/lib/features/ordering/index.d.ts +6 -6
- package/lib/features/ordering/index.js +5 -5
- package/lib/features/outline/OutlineProvider.d.ts +39 -39
- package/lib/features/outline/OutlineProvider.js +189 -189
- package/lib/features/outline/OutlineUtil.d.ts +23 -23
- package/lib/features/outline/OutlineUtil.js +35 -35
- package/lib/features/outline/index.d.ts +7 -7
- package/lib/features/outline/index.js +10 -10
- package/lib/features/palette/PaletteProvider.d.ts +34 -34
- package/lib/features/palette/PaletteProvider.js +214 -214
- package/lib/features/palette/index.d.ts +9 -9
- package/lib/features/palette/index.js +23 -23
- package/lib/features/popup-menu/ReplaceMenuProvider.d.ts +52 -52
- package/lib/features/popup-menu/ReplaceMenuProvider.js +656 -629
- package/lib/features/popup-menu/index.d.ts +11 -11
- package/lib/features/popup-menu/index.js +16 -16
- package/lib/features/popup-menu/util/Icons.d.ts +5 -5
- package/lib/features/popup-menu/util/Icons.js +14 -14
- package/lib/features/popup-menu/util/TypeUtil.d.ts +14 -14
- package/lib/features/popup-menu/util/TypeUtil.js +52 -52
- package/lib/features/replace/BpmnReplace.d.ts +45 -45
- package/lib/features/replace/BpmnReplace.js +391 -391
- package/lib/features/replace/ReplaceOptions.d.ts +85 -79
- package/lib/features/replace/ReplaceOptions.js +1198 -998
- package/lib/features/replace/index.d.ts +9 -9
- package/lib/features/replace/index.js +14 -14
- package/lib/features/replace-preview/BpmnReplacePreview.d.ts +17 -17
- package/lib/features/replace-preview/BpmnReplacePreview.js +139 -139
- package/lib/features/replace-preview/index.d.ts +7 -7
- package/lib/features/replace-preview/index.js +11 -11
- package/lib/features/rules/BpmnRules.d.ts +181 -181
- package/lib/features/rules/BpmnRules.js +1191 -1191
- package/lib/features/rules/index.d.ts +7 -7
- package/lib/features/rules/index.js +11 -11
- package/lib/features/search/BpmnSearchProvider.d.ts +34 -34
- package/lib/features/search/BpmnSearchProvider.js +91 -91
- package/lib/features/search/index.d.ts +7 -7
- package/lib/features/search/index.js +14 -14
- package/lib/features/snapping/BpmnConnectSnapping.d.ts +17 -17
- package/lib/features/snapping/BpmnCreateMoveSnapping.d.ts +41 -41
- package/lib/features/snapping/BpmnCreateMoveSnapping.js +289 -289
- package/lib/features/snapping/BpmnSnappingUtil.d.ts +11 -11
- package/lib/features/snapping/index.d.ts +9 -9
- package/lib/features/snapping/index.js +12 -12
- package/lib/features/space-tool/BpmnSpaceTool.d.ts +21 -21
- package/lib/features/space-tool/BpmnSpaceTool.js +69 -69
- package/lib/features/space-tool/index.d.ts +6 -6
- package/lib/features/space-tool/index.js +7 -7
- package/lib/import/BpmnImporter.d.ts +51 -51
- package/lib/import/BpmnImporter.js +363 -363
- package/lib/import/BpmnTreeWalker.d.ts +20 -20
- package/lib/import/BpmnTreeWalker.js +453 -453
- package/lib/import/Importer.d.ts +25 -25
- package/lib/import/Importer.js +222 -222
- package/lib/import/Util.d.ts +1 -1
- package/lib/import/Util.js +6 -6
- package/lib/import/index.d.ts +6 -6
- package/lib/import/index.js +9 -9
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/model/Types.d.ts +25 -25
- package/lib/model/Types.ts +40 -40
- package/lib/util/CompatibilityUtil.d.ts +8 -8
- package/lib/util/CompatibilityUtil.js +29 -29
- package/lib/util/DiUtil.d.ts +60 -60
- package/lib/util/DiUtil.js +122 -122
- package/lib/util/DrilldownUtil.d.ts +39 -39
- package/lib/util/DrilldownUtil.js +69 -69
- package/lib/util/LabelUtil.d.ts +83 -83
- package/lib/util/LabelUtil.js +266 -266
- package/lib/util/ModelUtil.d.ts +40 -40
- package/lib/util/ModelUtil.js +58 -58
- package/lib/util/PoweredByUtil.d.ts +8 -8
- package/lib/util/PoweredByUtil.js +99 -99
- package/lib/util/Types.js +4 -4
- package/lib/util/Types.ts +3 -3
- package/package.json +131 -131
- package/test/helper/TranslationCollector.js +15 -15
- package/test/helper/index.js +313 -313
- package/test/matchers/BoundsMatchers.js +252 -252
- package/test/matchers/ConnectionMatchers.js +165 -165
- package/test/matchers/JSONMatcher.js +19 -19
- package/test/util/KeyEvents.js +22 -22
- package/test/util/MockEvents.js +61 -61
- package/test/util/custom-rules/CustomRules.js +16 -16
- package/test/util/custom-rules/index.js +6 -6
|
@@ -1,241 +1,241 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('diagram-js/lib/util/Types').Point} Point
|
|
3
|
-
*
|
|
4
|
-
* @typedef { {
|
|
5
|
-
* type: 'bendpoint' | 'segment';
|
|
6
|
-
* position: Point;
|
|
7
|
-
* segmentIndex: number;
|
|
8
|
-
* bendpointIndex?: number;
|
|
9
|
-
* relativeLocation?: number;
|
|
10
|
-
* } } Attachment
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
var sqrt = Math.sqrt,
|
|
14
|
-
min = Math.min,
|
|
15
|
-
max = Math.max,
|
|
16
|
-
abs = Math.abs;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Calculate the square (power to two) of a number.
|
|
20
|
-
*
|
|
21
|
-
* @param {number} n
|
|
22
|
-
*
|
|
23
|
-
* @return {number}
|
|
24
|
-
*/
|
|
25
|
-
function sq(n) {
|
|
26
|
-
return Math.pow(n, 2);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Get distance between two points.
|
|
31
|
-
*
|
|
32
|
-
* @param {Point} p1
|
|
33
|
-
* @param {Point} p2
|
|
34
|
-
*
|
|
35
|
-
* @return {number}
|
|
36
|
-
*/
|
|
37
|
-
function getDistance(p1, p2) {
|
|
38
|
-
return sqrt(sq(p1.x - p2.x) + sq(p1.y - p2.y));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Return the attachment of the given point on the specified line.
|
|
43
|
-
*
|
|
44
|
-
* The attachment is either a bendpoint (attached to the given point)
|
|
45
|
-
* or segment (attached to a location on a line segment) attachment:
|
|
46
|
-
*
|
|
47
|
-
* ```javascript
|
|
48
|
-
* var pointAttachment = {
|
|
49
|
-
* type: 'bendpoint',
|
|
50
|
-
* bendpointIndex: 3,
|
|
51
|
-
* position: { x: 10, y: 10 } // the attach point on the line
|
|
52
|
-
* };
|
|
53
|
-
*
|
|
54
|
-
* var segmentAttachment = {
|
|
55
|
-
* type: 'segment',
|
|
56
|
-
* segmentIndex: 2,
|
|
57
|
-
* relativeLocation: 0.31, // attach point location between 0 (at start) and 1 (at end)
|
|
58
|
-
* position: { x: 10, y: 10 } // the attach point on the line
|
|
59
|
-
* };
|
|
60
|
-
* ```
|
|
61
|
-
*
|
|
62
|
-
* @param {Point} point
|
|
63
|
-
* @param {Point[]} line
|
|
64
|
-
*
|
|
65
|
-
* @return {Attachment}
|
|
66
|
-
*/
|
|
67
|
-
export function getAttachment(point, line) {
|
|
68
|
-
|
|
69
|
-
var idx = 0,
|
|
70
|
-
segmentStart,
|
|
71
|
-
segmentEnd,
|
|
72
|
-
segmentStartDistance,
|
|
73
|
-
segmentEndDistance,
|
|
74
|
-
attachmentPosition,
|
|
75
|
-
minDistance,
|
|
76
|
-
intersections,
|
|
77
|
-
attachment,
|
|
78
|
-
attachmentDistance,
|
|
79
|
-
closestAttachmentDistance,
|
|
80
|
-
closestAttachment;
|
|
81
|
-
|
|
82
|
-
for (idx = 0; idx < line.length - 1; idx++) {
|
|
83
|
-
|
|
84
|
-
segmentStart = line[idx];
|
|
85
|
-
segmentEnd = line[idx + 1];
|
|
86
|
-
|
|
87
|
-
if (pointsEqual(segmentStart, segmentEnd)) {
|
|
88
|
-
intersections = [ segmentStart ];
|
|
89
|
-
} else {
|
|
90
|
-
segmentStartDistance = getDistance(point, segmentStart);
|
|
91
|
-
segmentEndDistance = getDistance(point, segmentEnd);
|
|
92
|
-
|
|
93
|
-
minDistance = min(segmentStartDistance, segmentEndDistance);
|
|
94
|
-
|
|
95
|
-
intersections = getCircleSegmentIntersections(segmentStart, segmentEnd, point, minDistance);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
if (intersections.length < 1) {
|
|
99
|
-
throw new Error('expected between [1, 2] circle -> line intersections');
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// one intersection -> bendpoint attachment
|
|
103
|
-
if (intersections.length === 1) {
|
|
104
|
-
attachment = {
|
|
105
|
-
type: 'bendpoint',
|
|
106
|
-
position: intersections[0],
|
|
107
|
-
segmentIndex: idx,
|
|
108
|
-
bendpointIndex: pointsEqual(segmentStart, intersections[0]) ? idx : idx + 1
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// two intersections -> segment attachment
|
|
113
|
-
if (intersections.length === 2) {
|
|
114
|
-
|
|
115
|
-
attachmentPosition = mid(intersections[0], intersections[1]);
|
|
116
|
-
|
|
117
|
-
attachment = {
|
|
118
|
-
type: 'segment',
|
|
119
|
-
position: attachmentPosition,
|
|
120
|
-
segmentIndex: idx,
|
|
121
|
-
relativeLocation: getDistance(segmentStart, attachmentPosition) / getDistance(segmentStart, segmentEnd)
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
attachmentDistance = getDistance(attachment.position, point);
|
|
126
|
-
|
|
127
|
-
if (!closestAttachment || closestAttachmentDistance > attachmentDistance) {
|
|
128
|
-
closestAttachment = attachment;
|
|
129
|
-
closestAttachmentDistance = attachmentDistance;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return closestAttachment;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Get the intersection between a circle and a line segment.
|
|
138
|
-
*
|
|
139
|
-
* @param {Point} s1 segment start
|
|
140
|
-
* @param {Point} s2 segment end
|
|
141
|
-
* @param {Point} cc circle center
|
|
142
|
-
* @param {number} cr circle radius
|
|
143
|
-
*
|
|
144
|
-
* @return {Point[]} intersections
|
|
145
|
-
*/
|
|
146
|
-
function getCircleSegmentIntersections(s1, s2, cc, cr) {
|
|
147
|
-
|
|
148
|
-
var baX = s2.x - s1.x;
|
|
149
|
-
var baY = s2.y - s1.y;
|
|
150
|
-
var caX = cc.x - s1.x;
|
|
151
|
-
var caY = cc.y - s1.y;
|
|
152
|
-
|
|
153
|
-
var a = baX * baX + baY * baY;
|
|
154
|
-
var bBy2 = baX * caX + baY * caY;
|
|
155
|
-
var c = caX * caX + caY * caY - cr * cr;
|
|
156
|
-
|
|
157
|
-
var pBy2 = bBy2 / a;
|
|
158
|
-
var q = c / a;
|
|
159
|
-
|
|
160
|
-
var disc = pBy2 * pBy2 - q;
|
|
161
|
-
|
|
162
|
-
// check against negative value to work around
|
|
163
|
-
// negative, very close to zero results (-4e-15)
|
|
164
|
-
// being produced in some environments
|
|
165
|
-
if (disc < 0 && disc > -0.000001) {
|
|
166
|
-
disc = 0;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (disc < 0) {
|
|
170
|
-
return [];
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// if disc == 0 ... dealt with later
|
|
174
|
-
var tmpSqrt = sqrt(disc);
|
|
175
|
-
var abScalingFactor1 = -pBy2 + tmpSqrt;
|
|
176
|
-
var abScalingFactor2 = -pBy2 - tmpSqrt;
|
|
177
|
-
|
|
178
|
-
var i1 = {
|
|
179
|
-
x: s1.x - baX * abScalingFactor1,
|
|
180
|
-
y: s1.y - baY * abScalingFactor1
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
if (disc === 0) { // abScalingFactor1 == abScalingFactor2
|
|
184
|
-
return [ i1 ];
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
var i2 = {
|
|
188
|
-
x: s1.x - baX * abScalingFactor2,
|
|
189
|
-
y: s1.y - baY * abScalingFactor2
|
|
190
|
-
};
|
|
191
|
-
|
|
192
|
-
// return only points on line segment
|
|
193
|
-
return [ i1, i2 ].filter(function(p) {
|
|
194
|
-
return isPointInSegment(p, s1, s2);
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
function isPointInSegment(p, segmentStart, segmentEnd) {
|
|
200
|
-
return (
|
|
201
|
-
fenced(p.x, segmentStart.x, segmentEnd.x) &&
|
|
202
|
-
fenced(p.y, segmentStart.y, segmentEnd.y)
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
function fenced(n, rangeStart, rangeEnd) {
|
|
207
|
-
|
|
208
|
-
// use matching threshold to work around
|
|
209
|
-
// precision errors in intersection computation
|
|
210
|
-
|
|
211
|
-
return (
|
|
212
|
-
n >= min(rangeStart, rangeEnd) - EQUAL_THRESHOLD &&
|
|
213
|
-
n <= max(rangeStart, rangeEnd) + EQUAL_THRESHOLD
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Calculate the mid between two points.
|
|
219
|
-
*
|
|
220
|
-
* @param {Point} p1
|
|
221
|
-
* @param {Point} p2
|
|
222
|
-
*
|
|
223
|
-
* @return {Point}
|
|
224
|
-
*/
|
|
225
|
-
function mid(p1, p2) {
|
|
226
|
-
|
|
227
|
-
return {
|
|
228
|
-
x: (p1.x + p2.x) / 2,
|
|
229
|
-
y: (p1.y + p2.y) / 2
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
var EQUAL_THRESHOLD = 0.1;
|
|
234
|
-
|
|
235
|
-
function pointsEqual(p1, p2) {
|
|
236
|
-
|
|
237
|
-
return (
|
|
238
|
-
abs(p1.x - p2.x) <= EQUAL_THRESHOLD &&
|
|
239
|
-
abs(p1.y - p2.y) <= EQUAL_THRESHOLD
|
|
240
|
-
);
|
|
241
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('diagram-js/lib/util/Types').Point} Point
|
|
3
|
+
*
|
|
4
|
+
* @typedef { {
|
|
5
|
+
* type: 'bendpoint' | 'segment';
|
|
6
|
+
* position: Point;
|
|
7
|
+
* segmentIndex: number;
|
|
8
|
+
* bendpointIndex?: number;
|
|
9
|
+
* relativeLocation?: number;
|
|
10
|
+
* } } Attachment
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
var sqrt = Math.sqrt,
|
|
14
|
+
min = Math.min,
|
|
15
|
+
max = Math.max,
|
|
16
|
+
abs = Math.abs;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Calculate the square (power to two) of a number.
|
|
20
|
+
*
|
|
21
|
+
* @param {number} n
|
|
22
|
+
*
|
|
23
|
+
* @return {number}
|
|
24
|
+
*/
|
|
25
|
+
function sq(n) {
|
|
26
|
+
return Math.pow(n, 2);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Get distance between two points.
|
|
31
|
+
*
|
|
32
|
+
* @param {Point} p1
|
|
33
|
+
* @param {Point} p2
|
|
34
|
+
*
|
|
35
|
+
* @return {number}
|
|
36
|
+
*/
|
|
37
|
+
function getDistance(p1, p2) {
|
|
38
|
+
return sqrt(sq(p1.x - p2.x) + sq(p1.y - p2.y));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Return the attachment of the given point on the specified line.
|
|
43
|
+
*
|
|
44
|
+
* The attachment is either a bendpoint (attached to the given point)
|
|
45
|
+
* or segment (attached to a location on a line segment) attachment:
|
|
46
|
+
*
|
|
47
|
+
* ```javascript
|
|
48
|
+
* var pointAttachment = {
|
|
49
|
+
* type: 'bendpoint',
|
|
50
|
+
* bendpointIndex: 3,
|
|
51
|
+
* position: { x: 10, y: 10 } // the attach point on the line
|
|
52
|
+
* };
|
|
53
|
+
*
|
|
54
|
+
* var segmentAttachment = {
|
|
55
|
+
* type: 'segment',
|
|
56
|
+
* segmentIndex: 2,
|
|
57
|
+
* relativeLocation: 0.31, // attach point location between 0 (at start) and 1 (at end)
|
|
58
|
+
* position: { x: 10, y: 10 } // the attach point on the line
|
|
59
|
+
* };
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* @param {Point} point
|
|
63
|
+
* @param {Point[]} line
|
|
64
|
+
*
|
|
65
|
+
* @return {Attachment}
|
|
66
|
+
*/
|
|
67
|
+
export function getAttachment(point, line) {
|
|
68
|
+
|
|
69
|
+
var idx = 0,
|
|
70
|
+
segmentStart,
|
|
71
|
+
segmentEnd,
|
|
72
|
+
segmentStartDistance,
|
|
73
|
+
segmentEndDistance,
|
|
74
|
+
attachmentPosition,
|
|
75
|
+
minDistance,
|
|
76
|
+
intersections,
|
|
77
|
+
attachment,
|
|
78
|
+
attachmentDistance,
|
|
79
|
+
closestAttachmentDistance,
|
|
80
|
+
closestAttachment;
|
|
81
|
+
|
|
82
|
+
for (idx = 0; idx < line.length - 1; idx++) {
|
|
83
|
+
|
|
84
|
+
segmentStart = line[idx];
|
|
85
|
+
segmentEnd = line[idx + 1];
|
|
86
|
+
|
|
87
|
+
if (pointsEqual(segmentStart, segmentEnd)) {
|
|
88
|
+
intersections = [ segmentStart ];
|
|
89
|
+
} else {
|
|
90
|
+
segmentStartDistance = getDistance(point, segmentStart);
|
|
91
|
+
segmentEndDistance = getDistance(point, segmentEnd);
|
|
92
|
+
|
|
93
|
+
minDistance = min(segmentStartDistance, segmentEndDistance);
|
|
94
|
+
|
|
95
|
+
intersections = getCircleSegmentIntersections(segmentStart, segmentEnd, point, minDistance);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (intersections.length < 1) {
|
|
99
|
+
throw new Error('expected between [1, 2] circle -> line intersections');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// one intersection -> bendpoint attachment
|
|
103
|
+
if (intersections.length === 1) {
|
|
104
|
+
attachment = {
|
|
105
|
+
type: 'bendpoint',
|
|
106
|
+
position: intersections[0],
|
|
107
|
+
segmentIndex: idx,
|
|
108
|
+
bendpointIndex: pointsEqual(segmentStart, intersections[0]) ? idx : idx + 1
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// two intersections -> segment attachment
|
|
113
|
+
if (intersections.length === 2) {
|
|
114
|
+
|
|
115
|
+
attachmentPosition = mid(intersections[0], intersections[1]);
|
|
116
|
+
|
|
117
|
+
attachment = {
|
|
118
|
+
type: 'segment',
|
|
119
|
+
position: attachmentPosition,
|
|
120
|
+
segmentIndex: idx,
|
|
121
|
+
relativeLocation: getDistance(segmentStart, attachmentPosition) / getDistance(segmentStart, segmentEnd)
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
attachmentDistance = getDistance(attachment.position, point);
|
|
126
|
+
|
|
127
|
+
if (!closestAttachment || closestAttachmentDistance > attachmentDistance) {
|
|
128
|
+
closestAttachment = attachment;
|
|
129
|
+
closestAttachmentDistance = attachmentDistance;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return closestAttachment;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Get the intersection between a circle and a line segment.
|
|
138
|
+
*
|
|
139
|
+
* @param {Point} s1 segment start
|
|
140
|
+
* @param {Point} s2 segment end
|
|
141
|
+
* @param {Point} cc circle center
|
|
142
|
+
* @param {number} cr circle radius
|
|
143
|
+
*
|
|
144
|
+
* @return {Point[]} intersections
|
|
145
|
+
*/
|
|
146
|
+
function getCircleSegmentIntersections(s1, s2, cc, cr) {
|
|
147
|
+
|
|
148
|
+
var baX = s2.x - s1.x;
|
|
149
|
+
var baY = s2.y - s1.y;
|
|
150
|
+
var caX = cc.x - s1.x;
|
|
151
|
+
var caY = cc.y - s1.y;
|
|
152
|
+
|
|
153
|
+
var a = baX * baX + baY * baY;
|
|
154
|
+
var bBy2 = baX * caX + baY * caY;
|
|
155
|
+
var c = caX * caX + caY * caY - cr * cr;
|
|
156
|
+
|
|
157
|
+
var pBy2 = bBy2 / a;
|
|
158
|
+
var q = c / a;
|
|
159
|
+
|
|
160
|
+
var disc = pBy2 * pBy2 - q;
|
|
161
|
+
|
|
162
|
+
// check against negative value to work around
|
|
163
|
+
// negative, very close to zero results (-4e-15)
|
|
164
|
+
// being produced in some environments
|
|
165
|
+
if (disc < 0 && disc > -0.000001) {
|
|
166
|
+
disc = 0;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (disc < 0) {
|
|
170
|
+
return [];
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// if disc == 0 ... dealt with later
|
|
174
|
+
var tmpSqrt = sqrt(disc);
|
|
175
|
+
var abScalingFactor1 = -pBy2 + tmpSqrt;
|
|
176
|
+
var abScalingFactor2 = -pBy2 - tmpSqrt;
|
|
177
|
+
|
|
178
|
+
var i1 = {
|
|
179
|
+
x: s1.x - baX * abScalingFactor1,
|
|
180
|
+
y: s1.y - baY * abScalingFactor1
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
if (disc === 0) { // abScalingFactor1 == abScalingFactor2
|
|
184
|
+
return [ i1 ];
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
var i2 = {
|
|
188
|
+
x: s1.x - baX * abScalingFactor2,
|
|
189
|
+
y: s1.y - baY * abScalingFactor2
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
// return only points on line segment
|
|
193
|
+
return [ i1, i2 ].filter(function(p) {
|
|
194
|
+
return isPointInSegment(p, s1, s2);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
function isPointInSegment(p, segmentStart, segmentEnd) {
|
|
200
|
+
return (
|
|
201
|
+
fenced(p.x, segmentStart.x, segmentEnd.x) &&
|
|
202
|
+
fenced(p.y, segmentStart.y, segmentEnd.y)
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function fenced(n, rangeStart, rangeEnd) {
|
|
207
|
+
|
|
208
|
+
// use matching threshold to work around
|
|
209
|
+
// precision errors in intersection computation
|
|
210
|
+
|
|
211
|
+
return (
|
|
212
|
+
n >= min(rangeStart, rangeEnd) - EQUAL_THRESHOLD &&
|
|
213
|
+
n <= max(rangeStart, rangeEnd) + EQUAL_THRESHOLD
|
|
214
|
+
);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Calculate the mid between two points.
|
|
219
|
+
*
|
|
220
|
+
* @param {Point} p1
|
|
221
|
+
* @param {Point} p2
|
|
222
|
+
*
|
|
223
|
+
* @return {Point}
|
|
224
|
+
*/
|
|
225
|
+
function mid(p1, p2) {
|
|
226
|
+
|
|
227
|
+
return {
|
|
228
|
+
x: (p1.x + p2.x) / 2,
|
|
229
|
+
y: (p1.y + p2.y) / 2
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
var EQUAL_THRESHOLD = 0.1;
|
|
234
|
+
|
|
235
|
+
function pointsEqual(p1, p2) {
|
|
236
|
+
|
|
237
|
+
return (
|
|
238
|
+
abs(p1.x - p2.x) <= EQUAL_THRESHOLD &&
|
|
239
|
+
abs(p1.y - p2.y) <= EQUAL_THRESHOLD
|
|
240
|
+
);
|
|
241
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the intersection between two line segments a and b.
|
|
3
|
-
*
|
|
4
|
-
* @param l1s
|
|
5
|
-
* @param l1e
|
|
6
|
-
* @param l2s
|
|
7
|
-
* @param l2e
|
|
8
|
-
*
|
|
9
|
-
* @return
|
|
10
|
-
*/
|
|
11
|
-
export default function lineIntersect(l1s: Point, l1e: Point, l2s: Point, l2e: Point): Point;
|
|
12
|
-
|
|
13
|
-
type Point = import("diagram-js/lib/util/Types").Point;
|
|
1
|
+
/**
|
|
2
|
+
* Returns the intersection between two line segments a and b.
|
|
3
|
+
*
|
|
4
|
+
* @param l1s
|
|
5
|
+
* @param l1e
|
|
6
|
+
* @param l2s
|
|
7
|
+
* @param l2e
|
|
8
|
+
*
|
|
9
|
+
* @return
|
|
10
|
+
*/
|
|
11
|
+
export default function lineIntersect(l1s: Point, l1e: Point, l2s: Point, l2e: Point): Point;
|
|
12
|
+
|
|
13
|
+
type Point = import("diagram-js/lib/util/Types").Point;
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {import('diagram-js/lib/util/Types').Point} Point
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Returns the intersection between two line segments a and b.
|
|
7
|
-
*
|
|
8
|
-
* @param {Point} l1s
|
|
9
|
-
* @param {Point} l1e
|
|
10
|
-
* @param {Point} l2s
|
|
11
|
-
* @param {Point} l2e
|
|
12
|
-
*
|
|
13
|
-
* @return {Point}
|
|
14
|
-
*/
|
|
15
|
-
export default function lineIntersect(l1s, l1e, l2s, l2e) {
|
|
16
|
-
|
|
17
|
-
// if the lines intersect, the result contains the x and y of the
|
|
18
|
-
// intersection (treating the lines as infinite) and booleans for
|
|
19
|
-
// whether line segment 1 or line segment 2 contain the point
|
|
20
|
-
var denominator, a, b, c, numerator;
|
|
21
|
-
|
|
22
|
-
denominator = ((l2e.y - l2s.y) * (l1e.x - l1s.x)) - ((l2e.x - l2s.x) * (l1e.y - l1s.y));
|
|
23
|
-
|
|
24
|
-
if (denominator == 0) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
a = l1s.y - l2s.y;
|
|
29
|
-
b = l1s.x - l2s.x;
|
|
30
|
-
numerator = ((l2e.x - l2s.x) * a) - ((l2e.y - l2s.y) * b);
|
|
31
|
-
|
|
32
|
-
c = numerator / denominator;
|
|
33
|
-
|
|
34
|
-
// if we cast these lines infinitely in
|
|
35
|
-
// both directions, they intersect here
|
|
36
|
-
return {
|
|
37
|
-
x: Math.round(l1s.x + (c * (l1e.x - l1s.x))),
|
|
38
|
-
y: Math.round(l1s.y + (c * (l1e.y - l1s.y)))
|
|
39
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('diagram-js/lib/util/Types').Point} Point
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns the intersection between two line segments a and b.
|
|
7
|
+
*
|
|
8
|
+
* @param {Point} l1s
|
|
9
|
+
* @param {Point} l1e
|
|
10
|
+
* @param {Point} l2s
|
|
11
|
+
* @param {Point} l2e
|
|
12
|
+
*
|
|
13
|
+
* @return {Point}
|
|
14
|
+
*/
|
|
15
|
+
export default function lineIntersect(l1s, l1e, l2s, l2e) {
|
|
16
|
+
|
|
17
|
+
// if the lines intersect, the result contains the x and y of the
|
|
18
|
+
// intersection (treating the lines as infinite) and booleans for
|
|
19
|
+
// whether line segment 1 or line segment 2 contain the point
|
|
20
|
+
var denominator, a, b, c, numerator;
|
|
21
|
+
|
|
22
|
+
denominator = ((l2e.y - l2s.y) * (l1e.x - l1s.x)) - ((l2e.x - l2s.x) * (l1e.y - l1s.y));
|
|
23
|
+
|
|
24
|
+
if (denominator == 0) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
a = l1s.y - l2s.y;
|
|
29
|
+
b = l1s.x - l2s.x;
|
|
30
|
+
numerator = ((l2e.x - l2s.x) * a) - ((l2e.y - l2s.y) * b);
|
|
31
|
+
|
|
32
|
+
c = numerator / denominator;
|
|
33
|
+
|
|
34
|
+
// if we cast these lines infinitely in
|
|
35
|
+
// both directions, they intersect here
|
|
36
|
+
return {
|
|
37
|
+
x: Math.round(l1s.x + (c * (l1e.x - l1s.x))),
|
|
38
|
+
y: Math.round(l1s.y + (c * (l1e.y - l1s.y)))
|
|
39
|
+
};
|
|
40
40
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export function canBeNonInterrupting(shape: any): boolean;
|
|
2
|
-
export function getInterruptingProperty(shape: any): "cancelActivity" | "isInterrupting";
|
|
3
|
-
export const NON_INTERRUPTING_EVENT_TYPES: string[];
|
|
1
|
+
export function canBeNonInterrupting(shape: any): boolean;
|
|
2
|
+
export function getInterruptingProperty(shape: any): "cancelActivity" | "isInterrupting";
|
|
3
|
+
export const NON_INTERRUPTING_EVENT_TYPES: string[];
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { isEventSubProcess } from '../../../../util/DiUtil';
|
|
2
|
-
import { getBusinessObject, is } from '../../../../util/ModelUtil';
|
|
3
|
-
|
|
4
|
-
export const NON_INTERRUPTING_EVENT_TYPES = [
|
|
5
|
-
'bpmn:MessageEventDefinition',
|
|
6
|
-
'bpmn:TimerEventDefinition',
|
|
7
|
-
'bpmn:EscalationEventDefinition',
|
|
8
|
-
'bpmn:ConditionalEventDefinition',
|
|
9
|
-
'bpmn:SignalEventDefinition'
|
|
10
|
-
];
|
|
11
|
-
|
|
12
|
-
export function canBeNonInterrupting(shape) {
|
|
13
|
-
|
|
14
|
-
const businessObject = getBusinessObject(shape);
|
|
15
|
-
|
|
16
|
-
if (
|
|
17
|
-
!is(businessObject, 'bpmn:BoundaryEvent') &&
|
|
18
|
-
!(is(businessObject, 'bpmn:StartEvent') && isEventSubProcess(businessObject.$parent))
|
|
19
|
-
) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const eventDefinitions = businessObject.get('eventDefinitions');
|
|
24
|
-
if (!eventDefinitions || !eventDefinitions.length) {
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return NON_INTERRUPTING_EVENT_TYPES.some(event => is(eventDefinitions[0], event));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function getInterruptingProperty(shape) {
|
|
32
|
-
return is(shape, 'bpmn:BoundaryEvent') ? 'cancelActivity' : 'isInterrupting';
|
|
1
|
+
import { isEventSubProcess } from '../../../../util/DiUtil';
|
|
2
|
+
import { getBusinessObject, is } from '../../../../util/ModelUtil';
|
|
3
|
+
|
|
4
|
+
export const NON_INTERRUPTING_EVENT_TYPES = [
|
|
5
|
+
'bpmn:MessageEventDefinition',
|
|
6
|
+
'bpmn:TimerEventDefinition',
|
|
7
|
+
'bpmn:EscalationEventDefinition',
|
|
8
|
+
'bpmn:ConditionalEventDefinition',
|
|
9
|
+
'bpmn:SignalEventDefinition'
|
|
10
|
+
];
|
|
11
|
+
|
|
12
|
+
export function canBeNonInterrupting(shape) {
|
|
13
|
+
|
|
14
|
+
const businessObject = getBusinessObject(shape);
|
|
15
|
+
|
|
16
|
+
if (
|
|
17
|
+
!is(businessObject, 'bpmn:BoundaryEvent') &&
|
|
18
|
+
!(is(businessObject, 'bpmn:StartEvent') && isEventSubProcess(businessObject.$parent))
|
|
19
|
+
) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const eventDefinitions = businessObject.get('eventDefinitions');
|
|
24
|
+
if (!eventDefinitions || !eventDefinitions.length) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return NON_INTERRUPTING_EVENT_TYPES.some(event => is(eventDefinitions[0], event));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function getInterruptingProperty(shape) {
|
|
32
|
+
return is(shape, 'bpmn:BoundaryEvent') ? 'cancelActivity' : 'isInterrupting';
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { getParticipantResizeConstraints } from "../ResizeBehavior";
|
|
1
|
+
export { getParticipantResizeConstraints } from "../ResizeBehavior";
|