This fixes the existing DI creation methods in `BpmnFactory` and
simplifies the related `ElementFactory` code that relied on it.
In the past args got ignored and passing attrs to the created DI
was not possible, now it is.
BREAKING CHANGE:
With this change the following `BpmnFactory` API methods got reworked to
take (businessObject, attrs) as an input:
* `BpmnFactory#createDiEdge`
* `BpmnFactory#createDiShape`
* `BpmnFactory#createDiPlane`
In the diagram `di` is now accessed via the diagram element, not the
business object. This has the benefit that elements in multiple diagrams
can easily be represented.
Related to https://github.com/bpmn-io/bpmn-js/issues/1472
BREAKING CHANGE:
* Instead of referencing the `di` from the business object, reference it
from the diagram element representing it.
This ensures our FixHoverBehavior (that ensures we drop onto /
connect to participants, not lanes) does fix the hover element
during *.out, too.
Otherwise there is no way for other behaviors to correctly
remove hover indicators.
Closes https://github.com/bpmn-io/bpmn-js/issues/1413
* Indicate the action in a clearer, more standard-compliant way --> replaces an expanded pool with an empty "black box" + removing its content.
* We will not update the action identifier (`replace-with-collapsed-pool`) to avoid breaking changes.
* Make it possible to retrieve label via function
Related to camunda/camunda-modeler#2022
Modeling#updateModdleProperties allows users to update moddle elements
that are backed up by diagram elements.
It provides us a path forward when we start to update more _hidden_
things from within the modeling canvas.
The <import.parse.complete> event is now invoked with
{
error,
definitions,
elementsById,
references,
warnings
}
The old payload is deprecated:
{
error,
definitions,
context: { elementsById, references, warnings }
}
This commit promisifies following APIs:
BaseViewer#importXML
BaseViewer#importDefinitions
BaseViewer#open
BaseViewer#saveXML
BaseViewer#saveSVG
Modeler#createDiagram
Related to https://github.com/bpmn-io/bpmn-js/issues/812
BREAKING CHANGES:
* Users are now expected to have Promises either by default or
polyfilled as the APIs return a Promise now.