mirror of
https://github.com/sartography/bpmn-js.git
synced 2025-02-08 23:25:04 +00:00
Merge branch 'master' into develop
This commit is contained in:
commit
62f331bc3d
@ -6,6 +6,11 @@ All notable changes to [bpmn-js](https://github.com/bpmn-io/bpmn-js) are documen
|
|||||||
|
|
||||||
___Note:__ Yet to be released changes appear here._
|
___Note:__ Yet to be released changes appear here._
|
||||||
|
|
||||||
|
## 6.3.2
|
||||||
|
|
||||||
|
* `FIX`: correctly move flows when adding lane ([#1287](https://github.com/bpmn-io/bpmn-js/pull/1287))
|
||||||
|
* `FIX`: restore semantic IDs for non flow nodes ([#1285](https://github.com/bpmn-io/bpmn-js/issues/1285))
|
||||||
|
|
||||||
## 6.3.1
|
## 6.3.1
|
||||||
|
|
||||||
* `FIX`: prevent editor crash in some strict execution environments ([#1283](https://github.com/bpmn-io/bpmn-js/pull/1283))
|
* `FIX`: prevent editor crash in some strict execution environments ([#1283](https://github.com/bpmn-io/bpmn-js/pull/1283))
|
||||||
|
@ -104,11 +104,6 @@ export default function UpdateLabelHandler(modeling, textRenderer) {
|
|||||||
|
|
||||||
var text = getLabel(label);
|
var text = getLabel(label);
|
||||||
|
|
||||||
// don't resize without text
|
|
||||||
if (!text) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// resize element based on label _or_ pre-defined bounds
|
// resize element based on label _or_ pre-defined bounds
|
||||||
if (typeof newBounds === 'undefined') {
|
if (typeof newBounds === 'undefined') {
|
||||||
newBounds = textRenderer.getExternalLabelBounds(label, text);
|
newBounds = textRenderer.getExternalLabelBounds(label, text);
|
||||||
|
@ -53,7 +53,7 @@ BpmnFactory.prototype._ensureId = function(element) {
|
|||||||
prefix = 'Event';
|
prefix = 'Event';
|
||||||
} else if (is(element, 'bpmn:Gateway')) {
|
} else if (is(element, 'bpmn:Gateway')) {
|
||||||
prefix = 'Gateway';
|
prefix = 'Gateway';
|
||||||
} else if (is(element, 'bpmn:FlowElement')) {
|
} else if (isAny(element, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ])) {
|
||||||
prefix = 'Flow';
|
prefix = 'Flow';
|
||||||
} else {
|
} else {
|
||||||
prefix = (element.$type || '').replace(/^[^:]*:/g, '');
|
prefix = (element.$type || '').replace(/^[^:]*:/g, '');
|
||||||
|
@ -18,6 +18,7 @@ import {
|
|||||||
* above or below an existing one.
|
* above or below an existing one.
|
||||||
*
|
*
|
||||||
* @param {Modeling} modeling
|
* @param {Modeling} modeling
|
||||||
|
* @param {SpaceTool} spaceTool
|
||||||
*/
|
*/
|
||||||
export default function AddLaneHandler(modeling, spaceTool) {
|
export default function AddLaneHandler(modeling, spaceTool) {
|
||||||
this._modeling = modeling;
|
this._modeling = modeling;
|
||||||
@ -61,6 +62,11 @@ AddLaneHandler.prototype.preExecute = function(context) {
|
|||||||
eachElement(lanesRoot, function(element) {
|
eachElement(lanesRoot, function(element) {
|
||||||
allAffected.push(element);
|
allAffected.push(element);
|
||||||
|
|
||||||
|
// handle element labels in the diagram root
|
||||||
|
if (element.label) {
|
||||||
|
allAffected.push(element.label);
|
||||||
|
}
|
||||||
|
|
||||||
if (element === shape) {
|
if (element === shape) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bpmn-js",
|
"name": "bpmn-js",
|
||||||
"version": "6.3.1",
|
"version": "6.3.2",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "bpmn-js",
|
"name": "bpmn-js",
|
||||||
"version": "6.3.1",
|
"version": "6.3.2",
|
||||||
"description": "A bpmn 2.0 toolkit and web modeler",
|
"description": "A bpmn 2.0 toolkit and web modeler",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"all": "run-s lint test distro test:distro",
|
"all": "run-s lint test distro test:distro",
|
||||||
|
@ -2,28 +2,16 @@
|
|||||||
|
|
||||||
// configures browsers to run test against
|
// configures browsers to run test against
|
||||||
// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
|
// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
|
||||||
var browsers =
|
var browsers = (process.env.TEST_BROWSERS || 'PhantomJS').split(',');
|
||||||
(process.env.TEST_BROWSERS || 'PhantomJS')
|
|
||||||
.replace(/^\s+|\s+$/, '')
|
|
||||||
.split(/\s*,\s*/g)
|
|
||||||
.map(function(browser) {
|
|
||||||
if (browser === 'ChromeHeadless') {
|
|
||||||
process.env.CHROME_BIN = require('puppeteer').executablePath();
|
|
||||||
|
|
||||||
// workaround https://github.com/GoogleChrome/puppeteer/issues/290
|
|
||||||
if (process.platform === 'linux') {
|
|
||||||
return 'ChromeHeadless_Linux';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return browser;
|
|
||||||
});
|
|
||||||
|
|
||||||
|
// use puppeteer provided Chrome for testing
|
||||||
|
process.env.CHROME_BIN = require('puppeteer').executablePath();
|
||||||
|
|
||||||
var VARIANT = process.env.VARIANT;
|
var VARIANT = process.env.VARIANT;
|
||||||
|
|
||||||
var NODE_ENV = process.env.NODE_ENV;
|
var NODE_ENV = process.env.NODE_ENV;
|
||||||
|
|
||||||
|
|
||||||
module.exports = function(karma) {
|
module.exports = function(karma) {
|
||||||
karma.set({
|
karma.set({
|
||||||
|
|
||||||
@ -46,18 +34,7 @@ module.exports = function(karma) {
|
|||||||
|
|
||||||
reporters: [ 'progress' ],
|
reporters: [ 'progress' ],
|
||||||
|
|
||||||
customLaunchers: {
|
browsers,
|
||||||
ChromeHeadless_Linux: {
|
|
||||||
base: 'ChromeHeadless',
|
|
||||||
flags: [
|
|
||||||
'--no-sandbox',
|
|
||||||
'--disable-setuid-sandbox'
|
|
||||||
],
|
|
||||||
debug: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
browsers: browsers,
|
|
||||||
|
|
||||||
browserNoActivityTimeout: 30000,
|
browserNoActivityTimeout: 30000,
|
||||||
|
|
||||||
|
@ -1,31 +1,19 @@
|
|||||||
var coverage = process.env.COVERAGE;
|
/* global process */
|
||||||
|
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
|
||||||
var basePath = '../../';
|
var coverage = process.env.COVERAGE;
|
||||||
|
|
||||||
var absoluteBasePath = path.resolve(path.join(__dirname, basePath));
|
|
||||||
|
|
||||||
/* global process */
|
|
||||||
|
|
||||||
// configures browsers to run test against
|
// configures browsers to run test against
|
||||||
// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
|
// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
|
||||||
var browsers =
|
var browsers = (process.env.TEST_BROWSERS || 'PhantomJS').split(',');
|
||||||
(process.env.TEST_BROWSERS || 'PhantomJS')
|
|
||||||
.replace(/^\s+|\s+$/, '')
|
|
||||||
.split(/\s*,\s*/g)
|
|
||||||
.map(function(browser) {
|
|
||||||
if (browser === 'ChromeHeadless') {
|
|
||||||
process.env.CHROME_BIN = require('puppeteer').executablePath();
|
|
||||||
|
|
||||||
// workaround https://github.com/GoogleChrome/puppeteer/issues/290
|
// use puppeteer provided Chrome for testing
|
||||||
if (process.platform === 'linux') {
|
process.env.CHROME_BIN = require('puppeteer').executablePath();
|
||||||
return 'ChromeHeadless_Linux';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return browser;
|
var basePath = '../..';
|
||||||
});
|
|
||||||
|
var absoluteBasePath = path.resolve(path.join(__dirname, basePath));
|
||||||
|
|
||||||
var suite = coverage ? 'test/coverageBundle.js' : 'test/testBundle.js';
|
var suite = coverage ? 'test/coverageBundle.js' : 'test/testBundle.js';
|
||||||
|
|
||||||
@ -33,7 +21,7 @@ var suite = coverage ? 'test/coverageBundle.js' : 'test/testBundle.js';
|
|||||||
module.exports = function(karma) {
|
module.exports = function(karma) {
|
||||||
karma.set({
|
karma.set({
|
||||||
|
|
||||||
basePath: basePath,
|
basePath,
|
||||||
|
|
||||||
frameworks: [
|
frameworks: [
|
||||||
'mocha',
|
'mocha',
|
||||||
@ -50,24 +38,13 @@ module.exports = function(karma) {
|
|||||||
|
|
||||||
reporters: [ 'progress' ].concat(coverage ? 'coverage' : []),
|
reporters: [ 'progress' ].concat(coverage ? 'coverage' : []),
|
||||||
|
|
||||||
customLaunchers: {
|
|
||||||
ChromeHeadless_Linux: {
|
|
||||||
base: 'ChromeHeadless',
|
|
||||||
flags: [
|
|
||||||
'--no-sandbox',
|
|
||||||
'--disable-setuid-sandbox'
|
|
||||||
],
|
|
||||||
debug: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
coverageReporter: {
|
coverageReporter: {
|
||||||
reporters: [
|
reporters: [
|
||||||
{ type: 'lcov', subdir: '.' }
|
{ type: 'lcov', subdir: '.' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
browsers: browsers,
|
browsers,
|
||||||
|
|
||||||
browserNoActivityTimeout: 30000,
|
browserNoActivityTimeout: 30000,
|
||||||
|
|
||||||
|
@ -52,27 +52,67 @@ describe('features - bpmn-factory', function() {
|
|||||||
|
|
||||||
|
|
||||||
it('should assign id with generic semantic prefix (Gateway)', inject(function(bpmnFactory) {
|
it('should assign id with generic semantic prefix (Gateway)', inject(function(bpmnFactory) {
|
||||||
var task = bpmnFactory.create('bpmn:ParallelGateway');
|
var gateway = bpmnFactory.create('bpmn:ParallelGateway');
|
||||||
|
|
||||||
expect(task.$type).to.equal('bpmn:ParallelGateway');
|
expect(gateway.$type).to.equal('bpmn:ParallelGateway');
|
||||||
expect(task.id).to.match(/^Gateway_/g);
|
expect(gateway.id).to.match(/^Gateway_/g);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
it('should assign id with generic semantic prefix (Event)', inject(function(bpmnFactory) {
|
it('should assign id with generic semantic prefix (Event)', inject(function(bpmnFactory) {
|
||||||
var task = bpmnFactory.create('bpmn:EndEvent');
|
var event = bpmnFactory.create('bpmn:EndEvent');
|
||||||
|
|
||||||
expect(task.$type).to.equal('bpmn:EndEvent');
|
expect(event.$type).to.equal('bpmn:EndEvent');
|
||||||
expect(task.id).to.match(/^Event_/g);
|
expect(event.id).to.match(/^Event_/g);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
it('should assign id with generic semantic prefix (FlowElement)', inject(
|
it('should assign id with generic semantic prefix (Flow)', inject(
|
||||||
function(bpmnFactory) {
|
function(bpmnFactory) {
|
||||||
var task = bpmnFactory.create('bpmn:SequenceFlow');
|
var flow = bpmnFactory.create('bpmn:SequenceFlow');
|
||||||
|
|
||||||
expect(task.$type).to.equal('bpmn:SequenceFlow');
|
expect(flow.$type).to.equal('bpmn:SequenceFlow');
|
||||||
expect(task.id).to.match(/^Flow_/g);
|
expect(flow.id).to.match(/^Flow_/g);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
it('should assign id with generic semantic prefix (Flow)', inject(
|
||||||
|
function(bpmnFactory) {
|
||||||
|
var flow = bpmnFactory.create('bpmn:MessageFlow');
|
||||||
|
|
||||||
|
expect(flow.$type).to.equal('bpmn:MessageFlow');
|
||||||
|
expect(flow.id).to.match(/^Flow_/g);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
it('should assign id with specific semantic prefix (DataStore)', inject(
|
||||||
|
function(bpmnFactory) {
|
||||||
|
var dataStore = bpmnFactory.create('bpmn:DataStore');
|
||||||
|
|
||||||
|
expect(dataStore.$type).to.equal('bpmn:DataStore');
|
||||||
|
expect(dataStore.id).to.match(/^DataStore_/g);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
it('should assign id with specific semantic prefix (DataObject)', inject(
|
||||||
|
function(bpmnFactory) {
|
||||||
|
var dataObject = bpmnFactory.create('bpmn:DataObject');
|
||||||
|
|
||||||
|
expect(dataObject.$type).to.equal('bpmn:DataObject');
|
||||||
|
expect(dataObject.id).to.match(/^DataObject_/g);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
it('should assign id with specific semantic prefix (DataObjectReference)', inject(
|
||||||
|
function(bpmnFactory) {
|
||||||
|
var dataObjectReference = bpmnFactory.create('bpmn:DataObjectReference');
|
||||||
|
|
||||||
|
expect(dataObjectReference.$type).to.equal('bpmn:DataObjectReference');
|
||||||
|
expect(dataObjectReference.id).to.match(/^DataObjectReference_/g);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -20,7 +20,7 @@ describe('features/modeling - update label', function() {
|
|||||||
|
|
||||||
|
|
||||||
it('should change name of start event', inject(
|
it('should change name of start event', inject(
|
||||||
function(modeling, elementRegistry, eventBus) {
|
function(modeling, elementRegistry) {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
var startEvent_1 = elementRegistry.get('StartEvent_1');
|
var startEvent_1 = elementRegistry.get('StartEvent_1');
|
||||||
@ -190,4 +190,19 @@ describe('features/modeling - update label', function() {
|
|||||||
}
|
}
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
|
it('should resize empty text annotation', inject(function(modeling, elementRegistry) {
|
||||||
|
|
||||||
|
// given
|
||||||
|
var element = elementRegistry.get('TextAnnotation_1');
|
||||||
|
|
||||||
|
var newBounds = { x: 100, y: 100, width: 100, height: 30 };
|
||||||
|
|
||||||
|
// when
|
||||||
|
modeling.updateLabel(element, null, newBounds);
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(element).to.have.bounds(newBounds);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
@ -307,6 +307,85 @@ describe('features/modeling - add Lane', function() {
|
|||||||
{ x: 432, y: 103 - newLane.height }
|
{ x: 432, y: 103 - newLane.height }
|
||||||
]);
|
]);
|
||||||
}));
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('flow node handling', function() {
|
||||||
|
|
||||||
|
var diagramXML = require('./lanes-flow-nodes.bpmn');
|
||||||
|
|
||||||
|
beforeEach(bootstrapModeler(diagramXML, {
|
||||||
|
modules: testModules
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
function addLaneAbove(laneId) {
|
||||||
|
|
||||||
|
return getBpmnJS().invoke(function(elementRegistry, modeling) {
|
||||||
|
var existingLane = elementRegistry.get(laneId);
|
||||||
|
|
||||||
|
expect(existingLane).to.exist;
|
||||||
|
|
||||||
|
return modeling.addLane(existingLane, 'top');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
it('should move flow nodes', inject(function(elementRegistry, modeling) {
|
||||||
|
|
||||||
|
// given
|
||||||
|
var task_Boundary = elementRegistry.get('Task_Boundary'),
|
||||||
|
boundary = elementRegistry.get('Boundary');
|
||||||
|
|
||||||
|
// when
|
||||||
|
addLaneAbove('Nested_Lane_B');
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(task_Boundary).to.have.position({ x: 344, y: -7 });
|
||||||
|
expect(boundary).to.have.position({ x: 391, y: 55 });
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
it('should move sequence flows', inject(function(elementRegistry, modeling) {
|
||||||
|
|
||||||
|
// given
|
||||||
|
var sequenceFlow = elementRegistry.get('SequenceFlow'),
|
||||||
|
sequenceFlow_From_Boundary = elementRegistry.get('SequenceFlow_From_Boundary');
|
||||||
|
|
||||||
|
// when
|
||||||
|
addLaneAbove('Nested_Lane_B');
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(sequenceFlow_From_Boundary).to.have.waypoints([
|
||||||
|
{ x: 409, y: 91 },
|
||||||
|
{ x: 409, y: 118 },
|
||||||
|
{ x: 562, y: 118 },
|
||||||
|
{ x: 562, y: 73 }
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect(sequenceFlow).to.have.waypoints([
|
||||||
|
{ x: 444, y: 33 },
|
||||||
|
{ x: 512, y: 33 }
|
||||||
|
]);
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
it('should move external labels', inject(function(elementRegistry, modeling) {
|
||||||
|
|
||||||
|
// given
|
||||||
|
var event = elementRegistry.get('Event'),
|
||||||
|
label = event.label;
|
||||||
|
|
||||||
|
// TODO(nikku): consolidate import + editing behavior => not consistent right now
|
||||||
|
|
||||||
|
// when
|
||||||
|
// force move label to trigger label editing + update parent behavior
|
||||||
|
modeling.moveElements([ label ], { x: 0, y: 0 });
|
||||||
|
|
||||||
|
addLaneAbove('Nested_Lane_B');
|
||||||
|
|
||||||
|
// then
|
||||||
|
expect(label.y).to.eql(58);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
88
test/spec/features/modeling/lanes/lanes-flow-nodes.bpmn
Normal file
88
test/spec/features/modeling/lanes/lanes-flow-nodes.bpmn
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="_4bAZoD9WEeWLcNBL4nCk1A" targetNamespace="http://camunda.org/schema/1.0/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="6.3.1" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
|
||||||
|
<bpmn2:collaboration id="_Collaboration_2">
|
||||||
|
<bpmn2:participant id="Participant_Lane" name="Participant_Lane" processRef="Process_Lane" />
|
||||||
|
</bpmn2:collaboration>
|
||||||
|
<bpmn2:process id="Process_Lane" isExecutable="false">
|
||||||
|
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
|
||||||
|
<bpmn2:lane id="Lane_A" name="Lane_A">
|
||||||
|
<bpmn2:flowNodeRef>Task_Boundary</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Task</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Event</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Boundary</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:childLaneSet id="LaneSet_2">
|
||||||
|
<bpmn2:lane id="Nested_Lane_B" name="Nested_Lane_B" />
|
||||||
|
<bpmn2:lane id="Nested_Lane_A" name="Nested_Lane_A">
|
||||||
|
<bpmn2:flowNodeRef>Task_Boundary</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Task</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Event</bpmn2:flowNodeRef>
|
||||||
|
<bpmn2:flowNodeRef>Boundary</bpmn2:flowNodeRef>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:childLaneSet>
|
||||||
|
</bpmn2:lane>
|
||||||
|
</bpmn2:laneSet>
|
||||||
|
<bpmn2:task id="Task_Boundary" name="Task_Boundary">
|
||||||
|
<bpmn2:outgoing>SequenceFlow</bpmn2:outgoing>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:task id="Task" name="Task">
|
||||||
|
<bpmn2:incoming>SequenceFlow_From_Boundary</bpmn2:incoming>
|
||||||
|
<bpmn2:incoming>SequenceFlow</bpmn2:incoming>
|
||||||
|
</bpmn2:task>
|
||||||
|
<bpmn2:startEvent id="Event" name="Start" />
|
||||||
|
<bpmn2:boundaryEvent id="Boundary" name="Boundary" attachedToRef="Task_Boundary">
|
||||||
|
<bpmn2:outgoing>SequenceFlow_From_Boundary</bpmn2:outgoing>
|
||||||
|
</bpmn2:boundaryEvent>
|
||||||
|
<bpmn2:sequenceFlow id="SequenceFlow" name="Flow" sourceRef="Task_Boundary" targetRef="Task" />
|
||||||
|
<bpmn2:sequenceFlow id="SequenceFlow_From_Boundary" name="" sourceRef="Boundary" targetRef="Task" />
|
||||||
|
</bpmn2:process>
|
||||||
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="_Collaboration_2">
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Participant_2" bpmnElement="Participant_Lane" isHorizontal="true">
|
||||||
|
<dc:Bounds x="152" y="83" width="540" height="537" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Task_2" bpmnElement="Task_Boundary">
|
||||||
|
<dc:Bounds x="344" y="113" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_BoundaryEvent_2" bpmnElement="Boundary">
|
||||||
|
<dc:Bounds x="391" y="175" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="339" y="210" width="48" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Task_3" bpmnElement="Task">
|
||||||
|
<dc:Bounds x="512" y="113" width="100" height="80" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_From_Boundary" sourceElement="_BPMNShape_BoundaryEvent_2" targetElement="_BPMNShape_Task_3">
|
||||||
|
<di:waypoint x="409" y="211" />
|
||||||
|
<di:waypoint x="409" y="238" />
|
||||||
|
<di:waypoint x="562" y="238" />
|
||||||
|
<di:waypoint x="562" y="193" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="377" y="188" width="6" height="6" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow" sourceElement="_BPMNShape_Task_2" targetElement="_BPMNShape_Task_3">
|
||||||
|
<di:waypoint x="444" y="153" />
|
||||||
|
<di:waypoint x="512" y="153" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="466" y="135" width="25" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Lane_3" bpmnElement="Lane_A" isHorizontal="true">
|
||||||
|
<dc:Bounds x="182" y="83" width="510" height="537" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Lane_4" bpmnElement="Nested_Lane_A" isHorizontal="true">
|
||||||
|
<dc:Bounds x="212" y="83" width="480" height="180" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="_BPMNShape_Lane_5" bpmnElement="Nested_Lane_B" isHorizontal="true">
|
||||||
|
<dc:Bounds x="212" y="263" width="480" height="357" />
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNShape id="Event_di" bpmnElement="Event">
|
||||||
|
<dc:Bounds x="262" y="135" width="36" height="36" />
|
||||||
|
<bpmndi:BPMNLabel>
|
||||||
|
<dc:Bounds x="268" y="178" width="24" height="14" />
|
||||||
|
</bpmndi:BPMNLabel>
|
||||||
|
</bpmndi:BPMNShape>
|
||||||
|
</bpmndi:BPMNPlane>
|
||||||
|
</bpmndi:BPMNDiagram>
|
||||||
|
</bpmn2:definitions>
|
Loading…
x
Reference in New Issue
Block a user