@ohif/app 3.9.0-beta.2 → 3.9.0-beta.21

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 (46) hide show
  1. package/dist/{117.bundle.a80b1511ef4b302fb7cc.js → 117.bundle.772ce244eee25d9b7316.js} +50 -15
  2. package/dist/{121.bundle.a6063e0272df61cefccc.js → 121.bundle.b582314ec0024fdf2d15.js} +1 -0
  3. package/dist/{164.bundle.1da1cadb56951caef1d6.js → 164.bundle.3221590f5e6855086889.js} +318 -41
  4. package/dist/{236.bundle.4ca7987e1d57f60ec13a.js → 236.bundle.d3a631d79ee8952e3c60.js} +388 -55
  5. package/dist/{188.bundle.b31173cb165eb21c3ec6.js → 243.bundle.866dc990219240efa81f.js} +8 -8
  6. package/dist/{325.bundle.47f5b8a085837ee6b512.js → 325.bundle.d8bf863ddebb832dcaab.js} +10 -11
  7. package/dist/{342.bundle.340982440de15f540a89.js → 342.bundle.67c49f2e52829a5696a4.js} +7 -0
  8. package/dist/{473.bundle.6cd4be953853f35b29c3.js → 367.bundle.6a0746aeca702ae6eba6.js} +279 -29
  9. package/dist/{806.bundle.50e039eb624382ee1fce.js → 370.bundle.baa389d217c390b0e92b.js} +81 -10
  10. package/dist/{206.bundle.e98e6ba9bfd9f36dc508.js → 390.bundle.504391bda56219cc9ef9.js} +37 -26
  11. package/dist/{448.bundle.94a6da9fac68fc69f8c2.js → 448.bundle.67539d1552db51aaca85.js} +2 -2
  12. package/dist/{483.bundle.a353efc5a5dd563c903c.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  13. package/dist/{487.bundle.71a2893d94d214741e13.js → 487.bundle.3f0e64e16189f92fcebc.js} +2 -2
  14. package/dist/{35.bundle.0168d78bfad0cb784112.js → 501.bundle.7d5003758fa3ffbb344b.js} +750 -247
  15. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  16. package/dist/{544.bundle.b005b8c8b9b08aaa3324.js → 544.bundle.4d1fb477b572f50f4220.js} +3 -3
  17. package/dist/{321.bundle.07e853e559665d6e15b6.js → 550.bundle.41e6a1eacc49db2358c5.js} +50 -19
  18. package/dist/{574.bundle.88b619217339b5e93d3e.js → 574.bundle.0bcd9d70f4b1eea48082.js} +35 -32
  19. package/dist/{41.bundle.faaf3b05d1083e3c8831.js → 682.bundle.066197792e6a0d01b669.js} +26 -6
  20. package/dist/{699.bundle.8210579412d62beafa91.js → 699.bundle.428f20dd60662f1e5edd.js} +32 -3
  21. package/dist/{669.bundle.84745782e36f25eb05bc.js → 721.bundle.d21827d733e8811e0b18.js} +73 -73
  22. package/dist/{722.bundle.2547630541b670f10d6e.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  23. package/dist/{724.bundle.519141a0c4d0d1a3192a.js → 776.bundle.981d8227b59f97f11dd8.js} +17 -12
  24. package/dist/{862.bundle.4a0bd82b803ba158018f.js → 862.bundle.7a102f04ef4d12686894.js} +1 -1
  25. package/dist/{889.bundle.9fbab4f0bbf643306879.js → 889.bundle.ed8937ba0c5455ed894d.js} +8 -8
  26. package/dist/{905.bundle.7e940707e10096970ca1.js → 905.bundle.b101088a20887c27945d.js} +2 -2
  27. package/dist/{907.bundle.f5aa0414d0f77e575a1f.js → 907.bundle.e8d22a858051cd255c9c.js} +2 -2
  28. package/dist/{94.bundle.ecaaba845625d93bad6b.js → 94.bundle.b4f45b237188a8550a35.js} +38 -8
  29. package/dist/{961.bundle.ff7da8afd7d8495d0bbe.js → 961.bundle.b86b71c712fa83e526d3.js} +2 -2
  30. package/dist/{7.bundle.3a17fe8266b2149334a6.js → 981.bundle.7b03f5a200c7dbcbaf1d.js} +10 -9
  31. package/dist/{594.bundle.01b124740b2b3f8a6d20.js → 989.bundle.e81da55a6954a12e5ea1.js} +5 -5
  32. package/dist/{633.bundle.ff1a1d0bdb0d1ef143af.js → 998.bundle.37015da90e590043cda0.js} +7 -7
  33. package/dist/app-config.js +5 -1
  34. package/dist/{app.bundle.c53b289734d5f7178a39.js → app.bundle.a6bfec031243c17f92e9.js} +686 -555
  35. package/dist/app.bundle.css +1 -1
  36. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  37. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  38. package/dist/google.js +1 -0
  39. package/dist/index.html +1 -1
  40. package/dist/{polySeg.bundle.1799686b019040500219.js → polySeg.bundle.b0392069f29e128b4efa.js} +3 -3
  41. package/dist/{suv-peak-worker.bundle.25f8b85eab9ec06da48d.js → suv-peak-worker.bundle.f823d84fae4ce6865f9a.js} +3 -3
  42. package/dist/sw.js +1 -1
  43. package/package.json +20 -19
  44. /package/dist/{321.css → 550.css} +0 -0
  45. /package/dist/{783.bundle.86c38ee55f4d01b111ca.js → 783.bundle.c5b7e2433ecb9d8e2541.js} +0 -0
  46. /package/dist/{633.css → 998.css} +0 -0
@@ -1,4 +1,4 @@
1
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[35],{
1
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[501],{
2
2
 
3
3
  /***/ 6203:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -18,7 +18,7 @@
18
18
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(51884);
19
19
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(71702);
20
20
  /* harmony import */ var _loaders_volumeLoader__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(82041);
21
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35678);
21
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20228);
22
22
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90601);
23
23
  /* harmony import */ var _helpers_volumeNewImageEventDispatcher__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46820);
24
24
  /* harmony import */ var _Viewport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(11512);
@@ -260,13 +260,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
260
260
  static get useCustomRenderingPipeline() {
261
261
  return false;
262
262
  }
263
- applyViewOrientation(orientation) {
263
+ applyViewOrientation(orientation, resetCamera = true) {
264
264
  const { viewPlaneNormal, viewUp } = this._getOrientationVectors(orientation);
265
265
  const camera = this.getVtkActiveCamera();
266
266
  camera.setDirectionOfProjection(-viewPlaneNormal[0], -viewPlaneNormal[1], -viewPlaneNormal[2]);
267
267
  camera.setViewUpFrom(viewUp);
268
268
  this.initialViewUp = viewUp;
269
- this.resetCamera();
269
+ if (resetCamera) {
270
+ this.resetCamera();
271
+ }
270
272
  }
271
273
  initializeVolumeNewImageEventDispatcher() {
272
274
  const volumeNewImageHandlerBound = volumeNewImageHandler.bind(this);
@@ -495,15 +497,26 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
495
497
  }
496
498
  getViewReference(viewRefSpecifier = {}) {
497
499
  const target = super.getViewReference(viewRefSpecifier);
500
+ const volumeId = this.getVolumeId(viewRefSpecifier);
498
501
  if (viewRefSpecifier?.forFrameOfReference !== false) {
499
- target.volumeId = this.getVolumeId(viewRefSpecifier);
502
+ target.volumeId = volumeId;
500
503
  }
501
- return {
502
- ...target,
503
- sliceIndex: this.getCurrentImageIdIndex(),
504
- };
504
+ if (typeof viewRefSpecifier?.sliceIndex !== 'number') {
505
+ return target;
506
+ }
507
+ const { viewPlaneNormal } = target;
508
+ const delta = viewRefSpecifier.sliceIndex - this.getCurrentImageIdIndex();
509
+ const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
510
+ const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
511
+ const { focalPoint, position } = camera;
512
+ const { newFocalPoint } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
513
+ target.cameraFocalPoint = newFocalPoint;
514
+ return target;
505
515
  }
506
516
  isReferenceViewable(viewRef, options) {
517
+ if (!viewRef.FrameOfReferenceUID) {
518
+ return false;
519
+ }
507
520
  if (!super.isReferenceViewable(viewRef, options)) {
508
521
  return false;
509
522
  }
@@ -517,6 +530,63 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
517
530
  }
518
531
  return sliceIndex === undefined || sliceIndex === currentSliceIndex;
519
532
  }
