restore loop collection references (#328)

* restore loop collection references

* ignore dmn files when restoring references
This commit is contained in:
Elizabeth Esswein 2023-06-12 18:32:16 -04:00 committed by GitHub
parent 2a7c257479
commit 551896361b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 27 additions and 5 deletions

View File

@ -467,11 +467,33 @@ export default function ReactDiagramEditor({
if (alreadyImportedXmlRef.current) {
return;
}
diagramModelerToUse.importXML(diagramXMLToDisplay).then(() => {
if (diagramType === 'bpmn' || diagramType === 'readonly') {
diagramModelerToUse.get('canvas').zoom('fit-viewport');
}
});
if (diagramType === 'bpmn') {
diagramModelerToUse._moddle // eslint-disable-line no-underscore-dangle
.fromXML(diagramXMLToDisplay)
.then((result: any) => {
const refs = result.references.filter(
(r: any) =>
r.property === 'bpmn:loopDataInputRef' ||
r.property === 'bpmn:loopDataOutputRef'
);
const desc =
diagramModelerToUse._moddle.registry.getEffectiveDescriptor( // eslint-disable-line
'bpmn:ItemAwareElement'
);
refs.forEach((ref: any) => {
const props = {
id: ref.id,
name: ref.id ? typeof ref.name === 'undefined' : ref.name,
};
const elem = diagramModelerToUse._moddle.create(desc, props); // eslint-disable-line no-underscore-dangle
elem.$parent = ref.element;
ref.element.set(ref.property, elem);
});
diagramModelerToUse.importDefinitions(result.rootElement);
});
} else {
diagramModelerToUse.importXML(diagramXMLToDisplay);
}
alreadyImportedXmlRef.current = true;
}