UNPKG

1.99 kBJavaScriptView Raw
1import inherits from 'inherits-browser';
2
3import CoreModule from './core';
4import DrilldownModdule from './features/drilldown';
5import OutlineModule from './features/outline';
6import OverlaysModule from 'diagram-js/lib/features/overlays';
7import SelectionModule from 'diagram-js/lib/features/selection';
8import TranslateModule from 'diagram-js/lib/i18n/translate';
9
10import BaseViewer from './BaseViewer';
11
12
13/**
14 * @typedef { import('./BaseViewer').BaseViewerOptions } BaseViewerOptions
15 */
16
17/**
18 * A viewer for BPMN 2.0 diagrams.
19 *
20 * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include
21 * additional features.
22 *
23 *
24 * ## Extending the Viewer
25 *
26 * In order to extend the viewer pass extension modules to bootstrap via the
27 * `additionalModules` option. An extension module is an object that exposes
28 * named services.
29 *
30 * The following example depicts the integration of a simple
31 * logging component that integrates with interaction events:
32 *
33 *
34 * ```javascript
35 *
36 * // logging component
37 * function InteractionLogger(eventBus) {
38 * eventBus.on('element.hover', function(event) {
39 * console.log()
40 * })
41 * }
42 *
43 * InteractionLogger.$inject = [ 'eventBus' ]; // minification save
44 *
45 * // extension module
46 * var extensionModule = {
47 * __init__: [ 'interactionLogger' ],
48 * interactionLogger: [ 'type', InteractionLogger ]
49 * };
50 *
51 * // extend the viewer
52 * var bpmnViewer = new Viewer({ additionalModules: [ extensionModule ] });
53 * bpmnViewer.importXML(...);
54 * ```
55 *
56 * @param {BaseViewerOptions} [options] The options to configure the viewer.
57 */
58export default function Viewer(options) {
59 BaseViewer.call(this, options);
60}
61
62inherits(Viewer, BaseViewer);
63
64// modules the viewer is composed of
65Viewer.prototype._modules = [
66 CoreModule,
67 DrilldownModdule,
68 OutlineModule,
69 OverlaysModule,
70 SelectionModule,
71 TranslateModule
72];
73
74// default moddle extensions the viewer is composed of
75Viewer.prototype._moddleExtensions = {};
\No newline at end of file