533
+ scroll(delta = 1) {
534
+ const volumeId = this.getVolumeId();
535
+ const { sliceRangeInfo } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
536
+ if (!sliceRangeInfo) {
537
+ return;
538
+ }
539
+ const { sliceRange, spacingInNormalDirection, camera } = sliceRangeInfo;
540
+ const { focalPoint, viewPlaneNormal, position } = camera;
541
+ const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
542
+ this.setCamera({
543
+ focalPoint: newFocalPoint,
544
+ position: newPosition,
545
+ });
546
+ }
547
+ setViewReference(viewRef) {
548
+ if (!viewRef) {
549
+ return;
550
+ }
551
+ const volumeId = this.getVolumeId();
552
+ const { viewPlaneNormal: refViewPlaneNormal, FrameOfReferenceUID: refFrameOfReference, cameraFocalPoint, viewUp, } = viewRef;
553
+ let { sliceIndex } = viewRef;
554
+ const { focalPoint, viewPlaneNormal, position } = this.getCamera();
555
+ const isNegativeNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqualNegative)(viewPlaneNormal, refViewPlaneNormal);
556
+ const isSameNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(viewPlaneNormal, refViewPlaneNormal);
557
+ if (typeof sliceIndex === 'number' &&
558
+ viewRef.volumeId === volumeId &&
559
+ (isNegativeNormal || isSameNormal)) {
560
+ const { currentStepIndex, sliceRangeInfo, numScrollSteps } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.getVolumeViewportScrollInfo)(this, volumeId, true);
561
+ const { sliceRange, spacingInNormalDirection } = sliceRangeInfo;
562
+ if (isNegativeNormal) {
563
+ sliceIndex = numScrollSteps - sliceIndex - 1;
564
+ }
565
+ const delta = sliceIndex - currentStepIndex;
566
+ const { newFocalPoint, newPosition } = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, delta);
567
+ this.setCamera({ focalPoint: newFocalPoint, position: newPosition });
568
+ }
569
+ else if (refFrameOfReference === this.getFrameOfReferenceUID()) {
570
+ if (refViewPlaneNormal && !isNegativeNormal && !isSameNormal) {
571
+ this.setOrientation({ viewPlaneNormal: refViewPlaneNormal, viewUp });
572
+ return this.setViewReference(viewRef);
573
+ }
574
+ if (cameraFocalPoint) {
575
+ const focalDelta = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.subtract */ .eR.subtract([0, 0, 0], cameraFocalPoint, focalPoint);
576
+ const useNormal = refViewPlaneNormal ?? viewPlaneNormal;
577
+ const normalDot = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.dot */ .eR.dot(focalDelta, useNormal);
578
+ if (!(0,_utilities__WEBPACK_IMPORTED_MODULE_11__.isEqual)(normalDot, 0)) {
579
+ gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.scale */ .eR.scale(focalDelta, useNormal, normalDot);
580
+ }
581
+ const newFocal = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], focalPoint, focalDelta);
582
+ const newPosition = gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.add */ .eR.add([0, 0, 0], position, focalDelta);
583
+ this.setCamera({ focalPoint: newFocal, position: newPosition });
584
+ }
585
+ }
586
+ else {
587
+ throw new Error(`Incompatible view refs: ${refFrameOfReference}!==${this.getFrameOfReferenceUID()}`);
588
+ }
589
+ }
520
590
  setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, } = {}, volumeId, suppressEvents = false) {
521
591
  if (this.globalDefaultProperties == null) {
522
592
  this.setDefaultProperties({
@@ -675,7 +745,7 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
675
745
  this.render();
676
746
  }
677
747
  }
678
- setOrientation(orientation, immediate = true) {
748
+ setOrientation(_orientation, _immediate = true) {
679
749
  console.warn('Method "setOrientation" needs implementation');
680
750
  }
681
751
  initializeColorTransferFunction(volumeInputArray) {
@@ -811,14 +881,15 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
811
881
  return volume.getScalarData()[voxelIndex];
812
882
  }
813
883
  getVolumeId(specifier) {
884
+ const actorEntries = this.getActors();
885
+ if (!actorEntries) {
886
+ return;
887
+ }
814
888
  if (!specifier?.volumeId) {
815
- const actorEntries = this.getActors();
816
- if (!actorEntries) {
817
- return;
818
- }
819
889
  return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
820
890
  }
821
- return specifier.volumeId;
891
+ return actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume' &&
892
+ actorEntry.uid === specifier.volumeId)?.uid;
822
893
  }
823
894
  getReferenceId(specifier = {}) {
824
895
  let { volumeId, sliceIndex: sliceIndex } = specifier;
@@ -829,7 +900,8 @@ class BaseVolumeViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_14__/* ["def
829
900
  }
830
901
  volumeId = actorEntries.find((actorEntry) => actorEntry.actor.getClassName() === 'vtkVolume')?.uid;
831
902
  }
832
- sliceIndex ??= this.getCurrentImageIdIndex();
903
+ const currentIndex = this.getCurrentImageIdIndex();
904
+ sliceIndex ??= currentIndex;
833
905
  const { viewPlaneNormal, focalPoint } = this.getCamera();
834
906
  const querySeparator = volumeId.indexOf('?') > -1 ? '&' : '?';
835
907
  return `volumeId:${volumeId}${querySeparator}sliceIndex=${sliceIndex}&viewPlaneNormal=${viewPlaneNormal.join(',')}&focalPoint=${focalPoint.join(',')}`;
@@ -1757,8 +1829,8 @@ var metaData = __webpack_require__(55692);
1757
1829
  // EXTERNAL MODULE: ../../../node_modules/lodash.clonedeep/index.js
1758
1830
  var lodash_clonedeep = __webpack_require__(48463);
1759
1831
  var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep);
1760
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
1761
- var utilities = __webpack_require__(35678);
1832
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
1833
+ var utilities = __webpack_require__(20228);
1762
1834
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
1763
1835
  var Viewport = __webpack_require__(11512);
1764
1836
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/colors/index.js + 2 modules
@@ -1968,20 +2040,8 @@ class StackViewport extends Viewport/* default */.A {
1968
2040
  resize(this._cpuFallbackEnabledElement);
1969
2041
  }
1970
2042
  };
1971
- this.getFrameOfReferenceUID = () => {
1972
- const imageId = this.getCurrentImageId();
1973
- if (!imageId) {
1974
- return;
1975
- }
1976
- const imagePlaneModule = metaData.get('imagePlaneModule', imageId);
1977
- if (!imagePlaneModule) {
1978
- return;
1979
- }
1980
- return imagePlaneModule.frameOfReferenceUID;
1981
- };
1982
- this.getCornerstoneImage = () => {
1983
- return this.csImage;
1984
- };
2043
+ this.getFrameOfReferenceUID = (sliceIndex) => this.getImagePlaneReferenceData(sliceIndex)?.FrameOfReferenceUID;
2044
+ this.getCornerstoneImage = () => this.csImage;
1985
2045
  this.createActorMapper = (imageData) => {
1986
2046
  const mapper = vtkImageMapper$1.newInstance();
1987
2047
  mapper.setInputData(imageData);
@@ -2144,9 +2204,6 @@ class StackViewport extends Viewport/* default */.A {
2144
2204
  this.getCurrentImageIdIndex = () => {
2145
2205
  return this.currentImageIdIndex;
2146
2206
  };
2147
- this.getSliceIndex = () => {
2148
- return this.currentImageIdIndex;
2149
- };
2150
2207
  this.getTargetImageIdIndex = () => {
2151
2208
  return this.targetImageIdIndex;
2152
2209
  };
@@ -2957,6 +3014,25 @@ class StackViewport extends Viewport/* default */.A {
2957
3014
  imagePixelModule,
2958
3015
  };
2959
3016
  }
3017
+ getImagePlaneReferenceData(sliceIndex = this.getCurrentImageIdIndex()) {
3018
+ const imageId = this.imageIds[sliceIndex];
3019
+ if (!imageId) {
3020
+ return;
3021
+ }
3022
+ const imagePlaneModule = metaData.get(enums.MetadataModules.IMAGE_PLANE, imageId);
3023
+ const { imagePositionPatient, frameOfReferenceUID: FrameOfReferenceUID } = imagePlaneModule;
3024
+ let { rowCosines, columnCosines } = imagePlaneModule;
3025
+ rowCosines ||= [1, 0, 0];
3026
+ columnCosines ||= [0, 1, 0];
3027
+ const viewPlaneNormal = (esm/* vec3.cross */.eR.cross([0, 0, 0], columnCosines, rowCosines));
3028
+ return {
3029
+ FrameOfReferenceUID,
3030
+ viewPlaneNormal,
3031
+ cameraFocalPoint: imagePositionPatient,
3032
+ referencedImageId: imageId,
3033
+ sliceIndex,
3034
+ };
3035
+ }
2960
3036
  _getCameraOrientation(imageDataDirection) {
2961
3037
  const viewPlaneNormal = imageDataDirection.slice(6, 9).map((x) => -x);
2962
3038
  const viewUp = imageDataDirection.slice(3, 6).map((x) => -x);
@@ -3272,7 +3348,7 @@ class StackViewport extends Viewport/* default */.A {
3272
3348
  this.cpuRenderingInvalidated = true;
3273
3349
  this._cpuFallbackEnabledElement.transform = (0,calculateTransform/* default */.A)(this._cpuFallbackEnabledElement);
3274
3350
  }
3275
- async addImages(stackInputs) {
3351
+ addImages(stackInputs) {
3276
3352
  const actors = this.getActors();
3277
3353
  stackInputs.forEach((stackInput) => {
3278
3354
  const image = cache/* default */.Ay.getImage(stackInput.imageId);
@@ -3567,24 +3643,39 @@ class StackViewport extends Viewport/* default */.A {
3567
3643
  return referencedImageId?.endsWith(imageURI);
3568
3644
  }
3569
3645
  getViewReference(viewRefSpecifier = {}) {
3570
- const { sliceIndex: sliceIndex = this.currentImageIdIndex } = viewRefSpecifier;
3571
- return {
3572
- ...super.getViewReference(viewRefSpecifier),
3573
- referencedImageId: `${this.imageIds[sliceIndex]}`,
3574
- sliceIndex: sliceIndex,
3575
- };
3576
- }
3577
- setView(viewRef, viewPres) {
3578
- const camera = this.getCamera();
3579
- super.setView(viewRef, viewPres);
3580
- if (viewRef) {
3581
- const { viewPlaneNormal, sliceIndex } = viewRef;
3582
- if (viewPlaneNormal &&
3583
- !(0,utilities.isEqual)(viewPlaneNormal, camera.viewPlaneNormal)) {
3646
+ const { sliceIndex = this.getCurrentImageIdIndex() } = viewRefSpecifier;
3647
+ const reference = super.getViewReference(viewRefSpecifier);
3648
+ const referencedImageId = this.imageIds[sliceIndex];
3649
+ if (!referencedImageId) {
3650
+ return;
3651
+ }
3652
+ reference.referencedImageId = referencedImageId;
3653
+ if (this.getCurrentImageIdIndex() !== sliceIndex) {
3654
+ const referenceData = this.getImagePlaneReferenceData(sliceIndex);
3655
+ if (!referenceData) {
3584
3656
  return;
3585
3657
  }
3586
- if (sliceIndex || sliceIndex === 0) {
3587
- this.setImageIdIndex(sliceIndex);
3658
+ Object.assign(reference, referenceData);
3659
+ }
3660
+ return reference;
3661
+ }
3662
+ setViewReference(viewRef) {
3663
+ if (!viewRef) {
3664
+ return;
3665
+ }
3666
+ const { referencedImageId, sliceIndex, volumeId } = viewRef;
3667
+ if (typeof sliceIndex === 'number' &&
3668
+ referencedImageId &&
3669
+ referencedImageId === this.imageIds[sliceIndex]) {
3670
+ this.setImageIdIndex(sliceIndex);
3671
+ }
3672
+ else {
3673
+ const foundIndex = this.imageIds.indexOf(referencedImageId);
3674
+ if (foundIndex !== -1) {
3675
+ this.setImageIdIndex(foundIndex);
3676
+ }
3677
+ else {
3678
+ throw new Error('Unsupported - referenced image id not found');
3588
3679
  }
3589
3680
  }
3590
3681
  }
@@ -3708,8 +3799,8 @@ var enums = __webpack_require__(98362);
3708
3799
  var metaData = __webpack_require__(55692);
3709
3800
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/transform.js
3710
3801
  var rendering_transform = __webpack_require__(18714);
3711
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
3712
- var utilities = __webpack_require__(35678);
3802
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
3803
+ var utilities = __webpack_require__(20228);
3713
3804
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/Viewport.js
3714
3805
  var Viewport = __webpack_require__(11512);
3715
3806
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -4620,7 +4711,7 @@ class VideoViewport extends Viewport/* default */.A {
4620
4711
  /* harmony import */ var _enums_ViewportStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17702);
4621
4712
  /* harmony import */ var _enums_ViewportType__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21432);
4622
4713
  /* harmony import */ var _renderingEngineCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(94070);
4623
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(35678);
4714
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(20228);
4624
4715
  /* harmony import */ var _utilities_hasNaNValues__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(73139);
4625
4716
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(88903);
4626
4717
  /* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(71702);
@@ -4920,7 +5011,7 @@ class Viewport {
4920
5011
  this.setDisplayAreaScale(displayArea);
4921
5012
  }
4922
5013
  else {
4923
- this.setInterpolationType(this.getProperties().interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
5014
+ this.setInterpolationType(this.getProperties()?.interpolationType || _enums__WEBPACK_IMPORTED_MODULE_13__.InterpolationType.LINEAR);
4924
5015
  this.setDisplayAreaFit(displayArea);
4925
5016
  }
4926
5017
  if (storeAsInitialCamera) {
@@ -5149,6 +5240,9 @@ class Viewport {
5149
5240
  }, storeAsInitialCamera);
5150
5241
  }
5151
5242
  getZoom(compareCamera = this.initialCamera) {
5243
+ if (!compareCamera) {
5244
+ return 1;
5245
+ }
5152
5246
  const activeCamera = this.getVtkActiveCamera();
5153
5247
  const { parallelScale: initialParallelScale } = compareCamera;
5154
5248
  return initialParallelScale / activeCamera.getParallelScale();
@@ -5402,11 +5496,12 @@ class Viewport {
5402
5496
  return { widthWorld: maxX - minX, heightWorld: maxY - minY };
5403
5497
  }
5404
5498
  getViewReference(viewRefSpecifier = {}) {
5405
- const { focalPoint: cameraFocalPoint, viewPlaneNormal } = this.getCamera();
5499
+ const { focalPoint: cameraFocalPoint, viewPlaneNormal, viewUp, } = this.getCamera();
5406
5500
  const target = {
5407
5501
  FrameOfReferenceUID: this.getFrameOfReferenceUID(),
5408
5502
  cameraFocalPoint,
5409
5503
  viewPlaneNormal,
5504
+ viewUp,
5410
5505
  sliceIndex: viewRefSpecifier.sliceIndex ?? this.getCurrentImageIdIndex(),
5411
5506
  };
5412
5507
  return target;
@@ -5421,7 +5516,7 @@ class Viewport {
5421
5516
  if (viewPlaneNormal &&
5422
5517
  !(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(viewPlaneNormal, camera.viewPlaneNormal) &&
5423
5518
  !(0,_utilities__WEBPACK_IMPORTED_MODULE_9__.isEqual)(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec3.negate */ .eR.negate(camera.viewPlaneNormal, camera.viewPlaneNormal), viewPlaneNormal)) {
5424
- return options?.asVolume === true;
5519
+ return options?.withOrientation === true;
5425
5520
  }
5426
5521
  return true;
5427
5522
  }
@@ -5449,19 +5544,22 @@ class Viewport {
5449
5544
  }
5450
5545
  return target;
5451
5546
  }
5452
- setView(viewRef, viewPres) {
5453
- if (viewPres) {
5454
- const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
5455
- if (displayArea !== this.getDisplayArea()) {
5456
- this.setDisplayArea(displayArea);
5457
- }
5458
- this.setZoom(zoom);
5459
- if (pan) {
5460
- this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
5461
- }
5462
- if (rotation >= 0) {
5463
- this.setRotation(rotation);
5464
- }
5547
+ setViewReference(viewRef) {
5548
+ }
5549
+ setViewPresentation(viewPres) {
5550
+ if (!viewPres) {
5551
+ return;
5552
+ }
5553
+ const { displayArea, zoom = this.getZoom(), pan, rotation } = viewPres;
5554
+ if (displayArea !== this.getDisplayArea()) {
5555
+ this.setDisplayArea(displayArea);
5556
+ }
5557
+ this.setZoom(zoom);
5558
+ if (pan) {
5559
+ this.setPan(gl_matrix__WEBPACK_IMPORTED_MODULE_3__/* .vec2.scale */ .Zc.scale([0, 0], pan, zoom));
5560
+ }
5561
+ if (rotation >= 0) {
5562
+ this.setRotation(rotation);
5465
5563
  }
5466
5564
  }
5467
5565
  _shouldUseNativeDataType() {
@@ -5550,15 +5648,15 @@ class Viewport {
5550
5648
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
5551
5649
  /* harmony export */ });
5552
5650
  /* harmony import */ var _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(84441);
5553
- /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
5554
- /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13320);
5555
- /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88903);
5556
- /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98362);
5557
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35678);
5558
- /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6203);
5559
- /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83853);
5560
- /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(22350);
5561
- /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(97508);
5651
+ /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13320);
5652
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88903);
5653
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
5654
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20228);
5655
+ /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(6203);
5656
+ /* harmony import */ var _helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(83853);
5657
+ /* harmony import */ var _utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22350);
5658
+ /* harmony import */ var _utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(97508);
5659
+ /* harmony import */ var _utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(62255);
5562
5660
 
