@ohif/app 3.8.0 → 3.8.2

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.77cc4e62d0de5d843e2e.js → 117.bundle.17ae130d2bb21ef9d31f.js} +75 -80
  2. package/dist/{121.bundle.47f05840a5b3cdf75543.js → 121.bundle.27d181784f24551bc546.js} +2 -1
  3. package/dist/{164.bundle.b101cb64d04a22453984.js → 164.bundle.e30009bee13acb6967da.js} +554 -311
  4. package/dist/{236.bundle.f774cdc955890e6cdac9.js → 236.bundle.79a374f5fdf7fde431f4.js} +753 -140
  5. package/dist/{188.bundle.f2b81ec70ae344f57183.js → 243.bundle.7891b41d969264043783.js} +8 -8
  6. package/dist/{325.bundle.5012b0285b6baadd1884.js → 325.bundle.bfb7de5a397beae16d24.js} +11 -11
  7. package/dist/{342.bundle.36ee082163b01284eeba.js → 342.bundle.17f0c50a27c0ba1f3846.js} +7 -0
  8. package/dist/{203.bundle.3581da3a32a0b720d3a7.js → 370.bundle.e4cd6c20d3496c949374.js} +614 -455
  9. package/dist/{448.bundle.35b8f8e262fa954026df.js → 448.bundle.375bbf6d00a23e35f229.js} +2 -2
  10. package/dist/{483.bundle.581b242d7b90866fdfb9.js → 483.bundle.016de3c3ec209d9fa42a.js} +16 -3
  11. package/dist/{487.bundle.79aff4db7df5f383b423.js → 487.bundle.205821cf073b4d0d2e71.js} +2 -2
  12. package/dist/{416.bundle.9b0d7559344fd02c9e08.js → 501.bundle.de519580f8ba42802378.js} +1206 -305
  13. package/dist/{530.bundle.207b38c15c4c01e4db0e.js → 530.bundle.17b9a34fefff133e5379.js} +3 -3
  14. package/dist/{544.bundle.3542927ec15c3f688c8d.js → 544.bundle.170c67e76a6900a9a644.js} +4 -4
  15. package/dist/{206.bundle.e1ea316389b21006d3df.js → 545.bundle.c9cc3bd30adc9904cf64.js} +28 -24
  16. package/dist/{321.bundle.39a76114e54cd9833c43.js → 550.bundle.53604ec87839bd9b4a49.js} +82 -49
  17. package/dist/{574.bundle.4b059c95cd34efdc9cb3.js → 574.bundle.b369b11b04c3e080f0b3.js} +40 -37
  18. package/dist/{41.bundle.64e0da470e235cfac4bb.js → 682.bundle.fdd752d2920107f695fb.js} +26 -6
  19. package/dist/{699.bundle.b9666b1d4ddf7e8577ee.js → 699.bundle.fee3d1c6609ecc557a9a.js} +32 -3
  20. package/dist/{669.bundle.64309c677c5ca188348c.js → 721.bundle.d01a6829ac9b0abef67d.js} +73 -73
  21. package/dist/{722.bundle.52eb61926d08a08793fe.js → 722.bundle.1242e0348afc63ca4f5e.js} +10 -4
  22. package/dist/{724.bundle.72aef9dfca69ae057d37.js → 776.bundle.bb8a64b917ff1e559734.js} +13 -15
  23. package/dist/{862.bundle.9897a9b748078d53f9ab.js → 862.bundle.59bb164ca7e871a33e44.js} +1 -1
  24. package/dist/{889.bundle.b6231f995fd098f7e3f9.js → 889.bundle.5b10c495e1442d648ffc.js} +8 -8
  25. package/dist/{905.bundle.cd3e2b347340dd47a1b0.js → 905.bundle.1ba21a0406473fc92696.js} +2 -2
  26. package/dist/{907.bundle.723a425dedf8147243d2.js → 907.bundle.b199f25916a94c4ebb97.js} +2 -2
  27. package/dist/{473.bundle.11f707c8170ade2eb56a.js → 914.bundle.2b3a856b7d41ac8298e6.js} +510 -272
  28. package/dist/{94.bundle.33ca3bc10aa42716dbbb.js → 94.bundle.ae3ca435b134c95aea2e.js} +38 -8
  29. package/dist/{961.bundle.2c4663737c970764a41e.js → 961.bundle.d1b25d8f354bde3be17c.js} +2 -2
  30. package/dist/{7.bundle.94692aed50fe4ba2e2f5.js → 981.bundle.808058a6555d322675e1.js} +15 -15
  31. package/dist/{594.bundle.c292423defd9581bfbe3.js → 989.bundle.b929ddc23c16980560de.js} +5 -5
  32. package/dist/{633.bundle.e258ba4843985e67336a.js → 998.bundle.df083f740270855652bd.js} +21 -20
  33. package/dist/app-config.js +5 -1
  34. package/dist/{app.bundle.a05edb830ad2ecd67aac.js → app.bundle.7fa3782f7fa236cc53a8.js} +791 -568
  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.4442dd3318266fddf4d0.js → polySeg.bundle.36ddebc98d8b109edf33.js} +3 -3
  41. package/dist/{suv-peak-worker.bundle.348c016f7f973d05f2d2.js → suv-peak-worker.bundle.f4df597fab47d977d7f3.js} +3 -3
  42. package/dist/sw.js +1 -1
  43. package/package.json +18 -18
  44. /package/dist/{321.css → 550.css} +0 -0
  45. /package/dist/{783.bundle.11d774eb13ffc74cdca5.js → 783.bundle.f4f09b94ebe4d1a466b1.js} +0 -0
  46. /package/dist/{633.css → 998.css} +0 -0
@@ -975,7 +975,7 @@ const CursorNames = [...svgCursorNames, ...standardCursorNames];
975
975
 
976
976
  /***/ }),
977
977
 
978
- /***/ 2746:
978
+ /***/ 49574:
979
979
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
980
980
 
981
981
  // ESM COMPAT FLAG
@@ -995,6 +995,7 @@ __webpack_require__.d(__webpack_exports__, {
995
995
  drawPath: () => (/* reexport */ drawPath),
996
996
  drawPolyline: () => (/* reexport */ drawPolyline),
997
997
  drawRect: () => (/* reexport */ drawRect),
998
+ drawRectByCoordinates: () => (/* reexport */ drawRectByCoordinates),
998
999
  drawRedactionRect: () => (/* reexport */ drawRedactionRect),
999
1000
  drawTextBox: () => (/* reexport */ drawingSvg_drawTextBox),
1000
1001
  setAttributesIfNecessary: () => (/* reexport */ drawingSvg_setAttributesIfNecessary),
@@ -1514,11 +1515,11 @@ function drawLinkedTextBox(svgDrawingHelper, annotationUID, textBoxUID, textLine
1514
1515
  }
1515
1516
  /* harmony default export */ const drawingSvg_drawLinkedTextBox = (drawLinkedTextBox);
1516
1517
 
1517
- ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRect.js
1518
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRectByCoordinates.js
1518
1519
 
1519
1520
 
1520
1521
 
1521
- function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, options = {}, dataId = '') {
1522
+ function drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, options = {}, dataId = '') {
1522
1523
  const { color, width: _width, lineWidth, lineDash, } = Object.assign({
1523
1524
  color: 'rgb(0, 255, 0)',
1524
1525
  width: '2',
@@ -1529,16 +1530,28 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
1529
1530
  const svgns = 'http://www.w3.org/2000/svg';
1530
1531
  const svgNodeHash = drawingSvg_getHash(annotationUID, 'rect', rectangleUID);
1531
1532
  const existingRect = svgDrawingHelper.getSvgNode(svgNodeHash);
1532
- const tlhc = [Math.min(start[0], end[0]), Math.min(start[1], end[1])];
1533
- const width = Math.abs(start[0] - end[0]);
1534
- const height = Math.abs(start[1] - end[1]);
1533
+ const [topLeft, topRight, bottomLeft, bottomRight] = canvasCoordinates;
1534
+ const width = Math.hypot(topLeft[0] - topRight[0], topLeft[1] - topRight[1]);
1535
+ const height = Math.hypot(topLeft[0] - bottomLeft[0], topLeft[1] - bottomLeft[1]);
1536
+ const center = [
1537
+ (bottomRight[0] + topLeft[0]) / 2,
1538
+ (bottomRight[1] + topLeft[1]) / 2,
1539
+ ];
1540
+ const leftEdgeCenter = [
1541
+ (bottomLeft[0] + topLeft[0]) / 2,
1542
+ (bottomLeft[1] + topLeft[1]) / 2,
1543
+ ];
1544
+ const angle = (Math.atan2(center[1] - leftEdgeCenter[1], center[0] - leftEdgeCenter[0]) *
1545
+ 180) /
1546
+ Math.PI;
1535
1547
  const attributes = {
1536
- x: `${tlhc[0]}`,
1537
- y: `${tlhc[1]}`,
1548
+ x: `${center[0] - width / 2}`,
1549
+ y: `${center[1] - height / 2}`,
1538
1550
  width: `${width}`,
1539
1551
  height: `${height}`,
1540
1552
  stroke: color,
1541
1553
  fill: 'transparent',
1554
+ transform: `rotate(${angle} ${center[0]} ${center[1]})`,
1542
1555
  'stroke-width': strokeWidth,
1543
1556
  'stroke-dasharray': lineDash,
1544
1557
  };
@@ -1556,6 +1569,16 @@ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, opt
1556
1569
  }
1557
1570
  }
1558
1571
 
1572
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawRect.js
1573
+
1574
+ function drawRect(svgDrawingHelper, annotationUID, rectangleUID, start, end, options = {}, dataId = '') {
1575
+ const topLeft = [start[0], start[1]];
1576
+ const topRight = [end[0], start[1]];
1577
+ const bottomLeft = [start[0], end[1]];
1578
+ const bottomRight = [end[0], end[1]];
1579
+ drawRectByCoordinates(svgDrawingHelper, annotationUID, rectangleUID, [topLeft, topRight, bottomLeft, bottomRight], options, dataId);
1580
+ }
1581
+
1559
1582
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/drawArrow.js
1560
1583
 
1561
1584
  function drawArrow(svgDrawingHelper, annotationUID, arrowUID, start, end, options = {}) {
@@ -1661,6 +1684,7 @@ function drawRedactionRect(svgDrawingHelper, annotationUID, rectangleUID, start,
1661
1684
 
1662
1685
 
1663
1686
 
1687
+
1664
1688
  /***/ }),
1665
1689
 
1666
1690
  /***/ 42111:
@@ -1891,7 +1915,7 @@ var WorkerTypes_ChangeTypes;
1891
1915
 
1892
1916
  /***/ }),
1893
1917
 
1894
- /***/ 44926:
1918
+ /***/ 94101:
1895
1919
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1896
1920
 
