bpmn-js 17.5.0 → 17.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,13 @@
1
1
  /**
2
2
  * A base modeler for BPMN 2.0 diagrams.
3
3
  *
4
- * See {@link Modeler} for a fully-featured modeler.
4
+ * See {@link bpmn-js/lib/Modeler} for a fully-featured modeler.
5
+ *
6
+ *
7
+ * @extends BaseViewer<ServiceMap>
5
8
  *
6
9
  */
7
- export default class BaseModeler extends BaseViewer {}
10
+ export default class BaseModeler<ServiceMap = null> extends BaseViewer<ServiceMap> {}
8
11
 
9
12
  type BaseViewerOptions = import('./BaseViewer').BaseViewerOptions;
10
13
  type ModdleElementsById = import('./BaseViewer').ModdleElementsById;
@@ -15,7 +15,11 @@ import BaseViewer from './BaseViewer';
15
15
  /**
16
16
  * A base modeler for BPMN 2.0 diagrams.
17
17
  *
18
- * See {@link Modeler} for a fully-featured modeler.
18
+ * See {@link bpmn-js/lib/Modeler} for a fully-featured modeler.
19
+ *
20
+ * @template [ServiceMap=null]
21
+ *
22
+ * @extends BaseViewer<ServiceMap>
19
23
  *
20
24
  * @param {BaseViewerOptions} [options] The options to configure the modeler.
21
25
  */
@@ -1,11 +1,14 @@
1
1
  /**
2
2
  * A base viewer for BPMN 2.0 diagrams.
3
3
  *
4
- * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for
4
+ * Have a look at {@link bpmn-js/lib/Viewer}, {@link bpmn-js/lib/NavigatedViewer} or {@link bpmn-js/lib/Modeler} for
5
5
  * bundles that include actual features.
6
6
  *
7
+ *
8
+ * @extends Diagram<ServiceMap>
9
+ *
7
10
  */