5563
5661
 
5564
5662
 
@@ -5569,43 +5667,34 @@ class Viewport {
5569
5667
 
5570
5668
 
5571
5669
 
5572
- class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A {
5670
+ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A {
5573
5671
  constructor(props) {
5574
5672
  super(props);
5575
5673
  this._useAcquisitionPlaneForViewPlane = false;
5576
5674
  this.getNumberOfSlices = () => {
5577
- const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
5675
+ const { numberOfSlices } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
5578
5676
  return numberOfSlices;
5579
5677
  };
5580
5678
  this.getSliceIndex = () => {
5581
- const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this);
5679
+ const { imageIndex } = (0,_utilities_getImageSliceDataForVolumeViewport__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .A)(this);
5582
5680
  return imageIndex;
5583
5681
  };
5584
- this.getCurrentImageIdIndex = (volumeId) => {
5585
- const { viewPlaneNormal, focalPoint } = this.getCamera();
5586
- const imageData = this.getImageData(volumeId);
5587
- if (!imageData) {
5588
- return;
5589
- }
5590
- const { origin, direction, spacing } = imageData;
5591
- const spacingInNormal = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSpacingInNormalDirection)({ direction, spacing }, viewPlaneNormal);
5592
- const sub = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.create */ .eR.create();
5593
- gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.sub */ .eR.sub(sub, focalPoint, origin);
5594
- const distance = gl_matrix__WEBPACK_IMPORTED_MODULE_1__/* .vec3.dot */ .eR.dot(sub, viewPlaneNormal);
5595
- return Math.round(Math.abs(distance) / spacingInNormal);
5682
+ this.getCurrentImageIdIndex = (volumeId, useSlabThickness = true) => {
5683
+ const { currentStepIndex } = (0,_utilities_getVolumeViewportScrollInfo__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(this, volumeId || this.getVolumeId(), useSlabThickness);
5684
+ return currentStepIndex;
5596
5685
  };
5597
5686
  this.getCurrentImageId = () => {
5598
5687
  const actorEntry = this.getDefaultActor();
5599
- if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_5__.actorIsA)(actorEntry, 'vtkVolume')) {
5688
+ if (!actorEntry || !(0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
5600
5689
  return;
5601
5690
  }
5602
5691
  const { uid } = actorEntry;
5603
- const volume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(uid);
5692
+ const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(uid);
5604
5693
  if (!volume) {
5605
5694
  return;
5606
5695
  }
5607
5696
  const { viewPlaneNormal, focalPoint } = this.getCamera();
5608
- return (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
5697
+ return (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, focalPoint, viewPlaneNormal);
5609
5698
  };
5610
5699
  this.getSlicePlaneCoordinates = () => {
5611
5700
  const actorEntry = this.getDefaultActor();
@@ -5614,30 +5703,30 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5614
5703
  return [];
5615
5704
  }
5616
5705
  const volumeId = actorEntry.uid;
5617
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeId);
5706
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
5618
5707
  const camera = this.getCamera();
5619
5708
  const { focalPoint, position, viewPlaneNormal } = camera;
5620
- const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
5621
- const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
5709
+ const spacingInNormalDirection = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSpacingInNormalDirection)(imageVolume, viewPlaneNormal);
5710
+ const sliceRange = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getSliceRange)(actorEntry.actor, viewPlaneNormal, focalPoint);
5622
5711
  const numSlicesBackward = Math.round((sliceRange.current - sliceRange.min) / spacingInNormalDirection);
5623
5712
  const numSlicesForward = Math.round((sliceRange.max - sliceRange.current) / spacingInNormalDirection);
5624
5713
  const currentSliceIndex = this.getSliceIndex();
5625
5714
  const focalPoints = [];
5626
5715
  for (let i = -numSlicesBackward; i <= numSlicesForward; i++) {
5627
- const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
5716
+ const { newFocalPoint: point } = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.snapFocalPointToSlice)(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, i);
5628
5717
  focalPoints.push({ sliceIndex: currentSliceIndex + i, point });
5629
5718
  }
5630
5719
  return focalPoints;
5631
5720
  };
5632
5721
  const { orientation } = this.options;
5633
- if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_4__.OrientationAxis.ACQUISITION) {
5722
+ if (orientation && orientation !== _enums__WEBPACK_IMPORTED_MODULE_3__.OrientationAxis.ACQUISITION) {
5634
5723
  this.applyViewOrientation(orientation);
5635
5724
  return;
5636
5725
  }
5637
5726
  this._useAcquisitionPlaneForViewPlane = true;
5638
5727
  }
5639
5728
  async setVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
5640
- const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
5729
+ const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
5641
5730
  if (!firstImageVolume) {
5642
5731
  throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
5643
5732
  }
@@ -5648,7 +5737,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5648
5737
  return super.setVolumes(volumeInputArray, immediate, suppressEvents);
5649
5738
  }
5650
5739
  async addVolumes(volumeInputArray, immediate = false, suppressEvents = false) {
5651
- const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
5740
+ const firstImageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeInputArray[0].volumeId);
5652
5741
  if (!firstImageVolume) {
5653
5742
  throw new Error(`imageVolume with id: ${firstImageVolume.volumeId} does not exist`);
5654
5743
  }
@@ -5661,8 +5750,8 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5661
5750
  setOrientation(orientation, immediate = true) {
5662
5751
  let viewPlaneNormal, viewUp;
5663
5752
  if (typeof orientation === 'string') {
5664
- if (_constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[orientation]) {
5665
- ({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[orientation]);
5753
+ if (_constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]) {
5754
+ ({ viewPlaneNormal, viewUp } = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[orientation]);
5666
5755
  }
5667
5756
  else if (orientation === 'acquisition') {
5668
5757
  ({ viewPlaneNormal, viewUp } = this._getAcquisitionPlaneOrientation());
@@ -5691,7 +5780,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5691
5780
  return;
5692
5781
  }
5693
5782
  const volumeId = actorEntry.uid;
5694
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeId);
5783
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeId);
5695
5784
  if (!imageVolume) {
5696
5785
  throw new Error(`imageVolume with id: ${volumeId} does not exist in cache`);
5697
5786
  }
@@ -5736,12 +5825,15 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5736
5825
  this.render();
5737
5826
  }
5738
5827
  }
5739
- resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false) {
5828
+ resetCamera(resetPan = true, resetZoom = true, resetToCenter = true, resetRotation = false, supressEvents = false) {
5829
+ const { orientation } = this.viewportProperties;
5830
+ if (orientation) {
5831
+ this.applyViewOrientation(orientation, false);
5832
+ }
5740
5833
  super.resetCamera(resetPan, resetZoom, resetToCenter);
5741
5834
  this.resetVolumeViewportClippingRange();
5742
5835
  const activeCamera = this.getVtkActiveCamera();
5743
5836
  const viewPlaneNormal = activeCamera.getViewPlaneNormal();
5744
- const viewUp = activeCamera.getViewUp();
5745
5837
  const focalPoint = activeCamera.getFocalPoint();
5746
5838
  const actorEntries = this.getActors();
5747
5839
  actorEntries.forEach((actorEntry) => {
@@ -5754,7 +5846,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5754
5846
  const clipPlane1 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
5755
5847
  const clipPlane2 = _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance();
5756
5848
  const newVtkPlanes = [clipPlane1, clipPlane2];
5757
- let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5849
+ let slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5758
5850
  if (actorEntry.slabThickness) {
5759
5851
  slabThickness = actorEntry.slabThickness;
5760
5852
  }
@@ -5764,13 +5856,22 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5764
5856
  }
5765
5857
  });
5766
5858
  if (resetRotation &&
5767
- _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
5768
- const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_3__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
5859
+ _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation] !== undefined) {
5860
+ const viewToReset = _constants__WEBPACK_IMPORTED_MODULE_2__.MPR_CAMERA_VALUES[this.viewportProperties.orientation];
5769
5861
  this.setCameraNoEvent({
5770
5862
  viewUp: viewToReset.viewUp,
5771
5863
  viewPlaneNormal: viewToReset.viewPlaneNormal,
5772
5864
  });
5773
5865
  }
5866
+ if (!supressEvents) {
5867
+ const eventDetail = {
5868
+ viewportId: this.id,
5869
+ camera: this.getCamera(),
5870
+ renderingEngineId: this.renderingEngineId,
5871
+ element: this.element,
5872
+ };
5873
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.CAMERA_RESET, eventDetail);
5874
+ }
5774
5875
  return true;
5775
5876
  }
5776
5877
  setSlabThickness(slabThickness, filterActorUIDs = []) {
@@ -5784,7 +5885,7 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5784
5885
  });
5785
5886
  }
5786
5887
  actorEntries.forEach((actorEntry) => {
5787
- if ((0,_utilities__WEBPACK_IMPORTED_MODULE_5__.actorIsA)(actorEntry, 'vtkVolume')) {
5888
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
5788
5889
  actorEntry.slabThickness = slabThickness;
5789
5890
  }
5790
5891
  });
@@ -5793,6 +5894,27 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5793
5894
  this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