1897
1921
 
@@ -1899,6 +1923,7 @@ var WorkerTypes_ChangeTypes;
1899
1923
  __webpack_require__.d(__webpack_exports__, {
1900
1924
  dj: () => (/* reexport */ annotationInterpolationEventDispatcher),
1901
1925
  aB: () => (/* reexport */ cameraModifiedEventDispatcher),
1926
+ we: () => (/* reexport */ cameraResetEventDispatcher),
1902
1927
  In: () => (/* reexport */ imageRenderedEventDispatcher),
1903
1928
  z5: () => (/* reexport */ imageSpacingCalibratedEventDispatcher),
1904
1929
  V$: () => (/* reexport */ eventDispatchers_keyboardToolEventDispatcher),
@@ -2086,6 +2111,34 @@ const annotationInterpolationEventDispatcher_disable = function () {
2086
2111
  disable: annotationInterpolationEventDispatcher_disable,
2087
2112
  });
2088
2113
 
2114
+ ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/cameraResetEventDispatcher.js
2115
+
2116
+
2117
+
2118
+ const { Active: cameraResetEventDispatcher_Active, Passive: cameraResetEventDispatcher_Passive, Enabled: cameraResetEventDispatcher_Enabled } = enums.ToolModes;
2119
+ const onCameraReset = function (evt) {
2120
+ const enabledTools = (0,getToolsWithModesForMouseEvent/* default */.A)(evt, [
2121
+ cameraResetEventDispatcher_Active,
2122
+ cameraResetEventDispatcher_Passive,
2123
+ cameraResetEventDispatcher_Enabled,
2124
+ ]);
2125
+ enabledTools.forEach((tool) => {
2126
+ if (tool.onResetCamera) {
2127
+ tool.onResetCamera(evt);
2128
+ }
2129
+ });
2130
+ };
2131
+ const cameraResetEventDispatcher_enable = function (element) {
2132
+ element.addEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
2133
+ };
2134
+ const cameraResetEventDispatcher_disable = function (element) {
2135
+ element.removeEventListener(esm.Enums.Events.CAMERA_RESET, onCameraReset);
2136
+ };
2137
+ /* harmony default export */ const cameraResetEventDispatcher = ({
2138
+ enable: cameraResetEventDispatcher_enable,
2139
+ disable: cameraResetEventDispatcher_disable,
2140
+ });
2141
+
2089
2142
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js
2090
2143
 
2091
2144
 
@@ -2097,6 +2150,7 @@ const annotationInterpolationEventDispatcher_disable = function () {
2097
2150
 
2098
2151
 
2099
2152
 
2153
+
2100
2154
  /***/ }),
2101
2155
 
2102
2156
  /***/ 90202:
@@ -2111,7 +2165,7 @@ const annotationInterpolationEventDispatcher_disable = function () {
2111
2165
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(74119);
2112
2166
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(90252);
2113
2167
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
2114
- /* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75534);
2168
+ /* harmony import */ var _utilities_contours__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(75908);
2115
2169
  /* harmony import */ var _utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7259);
2116
2170
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
2117
2171
  /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81848);
@@ -2214,12 +2268,14 @@ function findIntersectingContour(viewport, sourcePolyline, contourSegmentationAn
2214
2268
  function createPolylineHole(viewport, targetAnnotation, holeAnnotation) {
2215
2269
  const { windingDirection: targetWindingDirection } = targetAnnotation.data.contour;
2216
2270
  const { windingDirection: holeWindingDirection } = holeAnnotation.data.contour;
2217
- if (targetWindingDirection === holeWindingDirection) {
2218
- holeAnnotation.data.contour.polyline.reverse();
2219
- holeAnnotation.data.contour.windingDirection = targetWindingDirection * -1;
2220
- }
2221
2271
  (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__.addChildAnnotation)(targetAnnotation, holeAnnotation);
2222
2272
  _utilities_contourSegmentation__WEBPACK_IMPORTED_MODULE_6__.removeContourSegmentationAnnotation(holeAnnotation);
2273
+ const { contour: holeContour } = holeAnnotation.data;
2274
+ const holePolyline = convertContourPolylineToCanvasSpace(holeContour.polyline, viewport);
2275
+ _utilities_contours__WEBPACK_IMPORTED_MODULE_5__.updateContourPolyline(holeAnnotation, {
2276
+ points: holePolyline,
2277
+ closed: holeContour.closed,
2278
+ }, viewport);
2223
2279
  const { element } = viewport;
2224
2280
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
2225
2281
  const { renderingEngine } = enabledElement;
@@ -2716,7 +2772,7 @@ function _imageChangeEventListener(evt) {
2716
2772
  imageActor.getMapper().setInputData(imageData);
2717
2773
  },
2718
2774
  },
2719
- ], true, false);
2775
+ ]);
2720
2776
  (0,triggerSegmentationRender/* default */.Ay)(toolGroup.id);
2721
2777
  return;
2722
2778
  }
@@ -2875,6 +2931,7 @@ __webpack_require__.r(__webpack_exports__);
2875
2931
  /* harmony export */ ReferenceLines: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.LL),
2876
2932
  /* harmony export */ ReferenceLinesTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.X8),
2877
2933
  /* harmony export */ ScaleOverlayTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.FE),
2934
+ /* harmony export */ SculptorTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.N),
2878
2935
  /* harmony export */ SegmentSelectTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.IX),
2879
2936
  /* harmony export */ SegmentationDisplayTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.t0),
2880
2937
  /* harmony export */ SegmentationIntersectionTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.cN),
@@ -2891,6 +2948,7 @@ __webpack_require__.r(__webpack_exports__);
2891
2948
  /* harmony export */ UltrasoundDirectionalTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.oi),
2892
2949
  /* harmony export */ VideoRedactionTool: () => (/* reexport safe */ _tools_annotation_VideoRedactionTool__WEBPACK_IMPORTED_MODULE_11__.A),
2893
2950
  /* harmony export */ VolumeRotateMouseWheelTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.Y1),
2951
+ /* harmony export */ WindowLevelRegionTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.TG),
2894
2952
  /* harmony export */ WindowLevelTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.Du),
2895
2953
  /* harmony export */ ZoomTool: () => (/* reexport safe */ _tools__WEBPACK_IMPORTED_MODULE_10__.OQ),
2896
2954
  /* harmony export */ addTool: () => (/* reexport safe */ _store__WEBPACK_IMPORTED_MODULE_1__.Gx),
@@ -2910,7 +2968,7 @@ __webpack_require__.r(__webpack_exports__);
2910
2968
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61738);
2911
2969
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55965);
2912
2970
  /* harmony import */ var _synchronizers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42375);
2913
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
2971
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
2914
2972
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(74119);
2915
2973
  /* harmony import */ var _cursors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32916);
2916
2974
  /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40969);
@@ -2951,7 +3009,7 @@ __webpack_require__.r(__webpack_exports__);
2951
3009
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
2952
3010
  /* harmony import */ var _store_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55588);
2953
3011
  /* harmony import */ var _eventListeners__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60878);
2954
- /* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44926);
3012
+ /* harmony import */ var _eventDispatchers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94101);
2955
3013
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(52610);
2956
3014
 
2957
3015
 
@@ -3118,6 +3176,8 @@ class AnnotationGroup {
3118
3176
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
3119
3177
  /* harmony import */ var _annotationLocking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48428);
3120
3178
  /* harmony import */ var _annotationVisibility__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21009);
3179
+ /* harmony import */ var _utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99595);
3180
+
3121
3181
 
3122
3182
 
3123
3183
 
@@ -3214,6 +3274,8 @@ class FrameOfReferenceSpecificAnnotationManager {
3214
3274
  toolSpecificAnnotations.push(annotation);
3215
3275
  (0,_annotationLocking__WEBPACK_IMPORTED_MODULE_2__.checkAndDefineIsLockedProperty)(annotation);
3216
3276
  (0,_annotationVisibility__WEBPACK_IMPORTED_MODULE_3__.checkAndDefineIsVisibleProperty)(annotation);
3277
+ (0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineTextBoxProperty */ .Q)(annotation);
3278
+ (0,_utilities_defineProperties__WEBPACK_IMPORTED_MODULE_4__/* .checkAndDefineCachedStatsProperty */ .d)(annotation);
3217
3279
  };
3218
3280
  this.removeAnnotation = (annotationUID) => {
3219
3281
  const { annotations } = this;
@@ -7010,8 +7072,8 @@ function removeTool(ToolClass) {
7010
7072
 
7011
7073
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventListeners/index.js + 17 modules
7012
7074
  var eventListeners = __webpack_require__(60878);
7013
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js + 7 modules
7014
- var eventDispatchers = __webpack_require__(44926);
7075
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/eventDispatchers/index.js + 8 modules
7076
+ var eventDispatchers = __webpack_require__(94101);
7015
7077
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/triggerAnnotationRender.js
7016
7078
  var triggerAnnotationRender = __webpack_require__(6805);
7017
7079
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/store/addEnabledElement.js
@@ -7033,6 +7095,7 @@ function addEnabledElement(evt) {
7033
7095
  eventDispatchers/* imageRenderedEventDispatcher */.In.enable(element);
7034
7096
  eventDispatchers/* cameraModifiedEventDispatcher */.aB.enable(element);
7035
7097
  eventDispatchers/* imageSpacingCalibratedEventDispatcher */.z5.enable(element);
7098
+ eventDispatchers/* cameraResetEventDispatcher */.we.enable(element);
7036
7099
  eventDispatchers/* mouseToolEventDispatcher */.n6.enable(element);
7037
7100
  eventDispatchers/* keyboardToolEventDispatcher */.V$.enable(element);
7038
7101
  eventDispatchers/* touchToolEventDispatcher */.$m.enable(element);
@@ -7123,6 +7186,7 @@ function removeEnabledElement(elementDisabledEvt) {
7123
7186
  eventDispatchers/* imageRenderedEventDispatcher */.In.disable(element);
7124
7187
  eventDispatchers/* cameraModifiedEventDispatcher */.aB.disable(element);
7125
7188
  eventDispatchers/* imageSpacingCalibratedEventDispatcher */.z5.disable(element);
7189
+ eventDispatchers/* cameraResetEventDispatcher */.we.disable(element);
7126
7190
  eventDispatchers/* mouseToolEventDispatcher */.n6.disable(element);
7127
7191
  eventDispatchers/* keyboardToolEventDispatcher */.V$.disable(element);
7128
7192
  eventDispatchers/* touchToolEventDispatcher */.$m.disable(element);
@@ -7337,7 +7401,7 @@ function presentationViewSyncCallback(_synchronizerInstance, sourceViewport, tar
7337
7401
  const tViewport = renderingEngine.getViewport(targetViewport.viewportId);
7338
7402
  const sViewport = renderingEngine.getViewport(sourceViewport.viewportId);
7339
7403
  const presentationView = sViewport.getViewPresentation(options);
7340
- tViewport.setView(null, presentationView);
7404
+ tViewport.setViewPresentation(presentationView);
7341
7405
  tViewport.render();
7342
7406
  }
7343
7407
 
@@ -7579,7 +7643,7 @@ const createStackImageSynchronizer = createImageSliceSynchronizer;
7579
7643
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48428);
7580
7644
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21009);
7581
7645
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
7582
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
7646
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
7583
7647
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
7584
7648
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
7585
7649
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
@@ -8070,10 +8134,10 @@ class AnnotationEraserTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseToo
8070
8134
  continue;
8071
8135
  }
8072
8136
  const annotations = (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__.getAnnotations)(toolName, element);
8073
- if (!annotations) {
8137
+ if (!annotations.length) {
8074
8138
  continue;
8075
8139
  }
8076
- const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations);
8140
+ const interactableAnnotations = toolInstance.filterInteractableAnnotationsForElement(element, annotations) || [];
8077
8141
  for (const annotation of interactableAnnotations) {
8078
8142
  if (toolInstance.isPointNearTool(element, annotation, currentPoints.canvas, 10, interactionType)) {
8079
8143
  annotationsToRemove.push(annotation.annotationUID);
@@ -8107,7 +8171,7 @@ AnnotationEraserTool.toolName = 'Eraser';
8107
8171
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92136);
8108
8172
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
8109
8173
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38296);
8110
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2746);
8174
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(49574);
8111
8175
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(61738);
8112
8176
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84901);
8113
8177
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(90252);
@@ -8157,7 +8221,12 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
8157
8221
  supportedInteractionTypes: ['Mouse'],
