-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathapp.js
37 lines (27 loc) · 864 Bytes
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import BpmnViewer from 'bpmn-js/lib/Viewer';
/**
* @typedef { import('diagram-js/lib/core/Types').ElementLike } ElementLike
* @typedef { import('diagram-js/lib/core/ElementRegistry').default } ElementRegistry
* @typedef { import('diagram-js/lib/core/EventBus').Event } Event
*/
/**
* @type { HTMLElement }
*/
const container = document.querySelector('#canvas');
const viewer = new BpmnViewer({
container
});
// type-safe event handler
viewer.on('element.hover', (/** @type { { element: ElementLike } & Event } */ event) => {
if (event.element.id === 'MY_TASK') {
console.log('hovered MY_TASK');
event.preventDefault();
}
});
// type-safe access to components
/**
* @type { ElementRegistry }
*/
const elementRegistry = viewer.get('elementRegistry');
const element = elementRegistry.get('MY_TASK');
console.log(element.id); // MY_TASK