Skip to content

Commit 143f92d

Browse files
authored
Merge pull request #413 from PROCEED-Labs/property-panel-bugfix
Property Panel Undo/Redo Bugfix
2 parents 37522df + e2c3d14 commit 143f92d

File tree

5 files changed

+283
-103
lines changed

5 files changed

+283
-103
lines changed
Lines changed: 228 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,234 @@
11
declare const _exports: {
2-
ensureExtensionElements: typeof proceedExtensions.ensureExtensionElements;
3-
removeEmptyExtensionElements: typeof proceedExtensions.removeEmptyExtensionElements;
4-
ensureContainerElement: typeof proceedExtensions.ensureContainerElement;
5-
removeEmptyContainerElement: typeof proceedExtensions.removeEmptyContainerElement;
6-
setMetaData: typeof proceedExtensions.setMetaData;
7-
setProceedElement: typeof proceedExtensions.setProceedElement;
8-
getExporterName: typeof proceedConstants.getExporterName;
9-
getExporterVersion: typeof proceedConstants.getExporterVersion;
10-
generateBpmnId: typeof proceedConstants.generateBpmnId;
11-
generateDefinitionsId: typeof proceedConstants.generateDefinitionsId;
12-
generateProcessId: typeof proceedConstants.generateProcessId;
13-
generateUserTaskFileName: typeof proceedConstants.generateUserTaskFileName;
14-
generateScriptTaskFileName: typeof proceedConstants.generateScriptTaskFileName;
15-
getUserTaskImplementationString: typeof proceedConstants.getUserTaskImplementationString;
16-
generateTargetNamespace: typeof proceedConstants.generateTargetNamespace;
17-
initXml: typeof proceedConstants.initXml;
18-
validateCalledProcess: typeof validators.validateCalledProcess;
19-
setDefinitionsId: typeof setters.setDefinitionsId;
20-
setDefinitionsName: typeof setters.setDefinitionsName;
21-
setDefinitionsVersionInformation: typeof setters.setDefinitionsVersionInformation;
22-
setProcessId: typeof setters.setProcessId;
23-
setTemplateId: typeof setters.setTemplateId;
24-
setTargetNamespace: typeof setters.setTargetNamespace;
25-
setStandardDefinitions: typeof setters.setStandardDefinitions;
26-
setDeploymentMethod: typeof setters.setDeploymentMethod;
27-
setMachineInfo: typeof setters.setMachineInfo;
28-
setUserTaskData: typeof setters.setUserTaskData;
29-
addConstraintsToElementById: typeof setters.addConstraintsToElementById;
30-
addCallActivityReference: typeof setters.addCallActivityReference;
31-
removeCallActivityReference: typeof setters.removeCallActivityReference;
32-
removeUnusedCallActivityReferences: typeof setters.removeUnusedCallActivityReferences;
33-
removeColorFromAllElements: typeof setters.removeColorFromAllElements;
34-
addDocumentation: typeof setters.addDocumentation;
35-
addDocumentationToProcessObject: typeof setters.addDocumentationToProcessObject;
36-
updatePerformersOnElement: typeof setters.updatePerformersOnElement;
37-
updatePerformersOnElementById: typeof setters.updatePerformersOnElementById;
38-
getDefinitionsId: typeof getters.getDefinitionsId;
39-
getOriginalDefinitionsId: typeof getters.getOriginalDefinitionsId;
40-
getDefinitionsName: typeof getters.getDefinitionsName;
41-
getDefinitionsInfos: typeof getters.getDefinitionsInfos;
42-
getImports: typeof getters.getImports;
43-
getDefinitionsVersionInformation: typeof getters.getDefinitionsVersionInformation;
44-
getProcessIds: typeof getters.getProcessIds;
45-
getDeploymentMethod: typeof getters.getDeploymentMethod;
46-
getProcessConstraints: typeof getters.getProcessConstraints;
47-
getProcessDocumentation: typeof getters.getProcessDocumentation;
48-
getProcessDocumentationByObject: typeof getters.getProcessDocumentationByObject;
49-
getUserTaskFileNameMapping: typeof getters.getUserTaskFileNameMapping;
50-
getAllUserTaskFileNamesAndUserTaskIdsMapping: typeof getters.getAllUserTaskFileNamesAndUserTaskIdsMapping;
51-
getSubprocess: typeof getters.getSubprocess;
52-
getSubprocessContent: typeof getters.getSubprocessContent;
53-
getTargetDefinitionsAndProcessIdForCallActivityByObject: typeof getters.getTargetDefinitionsAndProcessIdForCallActivityByObject;
54-
getDefinitionsAndProcessIdForEveryCallActivity: typeof getters.getDefinitionsAndProcessIdForEveryCallActivity;
55-
getStartEvents: typeof getters.getStartEvents;
56-
getAllBpmnFlowElements: typeof getters.getAllBpmnFlowElements;
57-
getAllBpmnFlowNodeIds: typeof getters.getAllBpmnFlowNodeIds;
58-
getAllBpmnFlowElementIds: typeof getters.getAllBpmnFlowElementIds;
59-
getChildrenFlowElements: typeof getters.getChildrenFlowElements;
60-
getElementMachineMapping: typeof getters.getElementMachineMapping;
61-
getTaskConstraintMapping: typeof getters.getTaskConstraintMapping;
62-
getIdentifyingInfos: typeof getters.getIdentifyingInfos;
63-
getRootFromElement: typeof getters.getRootFromElement;
64-
getMetaDataFromElement: typeof getters.getMetaDataFromElement;
65-
getMetaData: typeof getters.getMetaData;
66-
getMilestonesFromElement: typeof getters.getMilestonesFromElement;
67-
getMilestonesFromElementById: typeof getters.getMilestonesFromElementById;
68-
getResourcesFromElement: typeof getters.getResourcesFromElement;
69-
getLocationsFromElement: typeof getters.getLocationsFromElement;
70-
getPerformersFromElement: typeof getters.getPerformersFromElement;
71-
getPerformersFromElementById: typeof getters.getPerformersFromElementById;
72-
parseISODuration: typeof getters.parseISODuration;
73-
convertISODurationToMiliseconds: typeof getters.convertISODurationToMiliseconds;
2+
ensureExtensionElements(element: object): object;
3+
removeEmptyExtensionElements(element: any): void;
4+
ensureContainerElement(element: object, containerType: string): object;
5+
removeEmptyContainerElement(element: any, containerType: any, containerElement: any): void;
6+
setMetaData(bpmn: string | object, elId: string, metaValues: object): Promise<string | object>;
7+
setProceedElement(
8+
element: any,
9+
proceedElementType: any,
10+
value: any,
11+
attributes?: {},
12+
oldAttributes?: {},
13+
): {};
14+
getExporterName(): string;
15+
getExporterVersion(): string;
16+
generateBpmnId(prefix?: string): string;
17+
generateDefinitionsId(): string;
18+
generateProcessId(): string;
19+
generateUserTaskFileName(): string;
20+
generateScriptTaskFileName(): string;
21+
getUserTaskImplementationString(): string;
22+
generateTargetNamespace(id: any): string;
23+
initXml(processId?: any, startEventId?: string): string;
24+
validateCalledProcess(xml: string, processId: string): Promise<boolean>;
25+
setDefinitionsId(bpmn: string | object, id: string): Promise<string | object>;
26+
setDefinitionsName(bpmn: string | object, name: string): Promise<string | object>;
27+
setDefinitionsVersionInformation(
28+
bpmn: string | object,
29+
{
30+
versionId,
31+
versionName,
32+
versionDescription,
33+
versionBasedOn,
34+
versionCreatedOn,
35+
}: {
36+
versionId?: string;
37+
versionName?: string;
38+
versionDescription?: string;
39+
versionBasedOn?: string;
40+
versionCreatedOn?: string;
41+
},
42+
): Promise<string | object>;
43+
setProcessId(bpmn: string, id: string): Promise<string | object>;
44+
setTemplateId(bpmn: string, id: string): Promise<string | object>;
45+
setTargetNamespace(bpmn: string | object, id: string): Promise<string | object>;
46+
setStandardDefinitions(
47+
bpmn: string | object,
48+
exporterName: string,
49+
exporterVersion: string,
50+
): Promise<string | object>;
51+
setDeploymentMethod(bpmn: string | object, method: string): Promise<string | object>;
52+
setMachineInfo(
53+
bpmn: string | object,
54+
machineInfo: {
55+
[elementId: string]: {
56+
machineAddress?: string;
57+
machineId?: string;
58+
};
59+
},
60+
): Promise<string | object>;
61+
setUserTaskData(
62+
bpmn: string | object,
63+
userTaskId: string,
64+
newFileName: string,
65+
newImplementation?: string,
66+
): Promise<string | object>;
67+
addConstraintsToElementById(
68+
bpmn: string | object,
69+
elementId: string,
70+
constraints: object,
71+
): Promise<string | object>;
72+
addCallActivityReference(
73+
bpmn: string | object,
74+
callActivityId: string,
75+
calledBpmn: string,
76+
calledProcessLocation: string,
77+
): Promise<string | object>;
78+
removeCallActivityReference(
79+
bpmn: string | object,
80+
callActivityId: string,
81+
): Promise<string | object>;
82+
removeUnusedCallActivityReferences(bpmn: string | object): Promise<string | object>;
83+
removeColorFromAllElements(bpmn: string | object): Promise<string | object>;
84+
addDocumentation(bpmn: string | object, description?: string): Promise<string | object>;
85+
addDocumentationToProcessObject(processObj: object, description?: string): void;
86+
updatePerformersOnElement(element: object, performers: any[]): Promise<void>;
87+
updatePerformersOnElementById(
88+
bpmn: string | object,
89+
elementId: string,
90+
performers: any[],
91+
): Promise<any>;
92+
getDefinitionsId(bpmn: string | object): Promise<string>;
93+
getOriginalDefinitionsId(bpmn: string | object): Promise<string>;
94+
getDefinitionsName(bpmn: string | object): Promise<string>;
95+
getDefinitionsInfos(bpmn: string | object): Promise<getters.DefinitionsInfos>;
96+
getImports(bpmn: string | object): Promise<object[]>;
97+
getDefinitionsVersionInformation(bpmn: string | object): Promise<{
98+
versionId?: string;
99+
name?: string;
100+
description?: string;
101+
versionBasedOn?: string;
102+
versionCreatedOn: string;
103+
}>;
104+
getProcessIds(bpmn: string | object): Promise<string[]>;
105+
getDeploymentMethod(bpmn: string | object): Promise<string>;
106+
getProcessConstraints(bpmn: string | object): Promise<{
107+
hardConstraints: any[];
108+
softConstraints: any[];
109+
}>;
110+
getProcessDocumentation(bpmn: string | object): Promise<string>;
111+
getProcessDocumentationByObject(processObject: object): string;
112+
getUserTaskFileNameMapping(bpmn: string | object): Promise<{
113+
[userTaskId: string]: {
114+
fileName?: string;
115+
implementation?: string;
116+
};
117+
}>;
118+
getAllUserTaskFileNamesAndUserTaskIdsMapping(bpmn: string | object): Promise<{
119+
[userTaskFileName: string]: string[];
120+
}>;
121+
getSubprocess(bpmn: string | object, subprocessId: string): Promise<string>;
122+
getSubprocessContent(bpmn: string, subprocessId: string): Promise<string>;
123+
getTargetDefinitionsAndProcessIdForCallActivityByObject(
124+
bpmnObj: object,
125+
callActivityId: string,
126+
): {
127+
definitionId: string;
128+
processId: string;
129+
versionId: string;
130+
};
131+
getDefinitionsAndProcessIdForEveryCallActivity(
132+
bpmn: string | object,
133+
dontThrow?: boolean,
134+
): Promise<{
135+
[callActivityId: string]: {
136+
definitionId: string;
137+
processId: string;
138+
versionId: string;
139+
};
140+
}>;
141+
getStartEvents(bpmn: string | object): Promise<string[]>;
142+
getAllBpmnFlowElements(bpmn: string | object): Promise<object[]>;
143+
getAllBpmnFlowNodeIds(bpmn: string | object): Promise<string[]>;
144+
getAllBpmnFlowElementIds(bpmn: string | object): Promise<string[]>;
145+
getChildrenFlowElements(bpmn: string | object, elementId: any): Promise<object[]>;
146+
getElementMachineMapping(bpmn: string | object): Promise<{
147+
[flowNodeId: string]: {
148+
machineAddress?: string;
149+
machineId?: string;
150+
};
151+
}>;
152+
getTaskConstraintMapping(bpmn: string | object): Promise<{
153+
[bpmnElementIds: string]: {
154+
hardConstraints: any[];
155+
softConstraints: any[];
156+
};
157+
}>;
158+
getIdentifyingInfos(bpmn: string | object): Promise<{
159+
id: string;
160+
originalId?: string;
161+
processIds: string[];
162+
name: string;
163+
description: string;
164+
}>;
165+
getRootFromElement(businessObject: object): object;
166+
getMetaDataFromElement(element: object): {
167+
[key: string]: any;
168+
};
169+
getMetaData(
170+
bpmn: string | object,
171+
elId: string,
172+
): Promise<{
173+
[key: string]: any;
174+
}>;
175+
getMilestonesFromElement(element: object): {
176+
id: string;
177+
name: string;
178+
description?: string;
179+
}[];
180+
getMilestonesFromElementById(
181+
bpmn: string | object,
182+
elementId: string,
183+
): {
184+
id: string;
185+
name: string;
186+
description?: string;
187+
}[];
188+
getResourcesFromElement(element: object): {
189+
consumableMaterial: getters.ResourceInfos[];
190+
tool: getters.ResourceInfos[];
191+
inspectionInstrument: getters.ResourceInfos[];
192+
};
193+
getLocationsFromElement(element: object): {
194+
company: getters.CompanyInfos[];
195+
factory: getters.FactoryInfos[];
196+
building: getters.BuildingInfos[];
197+
area: getters.AreaInfos[];
198+
workingPlace: getters.WorkingPlaceInfos[];
199+
};
200+
getPerformersFromElement(element: object): any[];
201+
getPerformersFromElementById(bpmn: string | object, elementId: string): any[];
202+
parseISODuration(isoDuration: string): {
203+
years: number;
204+
months: number;
205+
days: number;
206+
hours: number;
207+
minutes: number;
208+
seconds: number;
209+
};
210+
convertISODurationToMiliseconds(isoDuration: string): number;
211+
ensureCorrectProceedNamespace(xml: string): string;
212+
toBpmnObject(xml: string, typename?: string): Promise<object>;
213+
toBpmnXml(obj: any): Promise<string>;
214+
deepCopyElementById(bpmn: string | object, elemId: any): Promise<object>;
215+
getChildren(travObj: object): any[];
216+
getElementsByTagName(travObj: object, tagname: string): any[];
217+
getAllElements(travObj: object): any[];
218+
getElementById(travObj: object, id: string): object;
219+
getElementDI(element: object, definitions?: object): any;
220+
manipulateElementById(
221+
bpmn: string | object,
222+
id: string,
223+
manipFunc: util.manipulationFunction,
224+
): Promise<string | object>;
225+
manipulateElementsByTagName(
226+
bpmn: string | object,
227+
tagName: string,
228+
manipFunc: util.manipulationFunction,
229+
): Promise<string | object>;
74230
moddle: any;
75-
ensureCorrectProceedNamespace: typeof util.ensureCorrectProceedNamespace;
76-
toBpmnObject: typeof util.toBpmnObject;
77-
toBpmnXml: typeof util.toBpmnXml;
78-
getChildren: typeof util.getChildren;
79-
getElementsByTagName: typeof util.getElementsByTagName;
80-
getAllElements: typeof util.getAllElements;
81-
getElementById: typeof util.getElementById;
82-
getElementDI: typeof util.getElementDI;
83-
manipulateElementById: typeof util.manipulateElementById;
84-
manipulateElementsByTagName: typeof util.manipulateElementsByTagName;
85231
};
86232
export = _exports;
87-
import proceedExtensions = require('./src/proceedExtensions');
88-
import proceedConstants = require('./src/PROCEED-CONSTANTS.js');
89-
import validators = require('./src/validators.js');
90-
import setters = require('./src/setters.js');
91233
import getters = require('./src/getters.js');
92234
import util = require('./src/util.js');

