Commit Graph

544 Commits

Author SHA1 Message Date
Philipp Fromme 194b963959 chore(copy-paste): rework and base upon diagram-js@5
* use <copyPaste.canCopyProperty> event to copy category value when copying group
* add camunda-bpmn-moddle for integration tests

BREAKING CHANGES

* CopyPaste: remove <property.clone>, add <moddleCopy.canCopyProperties>, <moddleCopy.canCopyProperty>, <moddleCopy.canSetCopiedProperty>
* BpmnRules: removed <elements.paste> rule in favor of <elements.create> rule
* BpmnRules: removed <element.paste> rule
* ElementFactory: use <attrs.di> property instead of <attrs.colors> for fill and stroke when creating element through ElementFactory#createBpmnElement
2019-08-07 16:03:55 +00:00
Philipp Fromme 14bf3a32ee feat(create): create multiple elements
* add <elements.create> rule for creating multiple elements
* handle creating multiple elements in CreateParticipantBehavior
* create sub process with start event through palette
2019-08-07 16:03:55 +00:00
Nico Rehwaldt 1f706fd9b8 Merge branch 'master' into develop 2019-08-05 14:14:07 +02:00
Niklas Kiefer 5d5f33c38b fix(create-participant-behavior): ensure available children
* Ensure there are leftover children to calculate createConstraints

Closes #1133
2019-08-05 09:56:18 +00:00
Maciej Barelkowski 4ca0a6c9fb Merge branch 'master' into develop 2019-07-22 15:37:51 +02:00
Nico Rehwaldt e7d66b4461 fix(rules): disallow dropping on labels and groups
* test create
* disallow drop on label
* disallow drop on group
* verify create group everywhere

Required by https://github.com/camunda/camunda-modeler/issues/1431
2019-07-22 15:37:07 +02:00
Philipp Fromme d0044f8313 fix(graphics-factory): add test case verifying fix
Related to #1129
2019-07-18 15:46:08 +02:00
Philipp Fromme ab56fc21ad feat(modeling): prevent accidential dragging of container elements
This implements custom hit areas for participants, lanes and
expanded subprocesses.

Given these changes, users need to grab container elements
on the boarder or the label area to move them.

Closes https://github.com/bpmn-io/bpmn-js/issues/957
2019-07-18 15:42:05 +02:00
Maciej Barelkowski 9ee90ef089 fix(modeling): correctly create connection replacement
Closes https://github.com/bpmn-io/bpmn-js/issues/1072
2019-07-02 12:21:49 +00:00
Maciej Barelkowski 23505a4783 Revert "feat(modeling): prevent accidential dragging of container elements"
This reverts commit 7b0e304062.

Related to https://github.com/camunda/camunda-modeler/issues/1416
Opens https://github.com/bpmn-io/bpmn-js/issues/957
2019-07-02 08:12:41 +00:00
Niklas Kiefer 9e52e4ee3e feat(group-behavior): set copied name value to pasted group elements
Closes camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Niklas Kiefer e31c4d13ed chore(copy-paste): ensure pasted group has new category value
Relates to camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Niklas Kiefer b7d6d62184 feat(label-behavior): correctly retrieve label from element
Relates to camunda/camunda-modeler#1417
2019-07-02 07:42:22 +00:00
Nico Rehwaldt 3b4251967d feat(snapping): add TRBL snapping against containers
Adds TRBL snapping with containers only.

Closes #1104
2019-06-27 13:09:22 +00:00
Nico Rehwaldt fdb299dc88 feat(modeling): allow to drag participant via nested lane
Related to https://github.com/bpmn-io/bpmn-js/issues/957
2019-06-25 18:01:40 +02:00
Philipp Fromme 7b0e304062 feat(modeling): prevent accidential dragging of container elements
This implements custom hit areas for participants, lanes and
expanded subprocesses.

Given these changes, users need to grab container elements
on the boarder or the label area to move them.