5794
5895
  this.viewportProperties.slabThickness = slabThickness;
5795
5896
  }
5897
+ resetSlabThickness() {
5898
+ const actorEntries = this.getActors();
5899
+ actorEntries.forEach((actorEntry) => {
5900
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.actorIsA)(actorEntry, 'vtkVolume')) {
5901
+ actorEntry.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5902
+ }
5903
+ });
5904
+ const currentCamera = this.getCamera();
5905
+ this.updateClippingPlanesForActors(currentCamera);
5906
+ this.triggerCameraModifiedEventIfNecessary(currentCamera, currentCamera);
5907
+ this.viewportProperties.slabThickness = undefined;
5908
+ }
5909
+ getViewReference(viewRefSpecifier = {}) {
5910
+ const viewRef = super.getViewReference(viewRefSpecifier);
5911
+ if (!viewRef?.volumeId) {
5912
+ return;
5913
+ }
5914
+ const volume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(viewRef.volumeId);
5915
+ viewRef.referencedImageId = (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.getClosestImageId)(volume, viewRef.cameraFocalPoint, viewRef.viewPlaneNormal);
5916
+ return viewRef;
5917
+ }
5796
5918
  resetProperties(volumeId) {
5797
5919
  this._resetProperties(volumeId);
5798
5920
  }
@@ -5804,20 +5926,20 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5804
5926
  throw new Error(`No actor found for the given volumeId: ${volumeId}`);
5805
5927
  }
5806
5928
  if (volumeActor.slabThickness) {
5807
- volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5929
+ volumeActor.slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5808
5930
  this.viewportProperties.slabThickness = undefined;
5809
5931
  this.updateClippingPlanesForActors(this.getCamera());
5810
5932
  }
5811
- const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
5933
+ const imageVolume = _cache__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay.getVolume(volumeActor.uid);
5812
5934
  if (!imageVolume) {
5813
5935
  throw new Error(`imageVolume with id: ${volumeActor.uid} does not exist in cache`);
5814
5936
  }
5815
- (0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
5816
- if ((0,_utilities__WEBPACK_IMPORTED_MODULE_5__.isImageActor)(volumeActor)) {
5937
+ (0,_helpers_setDefaultVolumeVOI__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A)(volumeActor.actor, imageVolume, false);
5938
+ if ((0,_utilities__WEBPACK_IMPORTED_MODULE_4__.isImageActor)(volumeActor)) {
5817
5939
  const transferFunction = volumeActor.actor
5818
5940
  .getProperty()
5819
5941
  .getRGBTransferFunction(0);
5820
- (0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_8__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
5942
+ (0,_utilities_transferFunctionUtils__WEBPACK_IMPORTED_MODULE_7__.setTransferFunctionNodes)(transferFunction, this.initialTransferFunctionNodes);
5821
5943
  }
5822
5944
  const eventDetails = {
5823
5945
  ...super.getVOIModifiedEventDetail(volumeId),
@@ -5827,12 +5949,12 @@ class VolumeViewport extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_6__/*
5827
5949
  const resetToCenter = true;
5828
5950
  const resetCameraRotation = true;
5829
5951
  this.resetCamera(resetPan, resetZoom, resetToCenter, resetCameraRotation);
5830
- (0,_utilities__WEBPACK_IMPORTED_MODULE_5__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_4__.Events.VOI_MODIFIED, eventDetails);
5952
+ (0,_utilities__WEBPACK_IMPORTED_MODULE_4__.triggerEvent)(this.element, _enums__WEBPACK_IMPORTED_MODULE_3__.Events.VOI_MODIFIED, eventDetails);
5831
5953
  }
5832
5954
  getSlicesClippingPlanes() {
5833
5955
  const focalPoints = this.getSlicePlaneCoordinates();
5834
5956
  const { viewPlaneNormal } = this.getCamera();
5835
- const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_3__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5957
+ const slabThickness = _constants__WEBPACK_IMPORTED_MODULE_2__.RENDERING_DEFAULTS.MINIMUM_SLAB_THICKNESS;
5836
5958
  return focalPoints.map(({ point, sliceIndex }) => {
5837
5959
  const vtkPlanes = [_kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance(), _kitware_vtk_js_Common_DataModel_Plane__WEBPACK_IMPORTED_MODULE_0__/* ["default"].newInstance */ .Ay.newInstance()];
5838
5960
  this.setOrientationOfClippingPlanes(vtkPlanes, slabThickness, viewPlaneNormal, point);
@@ -5895,6 +6017,9 @@ class VolumeViewport3D extends _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_1__/
5895
6017
  resetProperties(volumeId) {
5896
6018
  return null;
5897
6019
  }
6020
+ resetSlabThickness() {
6021
+ return null;
6022
+ }
5898
6023
  }
5899
6024
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeViewport3D);
5900
6025
 
@@ -7131,8 +7256,8 @@ function storedPixelDataToCanvasImageDataPseudocolorLUTPET(image, lutFunction, c
7131
7256
  }
7132
7257
  /* harmony default export */ const rendering_storedPixelDataToCanvasImageDataPseudocolorLUTPET = (storedPixelDataToCanvasImageDataPseudocolorLUTPET);
7133
7258
 
7134
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
7135
- var utilities = __webpack_require__(35678);
7259
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
7260
+ var utilities = __webpack_require__(20228);
7136
7261
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/cpuFallback/rendering/renderPseudoColorImage.js
7137
7262
 
7138
7263
 
@@ -8187,8 +8312,8 @@ function createVolumeMapper(imageData, vtkOpenGLTexture) {
8187
8312
  return volumeMapper;
8188
8313
  }
8189
8314
 
8190
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
8191
- var utilities = __webpack_require__(35678);
8315
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
8316
+ var utilities = __webpack_require__(20228);
8192
8317
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
8193
8318
  var enums = __webpack_require__(98362);
8194
8319
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/setDefaultVolumeVOI.js
@@ -8301,7 +8426,7 @@ var addImageSlicesToViewports = __webpack_require__(25271);
8301
8426
  /* harmony export */ });
8302
8427
  /* harmony import */ var _loaders_imageLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79220);
8303
8428
  /* harmony import */ var _metaData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55692);
8304
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35678);
8429
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20228);
8305
8430
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98362);
8306
8431
  /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13320);
8307
8432
 
@@ -8449,7 +8574,7 @@ function _isCurrentImagePTPrescaled(modality, imageVolume) {
8449
8574
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
8450
8575
  /* harmony export */ g: () => (/* binding */ resetVolumeNewImageState)
8451
8576
  /* harmony export */ });
8452
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
8577
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
8453
8578
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98362);
8454
8579
  /* harmony import */ var _getRenderingEngine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49184);
8455
8580
  /* harmony import */ var _BaseVolumeViewport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6203);
@@ -8516,8 +8641,8 @@ var Events = __webpack_require__(11731);
8516
8641
  var renderingEngineCache = __webpack_require__(94070);
8517
8642
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/eventTarget.js
8518
8643
  var eventTarget = __webpack_require__(51884);
8519
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
8520
- var utilities = __webpack_require__(35678);
8644
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
8645
+ var utilities = __webpack_require__(20228);
8521
8646
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
8522
8647
  var vtkClasses = __webpack_require__(69585);
8523
8648
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/ViewportType.js
@@ -8849,7 +8974,12 @@ class RenderingEngine {
8849
8974
  const prevCamera = vp.getCamera();
8850
8975
  const rotation = vp.getRotation();
8851
8976
  const { flipHorizontal } = prevCamera;
8852
- vp.resetCamera();
8977
+ const resetPan = true;
8978
+ const resetZoom = true;
8979
+ const resetToCenter = true;
8980
+ const resetRotation = false;
8981
+ const supressEvents = true;
8982
+ vp.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
8853
8983
  const displayArea = vp.getDisplayArea();
8854
8984
  if (keepCamera) {
8855
8985
  if (displayArea) {
@@ -15302,7 +15432,7 @@ function vtkSlabCamera(publicAPI, model) {
15302
15432
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
15303
15433
  /* harmony export */ });
15304
15434
  /* unused harmony export Cache */
15305
- /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35678);
15435
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20228);
15306
15436
  /* harmony import */ var _eventTarget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51884);
15307
15437
  /* harmony import */ var _enums_Events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11731);
15308
15438
  /* harmony import */ var _classes_ImageVolume__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77076);
@@ -15318,7 +15448,7 @@ class Cache {
15318
15448
  this._imageCacheSize = 0;
15319
15449
  this._volumeCacheSize = 0;
15320
15450
  this._maxCacheSize = 3 * ONE_GB;
15321
- this._maxInstanceSize = 2 * ONE_GB - 8;
15451
+ this._maxInstanceSize = 4 * ONE_GB - 8;
15322
15452
  this.setMaxCacheSize = (newMaxCacheSize) => {
15323
15453
  if (!newMaxCacheSize || typeof newMaxCacheSize !== 'number') {
15324
15454
  const errorMessage = `New max cacheSize ${this._maxCacheSize} should be defined and should be a number.`;
@@ -15784,8 +15914,8 @@ function isTypedArray(obj) {
15784
15914
  obj instanceof Float64Array);
15785
15915
  }
15786
15916
 
15787
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
15788
- var utilities = __webpack_require__(35678);
15917
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
15918
+ var utilities = __webpack_require__(20228);
15789
15919
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/vtkClasses/index.js + 27 modules
15790
15920
  var vtkClasses = __webpack_require__(69585);
15791
15921
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/cache.js
@@ -23569,8 +23699,8 @@ async function createAndCacheGeometry(geometryId, options) {
23569
23699
 
23570
23700
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/ProgressiveRetrieveImages.js + 4 modules
23571
23701
  var ProgressiveRetrieveImages = __webpack_require__(71090);
23572
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
23573
- var utilities = __webpack_require__(35678);
23702
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
23703
+ var utilities = __webpack_require__(20228);
23574
23704
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/triggerEvent.js
23575
23705
  var triggerEvent = __webpack_require__(13292);
23576
23706
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/helpers/index.js + 5 modules
@@ -23633,8 +23763,8 @@ function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{
23633
23763
  var enums = __webpack_require__(98362);
23634
23764
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/RenderingEngine/getRenderingEngine.js
23635
23765
  var getRenderingEngine = __webpack_require__(49184);
23636
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
23637
- var utilities = __webpack_require__(35678);
23766
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
23767
+ var utilities = __webpack_require__(20228);
23638
23768
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/webWorkerManager/webWorkerManager.js
23639
23769
  var webWorkerManager = __webpack_require__(61874);
23640
23770
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/init.js
@@ -23955,8 +24085,8 @@ const interleavedRetrieveConfiguration = [
23955
24085
 
23956
24086
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/loaders/imageLoader.js
23957
24087
  var imageLoader = __webpack_require__(79220);
23958
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 70 modules
23959
- var utilities = __webpack_require__(35678);
24088
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/index.js + 68 modules
24089
+ var utilities = __webpack_require__(20228);
23960
24090
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/requestPool/imageLoadPoolManager.js
23961
24091
  var imageLoadPoolManager = __webpack_require__(775);
23962
24092
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/cache/index.js
@@ -24383,7 +24513,7 @@ function findMatchingColormap(rgbPoints, actor) {
24383
24513
  return false;
24384
24514
  }
24385
24515
  for (let i = 0; i < presetRGBPoints.length; i += 4) {
24386
- if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
24516
+ if (!(0,_isEqual__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Ay)(presetRGBPoints.slice(i + 1, i + 4), rgbPoints.slice(i + 1, i + 4))) {
24387
24517
  return false;
24388
24518
  }
24389
24519
  }
@@ -24412,6 +24542,7 @@ function findMatchingColormap(rgbPoints, actor) {
24412
24542
  }
24413
24543
  return {
24414
24544
  name: matchedColormap.Name,
24545
+ opacity,
24415
24546
  };
24416
24547
  }
24417
24548
 
@@ -24716,6 +24847,73 @@ const getVolumeId = (targetId) => {
24716
24847
  };
24717
24848
 
24718
24849
 
24850
+ /***/ }),
24851
+
24852
+ /***/ 76399:
24853
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24854
+
24855
+ "use strict";
24856
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24857
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
24858
+ /* harmony export */ });
24859
+ /* harmony import */ var _getSliceRange__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51849);
24860
+ /* harmony import */ var _getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94172);
24861
+
24862
+
24863
+ function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
24864
+ const camera = viewport.getCamera();
24865
+ const { focalPoint, viewPlaneNormal } = camera;
24866
+ const { spacingInNormalDirection, actorUID } = (0,_getTargetVolumeAndSpacingInNormalDir__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .A)(viewport, camera, volumeId, useSlabThickness);
24867
+ if (!actorUID) {
24868
+ throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
24869
+ }
24870
+ const actorEntry = viewport.getActor(actorUID);
24871
+ if (!actorEntry) {
24872
+ console.warn('No actor found for with actorUID of', actorUID);
24873
+ return null;
24874
+ }
24875
+ const volumeActor = actorEntry.actor;
24876
+ const sliceRange = (0,_getSliceRange__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(volumeActor, viewPlaneNormal, focalPoint);
24877
+ return {
24878
+ sliceRange,
24879
+ spacingInNormalDirection,
24880
+ camera,
24881
+ };
24882
+ }
24883
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeSliceRangeInfo);
24884
+
24885
+
24886
+ /***/ }),
24887
+
24888
+ /***/ 62255:
24889
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24890
+
24891
+ "use strict";
24892
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24893
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
24894
+ /* harmony export */ });
24895
+ /* harmony import */ var _getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76399);
24896
+
24897
+ function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
24898
+ const { sliceRange, spacingInNormalDirection, camera } = (0,_getVolumeSliceRangeInfo__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A)(viewport, volumeId, useSlabThickness);
24899
+ const { min, max, current } = sliceRange;
24900
+ const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
24901
+ const fraction = (current - min) / (max - min);
24902
+ const floatingStepNumber = fraction * numScrollSteps;
24903
+ const currentStepIndex = Math.round(floatingStepNumber);
24904
+ return {
24905
+ numScrollSteps,
24906
+ currentStepIndex,
24907
+ sliceRangeInfo: {
24908
+ sliceRange,
24909
+ spacingInNormalDirection,
24910
+ camera,
24911
+ },
24912
+ };
24913
+ }
24914
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getVolumeViewportScrollInfo);
24915
+
24916
+
24719
24917
  /***/ }),
