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 d1581d94d4
commit 5652f3981b

View File

@ -467,11 +467,33 @@ export default function ReactDiagramEditor({
if (alreadyImportedXmlRef.current) { if (alreadyImportedXmlRef.current) {
return; return;
} }
diagramModelerToUse.importXML(diagramXMLToDisplay).then(() => { if (diagramType === 'bpmn') {
if (diagramType === 'bpmn' || diagramType === 'readonly') { diagramModelerToUse._moddle // eslint-disable-line no-underscore-dangle
diagramModelerToUse.get('canvas').zoom('fit-viewport'); .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; alreadyImportedXmlRef.current = true;
} }