Closes https://github.com/bpmn-io/bpmn-js/issues/957
2019-06-25 18:01:40 +02:00
Maciej Barelkowski 890e466161 fix(bpmn-rules): allow to drop Boundary Events only on containers
Closes https://github.com/bpmn-io/bpmn-js/issues/1095
2019-06-24 13:47:08 +00:00
Niklas Kiefer 827df52e4b test(modeling): add test for center-to-center connection
Relates to #1087
2019-06-19 13:26:17 +00:00
Niklas Kiefer 9b9ff934d2 feat(snapping): snap to task mid on center interaction
Closes #1086
2019-06-19 13:26:17 +00:00
Niklas Kiefer cfad2f49aa feat(snapping): restore center snapping for Gateways and Events
Closes #1079
2019-06-19 13:26:17 +00:00
Nico Rehwaldt 19be51abc7 feat(modeling): ignore lanes when connecting message flows
Closes #950

Related to camunda/camunda-modeler#1213
2019-06-18 07:07:03 +00:00
Nico Rehwaldt 055fdf75e1 feat(modeling): allow label and group movement everywhere, round two
This partially reverts 0c0932d4c6f54181d7f06a626ef109ae7c00dccb.

Closes #1076
2019-06-18 07:07:03 +00:00
Nico Rehwaldt 5a69f9c0bc chore(modeling/behavior): rename Create -> FixHover behavior 2019-06-18 07:07:03 +00:00
Philipp Fromme bef75b2435 fix(snapping): snap to docking points
Closes #1081
2019-06-17 18:54:28 +00:00
Nico Rehwaldt 06cd481146 fix(grid-snapping): correctly update snapped waypoints
* make side-effect free
* use Modeling#updateWaypoints for actual update
2019-06-17 12:34:09 +00:00
Niklas Kiefer 405669e376 feat(bpmn-rules): ignore labels movement visually
* Set canMove to null if external label

Closes #1054
2019-06-13 08:44:41 +00:00
Maciej Barelkowski a09e0a3bed feat(bpmn-snapping): snap boundary event loop when close to source
Closes #903
2019-06-12 20:46:39 +02:00
Maciej Barelkowski 085cedfda1 feat(layout): correctly lay out Boundary Event loops
Loops will now be laid out with respect to minimum
second segment width.
2019-06-12 20:46:39 +02:00
Maciej Barelkowski d80076a034 feat(bpmn-snapping): snap inside the target instead of target center 2019-06-12 20:46:39 +02:00
Maciej Barelkowski eadc1fb159 test(layout): remove awesome test 2019-06-12 20:46:39 +02:00
Maciej Barelkowski 6eba64d666 test(layout): extract boundary event loop tests 2019-06-12 20:46:39 +02:00
Niklas Kiefer 144157f9eb feat(label-behavior): move external label after resizing
* Generate reference point for external label 
* Adjust label position after resizing due to reference point delta

Closes #1051
2019-06-11 22:15:18 +00:00
Niklas Kiefer 4777b42f63 chore(label-behavior): move test file
* Adjust to fit the existing behavior test file structure
2019-06-11 22:15:18 +00:00
Maciej Barelkowski debb96f49d test(modeling): ensure reconnecting data association works
Closes #1008
2019-06-06 17:42:48 +00:00
Maciej Barelkowski dd3d7e9c64 fix(modeling): fix selection during reconnection with replacement
Closes #896
2019-06-06 09:10:56 +00:00
Maciej Barelkowski 4c10420017 feat(modeling): replace connection with correct type if rules allow
As a side effect, this corrects also the layout of the replacement.

Closes #1049
2019-06-06 09:10:56 +00:00
Philipp Fromme 8815b73599 feat(grid-snapping): snap width and height on create first participant
Closes #1061
2019-06-05 15:50:47 +02:00
Philipp Fromme a98c8e3bc8 chore(bpmn-snapping): seperate snapping into create/move and connect
* move create/move snapping to BpmnCreateMoveSnapping
* move connect snapping to BpmnConnectSnapping
* refactor tests