24720
24918
 
24721
24919
  /***/ 73139:
@@ -24735,7 +24933,7 @@ function hasNaNValues(input) {
24735
24933
 
24736
24934
  /***/ }),
24737
24935
 
24738
- /***/ 35678:
24936
+ /***/ 20228:
24739
24937
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24740
24938
 
24741
24939
  "use strict";
@@ -24746,6 +24944,7 @@ __webpack_require__.r(__webpack_exports__);
24746
24944
  __webpack_require__.d(__webpack_exports__, {
24747
24945
  PointsManager: () => (/* reexport */ PointsManager),
24748
24946
  ProgressiveIterator: () => (/* reexport */ ProgressiveIterator),
24947
+ RLEVoxelMap: () => (/* reexport */ RLEVoxelMap),
24749
24948
  VoxelManager: () => (/* reexport */ VoxelManager),
24750
24949
  actorIsA: () => (/* reexport */ actorCheck/* actorIsA */.N),
24751
24950
  applyPreset: () => (/* reexport */ applyPreset),
@@ -24791,8 +24990,8 @@ __webpack_require__.d(__webpack_exports__, {
24791
24990
  getVoiFromSigmoidRGBTransferFunction: () => (/* reexport */ getVoiFromSigmoidRGBTransferFunction),
24792
24991
  getVolumeActorCorners: () => (/* reexport */ getVolumeActorCorners/* default */.A),
24793
24992
  getVolumeId: () => (/* reexport */ getVolumeId/* getVolumeId */.A),
24794
- getVolumeSliceRangeInfo: () => (/* reexport */ utilities_getVolumeSliceRangeInfo),
24795
- getVolumeViewportScrollInfo: () => (/* reexport */ utilities_getVolumeViewportScrollInfo),
24993
+ getVolumeSliceRangeInfo: () => (/* reexport */ getVolumeSliceRangeInfo/* default */.A),
24994
+ getVolumeViewportScrollInfo: () => (/* reexport */ getVolumeViewportScrollInfo/* default */.A),
24796
24995
  getVolumeViewportsContainingSameVolumes: () => (/* reexport */ utilities_getVolumeViewportsContainingSameVolumes),
24797
24996
  hasFloatScalingParameters: () => (/* reexport */ hasFloatScalingParameters),
24798
24997
  hasNaNValues: () => (/* reexport */ hasNaNValues/* default */.A),
@@ -24801,7 +25000,9 @@ __webpack_require__.d(__webpack_exports__, {
24801
25000
  imageToWorldCoords: () => (/* reexport */ imageToWorldCoords),
24802
25001
  indexWithinDimensions: () => (/* reexport */ indexWithinDimensions),
24803
25002
  invertRgbTransferFunction: () => (/* reexport */ invertRgbTransferFunction),
24804
- isEqual: () => (/* reexport */ isEqual/* default */.A),
25003
+ isEqual: () => (/* reexport */ isEqual/* isEqual */.n4),
25004
+ isEqualAbs: () => (/* reexport */ isEqual/* isEqualAbs */.Ph),
25005
+ isEqualNegative: () => (/* reexport */ isEqual/* isEqualNegative */.WC),
24805
25006
  isImageActor: () => (/* reexport */ actorCheck/* isImageActor */.e),
24806
25007
  isOpposite: () => (/* reexport */ isOpposite),
24807
25008
  isPTPrescaledWithSUV: () => (/* reexport */ utilities_isPTPrescaledWithSUV),
@@ -25232,6 +25433,9 @@ function createUint8SharedArray(length) {
25232
25433
 
25233
25434
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/createFloat32SharedArray.js
25234
25435
 
25436
+ const SMALL_MEMORY_LIMIT = 2 * 1024 * 1024 * 1024 - 2;
25437
+ const BIG_MEMORY_LIMIT = SMALL_MEMORY_LIMIT * 2;
25438
+ const PAGE_SIZE = 65536;
25235
25439
  function createFloat32SharedArray(length) {
25236
25440
  if (!(0,init/* getShouldUseSharedArrayBuffer */.TB)()) {
25237
25441
  throw new Error('Your page is NOT cross-origin isolated, see https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated');
@@ -25239,8 +25443,20 @@ function createFloat32SharedArray(length) {
25239
25443
  if (window.SharedArrayBuffer === undefined) {
25240
25444
  throw new Error('SharedArrayBuffer is NOT supported in your browser see https://developer.chrome.com/blog/enabling-shared-array-buffer/');
25241
25445
  }
25242
- const sharedArrayBuffer = new SharedArrayBuffer(length * 4);
25243
- return new Float32Array(sharedArrayBuffer);
25446
+ const byteLength = length * 4;
25447
+ if (byteLength < SMALL_MEMORY_LIMIT) {
25448
+ const sharedArrayBuffer = new SharedArrayBuffer(byteLength);
25449
+ return new Float32Array(sharedArrayBuffer);
25450
+ }
25451
+ else if (byteLength < BIG_MEMORY_LIMIT) {
25452
+ const pages = Math.ceil(byteLength / PAGE_SIZE);
25453
+ const memory = new WebAssembly.Memory({
25454
+ initial: pages,
25455
+ maximum: pages,
25456
+ shared: true,
25457
+ });
25458
+ return new Float32Array(memory.buffer, 0, length);
25459
+ }
25244
25460
  }
25245
25461
  /* harmony default export */ const utilities_createFloat32SharedArray = (createFloat32SharedArray);
25246
25462
 
@@ -25631,54 +25847,12 @@ function imageToWorldCoords(imageId, imageCoords) {
25631
25847
  return Array.from(imageCoordsInWorld);
25632
25848
  }
25633
25849
 
25850
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
25851
+ var getVolumeSliceRangeInfo = __webpack_require__(76399);
25852
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
25853
+ var getVolumeViewportScrollInfo = __webpack_require__(62255);
25634
25854
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getSliceRange.js
25635
25855
  var getSliceRange = __webpack_require__(51849);
25636
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeSliceRangeInfo.js
25637
-
25638
-
25639
- function getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness = false) {
25640
- const camera = viewport.getCamera();
25641
- const { focalPoint, viewPlaneNormal } = camera;
25642
- const { spacingInNormalDirection, actorUID } = (0,getTargetVolumeAndSpacingInNormalDir/* default */.A)(viewport, camera, volumeId, useSlabThickness);
25643
- if (!actorUID) {
25644
- throw new Error(`Could not find image volume with id ${volumeId} in the viewport`);
25645
- }
25646
- const actorEntry = viewport.getActor(actorUID);
25647
- if (!actorEntry) {
25648
- console.warn('No actor found for with actorUID of', actorUID);
25649
- return null;
25650
- }
25651
- const volumeActor = actorEntry.actor;
25652
- const sliceRange = (0,getSliceRange/* default */.A)(volumeActor, viewPlaneNormal, focalPoint);
25653
- return {
25654
- sliceRange,
25655
- spacingInNormalDirection,
25656
- camera,
25657
- };
25658
- }
25659
- /* harmony default export */ const utilities_getVolumeSliceRangeInfo = (getVolumeSliceRangeInfo);
25660
-
25661
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/getVolumeViewportScrollInfo.js
25662
-
25663
- function getVolumeViewportScrollInfo(viewport, volumeId, useSlabThickness = false) {
25664
- const { sliceRange, spacingInNormalDirection, camera } = utilities_getVolumeSliceRangeInfo(viewport, volumeId, useSlabThickness);
25665
- const { min, max, current } = sliceRange;
25666
- const numScrollSteps = Math.round((max - min) / spacingInNormalDirection);
25667
- const fraction = (current - min) / (max - min);
25668
- const floatingStepNumber = fraction * numScrollSteps;
25669
- const currentStepIndex = Math.round(floatingStepNumber);
25670
- return {
25671
- numScrollSteps,
25672
- currentStepIndex,
25673
- sliceRangeInfo: {
25674
- sliceRange,
25675
- spacingInNormalDirection,
25676
- camera,
25677
- },
25678
- };
25679
- }
25680
- /* harmony default export */ const utilities_getVolumeViewportScrollInfo = (getVolumeViewportScrollInfo);
25681
-
25682
25856
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/utilities/snapFocalPointToSlice.js
25683
25857
 
25684
25858
  function snapFocalPointToSlice(focalPoint, position, sliceRange, viewPlaneNormal, spacingInNormalDirection, deltaFrames) {
@@ -26579,8 +26753,8 @@ function isValidVolume(imageIds) {
26579
26753
  modality === baseMetadata.modality &&
26580
26754
  columns === baseMetadata.columns &&
26581
26755
  rows === baseMetadata.rows &&
26582
- (0,isEqual/* default */.A)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
26583
- (0,isEqual/* default */.A)(pixelSpacing, baseMetadata.pixelSpacing));
26756
+ (0,isEqual/* default */.Ay)(imageOrientationPatient, baseMetadata.imageOrientationPatient) &&
26757
+ (0,isEqual/* default */.Ay)(pixelSpacing, baseMetadata.pixelSpacing));
26584
26758
  });
26585
26759
  return validVolume;
26586
26760
  }
@@ -27413,7 +27587,7 @@ class VoxelManager {
27413
27587
  return [scalarData[index++], scalarData[index++], scalarData[index++]];
27414
27588
  }, (index, v) => {
27415
27589
  index *= 3;
27416
- const isChanged = !(0,isEqual/* default */.A)(scalarData[index], v);
27590
+ const isChanged = !(0,isEqual/* default */.Ay)(scalarData[index], v);
27417
27591
  scalarData[index++] = v[0];
27418
27592
  scalarData[index++] = v[1];
27419
27593
  scalarData[index++] = v[2];
@@ -27767,6 +27941,7 @@ function hexToRgb(hex) {
27767
27941
 
27768
27942
 
27769
27943
 
27944
+
27770
27945
 
27771
27946
 
27772
27947
  /***/ }),
@@ -27776,7 +27951,10 @@ function hexToRgb(hex) {
27776
27951
 
27777
27952
  "use strict";
27778
27953
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
27779
- /* harmony export */ A: () => (/* binding */ isEqual)
27954
+ /* harmony export */ Ay: () => (/* binding */ isEqual),
27955
+ /* harmony export */ Ph: () => (/* binding */ isEqualAbs),
27956
+ /* harmony export */ WC: () => (/* binding */ isEqualNegative),
27957
+ /* harmony export */ n4: () => (/* binding */ isEqual)
27780
27958
  /* harmony export */ });
27781
27959
  function areNumbersEqualWithTolerance(num1, num2, tolerance) {
27782
27960
  return Math.abs(num1 - num2) <= tolerance;
@@ -27810,6 +27988,11 @@ function isEqual(v1, v2, tolerance = 1e-5) {
27810
27988
  }
27811
27989
  return false;
27812
27990
  }
27991
+ const negative = (v) => typeof v === 'number' ? -v : v?.map ? v.map(negative) : !v;
27992
+ const abs = (v) => typeof v === 'number' ? Math.abs(v) : v?.map ? v.map(abs) : v;
27993
+ const isEqualNegative = (v1, v2, tolerance = undefined) => isEqual(v1, negative(v2), tolerance);
27994
+ const isEqualAbs = (v1, v2, tolerance = undefined) => isEqual(abs(v1), abs(v2), tolerance);
27995
+
27813
27996
 
27814
27997
 
27815
27998
  /***/ }),
@@ -28830,7 +29013,7 @@ const CursorNames = [...svgCursorNames, ...standardCursorNames];
28830
29013
 
28831
29014
  /***/ }),
