@cornerstonejs/tools 1.8.1 → 1.9.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.
Files changed (34) hide show
  1. package/dist/cjs/store/SynchronizerManager/Synchronizer.d.ts +2 -1
  2. package/dist/cjs/store/SynchronizerManager/Synchronizer.js +3 -2
  3. package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
  4. package/dist/cjs/store/SynchronizerManager/createSynchronizer.d.ts +1 -1
  5. package/dist/cjs/store/SynchronizerManager/createSynchronizer.js +2 -2
  6. package/dist/cjs/store/SynchronizerManager/createSynchronizer.js.map +1 -1
  7. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.d.ts +1 -1
  8. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js +2 -2
  9. package/dist/cjs/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  10. package/dist/cjs/synchronizers/synchronizers/createVOISynchronizer.d.ts +5 -1
  11. package/dist/cjs/synchronizers/synchronizers/createVOISynchronizer.js +2 -2
  12. package/dist/cjs/synchronizers/synchronizers/createVOISynchronizer.js.map +1 -1
  13. package/dist/cjs/types/ISynchronizerEventHandler.d.ts +1 -1
  14. package/dist/esm/store/SynchronizerManager/Synchronizer.d.ts +2 -1
  15. package/dist/esm/store/SynchronizerManager/Synchronizer.js +3 -2
  16. package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
  17. package/dist/esm/store/SynchronizerManager/createSynchronizer.d.ts +1 -1
  18. package/dist/esm/store/SynchronizerManager/createSynchronizer.js +2 -2
  19. package/dist/esm/store/SynchronizerManager/createSynchronizer.js.map +1 -1
  20. package/dist/esm/synchronizers/callbacks/voiSyncCallback.d.ts +1 -1
  21. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js +2 -2
  22. package/dist/esm/synchronizers/callbacks/voiSyncCallback.js.map +1 -1
  23. package/dist/esm/synchronizers/synchronizers/createVOISynchronizer.d.ts +5 -1
  24. package/dist/esm/synchronizers/synchronizers/createVOISynchronizer.js +2 -2
  25. package/dist/esm/synchronizers/synchronizers/createVOISynchronizer.js.map +1 -1
  26. package/dist/esm/types/ISynchronizerEventHandler.d.ts +1 -1
  27. package/dist/umd/index.js +1 -1
  28. package/dist/umd/index.js.map +1 -1
  29. package/package.json +3 -3
  30. package/src/store/SynchronizerManager/Synchronizer.ts +11 -2
  31. package/src/store/SynchronizerManager/createSynchronizer.ts +5 -2
  32. package/src/synchronizers/callbacks/voiSyncCallback.ts +4 -2
  33. package/src/synchronizers/synchronizers/createVOISynchronizer.ts +11 -2
  34. package/src/types/ISynchronizerEventHandler.ts +2 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cornerstonejs/tools",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "Cornerstone3D Tools",
5
5
  "main": "dist/umd/index.js",
6
6
  "types": "dist/esm/index.d.ts",
@@ -29,7 +29,7 @@
29
29
  "webpack:watch": "webpack --mode development --progress --watch --config ./.webpack/webpack.dev.js"
30
30
  },
31
31
  "dependencies": {
32
- "@cornerstonejs/core": "^1.8.1",
32
+ "@cornerstonejs/core": "^1.9.0",
33
33
  "lodash.clonedeep": "4.5.0",
34
34
  "lodash.get": "^4.4.2"
35
35
  },
@@ -52,5 +52,5 @@
52
52
  "type": "individual",
53
53
  "url": "https://ohif.org/donate"
54
54
  },
55
- "gitHead": "04ab5157739660d5bd012ae6c558afb01e9b3565"
55
+ "gitHead": "9330feafe97d0b7ce13e94de98d3d136ff2533f0"
56
56
  }