8
- export default class BaseViewer extends Diagram<null> {
11
+ export default class BaseViewer<ServiceMap = null> extends Diagram<ServiceMap> {
9
12
  /**
10
13
  * @param options The options to configure the viewer.
11
14
  */
@@ -145,21 +148,85 @@ export default class BaseViewer extends Diagram<null> {
145
148
  getModules(): ModuleDeclaration[];
146
149
 
147
150
  /**
148
- * Register an event listener.
151
+ * Register an event listener for events with the given name.
152
+ *
153
+ * The callback will be invoked with `event, ...additionalArguments`
154
+ * that have been passed to {@link EventBus#fire}.
155
+ *
156
+ * Returning false from a listener will prevent the events default action
157
+ * (if any is specified). To stop an event from being processed further in
158
+ * other listeners execute {@link Event#stopPropagation}.
159
+ *
160
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
161
+ *
162
+ *
163
+ * @param events to subscribe to
164
+ * @param callback
165
+ * @param that callback context
166
+ */
167
+ on<EventName extends keyof EventMap<ServiceMap>>(
168
+ events: EventName,
169
+ callback: EventBusEventCallback<(EventMap<ServiceMap>)[EventName]>,
170
+ that?: any
171
+ ): void;
172
+
173
+ /**
174
+ * Register an event listener for events with the given name.
175
+ *
176
+ * The callback will be invoked with `event, ...additionalArguments`
177
+ * that have been passed to {@link EventBus#fire}.
178
+ *
179
+ * Returning false from a listener will prevent the events default action
180
+ * (if any is specified). To stop an event from being processed further in
181
+ * other listeners execute {@link Event#stopPropagation}.
182
+ *
183
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
184
+ *
185
+ *
186
+ * @param events to subscribe to
187
+ * @param priority listen priority
188
+ * @param callback
189
+ * @param that callback context
190
+ */
191
+ on<EventName extends keyof EventMap<ServiceMap>>(
192
+ events: EventName,
193
+ priority: number,
194
+ callback: EventBusEventCallback<(EventMap<ServiceMap>)[EventName]>,
195
+ that?: any
196
+ ): void;
197
+
198
+ /**
149
199
  *
150
- * Remove an event listener via {@link BaseViewer#off}.
200
+ * Register an event listener for events with the given name.
201
+ *
202
+ * The callback will be invoked with `event, ...additionalArguments`
203
+ * that have been passed to {@link EventBus#fire}.
204
+ *
205
+ * Returning false from a listener will prevent the events default action
206
+ * (if any is specified). To stop an event from being processed further in
207
+ * other listeners execute {@link Event#stopPropagation}.
208
+ *
209
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
151
210
  *
152
211
  *
153
212
  * @param events The event(s) to listen to.
154
213
  * @param callback The callback.
155
214
  * @param that Value of `this` the callback will be called with.
156
215
  */
157
- on<T>(events: string | string[], callback: EventBusEventCallback<T>, that?: any): any;
216
+ on<T>(events: string|string[], callback: EventBusEventCallback<T>, that?: any): void;
158
217
 
159
218
  /**
160
- * Register an event listener.
161
219
  *
162
- * Remove an event listener via {@link BaseViewer#off}.
220
+ * Register an event listener for events with the given name.
221
+ *
222
+ * The callback will be invoked with `event, ...additionalArguments`
223
+ * that have been passed to {@link EventBus#fire}.
224
+ *
225
+ * Returning false from a listener will prevent the events default action
226
+ * (if any is specified). To stop an event from being processed further in
227
+ * other listeners execute {@link Event#stopPropagation}.
228
+ *
229
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
163
230
  *
164
231
  *
165
232
  * @param events The event(s) to listen to.
@@ -168,11 +235,11 @@ export default class BaseViewer extends Diagram<null> {
168
235
  * @param that Value of `this` the callback will be called with.
169
236
  */
170
237
  on<T>(
171
- events: string | string[],
238
+ events: string|string[],
172
239
  priority: number,
173
240
  callback: EventBusEventCallback<T>,
174
241
  that?: any
175
- ): any;
242
+ ): void;
176
243
 
177
244
  /**
178
245
  * Remove an event listener.
@@ -204,6 +271,7 @@ export default class BaseViewer extends Diagram<null> {
204
271
  detach(): void;
205
272
  }
206
273
 
274
+ type EventBus<T> = import('diagram-js/lib/core/EventBus').default<T>;
207
275
  type EventBusEventCallback<T> = import('diagram-js/lib/core/EventBus').EventBusEventCallback<T>;
208
276
  type ModuleDeclaration = import('didi').ModuleDeclaration;
209
277
  type Moddle = import('./model/Types').Moddle;
@@ -277,4 +345,8 @@ export type SaveSVGDoneEvent = {
277
345
  svg: string;
278
346
  };
279
347
 
348
+ export type EventMap<Type> = Type extends {
349
+ eventBus: import("diagram-js/lib/core/EventBus").default<infer X>;
350
+ } ? X : never;
351
+
280
352
  import Diagram from 'diagram-js';
package/lib/BaseViewer.js CHANGED
@@ -31,6 +31,12 @@ import {
31
31
  importBpmnDiagram
32
32
  } from './import/Importer';
33
33
 
34
+ /**
35
+ * @template T
36
+ *
37
+ * @typedef { import('diagram-js/lib/core/EventBus').default<T> } EventBus
38
+ */
39
+
34
40
  /**
35
41
  * @template T
36
42
  *
@@ -116,12 +122,22 @@ import {
116
122
  * } } SaveSVGDoneEvent
117
123
  */
118
124
 
125
+ /**
126
+ * @template Type
127
+ *
128
+ * @typedef { Type extends { eventBus: EventBus<infer X> } ? X : never } EventMap
129
+ */
130
+
119
131
  /**
120
132
  * A base viewer for BPMN 2.0 diagrams.
121
133
  *
122
- * Have a look at {@link Viewer}, {@link NavigatedViewer} or {@link Modeler} for
134
+ * Have a look at {@link bpmn-js/lib/Viewer}, {@link bpmn-js/lib/NavigatedViewer} or {@link bpmn-js/lib/Modeler} for
123
135
  * bundles that include actual features.
124
136
  *
137
+ * @template [ServiceMap=null]
138
+ *
139
+ * @extends Diagram<ServiceMap>
140
+ *
125
141
  * @param {BaseViewerOptions} [options] The options to configure the viewer.
126
142
  */
127
143
  export default function BaseViewer(options) {
@@ -542,9 +558,18 @@ BaseViewer.prototype.destroy = function() {
542
558
  };
543
559
 
544
560
  /**
545
- * Register an event listener.
561
+ * @overlord
546
562
  *
547
- * Remove an event listener via {@link BaseViewer#off}.
563
+ * Register an event listener for events with the given name.
564
+ *
565
+ * The callback will be invoked with `event, ...additionalArguments`
566
+ * that have been passed to {@link EventBus#fire}.
567
+ *
568
+ * Returning false from a listener will prevent the events default action
569
+ * (if any is specified). To stop an event from being processed further in
570
+ * other listeners execute {@link Event#stopPropagation}.
571
+ *
572
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
548
573
  *
549
574
  * @template T
550
575
  *
@@ -553,6 +578,25 @@ BaseViewer.prototype.destroy = function() {
553
578
  * @param {EventBusEventCallback<T>} callback The callback.
554
579
  * @param {any} [that] Value of `this` the callback will be called with.
555
580
  */
581
+ /**
582
+ * Register an event listener for events with the given name.
583
+ *
584
+ * The callback will be invoked with `event, ...additionalArguments`
585
+ * that have been passed to {@link EventBus#fire}.
586
+ *
587
+ * Returning false from a listener will prevent the events default action
588
+ * (if any is specified). To stop an event from being processed further in
589
+ * other listeners execute {@link Event#stopPropagation}.
590
+ *
591
+ * Returning anything but `undefined` from a listener will stop the listener propagation.
592
+ *
593
+ * @template {keyof EventMap<ServiceMap>} EventName
594
+ *
595
+ * @param {EventName} events to subscribe to
596
+ * @param {number} [priority=1000] listen priority
597
+ * @param {EventBusEventCallback<(EventMap<ServiceMap>)[EventName]>} callback
598
+ * @param {any} [that] callback context
599
+ */
556
600
  BaseViewer.prototype.on = function(events, priority, callback, that) {
557
601
  return this.get('eventBus').on(events, priority, callback, that);
558
602
  };
package/lib/Modeler.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * A modeler for BPMN 2.0 diagrams.
3
3
  *
4
- *
5
4
  * ## Extending the Modeler
6
5
  *
7
6
  * In order to extend the viewer pass extension modules to bootstrap via the
@@ -62,8 +61,11 @@
62
61
  * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});
63
62
  * ```
64
63
  *
64
+ *
65
+ * @extends BaseModeler<ServiceMap>
66
+ *
65
67
  */
66
- export default class Modeler extends BaseModeler {
68
+ export default class Modeler<ServiceMap = null> extends BaseModeler<ServiceMap> {
67
69
  static Viewer: typeof Viewer;
68
70
  static NavigatedViewer: typeof NavigatedViewer;
69
71
 
package/lib/Modeler.js CHANGED
@@ -64,7 +64,6 @@ var initialDiagram =
64
64
  /**
65
65
  * A modeler for BPMN 2.0 diagrams.
66
66
  *
67
- *
68
67
  * ## Extending the Modeler
69
68
  *
70
69
  * In order to extend the viewer pass extension modules to bootstrap via the
@@ -125,6 +124,10 @@ var initialDiagram =
125
124
  * var bpmnModeler = new Modeler({ additionalModules: [ overrideModule ]});
126
125
  * ```
127
126
  *
127
+ * @template [ServiceMap=null]
128
+ *
129
+ * @extends BaseModeler<ServiceMap>
130
+ *
128
131
  * @param {BaseViewerOptions} [options] The options to configure the modeler.
129
132
  */
130
133
  export default function Modeler(options) {
@@ -1,8 +1,11 @@
1
1
  /**
2
2
  * A viewer with mouse and keyboard navigation features.
3
3
  *
4
+ *
5
+ * @extends Viewer<ServiceMap>
6
+ *
4
7
  */
5
- export default class NavigatedViewer extends Viewer {}
8
+ export default class NavigatedViewer<ServiceMap = null> extends Viewer<ServiceMap> {}
6
9
 
7
10
  type BaseViewerOptions = import('./BaseViewer').BaseViewerOptions;
8
11
  import Viewer from './Viewer';
@@ -13,6 +13,10 @@ import ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll';
13
13
  /**
14
14
  * A viewer with mouse and keyboard navigation features.
15
15
  *
16
+ * @template [ServiceMap=null]
17
+ *
18
+ * @extends Viewer<ServiceMap>
19
+ *
16
20
  * @param {BaseViewerOptions} [options]
17
21
  */
18
22
  export default function NavigatedViewer(options) {
package/lib/Viewer.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * A viewer for BPMN 2.0 diagrams.
3
3
  *
4
- * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include
4
+ * Have a look at {@link bpmn-js/lib/NavigatedViewer} or {@link bpmn-js/lib/Modeler} for bundles that include
5
5
  * additional features.
6
6
  *
7
7
  *
@@ -37,8 +37,11 @@
37
37
  * bpmnViewer.importXML(...);
38
38
  * ```
39
39
  *
40
+ *
41
+ * @extends BaseViewer<ServiceMap>
42
+ *
40
43
  */
41
- export default class Viewer extends BaseViewer {}
44
+ export default class Viewer<ServiceMap = null> extends BaseViewer<ServiceMap> {}
42
45
 
43
46
  type BaseViewerOptions = import('./BaseViewer').BaseViewerOptions;
44
47
  import BaseViewer from './BaseViewer';
package/lib/Viewer.js CHANGED
@@ -17,7 +17,7 @@ import BaseViewer from './BaseViewer';
17
17
  /**
18
18
  * A viewer for BPMN 2.0 diagrams.
19
19
  *
20
- * Have a look at {@link NavigatedViewer} or {@link Modeler} for bundles that include
20
+ * Have a look at {@link bpmn-js/lib/NavigatedViewer} or {@link bpmn-js/lib/Modeler} for bundles that include
21
21
  * additional features.
22
22
  *
23
23
  *
@@ -53,6 +53,10 @@ import BaseViewer from './BaseViewer';
53
53
  * bpmnViewer.importXML(...);
54
54
  * ```
55
55
  *
56
+ * @template [ServiceMap=null]
57
+ *
58
+ * @extends BaseViewer<ServiceMap>
59
+ *
56
60
  * @param {BaseViewerOptions} [options] The options to configure the viewer.
57
61
  */
58
62
  export default function Viewer(options) {
@@ -110,6 +110,10 @@ export default function ContextPadProvider(
110
110
  entries.replace.action.click(event, shape);
111
111
  }
112
112
  });
113
+
114
+ eventBus.on('contextPad.close', function() {
115
+ appendPreview.cleanUp();
116
+ });
113
117
  }
114
118
 
115
119
  ContextPadProvider.$inject = [
@@ -244,16 +248,12 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
244
248
  create.start(event, shape, {
245
249
  source: element
246
250
  });
247
-
248
- appendPreview.cleanUp();
249
251
  }
250
252
 
251
253
  var append = autoPlace ? function(_, element) {
252
254
  var shape = elementFactory.createShape(assign({ type: type }, options));
253
255
 
254
256
  autoPlace.append(element, shape);
255
-
256
- appendPreview.cleanUp();
257
257
  } : appendStart;
258
258
 
259
259
  var previewAppend = autoPlace ? function(_, element) {
@@ -487,7 +487,6 @@ ContextPadProvider.prototype.getContextPadEntries = function(element) {
487
487
  'bpmn-icon-text-annotation',
488
488
  translate('Add text annotation')
489
489
  ),
490
-
491
490
  'connect': {
492
491
  group: 'connect',
493
492
  className: 'bpmn-icon-connection-multi',
@@ -52,7 +52,7 @@ export default function SetColorHandler(commandStack) {
52
52
  }
53
53
  }
54
54
 
55
- throw new Error('invalid color value: ' + color);
55
+ throw new Error(`invalid color value: ${ color }`);
56
56
  };
57
57
  }