Related camunda/camunda-modeler#1290
2019-06-05 14:36:39 +02:00
Philipp Fromme a4e160c48b chore(bpmn-snapping): move create behavior to seperate behavior 2019-06-05 14:36:39 +02:00
Philipp Fromme d42d5e3448 chore(resize-behavior): move resize behavior to seperate behavior
* setting minimum bounds and resize constraints moved to ResizeBehavior

Related to #1290
2019-06-05 14:36:39 +02:00
Philipp Fromme ca12ac91a4 chore(bpmn-snapping): move participant fitting to participant behavior
Related to #1290
2019-06-05 14:36:39 +02:00
Niklas Kiefer 8862865e2a feat(modeling): improve label positioning for boundary events
* Do not allow placing label onto host

Relates to camunda/camunda-modeler#1206
2019-06-05 06:04:42 +00:00
Maciej Barelkowski 2804e559e9 test(layout): skip connection preview test for create 2019-06-04 19:46:05 +02:00
Nico Rehwaldt 0a6cecc609 feat(modeling): lay out connection once per event attachment 2019-06-04 17:44:47 +00:00
Maciej Barelkowski d14e3735a4 test(layout): verify attached event connection layout 2019-06-04 17:44:47 +00:00
Maciej Barelkowski 9dbc3c88df feat(modeling): allow to attach intermediate event with connections
Closes #478
2019-06-04 17:44:47 +00:00
Maciej Barelkowski 33f9e7be6e feat(modeling): allow to attach events with event definition
This feature is allowed only for events which have their boundary
counteparts, i.e. intermediate throw, message catch, timer catch,
signal catch and conditional catch events.
2019-06-04 17:44:47 +00:00
Maciej Barelkowski 1e9aceecd7 feat(modeling): create boundary event via moving intermediate event 2019-06-04 17:44:47 +00:00
Maciej Barelkowski c1052383da feat(modeling): layout connection once per detachment 2019-06-04 16:07:13 +02:00
Maciej Barelkowski 4d6c8586e4 feat(modeling): allow to detach Boundary Events
Closes #1045
2019-06-04 16:07:13 +02:00
Maciej Barelkowski ecf9118a09 style(bpmn-replace): lint tests 2019-06-04 16:07:13 +02:00
Maciej Barelkowski 66bc72d5e3 test(modeling): remove doubled module in test setup 2019-06-04 16:07:13 +02:00
Maciej Barelkowski ba5bf31e42 fix(bpmn-rules): correctly evaluate waypoints update rule
Closes #1048
2019-06-03 09:56:39 +00:00
Gustavo E. Jimenez Folta 3a0f044d9e feat(modeling): add subprocess with start event included
When:

1. Creating expanded subprocess from palette.
2. Replacing task with expanded subprocess.
2019-05-29 16:05:22 +02:00
Philipp Fromme 9e5a5f4944 fix(layout-connection-behavior): do NOT snap on reconnect start and end
Closes #1056
2019-05-29 09:46:30 +00:00
Gustavo E. Jimenez Folta bc5a3f803e revert: feat(modeling): prevent expanded subprocess overlap of previous content
This reverts commit 05fea05834.
2019-05-29 11:23:41 +02:00
Gustavo E. Jimenez Folta 68635fcb33 revert: test(modeling/behavior): remove unnecessary sinon usage
This reverts commit 82dbcc9451.
2019-05-29 11:23:29 +02:00
Niklas Kiefer 643ca2193c fix(snapping): prevent participants snap to group bounds 2019-05-29 06:42:54 +00:00
Niklas Kiefer 46c5a8cb36 fix(ordering): render group elements on collaboration level
Closes #1043
2019-05-29 06:42:54 +00:00
Niklas Kiefer 93a4a579dd feat(label-editing): create categoryValue if not exist
Relates to #955
2019-05-28 06:46:53 +00:00
Niklas Kiefer fb3398fa39 feat(label-editing): enable direct editing for group labels
* Adds external label for Groups
* Modifies referenced categoryValue