@@ -22,12 +22,14 @@ class Synchronizer {
22
22
  private _sourceViewports: Array<Types.IViewportId>;
23
23
  private _targetViewports: Array<Types.IViewportId>;
24
24
  private _viewportOptions: Record<string, Record<string, unknown>> = {};
25
+ private _options: any;
25
26
  public id: string;
26
27
 
27
28
  constructor(
28
29
  synchronizerId: string,
29
30
  eventName: string,
30
- eventHandler: ISynchronizerEventHandler
31
+ eventHandler: ISynchronizerEventHandler,
32
+ options?: any
31
33
  ) {
32
34
  this._enabled = true;
33
35
  this._eventName = eventName;
@@ -35,6 +37,7 @@ class Synchronizer {
35
37
  this._ignoreFiredEvents = false;
36
38
  this._sourceViewports = [];
37
39
  this._targetViewports = [];
40
+ this._options = options || {};
38
41
 
39
42
  //
40
43
  this.id = synchronizerId;
@@ -212,7 +215,13 @@ class Synchronizer {
212
215
  continue;
213
216
  }
214
217
 
215
- this._eventHandler(this, sourceViewport, targetViewport, sourceEvent);
218
+ this._eventHandler(
219
+ this,
220
+ sourceViewport,
221
+ targetViewport,
222
+ sourceEvent,
223
+ this._options
224
+ );
216
225
  }
217
226
  } catch (ex) {
218
227
  console.warn(`Synchronizer, for: ${this._eventName}`, ex);
@@ -9,12 +9,14 @@ import { ISynchronizerEventHandler } from '../../types';
9
9
  * synchronizer.
10
10
  * @param eventHandler - The event handler that will be
11
11
  * called when the event is emitted.
12
+ * @param options - Options for the synchronizer.
12
13
  * @returns A reference to the synchronizer.
13
14
  */
14
15
  function createSynchronizer(
15
16
  synchronizerId: string,
16
17
  eventName: string,
17
- eventHandler: ISynchronizerEventHandler
18
+ eventHandler: ISynchronizerEventHandler,
19
+ options?: any
18
20
  ): Synchronizer {
19
21
  const synchronizerWithSameIdExists = state.synchronizers.some(
20
22
  (sync) => sync.id === synchronizerId
@@ -28,7 +30,8 @@ function createSynchronizer(
28
30
  const synchronizer = new Synchronizer(
29
31
  synchronizerId,
30
32
  eventName,
31
- eventHandler
33
+ eventHandler,
34
+ options
32
35
  );
33
36
 
34
37
  // Update state
@@ -13,12 +13,14 @@ import {
13
13
  * @param sourceViewport - The list of IDs defining the source viewport.
14
14
  * @param targetViewport - The list of IDs defining the target viewport.
15
15
  * @param voiModifiedEvent - The VOI_MODIFIED event.
16
+ * @param options - Options for the synchronizer.
16
17
  */
17
18
  export default function voiSyncCallback(
18
19
  synchronizerInstance,
19
20
  sourceViewport: Types.IViewportId,
20
21
  targetViewport: Types.IViewportId,
21
- voiModifiedEvent: Types.EventTypes.VoiModifiedEvent
22
+ voiModifiedEvent: Types.EventTypes.VoiModifiedEvent,
23
+ options?: any
22
24
  ): void {
23
25
  const eventDetail = voiModifiedEvent.detail;
24
26
  const { volumeId, range, invertStateChanged, invert } = eventDetail;
@@ -37,7 +39,7 @@ export default function voiSyncCallback(
37
39
  voiRange: range,
38
40
  };
39
41
 
40
- if (invertStateChanged) {
42
+ if (options.syncInvertState && invertStateChanged) {
41
43
  tProperties.invert = invert;
42
44
  }
43
45
 
@@ -3,21 +3,30 @@ import { Enums } from '@cornerstonejs/core';
3
3
  import voiSyncCallback from '../callbacks/voiSyncCallback';
4
4
  import Synchronizer from '../../store/SynchronizerManager/Synchronizer';
5
5
 
6
+ type VOISynchronizerOptions = {
7
+ syncInvertState: boolean;
8
+ };
9
+
6
10
  /**
7
11
  * A helper that creates a new `Synchronizer`
8
12
  * which listens to the `VOI_MODIFIED` rendering event and calls the `voiSyncCallback`.
9
13
  *
10
14
  * @param synchronizerName - The name of the synchronizer.
15
+ * @param options - The options for the synchronizer. By default the voi
16
+ * synchronizer will also sync the invert state of the volume, but this can be
17
+ * disabled by setting `syncInvertState` to false.
11
18
  *
12
19
  * @returns A new `Synchronizer` instance.
13
20
  */
14
21
  export default function createVOISynchronizer(
15
- synchronizerName: string
22
+ synchronizerName: string,
23
+ options = { syncInvertState: true } as VOISynchronizerOptions
16
24
  ): Synchronizer {
17
25
  const VOISynchronizer = createSynchronizer(
18
26
  synchronizerName,
19
27
  Enums.Events.VOI_MODIFIED,
20
- voiSyncCallback
28
+ voiSyncCallback,
29
+ options
21
30
  );
22
31
 
23
32
  return VOISynchronizer;
@@ -6,6 +6,7 @@ export default interface ISynchronizerEventHandler {
6
6
  synchronizer: Synchronizer,
7
7
  sourceViewport: Types.IViewportId,
8
8
  targetViewport: Types.IViewportId,
9
- sourceEvent: any
9
+ sourceEvent: any,
10
+ options?: any
10
11
  ): void;
11
12
  }