28832
29015
 
28833
- /***/ 2746:
29016
+ /***/ 49574:
28834
29017
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
28835
29018
 
28836
29019
  "use strict";
@@ -28848,6 +29031,7 @@ __webpack_require__.d(__webpack_exports__, {
28848
29031
  drawPath: () => (/* reexport */ drawPath),
28849
29032
  drawPolyline: () => (/* reexport */ drawPolyline),
28850
29033
  drawRect: () => (/* reexport */ drawRect),
29034
+ drawRectByCoordinates: () => (/* reexport */ drawRectByCoordinates),
28851
29035
  drawRedactionRect: () => (/* reexport */ drawRedactionRect),
28852
29036
  drawTextBox: () => (/* reexport */ drawingSvg_drawTextBox)
28853
29037
  });
@@ -29367,11 +29551,11 @@ function drawLinkedTextBox(svgDrawingHelper, annotationUID, textBoxUID, textLine
29367
29551
  }
29368
29552
  /* harmony default export */ const drawingSvg_drawLinkedTextBox = (drawLinkedTextBox);
29369
29553
 
29370
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRect.js
29554
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRectByCoordinates.js
29371
29555
 
29372
29556
 
29373
29557
 
29374
- function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, options = {}, dataId = '') {
29558
+ function drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, options = {}, dataId = '') {
29375
29559
  const { color, width: _width, lineWidth, lineDash, } = Object.assign({
29376
29560
  color: 'rgb(0, 255, 0)',
29377
29561
  width: '2',
@@ -29382,16 +29566,28 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
29382
29566
  const svgns = 'http://www.w3.org/2000/svg';
29383
29567
  const svgNodeHash = drawingSvg_getHash(annotationUID, 'rect', rectangleUID);
29384
29568
  const existingRect = svgDrawingHelper.getSvgNode(svgNodeHash);
29385
- const tlhc = [Math.min(start[0], end[0]), Math.min(start[1], end[1])];
29386
- const width = Math.abs(start[0] - end[0]);
29387
- const height = Math.abs(start[1] - end[1]);
29569
+ const [topLeft, topRight, bottomLeft, bottomRight] = canvasCoordinates;
29570
+ const width = Math.hypot(topLeft[0] - topRight[0], topLeft[1] - topRight[1]);
29571
+ const height = Math.hypot(topLeft[0] - bottomLeft[0], topLeft[1] - bottomLeft[1]);
29572
+ const center = [
29573
+ (bottomRight[0] + topLeft[0]) / 2,
29574
+ (bottomRight[1] + topLeft[1]) / 2,
29575
+ ];
29576
+ const leftEdgeCenter = [
29577
+ (bottomLeft[0] + topLeft[0]) / 2,
29578
+ (bottomLeft[1] + topLeft[1]) / 2,
29579
+ ];
29580
+ const angle = (Math.atan2(center[1] - leftEdgeCenter[1], center[0] - leftEdgeCenter[0]) *
29581
+ 180) /
29582
+ Math.PI;
29388
29583
  const attributes = {
29389
- x: `${tlhc[0]}`,
29390
- y: `${tlhc[1]}`,
29584
+ x: `${center[0] - width / 2}`,
29585
+ y: `${center[1] - height / 2}`,
29391
29586
  width: `${width}`,
29392
29587
  height: `${height}`,
29393
29588
  stroke: color,
29394
29589
  fill: 'transparent',
29590
+ transform: `rotate(${angle} ${center[0]} ${center[1]})`,
29395
29591
  'stroke-width': strokeWidth,
29396
29592
  'stroke-dasharray': lineDash,
29397
29593
  };
@@ -29409,6 +29605,16 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
29409
29605
  }
29410
29606
  }
29411
29607
 
29608
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRect.js
29609
+
29610
+ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, options = {}, dataId = '') {
29611
+ const topLeft = [start[0], start[1]];
29612
+ const topRight = [end[0], start[1]];
29613
+ const bottomLeft = [start[0], end[1]];
29614
+ const bottomRight = [end[0], end[1]];
29615
+ drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, [topLeft, topRight, bottomLeft, bottomRight], options, dataId);
29616
+ }
29617
+
29412
29618
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawArrow.js
29413
29619
 
29414
29620
  function drawArrow(svgDrawingHelper, annotationUID, arrowUID, start, end, options = {}) {
@@ -29514,6 +29720,7 @@ function drawRedactionRect(svgDrawingHelper, annotationUID, rectangleUID, start,
29514
29720
 
29515
29721
 
29516
29722
 
29723
+
29517
29724
  /***/ }),
29518
29725
 
29519
29726
  /***/ 42111:
@@ -29749,12 +29956,12 @@ var WorkerTypes_ChangeTypes;
29749
29956
 
29750
29957
  /***/ }),
29751
29958
 
29752
- /***/ 44926:
29959
+ /***/ 94101:
29753
29960
  /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
29754
29961
 
29755
29962
  "use strict";
29756
29963
 
29757
- // UNUSED EXPORTS: annotationInterpolationEventDispatcher, cameraModifiedEventDispatcher, imageRenderedEventDispatcher, imageSpacingCalibratedEventDispatcher, keyboardToolEventDispatcher, mouseToolEventDispatcher, touchToolEventDispatcher
29964
+ // UNUSED EXPORTS: annotationInterpolationEventDispatcher, cameraModifiedEventDispatcher, cameraResetEventDispatcher, imageRenderedEventDispatcher, imageSpacingCalibratedEventDispatcher, keyboardToolEventDispatcher, mouseToolEventDispatcher, touchToolEventDispatcher
29758
29965
 
29759
29966
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/index.js + 28 modules
29760
29967
  var esm = __webpack_require__(92136);
@@ -29936,6 +30143,34 @@ const annotationInterpolationEventDispatcher_disable = function () {
29936
30143
  disable: annotationInterpolationEventDispatcher_disable,
29937
30144
  });
29938
30145
 
30146
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/cameraResetEventDispatcher.js
30147
+
30148
+
30149
+
30150
+ const { Active: cameraResetEventDispatcher_Active, Passive: cameraResetEventDispatcher_Passive, Enabled: cameraResetEventDispatcher_Enabled } = enums.ToolModes;
30151
+ const onCameraReset = function (evt) {
30152
+ const enabledTools = (0,getToolsWithModesForMouseEvent/* default */.A)(evt, [
30153
+ cameraResetEventDispatcher_Active,
30154
+ cameraResetEventDispatcher_Passive,
30155
+ cameraResetEventDispatcher_Enabled,
30156
+ ]);
30157
+ enabledTools.forEach((tool) => {
30158
+ if (tool.onResetCamera) {
30159
+ tool.onResetCamera(evt);
30160
+ }
30161
+ });
30162
+ };
30163
+ const cameraResetEventDispatcher_enable = function (element) {
30164
+ element.addEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
30165
+ };
30166
+ const cameraResetEventDispatcher_disable = function (element) {
30167
+ element.removeEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
30168
+ };
30169
+ /* harmony default export */ const cameraResetEventDispatcher = ({
30170
+ enable: cameraResetEventDispatcher_enable,
30171
+ disable: cameraResetEventDispatcher_disable,
30172
+ });
30173
+
29939
30174
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js
29940
30175
 
29941
30176
 
@@ -29947,6 +30182,7 @@ const annotationInterpolationEventDispatcher_disable = function () {
29947
30182
 
29948
30183
 
29949
30184
 
30185
+
29950
30186
  /***/ }),
29951
30187
 
29952
30188
  /***/ 90202:
@@ -30684,7 +30920,7 @@ function annotationRemovedListener(evt) {
30684
30920
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
30685
30921
  /* harmony import */ var _store_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55588);
30686
30922
  /* harmony import */ var _eventListeners__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60878);
30687
- /* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44926);
30923
+ /* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94101);
30688
30924
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52610);
30689
30925
 
30690
30926
 
@@ -30850,6 +31086,8 @@ class AnnotationGroup {
30850
31086
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
30851
31087
  /* harmony import */ var _annotationLocking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48428);
30852
31088
  /* harmony import */ var _annotationVisibility__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21009);
31089
+ /* harmony import */ var _utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99595);
31090
+
30853
31091
 
30854
31092
 
30855
31093
 
@@ -30946,6 +31184,8 @@ class FrameOfReferenceSpecificAnnotationManager {
30946
31184
  toolSpecificAnnotations.push(annotation);
30947
31185
  (0,_annotationLocking__WEBPACK_IMPORTED_MODULE_2__.checkAndDefineIsLockedProperty)(annotation);
30948
31186
  (0,_annotationVisibility__WEBPACK_IMPORTED_MODULE_3__.checkAndDefineIsVisibleProperty)(annotation);
31187
+ (0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineTextBoxProperty */ .Q)(annotation);
31188
+ (0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineCachedStatsProperty */ .d)(annotation);
30949
31189
  };