8158
8222
  configuration: {
8159
8223
  shadow: true,
8160
- viewportIndicators: true,
8224
+ viewportIndicators: false,
8225
+ viewportIndicatorsConfig: {
8226
+ radius: 5,
8227
+ x: null,
8228
+ y: null,
8229
+ },
8161
8230
  autoPan: {
8162
8231
  enabled: false,
8163
8232
  panSize: 10,
@@ -8221,12 +8290,20 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
8221
8290
  viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
8222
8291
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_4__.getEnabledElementByIds)(viewportId, renderingEngineId);
8223
8292
  const { viewport } = enabledElement;
8293
+ const resetPan = true;
8294
+ const resetZoom = true;
8295
+ const resetToCenter = true;
8296
+ const resetRotation = true;
8297
+ const supressEvents = true;
8298
+ viewport.resetCamera(resetPan, resetZoom, resetToCenter, resetRotation, supressEvents);
8299
+ viewport.resetSlabThickness();
8224
8300
  const { element } = viewport;
8225
8301
  let annotations = this._getAnnotations(enabledElement);
8226
8302
  annotations = this.filterInteractableAnnotationsForElement(element, annotations);
8227
8303
  if (annotations.length) {
8228
8304
  (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_6__.removeAnnotation)(annotations[0].annotationUID);
8229
8305
  }
8306
+ viewport.render();
8230
8307
  });
8231
8308
  this.computeToolCenter(viewportsInfo);
8232
8309
  };
@@ -8364,6 +8441,9 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
8364
8441
  const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_10__.getViewportIdsWithToolToRender)(element, this.getToolName(), requireSameOrientation);
8365
8442
  (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
8366
8443
  };
8444
+ this.onResetCamera = (evt) => {
8445
+ this.resetCrosshairs();
8446
+ };
8367
8447
  this.mouseMoveCallback = (evt, filteredToolAnnotations) => {
8368
8448
  const { element, currentPoints } = evt.detail;
8369
8449
  const canvasCoords = currentPoints.canvas;
@@ -8745,12 +8825,16 @@ class CrosshairsTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationToo
8745
8825
  renderStatus = true;
8746
8826
  data.handles.rotationPoints = newRtpoints;
8747
8827
  data.handles.slabThicknessPoints = newStpoints;
8828
+ debugger;
8748
8829
  if (this.configuration.viewportIndicators) {
8830
+ const { viewportIndicatorsConfig } = this.configuration;
8831
+ const xOffset = viewportIndicatorsConfig?.xOffset || 0.95;
8832
+ const yOffset = viewportIndicatorsConfig?.yOffset || 0.05;
8749
8833
  const referenceColorCoordinates = [
8750
- clientWidth * 0.95,
8751
- clientHeight * 0.05,
8834
+ clientWidth * xOffset,
8835
+ clientHeight * yOffset,
8752
8836
  ];
8753
- const circleRadius = canvasDiagonalLength * 0.01;
8837
+ const circleRadius = viewportIndicatorsConfig?.circleRadius || canvasDiagonalLength * 0.01;
8754
8838
  const circleUID = '0';
8755
8839
  (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_7__.drawCircle)(svgDrawingHelper, annotationUID, circleUID, referenceColorCoordinates, circleRadius, { color, fill: color });
8756
8840
  }
@@ -9823,7 +9907,7 @@ MagnifyTool.toolName = 'Magnify';
9823
9907
  /* harmony export */ });
9824
9908
  /* harmony import */ var _kitware_vtk_js_Interaction_Widgets_OrientationMarkerWidget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7914);
9825
9909
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_AnnotatedCubeActor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50638);
9826
- /* harmony import */ var _kitware_vtk_js_Rendering_Core_AxesActor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65373);
9910
+ /* harmony import */ var _kitware_vtk_js_Rendering_Core_AxesActor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43387);
9827
9911
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_Actor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48987);
9828
9912
  /* harmony import */ var _kitware_vtk_js_Rendering_Core_Mapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22745);
9829
9913
  /* harmony import */ var _kitware_vtk_js_IO_XML_XMLPolyDataReader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88099);
