* expose API needed for lazy sub-process imports
* also changes #handleDeferred to NOT expect deferred
as a parameter anymore
Related to bpmn-io/bpmn-js-signavio-compat#1
* use ES6 import / export
* UTILS: export individual utilities
* TESTS: localize TestHelper includes
BREAKING CHANGE:
* all utilities export independent functions
* library sources got ported to ES6. You must now use
a ES module bundler such as Browserify + babelify or
Webpack to consume this library (or parts of it).
* ordering provider ensures sequence flows appear
behind tasks
* importer makes sure we render elements in the order
lanes > sequence flows > other flow elements
* consistent minimal opacity ensures elements in
front of tasks don't look _connected_
Closes#727
Async utilities properly propagate _all_ errors to the
specified _done_ callback. Failing in _done_ does not
re-invoke it.
Adjustments made in
* Viewer#importXML
* Viewer#saveSVG
* Importer#importBpmnDiagram
Tests cleaned up to remove un-necessary `if (err) { ...` snippets.
This commit adds more life-cycle events users can
plug into during xml parsing and rendering:
* import.parse.start
* import.parse.complete
* import.render.start
* import.render.complete
* import.done
Some other events had to go because of that, namely
* import.start
* import.(success|error)
BREAKING CHANGE:
* the event import.start got renamed to import.render.start
* the events import.success and import.error got removed
in favour of import.render.complete (passing err, warnings)
This commit ensures we correctly detect and import
Data*Associations and Associations.
It aligns logging across the import components, too, being slightly more
verbose and helpful.
Related to #112
This commit puts all import related stuff into the import module.
The core module remains as an entry point to require the basic modules
needed by bpmn-js. At the time this is { import, draw }.
This enables users to instantiate Viewers/Modelers via
```
new Viewer({
additionalModules: [ ... ]
});
```
to bootstrap their own modules with the viewer without overriding the
existing ones.
This commit ensures we pipe invisible root elements (Process,
Collaboration) through our import infrastructure, too.
This way we we receive proper events for them.
Related to #6
This commit extracts the main import logic found in import/Importer into
the core/BpmnImporter module. By doing so we we are able to reuse it
during modeling.
Related to #6
Instead of failing hard when we parse invalid flow elements (i.e.
TextAnnotation) we log a warning that may be handled by the diagram
import.
Related to #74