30950
31190
  this.removeAnnotation = (annotationUID) => {
30951
31191
  const { annotations } = this;
@@ -34678,8 +34918,8 @@ function removeTool(ToolClass) {
34678
34918
 
34679
34919
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/index.js + 17 modules
34680
34920
  var eventListeners = __webpack_require__(60878);
34681
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js + 7 modules
34682
- var eventDispatchers = __webpack_require__(44926);
34921
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js + 8 modules
34922
+ var eventDispatchers = __webpack_require__(94101);
34683
34923
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/triggerAnnotationRender.js
34684
34924
  var triggerAnnotationRender = __webpack_require__(6805);
34685
34925
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/addEnabledElement.js
@@ -34701,6 +34941,7 @@ function addEnabledElement(evt) {
34701
34941
  imageRenderedEventDispatcher.enable(element);
34702
34942
  cameraModifiedEventDispatcher.enable(element);
34703
34943
  imageSpacingCalibratedEventDispatcher.enable(element);
34944
+ cameraResetEventDispatcher.enable(element);
34704
34945
  mouseToolEventDispatcher.enable(element);
34705
34946
  keyboardToolEventDispatcher.enable(element);
34706
34947
  touchToolEventDispatcher.enable(element);
@@ -34791,6 +35032,7 @@ function removeEnabledElement(elementDisabledEvt) {
34791
35032
  imageRenderedEventDispatcher.disable(element);
34792
35033
  cameraModifiedEventDispatcher.disable(element);
34793
35034
  imageSpacingCalibratedEventDispatcher.disable(element);
35035
+ cameraResetEventDispatcher.disable(element);
34794
35036
  mouseToolEventDispatcher.disable(element);
34795
35037
  keyboardToolEventDispatcher.disable(element);
34796
35038
  touchToolEventDispatcher.disable(element);
@@ -34997,7 +35239,7 @@ function presentationViewSyncCallback_presentationViewSyncCallback(_synchronizer
34997
35239
  const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
34998
35240
  const sViewport = renderingEngine.getViewport(sourceViewport.viewportId);
34999
35241
  const presentationView = sViewport.getViewPresentation(options);
35000
- tViewport.setView(null, presentationView);
35242
+ tViewport.setViewPresentation(presentationView);
35001
35243
  tViewport.render();
35002
35244
  }
35003
35245
 
@@ -35240,7 +35482,7 @@ const createStackImageSynchronizer = (/* unused pure expression or super */ null
35240
35482
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48428);
35241
35483
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21009);
35242
35484
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
35243
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
35485
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
35244
35486
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
35245
35487
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
35246
35488
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
@@ -35729,10 +35971,10 @@ class AnnotationEraserTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseToo
35729
35971
  continue;
35730
35972
  }
35731
35973
  const annotations = (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__.getAnnotations)(toolName, element);
35732
- if (!annotations) {
35974
+ if (!annotations.length) {
35733
35975
  continue;
35734
35976
  }
35735
- const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations);
35977
+ const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations) || [];
35736
35978
  for (const annotation of interactableAnnotations) {
35737
35979
  if (toolInstance.isPointNearTool(element, annotation, currentPoints.canvas, 10, interactionType)) {
35738
35980
  annotationsToRemove.push(annotation.annotationUID);
@@ -35764,7 +36006,7 @@ AnnotationEraserTool.toolName = 'Eraser';
35764
36006
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92136);
35765
36007
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
35766
36008
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38296);
35767
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2746);
36009
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49574);
35768
36010
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(61738);
35769
36011
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84901);
35770
36012
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(90252);
@@ -35815,6 +36057,11 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
35815
36057
  configuration: {
35816
36058
  shadow: true,
35817
36059
  viewportIndicators: true,
36060
+ viewportIndicatorsConfig: {
36061
+ radius: 5,
36062
+ x: null,
36063
+ y: null,
36064
+ },
35818
36065
  autoPan: {
35819
36066
  enabled: false,
35820
36067
  panSize: 10,
@@ -35878,12 +36125,20 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
35878
36125
  viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
35879
36126
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__.getEnabledElementByIds)(viewportId, renderingEngineId);
35880
36127
  const { viewport } = enabledElement;
36128
+ const resetPan = true;
36129
+ const resetZoom = true;
36130
+ const resetToCenter = true;
36131
+ const resetRotation = true;
36132
+ const supressEvents = true;
36133
+ viewport.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
36134
+ viewport.resetSlabThickness();
35881
36135
  const { element } = viewport;
35882
36136
  let annotations = this._getAnnotations(enabledElement);
35883
36137
  annotations = this.filterInteractableAnnotationsForElement(element, annotations);
35884
36138
  if (annotations.length) {
35885
36139
  (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__.removeAnnotation)(annotations[0].annotationUID);
35886
36140
  }
36141
+ viewport.render();
35887
36142
  });
35888
36143
  this.computeToolCenter(viewportsInfo);
35889
36144
  };
@@ -36021,6 +36276,9 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
36021
36276
  const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__.getViewportIdsWithToolToRender)(element, this.getToolName(), requireSameOrientation);
36022
36277
  (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
36023
36278
  };
36279
+ this.onResetCamera = (evt) => {
36280
+ this.resetCrosshairs();
36281
+ };
36024
36282
  this.mouseMoveCallback = (evt, filteredToolAnnotations) => {
36025
36283
  const { element, currentPoints } = evt.detail;
36026
36284
  const canvasCoords = currentPoints.canvas;
@@ -36403,11 +36661,14 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
36403
36661
  data.handles.rotationPoints = newRtpoints;
36404
36662
  data.handles.slabThicknessPoints = newStpoints;
36405
36663
  if (this.configuration.viewportIndicators) {
36664
+ const { viewportIndicatorsConfig } = this.configuration;
36665
+ const xOffset = viewportIndicatorsConfig?.xOffset || 0.95;
36666
+ const yOffset = viewportIndicatorsConfig?.yOffset || 0.05;
36406
36667
  const referenceColorCoordinates = [
36407
- clientWidth * 0.95,
36408
- clientHeight * 0.05,
36668
+ clientWidth * xOffset,
36669
+ clientHeight * yOffset,
36409
36670
  ];
36410
- const circleRadius = canvasDiagonalLength * 0.01;
36671
+ const circleRadius = viewportIndicatorsConfig?.circleRadius || canvasDiagonalLength * 0.01;
36411
36672
  const circleUID = '0';
36412
36673
  (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_7__.drawCircle)(svgDrawingHelper, annotationUID, circleUID, referenceColorCoordinates, circleRadius, { color, fill: color });
36413
36674
  }
@@ -37773,7 +38034,7 @@ OrientationMarkerTool.toolName = 'OrientationMarker';
37773
38034
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
37774
38035
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
37775
38036
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
37776
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
38037
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
37777
38038
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
37778
38039
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
37779
38040
 
@@ -38062,7 +38323,7 @@ PlanarRotateTool.toolName = 'PlanarRotate';
38062
38323
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
38063
38324
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
38064
38325
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21009);
38065
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
38326
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
38066
38327
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
38067
38328
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
38068
38329
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44753);
@@ -38390,7 +38651,7 @@ ReferenceCursors.toolName = 'ReferenceCursors';
38390
38651
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
38391
38652
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
38392
38653
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
38393
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
38654
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
38394
38655
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
38395
38656
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
38396
38657
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
@@ -38629,7 +38890,7 @@ ReferenceLines.toolName = 'ReferenceLines';
38629
38890
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
38630
38891
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92136);
38631
38892
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
38632
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
38893
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
38633
38894
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
38634
38895
 
38635
38896
 
@@ -38931,8 +39192,8 @@ class ScaleOverlayTool extends _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MOD
38931
39192
  viewportId: enabledElement.viewport.id,
38932
39193
  };
38933
39194
  const canvasSize = {
38934
- width: canvas.width,
38935
- height: canvas.height,
39195
+ width: canvas.width / window.devicePixelRatio || 1,
39196
+ height: canvas.height / window.devicePixelRatio || 1,
38936
39197
  };
38937
39198
  const topLeft = annotation.data.handles.points[0];
38938
39199
  const topRight = annotation.data.handles.points[1];
@@ -39345,7 +39606,7 @@ SculptorTool.toolName = 'SculptorTool';
39345
39606
  "use strict";
39346
39607
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
39347
39608
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
39348
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2746);
39609
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
39349
39610
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
39350
39611
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
39351
39612
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28062);
@@ -39890,6 +40151,248 @@ VolumeRotateMouseWheelTool.toolName = 'VolumeRotateMouseWheel';
39890
40151
  /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (VolumeRotateMouseWheelTool)));
39891
40152
 
39892
40153
 