@@ -9955,7 +10039,11 @@ class OrientationMarkerTool extends _base__WEBPACK_IMPORTED_MODULE_7__/* .BaseTo
9955
10039
  element.addEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, this.initViewports.bind(this));
9956
10040
  const resizeObserver = new ResizeObserver(() => {
9957
10041
  setTimeout(() => {
9958
- const { viewport } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.getEnabledElementByIds)(viewportId, renderingEngineId);
10042
+ const element = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_8__.getEnabledElementByIds)(viewportId, renderingEngineId);
10043
+ if (!element) {
10044
+ return;
10045
+ }
10046
+ const { viewport } = element;
9959
10047
  this.resize(viewportId);
9960
10048
  viewport.render();
9961
10049
  }, 100);
@@ -10120,7 +10208,7 @@ OrientationMarkerTool.toolName = 'OrientationMarker';
10120
10208
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
10121
10209
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
10122
10210
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
10123
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
10211
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
10124
10212
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
10125
10213
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
10126
10214
 
@@ -10415,7 +10503,7 @@ PlanarRotateTool.toolName = 'PlanarRotate';
10415
10503
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
10416
10504
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
10417
10505
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21009);
10418
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
10506
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
10419
10507
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
10420
10508
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
10421
10509
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44753);
@@ -10745,7 +10833,7 @@ ReferenceCursors.toolName = 'ReferenceCursors';
10745
10833
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
10746
10834
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
10747
10835
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
10748
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
10836
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
10749
10837
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
10750
10838
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23072);
10751
10839
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28062);
@@ -10986,7 +11074,7 @@ ReferenceLines.toolName = 'ReferenceLines';
10986
11074
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
10987
11075
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92136);
10988
11076
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
10989
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2746);
11077
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
10990
11078
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52610);
10991
11079
 
10992
11080
 
@@ -11288,8 +11376,8 @@ class ScaleOverlayTool extends _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MOD
11288
11376
  viewportId: enabledElement.viewport.id,
11289
11377
  };
11290
11378
  const canvasSize = {
11291
- width: canvas.width,
11292
- height: canvas.height,
11379
+ width: canvas.width / window.devicePixelRatio || 1,
11380
+ height: canvas.height / window.devicePixelRatio || 1,
11293
11381
  };
11294
11382
  const topLeft = annotation.data.handles.points[0];
11295
11383
  const topRight = annotation.data.handles.points[1];
@@ -11384,6 +11472,318 @@ ScaleOverlayTool.toolName = 'ScaleOverlay';
11384
11472
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ScaleOverlayTool);
11385
11473
 
11386
11474
 
11475
+ /***/ }),
11476
+
11477
+ /***/ 16151:
11478
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
11479
+
11480
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11481
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
11482
+ /* harmony export */ });
11483
+ /* unused harmony export contourIndex */
11484
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
11485
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(96214);
11486
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95778);
11487
+ /* harmony import */ var _utilities_math__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73047);
11488
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
11489
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61738);
11490
+ /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23072);
11491
+ /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40233);
11492
+ /* harmony import */ var _stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(28664);
11493
+ /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
11494
+ /* harmony import */ var _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(16639);
11495
+ /* harmony import */ var _distancePointToContour__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7783);
11496
+
11497
+
11498
+
11499
+
11500
+
11501
+
11502
+
11503
+
11504
+
11505
+
11506
+
11507
+
11508
+ class SculptorTool extends _base__WEBPACK_IMPORTED_MODULE_1__/* .BaseTool */ .oS {
11509
+ constructor(toolProps = {}, defaultToolProps = {
11510
+ supportedInteractionTypes: ['Mouse', 'Touch'],
11511
+ configuration: {
11512
+ minSpacing: 1,
11513
+ referencedToolNames: [
11514
+ 'PlanarFreehandROI',
11515
+ 'PlanarFreehandContourSegmentationTool',
11516
+ ],
11517
+ toolShape: 'circle',
11518
+ referencedToolName: 'PlanarFreehandROI',
11519
+ },
11520
+ }) {
11521
+ super(toolProps, defaultToolProps);
11522
+ this.registeredShapes = new Map();
11523
+ this.isActive = false;
11524
+ this.commonData = {
11525
+ activeAnnotationUID: null,
11526
+ viewportIdsToRender: [],
11527
+ isEditingOpenContour: false,
11528
+ canvasLocation: undefined,
11529
+ };
11530
+ this.preMouseDownCallback = (evt) => {
11531
+ const eventData = evt.detail;
11532
+ const element = eventData.element;
11533
+ this.configureToolSize(evt);
11534
+ this.selectFreehandTool(eventData);
11535
+ if (this.commonData.activeAnnotationUID === null) {
11536
+ return;
11537
+ }
11538
+ this.isActive = true;
11539
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.hideElementCursor)(element);
11540
+ this.activateModify(element);
11541
+ return true;
11542
+ };
11543
+ this.mouseMoveCallback = (evt) => {
11544
+ if (this.mode === _enums__WEBPACK_IMPORTED_MODULE_4__.ToolModes.Active) {
11545
+ this.configureToolSize(evt);
11546
+ this.updateCursor(evt);
11547
+ }
11548
+ else {
11549
+ this.commonData.canvasLocation = undefined;
11550
+ }
11551
+ };
11552
+ this.endCallback = (evt) => {
11553
+ const eventData = evt.detail;
11554
+ const { element } = eventData;
11555
+ const config = this.configuration;
11556
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11557
+ this.isActive = false;
11558
+ this.deactivateModify(element);
11559
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__.resetElementCursor)(element);
11560
+ const { renderingEngineId, viewportId } = enabledElement;
11561
+ const toolGroup = _store__WEBPACK_IMPORTED_MODULE_5__/* .ToolGroupManager.getToolGroupForViewport */ .dU.getToolGroupForViewport(viewportId, renderingEngineId);
11562
+ const toolInstance = toolGroup.getToolInstance(config.referencedToolName);
11563
+ const annotations = this.filterSculptableAnnotationsForElement(element);
11564
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
11565
+ if (toolInstance.configuration.calculateStats) {
11566
+ activeAnnotation.invalidated = true;
11567
+ }
11568
+ (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__/* .triggerAnnotationModified */ .XF)(activeAnnotation, element);
11569
+ };
11570
+ this.dragCallback = (evt) => {
11571
+ const eventData = evt.detail;
11572
+ const element = eventData.element;
11573
+ this.updateCursor(evt);
11574
+ const annotations = this.filterSculptableAnnotationsForElement(element);
11575
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
11576
+ if (!annotations?.length || !this.isActive) {
11577
+ return;
11578
+ }
11579
+ const points = activeAnnotation.data.contour.polyline;
11580
+ this.sculpt(eventData, points);
11581
+ };
11582
+ this.registerShapes(_SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A.shapeName, _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A);
11583
+ this.setToolShape(this.configuration.toolShape);
11584
+ }
11585
+ registerShapes(shapeName, shapeClass) {
11586
+ const shape = new shapeClass();
11587
+ this.registeredShapes.set(shapeName, shape);
11588
+ }
11589
+ sculpt(eventData, points) {
11590
+ const config = this.configuration;
11591
+ const element = eventData.element;
11592
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11593
+ const { viewport } = enabledElement;
11594
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
11595
+ this.sculptData = {
11596
+ mousePoint: eventData.currentPoints.world,
11597
+ mouseCanvasPoint: eventData.currentPoints.canvas,
11598
+ points,
11599
+ maxSpacing: cursorShape.getMaxSpacing(config.minSpacing),
11600
+ element: element,
11601
+ };
11602
+ const pushedHandles = cursorShape.pushHandles(viewport, this.sculptData);
11603
+ if (pushedHandles.first !== undefined) {
11604
+ this.insertNewHandles(pushedHandles);
11605
+ }
11606
+ }
11607
+ interpolatePointsWithinMaxSpacing(i, points, indicesToInsertAfter, maxSpacing) {
11608
+ const { element } = this.sculptData;
11609
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11610
+ const { viewport } = enabledElement;
11611
+ const nextHandleIndex = contourIndex(i + 1, points.length);
11612
+ const currentCanvasPoint = viewport.worldToCanvas(points[i]);
11613
+ const nextCanvasPoint = viewport.worldToCanvas(points[nextHandleIndex]);
11614
+ const distanceToNextHandle = _utilities_math__WEBPACK_IMPORTED_MODULE_3__.point.distanceToPoint(currentCanvasPoint, nextCanvasPoint);
11615
+ if (distanceToNextHandle > maxSpacing) {
11616
+ indicesToInsertAfter.push(i);
11617
+ }
11618
+ }
11619
+ updateCursor(evt) {
11620
+ const eventData = evt.detail;
11621
+ const element = eventData.element;
11622
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11623
+ const { renderingEngine, viewport } = enabledElement;
11624
+ this.commonData.viewportIdsToRender = [viewport.id];
11625
+ const annotations = this.filterSculptableAnnotationsForElement(element);
11626
+ if (!annotations?.length) {
11627
+ return;
11628
+ }
11629
+ const activeAnnotation = annotations.find((annotation) => annotation.annotationUID === this.commonData.activeAnnotationUID);
11630
+ this.commonData.canvasLocation = eventData.currentPoints.canvas;
11631
+ if (this.isActive) {
11632
+ activeAnnotation.highlighted = true;
11633
+ }
11634
+ else {
11635
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
11636
+ const canvasCoords = eventData.currentPoints.canvas;
11637
+ cursorShape.updateToolSize(canvasCoords, viewport, activeAnnotation);
11638
+ }
11639
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_6__/* .triggerAnnotationRenderForViewportIds */ .t)(renderingEngine, this.commonData.viewportIdsToRender);
11640
+ }
11641
+ filterSculptableAnnotationsForElement(element) {
11642
+ const config = this.configuration;
11643
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11644
+ const { renderingEngineId, viewportId } = enabledElement;
11645
+ const sculptableAnnotations = [];
11646
+ const toolGroup = _store__WEBPACK_IMPORTED_MODULE_5__/* .ToolGroupManager.getToolGroupForViewport */ .dU.getToolGroupForViewport(viewportId, renderingEngineId);
11647
+ const toolInstance = toolGroup.getToolInstance(config.referencedToolName);
11648
+ config.referencedToolNames.forEach((referencedToolName) => {
11649
+ const annotations = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getAnnotations */ .Rh)(referencedToolName, element);
11650
+ if (annotations) {
11651
+ sculptableAnnotations.push(...annotations);
11652
+ }
11653
+ });
11654
+ return toolInstance.filterInteractableAnnotationsForElement(element, sculptableAnnotations);
11655
+ }
11656
+ configureToolSize(evt) {
11657
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
11658
+ cursorShape.configureToolSize(evt);
11659
+ }
11660
+ insertNewHandles(pushedHandles) {
11661
+ const indicesToInsertAfter = this.findNewHandleIndices(pushedHandles);
11662
+ let newIndexModifier = 0;
11663
+ for (let i = 0; i < indicesToInsertAfter?.length; i++) {
11664
+ const insertIndex = indicesToInsertAfter[i] + 1 + newIndexModifier;
11665
+ this.insertHandleRadially(insertIndex);
11666
+ newIndexModifier++;
11667
+ }
11668
+ }
11669
+ findNewHandleIndices(pushedHandles) {
11670
+ const { points, maxSpacing } = this.sculptData;
11671
+ const indicesToInsertAfter = [];
11672
+ for (let i = pushedHandles.first; i <= pushedHandles.last; i++) {
11673
+ this.interpolatePointsWithinMaxSpacing(i, points, indicesToInsertAfter, maxSpacing);
11674
+ }
11675
+ return indicesToInsertAfter;
11676
+ }
11677
+ insertHandleRadially(insertIndex) {
11678
+ const { points } = this.sculptData;
11679
+ if (insertIndex > points.length - 1 &&
11680
+ this.commonData.isEditingOpenContour) {
11681
+ return;
11682
+ }
11683
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
11684
+ const previousIndex = insertIndex - 1;
11685
+ const nextIndex = contourIndex(insertIndex, points.length);
11686
+ const insertPosition = cursorShape.getInsertPosition(previousIndex, nextIndex, this.sculptData);
11687
+ const handleData = insertPosition;
11688
+ points.splice(insertIndex, 0, handleData);
11689
+ }
11690
+ selectFreehandTool(eventData) {
11691
+ const closestAnnotationUID = this.getClosestFreehandToolOnElement(eventData);
11692
+ if (closestAnnotationUID === undefined) {
11693
+ return;
11694
+ }
11695
+ this.commonData.activeAnnotationUID = closestAnnotationUID;
11696
+ }
11697
+ getClosestFreehandToolOnElement(eventData) {
11698
+ const { element } = eventData;
11699
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
11700
+ const { viewport } = enabledElement;
11701
+ const config = this.configuration;
11702
+ const annotations = this.filterSculptableAnnotationsForElement(element);
11703
+ if (!annotations?.length) {
11704
+ return;
11705
+ }
11706
+ const canvasPoints = eventData.currentPoints.canvas;
11707
+ const closest = {
11708
+ distance: Infinity,
11709
+ toolIndex: undefined,
11710
+ annotationUID: undefined,
11711
+ };
11712
+ for (let i = 0; i < annotations?.length; i++) {
11713
+ if (annotations[i].isLocked || !annotations[i].isVisible) {
11714
+ continue;
11715
+ }
11716
+ const distanceFromTool = (0,_distancePointToContour__WEBPACK_IMPORTED_MODULE_11__/* .distancePointToContour */ .X)(viewport, annotations[i], canvasPoints);
11717
+ if (distanceFromTool === -1) {
11718
+ continue;
11719
+ }
11720
+ if (distanceFromTool < closest.distance) {
11721
+ closest.distance = distanceFromTool;
11722
+ closest.toolIndex = i;
11723
+ closest.annotationUID = annotations[i].annotationUID;
11724
+ }
11725
+ }
11726
+ this.commonData.isEditingOpenContour =
11727
+ !annotations[closest.toolIndex].data.contour.closed;
11728
+ config.referencedToolName =
11729
+ annotations[closest.toolIndex].metadata.toolName;
11730
+ return closest.annotationUID;
11731
+ }
11732
+ activateModify(element) {
11733
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_UP, this.endCallback);
11734
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_CLICK, this.endCallback);
11735
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_DRAG, this.dragCallback);
11736
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_TAP, this.endCallback);
11737
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_END, this.endCallback);
11738
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_DRAG, this.dragCallback);
11739
+ }
11740
+ deactivateModify(element) {
11741
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_UP, this.endCallback);
11742
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_CLICK, this.endCallback);
11743
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.MOUSE_DRAG, this.dragCallback);
11744
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_TAP, this.endCallback);
11745
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_END, this.endCallback);
11746
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_4__.Events.TOUCH_DRAG, this.dragCallback);
11747
+ }
11748
+ setToolShape(toolShape) {
11749
+ this.selectedShape =
11750
+ this.registeredShapes.get(toolShape) ?? _SculptorTool_CircleSculptCursor__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .A.shapeName;
11751
+ }
11752
+ renderAnnotation(enabledElement, svgDrawingHelper) {
11753
+ const { viewport } = enabledElement;
11754
+ const { element } = viewport;
11755
+ const viewportIdsToRender = this.commonData.viewportIdsToRender;
11756
+ if (!this.commonData.canvasLocation ||
11757
+ this.mode !== _enums__WEBPACK_IMPORTED_MODULE_4__.ToolModes.Active ||
11758
+ !viewportIdsToRender.includes(viewport.id)) {
11759
+ return;
11760
+ }
11761
+ const annotations = this.filterSculptableAnnotationsForElement(element);
11762
+ if (!annotations?.length) {
11763
+ return;
11764
+ }
11765
+ const styleSpecifier = {
11766
+ toolGroupId: this.toolGroupId,
11767
+ toolName: this.getToolName(),
11768
+ viewportId: enabledElement.viewport.id,
11769
+ };
11770
+ let color = (0,_stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__/* .getStyleProperty */ .h)('color', styleSpecifier, _enums__WEBPACK_IMPORTED_MODULE_4__.AnnotationStyleStates.Default, this.mode);
11771
+ if (this.isActive) {
11772
+ color = (0,_stateManagement_annotation_config_helpers__WEBPACK_IMPORTED_MODULE_8__/* .getStyleProperty */ .h)('color', styleSpecifier, _enums__WEBPACK_IMPORTED_MODULE_4__.AnnotationStyleStates.Highlighted, this.mode);
11773
+ }
11774
+ const cursorShape = this.registeredShapes.get(this.selectedShape);
11775
+ cursorShape.renderShape(svgDrawingHelper, this.commonData.canvasLocation, {
11776
+ color,
11777
+ });
11778
+ }
11779
+ }
11780
+ const contourIndex = (i, length) => {
11781
+ return (i + length) % length;
11782
+ };
11783
+ SculptorTool.toolName = 'SculptorTool';
11784
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SculptorTool);
11785
+
11786
+
11387
11787
  /***/ }),
