Viewer.js 1.9 KB

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