40154
+ /***/ }),
40155
+
40156
+ /***/ 60747:
40157
+ /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => {
40158
+
40159
+ "use strict";
40160
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96214);
40161
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
40162
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95778);
40163
+ /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
40164
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
40165
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61738);
40166
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84901);
40167
+ /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
40168
+ /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40233);
40169
+ /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
40170
+ /* harmony import */ var _utilities_voi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14149);
40171
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(74119);
40172
+
40173
+
40174
+
40175
+
40176
+
40177
+
40178
+
40179
+
40180
+
40181
+
40182
+
40183
+
40184
+ class WindowLevelRegionTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool */ .EC {
40185
+ constructor(toolProps = {}, defaultToolProps = {
40186
+ supportedInteractionTypes: ['Mouse', 'Touch'],
40187
+ configuration: {
40188
+ minWindowWidth: 10,
40189
+ },
40190
+ }) {
40191
+ super(toolProps, defaultToolProps);
40192
+ this.addNewAnnotation = (evt) => {
40193
+ const eventDetail = evt.detail;
40194
+ const { currentPoints, element } = eventDetail;
40195
+ const worldPos = currentPoints.world;
40196
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
40197
+ const { viewport, renderingEngine } = enabledElement;
40198
+ this.isDrawing = true;
40199
+ const camera = viewport.getCamera();
40200
+ const { viewPlaneNormal, viewUp } = camera;
40201
+ const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
40202
+ const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
40203
+ const annotation = {
40204
+ invalidated: true,
40205
+ highlighted: true,
40206
+ metadata: {
40207
+ toolName: this.getToolName(),
40208
+ viewPlaneNormal: [...viewPlaneNormal],
40209
+ viewUp: [...viewUp],
40210
+ FrameOfReferenceUID,
40211
+ referencedImageId,
40212
+ },
40213
+ data: {
40214
+ handles: {
40215
+ points: [
40216
+ [...worldPos],
40217
+ [...worldPos],
40218
+ [...worldPos],
40219
+ [...worldPos],
40220
+ ],
40221
+ },
40222
+ cachedStats: {},
40223
+ },
40224
+ };
40225
+ (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .addAnnotation */ .lC)(annotation, element);
40226
+ const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__.getViewportIdsWithToolToRender)(element, this.getToolName());
40227
+ this.editData = {
40228
+ annotation,
40229
+ viewportIdsToRender,
40230
+ };
40231
+ this._activateDraw(element);
40232
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.hideElementCursor)(element);
40233
+ evt.preventDefault();
40234
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
40235
+ return annotation;
40236
+ };
40237
+ this._endCallback = (evt) => {
40238
+ const eventDetail = evt.detail;
40239
+ const { element } = eventDetail;
40240
+ const { annotation, viewportIdsToRender } = this.editData;
40241
+ this._deactivateDraw(element);
40242
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.resetElementCursor)(element);
40243
+ const { renderingEngine } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
40244
+ this.editData = null;
40245
+ this.isDrawing = false;
40246
+ (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .removeAnnotation */ .O8)(annotation.annotationUID);
40247
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
40248
+ (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__/* .triggerAnnotationCompleted */ .dZ)(annotation);
40249
+ this.applyWindowLevelRegion(annotation, element);
40250
+ };
40251
+ this._dragCallback = (evt) => {
40252
+ this.isDrawing = true;
40253
+ const eventDetail = evt.detail;
40254
+ const { element } = eventDetail;
40255
+ const { annotation, viewportIdsToRender } = this.editData;
40256
+ const { data } = annotation;
40257
+ const { currentPoints } = eventDetail;
40258
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
40259
+ const { worldToCanvas, canvasToWorld } = enabledElement.viewport;
40260
+ const worldPos = currentPoints.world;
40261
+ const { points } = data.handles;
40262
+ const DEFAULT_HANDLE_INDEX = 3;
40263
+ points[DEFAULT_HANDLE_INDEX] = [...worldPos];
40264
+ const bottomLeftCanvas = worldToCanvas(points[0]);
40265
+ const topRightCanvas = worldToCanvas(points[3]);
40266
+ const bottomRightCanvas = [
40267
+ topRightCanvas[0],
40268
+ bottomLeftCanvas[1],
40269
+ ];
40270
+ const topLeftCanvas = [
40271
+ bottomLeftCanvas[0],
40272
+ topRightCanvas[1],
40273
+ ];
40274
+ const bottomRightWorld = canvasToWorld(bottomRightCanvas);
40275
+ const topLeftWorld = canvasToWorld(topLeftCanvas);
40276
+ points[1] = bottomRightWorld;
40277
+ points[2] = topLeftWorld;
40278
+ annotation.invalidated = true;
40279
+ const { renderingEngine } = enabledElement;
40280
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
40281
+ };
40282
+ this._activateDraw = (element) => {
40283
+ _store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = true;
40284
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
40285
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
40286
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
40287
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
40288
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
40289
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
40290
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
40291
+ };
40292
+ this._deactivateDraw = (element) => {
40293
+ _store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = false;
40294
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
40295
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
40296
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
40297
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
40298
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
40299
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
40300
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
40301
+ };
40302
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
40303
+ let renderStatus = false;
40304
+ const { viewport } = enabledElement;
40305
+ const { element } = viewport;
40306
+ let annotations = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getAnnotations */ .Rh)(this.getToolName(), element);
40307
+ if (!annotations?.length) {
40308
+ return renderStatus;
40309
+ }
40310
+ annotations = this.filterInteractableAnnotationsForElement(element, annotations);
40311
+ if (!annotations?.length) {
40312
+ return renderStatus;
40313
+ }
40314
+ const styleSpecifier = {
40315
+ toolGroupId: this.toolGroupId,
40316
+ toolName: this.getToolName(),
40317
+ viewportId: enabledElement.viewport.id,
40318
+ };
40319
+ for (let i = 0; i < annotations.length; i++) {
40320
+ const annotation = annotations[i];
40321
+ const { annotationUID, data } = annotation;
40322
+ const { points } = data.handles;
40323
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
40324
+ styleSpecifier.annotationUID = annotationUID;
40325
+ const { color, lineWidth, lineDash } = this.getAnnotationStyle({
40326
+ annotation,
40327
+ styleSpecifier,
40328
+ });
40329
+ if (!viewport.getRenderingEngine()) {
40330
+ console.warn('Rendering Engine has been destroyed');
40331
+ return renderStatus;
40332
+ }
40333
+ const dataId = `${annotationUID}-rect`;
40334
+ const rectangleUID = '0';
40335
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_4__.drawRect)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates[0], canvasCoordinates[3], {
40336
+ color,
40337
+ lineDash,
40338
+ lineWidth,
40339
+ }, dataId);
40340
+ renderStatus = true;
40341
+ }
40342
+ return renderStatus;
40343
+ };
40344
+ this.applyWindowLevelRegion = (annotation, element) => {
40345
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
40346
+ const { viewport } = enabledElement;
40347
+ const imageData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.extractWindowLevelRegionToolData(viewport);
40348
+ const { data } = annotation;
40349
+ const { points } = data.handles;
40350
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
40351
+ const startCanvas = canvasCoordinates[0];
40352
+ const endCanvas = canvasCoordinates[3];
40353
+ let left = Math.min(startCanvas[0], endCanvas[0]);
40354
+ let top = Math.min(startCanvas[1], endCanvas[1]);
40355
+ let width = Math.abs(startCanvas[0] - endCanvas[0]);
40356
+ let height = Math.abs(startCanvas[1] - endCanvas[1]);
40357
+ left = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(left, 0, imageData.width);
40358
+ top = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(top, 0, imageData.height);
40359
+ width = Math.floor(Math.min(width, Math.abs(imageData.width - left)));
40360
+ height = Math.floor(Math.min(height, Math.abs(imageData.height - top)));
40361
+ const pixelLuminanceData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.getLuminanceFromRegion(imageData, Math.round(left), Math.round(top), width, height);
40362
+ const minMaxMean = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.calculateMinMaxMean(pixelLuminanceData, imageData.minPixelValue, imageData.maxPixelValue);
40363
+ if (this.configuration.minWindowWidth === undefined) {
40364
+ this.configuration.minWindowWidth = 10;
40365
+ }
40366
+ const windowWidth = Math.max(Math.abs(minMaxMean.max - minMaxMean.min), this.configuration.minWindowWidth);
40367
+ const windowCenter = minMaxMean.mean;
40368
+ const voiRange = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.windowLevel.toLowHighRange(windowWidth, windowCenter);
40369
+ viewport.setProperties({ voiRange });
40370
+ viewport.render();
40371
+ };
40372
+ this.cancel = () => {
40373
+ return null;
40374
+ };
40375
+ this.isPointNearTool = () => {
40376
+ return null;
40377
+ };
40378
+ this.toolSelectedCallback = () => {
40379
+ return null;
40380
+ };
40381
+ this.handleSelectedCallback = () => {
40382
+ return null;
40383
+ };
40384
+ this._activateModify = () => {
40385
+ return null;
40386
+ };
40387
+ this._deactivateModify = () => {
40388
+ return null;
40389
+ };
40390
+ }
40391
+ }
40392
+ WindowLevelRegionTool.toolName = 'WindowLevelRegion';
40393
+ /* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = ((/* unused pure expression or super */ null && (WindowLevelRegionTool)));
40394
+
40395
+
39893
40396
  /***/ }),
39894
40397
 
39895
40398
  /***/ 455:
@@ -40301,7 +40804,7 @@ ZoomTool.toolName = 'Zoom';
40301
40804
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21954);
40302
40805
  /* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52475);
40303
40806
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74119);
40304
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
40807
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
40305
40808
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
40306
40809
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(90252);
40307
40810
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(23072);
@@ -40770,7 +41273,7 @@ AngleTool.toolName = 'Angle';
40770
41273
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
40771
41274
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
40772
41275
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21954);
40773
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
41276
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
40774
41277
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
40775
41278
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
40776
41279
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
@@ -41219,7 +41722,7 @@ ArrowAnnotateTool.toolName = 'ArrowAnnotate';
41219
41722
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
41220
41723
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
41221
41724
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
41222
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
41725
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
41223
41726
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
41224
41727
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
41225
41728
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -41838,7 +42341,7 @@ CircleROITool.toolName = 'CircleROI';
41838
42341
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21954);
41839
42342
  /* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(52475);
41840
42343
  /* harmony import */ var _utilities_math_midPoint__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76727);
41841
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2746);
42344
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
41842
42345
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
41843
42346
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
41844
42347
  /* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
@@ -42536,7 +43039,7 @@ CobbAngleTool.toolName = 'CobbAngle';
42536
43039
 
42537
43040
  "use strict";
42538
43041
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
42539
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2746);
43042
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49574);
42540
43043
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90252);
42541
43044
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40233);
42542
43045
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
@@ -42694,7 +43197,7 @@ DragProbeTool.toolName = 'DragProbe';
42694
43197
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
42695
43198
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
42696
43199
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
42697
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
43200
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
42698
43201
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
42699
43202
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
42700
43203
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -43398,7 +43901,7 @@ EllipticalROITool.toolName = 'EllipticalROI';
43398
43901
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
43399
43902
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
43400
43903
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
43401
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
43904
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
43402
43905
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
43403
43906
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
43404
43907
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
@@ -43597,7 +44100,7 @@ KeyImageTool.toolName = 'KeyImage';
43597
44100
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
43598
44101
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
43599
44102
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21954);
43600
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2746);
44103
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
43601
44104
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
43602
44105
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
43603
44106
  /* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
@@ -44043,7 +44546,7 @@ LengthTool.toolName = 'Length';
44043
44546
  /* harmony import */ var _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1320);
44044
44547
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
44045
44548
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
44046
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
44549
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
44047
44550
 
44048
44551
 
44049
44552
 
@@ -44147,7 +44650,7 @@ LivewireContourSegmentationTool.toolName = 'LivewireContourSegmentationTool';
44147
44650
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
44148
44651
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
44149
44652
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
44150
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
44653
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
44151
44654
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
44152
44655
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
44153
44656
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
@@ -44726,7 +45229,7 @@ PlanarFreehandContourSegmentationTool.toolName =
44726
45229
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
44727
45230
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
44728
45231
  /* harmony import */ var _utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24592);
44729
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
45232
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
44730
45233
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
44731
45234
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
44732
45235
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
@@ -45106,7 +45609,7 @@ ProbeTool.toolName = 'Probe';
45106
45609
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
45107
45610
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
45108
45611
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
45109
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
45612
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
45110
45613
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
45111
45614
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
45112
45615
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -45519,7 +46022,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
45519
46022
  }
45520
46023
  const dataId = `${annotationUID}-rect`;
45521
46024
  const rectangleUID = '0';
45522
- (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.drawRect)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates[0], canvasCoordinates[3], {
46025
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.drawRectByCoordinates)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, {
45523
46026
  color,
45524
46027
  lineDash,
45525
46028
  lineWidth,
@@ -45703,7 +46206,7 @@ SplineContourSegmentationTool.toolName = 'SplineContourSegmentationTool';
45703
46206
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
45704
46207
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
45705
46208
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
45706
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
46209
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
45707
46210
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
45708
46211
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
45709
46212
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
@@ -46457,7 +46960,7 @@ SplineROITool.toolName = 'SplineROI';
46457
46960
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
46458
46961
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
46459
46962
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
46460
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
46963
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
46461
46964
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
46462
46965
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
46463
46966
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(74119);
@@ -46942,7 +47445,7 @@ UltrasoundDirectionalTool.toolName = 'UltrasoundDirectionalTool';
46942
47445
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
46943
47446
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
46944
47447
  /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95778);
46945
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
47448
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
46946
47449
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
46947
47450
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
46948
47451
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
@@ -47967,7 +48470,7 @@ async function _addLabelmapToViewport(viewport, labelmapData, segmentationRepres
47967
48470
  /* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4069);
47968
48471
  /* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11852);
47969
48472
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
47970
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2746);
48473
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(49574);
47971
48474
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40233);
47972
48475
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(23072);
47973
48476
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(63421);
@@ -48439,7 +48942,7 @@ BrushTool.toolName = 'Brush';
48439
48942
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84901);
48440
48943
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
48441
48944
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
48442
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
48945
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
48443
48946
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90252);
48444
48947
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21090);
48445
48948
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
@@ -48803,7 +49306,7 @@ CircleROIStartEndThresholdTool.toolName = 'CircleROIStartEndThreshold';
48803
49306
  /* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4069);
48804
49307
  /* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11852);
48805
49308
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
48806
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
49309
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
48807
49310
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
48808
49311
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
48809
49312
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
@@ -49300,7 +49803,7 @@ PaintFillTool.toolName = 'PaintFill';
49300
49803
  /* harmony import */ var _strategies_eraseRectangle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66211);
49301
49804
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
49302
49805
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
49303
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
49806
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
49304
49807
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40233);
49305
49808
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
49306
49809
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63421);
@@ -49670,7 +50173,7 @@ SegmentSelectTool.toolName = 'SegmentSelectTool';
49670
50173
  /* harmony import */ var _strategies_fillSphere__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61604);
49671
50174
  /* harmony import */ var _strategies_eraseSphere__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4373);
49672
50175
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
49673
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
50176
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
49674
50177
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
49675
50178
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
49676
50179
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
@@ -50271,7 +50774,7 @@ function triggerSegmentationRender(toolGroupId) {
50271
50774
  /* unused harmony exports annotationRenderingEngine, triggerAnnotationRender */
50272
50775
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
50273
50776
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84901);
50274
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2746);
50777
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
50275
50778
  /* harmony import */ var _getToolsWithModesForElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42360);
50276
50779
 
50277
50780