11388
11788
 
11389
11789
  /***/ 70494:
@@ -11394,7 +11794,7 @@ ScaleOverlayTool.toolName = 'ScaleOverlay';
11394
11794
  /* harmony export */ });
11395
11795
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
11396
11796
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38296);
11397
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2746);
11797
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
11398
11798
  /* harmony import */ var _store_ToolGroupManager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52610);
11399
11799
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
11400
11800
  /* harmony import */ var _base_AnnotationDisplayTool__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28062);
@@ -11947,6 +12347,250 @@ VolumeRotateMouseWheelTool.toolName = 'VolumeRotateMouseWheel';
11947
12347
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VolumeRotateMouseWheelTool);
11948
12348
 
11949
12349
 
12350
+ /***/ }),
12351
+
12352
+ /***/ 60747:
12353
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
12354
+
12355
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12356
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
12357
+ /* harmony export */ });
12358
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96214);
12359
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
12360
+ /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95778);
12361
+ /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
12362
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(49574);
12363
+ /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(61738);
12364
+ /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84901);
12365
+ /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
12366
+ /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40233);
12367
+ /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
12368
+ /* harmony import */ var _utilities_voi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14149);
12369
+ /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(74119);
12370
+
12371
+
12372
+
12373
+
12374
+
12375
+
12376
+
12377
+
12378
+
12379
+
12380
+
12381
+
12382
+ class WindowLevelRegionTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool */ .EC {
12383
+ constructor(toolProps = {}, defaultToolProps = {
12384
+ supportedInteractionTypes: ['Mouse', 'Touch'],
12385
+ configuration: {
12386
+ minWindowWidth: 10,
12387
+ },
12388
+ }) {
12389
+ super(toolProps, defaultToolProps);
12390
+ this.addNewAnnotation = (evt) => {
12391
+ const eventDetail = evt.detail;
12392
+ const { currentPoints, element } = eventDetail;
12393
+ const worldPos = currentPoints.world;
12394
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
12395
+ const { viewport, renderingEngine } = enabledElement;
12396
+ this.isDrawing = true;
12397
+ const camera = viewport.getCamera();
12398
+ const { viewPlaneNormal, viewUp } = camera;
12399
+ const referencedImageId = this.getReferencedImageId(viewport, worldPos, viewPlaneNormal, viewUp);
12400
+ const FrameOfReferenceUID = viewport.getFrameOfReferenceUID();
12401
+ const annotation = {
12402
+ invalidated: true,
12403
+ highlighted: true,
12404
+ metadata: {
12405
+ toolName: this.getToolName(),
12406
+ viewPlaneNormal: [...viewPlaneNormal],
12407
+ viewUp: [...viewUp],
12408
+ FrameOfReferenceUID,
12409
+ referencedImageId,
12410
+ },
12411
+ data: {
12412
+ handles: {
12413
+ points: [
12414
+ [...worldPos],
12415
+ [...worldPos],
12416
+ [...worldPos],
12417
+ [...worldPos],
12418
+ ],
12419
+ },
12420
+ cachedStats: {},
12421
+ },
12422
+ };
12423
+ (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .addAnnotation */ .lC)(annotation, element);
12424
+ const viewportIdsToRender = (0,_utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__.getViewportIdsWithToolToRender)(element, this.getToolName());
12425
+ this.editData = {
12426
+ annotation,
12427
+ viewportIdsToRender,
12428
+ };
12429
+ this._activateDraw(element);
12430
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.hideElementCursor)(element);
12431
+ evt.preventDefault();
12432
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
12433
+ return annotation;
12434
+ };
12435
+ this._endCallback = (evt) => {
12436
+ const eventDetail = evt.detail;
12437
+ const { element } = eventDetail;
12438
+ const { annotation, viewportIdsToRender } = this.editData;
12439
+ this._deactivateDraw(element);
12440
+ (0,_cursors_elementCursor__WEBPACK_IMPORTED_MODULE_8__.resetElementCursor)(element);
12441
+ const { renderingEngine } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
12442
+ this.editData = null;
12443
+ this.isDrawing = false;
12444
+ (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .removeAnnotation */ .O8)(annotation.annotationUID);
12445
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
12446
+ (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__/* .triggerAnnotationCompleted */ .dZ)(annotation);
12447
+ this.applyWindowLevelRegion(annotation, element);
12448
+ };
12449
+ this._dragCallback = (evt) => {
12450
+ this.isDrawing = true;
12451
+ const eventDetail = evt.detail;
12452
+ const { element } = eventDetail;
12453
+ const { annotation, viewportIdsToRender } = this.editData;
12454
+ const { data } = annotation;
12455
+ const { currentPoints } = eventDetail;
12456
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
12457
+ const { worldToCanvas, canvasToWorld } = enabledElement.viewport;
12458
+ const worldPos = currentPoints.world;
12459
+ const { points } = data.handles;
12460
+ const DEFAULT_HANDLE_INDEX = 3;
12461
+ points[DEFAULT_HANDLE_INDEX] = [...worldPos];
12462
+ const bottomLeftCanvas = worldToCanvas(points[0]);
12463
+ const topRightCanvas = worldToCanvas(points[3]);
12464
+ const bottomRightCanvas = [
12465
+ topRightCanvas[0],
12466
+ bottomLeftCanvas[1],
12467
+ ];
12468
+ const topLeftCanvas = [
12469
+ bottomLeftCanvas[0],
12470
+ topRightCanvas[1],
12471
+ ];
12472
+ const bottomRightWorld = canvasToWorld(bottomRightCanvas);
12473
+ const topLeftWorld = canvasToWorld(topLeftCanvas);
12474
+ points[1] = bottomRightWorld;
12475
+ points[2] = topLeftWorld;
12476
+ annotation.invalidated = true;
12477
+ const { renderingEngine } = enabledElement;
12478
+ (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(renderingEngine, viewportIdsToRender);
12479
+ };
12480
+ this._activateDraw = (element) => {
12481
+ _store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = true;
12482
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
12483
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
12484
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
12485
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
12486
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
12487
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
12488
+ element.addEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
12489
+ };
12490
+ this._deactivateDraw = (element) => {
12491
+ _store__WEBPACK_IMPORTED_MODULE_5__/* .state */ .wk.isInteractingWithTool = false;
12492
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_UP, this._endCallback);
12493
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_DRAG, this._dragCallback);
12494
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_MOVE, this._dragCallback);
12495
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.MOUSE_CLICK, this._endCallback);
12496
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_END, this._endCallback);
12497
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_DRAG, this._dragCallback);
12498
+ element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_6__.Events.TOUCH_TAP, this._endCallback);
12499
+ };
12500
+ this.renderAnnotation = (enabledElement, svgDrawingHelper) => {
12501
+ let renderStatus = false;
12502
+ const { viewport } = enabledElement;
12503
+ const { element } = viewport;
12504
+ let annotations = (0,_stateManagement__WEBPACK_IMPORTED_MODULE_2__/* .getAnnotations */ .Rh)(this.getToolName(), element);
12505
+ if (!annotations?.length) {
12506
+ return renderStatus;
12507
+ }
12508
+ annotations = this.filterInteractableAnnotationsForElement(element, annotations);
12509
+ if (!annotations?.length) {
12510
+ return renderStatus;
12511
+ }
12512
+ const styleSpecifier = {
12513
+ toolGroupId: this.toolGroupId,
12514
+ toolName: this.getToolName(),
12515
+ viewportId: enabledElement.viewport.id,
12516
+ };
12517
+ for (let i = 0; i < annotations.length; i++) {
12518
+ const annotation = annotations[i];
12519
+ const { annotationUID, data } = annotation;
12520
+ const { points } = data.handles;
12521
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
12522
+ styleSpecifier.annotationUID = annotationUID;
12523
+ const { color, lineWidth, lineDash } = this.getAnnotationStyle({
12524
+ annotation,
12525
+ styleSpecifier,
12526
+ });
12527
+ if (!viewport.getRenderingEngine()) {
12528
+ console.warn('Rendering Engine has been destroyed');
12529
+ return renderStatus;
12530
+ }
12531
+ const dataId = `${annotationUID}-rect`;
12532
+ const rectangleUID = '0';
12533
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_4__.drawRect)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates[0], canvasCoordinates[3], {
12534
+ color,
12535
+ lineDash,
12536
+ lineWidth,
12537
+ }, dataId);
12538
+ renderStatus = true;
12539
+ }
12540
+ return renderStatus;
12541
+ };
12542
+ this.applyWindowLevelRegion = (annotation, element) => {
12543
+ const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
12544
+ const { viewport } = enabledElement;
12545
+ const imageData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.extractWindowLevelRegionToolData(viewport);
12546
+ const { data } = annotation;
12547
+ const { points } = data.handles;
12548
+ const canvasCoordinates = points.map((p) => viewport.worldToCanvas(p));
12549
+ const startCanvas = canvasCoordinates[0];
12550
+ const endCanvas = canvasCoordinates[3];
12551
+ let left = Math.min(startCanvas[0], endCanvas[0]);
12552
+ let top = Math.min(startCanvas[1], endCanvas[1]);
12553
+ let width = Math.abs(startCanvas[0] - endCanvas[0]);
12554
+ let height = Math.abs(startCanvas[1] - endCanvas[1]);
12555
+ left = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(left, 0, imageData.width);
12556
+ top = (0,_utilities__WEBPACK_IMPORTED_MODULE_11__.clip)(top, 0, imageData.height);
12557
+ width = Math.floor(Math.min(width, Math.abs(imageData.width - left)));
12558
+ height = Math.floor(Math.min(height, Math.abs(imageData.height - top)));
12559
+ const pixelLuminanceData = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.getLuminanceFromRegion(imageData, Math.round(left), Math.round(top), width, height);
12560
+ const minMaxMean = _utilities_voi__WEBPACK_IMPORTED_MODULE_10__.windowLevel.calculateMinMaxMean(pixelLuminanceData, imageData.minPixelValue, imageData.maxPixelValue);
12561
+ if (this.configuration.minWindowWidth === undefined) {
12562
+ this.configuration.minWindowWidth = 10;
12563
+ }
12564
+ const windowWidth = Math.max(Math.abs(minMaxMean.max - minMaxMean.min), this.configuration.minWindowWidth);
12565
+ const windowCenter = minMaxMean.mean;
12566
+ const voiRange = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.utilities.windowLevel.toLowHighRange(windowWidth, windowCenter);
12567
+ viewport.setProperties({ voiRange });
12568
+ viewport.render();
12569
+ };
12570
+ this.cancel = () => {
12571
+ return null;
12572
+ };
12573
+ this.isPointNearTool = () => {
12574
+ return null;
12575
+ };
12576
+ this.toolSelectedCallback = () => {
12577
+ return null;
12578
+ };
12579
+ this.handleSelectedCallback = () => {
12580
+ return null;
12581
+ };
12582
+ this._activateModify = () => {
12583
+ return null;
12584
+ };
12585
+ this._deactivateModify = () => {
12586
+ return null;
12587
+ };
12588
+ }
12589
+ }
12590
+ WindowLevelRegionTool.toolName = 'WindowLevelRegion';
12591
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WindowLevelRegionTool);
12592
+
12593
+
11950
12594
  /***/ }),