Closes #955
2019-05-28 06:46:53 +00:00
Philipp Fromme bc4b6cbfd8 fix(tests): fix custom elements tests
* in the context of bpmn-js returning true when asked wether two elements can be connected is not sufficient
* remove BpmnConnectionPreview since it's not needed after tests are fixed

Closes #1034
2019-05-23 18:26:12 +02:00
Niklas Kiefer 92640b9c06 test(group-behavior): add test for existing categoryValueRef 2019-05-23 15:12:38 +02:00
Niklas Kiefer a7e3980059 feat(modeling/behaviors): add GroupBehavior
* Create new Category + Value for every new Group
* Cleanup on Group deletion
2019-05-23 15:12:38 +02:00
Niklas Kiefer 20f6d9ab03 feat(palette): add group-entry
Closes #954
2019-05-23 15:12:38 +02:00
Niklas Kiefer 1575b5b26f fix(copy-paste): adjust categoryValueRef when group is copied
Closes #958
2019-05-20 07:56:27 +00:00
Nico Rehwaldt 576a3dec15 fix(rules): do not allow message flows to outside diagram shapes
Closes #1033
2019-05-17 11:01:29 +00:00
Maciej Barelkowski 87bfe23ff8 feat(connection-preview): support general connection preview
Closes #744
2019-05-17 11:15:06 +02:00
Maciej Barelkowski 654fa067d4 test(modeling): verify re-connect preview layout 2019-05-17 11:15:06 +02:00
Gustavo E. Jimenez Folta 82dbcc9451 test(modeling/behavior): remove unnecessary sinon usage 2019-05-16 15:25:15 +02:00
Philipp Fromme 05fea05834 feat(modeling): prevent expanded subprocess overlap of previous content
This covers two scenarios:

1. When a shape is replaced with an expanded subprocess
2. When a subprocess is toggled from collapsed to expanded

Only when:

1. There are incoming sequence flows (previous content)
2. There are no outgoing sequence flows (following content)
2019-05-15 16:57:32 +02:00
Philipp Fromme 62d7746e81 feat(bpmn-snapping): snap shape to itself
Closes #993
2019-05-13 07:25:26 +00:00
Philipp Fromme 8b4ddd53c0 chore(bpmn-auto-resize): add test 2019-05-10 07:22:51 +00:00
Maciej Barelkowski 2bdb36919d test(modeling): verify connection preview layout 2019-05-09 14:12:37 +00:00
Philipp Fromme 2335282a82 fix(bpmn-create-connect-preview): override #getConnection 2019-05-09 14:12:37 +00:00
Maciej Barelkowski 48fcececbf test(layout): add integration test for connection preview 2019-05-08 12:59:27 +00:00
Niklas Kiefer 883d6c8ad3 test(ResizeShape): add test coverage
* Restructure tests to make them more clear
* Add tests for businessObject updates (especially groups)
2019-05-07 14:36:32 +02:00
Philipp Fromme 175e395768 feat(ordering): always render groups on top
Closes #979
2019-05-07 14:36:32 +02:00
Niklas Kiefer bf2dfe4338 feat(rules): add resizing of groups
Closes #956
2019-05-07 14:36:32 +02:00
Philipp Fromme 13f1e05ee7 feat(grid-snapping): integrate with connection layout
Closes #1010
Related to #973
2019-05-07 10:08:35 +02:00
Gustavo E. Jimenez Folta 424a05a18a feat(modeling): correctly handle event based gateway connections
Handles two new scenarios:

1. A user wants to connect an event-based gateway to an event-based
gateway target with existing incoming sequence flows. The existing
sequence flows are removed before connecting the new one.