58
58
 
@@ -41,7 +41,7 @@ SplitLaneHandler.prototype.preExecute = function(context) {
41
41
  existingLanesCount = childLanes.length;
42
42
 
43
43
  if (existingLanesCount > newLanesCount) {
44
- throw new Error(`more than <${newLanesCount}> child lanes`);
44
+ throw new Error(`more than <${ newLanesCount }> child lanes`);
45
45
  }
46
46
 
47
47
  var isHorizontalLane = isHorizontal(shape);
@@ -113,7 +113,7 @@ export default function BpmnOrderingProvider(eventBus, canvas) {
113
113
  }
114
114
 
115
115
  if (!order) {
116
- throw new Error('no order for <' + element.id + '>');
116
+ throw new Error(`no order for <${ element.id }>`);
117
117
  }
118
118
 
119
119
  return order;
@@ -133,7 +133,7 @@ export default function BpmnOrderingProvider(eventBus, canvas) {
133
133
  }
134
134
 
135
135
  if (!actualParent) {
136
- throw new Error('no parent for <' + element.id + '> in <' + (newParent && newParent.id) + '>');
136
+ throw new Error(`no parent for <${ element.id }> in <${ newParent && newParent.id }>`);
137
137
  }
138
138
 
139
139
  return actualParent;
@@ -80,7 +80,7 @@ export default function BpmnTreeWalker(handler) {
80
80
  // avoid multiple rendering of elements
81
81
  if (gfx) {
82
82
  throw new Error(
83
- 'already rendered ${ elementToString(element) }'
83
+ `already rendered ${ elementToString(element) }`
84
84
  );
85
85
  }
86
86
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bpmn-js",
3
- "version": "17.5.0",
3
+ "version": "17.6.0",
4
4
  "description": "A bpmn 2.0 toolkit and web modeler",
5
5
  "main": "index.js",
6
6
  "files": [