11951
12595
 
11952
12596
  /***/ 455:
@@ -12364,7 +13008,7 @@ ZoomTool.toolName = 'Zoom';
12364
13008
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21954);
12365
13009
  /* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52475);
12366
13010
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(74119);
12367
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
13011
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
12368
13012
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
12369
13013
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(90252);
12370
13014
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(23072);
@@ -12420,6 +13064,7 @@ class AngleTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .AnnotationTool */
12420
13064
  viewUp: [...viewUp],
12421
13065
  FrameOfReferenceUID,
12422
13066
  referencedImageId,
13067
+ ...viewport.getViewReference({ points: [worldPos] }),
12423
13068
  },
12424
13069
  data: {
12425
13070
  handles: {
@@ -12835,7 +13480,7 @@ AngleTool.toolName = 'Angle';
12835
13480
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
12836
13481
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
12837
13482
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21954);
12838
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
13483
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
12839
13484
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
12840
13485
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
12841
13486
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(23072);
@@ -12887,6 +13532,7 @@ class ArrowAnnotateTool extends _base__WEBPACK_IMPORTED_MODULE_2__/* .Annotation
12887
13532
  viewUp: [...viewUp],
12888
13533
  FrameOfReferenceUID,
12889
13534
  referencedImageId,
13535
+ ...viewport.getViewReference({ points: [worldPos] }),
12890
13536
  },
12891
13537
  data: {
12892
13538
  text: '',
@@ -13284,7 +13930,7 @@ ArrowAnnotateTool.toolName = 'ArrowAnnotate';
13284
13930
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48428);
13285
13931
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
13286
13932
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
13287
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2746);
13933
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(49574);
13288
13934
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61738);
13289
13935
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(84901);
13290
13936
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
@@ -13958,6 +14604,7 @@ class BidirectionalTool extends _base__WEBPACK_IMPORTED_MODULE_4__/* .Annotation
13958
14604
  viewUp: [...viewUp],
13959
14605
  FrameOfReferenceUID,
13960
14606
  referencedImageId,
14607
+ ...viewport.getViewReference({ points: [worldPos] }),
13961
14608
  },
13962
14609
  data: {
13963
14610
  handles: {
@@ -14040,7 +14687,7 @@ BidirectionalTool.toolName = 'Bidirectional';
14040
14687
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
14041
14688
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
14042
14689
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
14043
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
14690
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
14044
14691
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
14045
14692
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
14046
14693
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -14110,6 +14757,7 @@ class CircleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationTool
14110
14757
  viewUp: [...viewUp],
14111
14758
  FrameOfReferenceUID,
14112
14759
  referencedImageId,
14760
+ ...viewport.getViewReference({ points: [worldPos] }),
14113
14761
  },
14114
14762
  data: {
14115
14763
  label: '',
@@ -14661,7 +15309,7 @@ CircleROITool.toolName = 'CircleROI';
14661
15309
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21954);
14662
15310
  /* harmony import */ var _utilities_math_angle_angleBetweenLines__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(52475);
14663
15311
  /* harmony import */ var _utilities_math_midPoint__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(76727);
14664
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2746);
15312
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
14665
15313
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
14666
15314
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
14667
15315
  /* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
@@ -14720,6 +15368,7 @@ class CobbAngleTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .AnnotationTool
14720
15368
  viewUp: [...viewUp],
14721
15369
  FrameOfReferenceUID,
14722
15370
  referencedImageId,
15371
+ ...viewport.getViewReference({ points: [worldPos] }),
14723
15372
  },
14724
15373
  data: {
14725
15374
  handles: {
@@ -15361,7 +16010,7 @@ CobbAngleTool.toolName = 'CobbAngle';
15361
16010
  /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
15362
16011
  /* harmony export */ });
15363
16012
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
15364
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2746);
16013
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49574);
15365
16014
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90252);
15366
16015
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40233);
15367
16016
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23072);
@@ -15521,7 +16170,7 @@ DragProbeTool.toolName = 'DragProbe';
15521
16170
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
15522
16171
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
15523
16172
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
15524
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
16173
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
15525
16174
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
15526
16175
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
15527
16176
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -15590,6 +16239,7 @@ class EllipticalROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .Annotation
15590
16239
  viewUp: [...viewUp],
15591
16240
  FrameOfReferenceUID,
15592
16241
  referencedImageId,
16242
+ ...viewport.getViewReference({ points: [worldPos] }),
15593
16243
  },
15594
16244
  data: {
15595
16245
  label: '',
@@ -16227,7 +16877,7 @@ EllipticalROITool.toolName = 'EllipticalROI';
16227
16877
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
16228
16878
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
16229
16879
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
16230
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
16880
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
16231
16881
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
16232
16882
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(90252);
16233
16883
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
@@ -16428,7 +17078,7 @@ KeyImageTool.toolName = 'KeyImage';
16428
17078
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
16429
17079
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(54177);
16430
17080
  /* harmony import */ var _utilities_math_line__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21954);
16431
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2746);
17081
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(49574);
16432
17082
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61738);
16433
17083
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(90252);
16434
17084
  /* harmony import */ var _utilities_drawing__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(10910);
@@ -16876,7 +17526,7 @@ LengthTool.toolName = 'Length';
16876
17526
  /* harmony import */ var _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1320);
16877
17527
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54177);
16878
17528
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
16879
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
17529
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
16880
17530
 
16881
17531
 
16882
17532
 
@@ -16929,7 +17579,7 @@ class LivewireContourSegmentationTool extends _LivewireContourTool__WEBPACK_IMPO
16929
17579
  }
16930
17580
  this.updateAnnotation(acceptedPath);
16931
17581
  this.scissors = null;
16932
- this.scissorsRight = null;
17582
+ this.scissorsNext = null;
16933
17583
  this.editData = null;
16934
17584
  annotation.data.handles.interpolationSources = null;
16935
17585
  if (repeatInterpolation) {
@@ -16979,7 +17629,7 @@ LivewireContourSegmentationTool.toolName = 'LivewireContourSegmentationTool';
16979
17629
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44753);
16980
17630
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(92136);
16981
17631
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
16982
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
17632
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
16983
17633
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
16984
17634
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
16985
17635
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
@@ -17274,7 +17924,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17274
17924
  element.removeEventListener(_enums__WEBPACK_IMPORTED_MODULE_5__.Events.TOUCH_TAP, this._mouseDownCallback);
17275
17925
  };
17276
17926
  }