2. A user wants to replace a gateway, that is already connected to
event-based gateway targets, with an event-based gateway. The existing
incoming sequence flows of the targets, which do not belong to the
newly replaced event-based gateway, are removed before the replacement
operation finishes.

This is because target elements in an event gateway configuration
must not have any additional incoming sequence flows other than
that from the event gateway.
2019-05-06 12:41:11 +02:00
Gustavo E. Jimenez Folta b6e9c2186a fix(BpmnRules): update canConnectSequenceFlow()
This prevents multiple incoming sequence flows to target events of an
event-based gateway when the connection source is not an event-based
gateway.
2019-05-06 12:41:11 +02:00
Philipp Fromme 867b41c04f feat(grid-snapping): integrate grid snapping with auto place feature
Closes #1003
2019-04-30 09:32:42 +00:00
Nico Rehwaldt d73ffd5991 style(tests): adopt cleaner pattern 2019-04-29 12:04:01 +00:00
Nico Rehwaldt 5affe25705 feat(modeling): adjust default collapsed participant height to 60px
This better aligns our collapse behavior with other tools.
2019-04-29 12:04:01 +00:00
Nico Rehwaldt 02848564cf test(grid-snapping): use bound matcher 2019-04-26 18:31:36 +00:00
Philipp Fromme fa2e472361 feat(grid-snapping): integrate auto resize
Related to camunda/camunda-modeler#1344
Related to camunda/camunda-modeler#1349
2019-04-26 18:31:36 +00:00
Philipp Fromme 3b756e0725 feat(grid-snapping): snap resizable elements top-left
Related to camunda/camunda-modeler#1344
2019-04-26 18:31:36 +00:00
Nico Rehwaldt 2935b23ee4 test(modeling/behavior): reorganize label positioning behavior specs 2019-04-25 16:27:58 +02:00
Maciej Barelkowski 06ffc9d407 fix(modeling/BpmnLayouter): properly lay out boundary event connections
Closes #891
2019-04-24 11:56:01 +00:00
Gustavo E. Jimenez Folta 0f7b8f483c feat(replace): auto-resize height when toggling pool collapse/expand 2019-04-23 15:56:50 +02:00
Nico Rehwaldt a40b95cf2f test(modeling): verify connection layouting on element removal
Closes #989
2019-04-18 18:15:31 +02:00
Maciej Barelkowski 55ca4c8f3d chore(modeling/label): adjust label position to laid out connection
Closes #718
2019-04-18 16:06:44 +00:00
Maciej Barelkowski 6c191590b5 test(modeling/layout): expect layout on reconnect end 2019-04-18 16:06:44 +00:00
Maciej Barelkowski 6a396fb947 test(modeling/layout): add integration test for reconnection 2019-04-18 16:06:44 +00:00
Maciej Barelkowski 8eced8a3fb test(modeling): ensure layout is done after element removal
* adjust test suite to pass with diagram-js@3.2
* verify new cropping behavior
* verify #940 is fixed
2019-04-10 19:08:49 +00:00
Maciej Barelkowski 6f7925080c chore(modeling/BpmnUpdater): remove now unnecessary crop on reconnect
As of diagram-js@3.2.0 layouting will be triggered
on reconnectStart / reconnectEnd.

Related to #940
2019-04-10 19:08:49 +00:00
Nico Rehwaldt 8ca4c1d7b0 feat(modeling): allow basic movement of DataInput / DataOutput
Allow moving DataInput / DataOutput as
long as they do not leave their original
container.

Related to #951
2019-03-29 13:21:34 +00:00
Nico Rehwaldt fe9d4ff06d feat(modeling): ensure wrapping DataInput/Output in participant works 2019-03-29 13:21:34 +00:00
Nico Rehwaldt 8c49cb679b fix(modeling): properly handle DataInput / DataOutput move
Closes #961
2019-03-29 13:21:34 +00:00