mirror of
https://github.com/bpmn-io/bpmn-js.git
synced 2025-05-17 07:06:32 +08:00

This PR builds on upon diagram-js provided service and event typing: * https://github.com/bpmn-io/diagram-js/pull/862 It allows you to specify (public) types exposed by your BPMN toolkit trough a ServiceMap. Events exposed are parsed from the EventBus dynamic types. Closes #2121
54 lines
900 B
TypeScript
54 lines
900 B
TypeScript
import Canvas from 'diagram-js/lib/core/Canvas';
|
|
import EventBus from 'diagram-js/lib/core/EventBus';
|
|
|
|
import Viewer from './Viewer';
|
|
|
|
import { testViewer } from './BaseViewer.spec';
|
|
|
|
const viewer = new Viewer({
|
|
container: 'container'
|
|
});
|
|
|
|
testViewer(viewer);
|
|
|
|
const extendedViewer = new Viewer({
|
|
container: 'container',
|
|
alignToOrigin: false,
|
|
propertiesPanel: {
|
|
attachTo: '#properties-panel'
|
|
}
|
|
});
|
|
|
|
|
|
// typed API usage
|
|
|
|
type FooEvent = {
|
|
/**
|
|
* Very cool field!
|
|
*/
|
|
foo: string;
|
|
};
|
|
|
|
type EventMap = {
|
|
|
|
foo: FooEvent
|
|
};
|
|
|
|
type TypeMap = {
|
|
canvas: Canvas,
|
|
eventBus: EventBus<EventMap>
|
|
};
|
|
|
|
const typedViewer = new Viewer<TypeMap>();
|
|
|
|
const bus = typedViewer.get('eventBus');
|
|
|
|
const canvas = typedViewer.get('canvas');
|
|
|
|
canvas.zoom('fit-viewport');
|
|
|
|
typedViewer.on('foo', event => {
|
|
console.log(event.foo);
|
|
});
|
|
|
|
typedViewer.get('eventBus').on('foo', e => console.log(e.foo)); |