17277
- setupBaseEditData(worldPos, element, annotation, rightPos, contourHoleProcessingEnabled) {
17927
+ setupBaseEditData(worldPos, element, annotation, nextPos, contourHoleProcessingEnabled) {
17278
17928
  const enabledElement = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_1__.getEnabledElement)(element);
17279
17929
  const { viewport } = enabledElement;
17280
17930
  this.isDrawing = true;
@@ -17317,12 +17967,12 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17317
17967
  const { voiRange } = viewport.getProperties();
17318
17968
  const startPos = worldToSlice(worldPos);
17319
17969
  this.scissors = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
17320
- if (rightPos) {
17321
- this.scissorsRight = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
17322
- this.scissorsRight.startSearch(worldToSlice(rightPos));
17970
+ if (nextPos) {
17971
+ this.scissorsNext = _utilities_livewire_LivewireScissors__WEBPACK_IMPORTED_MODULE_12__/* .LivewireScissors */ .f.createInstanceFromRawPixelData(scalarData, width, height, voiRange);
17972
+ this.scissorsNext.startSearch(worldToSlice(nextPos));
17323
17973
  }
17324
17974
  this.scissors.startSearch(startPos);
17325
- const newAnnotation = !rightPos;
17975
+ const newAnnotation = !nextPos;
17326
17976
  const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
17327
17977
  const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
17328
17978
  const currentPathNext = newAnnotation ? undefined : new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
@@ -17338,7 +17988,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17338
17988
  lastCanvasPoint,
17339
17989
  confirmedPath,
17340
17990
  currentPath,
17341
- confirmedPathRight: currentPathNext,
17991
+ confirmedPathNext: currentPathNext,
17342
17992
  closed: false,
17343
17993
  handleIndex: this.editData?.handleIndex ?? annotation.handles?.activeHandleIndex,
17344
17994
  worldToSlice,
@@ -17364,7 +18014,7 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17364
18014
  clearEditData() {
17365
18015
  this.editData = null;
17366
18016
  this.scissors = null;
17367
- this.scissorsRight = null;
18017
+ this.scissorsNext = null;
17368
18018
  this.isDrawing = false;
17369
18019
  }
17370
18020
  editHandle(worldPos, element, annotation, handleIndex) {
@@ -17373,11 +18023,11 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17373
18023
  const { length: numHandles } = handlePoints;
17374
18024
  const previousHandle = handlePoints[(handleIndex - 1 + numHandles) % numHandles];
17375
18025
  const nextHandle = handlePoints[(handleIndex + 1) % numHandles];
17376
- if (!this.editData?.confirmedPathRight) {
18026
+ if (!this.editData?.confirmedPathNext) {
17377
18027
  this.setupBaseEditData(previousHandle, element, annotation, nextHandle);
17378
18028
  const { polyline } = data.contour;
17379
18029
  const confirmedPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
17380
- const confirmedPathRight = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
18030
+ const confirmedPathNext = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
17381
18031
  const { worldToSlice } = this.editData;
17382
18032
  const previousIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex - 1);
17383
18033
  const nextIndex = (0,_utilities_contours_findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .A)(annotation, handleIndex + 1);
@@ -17385,17 +18035,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17385
18035
  throw new Error(`Can't find handle index ${nextIndex === -1 && nextHandle} ${previousIndex === -1 && previousHandle}`);
17386
18036
  }
17387
18037
  if (handleIndex === 0) {
17388
- confirmedPathRight.addPoints(polyline.slice(nextIndex + 1, previousIndex).map(worldToSlice));
17389
- }
17390
- else if (nextIndex < previousIndex) {
17391
- throw new Error(`Expected right index after left index, but were: ${previousIndex} ${nextIndex}`);
18038
+ confirmedPathNext.addPoints(polyline.slice(nextIndex + 1, previousIndex).map(worldToSlice));
17392
18039
  }
17393
18040
  else {
17394
18041
  confirmedPath.addPoints(polyline.slice(0, previousIndex + 1).map(worldToSlice));
17395
- confirmedPathRight.addPoints(polyline.slice(nextIndex, polyline.length).map(worldToSlice));
18042
+ confirmedPathNext.addPoints(polyline.slice(nextIndex, polyline.length).map(worldToSlice));
17396
18043
  }
17397
18044
  this.editData.confirmedPath = confirmedPath;
17398
- this.editData.confirmedPathRight = confirmedPathRight;
18045
+ this.editData.confirmedPathNext = confirmedPathNext;
17399
18046
  }
17400
18047
  const { editData, scissors } = this;
17401
18048
  const { worldToSlice, sliceToWorld } = editData;
@@ -17415,14 +18062,14 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17415
18062
  }
17416
18063
  handlePoints[handleIndex] = sliceToWorld(slicePos);
17417
18064
  const pathPointsLeft = scissors.findPathToPoint(slicePos);
17418
- const pathPointsRight = this.scissorsRight.findPathToPoint(slicePos);
18065
+ const pathPointsRight = this.scissorsNext.findPathToPoint(slicePos);
17419
18066
  const currentPath = new _utilities_livewire_LiveWirePath__WEBPACK_IMPORTED_MODULE_13__/* .LivewirePath */ .j();
17420
18067
  currentPath.prependPath(editData.confirmedPath);
17421
18068
  if (handleIndex !== 0) {
17422
18069
  currentPath.addPoints(pathPointsLeft);
17423
18070
  }
17424
18071
  currentPath.addPoints(pathPointsRight.reverse());
17425
- currentPath.appendPath(editData.confirmedPathRight);
18072
+ currentPath.appendPath(editData.confirmedPathNext);
17426
18073
  if (handleIndex === 0) {
17427
18074
  currentPath.addPoints(pathPointsLeft);
17428
18075
  }
@@ -17481,17 +18128,19 @@ class LivewireContourTool extends _base_ContourSegmentationBaseTool__WEBPACK_IMP
17481
18128
  if (!this.editData || !livewirePath) {
17482
18129
  return;
17483
18130
  }
17484
- const { annotation, sliceToWorld } = this.editData;
18131
+ const { annotation, sliceToWorld, worldToSlice, closed, newAnnotation } = this.editData;
17485
18132
  let { pointArray: imagePoints } = livewirePath;
17486
18133
  if (imagePoints.length > 1) {
17487
18134
  imagePoints = [...imagePoints, imagePoints[0]];
17488
18135
  }
18136
+ const targetWindingDirection = newAnnotation && closed ? _types_ContourAnnotation__WEBPACK_IMPORTED_MODULE_10__/* .ContourWindingDirection */ .W.Clockwise : undefined;
17489
18137
  this.updateContourPolyline(annotation, {
17490
18138
  points: imagePoints,
17491
- closed: annotation.data.contour.closed,
17492
- targetWindingDirection: _types_ContourAnnotation__WEBPACK_IMPORTED_MODULE_10__/* .ContourWindingDirection */ .W.Clockwise,
18139
+ closed,
18140
+ targetWindingDirection,
17493
18141
  }, {
17494
18142
  canvasToWorld: sliceToWorld,
18143
+ worldToCanvas: worldToSlice,
17495
18144
  });
17496
18145
  }
17497
18146
  }
@@ -17556,7 +18205,7 @@ PlanarFreehandContourSegmentationTool.toolName =
17556
18205
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
17557
18206
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54177);
17558
18207
  /* harmony import */ var _utilities_getCalibratedUnits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24592);
17559
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
18208
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
17560
18209
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
17561
18210
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84901);
17562
18211
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(90252);
@@ -17935,7 +18584,7 @@ ProbeTool.toolName = 'Probe';
17935
18584
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48428);
17936
18585
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21009);
17937
18586
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54177);
17938
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2746);
18587
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49574);
17939
18588
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61738);
17940
18589
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84901);
17941
18590
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(90252);
@@ -18001,6 +18650,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
18001
18650
  viewUp: [...viewUp],
18002
18651
  FrameOfReferenceUID,
18003
18652
  referencedImageId,
18653
+ ...viewport.getViewReference({ points: [worldPos] }),
18004
18654
  },
18005
18655
  data: {
18006
18656
  label: '',
@@ -18348,7 +18998,7 @@ class RectangleROITool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .AnnotationT
18348
18998
  }
18349
18999
  const dataId = `${annotationUID}-rect`;
18350
19000
  const rectangleUID = '0';
18351
- (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.drawRect)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates[0], canvasCoordinates[3], {
19001
+ (0,_drawingSvg__WEBPACK_IMPORTED_MODULE_9__.drawRectByCoordinates)(svgDrawingHelper, annotationUID, rectangleUID, canvasCoordinates, {
18352
19002
  color,
18353
19003
  lineDash,
18354
19004
  lineWidth,
@@ -18533,7 +19183,7 @@ SplineContourSegmentationTool.toolName = 'SplineContourSegmentationTool';
18533
19183
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
18534
19184
  /* harmony import */ var gl_matrix__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44753);
18535
19185
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38296);
18536
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2746);
19186
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49574);
18537
19187
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(61738);
18538
19188
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
18539
19189
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
@@ -19289,7 +19939,7 @@ SplineROITool.toolName = 'SplineROI';
19289
19939
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
19290
19940
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38296);
19291
19941
  /* harmony import */ var _stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(54177);
19292
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
19942
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
19293
19943
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61738);
19294
19944
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
19295
19945
  /* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(74119);
@@ -19776,7 +20426,7 @@ UltrasoundDirectionalTool.toolName = 'UltrasoundDirectionalTool';
19776
20426
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96214);
19777
20427
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21090);
19778
20428
  /* harmony import */ var _stateManagement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95778);
19779
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
20429
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
19780
20430
  /* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(61738);
19781
20431
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
19782
20432
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(90252);
@@ -20469,7 +21119,7 @@ BaseTool.toolName = 'BaseTool';
20469
21119
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
20470
21120
  /* harmony export */ T: () => (/* reexport safe */ _contourDisplay__WEBPACK_IMPORTED_MODULE_0__.A)
20471
21121
  /* harmony export */ });
20472
- /* harmony import */ var _contourDisplay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(69714);
21122
+ /* harmony import */ var _contourDisplay__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57784);
20473
21123
 
20474
21124
 
20475
21125
 
@@ -20825,6 +21475,7 @@ __webpack_require__.d(__webpack_exports__, {
20825
21475
  LL: () => (/* reexport */ ReferenceLinesTool/* default */.A),
20826
21476
  X8: () => (/* reexport */ ReferenceLinesTool/* default */.A),
20827
21477
  FE: () => (/* reexport */ ScaleOverlayTool/* default */.A),
21478
+ N: () => (/* reexport */ SculptorTool/* default */.A),
20828
21479
  IX: () => (/* reexport */ SegmentSelectTool/* default */.A),
20829
21480
  t0: () => (/* reexport */ SegmentationDisplayTool/* default */.A),
20830
21481
  cN: () => (/* reexport */ SegmentationIntersectionTool/* default */.A),
@@ -20836,6 +21487,7 @@ __webpack_require__.d(__webpack_exports__, {
20836
21487
  So: () => (/* reexport */ TrackballRotateTool/* default */.A),
20837
21488
  oi: () => (/* reexport */ UltrasoundDirectionalTool/* default */.A),
20838
21489
  Y1: () => (/* reexport */ VolumeRotateMouseWheelTool/* default */.A),
21490
+ TG: () => (/* reexport */ WindowLevelRegionTool/* default */.A),
20839
21491
  Du: () => (/* reexport */ WindowLevelTool/* default */.A),
20840
21492
  OQ: () => (/* reexport */ ZoomTool/* default */.A)
20841
21493
  });
@@ -20848,6 +21500,8 @@ var PanTool = __webpack_require__(25294);
20848
21500
  var TrackballRotateTool = __webpack_require__(15924);
20849
21501
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/WindowLevelTool.js
20850
21502
  var WindowLevelTool = __webpack_require__(455);
21503
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/WindowLevelRegionTool.js
21504
+ var WindowLevelRegionTool = __webpack_require__(60747);
20851
21505
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/StackScrollTool.js
20852
21506
  var StackScrollTool = __webpack_require__(20132);
20853
21507
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/PlanarRotateTool.js
@@ -20876,6 +21530,8 @@ var SegmentationIntersectionTool = __webpack_require__(70494);
20876
21530
  var ReferenceCursors = __webpack_require__(1143);
20877
21531
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/ScaleOverlayTool.js
20878
21532
  var ScaleOverlayTool = __webpack_require__(92807);
21533
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/SculptorTool.js
21534
+ var SculptorTool = __webpack_require__(16151);
20879
21535
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/BidirectionalTool.js
20880
21536
  var BidirectionalTool = __webpack_require__(50720);
20881
21537
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/tools/annotation/LengthTool.js
@@ -20928,8 +21584,8 @@ var esm = __webpack_require__(92136);
20928
21584
  var stateManagement = __webpack_require__(95778);
20929
21585
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/stateManagement/annotation/annotationLocking.js
20930
21586
  var annotationLocking = __webpack_require__(48428);
20931
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 17 modules
20932
- var drawingSvg = __webpack_require__(2746);
21587
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/drawingSvg/index.js + 18 modules
21588
+ var drawingSvg = __webpack_require__(49574);
20933
21589
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/viewportFilters/index.js + 4 modules
20934
21590
  var viewportFilters = __webpack_require__(90252);
20935
21591
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/cursors/elementCursor.js
@@ -21463,6 +22119,8 @@ var SegmentSelectTool = __webpack_require__(34041);
21463
22119
 
21464
22120
 
21465
22121
 
22122
+
22123
+
21466
22124
 
21467
22125
 
21468
22126
 
@@ -21482,7 +22140,7 @@ var SegmentSelectTool = __webpack_require__(34041);
21482
22140
  /* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4069);
21483
22141
  /* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11852);
21484
22142
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84901);
21485
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2746);
22143
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(49574);
21486
22144
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40233);
21487
22145
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(23072);
21488
22146
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(63421);
@@ -21956,7 +22614,7 @@ BrushTool.toolName = 'Brush';
21956
22614
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84901);
21957
22615
  /* harmony import */ var _stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38296);
21958
22616
  /* harmony import */ var _stateManagement_annotation_annotationLocking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48428);