src/helper-modules/bpmn-helper/src/util.d.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ export function toBpmnObject(xml: string, typename?: string): Promise<object>;
2828
* @returns {Promise<string>} a xml representation of the given object
2929
*/
3030
export function toBpmnXml(obj: any): Promise<string>;
31+
/**
32+
* Creates a deep copy of an element
33+
*
34+
* @param {string|object} bpmn traversable object representation or bpmn XML
35+
* @param {string} id the id of the element to be copied
36+
* @returns {Promise<object|undefined>} - returns the copied object or undefined when no matching object was found
37+
*/
38+
export function deepCopyElementById(
39+
bpmn: string | object,
40+
elemId: any,
41+
): Promise<object | undefined>;
3142
/**
3243
* Finds all kinds of childnodes in a given node
3344
*

src/helper-modules/bpmn-helper/src/util.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,22 @@ async function toBpmnXml(obj) {
4444
return xml;
4545
}
4646

47+
/**
48+
* Creates a deep copy of an element
49+
*
50+
* @param {string|object} bpmn traversable object representation or bpmn XML
51+
* @param {string} id the id of the element to be copied
52+
* @returns {Promise<object|undefined>} - returns the copied object or undefined when no matching object was found
53+
*/
54+
async function deepCopyElementById(bpmn, elemId) {
55+
const bpmnObj =
56+
typeof bpmn === 'string'
57+
? await toBpmnObject(bpmn)
58+
: await toBpmnXml(bpmn).then((bpmnXml) => toBpmnObject(bpmnXml));
59+
60+
return getElementById(bpmnObj, elemId);
61+
}
62+
4763
/**
4864
* Finds all kinds of childnodes in a given node
4965
*
@@ -195,6 +211,7 @@ module.exports = {
195211
ensureCorrectProceedNamespace,
196212
toBpmnObject,
197213
toBpmnXml,
214+
deepCopyElementById,
198215
getChildren,
199216
getElementsByTagName,
200217
getAllElements,

0 commit comments

Comments
 (0)