Merge remote-tracking branch 'origin/main' into feature/gateway_condition_expressions
This commit is contained in:
commit
ca2cd90e70
|
@ -0,0 +1,8 @@
|
||||||
|
// https://stackoverflow.com/a/5767357/6090676
|
||||||
|
export function removeFirstInstanceOfItemFromArrayInPlace(arr, value) {
|
||||||
|
const index = arr.indexOf(value);
|
||||||
|
if (index > -1) {
|
||||||
|
arr.splice(index, 1);
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
|
@ -4,7 +4,15 @@ import { is } from 'bpmn-js/lib/util/ModelUtil';
|
||||||
* loops up until it can find the root.
|
* loops up until it can find the root.
|
||||||
* @param element
|
* @param element
|
||||||
*/
|
*/
|
||||||
export function getRoot(businessObject) {
|
export function getRoot(businessObject, moddle) {
|
||||||
|
// HACK: get the root element. need a more formal way to do this
|
||||||
|
if (moddle) {
|
||||||
|
for (const elementId in moddle.ids._seed.hats) {
|
||||||
|
if (elementId.startsWith('Definitions_')) {
|
||||||
|
return moddle.ids._seed.hats[elementId];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
// todo: Do we want businessObject to be a shape or moddle object?
|
// todo: Do we want businessObject to be a shape or moddle object?
|
||||||
if (businessObject.$type === 'bpmn:Definitions') {
|
if (businessObject.$type === 'bpmn:Definitions') {
|
||||||
return businessObject;
|
return businessObject;
|
||||||
|
@ -12,6 +20,7 @@ export function getRoot(businessObject) {
|
||||||
if (typeof businessObject.$parent !== 'undefined') {
|
if (typeof businessObject.$parent !== 'undefined') {
|
||||||
return getRoot(businessObject.$parent);
|
return getRoot(businessObject.$parent);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return businessObject;
|
return businessObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,23 +68,40 @@ export function getMessageRefElement(shapeElement) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function findFormalExpressions(shapeElement) {
|
export function findCorrelationKeyForCorrelationProperty(shapeElement, moddle) {
|
||||||
|
const correlationKeyElements = findCorrelationKeys(shapeElement, moddle);
|
||||||
|
for (const cke of correlationKeyElements) {
|
||||||
|
if (cke.correlationPropertyRef) {
|
||||||
|
for (const correlationPropertyRef of cke.correlationPropertyRef) {
|
||||||
|
if (correlationPropertyRef.id === shapeElement.id) {
|
||||||
|
return cke;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function findCorrelationPropertiesAndRetrievalExpressionsForMessage(
|
||||||
|
shapeElement
|
||||||
|
) {
|
||||||
const formalExpressions = [];
|
const formalExpressions = [];
|
||||||
const messageRef = getMessageRefElement(shapeElement);
|
const messageRefElement = getMessageRefElement(shapeElement);
|
||||||
if (messageRef) {
|
if (messageRefElement) {
|
||||||
const root = getRoot(shapeElement.businessObject);
|
const root = getRoot(shapeElement.businessObject);
|
||||||
if (root.$type === 'bpmn:Definitions') {
|
if (root.$type === 'bpmn:Definitions') {
|
||||||
for (const childElement of root.rootElements) {
|
for (const childElement of root.rootElements) {
|
||||||
if (childElement.$type === 'bpmn:CorrelationProperty') {
|
if (childElement.$type === 'bpmn:CorrelationProperty') {
|
||||||
const retrievalExpression = processCorrelationProperty(
|
const retrievalExpression =
|
||||||
|
getRetrievalExpressionFromCorrelationProperty(
|
||||||
childElement,
|
childElement,
|
||||||
messageRef
|
messageRefElement
|
||||||
);
|
);
|
||||||
// todo: is there a better test for this than length === 1?
|
if (retrievalExpression) {
|
||||||
if (retrievalExpression.length === 1) {
|
|
||||||
const formalExpression = {
|
const formalExpression = {
|
||||||
correlationId: childElement.id,
|
correlationPropertyModdleElement: childElement,
|
||||||
expression: retrievalExpression[0],
|
correlationPropertyRetrievalExpressionModdleElement:
|
||||||
|
retrievalExpression,
|
||||||
};
|
};
|
||||||
formalExpressions.push(formalExpression);
|
formalExpressions.push(formalExpression);
|
||||||
}
|
}
|
||||||
|
@ -100,24 +126,27 @@ export function getMessageElementForShapeElement(shapeElement) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function processCorrelationProperty(correlationProperty, message) {
|
function getRetrievalExpressionFromCorrelationProperty(
|
||||||
const expressions = [];
|
correlationProperty,
|
||||||
|
message
|
||||||
|
) {
|
||||||
|
if (correlationProperty.correlationPropertyRetrievalExpression) {
|
||||||
for (const retrievalExpression of correlationProperty.correlationPropertyRetrievalExpression) {
|
for (const retrievalExpression of correlationProperty.correlationPropertyRetrievalExpression) {
|
||||||
if (
|
if (
|
||||||
retrievalExpression.$type ===
|
retrievalExpression.$type ===
|
||||||
'bpmn:CorrelationPropertyRetrievalExpression' &&
|
'bpmn:CorrelationPropertyRetrievalExpression' &&
|
||||||
retrievalExpression.messageRef &&
|
retrievalExpression.messageRef &&
|
||||||
retrievalExpression.messageRef.id === message.id &&
|
retrievalExpression.messageRef.id === message.id
|
||||||
retrievalExpression.messagePath.body
|
|
||||||
) {
|
) {
|
||||||
expressions.push(retrievalExpression.messagePath.body);
|
return retrievalExpression;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return expressions;
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function findCorrelationProperties(businessObject) {
|
export function findCorrelationProperties(businessObject, moddle) {
|
||||||
const root = getRoot(businessObject);
|
const root = getRoot(businessObject, moddle);
|
||||||
const correlationProperties = [];
|
const correlationProperties = [];
|
||||||
for (const rootElement of root.rootElements) {
|
for (const rootElement of root.rootElements) {
|
||||||
if (rootElement.$type === 'bpmn:CorrelationProperty') {
|
if (rootElement.$type === 'bpmn:CorrelationProperty') {
|
||||||
|
@ -127,8 +156,8 @@ export function findCorrelationProperties(businessObject) {
|
||||||
return correlationProperties;
|
return correlationProperties;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function findCorrelationKeys(businessObject) {
|
export function findCorrelationKeys(businessObject, moddle) {
|
||||||
const root = getRoot(businessObject);
|
const root = getRoot(businessObject, moddle);
|
||||||
const correlationKeys = [];
|
const correlationKeys = [];
|
||||||
for (const rootElement of root.rootElements) {
|
for (const rootElement of root.rootElements) {
|
||||||
if (rootElement.$type === 'bpmn:Collaboration') {
|
if (rootElement.$type === 'bpmn:Collaboration') {
|
||||||
|
@ -136,15 +165,6 @@ export function findCorrelationKeys(businessObject) {
|
||||||
for (const correlationKey in currentKeys) {
|
for (const correlationKey in currentKeys) {
|
||||||
const currentCorrelation = rootElement.correlationKeys[correlationKey];
|
const currentCorrelation = rootElement.correlationKeys[correlationKey];
|
||||||
correlationKeys.push(currentCorrelation);
|
correlationKeys.push(currentCorrelation);
|
||||||
// const currentProperty = {};
|
|
||||||
// currentProperty.name = currentCorrelation.name;
|
|
||||||
// currentProperty.refs = [];
|
|
||||||
// for (const correlationProperty in currentCorrelation.correlationPropertyRef) {
|
|
||||||
// currentProperty.refs.push(
|
|
||||||
// currentCorrelation.correlationPropertyRef[correlationProperty]
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// correlationKeys.push(currentProperty);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { useService } from 'bpmn-js-properties-panel';
|
import { useService } from 'bpmn-js-properties-panel';
|
||||||
import { SimpleEntry, TextFieldEntry } from '@bpmn-io/properties-panel';
|
import { SimpleEntry, TextFieldEntry } from '@bpmn-io/properties-panel';
|
||||||
import { findCorrelationKeys, getRoot } from '../MessageHelpers';
|
import { findCorrelationKeys, getRoot } from '../MessageHelpers';
|
||||||
|
import { removeFirstInstanceOfItemFromArrayInPlace } from '../../helpers';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides a list of data objects, and allows you to add / remove data objects, and change their ids.
|
* Provides a list of data objects, and allows you to add / remove data objects, and change their ids.
|
||||||
|
@ -10,18 +11,24 @@ import { findCorrelationKeys, getRoot } from '../MessageHelpers';
|
||||||
export function CorrelationKeysArray(props) {
|
export function CorrelationKeysArray(props) {
|
||||||
const { element, moddle, commandStack } = props;
|
const { element, moddle, commandStack } = props;
|
||||||
|
|
||||||
const correlationKeys = findCorrelationKeys(element.businessObject);
|
const correlationKeyElements = findCorrelationKeys(element.businessObject);
|
||||||
const items = correlationKeys.map((correlationKey, index) => {
|
const items = correlationKeyElements.map((correlationKeyElement, index) => {
|
||||||
const id = `correlationGroup-${index}`;
|
const id = `correlationGroup-${index}`;
|
||||||
return {
|
return {
|
||||||
id,
|
id,
|
||||||
label: correlationKey.name,
|
label: correlationKeyElement.name,
|
||||||
entries: correlationGroup({
|
entries: correlationGroup({
|
||||||
id,
|
id,
|
||||||
element,
|
element,
|
||||||
correlationKey,
|
correlationKeyElement,
|
||||||
commandStack,
|
commandStack,
|
||||||
}),
|
}),
|
||||||
|
remove: removeFactory({
|
||||||
|
element,
|
||||||
|
correlationKeyElement,
|
||||||
|
commandStack,
|
||||||
|
moddle,
|
||||||
|
}),
|
||||||
autoFocusEntry: id,
|
autoFocusEntry: id,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -32,14 +39,14 @@ export function CorrelationKeysArray(props) {
|
||||||
const newCorrelationKeyElement = moddle.create('bpmn:CorrelationKey');
|
const newCorrelationKeyElement = moddle.create('bpmn:CorrelationKey');
|
||||||
newCorrelationKeyElement.name =
|
newCorrelationKeyElement.name =
|
||||||
moddle.ids.nextPrefixed('CorrelationKey_');
|
moddle.ids.nextPrefixed('CorrelationKey_');
|
||||||
const correlationKeyElements =
|
const currentCorrelationKeyElements =
|
||||||
element.businessObject.get('correlationKeys');
|
element.businessObject.get('correlationKeys');
|
||||||
correlationKeyElements.push(newCorrelationKeyElement);
|
currentCorrelationKeyElements.push(newCorrelationKeyElement);
|
||||||
commandStack.execute('element.updateProperties', {
|
commandStack.execute('element.updateProperties', {
|
||||||
element,
|
element,
|
||||||
moddleElement: moddle,
|
moddleElement: moddle,
|
||||||
properties: {
|
properties: {
|
||||||
correlationKey: correlationKeyElements,
|
correlationKeys: currentCorrelationKeyElements,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -48,23 +55,44 @@ export function CorrelationKeysArray(props) {
|
||||||
return { items, add };
|
return { items, add };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeFactory(props) {
|
||||||
|
const { element, correlationKeyElement, moddle, commandStack } = props;
|
||||||
|
|
||||||
|
return function (event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const currentCorrelationKeyElements =
|
||||||
|
element.businessObject.get('correlationKeys');
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
currentCorrelationKeyElements,
|
||||||
|
correlationKeyElement
|
||||||
|
);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: moddle,
|
||||||
|
properties: {
|
||||||
|
correlationKey: currentCorrelationKeyElements,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// <bpmn:correlationKey name="lover"> <--- The correlationGroup
|
// <bpmn:correlationKey name="lover"> <--- The correlationGroup
|
||||||
// <bpmn:correlationPropertyRef>lover_name</bpmn:correlationPropertyRef>
|
// <bpmn:correlationPropertyRef>lover_name</bpmn:correlationPropertyRef>
|
||||||
// <bpmn:correlationPropertyRef>lover_instrument</bpmn:correlationPropertyRef>
|
// <bpmn:correlationPropertyRef>lover_instrument</bpmn:correlationPropertyRef>
|
||||||
// </bpmn:correlationKey>
|
// </bpmn:correlationKey>
|
||||||
// <bpmn:correlationKey name="singer" />
|
// <bpmn:correlationKey name="singer" />
|
||||||
function correlationGroup(props) {
|
function correlationGroup(props) {
|
||||||
const { correlationKey, commandStack } = props;
|
const { correlationKeyElement, commandStack } = props;
|
||||||
const id = `correlation-${correlationKey.name}`;
|
const id = `correlation-${correlationKeyElement.name}`;
|
||||||
const entries = [
|
const entries = [
|
||||||
{
|
{
|
||||||
id: `${id}-${correlationKey.name}-key`,
|
id: `${id}-${correlationKeyElement.name}-key`,
|
||||||
component: CorrelationKeyTextField,
|
component: CorrelationKeyTextField,
|
||||||
correlationKey,
|
correlationKeyElement,
|
||||||
commandStack,
|
commandStack,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
(correlationKey.correlationPropertyRef || []).forEach(
|
(correlationKeyElement.correlationPropertyRef || []).forEach(
|
||||||
(correlationProperty) => {
|
(correlationProperty) => {
|
||||||
entries.push({
|
entries.push({
|
||||||
id: `${id}-${correlationProperty.id}-group`,
|
id: `${id}-${correlationProperty.id}-group`,
|
||||||
|
@ -77,13 +105,13 @@ function correlationGroup(props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function CorrelationKeyTextField(props) {
|
function CorrelationKeyTextField(props) {
|
||||||
const { id, element, correlationKey, commandStack } = props;
|
const { id, element, correlationKeyElement, commandStack } = props;
|
||||||
|
|
||||||
const debounce = useService('debounceInput');
|
const debounce = useService('debounceInput');
|
||||||
const setValue = (value) => {
|
const setValue = (value) => {
|
||||||
commandStack.execute('element.updateModdleProperties', {
|
commandStack.execute('element.updateModdleProperties', {
|
||||||
element,
|
element,
|
||||||
moddleElement: correlationKey,
|
moddleElement: correlationKeyElement,
|
||||||
properties: {
|
properties: {
|
||||||
name: value,
|
name: value,
|
||||||
},
|
},
|
||||||
|
@ -91,7 +119,7 @@ function CorrelationKeyTextField(props) {
|
||||||
};
|
};
|
||||||
|
|
||||||
const getValue = () => {
|
const getValue = () => {
|
||||||
return correlationKey.name;
|
return correlationKeyElement.name;
|
||||||
};
|
};
|
||||||
|
|
||||||
return TextFieldEntry({
|
return TextFieldEntry({
|
||||||
|
@ -105,7 +133,6 @@ function CorrelationKeyTextField(props) {
|
||||||
|
|
||||||
function CorrelationPropertyText(props) {
|
function CorrelationPropertyText(props) {
|
||||||
const { id, parameter, correlationProperty } = props;
|
const { id, parameter, correlationProperty } = props;
|
||||||
|
|
||||||
const debounce = useService('debounceInput');
|
const debounce = useService('debounceInput');
|
||||||
|
|
||||||
const getValue = () => {
|
const getValue = () => {
|
||||||
|
|
|
@ -1,11 +1,16 @@
|
||||||
import { useService } from 'bpmn-js-properties-panel';
|
import { useService } from 'bpmn-js-properties-panel';
|
||||||
import {
|
import {
|
||||||
|
SelectEntry,
|
||||||
isTextFieldEntryEdited,
|
isTextFieldEntryEdited,
|
||||||
ListGroup,
|
|
||||||
TextAreaEntry,
|
|
||||||
TextFieldEntry,
|
TextFieldEntry,
|
||||||
} from '@bpmn-io/properties-panel';
|
} from '@bpmn-io/properties-panel';
|
||||||
import { findFormalExpressions } from '../MessageHelpers';
|
import {
|
||||||
|
getRoot,
|
||||||
|
findCorrelationKeys,
|
||||||
|
findCorrelationProperties,
|
||||||
|
findCorrelationKeyForCorrelationProperty,
|
||||||
|
} from '../MessageHelpers';
|
||||||
|
import { removeFirstInstanceOfItemFromArrayInPlace } from '../../helpers';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allows the creation, or editing of messageCorrelations at the bpmn:sendTask level of a BPMN document.
|
* Allows the creation, or editing of messageCorrelations at the bpmn:sendTask level of a BPMN document.
|
||||||
|
@ -14,93 +19,289 @@ export function CorrelationPropertiesArray(props) {
|
||||||
const { moddle } = props;
|
const { moddle } = props;
|
||||||
const { element } = props;
|
const { element } = props;
|
||||||
const { commandStack } = props;
|
const { commandStack } = props;
|
||||||
// const { elementRegistry } = props;
|
const { translate } = props;
|
||||||
|
|
||||||
const formalExpressions = findFormalExpressions(element);
|
const correlationPropertyArray = findCorrelationProperties(
|
||||||
const items = formalExpressions.map((formalExpression) => {
|
element.businessObject
|
||||||
const id = `correlation-${formalExpression.correlationId}`;
|
);
|
||||||
const entries = MessageCorrelationGroup({
|
const items = correlationPropertyArray.map(
|
||||||
|
(correlationPropertyModdleElement, index) => {
|
||||||
|
const id = `correlation-${index}`;
|
||||||
|
const entries = MessageCorrelationPropertyGroup({
|
||||||
idPrefix: id,
|
idPrefix: id,
|
||||||
formalExpression,
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
commandStack,
|
||||||
|
moddle,
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
id,
|
id,
|
||||||
label: formalExpression.correlationId,
|
label: correlationPropertyModdleElement.id,
|
||||||
entries,
|
entries,
|
||||||
autoFocusEntry: id,
|
autoFocusEntry: id,
|
||||||
// remove: removeFactory({ element, correlationProperty, commandStack, elementRegistry })
|
remove: removeFactory({
|
||||||
|
element,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
commandStack,
|
||||||
|
moddle,
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
});
|
}
|
||||||
|
);
|
||||||
|
|
||||||
function add(event) {
|
function add(event) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
const newRetrievalExpression = moddle.create(
|
const newCorrelationPropertyElement = moddle.create(
|
||||||
'bpmn:CorrelationPropertyRetrievalExpression'
|
'bpmn:CorrelationProperty'
|
||||||
);
|
);
|
||||||
const newElements = formalExpressions;
|
const correlationPropertyId = moddle.ids.nextPrefixed(
|
||||||
newRetrievalExpression.messageRef = element.businessObject.messageRef;
|
'CorrelationProperty_'
|
||||||
newElements.push(newRetrievalExpression);
|
);
|
||||||
commandStack.execute('element.updateModdleProperties', {
|
newCorrelationPropertyElement.id = correlationPropertyId;
|
||||||
|
newCorrelationPropertyElement.name = correlationPropertyId;
|
||||||
|
const rootElement = getRoot(element.businessObject);
|
||||||
|
const { rootElements } = rootElement;
|
||||||
|
rootElements.push(newCorrelationPropertyElement);
|
||||||
|
|
||||||
|
const correlationKeyElements = findCorrelationKeys(
|
||||||
|
newCorrelationPropertyElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
const correlationKeyElement = correlationKeyElements[0];
|
||||||
|
if (correlationKeyElement.correlationPropertyRef) {
|
||||||
|
correlationKeyElement.correlationPropertyRef.push(
|
||||||
|
newCorrelationPropertyElement
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
correlationKeyElement.correlationPropertyRef = [
|
||||||
|
newCorrelationPropertyElement,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
element,
|
element,
|
||||||
moddleElement: element.businessObject,
|
properties: {},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return { items, add };
|
return { items, add };
|
||||||
}
|
}
|
||||||
|
|
||||||
function MessageCorrelationGroup(props) {
|
function removeFactory(props) {
|
||||||
const { idPrefix, formalExpression } = props;
|
const { element, correlationPropertyModdleElement, moddle, commandStack } =
|
||||||
|
props;
|
||||||
|
|
||||||
|
return function (event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const rootElement = getRoot(element.businessObject);
|
||||||
|
const { rootElements } = rootElement;
|
||||||
|
|
||||||
|
const oldCorrelationKeyElement = findCorrelationKeyForCorrelationProperty(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
if (oldCorrelationKeyElement) {
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
oldCorrelationKeyElement.correlationPropertyRef,
|
||||||
|
correlationPropertyModdleElement
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
rootElements,
|
||||||
|
correlationPropertyModdleElement
|
||||||
|
);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
properties: {
|
||||||
|
messages: rootElements,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageCorrelationPropertyGroup(props) {
|
||||||
|
const {
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
commandStack,
|
||||||
|
moddle,
|
||||||
|
} = props;
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
id: `${idPrefix}-group`,
|
id: `${idPrefix}-correlation-key`,
|
||||||
component: MessageCorrelationTextField,
|
component: MessageCorrelationKeySelect,
|
||||||
isEdited: isTextFieldEntryEdited,
|
isEdited: isTextFieldEntryEdited,
|
||||||
idPrefix,
|
idPrefix,
|
||||||
formalExpression,
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
moddle,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: `${idPrefix}-correlation-property-id`,
|
||||||
|
component: CorrelationPropertyIdTextField,
|
||||||
|
isEdited: isTextFieldEntryEdited,
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
commandStack,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: `${idPrefix}-correlation-property-name`,
|
||||||
|
component: CorrelationPropertyNameTextField,
|
||||||
|
isEdited: isTextFieldEntryEdited,
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
commandStack,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function MessageCorrelationTextField(props) {
|
function MessageCorrelationKeySelect(props) {
|
||||||
const { idPrefix, element, parameter, formalExpression } = props;
|
const {
|
||||||
|
idPrefix,
|
||||||
const commandStack = useService('commandStack');
|
correlationPropertyModdleElement,
|
||||||
|
translate,
|
||||||
|
parameter,
|
||||||
|
moddle,
|
||||||
|
} = props;
|
||||||
const debounce = useService('debounceInput');
|
const debounce = useService('debounceInput');
|
||||||
|
|
||||||
|
const setValue = (value) => {
|
||||||
|
const correlationKeyElements = findCorrelationKeys(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
let newCorrelationKeyElement;
|
||||||
|
for (const cke of correlationKeyElements) {
|
||||||
|
if (cke.name === value) {
|
||||||
|
newCorrelationKeyElement = cke;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const oldCorrelationKeyElement = findCorrelationKeyForCorrelationProperty(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
|
||||||
|
if (newCorrelationKeyElement.correlationPropertyRef) {
|
||||||
|
newCorrelationKeyElement.correlationPropertyRef.push(
|
||||||
|
correlationPropertyModdleElement
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
newCorrelationKeyElement.correlationPropertyRef = [
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldCorrelationKeyElement) {
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
oldCorrelationKeyElement.correlationPropertyRef,
|
||||||
|
correlationPropertyModdleElement
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = () => {
|
||||||
|
const correlationKeyElement = findCorrelationKeyForCorrelationProperty(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
if (correlationKeyElement) {
|
||||||
|
return correlationKeyElement.name;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getOptions = () => {
|
||||||
|
const correlationKeyElements = findCorrelationKeys(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
const options = [];
|
||||||
|
for (const correlationKeyElement of correlationKeyElements) {
|
||||||
|
options.push({
|
||||||
|
label: correlationKeyElement.name,
|
||||||
|
value: correlationKeyElement.name,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
};
|
||||||
|
|
||||||
|
return SelectEntry({
|
||||||
|
id: `${idPrefix}-select`,
|
||||||
|
element: parameter,
|
||||||
|
label: translate('Correlation Key'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
getOptions,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function CorrelationPropertyIdTextField(props) {
|
||||||
|
const {
|
||||||
|
id,
|
||||||
|
element,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
commandStack,
|
||||||
|
translate,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
const setValue = (value) => {
|
const setValue = (value) => {
|
||||||
commandStack.execute('element.updateModdleProperties', {
|
commandStack.execute('element.updateModdleProperties', {
|
||||||
element,
|
element,
|
||||||
moddleElement: formalExpression,
|
moddleElement: correlationPropertyModdleElement,
|
||||||
properties: {
|
properties: {
|
||||||
id: value,
|
id: value,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Also update the label of all the references
|
|
||||||
// const references = findDataReferenceShapes(element, correlationProperty.id);
|
|
||||||
const references = ['hello1', 'hello2'];
|
|
||||||
for (const ref of references) {
|
|
||||||
commandStack.execute('element.updateProperties', {
|
|
||||||
element: ref,
|
|
||||||
moddleElement: ref.businessObject,
|
|
||||||
properties: {
|
|
||||||
name: value,
|
|
||||||
},
|
|
||||||
changed: [ref], // everything is already marked as changed, don't recalculate.
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const getValue = (_parameter) => {
|
const getValue = () => {
|
||||||
return formalExpression.expression;
|
return correlationPropertyModdleElement.id;
|
||||||
};
|
};
|
||||||
|
|
||||||
return TextFieldEntry({
|
return TextFieldEntry({
|
||||||
element: parameter,
|
element,
|
||||||
id: `${idPrefix}-textField`,
|
id: `${id}-id-textField`,
|
||||||
label: 'Expression',
|
label: translate('ID'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function CorrelationPropertyNameTextField(props) {
|
||||||
|
const {
|
||||||
|
id,
|
||||||
|
element,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
commandStack,
|
||||||
|
translate,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
|
const setValue = (value) => {
|
||||||
|
commandStack.execute('element.updateModdleProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: correlationPropertyModdleElement,
|
||||||
|
properties: {
|
||||||
|
name: value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = () => {
|
||||||
|
return correlationPropertyModdleElement.name;
|
||||||
|
};
|
||||||
|
|
||||||
|
return TextFieldEntry({
|
||||||
|
element,
|
||||||
|
id: `${id}-name-textField`,
|
||||||
|
label: translate('Name'),
|
||||||
getValue,
|
getValue,
|
||||||
setValue,
|
setValue,
|
||||||
debounce,
|
debounce,
|
||||||
|
|
|
@ -0,0 +1,158 @@
|
||||||
|
import { useService } from 'bpmn-js-properties-panel';
|
||||||
|
import { TextFieldEntry } from '@bpmn-io/properties-panel';
|
||||||
|
import { without } from 'min-dash';
|
||||||
|
import {
|
||||||
|
findCorrelationKeys,
|
||||||
|
getRoot,
|
||||||
|
findMessageModdleElements,
|
||||||
|
} from '../MessageHelpers';
|
||||||
|
import { removeFirstInstanceOfItemFromArrayInPlace } from '../../helpers';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides a list of data objects, and allows you to add / remove data objects, and change their ids.
|
||||||
|
* @param props
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
export function MessageArray(props) {
|
||||||
|
const { element, moddle, commandStack, translate } = props;
|
||||||
|
|
||||||
|
const messageElements = findMessageModdleElements(element.businessObject);
|
||||||
|
const items = messageElements.map((messageElement, index) => {
|
||||||
|
const id = `messageElement-${index}`;
|
||||||
|
return {
|
||||||
|
id,
|
||||||
|
label: messageElement.name,
|
||||||
|
entries: messageGroup({
|
||||||
|
id,
|
||||||
|
element,
|
||||||
|
messageElement,
|
||||||
|
commandStack,
|
||||||
|
translate,
|
||||||
|
}),
|
||||||
|
autoFocusEntry: id,
|
||||||
|
remove: removeFactory({
|
||||||
|
element,
|
||||||
|
messageElement,
|
||||||
|
commandStack,
|
||||||
|
moddle,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
function add(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
if (element.type === 'bpmn:Collaboration') {
|
||||||
|
const newMessageElement = moddle.create('bpmn:Message');
|
||||||
|
const messageId = moddle.ids.nextPrefixed('Message_');
|
||||||
|
newMessageElement.id = messageId;
|
||||||
|
newMessageElement.name = messageId;
|
||||||
|
const rootElement = getRoot(element.businessObject);
|
||||||
|
const { rootElements } = rootElement;
|
||||||
|
rootElements.push(newMessageElement);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: moddle,
|
||||||
|
properties: {
|
||||||
|
messages: rootElements,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return { items, add };
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeFactory(props) {
|
||||||
|
const { element, messageElement, moddle, commandStack } = props;
|
||||||
|
|
||||||
|
return function (event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const rootElement = getRoot(element.businessObject);
|
||||||
|
const { rootElements } = rootElement;
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(rootElements, messageElement);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: moddle,
|
||||||
|
properties: {
|
||||||
|
messages: rootElements,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function messageGroup(props) {
|
||||||
|
const { messageElement, commandStack, translate } = props;
|
||||||
|
const id = `message-${messageElement.name}`;
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
id: `${id}-${messageElement.name}-key`,
|
||||||
|
component: MessageIdTextField,
|
||||||
|
messageElement,
|
||||||
|
commandStack,
|
||||||
|
translate,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: `${id}-${messageElement.name}-key`,
|
||||||
|
component: MessageNameTextField,
|
||||||
|
messageElement,
|
||||||
|
commandStack,
|
||||||
|
translate,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageIdTextField(props) {
|
||||||
|
const { id, element, messageElement, commandStack, translate } = props;
|
||||||
|
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
|
const setValue = (value) => {
|
||||||
|
commandStack.execute('element.updateModdleProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: messageElement,
|
||||||
|
properties: {
|
||||||
|
id: value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = () => {
|
||||||
|
return messageElement.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
return TextFieldEntry({
|
||||||
|
element,
|
||||||
|
id: `${id}-id-textField`,
|
||||||
|
label: translate('ID'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageNameTextField(props) {
|
||||||
|
const { id, element, messageElement, commandStack, translate } = props;
|
||||||
|
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
|
const setValue = (value) => {
|
||||||
|
commandStack.execute('element.updateModdleProperties', {
|
||||||
|
element,
|
||||||
|
moddleElement: messageElement,
|
||||||
|
properties: {
|
||||||
|
name: value,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = () => {
|
||||||
|
return messageElement.name;
|
||||||
|
};
|
||||||
|
|
||||||
|
return TextFieldEntry({
|
||||||
|
element,
|
||||||
|
id: `${id}-name-textField`,
|
||||||
|
label: translate('Name'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,278 @@
|
||||||
|
import { useService } from 'bpmn-js-properties-panel';
|
||||||
|
import {
|
||||||
|
SelectEntry,
|
||||||
|
isTextFieldEntryEdited,
|
||||||
|
TextFieldEntry,
|
||||||
|
} from '@bpmn-io/properties-panel';
|
||||||
|
import {
|
||||||
|
findCorrelationPropertiesAndRetrievalExpressionsForMessage,
|
||||||
|
findCorrelationProperties,
|
||||||
|
getMessageRefElement,
|
||||||
|
} from '../MessageHelpers';
|
||||||
|
import { removeFirstInstanceOfItemFromArrayInPlace } from '../../helpers';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allows the creation, or editing of messageCorrelations at the bpmn:sendTask level of a BPMN document.
|
||||||
|
*/
|
||||||
|
export function MessageCorrelationPropertiesArray(props) {
|
||||||
|
const { moddle } = props;
|
||||||
|
const { element } = props;
|
||||||
|
const { commandStack } = props;
|
||||||
|
const { translate } = props;
|
||||||
|
|
||||||
|
const correlationPropertyObjectsForCurrentMessage =
|
||||||
|
findCorrelationPropertiesAndRetrievalExpressionsForMessage(element);
|
||||||
|
const allCorrelationPropertyModdleElements = findCorrelationProperties(
|
||||||
|
element,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
const items = correlationPropertyObjectsForCurrentMessage.map(
|
||||||
|
(correlationPropertyObject, index) => {
|
||||||
|
const {
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
} = correlationPropertyObject;
|
||||||
|
const id = `correlation-${index}`;
|
||||||
|
const entries = MessageCorrelationPropertyGroup({
|
||||||
|
idPrefix: id,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
moddle,
|
||||||
|
element,
|
||||||
|
commandStack,
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
id,
|
||||||
|
label: correlationPropertyModdleElement.id,
|
||||||
|
entries,
|
||||||
|
autoFocusEntry: id,
|
||||||
|
remove: removeFactory({
|
||||||
|
element,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
commandStack,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function add(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
let correlationPropertyElement;
|
||||||
|
allCorrelationPropertyModdleElements.forEach((cpe) => {
|
||||||
|
let foundElement = false;
|
||||||
|
correlationPropertyObjectsForCurrentMessage.forEach((cpo) => {
|
||||||
|
const cpme = cpo.correlationPropertyModdleElement;
|
||||||
|
if (cpme.id === cpe.id) {
|
||||||
|
foundElement = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (!foundElement) {
|
||||||
|
correlationPropertyElement = cpe;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// TODO: we should have some way to show an error if element is not found instead
|
||||||
|
// we need to check this since the code assumes each message only has one ref
|
||||||
|
// and will not display all properties if there are multiple
|
||||||
|
if (correlationPropertyElement) {
|
||||||
|
const newRetrievalExpressionElement = moddle.create(
|
||||||
|
'bpmn:CorrelationPropertyRetrievalExpression'
|
||||||
|
);
|
||||||
|
const messageRefElement = getMessageRefElement(element);
|
||||||
|
const newFormalExpression = moddle.create('bpmn:FormalExpression');
|
||||||
|
newFormalExpression.body = '';
|
||||||
|
|
||||||
|
newRetrievalExpressionElement.messageRef = messageRefElement;
|
||||||
|
newRetrievalExpressionElement.messagePath = newFormalExpression;
|
||||||
|
|
||||||
|
if (!correlationPropertyElement.correlationPropertyRetrievalExpression) {
|
||||||
|
correlationPropertyElement.correlationPropertyRetrievalExpression = [];
|
||||||
|
}
|
||||||
|
correlationPropertyElement.correlationPropertyRetrievalExpression.push(
|
||||||
|
newRetrievalExpressionElement
|
||||||
|
);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log(
|
||||||
|
'ERROR: There are not any more correlation properties this message can be added to'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const returnObject = { items };
|
||||||
|
if (allCorrelationPropertyModdleElements.length !== 0) {
|
||||||
|
returnObject.add = add;
|
||||||
|
}
|
||||||
|
return returnObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeFactory(props) {
|
||||||
|
const {
|
||||||
|
element,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
commandStack,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
return function (event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
correlationPropertyModdleElement.correlationPropertyRetrievalExpression,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement
|
||||||
|
);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageCorrelationPropertyGroup(props) {
|
||||||
|
const {
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
moddle,
|
||||||
|
element,
|
||||||
|
commandStack,
|
||||||
|
} = props;
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
id: `${idPrefix}-correlation-key`,
|
||||||
|
component: MessageCorrelationPropertySelect,
|
||||||
|
isEdited: isTextFieldEntryEdited,
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
moddle,
|
||||||
|
element,
|
||||||
|
commandStack,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: `${idPrefix}-expression`,
|
||||||
|
component: MessageCorrelationExpressionTextField,
|
||||||
|
isEdited: isTextFieldEntryEdited,
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageCorrelationPropertySelect(props) {
|
||||||
|
const {
|
||||||
|
idPrefix,
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
parameter,
|
||||||
|
moddle,
|
||||||
|
element,
|
||||||
|
commandStack,
|
||||||
|
} = props;
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
|
|
||||||
|
const setValue = (value) => {
|
||||||
|
const allCorrelationPropertyModdleElements = findCorrelationProperties(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
const newCorrelationPropertyElement =
|
||||||
|
allCorrelationPropertyModdleElements.find((cpe) => cpe.id === value);
|
||||||
|
|
||||||
|
if (!newCorrelationPropertyElement.correlationPropertyRetrievalExpression) {
|
||||||
|
newCorrelationPropertyElement.correlationPropertyRetrievalExpression = [];
|
||||||
|
}
|
||||||
|
newCorrelationPropertyElement.correlationPropertyRetrievalExpression.push(
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement
|
||||||
|
);
|
||||||
|
removeFirstInstanceOfItemFromArrayInPlace(
|
||||||
|
correlationPropertyModdleElement.correlationPropertyRetrievalExpression,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement
|
||||||
|
);
|
||||||
|
commandStack.execute('element.updateProperties', {
|
||||||
|
element,
|
||||||
|
properties: {},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = () => {
|
||||||
|
return correlationPropertyModdleElement.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getOptions = () => {
|
||||||
|
const allCorrelationPropertyModdleElements = findCorrelationProperties(
|
||||||
|
correlationPropertyModdleElement,
|
||||||
|
moddle
|
||||||
|
);
|
||||||
|
const correlationPropertyObjectsForCurrentMessage =
|
||||||
|
findCorrelationPropertiesAndRetrievalExpressionsForMessage(element);
|
||||||
|
const options = [];
|
||||||
|
for (const cpe of allCorrelationPropertyModdleElements) {
|
||||||
|
const foundElement = correlationPropertyObjectsForCurrentMessage.find(
|
||||||
|
(cpo) => {
|
||||||
|
const cpme = cpo.correlationPropertyModdleElement;
|
||||||
|
return cpme.id === cpe.id;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (
|
||||||
|
!foundElement ||
|
||||||
|
foundElement.correlationPropertyModdleElement ===
|
||||||
|
correlationPropertyModdleElement
|
||||||
|
) {
|
||||||
|
options.push({
|
||||||
|
label: cpe.name,
|
||||||
|
value: cpe.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
};
|
||||||
|
|
||||||
|
return SelectEntry({
|
||||||
|
id: `${idPrefix}-select`,
|
||||||
|
element: parameter,
|
||||||
|
label: translate('Correlation Property'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
getOptions,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function MessageCorrelationExpressionTextField(props) {
|
||||||
|
const {
|
||||||
|
idPrefix,
|
||||||
|
parameter,
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement,
|
||||||
|
translate,
|
||||||
|
} = props;
|
||||||
|
|
||||||
|
const debounce = useService('debounceInput');
|
||||||
|
|
||||||
|
const setValue = (value) => {
|
||||||
|
correlationPropertyRetrievalExpressionModdleElement.messagePath.body =
|
||||||
|
value;
|
||||||
|
};
|
||||||
|
|
||||||
|
const getValue = (_parameter) => {
|
||||||
|
return correlationPropertyRetrievalExpressionModdleElement.messagePath.body;
|
||||||
|
};
|
||||||
|
|
||||||
|
return TextFieldEntry({
|
||||||
|
element: parameter,
|
||||||
|
id: `${idPrefix}-textField`,
|
||||||
|
label: translate('Expression'),
|
||||||
|
getValue,
|
||||||
|
setValue,
|
||||||
|
debounce,
|
||||||
|
});
|
||||||
|
}
|
|
@ -5,6 +5,8 @@ import { MessageSelect } from './MessageSelect';
|
||||||
import { MessagePayload } from './MessagePayload';
|
import { MessagePayload } from './MessagePayload';
|
||||||
import { MessageVariable } from './MessageVariable';
|
import { MessageVariable } from './MessageVariable';
|
||||||
import { CorrelationPropertiesArray } from './CorrelationPropertiesArray';
|
import { CorrelationPropertiesArray } from './CorrelationPropertiesArray';
|
||||||
|
import { MessageCorrelationPropertiesArray } from './MessageCorrelationPropertiesArray';
|
||||||
|
import { MessageArray } from './MessageArray';
|
||||||
import { isMessageElement, canReceiveMessage } from '../MessageHelpers';
|
import { isMessageElement, canReceiveMessage } from '../MessageHelpers';
|
||||||
|
|
||||||
const LOW_PRIORITY = 500;
|
const LOW_PRIORITY = 500;
|
||||||
|
@ -20,7 +22,7 @@ export default function MessagesPropertiesProvider(
|
||||||
return function pushGroup(groups) {
|
return function pushGroup(groups) {
|
||||||
if (is(element, 'bpmn:Collaboration')) {
|
if (is(element, 'bpmn:Collaboration')) {
|
||||||
groups.push(
|
groups.push(
|
||||||
createCollaborationGroup(
|
...createCollaborationGroup(
|
||||||
element,
|
element,
|
||||||
translate,
|
translate,
|
||||||
moddle,
|
moddle,
|
||||||
|
@ -80,12 +82,44 @@ function createCollaborationGroup(
|
||||||
commandStack,
|
commandStack,
|
||||||
elementRegistry
|
elementRegistry
|
||||||
) {
|
) {
|
||||||
return {
|
return [
|
||||||
|
{
|
||||||
id: 'correlation_keys',
|
id: 'correlation_keys',
|
||||||
label: translate('Correlation Keys'),
|
label: translate('Correlation Keys'),
|
||||||
component: ListGroup,
|
component: ListGroup,
|
||||||
...CorrelationKeysArray({ element, moddle, commandStack, elementRegistry }),
|
...CorrelationKeysArray({
|
||||||
};
|
element,
|
||||||
|
moddle,
|
||||||
|
commandStack,
|
||||||
|
elementRegistry,
|
||||||
|
translate,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'correlation_properties',
|
||||||
|
label: translate('Correlation Properties'),
|
||||||
|
component: ListGroup,
|
||||||
|
...CorrelationPropertiesArray({
|
||||||
|
element,
|
||||||
|
moddle,
|
||||||
|
commandStack,
|
||||||
|
elementRegistry,
|
||||||
|
translate,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'messages',
|
||||||
|
label: translate('Messages'),
|
||||||
|
component: ListGroup,
|
||||||
|
...MessageArray({
|
||||||
|
element,
|
||||||
|
moddle,
|
||||||
|
commandStack,
|
||||||
|
elementRegistry,
|
||||||
|
translate,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -133,13 +167,14 @@ function createMessageGroup(
|
||||||
|
|
||||||
entries.push({
|
entries.push({
|
||||||
id: 'correlationProperties',
|
id: 'correlationProperties',
|
||||||
label: translate('Correlation Properties'),
|
label: translate('Correlation'),
|
||||||
component: ListGroup,
|
component: ListGroup,
|
||||||
...CorrelationPropertiesArray({
|
...MessageCorrelationPropertiesArray({
|
||||||
element,
|
element,
|
||||||
moddle,
|
moddle,
|
||||||
commandStack,
|
commandStack,
|
||||||
elementRegistry,
|
elementRegistry,
|
||||||
|
translate,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -9,9 +9,9 @@
|
||||||
"version": "0.0.8",
|
"version": "0.0.8",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bpmn-io/properties-panel": "^0.18.0",
|
"@bpmn-io/properties-panel": "^0.19.0",
|
||||||
"bpmn-js": "^9.2.2",
|
"bpmn-js": "^9.4.0",
|
||||||
"bpmn-js-properties-panel": "^1.2.0",
|
"bpmn-js-properties-panel": "^1.5.0",
|
||||||
"diagram-js": "^8.5.0",
|
"diagram-js": "^8.5.0",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
"inherits-browser": "^0.0.1",
|
"inherits-browser": "^0.0.1",
|
||||||
|
@ -1929,9 +1929,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@bpmn-io/properties-panel": {
|
"node_modules/@bpmn-io/properties-panel": {
|
||||||
"version": "0.18.0",
|
"version": "0.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-0.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-0.19.0.tgz",
|
||||||
"integrity": "sha512-2OCc6QplFKlCG8hmsAuUvd0JJTPjGvTJ6zxO73R9TpnUw7PKsXq2oIJjJfWsNdmvpmkxeyHoklOf5XpQXFjygw==",
|
"integrity": "sha512-cw+MfA2gpCBsa9Q0+JT3Gc7OvR1NGXuyQj4yOk5QoQHNzxuIMNuz6EX2NvDsCrf0oSzc9z0FapbzDuJB+DSC1g==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bpmn-io/feel-editor": "0.2.0",
|
"@bpmn-io/feel-editor": "0.2.0",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
|
@ -3019,26 +3019,26 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/bpmn-js": {
|
"node_modules/bpmn-js": {
|
||||||
"version": "9.2.2",
|
"version": "9.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-9.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-9.4.0.tgz",
|
||||||
"integrity": "sha512-Zs0e3fKEKIrnfVt+r4hkcqSg2XyMdXwp6x4xM0TDfGlduxyQWQ8rrqsjvnL4UEg4K0noBPqDce2vRawOilwReg==",
|
"integrity": "sha512-7dusZBYCFognA0TmspWaKZ47UjFhyRT+//hMdyLtPCKY1M0uAPXHoFv73MohlsEa7a75h0q6zjCj5W0/RHBwvg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bpmn-moddle": "^7.1.2",
|
"bpmn-moddle": "^7.1.3",
|
||||||
"css.escape": "^1.5.1",
|
"css.escape": "^1.5.1",
|
||||||
"diagram-js": "^8.5.0",
|
"diagram-js": "^8.9.0",
|
||||||
"diagram-js-direct-editing": "^1.7.0",
|
"diagram-js-direct-editing": "^1.7.0",
|
||||||
"ids": "^1.0.0",
|
"ids": "^1.0.0",
|
||||||
"inherits-browser": "0.0.1",
|
"inherits-browser": "0.0.1",
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"min-dom": "^3.2.0",
|
"min-dom": "^3.2.1",
|
||||||
"object-refs": "^0.3.0",
|
"object-refs": "^0.3.0",
|
||||||
"tiny-svg": "^2.2.2"
|
"tiny-svg": "^2.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/bpmn-js-properties-panel": {
|
"node_modules/bpmn-js-properties-panel": {
|
||||||
"version": "1.4.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-1.5.0.tgz",
|
||||||
"integrity": "sha512-+15Yg7FohrdpDuKqegxU9OyGgYcH6sZM06DjwBLKrpqHgmXEXMA0yD0UI9Rc95P4mRfsT4rAzGpZjYnsYgOshg==",
|
"integrity": "sha512-0VAPk6xK/u+GepjGjt8HAXtBa2ab5o4Dkn5II8UgnFMoQThpvrsLras3vh1il8j/2vPhngAsfiA8z7Y9nJ6/Hw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bpmn-io/element-templates-validator": "^0.9.0",
|
"@bpmn-io/element-templates-validator": "^0.9.0",
|
||||||
"@bpmn-io/extract-process-variables": "^0.5.0",
|
"@bpmn-io/extract-process-variables": "^0.5.0",
|
||||||
|
@ -3051,20 +3051,20 @@
|
||||||
"semver-compare": "^1.0.0"
|
"semver-compare": "^1.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@bpmn-io/properties-panel": "0.18.x",
|
"@bpmn-io/properties-panel": "0.19.x",
|
||||||
"bpmn-js": "8.x || 9.x",
|
"bpmn-js": "8.x || 9.x",
|
||||||
"camunda-bpmn-js-behaviors": "0.1.x",
|
"camunda-bpmn-js-behaviors": "0.1.x",
|
||||||
"diagram-js": "7.x || 8.x"
|
"diagram-js": "7.x || 8.x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/bpmn-moddle": {
|
"node_modules/bpmn-moddle": {
|
||||||
"version": "7.1.2",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz",
|
||||||
"integrity": "sha512-Sax4LokRCTqlg26njjULN3ZGtCmwH5gZVUZTRF0jwJk+YpMQhSfSoUECxjNv8OROoLxu8Z+MjdOHIxgvJf7KwA==",
|
"integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"moddle": "^5.0.2",
|
"moddle": "^5.0.2",
|
||||||
"moddle-xml": "^9.0.5"
|
"moddle-xml": "^9.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
|
@ -3723,12 +3723,12 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/diagram-js": {
|
"node_modules/diagram-js": {
|
||||||
"version": "8.5.0",
|
"version": "8.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz",
|
||||||
"integrity": "sha512-UHA/Zfs7kG22M9wXAifAyPb2OZ4lG4lFi0CZ0GC6/lXmOsSHwHVZ1s/h9UqaIXnzIKW8SnZoP3Rwqel1ZhZLzg==",
|
"integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"css.escape": "^1.5.1",
|
"css.escape": "^1.5.1",
|
||||||
"didi": "^8.0.0",
|
"didi": "^8.0.1",
|
||||||
"hammerjs": "^2.0.1",
|
"hammerjs": "^2.0.1",
|
||||||
"inherits-browser": "0.0.1",
|
"inherits-browser": "0.0.1",
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
|
@ -3751,9 +3751,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/didi": {
|
"node_modules/didi": {
|
||||||
"version": "8.0.0",
|
"version": "8.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/didi/-/didi-8.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz",
|
||||||
"integrity": "sha512-PwqTBaYzzfJSyxvpXPcTWF6nDdCKx2mFAU5eup1ZSb5wbaAS9a/HiKdtcAUdie/VMLHoFI50jkYZcA+bhUOugw=="
|
"integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ=="
|
||||||
},
|
},
|
||||||
"node_modules/diff": {
|
"node_modules/diff": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
|
@ -6622,9 +6622,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/moddle-xml": {
|
"node_modules/moddle-xml": {
|
||||||
"version": "9.0.5",
|
"version": "9.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz",
|
||||||
"integrity": "sha512-1t9N35ZMQZTYZmRDoh1mBVd0XwLB34BkBywNJ0+YlLLYxaDBjFR/I+fqwsY746ayYPBz6yNRg8JpLyFgNF+eHg==",
|
"integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"moddle": "^5.0.2",
|
"moddle": "^5.0.2",
|
||||||
|
@ -8471,9 +8471,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/tiny-svg": {
|
"node_modules/tiny-svg": {
|
||||||
"version": "2.2.3",
|
"version": "2.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz",
|
||||||
"integrity": "sha512-u5KGg889pD1W2c9GlLrTnAGzIkAO00/VXZGyzeiGHw+b9er8McLO0SnhxPQQDwDqFO0MrJ825AEsRUoTiDZFuQ=="
|
"integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ=="
|
||||||
},
|
},
|
||||||
"node_modules/tinydate": {
|
"node_modules/tinydate": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
|
@ -10489,9 +10489,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@bpmn-io/properties-panel": {
|
"@bpmn-io/properties-panel": {
|
||||||
"version": "0.18.0",
|
"version": "0.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-0.18.0.tgz",
|
"resolved": "https://registry.npmjs.org/@bpmn-io/properties-panel/-/properties-panel-0.19.0.tgz",
|
||||||
"integrity": "sha512-2OCc6QplFKlCG8hmsAuUvd0JJTPjGvTJ6zxO73R9TpnUw7PKsXq2oIJjJfWsNdmvpmkxeyHoklOf5XpQXFjygw==",
|
"integrity": "sha512-cw+MfA2gpCBsa9Q0+JT3Gc7OvR1NGXuyQj4yOk5QoQHNzxuIMNuz6EX2NvDsCrf0oSzc9z0FapbzDuJB+DSC1g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@bpmn-io/feel-editor": "0.2.0",
|
"@bpmn-io/feel-editor": "0.2.0",
|
||||||
"classnames": "^2.3.1",
|
"classnames": "^2.3.1",
|
||||||
|
@ -11408,26 +11408,26 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bpmn-js": {
|
"bpmn-js": {
|
||||||
"version": "9.2.2",
|
"version": "9.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-9.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-9.4.0.tgz",
|
||||||
"integrity": "sha512-Zs0e3fKEKIrnfVt+r4hkcqSg2XyMdXwp6x4xM0TDfGlduxyQWQ8rrqsjvnL4UEg4K0noBPqDce2vRawOilwReg==",
|
"integrity": "sha512-7dusZBYCFognA0TmspWaKZ47UjFhyRT+//hMdyLtPCKY1M0uAPXHoFv73MohlsEa7a75h0q6zjCj5W0/RHBwvg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"bpmn-moddle": "^7.1.2",
|
"bpmn-moddle": "^7.1.3",
|
||||||
"css.escape": "^1.5.1",
|
"css.escape": "^1.5.1",
|
||||||
"diagram-js": "^8.5.0",
|
"diagram-js": "^8.9.0",
|
||||||
"diagram-js-direct-editing": "^1.7.0",
|
"diagram-js-direct-editing": "^1.7.0",
|
||||||
"ids": "^1.0.0",
|
"ids": "^1.0.0",
|
||||||
"inherits-browser": "0.0.1",
|
"inherits-browser": "0.0.1",
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"min-dom": "^3.2.0",
|
"min-dom": "^3.2.1",
|
||||||
"object-refs": "^0.3.0",
|
"object-refs": "^0.3.0",
|
||||||
"tiny-svg": "^2.2.2"
|
"tiny-svg": "^2.2.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bpmn-js-properties-panel": {
|
"bpmn-js-properties-panel": {
|
||||||
"version": "1.4.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-1.5.0.tgz",
|
||||||
"integrity": "sha512-+15Yg7FohrdpDuKqegxU9OyGgYcH6sZM06DjwBLKrpqHgmXEXMA0yD0UI9Rc95P4mRfsT4rAzGpZjYnsYgOshg==",
|
"integrity": "sha512-0VAPk6xK/u+GepjGjt8HAXtBa2ab5o4Dkn5II8UgnFMoQThpvrsLras3vh1il8j/2vPhngAsfiA8z7Y9nJ6/Hw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@bpmn-io/element-templates-validator": "^0.9.0",
|
"@bpmn-io/element-templates-validator": "^0.9.0",
|
||||||
"@bpmn-io/extract-process-variables": "^0.5.0",
|
"@bpmn-io/extract-process-variables": "^0.5.0",
|
||||||
|
@ -11441,13 +11441,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"bpmn-moddle": {
|
"bpmn-moddle": {
|
||||||
"version": "7.1.2",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.3.tgz",
|
||||||
"integrity": "sha512-Sax4LokRCTqlg26njjULN3ZGtCmwH5gZVUZTRF0jwJk+YpMQhSfSoUECxjNv8OROoLxu8Z+MjdOHIxgvJf7KwA==",
|
"integrity": "sha512-ZcBfw0NSOdYTSXFKEn7MOXHItz7VfLZTrFYKO8cK6V8ZzGjCcdiLIOiw7Lctw1PJsihhLiZQS8Htj2xKf+NwCg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"moddle": "^5.0.2",
|
"moddle": "^5.0.2",
|
||||||
"moddle-xml": "^9.0.5"
|
"moddle-xml": "^9.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
|
@ -11943,12 +11943,12 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"diagram-js": {
|
"diagram-js": {
|
||||||
"version": "8.5.0",
|
"version": "8.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.9.0.tgz",
|
||||||
"integrity": "sha512-UHA/Zfs7kG22M9wXAifAyPb2OZ4lG4lFi0CZ0GC6/lXmOsSHwHVZ1s/h9UqaIXnzIKW8SnZoP3Rwqel1ZhZLzg==",
|
"integrity": "sha512-577bUEbkwZ7id4SCXcD2qrlKoRPXry2SDSPt5T6tEOjwKrTllKr5d1HZoJzGws4VMQq5fmY51Gce1iFT9S4Dlw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"css.escape": "^1.5.1",
|
"css.escape": "^1.5.1",
|
||||||
"didi": "^8.0.0",
|
"didi": "^8.0.1",
|
||||||
"hammerjs": "^2.0.1",
|
"hammerjs": "^2.0.1",
|
||||||
"inherits-browser": "0.0.1",
|
"inherits-browser": "0.0.1",
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
|
@ -11968,9 +11968,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"didi": {
|
"didi": {
|
||||||
"version": "8.0.0",
|
"version": "8.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/didi/-/didi-8.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/didi/-/didi-8.0.1.tgz",
|
||||||
"integrity": "sha512-PwqTBaYzzfJSyxvpXPcTWF6nDdCKx2mFAU5eup1ZSb5wbaAS9a/HiKdtcAUdie/VMLHoFI50jkYZcA+bhUOugw=="
|
"integrity": "sha512-7oXiXbp8DHE3FfQsVBkc2pwePo3Jy2uyGS9trAeBmfxiZAP4WV23LWokRpMmyl3hlu8OEAsyMxx19i5P6TVaJQ=="
|
||||||
},
|
},
|
||||||
"diff": {
|
"diff": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
|
@ -14157,9 +14157,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"moddle-xml": {
|
"moddle-xml": {
|
||||||
"version": "9.0.5",
|
"version": "9.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.6.tgz",
|
||||||
"integrity": "sha512-1t9N35ZMQZTYZmRDoh1mBVd0XwLB34BkBywNJ0+YlLLYxaDBjFR/I+fqwsY746ayYPBz6yNRg8JpLyFgNF+eHg==",
|
"integrity": "sha512-tl0reHpsY/aKlLGhXeFlQWlYAQHFxTkFqC8tq8jXRYpQSnLVw13T6swMaourLd7EXqHdWsc+5ggsB+fEep6xZQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"min-dash": "^3.5.2",
|
"min-dash": "^3.5.2",
|
||||||
"moddle": "^5.0.2",
|
"moddle": "^5.0.2",
|
||||||
|
@ -15527,9 +15527,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tiny-svg": {
|
"tiny-svg": {
|
||||||
"version": "2.2.3",
|
"version": "2.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.4.tgz",
|
||||||
"integrity": "sha512-u5KGg889pD1W2c9GlLrTnAGzIkAO00/VXZGyzeiGHw+b9er8McLO0SnhxPQQDwDqFO0MrJ825AEsRUoTiDZFuQ=="
|
"integrity": "sha512-NOi39lBknf4UdDEahNkbEAJnzhu1ZcN2j75IS2vLRmIhsfxdZpTChfLKBcN1ShplVmPIXJAIafk6YY5/Aa80lQ=="
|
||||||
},
|
},
|
||||||
"tinydate": {
|
"tinydate": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
|
|
|
@ -73,9 +73,9 @@
|
||||||
"webpack-cli": "^4.9.2"
|
"webpack-cli": "^4.9.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@bpmn-io/properties-panel": "^0.18.0",
|
"@bpmn-io/properties-panel": "^0.19.0",
|
||||||
"bpmn-js": "^9.2.2",
|
"bpmn-js": "^9.4.0",
|
||||||
"bpmn-js-properties-panel": "^1.2.0",
|
"bpmn-js-properties-panel": "^1.5.0",
|
||||||
"diagram-js": "^8.5.0",
|
"diagram-js": "^8.5.0",
|
||||||
"inherits": "^2.0.4",
|
"inherits": "^2.0.4",
|
||||||
"inherits-browser": "^0.0.1",
|
"inherits-browser": "^0.0.1",
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<bpmn:messageFlow id="message_send_flow" name="Message Send Flow" sourceRef="send_message" targetRef="receive_message" />
|
<bpmn:messageFlow id="message_send_flow" name="Message Send Flow" sourceRef="send_message" targetRef="receive_message" />
|
||||||
<bpmn:messageFlow id="message_response_flow" name="Message Response Flow" sourceRef="respond_to_message" targetRef="receive_message_response" />
|
<bpmn:messageFlow id="message_response_flow" name="Message Response Flow" sourceRef="respond_to_message" targetRef="receive_message_response" />
|
||||||
<bpmn:correlationKey name="message_correlation_key">
|
<bpmn:correlationKey name="message_correlation_key">
|
||||||
|
<bpmn:correlationPropertyRef>correlation_property_one</bpmn:correlationPropertyRef>
|
||||||
|
</bpmn:correlationKey>
|
||||||
|
<bpmn:correlationKey name="new_key">
|
||||||
<bpmn:correlationPropertyRef>message_correlation_property</bpmn:correlationPropertyRef>
|
<bpmn:correlationPropertyRef>message_correlation_property</bpmn:correlationPropertyRef>
|
||||||
</bpmn:correlationKey>
|
</bpmn:correlationKey>
|
||||||
</bpmn:collaboration>
|
</bpmn:collaboration>
|
||||||
|
@ -63,24 +66,17 @@
|
||||||
<bpmn:messageEventDefinition id="MessageEventDefinition_0kakria" />
|
<bpmn:messageEventDefinition id="MessageEventDefinition_0kakria" />
|
||||||
</bpmn:intermediateThrowEvent>
|
</bpmn:intermediateThrowEvent>
|
||||||
</bpmn:process>
|
</bpmn:process>
|
||||||
|
<bpmn:correlationProperty id="correlation_property_one" name="Correlation Property One">
|
||||||
|
<bpmn:correlationPropertyRetrievalExpression messageRef="message_send">
|
||||||
|
<bpmn:formalExpression>new</bpmn:formalExpression>
|
||||||
|
</bpmn:correlationPropertyRetrievalExpression>
|
||||||
|
</bpmn:correlationProperty>
|
||||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0oye1os">
|
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_0oye1os">
|
||||||
<bpmndi:BPMNShape id="Participant_0bjh770_di" bpmnElement="message_initiator" isHorizontal="true">
|
<bpmndi:BPMNShape id="Participant_0bjh770_di" bpmnElement="message_initiator" isHorizontal="true">
|
||||||
<dc:Bounds x="120" y="52" width="600" height="250" />
|
<dc:Bounds x="120" y="52" width="600" height="250" />
|
||||||
<bpmndi:BPMNLabel />
|
<bpmndi:BPMNLabel />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="Flow_176e02g_di" bpmnElement="Flow_176e02g">
|
|
||||||
<di:waypoint x="215" y="177" />
|
|
||||||
<di:waypoint x="280" y="177" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNEdge id="Flow_1qgz6p0_di" bpmnElement="Flow_1qgz6p0">
|
|
||||||
<di:waypoint x="478" y="177" />
|
|
||||||
<di:waypoint x="552" y="177" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNEdge id="Flow_037vpjk_di" bpmnElement="Flow_037vpjk">
|
|
||||||
<di:waypoint x="380" y="177" />
|
|
||||||
<di:waypoint x="442" y="177" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||||
<dc:Bounds x="179" y="159" width="36" height="36" />
|
<dc:Bounds x="179" y="159" width="36" height="36" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
@ -97,17 +93,21 @@
|
||||||
<bpmndi:BPMNShape id="Event_0kndoyu_di" bpmnElement="Event_0kndoyu">
|
<bpmndi:BPMNShape id="Event_0kndoyu_di" bpmnElement="Event_0kndoyu">
|
||||||
<dc:Bounds x="552" y="159" width="36" height="36" />
|
<dc:Bounds x="552" y="159" width="36" height="36" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_037vpjk_di" bpmnElement="Flow_037vpjk">
|
||||||
|
<di:waypoint x="380" y="177" />
|
||||||
|
<di:waypoint x="442" y="177" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1qgz6p0_di" bpmnElement="Flow_1qgz6p0">
|
||||||
|
<di:waypoint x="478" y="177" />
|
||||||
|
<di:waypoint x="552" y="177" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_176e02g_di" bpmnElement="Flow_176e02g">
|
||||||
|
<di:waypoint x="215" y="177" />
|
||||||
|
<di:waypoint x="280" y="177" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
<bpmndi:BPMNShape id="Participant_0mr0gg1_di" bpmnElement="message_receiver" isHorizontal="true">
|
<bpmndi:BPMNShape id="Participant_0mr0gg1_di" bpmnElement="message_receiver" isHorizontal="true">
|
||||||
<dc:Bounds x="120" y="350" width="600" height="250" />
|
<dc:Bounds x="120" y="350" width="600" height="250" />
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
<bpmndi:BPMNEdge id="Flow_0505x87_di" bpmnElement="Flow_0505x87">
|
|
||||||
<di:waypoint x="248" y="480" />
|
|
||||||
<di:waypoint x="372" y="480" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNEdge id="Flow_1273yit_di" bpmnElement="Flow_1273yit">
|
|
||||||
<di:waypoint x="408" y="480" />
|
|
||||||
<di:waypoint x="532" y="480" />
|
|
||||||
</bpmndi:BPMNEdge>
|
|
||||||
<bpmndi:BPMNShape id="Event_052nccg_di" bpmnElement="receive_message">
|
<bpmndi:BPMNShape id="Event_052nccg_di" bpmnElement="receive_message">
|
||||||
<dc:Bounds x="212" y="462" width="36" height="36" />
|
<dc:Bounds x="212" y="462" width="36" height="36" />
|
||||||
<bpmndi:BPMNLabel>
|
<bpmndi:BPMNLabel>
|
||||||
|
@ -123,6 +123,14 @@
|
||||||
<dc:Bounds x="362" y="505" width="57" height="27" />
|
<dc:Bounds x="362" y="505" width="57" height="27" />
|
||||||
</bpmndi:BPMNLabel>
|
</bpmndi:BPMNLabel>
|
||||||
</bpmndi:BPMNShape>
|
</bpmndi:BPMNShape>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_0505x87_di" bpmnElement="Flow_0505x87">
|
||||||
|
<di:waypoint x="248" y="480" />
|
||||||
|
<di:waypoint x="372" y="480" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
|
<bpmndi:BPMNEdge id="Flow_1273yit_di" bpmnElement="Flow_1273yit">
|
||||||
|
<di:waypoint x="408" y="480" />
|
||||||
|
<di:waypoint x="532" y="480" />
|
||||||
|
</bpmndi:BPMNEdge>
|
||||||
<bpmndi:BPMNEdge id="Flow_1ueajoz_di" bpmnElement="message_send_flow">
|
<bpmndi:BPMNEdge id="Flow_1ueajoz_di" bpmnElement="message_send_flow">
|
||||||
<di:waypoint x="300" y="217" />
|
<di:waypoint x="300" y="217" />
|
||||||
<di:waypoint x="300" y="340" />
|
<di:waypoint x="300" y="340" />
|
||||||
|
|
Loading…
Reference in New Issue