21959
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
22617
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
21960
22618
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(90252);
21961
22619
  /* harmony import */ var _utilities_throttle__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21090);
21962
22620
  /* harmony import */ var _stateManagement_annotation_annotationVisibility__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21009);
@@ -22322,7 +22980,7 @@ CircleROIStartEndThresholdTool.toolName = 'CircleROIStartEndThreshold';
22322
22980
  /* harmony import */ var _strategies_fillCircle__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4069);
22323
22981
  /* harmony import */ var _strategies_eraseCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11852);
22324
22982
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
22325
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
22983
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
22326
22984
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
22327
22985
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
22328
22986
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
@@ -22823,7 +23481,7 @@ PaintFillTool.toolName = 'PaintFill';
22823
23481
  /* harmony import */ var _strategies_eraseRectangle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66211);
22824
23482
  /* harmony import */ var _utilities_viewportFilters__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90252);
22825
23483
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84901);
22826
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2746);
23484
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(49574);
22827
23485
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(40233);
22828
23486
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(23072);
22829
23487
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63421);
@@ -23197,7 +23855,7 @@ SegmentSelectTool.toolName = 'SegmentSelectTool';
23197
23855
  /* harmony import */ var _strategies_fillSphere__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61604);
23198
23856
  /* harmony import */ var _strategies_eraseSphere__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4373);
23199
23857
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84901);
23200
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2746);
23858
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49574);
23201
23859
  /* harmony import */ var _cursors_elementCursor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40233);
23202
23860
  /* harmony import */ var _utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23072);
23203
23861
  /* harmony import */ var _stateManagement_segmentation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(63421);
@@ -23506,56 +24164,6 @@ __webpack_require__.r(__webpack_exports__);
23506
24164
 
23507
24165
 
23508
24166
 
23509
- /***/ }),
23510
-
23511
- /***/ 75534:
23512
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
23513
-
23514
- __webpack_require__.r(__webpack_exports__);
23515
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23516
- /* harmony export */ AnnotationToPointData: () => (/* reexport safe */ _AnnotationToPointData__WEBPACK_IMPORTED_MODULE_5__.A),
23517
- /* harmony export */ acceptAutogeneratedInterpolations: () => (/* reexport safe */ _interpolation_acceptAutogeneratedInterpolations__WEBPACK_IMPORTED_MODULE_9__.A),
23518
- /* harmony export */ areCoplanarContours: () => (/* reexport safe */ _areCoplanarContours__WEBPACK_IMPORTED_MODULE_0__.A),
23519
- /* harmony export */ calculatePerimeter: () => (/* reexport safe */ _calculatePerimeter__WEBPACK_IMPORTED_MODULE_12__.A),
23520
- /* harmony export */ contourFinder: () => (/* reexport safe */ _contourFinder__WEBPACK_IMPORTED_MODULE_1__.Ay),
23521
- /* harmony export */ detectContourHoles: () => (/* reexport safe */ _detectContourHoles__WEBPACK_IMPORTED_MODULE_3__.A),
23522
- /* harmony export */ findHandlePolylineIndex: () => (/* reexport safe */ _findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_11__.A),
23523
- /* harmony export */ generateContourSetsFromLabelmap: () => (/* reexport safe */ _generateContourSetsFromLabelmap__WEBPACK_IMPORTED_MODULE_4__.d),
23524
- /* harmony export */ getContourHolesDataCanvas: () => (/* reexport safe */ _getContourHolesDataCanvas__WEBPACK_IMPORTED_MODULE_7__.A),
23525
- /* harmony export */ getContourHolesDataWorld: () => (/* reexport safe */ _getContourHolesDataWorld__WEBPACK_IMPORTED_MODULE_6__.A),
23526
- /* harmony export */ getDeduplicatedVTKPolyDataPoints: () => (/* reexport safe */ _getDeduplicatedVTKPolyDataPoints__WEBPACK_IMPORTED_MODULE_2__.v),
23527
- /* harmony export */ interpolation: () => (/* reexport module object */ _interpolation__WEBPACK_IMPORTED_MODULE_10__),
23528
- /* harmony export */ updateContourPolyline: () => (/* reexport safe */ _updateContourPolyline__WEBPACK_IMPORTED_MODULE_8__.A)
23529
- /* harmony export */ });
23530
- /* harmony import */ var _areCoplanarContours__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14633);
23531
- /* harmony import */ var _contourFinder__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11716);
23532
- /* harmony import */ var _getDeduplicatedVTKPolyDataPoints__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19866);
23533
- /* harmony import */ var _detectContourHoles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(92806);
23534
- /* harmony import */ var _generateContourSetsFromLabelmap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36392);
23535
- /* harmony import */ var _AnnotationToPointData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(93712);
23536
- /* harmony import */ var _getContourHolesDataWorld__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98043);
23537
- /* harmony import */ var _getContourHolesDataCanvas__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(88267);
23538
- /* harmony import */ var _updateContourPolyline__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(89111);
23539
- /* harmony import */ var _interpolation_acceptAutogeneratedInterpolations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(65864);
23540
- /* harmony import */ var _interpolation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(69115);
23541
- /* harmony import */ var _findHandlePolylineIndex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84045);
23542
- /* harmony import */ var _calculatePerimeter__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(53891);
23543
-
23544
-
23545
-
23546
-
23547
-
23548
-
23549
-
23550
-
23551
-
23552
-
23553
-
23554
-
23555
-
23556
-
23557
-
23558
-
23559
24167
  /***/ }),
23560
24168
 
23561
24169
  /***/ 65903:
@@ -23594,6 +24202,7 @@ __webpack_require__.r(__webpack_exports__);
23594
24202
  // EXPORTS
23595
24203
  __webpack_require__.d(__webpack_exports__, {
23596
24204
  annotationFrameRange: () => (/* reexport */ annotationFrameRange/* default */.A),
24205
+ annotationHydration: () => (/* reexport */ annotationHydration/* annotationHydration */.i),
23597
24206
  boundingBox: () => (/* reexport */ boundingBox),
23598
24207
  calibrateImageSpacing: () => (/* reexport */ calibrateImageSpacing/* default */.A),
23599
24208
  cine: () => (/* reexport */ cine),
@@ -23608,6 +24217,7 @@ __webpack_require__.d(__webpack_exports__, {
23608
24217
  getCalibratedAspect: () => (/* reexport */ getCalibratedUnits/* getCalibratedAspect */.CQ),
23609
24218
  getCalibratedLengthUnitsAndScale: () => (/* reexport */ getCalibratedUnits/* getCalibratedLengthUnitsAndScale */.Op),
23610
24219
  getCalibratedProbeUnitsAndValue: () => (/* reexport */ getCalibratedUnits/* getCalibratedProbeUnitsAndValue */.Xw),
24220
+ getClosestImageIdForStackViewport: () => (/* reexport */ annotationHydration/* getClosestImageIdForStackViewport */.x),
23611
24221
  getSphereBoundsInfo: () => (/* reexport */ getSphereBoundsInfo/* getSphereBoundsInfo */.R),
23612
24222
  getViewportForAnnotation: () => (/* reexport */ getViewportForAnnotation/* default */.A),
23613
24223
  isObject: () => (/* reexport */ isObject/* default */.A),
@@ -23683,8 +24293,10 @@ var annotationFrameRange = __webpack_require__(41209);
23683
24293
  var pointInSurroundingSphereCallback = __webpack_require__(5093);
23684
24294
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/getViewportForAnnotation.js
23685
24295
  var getViewportForAnnotation = __webpack_require__(39490);
23686
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js
23687
- var contours = __webpack_require__(75534);
24296
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/annotationHydration.js
24297
+ var annotationHydration = __webpack_require__(25781);
24298
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contours/index.js + 9 modules
24299
+ var contours = __webpack_require__(75908);
23688
24300
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/segmentation/index.js
23689
24301
  var segmentation = __webpack_require__(10351);
23690
24302
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/drawing/index.js + 1 modules
@@ -23722,8 +24334,8 @@ var touch = __webpack_require__(54868);
23722
24334
  var dynamicVolume = __webpack_require__(16390);
23723
24335
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/polyData/utils.js
23724
24336
  var utils = __webpack_require__(46514);
23725
- // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js
23726
- var voi = __webpack_require__(10413);
24337
+ // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/voi/index.js + 4 modules
24338
+ var voi = __webpack_require__(14149);
23727
24339
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/contourSegmentation/index.js
23728
24340
  var contourSegmentation = __webpack_require__(7259);
23729
24341
  ;// CONCATENATED MODULE: ../../../node_modules/@cornerstonejs/tools/dist/esm/utilities/index.js
@@ -23762,6 +24374,7 @@ var contourSegmentation = __webpack_require__(7259);
23762
24374
 
23763
24375
 
23764
24376
 
24377
+
23765
24378
 
23766
24379
 
23767
24380
  const roundNumber = esm.utilities.roundNumber;
@@ -24161,7 +24774,7 @@ function triggerSegmentationRender(toolGroupId) {
24161
24774
  /* unused harmony export triggerAnnotationRender */
24162
24775
  /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92136);
24163
24776
  /* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84901);
24164
- /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2746);
24777
+ /* harmony import */ var _drawingSvg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49574);
24165
24778
  /* harmony import */ var _getToolsWithModesForElement__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42360);
24166
24779
 
24167
24780
 
@@ -24287,9 +24900,9 @@ function triggerAnnotationRender(element) {
24287
24900
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
24288
24901
 
24289
24902
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
24290
- /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
24903
+ /* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__),
24904
+ /* harmony export */ t: () => (/* binding */ triggerAnnotationRenderForViewportIds)
24291
24905
  /* harmony export */ });
24292
- /* unused harmony export triggerAnnotationRenderForViewportIds */
24293
24906
  /* harmony import */ var _triggerAnnotationRender__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6805);
24294
24907
 
24295
24908
  function triggerAnnotationRenderForViewportIds(renderingEngine, viewportIdsToRender) {