@cornerstonejs/tools 0.10.1 → 0.12.1
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.
- package/dist/cjs/drawingSvg/_getHash.d.ts +1 -1
- package/dist/cjs/drawingSvg/_getHash.js +2 -2
- package/dist/cjs/drawingSvg/_getHash.js.map +1 -1
- package/dist/cjs/drawingSvg/drawArrow.d.ts +2 -0
- package/dist/cjs/drawingSvg/drawArrow.js +53 -0
- package/dist/cjs/drawingSvg/drawArrow.js.map +1 -0
- package/dist/cjs/drawingSvg/drawCircle.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawCircle.js +2 -2
- package/dist/cjs/drawingSvg/drawCircle.js.map +1 -1
- package/dist/cjs/drawingSvg/drawEllipse.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawEllipse.js +2 -2
- package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/cjs/drawingSvg/drawHandles.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawHandles.js +2 -2
- package/dist/cjs/drawingSvg/drawHandles.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLine.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawLine.js +2 -2
- package/dist/cjs/drawingSvg/drawLine.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLink.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawLink.js +2 -2
- package/dist/cjs/drawingSvg/drawLink.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLinkedTextBox.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawLinkedTextBox.js +3 -3
- package/dist/cjs/drawingSvg/drawLinkedTextBox.js.map +1 -1
- package/dist/cjs/drawingSvg/drawPolyline.d.ts +8 -0
- package/dist/cjs/drawingSvg/drawPolyline.js +50 -0
- package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -0
- package/dist/cjs/drawingSvg/drawRect.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawRect.js +2 -2
- package/dist/cjs/drawingSvg/drawRect.js.map +1 -1
- package/dist/cjs/drawingSvg/drawTextBox.d.ts +1 -1
- package/dist/cjs/drawingSvg/drawTextBox.js +4 -4
- package/dist/cjs/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/cjs/drawingSvg/index.d.ts +3 -1
- package/dist/cjs/drawingSvg/index.js +5 -1
- package/dist/cjs/drawingSvg/index.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/stateManagement/annotation/config/annotationStyle.js +1 -1
- package/dist/cjs/tools/CrosshairsTool.js +12 -12
- package/dist/cjs/tools/CrosshairsTool.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.d.ts +36 -0
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +403 -0
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -0
- package/dist/cjs/tools/annotation/BidirectionalTool.js +4 -4
- package/dist/cjs/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/cjs/tools/annotation/EllipticalROITool.js +3 -3
- package/dist/cjs/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/LengthTool.js +4 -3
- package/dist/cjs/tools/annotation/LengthTool.js.map +1 -1
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.d.ts +32 -0
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js +192 -0
- package/dist/cjs/tools/annotation/PlanarFreehandROITool.js.map +1 -0
- package/dist/cjs/tools/annotation/ProbeTool.js +2 -2
- package/dist/cjs/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/cjs/tools/annotation/RectangleROITool.js +3 -3
- package/dist/cjs/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +216 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js +182 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js +127 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js +289 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEndEditLoop.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +43 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js.map +1 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.d.ts +2 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js +99 -0
- package/dist/cjs/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -0
- package/dist/cjs/tools/index.d.ts +3 -1
- package/dist/cjs/tools/index.js +5 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/CircleScissorsTool.js +1 -1
- package/dist/cjs/tools/segmentation/CircleScissorsTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -2
- package/dist/cjs/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js +2 -2
- package/dist/cjs/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/RectangleScissorsTool.js +1 -1
- package/dist/cjs/tools/segmentation/RectangleScissorsTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/SphereScissorsTool.js +1 -1
- package/dist/cjs/tools/segmentation/SphereScissorsTool.js.map +1 -1
- package/dist/cjs/types/AnnotationTypes.d.ts +1 -0
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +50 -0
- package/dist/cjs/utilities/math/index.d.ts +2 -1
- package/dist/cjs/utilities/math/index.js +3 -1
- package/dist/cjs/utilities/math/index.js.map +1 -1
- package/dist/cjs/utilities/math/polyline/addCanvasPointsToArray.d.ts +4 -0
- package/dist/cjs/utilities/math/polyline/addCanvasPointsToArray.js +36 -0
- package/dist/cjs/utilities/math/polyline/addCanvasPointsToArray.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/calculateAreaOfPoints.d.ts +2 -0
- package/dist/cjs/utilities/math/polyline/calculateAreaOfPoints.js +14 -0
- package/dist/cjs/utilities/math/polyline/calculateAreaOfPoints.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.d.ts +7 -0
- package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.js +110 -0
- package/dist/cjs/utilities/math/polyline/getIntersectionWithPolyline.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/getSubPixelSpacingAndXYDirections.d.ts +7 -0
- package/dist/cjs/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js +67 -0
- package/dist/cjs/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/index.d.ts +7 -0
- package/dist/cjs/utilities/math/polyline/index.js +20 -0
- package/dist/cjs/utilities/math/polyline/index.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +22 -0
- package/dist/cjs/utilities/math/polyline/planarFreehandROIInternalTypes.js +3 -0
- package/dist/cjs/utilities/math/polyline/planarFreehandROIInternalTypes.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/pointCanProjectOnLine.d.ts +3 -0
- package/dist/cjs/utilities/math/polyline/pointCanProjectOnLine.js +35 -0
- package/dist/cjs/utilities/math/polyline/pointCanProjectOnLine.js.map +1 -0
- package/dist/cjs/utilities/math/polyline/pointsAreWithinCloseContourProximity.d.ts +3 -0
- package/dist/cjs/utilities/math/polyline/pointsAreWithinCloseContourProximity.js +8 -0
- package/dist/cjs/utilities/math/polyline/pointsAreWithinCloseContourProximity.js.map +1 -0
- package/dist/esm/drawingSvg/_getHash.d.ts +1 -1
- package/dist/esm/drawingSvg/_getHash.js +2 -2
- package/dist/esm/drawingSvg/_getHash.js.map +1 -1
- package/dist/esm/drawingSvg/drawArrow.d.ts +2 -0
- package/dist/esm/drawingSvg/drawArrow.js +47 -0
- package/dist/esm/drawingSvg/drawArrow.js.map +1 -0
- package/dist/esm/drawingSvg/drawCircle.d.ts +1 -1
- package/dist/esm/drawingSvg/drawCircle.js +2 -2
- package/dist/esm/drawingSvg/drawCircle.js.map +1 -1
- package/dist/esm/drawingSvg/drawEllipse.d.ts +1 -1
- package/dist/esm/drawingSvg/drawEllipse.js +2 -2
- package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/esm/drawingSvg/drawHandles.d.ts +1 -1
- package/dist/esm/drawingSvg/drawHandles.js +2 -2
- package/dist/esm/drawingSvg/drawHandles.js.map +1 -1
- package/dist/esm/drawingSvg/drawLine.d.ts +1 -1
- package/dist/esm/drawingSvg/drawLine.js +2 -2
- package/dist/esm/drawingSvg/drawLine.js.map +1 -1
- package/dist/esm/drawingSvg/drawLink.d.ts +1 -1
- package/dist/esm/drawingSvg/drawLink.js +2 -2
- package/dist/esm/drawingSvg/drawLink.js.map +1 -1
- package/dist/esm/drawingSvg/drawLinkedTextBox.d.ts +1 -1
- package/dist/esm/drawingSvg/drawLinkedTextBox.js +3 -3
- package/dist/esm/drawingSvg/drawLinkedTextBox.js.map +1 -1
- package/dist/esm/drawingSvg/drawPolyline.d.ts +8 -0
- package/dist/esm/drawingSvg/drawPolyline.js +44 -0
- package/dist/esm/drawingSvg/drawPolyline.js.map +1 -0
- package/dist/esm/drawingSvg/drawRect.d.ts +1 -1
- package/dist/esm/drawingSvg/drawRect.js +2 -2
- package/dist/esm/drawingSvg/drawRect.js.map +1 -1
- package/dist/esm/drawingSvg/drawTextBox.d.ts +1 -1
- package/dist/esm/drawingSvg/drawTextBox.js +4 -4
- package/dist/esm/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/esm/drawingSvg/index.d.ts +3 -1
- package/dist/esm/drawingSvg/index.js +3 -1
- package/dist/esm/drawingSvg/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stateManagement/annotation/config/annotationStyle.js +1 -1
- package/dist/esm/tools/CrosshairsTool.js +12 -12
- package/dist/esm/tools/CrosshairsTool.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.d.ts +36 -0
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +379 -0
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -0
- package/dist/esm/tools/annotation/BidirectionalTool.js +4 -4
- package/dist/esm/tools/annotation/BidirectionalTool.js.map +1 -1
- package/dist/esm/tools/annotation/EllipticalROITool.js +3 -3
- package/dist/esm/tools/annotation/EllipticalROITool.js.map +1 -1
- package/dist/esm/tools/annotation/LengthTool.js +4 -3
- package/dist/esm/tools/annotation/LengthTool.js.map +1 -1
- package/dist/esm/tools/annotation/PlanarFreehandROITool.d.ts +32 -0
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js +187 -0
- package/dist/esm/tools/annotation/PlanarFreehandROITool.js.map +1 -0
- package/dist/esm/tools/annotation/ProbeTool.js +2 -2
- package/dist/esm/tools/annotation/ProbeTool.js.map +1 -1
- package/dist/esm/tools/annotation/RectangleROITool.js +3 -3
- package/dist/esm/tools/annotation/RectangleROITool.js.map +1 -1
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js +211 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/closedContourEditLoop.js.map +1 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js +177 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/drawLoop.js.map +1 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js +125 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/editLoopCommon.js.map +1 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js +284 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEditLoop.js.map +1 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js +41 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/openContourEndEditLoop.js.map +1 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.d.ts +2 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js +97 -0
- package/dist/esm/tools/annotation/planarFreehandROITool/renderMethods.js.map +1 -0
- package/dist/esm/tools/index.d.ts +3 -1
- package/dist/esm/tools/index.js +3 -1
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/CircleScissorsTool.js +1 -1
- package/dist/esm/tools/segmentation/CircleScissorsTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js +2 -2
- package/dist/esm/tools/segmentation/RectangleROIStartEndThresholdTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js +2 -2
- package/dist/esm/tools/segmentation/RectangleROIThresholdTool.js.map +1 -1
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js +1 -1
- package/dist/esm/tools/segmentation/RectangleScissorsTool.js.map +1 -1
- package/dist/esm/tools/segmentation/SphereScissorsTool.js +1 -1
- package/dist/esm/tools/segmentation/SphereScissorsTool.js.map +1 -1
- package/dist/esm/types/AnnotationTypes.d.ts +1 -0
- package/dist/esm/types/ToolSpecificAnnotationTypes.d.ts +50 -0
- package/dist/esm/utilities/math/index.d.ts +2 -1
- package/dist/esm/utilities/math/index.js +2 -1
- package/dist/esm/utilities/math/index.js.map +1 -1
- package/dist/esm/utilities/math/polyline/addCanvasPointsToArray.d.ts +4 -0
- package/dist/esm/utilities/math/polyline/addCanvasPointsToArray.js +34 -0
- package/dist/esm/utilities/math/polyline/addCanvasPointsToArray.js.map +1 -0
- package/dist/esm/utilities/math/polyline/calculateAreaOfPoints.d.ts +2 -0
- package/dist/esm/utilities/math/polyline/calculateAreaOfPoints.js +11 -0
- package/dist/esm/utilities/math/polyline/calculateAreaOfPoints.js.map +1 -0
- package/dist/esm/utilities/math/polyline/getIntersectionWithPolyline.d.ts +7 -0
- package/dist/esm/utilities/math/polyline/getIntersectionWithPolyline.js +106 -0
- package/dist/esm/utilities/math/polyline/getIntersectionWithPolyline.js.map +1 -0
- package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.d.ts +7 -0
- package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js +65 -0
- package/dist/esm/utilities/math/polyline/getSubPixelSpacingAndXYDirections.js.map +1 -0
- package/dist/esm/utilities/math/polyline/index.d.ts +7 -0
- package/dist/esm/utilities/math/polyline/index.js +8 -0
- package/dist/esm/utilities/math/polyline/index.js.map +1 -0
- package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.d.ts +22 -0
- package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.js +2 -0
- package/dist/esm/utilities/math/polyline/planarFreehandROIInternalTypes.js.map +1 -0
- package/dist/esm/utilities/math/polyline/pointCanProjectOnLine.d.ts +3 -0
- package/dist/esm/utilities/math/polyline/pointCanProjectOnLine.js +33 -0
- package/dist/esm/utilities/math/polyline/pointCanProjectOnLine.js.map +1 -0
- package/dist/esm/utilities/math/polyline/pointsAreWithinCloseContourProximity.d.ts +3 -0
- package/dist/esm/utilities/math/polyline/pointsAreWithinCloseContourProximity.js +6 -0
- package/dist/esm/utilities/math/polyline/pointsAreWithinCloseContourProximity.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
package/dist/umd/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/MatrixBuilder"),require("@kitware/vtk.js/Common/Core/Math")):"function"==typeof define&&define.amd?define(["@cornerstonejs/core","@kitware/vtk.js/Rendering/Core/ColorTransferFunction","@kitware/vtk.js/Common/DataModel/PiecewiseFunction","gl-matrix","@kitware/vtk.js/Common/Core/MatrixBuilder","@kitware/vtk.js/Common/Core/Math"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/MatrixBuilder"),require("@kitware/vtk.js/Common/Core/Math")):e.cornerstoneTools3D=t(e.cornerstone3D,e["@kitware/vtk.js/Rendering/Core/ColorTransferFunction"],e["@kitware/vtk.js/Common/DataModel/PiecewiseFunction"],e.window,e["@kitware/vtk.js/Common/Core/MatrixBuilder"],e["@kitware/vtk.js/Common/Core/Math"])}(self,(function(e,t,n,r,o,a){return function(){var i={162:function(e,t,n){e.exports=n(47)},907:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,a="[object Arguments]",i="[object Boolean]",l="[object Date]",c="[object Function]",s="[object GeneratorFunction]",u="[object Map]",d="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",m="[object String]",p="[object Symbol]",y="[object WeakMap]",w="[object ArrayBuffer]",E="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",_="[object Int8Array]",T="[object Int16Array]",S="[object Int32Array]",O="[object Uint8Array]",C="[object Uint8ClampedArray]",D="[object Uint16Array]",x="[object Uint32Array]",N=/\w*$/,M=/^\[object .+?Constructor\]$/,R=/^(?:0|[1-9]\d*)$/,k={};k[a]=k["[object Array]"]=k[w]=k[E]=k[i]=k[l]=k[I]=k[b]=k[_]=k[T]=k[S]=k[u]=k[d]=k[v]=k[g]=k[h]=k[m]=k[p]=k[O]=k[C]=k[D]=k[x]=!0,k["[object Error]"]=k[c]=k[y]=!1;var A="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,L="object"==typeof self&&self&&self.Object===Object&&self,P=A||L||Function("return this")(),U=t&&!t.nodeType&&t,V=U&&e&&!e.nodeType&&e,j=V&&V.exports===U;function B(e,t){return e.set(t[0],t[1]),e}function F(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,a=e?e.length:0;for(r&&a&&(n=e[++o]);++o<a;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function H(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,Z=Function.prototype,$=Object.prototype,X=P["__core-js_shared__"],J=(K=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=Z.toString,ee=$.hasOwnProperty,te=$.toString,ne=RegExp("^"+Q.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=j?P.Buffer:void 0,oe=P.Symbol,ae=P.Uint8Array,ie=H(Object.getPrototypeOf,Object),le=Object.create,ce=$.propertyIsEnumerable,se=Y.splice,ue=Object.getOwnPropertySymbols,de=re?re.isBuffer:void 0,ve=H(Object.keys,Object),fe=Pe(P,"DataView"),ge=Pe(P,"Map"),he=Pe(P,"Promise"),me=Pe(P,"Set"),pe=Pe(P,"WeakMap"),ye=Pe(Object,"create"),we=Fe(fe),Ee=Fe(ge),Ie=Fe(he),be=Fe(me),_e=Fe(pe),Te=oe?oe.prototype:void 0,Se=Te?Te.valueOf:void 0;function Oe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Ce(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function De(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Ce(e)}function Ne(e,t,n){var r=e[t];ee.call(e,t)&&We(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Me(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}function Re(e,t,n,r,o,f,y){var M;if(r&&(M=f?r(e,o,f,y):r(e)),void 0!==M)return M;if(!Ke(e))return e;var R=Ge(e);if(R){if(M=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,M)}else{var A=Ve(e),L=A==c||A==s;if(He(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(A==v||A==a||L&&!f){if(G(e))return f?e:{};if(M=function(e){return"function"!=typeof e.constructor||Be(e)?{}:Ke(t=ie(e))?le(t):{};var t}(L?{}:e),!t)return function(e,t){return Ae(e,Ue(e),t)}(e,function(e,t){return e&&Ae(t,Ye(t),e)}(M,e))}else{if(!k[A])return f?e:{};M=function(e,t,n,r){var o,a=e.constructor;switch(t){case w:return ke(e);case i:case l:return new a(+e);case E:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case _:case T:case S:case O:case C:case D:case x:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case u:return function(e,t,n){return W(t?n(q(e),!0):q(e),B,new e.constructor)}(e,r,n);case d:case m:return new a(e);case g:return function(e){var t=new e.constructor(e.source,N.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),F,new e.constructor)}(e,r,n);case p:return o=e,Se?Object(Se.call(o)):{}}}(e,A,Re,t)}}y||(y=new xe);var P=y.get(e);if(P)return P;if(y.set(e,M),!R)var U=n?function(e){return function(e,t,n){var r=t(e);return Ge(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Ye,Ue)}(e):Ye(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(U||e,(function(o,a){U&&(o=e[a=o]),Ne(M,a,Re(o,t,n,r,a,e,y))})),M}function ke(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Ae(e,t,n,r){n||(n={});for(var o=-1,a=t.length;++o<a;){var i=t[o],l=r?r(n[i],e[i],i,n,e):void 0;Ne(n,i,void 0===l?e[i]:l)}return n}function Le(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function Pe(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ke(e)||(t=e,J&&J in t))&&(ze(e)||G(e)?ne:M).test(Fe(e));var t}(n)?n:void 0}Oe.prototype.clear=function(){this.__data__=ye?ye(null):{}},Oe.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Oe.prototype.get=function(e){var t=this.__data__;if(ye){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},Oe.prototype.has=function(e){var t=this.__data__;return ye?void 0!==t[e]:ee.call(t,e)},Oe.prototype.set=function(e,t){return this.__data__[e]=ye&&void 0===t?r:t,this},Ce.prototype.clear=function(){this.__data__=[]},Ce.prototype.delete=function(e){var t=this.__data__,n=Me(t,e);return!(n<0||(n==t.length-1?t.pop():se.call(t,n,1),0))},Ce.prototype.get=function(e){var t=this.__data__,n=Me(t,e);return n<0?void 0:t[n][1]},Ce.prototype.has=function(e){return Me(this.__data__,e)>-1},Ce.prototype.set=function(e,t){var n=this.__data__,r=Me(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},De.prototype.clear=function(){this.__data__={hash:new Oe,map:new(ge||Ce),string:new Oe}},De.prototype.delete=function(e){return Le(this,e).delete(e)},De.prototype.get=function(e){return Le(this,e).get(e)},De.prototype.has=function(e){return Le(this,e).has(e)},De.prototype.set=function(e,t){return Le(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Ce},xe.prototype.delete=function(e){return this.__data__.delete(e)},xe.prototype.get=function(e){return this.__data__.get(e)},xe.prototype.has=function(e){return this.__data__.has(e)},xe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ce){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new De(r)}return n.set(e,t),this};var Ue=ue?H(ue,Object):function(){return[]},Ve=function(e){return te.call(e)};function je(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||R.test(e))&&e>-1&&e%1==0&&e<t}function Be(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||$)}function Fe(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&Ve(new fe(new ArrayBuffer(1)))!=E||ge&&Ve(new ge)!=u||he&&Ve(he.resolve())!=f||me&&Ve(new me)!=h||pe&&Ve(new pe)!=y)&&(Ve=function(e){var t=te.call(e),n=t==v?e.constructor:void 0,r=n?Fe(n):void 0;if(r)switch(r){case we:return E;case Ee:return u;case Ie:return f;case be:return h;case _e:return y}return t});var Ge=Array.isArray;function qe(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var He=de||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==c||t==s}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return qe(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&qe(e)}(e)&&ee.call(e,"callee")&&(!ce.call(e,"callee")||te.call(e)==a)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var i in e)!t&&!ee.call(e,i)||o&&("length"==i||je(i,r))||n.push(i);return n}(e):function(e){if(!Be(e))return ve(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Re(e,!0,!0)}},47:function(e){var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof m?t:m,a=Object.create(o.prototype),i=new D(r||[]);return a._invoke=function(e,t,n){var r=d;return function(o,a){if(r===f)throw new Error("Generator is already running");if(r===g){if("throw"===o)throw a;return N()}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=S(i,n);if(l){if(l===h)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===d)throw r=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var c=u(e,t,n);if("normal"===c.type){if(r=n.done?g:v,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=g,n.method="throw",n.arg=c.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var d="suspendedStart",v="suspendedYield",f="executing",g="completed",h={};function m(){}function p(){}function y(){}var w={};c(w,a,(function(){return this}));var E=Object.getPrototypeOf,I=E&&E(E(x([])));I&&I!==n&&r.call(I,a)&&(w=I);var b=y.prototype=m.prototype=Object.create(w);function _(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(o,a,i,l){var c=u(e[o],e,a);if("throw"!==c.type){var s=c.arg,d=s.value;return d&&"object"==typeof d&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(d).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}var o;this._invoke=function(e,r){function a(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(a,a):a()}}function S(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return h;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,h;var a=o.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,h):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return i.next=i}}return{next:N}}function N(){return{value:t,done:!0}}return p.prototype=y,c(b,"constructor",y),c(y,"constructor",p),p.displayName=c(y,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===p||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,y):(e.__proto__=y,c(e,l,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},_(T.prototype),c(T.prototype,i,(function(){return this})),e.AsyncIterator=T,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new T(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},_(b),c(b,l,"Generator"),c(b,a,(function(){return this})),c(b,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=x,D.prototype={constructor:D,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(C),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return l.type="throw",l.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;C(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:x(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),h}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},807:function(e){"use strict";e.exports=a},847:function(e){"use strict";e.exports=o},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return i[e](n,n.exports,c),n.loaded=!0,n.exports}c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},c.d=function(e,t){for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var s={};return function(){"use strict";c.r(s),c.d(s,{AnnotationTool:function(){return pl},BaseTool:function(){return Ht},BidirectionalTool:function(){return zl},BrushTool:function(){return ac},CONSTANTS:function(){return u},CircleScissorsTool:function(){return ec},CrosshairsTool:function(){return Ll},EllipticalROITool:function(){return ql},Enums:function(){return P},LengthTool:function(){return Dl},MIPJumpToClickTool:function(){return Sl},PanTool:function(){return yl},ProbeTool:function(){return jl},RectangleROIStartEndThresholdTool:function(){return oc},RectangleROIThresholdTool:function(){return rc},RectangleROITool:function(){return Fl},RectangleScissorsTool:function(){return Xl},SegmentationDisplayTool:function(){return On},SphereScissorsTool:function(){return nc},StackScrollMouseWheelTool:function(){return bl},StackScrollTool:function(){return Il},Synchronizer:function(){return ho},SynchronizerManager:function(){return a},ToolGroupManager:function(){return l},Types:function(){return O},VolumeRotateMouseWheelTool:function(){return Tl},WindowLevelTool:function(){return wl},ZoomTool:function(){return El},addTool:function(){return io},annotation:function(){return D},cancelActiveManipulations:function(){return so},cursors:function(){return S},destroy:function(){return ro},drawing:function(){return v},init:function(){return no},removeTool:function(){return lo},segmentation:function(){return L},synchronizers:function(){return d},utilities:function(){return T}});var e={};c.r(e),c.d(e,{checkAndDefineIsLockedProperty:function(){return J},getAnnotationsLocked:function(){return Z},getAnnotationsLockedCount:function(){return X},isAnnotationLocked:function(){return $},setAnnotationLocked:function(){return K},unlockAllAnnotations:function(){return Y}});var t={};c.r(t),c.d(t,{addAnnotation:function(){return ue},getAnnotation:function(){return ve},getAnnotations:function(){return se},getDefaultAnnotationManager:function(){return le},getViewportSpecificAnnotationManager:function(){return ce},removeAnnotation:function(){return de}});var n={};c.r(n),c.d(n,{triggerSegmentationDataModified:function(){return Ie},triggerSegmentationModified:function(){return Ee},triggerSegmentationRepresentationModified:function(){return we},triggerSegmentationRepresentationRemoved:function(){return ye}});var r={};c.r(r),c.d(r,{addColorLUT:function(){return We},addSegmentation:function(){return Me},addSegmentationRepresentation:function(){return Pe},getColorLUT:function(){return Fe},getDefaultSegmentationStateManager:function(){return De},getGlobalConfig:function(){return Ue},getSegmentation:function(){return xe},getSegmentationRepresentationByUID:function(){return je},getSegmentationRepresentations:function(){return Re},getSegmentations:function(){return Ne},getToolGroupSpecificConfig:function(){return Ae},getToolGroupsWithSegmentation:function(){return ke},removeSegmentationRepresentation:function(){return Be},setGlobalConfig:function(){return Ve},setToolGroupSpecificConfig:function(){return Le}});var o={};c.r(o),c.d(o,{deselectAnnotation:function(){return tr},getAnnotationsSelected:function(){return nr},getAnnotationsSelectedByToolName:function(){return rr},getAnnotationsSelectedCount:function(){return ar},isAnnotationSelected:function(){return or},setAnnotationSelected:function(){return Qn}});var a={};c.r(a),c.d(a,{createSynchronizer:function(){return mo},destroy:function(){return po},destroySynchronizer:function(){return Eo},getAllSynchronizers:function(){return wo},getSynchronizer:function(){return yo},getSynchronizersForViewport:function(){return Vr}});var i={};c.r(i),c.d(i,{hideElementCursor:function(){return ia},initElementCursor:function(){return ra},resetElementCursor:function(){return aa},setElementCursor:function(){return oa}});var l={};c.r(l),c.d(l,{createToolGroup:function(){return fa},destroy:function(){return eo},destroyToolGroup:function(){return Jr},getAllToolGroups:function(){return ga},getToolGroup:function(){return sn},getToolGroupForViewport:function(){return Nt}});var u={};c.r(u),c.d(u,{COLOR_LUT:function(){return fe}});var d={};c.r(d),c.d(d,{createCameraPositionSynchronizer:function(){return pa},createVOISynchronizer:function(){return wa}});var v={};c.r(v),c.d(v,{draw:function(){return xt},drawCircle:function(){return _a},drawEllipse:function(){return Ta},drawHandles:function(){return Sa},drawLine:function(){return Oa},drawLinkedTextBox:function(){return La},drawRect:function(){return Pa},drawTextBox:function(){return Na}});var f={};c.r(f),c.d(f,{createLabelmapVolumeForViewport:function(){return oi},createMergedLabelmapForIndex:function(){return ni},extend2DBoundingBoxInViewAxis:function(){return Xa},getBoundingBoxAroundShape:function(){return $a},getDefaultRepresentationConfig:function(){return Se},isValidRepresentationConfig:function(){return ri},thresholdVolumeByRange:function(){return ti}});var g={};c.r(g),c.d(g,{getTextBoxCoordsCanvas:function(){return ii}});var h={};c.r(h),c.d(h,{findClosestPoint:function(){return Ra},liangBarksyClip:function(){return si}});var m={};c.r(m),c.d(m,{getCanvasEllipseCorners:function(){return di},pointInEllipse:function(){return ui}});var p={};c.r(p),c.d(p,{distanceToPoint:function(){return gi},distanceToPointSquared:function(){return fi},intersectLine:function(){return mi}});var y={};c.r(y),c.d(y,{distanceToPoint:function(){return pi}});var w={};c.r(w),c.d(w,{ellipse:function(){return m},lineSegment:function(){return p},rectangle:function(){return y},vec2:function(){return h}});var E={};c.r(E),c.d(E,{default:function(){return Oi},filterAnnotationsForDisplay:function(){return Ii},filterAnnotationsWithinSlice:function(){return wi},getPointInLineOfSightWithCriteria:function(){return Ti},getWorldWidthAndHeightFromCorners:function(){return Ei}});var I={};c.r(I),c.d(I,{getSliceRange:function(){return Ni},scrollThroughStack:function(){return Mi},snapFocalPointToSlice:function(){return Ci}});var b={};c.r(b),c.d(b,{filterViewportsWithFrameOfReferenceUID:function(){return Ri},filterViewportsWithToolEnabled:function(){return Pi},getViewportIdsWithToolToRender:function(){return ji}});var _={};c.r(_),c.d(_,{getOrientationStringLPS:function(){return Bi},invertOrientationStringLPS:function(){return Fi}});var T={};c.r(T),c.d(T,{calibrateImageSpacing:function(){return Ha},debounce:function(){return Wa},deepMerge:function(){return Gt},drawing:function(){return g},getAnnotationNearPoint:function(){return Va},getAnnotationNearPointOnEnabledElement:function(){return ja},isObject:function(){return Fa},jumpToSlice:function(){return Ka},math:function(){return w},orientation:function(){return _},planar:function(){return E},pointInShapeCallback:function(){return Za},pointInSurroundingSphereCallback:function(){return Qa},segmentation:function(){return f},stackScrollTool:function(){return I},throttle:function(){return Ga},triggerAnnotationRenderForViewportIds:function(){return Br},triggerEvent:function(){return V.triggerEvent},viewportFilters:function(){return b}});var S={};c.r(S),c.d(S,{CursorNames:function(){return Gi},ImageMouseCursor:function(){return Ao},MouseCursor:function(){return Mo},SVGMouseCursor:function(){return $o},elementCursor:function(){return i},registerCursor:function(){return qo},setCursorForElement:function(){return Wi}});var O={};c.r(O);var C={};c.r(C),c.d(C,{getFont:function(){return zi},getState:function(){return qi},getStyle:function(){return Hi},setAnnotationStyle:function(){return Ki},setGlobalStyle:function(){return Yi},setToolStyle:function(){return Zi}});var D={};c.r(D),c.d(D,{config:function(){return C},locking:function(){return e},selection:function(){return o},state:function(){return t}});var x={};c.r(x),c.d(x,{getActiveSegmentationRepresentation:function(){return nl},setActiveSegmentationRepresentation:function(){return rl}});var N={};c.r(N),c.d(N,{getLockedSegments:function(){return il},isSegmentIndexLocked:function(){return ol},setSegmentIndexLocked:function(){return al}});var M={};c.r(M),c.d(M,{addColorLUT:function(){return ll},getColorForSegmentIndex:function(){return sl},setColorLUT:function(){return cl}});var R={};c.r(R),c.d(R,{getSegmentationVisibility:function(){return dl},setSegmentationVisibility:function(){return ul}});var k={};c.r(k),c.d(k,{color:function(){return M},getGlobalConfig:function(){return nn},getGlobalRepresentationConfig:function(){return on},getToolGroupSpecificConfig:function(){return ln},setGlobalConfig:function(){return rn},setGlobalRepresentationConfig:function(){return an},setToolGroupSpecificConfig:function(){return cn},visibility:function(){return R}});var A={};c.r(A),c.d(A,{getActiveSegmentIndex:function(){return fl},setActiveSegmentIndex:function(){return vl}});var L={};c.r(L),c.d(L,{activeSegmentation:function(){return x},addSegmentationRepresentations:function(){return tl},addSegmentations:function(){return Xi},config:function(){return k},removeSegmentationsFromToolGroup:function(){return Xr},segmentIndex:function(){return A},segmentLocking:function(){return N},state:function(){return r},triggerSegmentationEvents:function(){return n}});var P={};c.r(P),c.d(P,{AnnotationStyleStates:function(){return Oo},Events:function(){return j},KeyboardBindings:function(){return Xn},MouseBindings:function(){return $n},SegmentationRepresentations:function(){return Te},ToolModes:function(){return It}});var U,V=c(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",e.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",e.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",e.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",e.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",e.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",e.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",e.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",e.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",e.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",e.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",e.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",e.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",e.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",e.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",e.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL"}(U||(U={}));var j=U;function B(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function F(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function W(e,t,n){return t&&F(e.prototype,t),n&&F(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q=c(907),H=c.n(q),z=new Set;function K(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Q();e&&(t?ee(e,z,n):te(e,z,n)),ne(n,z)}function Y(){var e=Q();!function(e,t){e.forEach((function(n){te(n,e,t)}))}(z,e),ne(e,z)}function Z(){return Array.from(z)}function $(e){return z.has(e)}function X(){return z.size}function J(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==re||t.get!==oe):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:re,get:oe}),K(e,t)}}function Q(){return Object.freeze({added:[],removed:[],locked:[]})}function ee(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function te(e,t,n){t.delete(e)&&n.removed.push(e)}function ne(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,V.triggerEvent)(V.eventTarget,j.ANNOTATION_LOCK_CHANGE,e))}function re(e){K(this,e)}function oe(){return $(this)}var ae=function(){function e(t){var n=this;B(this,e),G(this,"annotations",void 0),G(this,"uid",void 0),G(this,"_imageVolumeModifiedHandler",(function(e){var t=e.detail.FrameOfReferenceUID,r=n.annotations[t];r&&Object.keys(r).forEach((function(e){r[e].forEach((function(e){void 0!==e.invalidated&&(e.invalidated=!0)}))}))})),G(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),G(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),G(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),G(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index;return o[a]}})),G(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,a=n.annotations,i=a[r];i||(a[r]={},i=a[r]);var l=i[o];l||(i[o]=[],l=i[o]),l.push(e),J(e)})),G(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index,i=o[0].metadata;if(o.splice(a,1),!o.length){var l=i.toolName;delete n.annotations[i.FrameOfReferenceUID][l]}}})),G(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var a=o[t];return H()(a)}if(e){var i=r[e];return H()(i)}return H()(r)})),G(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var a=o[t];a||(o[t]={},a=o[t]),a[r]=e}else t?o[t]=e:n.annotations=H()(e)})),t||(t=V.utilities.uuidv4()),this.annotations={},this.uid=t,V.eventTarget.addEventListener(V.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return W(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,a=this.annotations,i=(n=o?[o]:Object.keys(a)).length,l=0;l<i;l++)for(var c,s=a[n[l]],u=(c=r?[r]:Object.keys(s)).length,d=0;d<u;d++){var v=s[c[d]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),ie=new ae("DEFAULT");function le(){return ie}function ce(e){return ie}function se(e,t){var n=(0,V.getEnabledElement)(e),r=ce(),o=n.FrameOfReferenceUID;return r.get(o,t)}function ue(e,t){var n=ce();void 0===t.annotationUID&&(t.annotationUID=V.utilities.uuidv4()),n.addAnnotation(t);var r=(0,V.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=j.ANNOTATION_ADDED,l={annotation:t,viewportId:a,renderingEngineId:o.id};(0,V.triggerEvent)(V.eventTarget,i,l)}function de(e,t){var n=le();t&&(n=ce());var r=n.getAnnotation(e);n.removeAnnotation(e);var o=j.ANNOTATION_REMOVED,a={annotation:r,annotationManagerUID:n.uid};(0,V.triggerEvent)(V.eventTarget,o,a)}function ve(e,t){return ce().getAnnotation(e)}var fe=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var me={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:{}},toolGroups:{}},pe=new(function(){function e(t){B(this,e),G(this,"state",void 0),G(this,"uid",void 0),t||(t=V.utilities.uuidv4()),this.state=H()(me),this.uid=t}return W(e,[{key:"getState",value:function(){return this.state}},{key:"getToolGroups",value:function(){return Object.keys(this.state.toolGroups)}},{key:"getColorLUT",value:function(e){return this.state.colorLUT[e]}},{key:"resetState",value:function(){this.state=H()(me)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=he(he({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(fe,0)}}]),e}())("DEFAULT");function ye(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_REPRESENTATION_REMOVED,n)}function we(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_REPRESENTATION_MODIFIED,n):(Re(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function Ee(e){(e?[e]:Ne().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_MODIFIED,t)}))}function Ie(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_DATA_MODIFIED,n)}var be,_e={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.9,fillAlphaInactive:.85};!function(e){e.Labelmap="LABELMAP"}(be||(be={}));var Te=be;function Se(e){var t=e.type;if(t===Te.Labelmap)return _e;throw new Error("Unknown representation type: ".concat(t))}function Oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Oe(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function De(){return pe}function xe(e){return De().getSegmentation(e)}function Ne(){return De().getState().segmentations}function Me(e,t){var n=De(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},label:t,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:G({},n.type,Ce({},n.data))}}(e);!function(e){var t=Se(e);Ve({renderInactiveSegmentations:!0,representations:G({},e.type,t)},!0)}(r),n.addSegmentation(r),t||Ee(r.segmentationId)}function Re(e){return De().getSegmentationRepresentations(e)}function ke(e){var t=De(),n=t.getState(),r=Object.keys(n.toolGroups),o=[];return r.forEach((function(n){t.getSegmentationRepresentations(n).forEach((function(t){t.segmentationId===e&&o.push(n)}))})),o}function Ae(e){return De().getToolGroupSpecificConfig(e)}function Le(e,t,n){De().setSegmentationRepresentationConfig(e,t),n||we(e)}function Pe(e,t,n){De().addSegmentationRepresentation(e,t),n||we(e,t.segmentationRepresentationUID)}function Ue(){return De().getGlobalConfig()}function Ve(e,t){De().setGlobalConfig(e),t||Ee()}function je(e,t){return De().getSegmentationRepresentationByUID(e,t)}function Be(e,t){De().removeSegmentationRepresentation(e,t),ye(e,t)}function Fe(e){return De().getColorLUT(e)}function We(e,t){De().addColorLUT(e,t)}function Ge(e,t){var n=t||e.currentTarget,r=(0,V.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),a=function(e){return[e.pageX,e.pageY]}(e),i=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,a);return{page:a,client:o,canvas:i,world:r.canvasToWorld(i)}}var qe=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,a=Ge(e,t),i={event:e,eventName:j.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:a,lastPoints:a,currentPoints:a,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};(0,V.triggerEvent)(t,j.MOUSE_DOUBLE_CLICK,i)},He=j.MOUSE_MOVE,ze=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Ge(e),eventName:He,event:e};(0,V.triggerEvent)(t,He,r)},Ke=j.MOUSE_DOWN,Ye=j.MOUSE_DOWN_ACTIVATE,Ze=j.MOUSE_CLICK,$e=j.MOUSE_UP,Xe=j.MOUSE_DRAG,Je={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}},Qe={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};function et(e){var t=Ge(e,Qe.element),n=function(e,t){var n=(0,V.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}(Qe.element,Qe.lastPoints),r=ot(t,n),o={event:e,eventName:Xe,mouseButton:Qe.mouseButton,renderingEngineId:Qe.renderingEngineId,viewportId:Qe.viewportId,camera:{},element:Qe.element,startPoints:rt(Qe.startPoints),lastPoints:rt(n),currentPoints:t,deltaPoints:r};(0,V.triggerEvent)(Qe.element,Xe,o),Qe.lastPoints=rt(t)}function tt(e){clearTimeout(Qe.preventClickTimeout);var t=Qe.isClickEvent?Ze:$e,n=Ge(e,Qe.element),r=ot(n,Qe.lastPoints),o={event:e,eventName:t,mouseButton:Qe.mouseButton,element:Qe.element,renderingEngineId:Qe.renderingEngineId,viewportId:Qe.viewportId,camera:{},startPoints:rt(Qe.startPoints),lastPoints:rt(Qe.lastPoints),currentPoints:n,deltaPoints:r};(0,V.triggerEvent)(o.element,t,o),document.removeEventListener("mousemove",et),document.removeEventListener("mouseup",tt),Qe.element.addEventListener("mousemove",ze),Qe=JSON.parse(JSON.stringify(Je))}function nt(){Qe.isClickEvent=!1}function rt(e){return JSON.parse(JSON.stringify(e))}function ot(e,t){return{page:at(e.page,t.page),client:at(e.client,t.client),canvas:at(e.canvas,t.canvas),world:(n=e.world,r=t.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])};var n,r}function at(e,t){return[e[0]-t[0],e[1]-t[1]]}var it=function(e){Qe.element=e.currentTarget,Qe.mouseButton=e.button;var t=(0,V.getEnabledElement)(Qe.element),n=t.renderingEngineId,r=t.viewportId;Qe.renderingEngineId=n,Qe.viewportId=r,Qe.preventClickTimeout=setTimeout(nt,Qe.clickDelay),Qe.element.removeEventListener("mousemove",ze);var o=Ge(e,Qe.element),a=ot(o,o),i={event:e,eventName:Ke,element:Qe.element,mouseButton:Qe.mouseButton,renderingEngineId:Qe.renderingEngineId,viewportId:Qe.viewportId,camera:{},startPoints:o,lastPoints:o,currentPoints:o,deltaPoints:a};Qe.startPoints=rt(i.startPoints),Qe.lastPoints=rt(i.lastPoints),(0,V.triggerEvent)(i.element,Ke,i)&&(0,V.triggerEvent)(i.element,Ye,i),document.addEventListener("mousemove",et),document.addEventListener("mouseup",tt)};function lt(e){e.removeEventListener("dblclick",qe),e.removeEventListener("mousedown",it),e.removeEventListener("mousemove",ze)}var ct={enable:function(e){lt(e),e.addEventListener("dblclick",qe),e.addEventListener("mousedown",it),e.addEventListener("mousemove",ze)},disable:lt},st=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var a=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),i=a.spinX,l=a.spinY,c=a.pixelX,s=a.pixelY,u=l<0?-1:1,d={event:e,eventName:j.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:i,spinY:l,pixelX:c,pixelY:s,direction:u},points:Ge(e)};(0,V.triggerEvent)(t,j.MOUSE_WHEEL,d)}};function ut(e){e.removeEventListener("wheel",st)}var dt={enable:function(e){ut(e),e.addEventListener("wheel",st,{passive:!1})},disable:ut},vt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},ft={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function gt(e){ft.element=e.currentTarget;var t=(0,V.getEnabledElement)(ft.element),n=t.renderingEngineId,r=t.viewportId;ft.renderingEngineId=n,ft.viewportId=r,ft.key=e.key,ft.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:ft.renderingEngineId,viewportId:ft.viewportId,element:ft.element,key:ft.key,keyCode:ft.keyCode};(0,V.triggerEvent)(o.element,j.KEY_DOWN,o),document.addEventListener("keyup",ht),ft.element.removeEventListener("keydown",gt)}function ht(e){var t={renderingEngineId:ft.renderingEngineId,viewportId:ft.viewportId,element:ft.element,key:ft.key,keyCode:ft.keyCode};document.removeEventListener("keyup",ht),ft.element.addEventListener("keydown",gt),ft=H()(vt),(0,V.triggerEvent)(t.element,j.KEY_UP,t)}var mt=gt;function pt(e){e.removeEventListener("keydown",mt)}var yt,wt,Et={enable:function(e){pt(e),e.addEventListener("keydown",mt)},disable:pt,getModifierKey:function(){return ft.keyCode}};(wt=yt||(yt={})).Active="Active",wt.Passive="Passive",wt.Enabled="Enabled",wt.Disabled="Disabled";var It=yt,bt={},_t={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:bt,enabledElements:[],handleRadius:6},Tt={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:bt,enabledElements:[],handleRadius:6};function St(e,t){if(Tt.svgNodeCache[e])return Tt.svgNodeCache[e][t]?Tt.svgNodeCache[e][t].domRef:void 0}function Ot(e,t,n,r){if(!Tt.svgNodeCache[t])return null;Tt.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function Ct(e,t){Tt.svgNodeCache[e]&&Tt.svgNodeCache[e][t]&&(Tt.svgNodeCache[e][t].touched=!0)}function Dt(e,t){Tt.svgNodeCache[t]&&Object.keys(Tt.svgNodeCache[t]).forEach((function(n){var r=Tt.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete Tt.svgNodeCache[t][n])}))}var xt=function(e,t){var n=function(e){var t=(0,V.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),a=function(e){return e.firstChild.querySelector(".svg-layer")}(e);return Object.keys(Tt.svgNodeCache[o]).forEach((function(e){Tt.svgNodeCache[o][e].touched=!1})),{enabledElement:t,_element:e,_svgLayerElement:a,_svgNodeCacheForCanvas:Tt.svgNodeCache,_getSvgNode:St.bind(this,o),_appendNode:Ot.bind(this,a,o),_setNodeTouched:Ct.bind(this,o),_clearUntouched:Dt.bind(this,a,o)}}(e);t(n),n._clearUntouched()},Nt=function(e,t){var n=Tt.toolGroups.filter((function(n){return n.viewportsInfo.some((function(n){return n.renderingEngineId===t&&(!n.viewportId||n.viewportId===e)}))}));if(n.length){if(n.length>1)throw new Error("Multiple tool groups found for renderingEngineId: ".concat(t," and viewportId: ").concat(e,". You should only\n have one tool group per viewport in a renderingEngine."));return n[0]}};function Mt(e,t){var n=(0,V.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,a=Nt(o,r);if(!a)return[];for(var i=[],l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],u=a.toolOptions[s];if(u&&t.includes(u.mode)){var d=a.getToolInstance(s);i.push(d)}}return i}function Rt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kt(e,t){return kt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},kt(e,t)}function At(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&kt(e,t)}function Lt(e){return Lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Lt(e)}function Pt(e,t){if(t&&("object"===Lt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Rt(e)}function Ut(e){return Ut=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Ut(e)}var Vt=function(e){return e&&"object"===Lt(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},jt=function(e,t){var n;return t&&!0===t.clone&&Vt(e)?Wt((n=e,Array.isArray(n)?[]:{}),e,t):e},Bt=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=jt(t,n):Vt(t)?r[o]=Wt(e[o],t,n):-1===e.indexOf(t)&&r.push(jt(t,n))})),r},Ft=function(e,t,n){var r={};return Vt(e)&&Object.keys(e).forEach((function(t){r[t]=jt(e[t],n)})),Object.keys(t).forEach((function(o){Vt(t[o])&&e[o]?r[o]=Wt(e[o],t[o],n):r[o]=jt(t[o],n)})),r},Wt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=Array.isArray(t),o=n||{arrayMerge:Bt},a=o.arrayMerge||Bt;return r?Array.isArray(e)?a(e,t,n):jt(t,n):Ft(e,t,n)},Gt=Wt,qt=function(){function e(t,n){B(this,e),G(this,"supportedInteractionTypes",void 0),G(this,"configuration",void 0),G(this,"toolGroupId",void 0),G(this,"mode",void 0);var r=Gt(n,t),o=r.configuration,a=void 0===o?{}:o,i=r.supportedInteractionTypes,l=r.toolGroupId;a.strategies||(a.strategies={},a.defaultStrategy=void 0,a.activeStrategy=void 0,a.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=i||[],this.configuration=Object.assign({},a),this.mode=It.Disabled}return W(e,[{key:"getToolName",value:function(){return this.constructor.toolName}},{key:"applyActiveStrategy",value:function(e,t){var n=this.configuration;return n.strategies[n.activeStrategy].call(this,e,t)}},{key:"setConfiguration",value:function(e){this.configuration=Gt(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1];return t.getStackViewports().find((function(e){return e.hasImageId(n)})).getImageData()}if(e.startsWith("volumeId:")){var r=e.split("volumeId:")[1];return V.cache.getVolume(r)}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof V.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof V.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();G(qt,"toolName","BaseTool");var Ht=qt;function zt(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function Kt(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){zt(a,r,o,i,l,"next",e)}function l(e){zt(a,r,o,i,l,"throw",e)}i(void 0)}))}}var Yt=c(162),Zt=c.n(Yt),$t=c(795),Xt=c.n($t),Jt=c(441),Qt=c.n(Jt);function en(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function tn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?en(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):en(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function nn(){return Ue()}function rn(e){Ve(e)}function on(e){return nn().representations[e]}function an(e,t){var n=nn();rn(tn(tn({},n),{},{representations:tn(tn({},n.representations),{},G({},e,t))}))}function ln(e){return Ae(e)}function cn(e,t){Le(e,t)}var sn=function(e){return Tt.toolGroups.find((function(t){return t.id===e}))};function un(){return(un=Kt(Zt().mark((function e(t,n,r){var o,a,i,l;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,V.getEnabledElement)(t),a=o.renderingEngine,i=o.viewport,l=i.id,e.next=6,(0,V.addVolumesToViewports)(a,[{volumeId:n,actorUID:r,visibility:!0}],[l]);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var dn=function(e,t,n){return un.apply(this,arguments)},vn=function(e,t){(0,V.getEnabledElement)(e).viewport.removeVolumeActors([t])};function fn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function gn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fn(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function hn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return mn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var pn=255,yn=new Map;function wn(){return(wn=Kt(Zt().mark((function e(t,n,r){var o,a,i,l,c,s,u,d,v,f;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=xe(o),i=a.representationData[Te.Labelmap].volumeId,l=V.utilities.uuidv4(),e.next=6,In(t,i,l);case 6:return c=new Set,s=Xt().newInstance(),u=Qt().newInstance(),d={segmentationId:o,segmentationRepresentationUID:l,type:Te.Labelmap,segmentsHidden:c,visibility:!0,colorLUTIndex:0,active:!0,config:{cfun:s,ofun:u}},r&&(v=ln(t),f=Gt(v,r),cn(t,{renderInactiveSegmentations:f.renderInactiveSegmentations||!0,representations:gn({},f.representations)})),Pe(t,d),e.abrupt("return",l);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function En(e,t,n,r,o){var a="".concat(e,"-").concat(t),i=yn.get(a),l=!1,c=!1;return yn.set(a,{fillAlpha:n,colorLUTIndex:r}),i||(l=!0,c=!0),i&&i.fillAlpha!==n&&(c=!0),i&&i.colorLUTIndex!==r&&(l=!0),i&&i.renderFill!==o&&(c=!0),{needColorUpdate:l,needOpacityUpdate:c}}function In(e,t,n){return bn.apply(this,arguments)}function bn(){return(bn=Kt(Zt().mark((function e(t,n,r){var o,a,i,l,c,s,u,d,v;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=sn(t),a=o.viewportsInfo,i=hn(a),e.prev=3,i.s();case 5:if((l=i.n()).done){e.next=15;break}if(c=l.value,s=c.viewportId,u=c.renderingEngineId,d=(0,V.getEnabledElementByIds)(s,u)){e.next=11;break}throw new Error("No enabled element found for rendering engine: ".concat(u," and viewport: ").concat(s));case 11:v=d.viewport,dn(v.element,n,r);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),i.e(e.t0);case 20:return e.prev=20,i.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[3,17,20,23]])})))).apply(this,arguments)}var _n={render:function(e,t,n){var r=t.colorLUTIndex,o=t.active,a=t.segmentationId,i=t.segmentationRepresentationUID,l=t.visibility,c=t.config,s=xe(a).representationData[Te.Labelmap].volumeId;if(!V.cache.getVolume(s))throw new Error("No Labelmap found for volumeId: ".concat(s));var u=e.getActor(i);if(u){var d=c.cfun,v=c.ofun,f=n.representations[Te.Labelmap],g=n.renderInactiveSegmentations;!function(e,t,n,r,o,a,i,l){var c=!(arguments.length>8&&void 0!==arguments[8])||arguments[8];r.addPoint(0,0);var s=i?a.fillAlpha:a.fillAlphaInactive,u=i?a.outlineWidthActive:a.outlineWidthInactive,d=i?a.renderFill:a.renderFillInactive,v=Fe(o),f=Math.min(256,v.length),g=t.volumeActor,h=t.uid,m=En(e,h,s,o,d),p=m.needColorUpdate,y=m.needOpacityUpdate;if(p){for(var w=0;w<f;w++){var E=v[w];n.addRGBPoint(w,E[0]/pn,E[1]/pn,E[2]/pn)}g.getProperty().setRGBTransferFunction(0,n)}if(y){if(a.renderFill)for(var I=0;I<f;I++){var b=v[I][3]/255*s;r.addPoint(I,b)}else for(var _=0;_<f;_++)r.addPoint(_,.01);r.setClamping(!1),g.getProperty().setScalarOpacity(0,r)}g.getProperty().setInterpolationTypeToNearest(),g.getProperty().setUseLabelOutline(a.renderOutline),g.getProperty().setLabelOutlineThickness(u);var T=c&&(i||l);g.setVisibility(T)}(e.id,u,d,v,r,f,o,g,l)}else console.warn("No actor found for actorUID: ",i)},addSegmentationRepresentation:function(e,t,n){return wn.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){!function(e,t){var n=sn(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=hn(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,c=(0,V.getEnabledElementByIds)(i,l);vn(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}(e,t),Be(e,t)}};function Tn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Sn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Sn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var On=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{}};return B(this,o),G(Rt(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=sn(t);if(n){var r=Re(t),o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,V.getEnabledElementByIds)(n,t);if(r)return r.viewport}));r.forEach((function(n){var r=e._getMergedRepresentationsConfig(t);o.forEach((function(e){if(n.type!=Te.Labelmap)throw new Error("Render for ".concat(n.type," is not supported yet"));_n.render(e,n,r)}))})),o.forEach((function(e){e.render()}))}})),e}return W(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=Re(e);if(t&&0!==t.length){var n,r=Tn(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,we(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=Re(e);if(t&&0!==t.length){var n,r=Tn(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,we(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=ln(e),n=nn();return Gt(n,t)}}]),o}(Ht);function Cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}G(On,"toolName","SegmentationDisplay");var Dn=It.Active,xn=It.Passive,Nn=It.Enabled,Mn=function(){function e(){var t=this;B(this,e),G(this,"hasBeenDestroyed",void 0),G(this,"_needsRender",new Set),G(this,"_animationFrameSet",!1),G(this,"_animationFrameHandle",null),G(this,"_viewportElements",void 0),G(this,"_renderFlaggedViewports",(function(){t._throwIfDestroyed();for(var e=Array.from(t._viewportElements.values()),n=0;n<e.length;n++){var r=e[n];if(t._needsRender.has(r)&&(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size))return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}})),this._viewportElements=new Map}return W(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e){this._viewportElements.delete(e),0===this._viewportElements.size&&this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,V.getEnabledElement)(e);if(t)if((0,V.getRenderingEngine)(t.renderingEngineId)){var n=Mt(e,[Dn,xn,Nn]),r=t.renderingEngineId,o=t.viewportId,a={element:e,renderingEngineId:r,viewportId:o};xt(e,(function(r){n.forEach((function(n){n instanceof On||!n.renderAnnotation||(n.renderAnnotation(t,r),(0,V.triggerEvent)(e,j.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cn(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},a)))}))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),Rn=new Mn,kn=function(e){Rn.renderViewport(e)},An=function(e){kn(e.detail.element)};function Ln(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=Nt(a,o);if(!i)return[];for(var l=[],c=Object.keys(i.toolOptions),s=0;s<c.length;s++){var u=c[s],d=i.toolOptions[u],v=null!=n&&d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===n}));if(t.includes(d.mode)&&(!n||v)){var f=i.getToolInstance(u);l.push(f)}}return l}var Pn=It.Active,Un=It.Passive,Vn=It.Enabled,jn=function(e){Ln(e,[Pn,Un,Vn]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Bn=It.Active,Fn=It.Passive,Wn=It.Enabled,Gn=function(e){Ln(e,[Bn,Fn,Wn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},qn=It.Active;function Hn(e,t,n){if(Tt.isInteractingWithTool)return!1;var r,o=n.detail,a=o.renderingEngineId,i=o.viewportId,l=Nt(i,a);if(!l)return!1;for(var c=Object.keys(l.toolOptions),s=0;s<c.length;s++){var u=c[s],d=l.toolOptions[u],v=l.getToolInstance(u);if(d.mode===qn&&"function"==typeof v[t]){r=l.getToolInstance(u);break}}r&&r[t](n)}var zn=Hn.bind(null,"Mouse","mouseClickCallback");function Kn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Yn(e,t){if(e){if("string"==typeof e)return Kn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Kn(e,t):void 0}}function Zn(e){return function(e){if(Array.isArray(e))return Kn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Yn(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var $n,Xn,Jn=new Set;function Qn(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?er(e,n):tr(e)}function er(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ir();t||lr(Jn,n),e&&!Jn.has(e)&&(Jn.add(e),n.added.push(e)),cr(n,Jn)}function tr(e){var t=ir();e?Jn.delete(e)&&t.removed.push(e):lr(Jn,t),cr(t,Jn)}function nr(){return Array.from(Jn)}function rr(e){return nr().filter((function(t){return ve(t).metadata.toolName===e}))}function or(e){return Jn.has(e)}function ar(){return Jn.size}function ir(){return Object.freeze({added:[],removed:[],selection:[]})}function lr(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function cr(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,V.triggerEvent)(V.eventTarget,j.ANNOTATION_SELECTION_CHANGE,e))}function sr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ur(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var a=se(e,o.constructor.toolName);a&&("function"==typeof o.filterInteractableAnnotationsForElement&&(a=o.filterInteractableAnnotationsForElement(e,a)),a.length>0&&n.push({tool:o,annotations:a}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function dr(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return vr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function vr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}($n||($n={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=18]="Ctrl",e[e.Alt=17]="Alt"}(Xn||(Xn={}));var fr=It.Active;function gr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Et.getModifierKey(),i=Nt(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],u=i.toolOptions[s],d=u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===(o?o.buttons:$n.Primary)&&e.modifierKey===a}));if(u.mode===fr&&d)return i.getToolInstance(s)}}var hr=It.Active,mr=It.Passive;function pr(e){if(!Tt.isInteractingWithTool){var t=gr(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Ln(e,[hr],e.detail.event.buttons),o=n?Ln(e,[mr]):void 0,a=[].concat(Zn(r||[]),Zn(o||[])),i=e.detail,l=i.element,c=ur(l,a),s=i.currentPoints.canvas,u=function(e,t,n){var r=[];return t.forEach((function(t){var o,a=t.tool,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return sr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(t.annotations);try{for(i.s();!(o=i.n()).done;){var l=o.value;if(!l.isLocked){var c=a.getHandleNearImagePoint(e,l,n,6);if(c){r.push({tool:a,annotation:l,handle:c});break}}}}catch(e){i.e(e)}finally{i.f()}})),r}(l,c,s),d=!!e.detail.event.shiftKey;if(u.length>0){var v=yr(u),f=v.tool,g=v.annotation,h=v.handle;return wr(g.annotationUID,d),void f.handleSelectedCallback(e,g,h,"Mouse")}var m=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=6,a=[];return t.forEach((function(t){var i,l=t.tool,c=dr(t.annotations);try{for(c.s();!(i=c.n()).done;){var s=i.value;if(!s.isLocked&&l.isPointNearTool(e,s,n,o,r)){a.push({tool:l,annotation:s});break}}}catch(e){c.e(e)}finally{c.f()}})),a}(l,c,s,"mouse");if(m.length>0){var p=yr(m),y=p.tool,w=p.annotation;return wr(w.annotationUID,d),void y.toolSelectedCallback(e,w,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function yr(e){return e.length>1&&e.find((function(e){return!$(e.annotation)}))||e[0]}function wr(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(or(e))Qn(e,!1);else{var n=!0;Qn(e,!0,n)}else{var r=!1;Qn(e,!0,r)}}function Er(e){if(!Tt.isInteractingWithTool){var t=gr(e);t&&(Tt.isMultiPartToolActive||t.addNewAnnotation&&Qn(t.addNewAnnotation(e,"mouse").annotationUID))}}var Ir=Hn.bind(null,"Mouse","doubleClickCallback");function br(e){if(!Tt.isInteractingWithTool){var t=gr(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function _r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Tr=It.Active,Sr=It.Passive;function Or(e){if(!Tt.isInteractingWithTool&&!Tt.isMultiPartToolActive){var t,n=Ln(e,[Tr,Sr]),r=e.detail.element,o=ur(r,n),a=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),i=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return _r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(t=l.n()).done;){var c=t.value,s=c.tool,u=c.annotations;"function"==typeof s.mouseMoveCallback&&(i=s.mouseMoveCallback(e,u)||i)}}catch(e){l.e(e)}finally{l.f()}a.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===i&&kn(r)}}var Cr=Hn.bind(null,"Mouse","mouseUpCallback"),Dr=Hn.bind(null,"MouseWheel","mouseWheelCallback"),xr=function(e){e.addEventListener(j.MOUSE_CLICK,zn),e.addEventListener(j.MOUSE_DOWN,pr),e.addEventListener(j.MOUSE_DOWN_ACTIVATE,Er),e.addEventListener(j.MOUSE_DOUBLE_CLICK,Ir),e.addEventListener(j.MOUSE_DRAG,br),e.addEventListener(j.MOUSE_MOVE,Or),e.addEventListener(j.MOUSE_UP,Cr),e.addEventListener(j.MOUSE_WHEEL,Dr)},Nr=function(e){e.removeEventListener(j.MOUSE_CLICK,zn),e.removeEventListener(j.MOUSE_DOWN,pr),e.removeEventListener(j.MOUSE_DOWN_ACTIVATE,Er),e.removeEventListener(j.MOUSE_DOUBLE_CLICK,Ir),e.removeEventListener(j.MOUSE_DRAG,br),e.removeEventListener(j.MOUSE_MOVE,Or),e.removeEventListener(j.MOUSE_UP,Cr),e.removeEventListener(j.MOUSE_WHEEL,Dr)},Mr=It.Active;function Rr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=Qe.mouseButton,a=Et.getModifierKey(),i=Nt(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],u=i.toolOptions[s],d=u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===(null!=o?o:$n.Primary)&&e.modifierKey===a}));if(u.mode===Mr&&d)return i.getToolInstance(s)}}function kr(e){var t=Rr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Nt(o,r),i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}function Ar(e){var t=Rr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Nt(o,r);ft.keyCode=void 0;var i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}var Lr=function(e){e.addEventListener(j.KEY_DOWN,kr),e.addEventListener(j.KEY_UP,Ar)},Pr=function(e){e.removeEventListener(j.KEY_DOWN,kr),e.removeEventListener(j.KEY_UP,Ar)};function Ur(e){var t,n=e.detail,r=n.element,o=n.viewportId,a=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),a=document.createElementNS(e,"feColorMatrix"),i=document.createElementNS(e,"feGaussianBlur"),l=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("width","110%"),r.setAttribute("height","110%"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),a.setAttribute("result","matrixOut"),a.setAttribute("in","offOut"),a.setAttribute("type","matrix"),a.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),i.setAttribute("result","blurOut"),i.setAttribute("in","matrixOut"),i.setAttribute("stdDeviation","0.25"),l.setAttribute("in","SourceGraphic"),l.setAttribute("in2","blurOut"),l.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(a),r.appendChild(i),r.appendChild(l),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);Tt.svgNodeCache[o]={}}(r),t=a,r.querySelector("div.viewport-element").appendChild(t),Rn.addViewportElement(o,r),ct.enable(r),dt.enable(r),Et.enable(r),function(e){e.addEventListener(V.Enums.Events.IMAGE_RENDERED,An)}(r),function(e){e.addEventListener(V.Enums.Events.CAMERA_MODIFIED,jn)}(r),function(e){e.addEventListener(V.Enums.Events.IMAGE_SPACING_CALIBRATED,Gn)}(r),xr(r),Lr(r),Tt.enabledElements.push(r)}var Vr=function(e,t){var n=[];if(!t&&!e)throw new Error("At least one of renderingEngineId or viewportId should be given");for(var r=0;r<Tt.synchronizers.length;r++){var o=Tt.synchronizers[r],a=!o.isDisabled(),i=o.hasSourceViewport(t,e);a&&i&&n.push(o)}return n},jr=function(e){var t=e.detail,n=t.element,r=t.viewportId;!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);delete Tt.svgNodeCache[o]}(n);var o=n.querySelector("svg"),a=n.querySelector("div.".concat("viewport-element"));o&&a.removeChild(o),Rn.removeViewportElement(r),ct.disable(n),dt.disable(n),Et.disable(n),function(e){e.removeEventListener(V.Enums.Events.IMAGE_RENDERED,An)}(n),function(e){e.removeEventListener(V.Enums.Events.CAMERA_MODIFIED,jn)}(n),function(e){e.removeEventListener(V.Enums.Events.IMAGE_SPACING_CALIBRATED,Gn)}(n),Nr(n),Pr(n),function(e){var t=(0,V.getEnabledElement)(e);Vr(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,V.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=Nt(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=Tt.enabledElements.findIndex((function(t){return t===e}));t>-1&&Tt.enabledElements.splice(t,1)}(n)},Br=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;kn(n)}))},Fr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,V.getRenderingEngine)(r);Br(o,[n])},Wr=function(e){e.detail.removed.length&&(0,V.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));Br(e,t)}))},Gr=function(e){var t=e.detail.segmentationId;ke(t).forEach((function(e){Re(e).forEach((function(n){n.segmentationId===t&&we(e,n.segmentationRepresentationUID)}))}))};function qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Hr=function(){function e(){var t=this;B(this,e),G(this,"_needsRender",new Set),G(this,"_animationFrameSet",!1),G(this,"_animationFrameHandle",null),G(this,"hasBeenDestroyed",void 0),G(this,"_renderFlaggedToolGroups",(function(){t._throwIfDestroyed();for(var e=0,n=Array.from(t._needsRender.values());e<n.length;e++){var r=n[e];if(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size)return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}}))}return W(e,[{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=sn(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,V.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(On.toolName);r.forEach((function(e){e.element.addEventListener(V.Enums.Events.IMAGE_RENDERED,a)})),o.renderSegmentation(e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function a(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(V.Enums.Events.IMAGE_RENDERED,a);var i={toolGroupId:Nt(r,o).id,viewportId:r};(0,V.triggerEvent)(V.eventTarget,j.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qr(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i))}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),zr=new Hr,Kr=function(e){zr.renderToolGroupSegmentations(e)},Yr=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=xe(n),a=o.representationData,i=o.type;if(i!==Te.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(i," not supported yet"));var l=V.cache.getVolume(a[i].volumeId);if(l){var c,s=l.imageData,u=l.vtkOpenGLTexture;if(r&&Array.isArray(r))c=r;else{var d=s.getDimensions()[2];c=Zn(Array(d).keys())}c.forEach((function(e){u.setUpdatedFrame(e)})),s.modified(),ke(n).forEach((function(e){Kr(e)}))}else console.warn("segmentation not found in cache")},Zr=function(e){var t=e.detail.toolGroupId;Kr(t)},$r=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,Kr(n)},Xr=function(e,t){var n=Re(e);if(t&&0!==t.length){var r=n.map((function(e){return e.segmentationRepresentationUID})),o=t;if(o){var a=t.filter((function(e){return!r.includes(e)}));if(a.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(a)))}else o=r;o.forEach((function(t){!function(e,t){var n=je(e,t).type;if(n!==Te.Labelmap)throw new Error("The representation ".concat(n," is not supported yet"));_n.removeSegmentationRepresentation(e,t)}(e,t)}))}else console.warn("removeSegmentationsFromToolGroup: No segmentationRepresentations found for toolGroupId: ",e)},Jr=function(e){var t=Tt.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Xr(e),Tt.toolGroups.splice(t,1))};function Qr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var eo=function(){var e,t=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(Zn(Tt.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;Jr(n.id)}}catch(e){t.e(e)}finally{t.f()}Tt.toolGroups=[]},to=!1;function no(){to||(function(){oo();var e=V.Enums.Events.ELEMENT_ENABLED,t=V.Enums.Events.ELEMENT_DISABLED;V.eventTarget.addEventListener(e,Ur),V.eventTarget.addEventListener(t,jr)}(),ao(),V.eventTarget.addEventListener(j.ANNOTATION_MODIFIED,Fr),V.eventTarget.addEventListener(j.ANNOTATION_SELECTION_CHANGE,Wr),V.eventTarget.addEventListener(j.ANNOTATION_SELECTION_CHANGE,Wr),V.eventTarget.addEventListener(j.SEGMENTATION_MODIFIED,Gr),V.eventTarget.addEventListener(j.SEGMENTATION_DATA_MODIFIED,Yr),V.eventTarget.addEventListener(j.SEGMENTATION_REPRESENTATION_MODIFIED,Zr),V.eventTarget.addEventListener(j.SEGMENTATION_REPRESENTATION_REMOVED,$r),to=!0)}function ro(){oo(),ao(),eo(),bt={},Tt=H()(_t);var e=le(),t=De();e.restoreAnnotations({}),t.resetState(),to=!1}function oo(){var e=V.Enums.Events.ELEMENT_ENABLED,t=V.Enums.Events.ELEMENT_DISABLED;V.eventTarget.removeEventListener(e,Ur),V.eventTarget.removeEventListener(t,jr)}function ao(){V.eventTarget.removeEventListener(j.ANNOTATION_MODIFIED,Fr),V.eventTarget.removeEventListener(j.ANNOTATION_SELECTION_CHANGE,Wr),V.eventTarget.removeEventListener(j.ANNOTATION_SELECTION_CHANGE,Wr),V.eventTarget.removeEventListener(j.SEGMENTATION_MODIFIED,Gr),V.eventTarget.removeEventListener(j.SEGMENTATION_DATA_MODIFIED,Yr),V.eventTarget.removeEventListener(j.SEGMENTATION_REPRESENTATION_MODIFIED,Zr),V.eventTarget.removeEventListener(j.SEGMENTATION_REPRESENTATION_REMOVED,$r)}function io(e){var t=e.toolName,n=void 0!==Tt.tools[t];if(!t)throw new Error("No Tool Found for the ToolClass ".concat(e.name));if(n)throw new Error("".concat(t," has already been added globally"));Tt.tools[t]={toolClass:e}}function lo(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!Tt.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete Tt.tools[t]}function co(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function so(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return co(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?co(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(ur(e,Mt(e,[It.Active,It.Passive])));try{for(n.s();!(t=n.n()).done;){var r=t.value.tool.cancel(e);if(r)return r}}catch(e){n.e(e)}finally{n.f()}}var uo=function(){function e(t,n,r){var o=this;B(this,e),G(this,"_enabled",void 0),G(this,"_eventName",void 0),G(this,"_eventHandler",void 0),G(this,"_ignoreFiredEvents",void 0),G(this,"_sourceViewports",void 0),G(this,"_targetViewports",void 0),G(this,"id",void 0),G(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,V.getEnabledElement)(e.currentTarget);if(t){var n=t.renderingEngineId,r=t.viewportId;o.fireEvent({renderingEngineId:n,viewportId:r},e)}}})),this._enabled=!0,this._eventName=n,this._eventHandler=r,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this.id=t}return W(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!fo(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,V.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){fo(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}},{key:"getSourceViewports",value:function(){return this._sourceViewports}},{key:"getTargetViewports",value:function(){return this._targetViewports}},{key:"destroy",value:function(){var e=this;this._sourceViewports.forEach((function(t){return e.removeSource(t)})),this._targetViewports.forEach((function(t){return e.removeTarget(t)}))}},{key:"remove",value:function(e){this.removeTarget(e),this.removeSource(e)}},{key:"removeSource",value:function(e){var t=vo(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,V.getRenderingEngine)(e.renderingEngineId);if(!t)throw new Error("No RenderingEngine for Id: ".concat(e.renderingEngineId));return t.getViewport(e.viewportId).element}(e);this._sourceViewports.splice(t,1),n.removeEventListener(this._eventName,this._eventHandler),this._updateDisableHandlers()}}},{key:"removeTarget",value:function(e){var t=vo(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return fo(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"fireEvent",value:function(e,t){if(!this.isDisabled()&&!this._ignoreFiredEvents){this._ignoreFiredEvents=!0;try{for(var n=0;n<this._targetViewports.length;n++){var r=this._targetViewports[n];e.viewportId===r.viewportId||this._eventHandler(this,e,r,t)}}catch(e){console.warn("Synchronizer, for: ".concat(this._eventName),e)}finally{this._ignoreFiredEvents=!1}}}},{key:"_hasSourceElements",value:function(){return 0!==this._sourceViewports.length}},{key:"_updateDisableHandlers",value:function(){var e=function(e,t){for(var n=[],r=e.concat(t),o=function(e){var t=r[e];n.some((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))||n.push(t)},a=0;a<r.length;a++)o(a);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,V.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(V.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(V.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function vo(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function fo(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var go,ho=uo,mo=function(e,t,n){if(Tt.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new ho(e,t,n);return Tt.synchronizers.push(r),r},po=function(){for(;Tt.synchronizers.length>0;)Tt.synchronizers.pop().destroy()},yo=function(e){return Tt.synchronizers.find((function(t){return t.id===e}))},wo=function(){return Tt.synchronizers},Eo=function(e){var t=Tt.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(Tt.synchronizers[t].destroy(),Tt.synchronizers.splice(t,1))};function Io(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Ut(e)););return e}function bo(){return bo="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=Io(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},bo.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(go||(go={}));var _o,To,So,Oo=go;function Co(e,t,n,r){for(var o=function(e,t,n){var r=["tool.style.".concat(e)];return t&&r.push("".concat(r[0]).concat(t)),n&&r.push("".concat(r[r.length-1]).concat(n)),r}(t,n,r),a=o.length-1;a>=0;--a){var i=e.get(o[a]);if(void 0!==i)return i}}function Do(e,t,n){return Co(V.Settings.getRuntimeSettings(),e,t,n)}V.Settings.getDefaultSettings().set("tool.style",{color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 255, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",textBox:{fontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 255, 0)",colorLocked:"rgb(255, 255, 0)",background:"",link:{lineWidth:"1",lineDash:"2,3"}}}),_o=["",It.Active,It.Passive],To=[Oo.Default,Oo.Highlighted,Oo.Selected,Oo.Locked],(So=V.Settings.getDefaultSettings()).forEach((function(e){var t=function(t){return t.length>0&&e.endsWith(t)};!e.startsWith("tool.style.")||To.some(t)||_o.some(t)||To.forEach((function(t){_o.forEach((function(n){var r="".concat(e).concat(t).concat(n);So.set(r,So.get(r))}))}))}));var xo=Symbol("DefinedCursors"),No=new Set(["alias","all-scroll","auto","cell","col-resize","context-menu","copy","crosshair","default","e-resize","ew-resize","grab","grabbing","help","move","ne-resize","nesw-resize","no-drop","none","not-allowed","n-resize","ns-resize","nw-resize","nwse-resize","pointer","progress","row-resize","se-resize","s-resize","sw-resize","text","vertical-text","wait","w-resize","zoom-in","zoom-out"]),Mo=function(){function e(t,n){B(this,e),G(this,"name",void 0),G(this,"fallback",void 0),this.name=t+"",this.fallback=n}return W(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=Ro(e,xo),r=n.get(t);return r instanceof e?r:No.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(Ro(e,xo).set(t,n),!0)}}]),e}();function Ro(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var ko=No.values();var Ao=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(e,t,n,a,i){var l;return B(this,o),G(Rt(l=r.call(this,a||o.getUniqueInstanceName("image-cursor"),i)),"url",void 0),G(Rt(l),"x",void 0),G(Rt(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return W(o,[{key:"getStyleProperty",value:function(){var e=this.url,t=this.x,n=this.y,r="url('".concat(e,"')");return t>=0&&n>=0&&(t>0||n>0)&&(r+=" ".concat(t," ").concat(n)),this.addFallbackStyleProperty(r)}}],[{key:"getUniqueInstanceName",value:function(e){return"".concat(e,"-").concat(V.utilities.getRuntimeId(o))}}]),o}(Mo),Lo={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:'\n <path stroke="{{color}}" d="M8 16L8 0"></path>\n <path stroke="{{color}}" d="M16 8L0 8"></path>\n '},Po={x:127,y:60},Uo='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',Vo='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n<rect fill="{{color}}" x="95.84" y="9.38" width="15.85" height="47.14"/>\n',jo='<path fill="{{color}}" d="M82.89,10a12.09,12.09,0,0,0-16.8-2.5l-27.5,20.4-8.5-6.3a2.93,2.93,0,0,1-1.1-3,14.66,14.66,0,0,0,.1-6.6,14.08,14.08,0,1,0-6.5,15.2,2.87,2.87,0,0,1,3.2.2l8.2,6.1-8.2,6.1a2.87,2.87,0,0,1-3.2.2,14.16,14.16,0,1,0,6.7,14.4,14,14,0,0,0-.3-5.8,2.93,2.93,0,0,1,1.1-3l8.5-6.3,27.5,20.4A11.91,11.91,0,0,0,82.89,57l-31.7-23.5ZM15.29,21a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,21Zm0,36.8a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,57.77Zm28.3-21.5a2.8,2.8,0,1,1,2.8-2.8A2.8,2.8,0,0,1,43.59,36.27Z" transform="translate(-1.17 -0.96)"/>',Bo='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',Fo='<path fill="{{color}}" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>',Wo={Angle:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50\n 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23\n 10l50 50q10 10 10 23z" />',viewBox:{x:1792,y:1792}}),ArrowAnnotate:Go(Lo,{iconContent:'<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />\n </g>',viewBox:{x:24,y:24}}),Bidirectional:Go(Lo,{iconContent:'<g fill="{{color}}" stroke-width="3" stroke="{{color}}">\n <path d="M27.63 3.21L3.12 28.81"></path>\n <path d="M27.63 15.75L15.27 4.43"></path>\n <path d="M16.5 4.28C16.5 4.96 15.95 5.51 15.27 5.51C14.59 5.51 14.03 4.96 14.03 4.28C14.03 3.59 14.59 3.04 15.27 3.04C15.95 3.04 16.5 3.59 16.5 4.28Z" ></path>\n <path d="M28.87 3.19C28.87 3.87 28.31 4.43 27.63 4.43C26.95 4.43 26.4 3.87 26.4 3.19C26.4 2.51 26.95 1.95 27.63 1.95C28.31 1.95 28.87 2.51 28.87 3.19Z"></path>\n <path d="M28.87 15.75C28.87 16.43 28.31 16.99 27.63 16.99C26.95 16.99 26.4 16.43 26.4 15.75C26.4 15.07 26.95 14.51 27.63 14.51C28.31 14.51 28.87 15.07 28.87 15.75Z"></path>\n <path d="M4.73 28.44C4.73 29.12 4.17 29.68 3.49 29.68C2.81 29.68 2.25 29.12 2.25 28.44C2.25 27.76 2.81 27.2 3.49 27.2C4.17 27.2 4.73 27.76 4.73 28.44Z"></path>\n </g>',viewBox:{x:48,y:48}}),CobbAngle:Go(Lo,{iconContent:'<g stroke="{{color}}" stroke-width="3">\n <path d="M28.59 2.34L3.82 12.32"></path>\n <path d="M28.59 29.66L3.82 19.68"></path>\n <path stroke-dasharray="2" fill-opacity="0" d="M12.37\n 23.06C12.67 22.36 12.85 21.93 12.92 21.76C14.6 17.8 14.68 13.35 13.15\n 9.33C13.11 9.24 13.02 9 12.88 8.63">\n </path>\n </g>',viewBox:{x:32,y:32}}),CircleROI:Go(Lo,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:Go(Lo,{iconContent:'<path stroke="{{color}}" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16\n 25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14\n 6.3 30.74 10.54 30.74 15.76Z" />',viewBox:{x:32,y:32}}),FreehandROI:Go(Lo,{iconContent:'<g fill="{{color}}" stroke="{{color}}" stroke-width="2">\n <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>\n <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>\n <line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902"/>\n <line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026"/>\n <line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585"/>\n <line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848"/>\n <line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688"/>\n <line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959"/>\n <line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945"/>\n <line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655"/>\n <line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648"/>\n <line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785"/>\n <line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779"/>\n <line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204"/>\n <line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488"/>\n <line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774"/>\n <line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349"/>\n <line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351"/>\n <line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213"/>\n <line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065"/>\n <line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528"/>\n <line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926"/>\n <line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855"/>\n <line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024"/>\n <line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895"/>\n <line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909"/>\n <line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348"/>\n <line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359"/>\n <line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651"/>\n <ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801"/>\n </g>',viewBox:{x:18,y:18}}),FreehandROISculptor:Go(Lo,{iconContent:'<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>\n <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>\n <line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759"/>\n <line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707"/>\n <line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828"/>\n <line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842"/>\n <line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918"/>\n <line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153"/>\n <line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898"/>\n <line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829"/>\n <line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918"/>\n <line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145"/>\n <line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621"/>\n <line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352"/>\n <line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407"/>\n <line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807"/>\n <line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758"/>\n <line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096"/>\n <line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792"/>\n <line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171"/>\n <line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813"/>\n <line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427"/>\n <line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013"/>\n <line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271"/>\n <line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475"/>\n <line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758"/>\n <line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048"/>\n <line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166"/>\n <line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794"/>\n <line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614"/>\n <line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925"/>\n <ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918"/>\n </g>',viewBox:{x:18,y:18}}),Length:Go(Lo,{iconContent:'<g id="length-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />\n </g>',viewBox:{x:24,y:24}}),Probe:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75\n 75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73\n 198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5\n 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5\n 385.5-103 385.5 103 279.5 279.5 103 385.5z" />',viewBox:{x:1792,y:1792}}),RectangleROI:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47\n 113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0\n 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119\n 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),TextMarker:Go(Lo,{iconContent:'<path fill="{{color}}" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0\n 57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29\n 31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15\n 34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 5-.5\n 13.5t-.5 12.5q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0\n 12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11\n 2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0\n 22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58\n 0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z" />',viewBox:{x:1792,y:1792}}),Crosshairs:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26\n 19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45\n 19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26\n 0 45 19t19 45v128q0 26-19 45t-45 19h-109q32 108 112.5 188.5t188.5\n 112.5v-109q0-26 19-45t45-19h128q26 0 45 19t19 45v109q108-32\n 188.5-112.5t112.5-188.5zm339-192v128q0 26-19 45t-45 19h-143q-37 161-154.5\n 278.5t-278.5 154.5v143q0 26-19 45t-45 19h-128q-26\n 0-45-19t-19-45v-143q-161-37-278.5-154.5t-154.5-278.5h-143q-26\n 0-45-19t-19-45v-128q0-26 19-45t45-19h143q37-161\n 154.5-278.5t278.5-154.5v-143q0-26 19-45t45-19h128q26 0 45 19t19 45v143q161\n 37 278.5 154.5t154.5 278.5h143q26 0 45 19t19 45z" />',viewBox:{x:1792,y:1792}}),Eraser:Go(Lo,{iconContent:'<path transform="translate(0,1792) scale(1,-1)" fill="{{color}}" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15\n 34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38\n 0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38\n 0 69.5 20.5t47.5 54.5z" />',viewBox:{x:2048,y:1792}}),Magnify:Go(Lo,{iconContent:'<path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />',viewBox:{x:512,y:512}}),Pan:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17\n 39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355\n 355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59\n 39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12\n 0-24-5-40-17-40-59v-448q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69l-144\n 144 355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19\n 45v448q0 42-39 59-13 5-25 5-26 0-45-19z" />',viewBox:{x:1792,y:1792}}),Rotate:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39\n 14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5\n 163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0\n 225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109\n 132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298\n 164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14\n 39 17 39 59z" />',viewBox:{x:1792,y:1792}}),StackScroll:Go(Lo,{iconContent:'<path fill="{{color}}" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0\n 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547\n 0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z" />',viewBox:{x:24,y:28}}),WindowLevelRegion:Go(Lo,{iconContent:'<path fill="{{color}}" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119\n 0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5\n 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),WindowLevel:Go(Lo,{iconContent:'\n <path fill="{{color}}" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />\n <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="{{color}}" />',viewBox:{x:18,y:18}}),Zoom:Go(Lo,{iconContent:'\n <path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />\n <path fill="{{color}}" transform="scale(0.22,0.22) translate(1400,0)" d="M1216\n 320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19\n 19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26\n 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z" />',viewBox:{x:640,y:512}}),segmentationFreeHandEraseInside:Go(Lo,{iconContent:"".concat(jo," ").concat(Uo),viewBox:Po}),segmentationFreeHandFillInside:Go(Lo,{iconContent:"".concat(jo," ").concat(Vo),viewBox:Po}),segmentationFreeHandEraseOutside:Go(Lo,{iconContent:"".concat(jo," ").concat(Uo),viewBox:Po}),segmentationFreeHandFillOutside:Go(Lo,{iconContent:"".concat(jo," ").concat(Vo),viewBox:Po}),segmentationRectangleEraseInside:Go(Lo,{iconContent:"".concat(Bo," ").concat(Uo),viewBox:Po}),RectangleScissor:Go(Lo,{iconContent:"".concat(Bo," ").concat(Vo),viewBox:Po}),"RectangleScissor.FILL_INSIDE":Go(Lo,{iconContent:"".concat(Bo," ").concat(Vo),viewBox:Po}),"RectangleScissor.FILL_OUTSIDE":Go(Lo,{iconContent:"".concat(Bo," ").concat(Vo),viewBox:Po}),"RectangleScissor.ERASE_OUTSIDE":Go(Lo,{iconContent:"".concat(Bo," ").concat(Uo),viewBox:Po}),"RectangleScissor.ERASE_INSIDE":Go(Lo,{iconContent:"".concat(Bo," ").concat(Uo),viewBox:Po}),CircleScissor:Go(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Po}),"CircleScissor.FILL_INSIDE":Go(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Po}),"CircleScissor.ERASE_OUTSIDE":Go(Lo,{iconContent:"".concat(Fo," ").concat(Uo),viewBox:Po}),"CircleScissor.FILL_OUTSIDE":Go(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Po})};function Go(e,t){return Object.assign(Object.create(e),t)}function qo(e,t,n){Wo[e]=Go(Lo,{iconContent:t,viewBox:n})}function Ho(e){if(Object.prototype.hasOwnProperty.call(Wo,e))return Wo[e]}var zo=Object.keys(Wo);var Ko="color",Yo=Oo.Highlighted,Zo=It.Active,$o=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(e,t,n,a,i){return B(this,o),r.call(this,e,t,n,a,i)}return W(o,null,[{key:"getDefinedCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;n||(n=Do(Ko,Yo,Zo));var r=Jo(e,t,n),a=bo(Ut(o),"getDefinedCursor",this).call(this,r);if(!a){var i=Ho(e);i&&(a=Qo(i,r,t,n,bo(Ut(o),"getDefinedCursor",this).call(this,"default")),bo(Ut(o),"setDefinedCursor",this).call(this,r,a))}return a}}]),o}(Ao);function Xo(e,t){var n=Object(t),r=Object.prototype.hasOwnProperty.bind(n);return(e+"").replace(/\{\{(\w+)\}\}/g,(function(e,t){return r(t)?n[t]+"":""}))}function Jo(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function Qo(e,t,n,r,o){var a=e.mousePoint,i=a.x,l=a.y;return new $o(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?ta:ea)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),i,l,t,o)}function ea(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Xo('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(r,'" height="').concat(r,'" viewBox="0 0\n ').concat(o.x," ").concat(o.y,'">\n ').concat(n,"\n </svg>"),t)}function ta(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,a=e.mousePointerGroupString,i=r/Math.max(o.x,o.y,1),l=16+r;return Xo('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(a,'</g>\n <g transform="translate(16, 16) scale(').concat(i,')">').concat(n,"</g>\n </svg>"),t)}var na=Symbol("ElementCursorsMap");function ra(e,t){la(e)[0]=t,oa(e,t)}function oa(e,t){var n=la(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof Mo?t:Mo.getDefinedCursor("auto")).getStyleProperty()}function aa(e){oa(e,la(e)[1])}function ia(e){oa(e,Mo.getDefinedCursor("none"))}function la(e){var t=la[na];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(la,na,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}var ca=It.Active,sa=It.Passive,ua=It.Enabled,da=It.Disabled,va=function(){function e(t){B(this,e),G(this,"id",void 0),G(this,"viewportsInfo",[]),G(this,"toolOptions",{}),G(this,"_toolInstances",{}),this.id=t}return W(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Tt.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var a=n.toolClass,i={name:e,toolGroupId:this.id,configuration:t},l=new a(i);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addViewport",value:function(e,t){var n=(0,V.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var a=!1;r.renderingEngineId===e&&(a=!0,t&&r.viewportId!==t&&(a=!1)),a&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this._toolInstances[e]){var n=this.toolOptions[e]?this.toolOptions[e].bindings:[],r=t.bindings?t.bindings:[],o={bindings:[].concat(Zn(n),Zn(r)),mode:ca};this.toolOptions[e]=o,this._toolInstances[e].mode=ca,this._hasMousePrimaryButtonBinding(t)&&this.setViewportsCursorByToolName(e),"function"==typeof this._toolInstances[e].onSetToolActive&&this._toolInstances[e].onSetToolActive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){if(void 0!==this._toolInstances[e]){var t=this.getToolOptions(e),n=Object.assign({bindings:t?t.bindings:[]},t,{mode:sa});n.bindings=n.bindings.filter((function(e){return e.mouseButton!==$n.Primary}));var r=sa;0!==n.bindings.length&&(r=ca,n.mode=r),this.toolOptions[e]=n,this._toolInstances[e].mode=r,"function"==typeof this._toolInstances[e].onSetToolPassive&&this._toolInstances[e].onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:ua};this.toolOptions[e]=t,this._toolInstances[e].mode=ua,"function"==typeof this._toolInstances[e].onSetToolEnabled&&this._toolInstances[e].onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:da};this.toolOptions[e]=t,this._toolInstances[e].mode=da,"function"==typeof this._toolInstances[e].onSetToolDisabled&&this._toolInstances[e].onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){return this.toolOptions[e]}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===ca&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=t?"".concat(e,".").concat(t):e,r=$o.getDefinedCursor(n,!0);r||(r=Mo.getDefinedCursor("default")),this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId,o=(0,V.getRenderingEngine)(t).getViewport(n);o&&o.element&&ra(o.element,r)}))}},{key:"_hasMousePrimaryButtonBinding",value:function(e){var t;return null==e||null===(t=e.bindings)||void 0===t?void 0:t.some((function(e){return e.mouseButton===$n.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,V.getRenderingEngine)(t).renderViewport(n)}))}}]),e}(),fa=function(e){if(!Tt.toolGroups.some((function(t){return t.id===e}))){var t=new va(e);return Tt.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},ga=function(){return Tt.toolGroups};function ha(e,t,n,r){if(t.renderingEngineId!==n.renderingEngineId||t.viewportId!==n.viewportId){var o=r.detail.camera,a=(0,V.getRenderingEngine)(n.renderingEngineId);if(!a)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var i=a.getViewport(n.viewportId);i.setCamera(o),i.render()}}var ma=V.Enums.Events.CAMERA_MODIFIED;function pa(e){return mo(e,ma,ha)}function ya(e,t,n,r){var o=r.detail,a=o.volumeId,i=o.range,l=(0,V.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var c=l.getViewport(n.viewportId);if(c instanceof V.VolumeViewport){var s=c.getActor(a);s&&s.volumeActor.getProperty().getRGBTransferFunction(0).setRange(i.lower,i.upper)}else{if(!(c instanceof V.StackViewport))throw new Error("Viewport type not supported.");c.setProperties({voiRange:i})}c.render()}function wa(e){return mo(e,V.Enums.Events.VOI_MODIFIED,ya)}var Ea=function(e,t,n,r){return"".concat(e,"::").concat(t,"::").concat(n,"::").concat(r)},Ia=function(e,t){Object.keys(e).forEach((function(n){var r=t.getAttribute(n),o=e[n];void 0===o||""===o?t.removeAttribute(n):r!==o&&t.setAttribute(n,o)}))},ba=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},_a=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},i),c=l.color,s=l.fill,u=l.width,d=l.lineWidth,v=d||u,f="http://www.w3.org/2000/svg",g=Ea(t,n,"circle",r),h=e._getSvgNode(g),m={cx:"".concat(o[0]),cy:"".concat(o[1]),r:"".concat(a),stroke:c,fill:s,"stroke-width":v};if(h)Ia(m,h),e._setNodeTouched(g);else{var p=document.createElementNS(f,"circle");ba(m,p),e._appendNode(p,g)}},Ta=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=u||s,f="http://www.w3.org/2000/svg",g=Ea(t,n,"ellipse",r),h=e._getSvgNode(g),m=Math.abs(o[0]-a[0]),p=Math.abs(o[1]-a[1]),y=Math.min(o[0],a[0]),w=Math.min(o[1],a[1]),E=[y+m/2,w+p/2],I=m/2,b=p/2,_={cx:"".concat(E[0]),cy:"".concat(E[1]),rx:"".concat(I),ry:"".concat(b),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":d};if(h)Ia(_,h),e._setNodeTouched(g);else{var T=document.createElementNS(f,"ellipse");ba(_,T),e._appendNode(T,g)}},Sa=function(e,t,n,r,o){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},a),l=i.color,c=i.handleRadius,s=i.width,u=i.lineWidth,d=i.fill,v=i.type,f=u||s,g=0;g<o.length;g++){var h=o[g],m="http://www.w3.org/2000/svg",p=Ea(t,n,"handle","hg-".concat(r,"-index-").concat(g)),y=void 0;if("circle"===v)y={cx:"".concat(h[0]),cy:"".concat(h[1]),r:c,stroke:l,fill:d,"stroke-width":f};else{if("rect"!==v)throw new Error("Unsupported handle type: ".concat(v));var w=parseFloat(c),E=1.5*w,I=h[0]-.5*E,b=h[1]-.5*E;y={x:"".concat(I),y:"".concat(b),width:"".concat(E),height:"".concat(E),stroke:l,fill:d,"stroke-width":f,rx:"".concat(.1*E)}}var _=e._getSvgNode(p);if(_)Ia(y,_),e._setNodeTouched(p);else{var T=document.createElementNS(m,v);ba(y,T),e._appendNode(T,p)}}};function Oa(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};if(!(isNaN(o[0])||isNaN(o[1])||isNaN(a[0])||isNaN(a[1]))){var l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=u||s,f="http://www.w3.org/2000/svg",g=Ea(t,n,"line",r),h=e._getSvgNode(g),m={x1:"".concat(o[0]),y1:"".concat(o[1]),x2:"".concat(a[0]),y2:"".concat(a[1]),stroke:c,"stroke-width":v,"stroke-dasharray":d};if(h)Ia(m,h),e._setNodeTouched(g);else{var p=document.createElementNS(f,"line");ba(m,p),e._appendNode(p,g)}}}function Ca(e,t,n,r,o,a,i){var l,c=i.padding,s=i.color,u=i.fontFamily,d=i.fontSize,v=i.background,f=a[0]+c,g=a[1]+c,h=Ea(t,n,"text",r),m=e._getSvgNode(h);if(m){for(var p=m.querySelector("text"),y=Array.from(p.children),w=0;w<y.length;w++){var E=y[w],I=o[w]||"";E.textContent=I}var b={fill:s,"font-size":d,"font-family":u},_={transform:"translate(".concat(f," ").concat(g,")")};Ia(b,p),Ia(_,m),l=xa(m,v),e._setNodeTouched(h)}else{var T=document.createElementNS("http://www.w3.org/2000/svg","g");T.setAttribute("transform","translate(".concat(f," ").concat(g,")"));for(var S=function(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),a="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",a),o}(i),O=0;O<o.length;O++){var C=Da(o[O]);S.appendChild(C)}T.appendChild(S),e._appendNode(T,h),l=xa(T,v)}return Object.assign({},l,{x:f,y:g,height:l.height+c,width:l.width+c})}function Da(e){var t=document.createElementNS("http://www.w3.org/2000/svg","tspan");return t.setAttribute("x","0"),t.setAttribute("dy","1.2em"),t.textContent=e,t}function xa(e,t){var n=e.querySelector("rect.background");if(!t)return n&&e.removeChild(n),e.getBBox();n||((n=document.createElementNS("http://www.w3.org/2000/svg","rect")).setAttribute("class","background"),e.insertBefore(n,e.firstChild));var r=e.getBBox(),o={x:"".concat(r.x),y:"".concat(r.y),width:"".concat(r.width),height:"".concat(r.height),fill:t};return Ia(o,n),r}var Na=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},i),c=Ca(e,t,n,r,o,a,l);return c};function Ma(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}}(e,t)||Yn(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ra(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,a,i,l,c,s,u,d=(o=e,i=(a=Ma(t,2))[0],l=a[1],s=(c=Ma(o,2))[0],u=c[1],Math.sqrt(Math.pow(i-s,2)+Math.pow(l-u,2)));d<r&&(r=d,n=Zn(e))})),n}function ka(e){var t=e.x,n=e.y,r=e.height,o=e.width,a=o/2,i=r/2;return[[t+a,n],[t,n+i],[t+a,n+r],[t+o,n+i]]}var Aa=function(e,t,n,r,o,a,i){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},c=o.length>0?Ra(o,a):a,s=ka(i),u=Ra(s,c),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},l);Oa(e,t,n,"link-".concat(r),c,u,d)},La=function(e,t,n,r,o,a,i,l){var c=arguments.length>8&&void 0!==arguments[8]?arguments[8]:{},s=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},c),u=Na(e,t,n,r,o,a,s);return Aa(e,t,n,r,i,a,u,s),u};function Pa(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=u||s,f="http://www.w3.org/2000/svg",g=Ea(t,n,"rect",r),h=e._getSvgNode(g),m=[Math.min(o[0],a[0]),Math.min(o[1],a[1])],p=Math.abs(o[0]-a[0]),y=Math.abs(o[1]-a[1]),w={x:"".concat(m[0]),y:"".concat(m[1]),width:"".concat(p),height:"".concat(y),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":d};if(h)Ia(w,h),e._setNodeTouched(g);else{var E=document.createElementNS(f,"rect");ba(w,E),e._appendNode(E,g)}}function Ua(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Va(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,V.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return ja(r,t,n)}function ja(e,t,n){var r=e.renderingEngineId,o=e.viewportId,a=Nt(o,r);if(!a)return null;var i=a._toolInstances;for(var l in i){var c=Ba(i[l],e,t,n);if(c)return c}return null}function Ba(e,t,n,r){var o=se(t.viewport.element,e.constructor.toolName);if(null!=o&&o.length){var a,i=t.viewport.element,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ua(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ua(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(a=l.n()).done;){var c=a.value;if(e.isPointNearTool(i,c,n,r,"")||e.getHandleNearImagePoint(i,c,n,r))return c}}catch(e){l.e(e)}finally{l.f()}}return null}var Fa=function(e){var t=Lt(e);return null!==e&&("object"===t||"function"===t)},Wa=function(e,t,n){var r,o,a,i,l,c,s=0,u=!1,d=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,a=o;return r=o=void 0,s=t,i=e.apply(a,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function m(e){return s=e,l=h(y,t),u?g(e):i}function p(e){var n=e-c;return void 0===c||n>=t||n<0||d&&e-s>=a}function y(){var e=Date.now();if(p(e))return w(e);l=h(y,function(e){var n=e-s,r=t-(e-c);return d?Math.min(r,a-n):r}(e))}function w(e){return l=void 0,v&&r?g(e):(r=o=void 0,i)}function E(){for(var e=Date.now(),n=p(e),a=arguments.length,s=new Array(a),u=0;u<a;u++)s[u]=arguments[u];if(r=s,o=this,c=e,n){if(void 0===l)return m(c);if(d)return l=h(y,t),g(c)}return void 0===l&&(l=h(y,t)),i}return t=Number(t)||0,Fa(n)&&(u=Boolean(n.leading),a=(d="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):a,v="trailing"in n?Boolean(n.trailing):v),E.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),s=0,r=c=o=l=void 0},E.flush=function(){return void 0===l?i:w(Date.now())},E.pending=function(){return void 0!==l},E},Ga=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Fa(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),Wa(e,t,{leading:r,trailing:o,maxWait:t})},qa=V.utilities.calibratedPixelSpacingMetadataProvider;function Ha(e,t,n,r){r||(r=n),qa.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}var za=function(e,t,n){return Math.min(Math.max(t,e),n)},Ka=function(e,t){var n=t.imageIdIndex;if(void 0===n)throw new Error("Cannot jump to slice without an imageIdIndex yet");var r=(0,V.getEnabledElement)(e);if(!r)throw new Error("Element has been disabled");var o=r.viewport;if(!(o instanceof V.StackViewport))throw new Error("Cannot scroll to slice on a non-stack viewport yet");var a=o.getImageIds().length,i=za(n,0,a-1);return o.setImageIdIndex(i)},Ya=c(976);function Za(e,t,n,r){var o,a,i,l,c,s,u;u=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var d=e.getDimensions();if(r){var v=Ma(r,3),f=Ma(v[0],2);o=f[0],a=f[1];var g=Ma(v[1],2);i=g[0],l=g[1];var h=Ma(v[2],2);c=h[0],s=h[1]}else o=0,a=d[0],i=0,l=d[1],c=0,s=d[2];for(var m=Ya.vec3.fromValues(o,i,c),p=e.getDirection(),y=p.slice(0,3),w=p.slice(3,6),E=p.slice(6,9),I=Ma(e.getSpacing(),3),b=I[0],_=I[1],T=I[2],S=e.indexToWorld(m),O=Ya.vec3.fromValues(y[0]*b,y[1]*b,y[2]*b),C=Ya.vec3.fromValues(w[0]*_,w[1]*_,w[2]*_),D=Ya.vec3.fromValues(E[0]*T,E[1]*T,E[2]*T),x=d[0],N=d[0]*d[1],M=c;M<=s;M++)for(var R=i;R<=l;R++)for(var k=o;k<=a;k++){var A=[k,R,M],L=k-o,P=R-i,U=M-c,V=S,j=[V[0]+L*O[0]+P*C[0]+U*D[0],V[1]+L*O[1]+P*C[1]+U*D[1],V[2]+L*O[2]+P*C[2]+U*D[2]];if(t(j,A)){var B=M*N+R*x+k;n({value:u[B],index:B,pointIJK:A,pointLPS:j})}}}function $a(e,t){var n=1/0,r=0,o=1/0,a=0,i=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),a=Math.max(e[1],a),i=Math.min(e[2],i),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),a=Math.floor(a),i=Math.floor(i),l=Math.floor(l),t){var c=Ma(t,3),s=c[0],u=c[1],d=c[2];n=Math.max(0,n),r=Math.min(s-1,r),o=Math.max(0,o),a=Math.min(u-1,a),i=Math.max(0,i),l=Math.min(d-1,l)}return[[n,r],[o,a],[i,l]]}function Xa(e,t){var n=e.findIndex((function(e){var t=Ma(e,2);return t[0]===t[1]}));if(-1===n)throw new Error("3D bounding boxes not supported in an oblique plane");return e[n][0]-=t,e[n][1]+=t,e}var Ja=V.utilities.transformWorldToIndex;function Qa(e,t,n,r){var o=t.getDimensions(),a=e.getCamera(),i=Ya.vec3.fromValues(a.viewUp[0],a.viewUp[1],a.viewUp[2]),l=Ya.vec3.fromValues(a.viewPlaneNormal[0],a.viewPlaneNormal[1],a.viewPlaneNormal[2]),c=Ya.vec3.create();Ya.vec3.cross(c,i,l),c=[-c[0],-c[1],-c[2]];var s=Ma(n,2),u=s[0],d=s[1],v=Ya.vec3.fromValues((u[0]+d[0])/2,(u[1]+d[1])/2,(u[2]+d[2])/2),f=Ya.vec3.distance(u,d)/2,g=Ya.vec3.create(),h=Ya.vec3.create();Ya.vec3.scaleAndAdd(g,d,l,f),Ya.vec3.scaleAndAdd(h,u,l,-f),Ya.vec3.scaleAndAdd(g,g,c,-f),Ya.vec3.scaleAndAdd(h,h,c,f);var m=$a([Ja(t,g),Ja(t,h)],o),p={center:v,radius:f};Za(t,(function(e){return function(e,t){var n=e.center,r=e.radius,o=Ma(t,3),a=o[0],i=o[1],l=o[2],c=Ma(n,3),s=c[0],u=c[1],d=c[2];return Math.pow(a-s,2)+Math.pow(i-u,2)+Math.pow(l-d,2)<=Math.pow(r,2)}(p,e)}),r,m)}var ei=V.utilities.transformWorldToIndex,ti=function(e,t,n,r){if(t.length>1)throw new Error("thresholding more than one volumes is not supported yet");var o=xe(n.segmentationId),a=n.segmentationId;if(!o)throw new Error("No Segmentation Found");var i=o.type,l=o.representationData[i].volumeId,c=V.cache.getVolume(l),s=c.scalarData,u=c.imageData,d=r.lowerThreshold,v=r.higherThreshold,f=r.numSlicesToProject;if(r.overwrite)for(var g=0;g<s.length;g++)s[g]=0;return e.forEach((function(e){var n,r,o=e.data,a=o.handles.points,i=t[0],l=i.imageData,c=i.dimensions,g=l.getPointData().getScalars().getData(),h=a;if(null!==(n=o.cachedStats)&&void 0!==n&&n.projectionPoints){var m,p=o.cachedStats.projectionPoints;h=(m=[]).concat.apply(m,Zn(p))}var y=$a(h.map((function(e){return ei(l,e)})),c);!f||null!==(r=o.cachedStats)&&void 0!==r&&r.projectionPoints||(y=function(e,t){return Xa(e,t)}(y,f)),Za(u,(function(){return!0}),(function(e){var t=e.index,n=e.pointIJK,r=l.computeOffsetIndex(n),o=g[r];o<=d||o>=v||(s[t]=1)}),y)})),Ie(a),c},ni=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,a=t.spacing;if(!(V.utilities.isEqual(r,e[0].dimensions)&&V.utilities.isEqual(n,e[0].direction)&&V.utilities.isEqual(a,e[0].spacing)&&V.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,a=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(a[r]=t)}));var i={scalarData:a,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,c=V.volumeLoader.createLocalVolume(i,n,l);return c};function ri(e,t){if(e===Te.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function oi(e){return ai.apply(this,arguments)}function ai(){return(ai=Kt(Zt().mark((function e(t){var n,r,o,a,i,l,c,s,u,d,v,f;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,a=t.segmentationId,i=(0,V.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=i.viewport)instanceof V.VolumeViewport){e.next=8;break}throw new Error("Segmentation not ready for stackViewport");case 8:if(c=l.getDefaultActor(),s=c.uid,void 0===a&&(a="".concat(s,"-based-segmentation-").concat(null!==(u=null==o?void 0:o.volumeId)&&void 0!==u?u:V.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return d=(0,q._cloneDeep)(o),e.next=14,V.volumeLoader.createLocalVolume(d,a);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,V.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:a});case 19:return e.abrupt("return",a);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ii(e){var t,n,r,o,a=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),i=(a.top[1]+a.bottom[1])/2;return[a.right[0],i]}var li=1e-6;function ci(e,t,n){var r=Ma(n,2),o=r[0],a=r[1];if(Math.abs(t)<li)return e<0;var i=e/t;if(t>0){if(i>a)return 0;i>o&&(n[0]=i)}else{if(i<o)return 0;i<a&&(n[1]=i)}return 1}function si(e,t,n,r,o){var a=Ma(e,2),i=a[0],l=a[1],c=Ma(t,2),s=c[0]-i,u=c[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(s)<li&&Math.abs(u)<li&&i>=n[0]&&i<=n[2]&&l>=n[1]&&l<=n[3])return 1;var d=[0,1];if(ci(n[0]-i,s,d)&&ci(i-n[2],-s,d)&&ci(n[1]-l,u,d)&&ci(l-n[3],-u,d)){var v=d[0],f=d[1];return f<1&&(o[0]=i+f*s,o[1]=l+f*u),v>0&&(r[0]+=v*s,r[1]+=v*u),1}return 0}function ui(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,a=e.zRadius,i=Ma(t,3),l=i[0],c=i[1],s=i[2],u=Ma(n,3),d=u[0],v=u[1],f=u[2],g=0;return 0!==r&&(g+=(l-d)*(l-d)/(r*r)),0!==o&&(g+=(c-v)*(c-v)/(o*o)),0!==a&&(g+=(s-f)*(s-f)/(a*a)),g<=1}function di(e){var t=Ma(e,4),n=t[0],r=t[1],o=t[2],a=t[3];return[[o[0],r[1]],[a[0],n[1]]]}function vi(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function fi(e,t,n){var r=vi(e,t);if(0===r)return vi(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return vi(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function gi(e,t,n){if(2!==e.length||2!==t.length||2!==n.length)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(fi(e,t,n))}function hi(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function mi(e,t,n,r){var o=Ma(e,2),a=o[0],i=o[1],l=Ma(t,2),c=l[0],s=l[1],u=Ma(n,2),d=u[0],v=u[1],f=Ma(r,2),g=f[0],h=f[1],m=s-i,p=a-c,y=c*i-a*s,w=m*d+p*v+y,E=m*g+p*h+y;if(0===w||0===E||hi(w)!==hi(E)){var I=h-v,b=d-g,_=g*v-d*h,T=I*a+b*i+_,S=I*c+b*s+_;if(0===T||0===S||hi(T)!==hi(S)){var O=m*b-I*p;return[(p*_-b*y)/O,(I*y-m*_)/O]}}}function pi(e,t){if(4!==e.length||2!==t.length)throw Error("rectangle:[left, top, width, height] or point: [x,y] not defined correctly");var n=Ma(e,4),r=n[0],o=n[1],a=n[2],i=n[3],l=655535,c=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,a,i);return Object.keys(c).forEach((function(e){var n=Ma(c[e],2),r=gi(n[0],n[1],t);r<l&&(l=r)})),l}function yi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function wi(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return V.utilities.isEqual(t,r)}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return yi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?yi(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(s.s();!(a=s.n()).done;){var u=a.value,d=u.data.handles.points[0],v=Ya.vec3.create();Ya.vec3.sub(v,l,d);var f=Ya.vec3.dot(v,r);Math.abs(f)<i&&c.push(u)}}catch(e){s.e(e)}finally{s.f()}return c}function Ei(e,t,n,r){var o=Ya.vec3.create();Ya.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ya.vec3.fromValues.apply(Ya.vec3,Zn(n)),i=Ya.vec3.fromValues.apply(Ya.vec3,Zn(r)),l=Ya.vec3.create();Ya.vec3.subtract(l,a,i);var c=Ya.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=Ya.vec3.dot(l,o)/(c*Ya.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}function Ii(e,t){if(e instanceof V.StackViewport){var n=e.getCurrentImageId(),r=n.indexOf(":"),o=n.substring(r+1);return t.filter((function(e){var t=e.metadata.referencedImageId,n=t.indexOf(":");return t.substring(n+1)===o}))}if(e instanceof V.VolumeViewport){var a=e.getCamera();return wi(t,a,V.utilities.getTargetVolumeAndSpacingInNormalDir(e,a).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var bi=c(807),_i=c.n(bi);function Ti(e,t,n,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,i=e.getCamera(),l=i.position,c=V.utilities.getTargetVolumeAndSpacingInNormalDir(e,i,n),s=c.spacingInNormalDirection,u=s*a,d=e.getBounds(),v=d[0],f=d[1],g=[0,0,0],h=[0,0,0];_i().subtract(t,l,g);for(var m=v;m<=f;m+=u){h=[m,0,0];var p=(m-l[0])/g[0];if(h[1]=p*g[1]+l[1],h[2]=p*g[2]+l[2],Si(h,d)){var y=e.getIntensityFromWorld(h),w=r(y,h);w&&(o=w)}}return o}var Si=function(e,t){var n=Ma(t,6),r=n[0],o=n[1],a=n[2],i=n[3],l=n[4],c=n[5];return e[0]>r&&e[0]<o&&e[1]>a&&e[1]<i&&e[2]>l&&e[2]<c},Oi={filterAnnotationsWithinSlice:wi,getWorldWidthAndHeightFromCorners:Ei,filterAnnotationsForDisplay:Ii,getPointInLineOfSightWithCriteria:Ti};function Ci(e,t,n,r,o,a){var i=n.min,l=n.max,c=n.current,s=Ya.vec3.create();Ya.vec3.sub(s,t,e);var u=Math.round((l-i)/o),d=(c-i)/(l-i)*u,v=Math.round(d),f=[e[0]-r[0]*d*o,e[1]-r[1]*d*o,e[2]-r[2]*d*o];(v+=a)>u?v=u:v<0&&(v=0);var g=v*o;return{newFocalPoint:f=[f[0]+r[0]*g,f[1]+r[1]*g,f[2]+r[2]*g],newPosition:[f[0]+s[0],f[1]+s[1],f[2]+s[2]]}}var Di=c(847),xi=c.n(Di);function Ni(e,t,n){var r=V.utilities.getVolumeActorCorners(e),o=xi().buildFromDegree().identity().rotateFromDirections(t,[1,0,0]);r.forEach((function(e){return o.apply(e)}));var a=Zn(n);o.apply(a);for(var i=a[0],l=1/0,c=-1/0,s=0;s<8;s++){var u=r[s][0];u>c&&(c=u),u<l&&(l=u)}return{min:l,max:c,current:i}}function Mi(e,t){var n=e.type,r=t.volumeId,o=t.direction,a=t.invert?-o:o;if(e instanceof V.StackViewport){var i=e.getCurrentImageIdIndex(),l=e.getImageIds().length,c=i+a;c=za(c,0,l-1),e.setImageIdIndex(c)}else{if(!(e instanceof V.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));var s=e.getCamera(),u=s.focalPoint,d=s.viewPlaneNormal,v=s.position,f=V.utilities.getTargetVolumeAndSpacingInNormalDir(e,s,r),g=f.spacingInNormalDirection,h=f.imageVolume;if(!h)return;var m=e.getActor(h.volumeId);m||console.warn("No actor found for with actorUID of",h.volumeId);var p=Ci(u,v,Ni(m.volumeActor,d,u),d,g,a),y=p.newFocalPoint,w=p.newPosition;e.setCamera({focalPoint:y,position:w}),e.render()}}function Ri(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o];a.getFrameOfReferenceUID()===t&&r.push(a)}return r}var ki=It.Active,Ai=It.Passive,Li=It.Enabled;function Pi(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o];Ui(Nt(a.id,a.renderingEngineId),t)&&r.push(a)}return r}function Ui(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===ki||r===Ai||r===Li}var Vi=function(e,t){return e.filter((function(e){var n=e.getCamera();return V.utilities.isEqual(n.viewPlaneNormal,t.viewPlaneNormal)&&V.utilities.isEqual(n.viewUp,t.viewUp)}))};function ji(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,V.getEnabledElement)(e),o=r.renderingEngine,a=r.FrameOfReferenceUID,i=o.getViewports();i=Pi(i=Ri(i,a),t);var l=o.getViewport(r.viewportId);n&&(i=Vi(i,l.getCamera()));var c=i.map((function(e){return e.id}));return c}function Bi(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],i=1e-4,l=0;l<3;l++)if(a[0]>i&&a[0]>a[1]&&a[0]>a[2])t+=n,a[0]=0;else if(a[1]>i&&a[1]>a[0]&&a[1]>a[2])t+=r,a[1]=0;else if(a[2]>i&&a[2]>a[0]&&a[2]>a[1])t+=o,a[2]=0;else if(a[0]>i&&a[1]>i&&a[0]===a[1])t+=n+r,a[0]=0,a[1]=0;else if(a[0]>i&&a[2]>i&&a[0]===a[2])t+=n+o,a[0]=0,a[2]=0;else{if(!(a[1]>i&&a[2]>i&&a[1]===a[2]))break;t+=r+o,a[1]=0,a[2]=0}return t}function Fi(e){var t=e.replace("H","f");return(t=(t=(t=(t=(t=t.replace("F","h")).replace("R","l")).replace("L","r")).replace("A","p")).replace("P","a")).toUpperCase()}var Wi=function(e,t){var n=$o.getDefinedCursor(t,!0);n||(n=Mo.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=Mo.getDefinedCursor(t)),oa(e,n)},Gi=[].concat(Zn(zo),Zn(ko)),qi=function(e){if(e){if(e.data&&e.highlighted)return Oo.Highlighted;if(or(e.annotationUID))return Oo.Selected;if($(e))return Oo.Locked}return Oo.Default};function Hi(e,t){if(e){var n=Tt.tools[e];if(n){var r=n.toolClass;return t?V.Settings.getObjectSettings(t,r):V.Settings.getObjectSettings(r)}}return V.Settings.getRuntimeSettings()}var zi=function(e,t,n){var r=V.Settings.assert(e),o=Co(r,"textBox.fontSize",t,n),a=Co(r,"textBox.fontFamily",t,n);return"".concat(o,"px ").concat(a)},Ki=function(e,t,n){var r=Tt.tools[e];if(r){var o=r.toolClass;return V.Settings.getObjectSettings(t,o).set("tool.style",n)}return!1};function Yi(e){return V.Settings.getRuntimeSettings().set("tool.style",e)}function Zi(e,t){var n=Tt.tools[e];if(n){var r=n.toolClass;return V.Settings.getObjectSettings(r).set("tool.style",t)}return!1}var $i=function(e){if(!e||!e.length)throw new Error("The segmentationInputArray is undefined or empty array");e.forEach((function(e){if(void 0===e.segmentationId)throw new Error("The segmentationInput.segmentationId is undefined, please provide a valid segmentationId");if(void 0===e.representation)throw new Error("The segmentationInput.representation is undefined, please provide a valid representation");e.representation.type===Te.Labelmap&&function(e){if(!e.representation.data)throw new Error("The segmentationInput.representationData.data is undefined, please provide a valid representationData.data");var t=e.representation.data;if(!t.volumeId)throw new Error("The segmentationInput.representationData.volumeId is undefined, please provide a valid representationData.volumeId");if(!V.cache.getVolume(t.volumeId))throw new Error("volumeId of ".concat(t.volumeId," not found in cache, you should load and cache volume before adding segmentation"))}(e)}))},Xi=function(e){$i(e),e.map((function(e){Me(H()(e))}))};function Ji(){return(Ji=Kt(Zt().mark((function e(t,n,r){var o,a;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(sn(t)){e.next=3;break}throw new Error("No tool group found for toolGroupId: ".concat(t));case 3:return o=n.map((function(e){return Qi(t,e,r)})),e.next=6,Promise.all(o);case 6:return a=e.sent,e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Qi(e,t,n){return el.apply(this,arguments)}function el(){return(el=Kt(Zt().mark((function e(t,n,r){var o;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==Te.Labelmap){e.next=6;break}return e.next=3,_n.addSegmentationRepresentation(t,n,r);case 3:o=e.sent,e.next=7;break;case 6:throw new Error("The representation type ".concat(n.type," is not supported"));case 7:return e.abrupt("return",o);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var tl=function(e,t,n){return Ji.apply(this,arguments)};function nl(e){var t=De().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function rl(e,t){De().setActiveSegmentationRepresentation(e,t),we(e,t)}function ol(e,t){var n=xe(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function al(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=xe(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),Ee(e)}function il(e){var t=xe(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function ll(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");V.utilities.isEqual(e[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),e.unshift([0,0,0,0])),We(e,t)}function cl(e,t,n){var r=je(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!Fe(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,we(e,t)}function sl(e,t,n){var r=je(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return Fe(r.colorLUTIndex)[n]}function ul(e,t,n){var r=Re(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,we(e,r.segmentationRepresentationUID))}))}function dl(e,t){var n=Re(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function vl(e,t){var n=xe(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,Ee(e))}function fl(e){var t=xe(e);if(t)return t.activeSegmentIndex}function gl(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return hl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function hl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ml=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e;B(this,o);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return G(Rt(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,a=o.element,i=o.currentPoints.canvas,l=!1,c=gl(n);try{for(c.s();!(r=c.n()).done;){var s=r.value;if(!$(s)){var u=s.data,d=u.handles?u.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(a,s,i,6),f=v&&!s.highlighted,g=!v&&s.highlighted;f||g?(s.highlighted=!s.highlighted,l=!0):u.handles&&u.handles.activeHandleIndex!==d&&(l=!0)}}}catch(e){c.e(e)}finally{c.f()}return l})),G(Rt(e),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,a=n.columnScale,i=n.imageId,l=n.imageData,c=n.worldToIndex;if((0,V.getEnabledElement)(r).viewport instanceof V.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var s=l.getIndexToWorld(),u=V.utilities.imageIdToURI(i),d=ce();d.getFramesOfReference().forEach((function(t){var n=d.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){V.utilities.imageIdToURI(e.metadata.referencedImageId)===u&&(e.invalidated=!0,e.data.cachedStats={},e.data.handles.points=e.data.handles.points.map((function(e){var t=Ya.vec4.fromValues.apply(Ya.vec4,Zn(e).concat([1])),n=Ya.vec4.fromValues(0,0,0,1),r=Ya.vec4.create();Ya.vec4.transformMat4(r,t,c);var i=[a*r[0],o*r[1],r[2]];return Ya.vec4.transformMat4(n,Ya.vec4.fromValues(i[0],i[1],i[2],1),s),n.slice(0,3)})))})),kn(r))}))})),e}return W(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return Ii((0,V.getEnabledElement)(e).viewport,t)}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,a=t.data,i=a.handles,l=i.points,c=i.textBox,s=c.worldBoundingBox;if(s){var u={topLeft:o.worldToCanvas(s.topLeft),topRight:o.worldToCanvas(s.topRight),bottomLeft:o.worldToCanvas(s.bottomLeft),bottomRight:o.worldToCanvas(s.bottomRight)};if(n[0]>=u.topLeft[0]&&n[0]<=u.bottomRight[0]&&n[1]>=u.topLeft[1]&&n[1]<=u.bottomRight[1])return a.handles.activeHandleIndex=null,c}for(var d=0;d<l.length;d++){var v=l[d],f=o.worldToCanvas(v);if(!0==Ya.vec2.distance(n,f)<r)return a.handles.activeHandleIndex=d,v}a.handles.activeHandleIndex=null}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,a=this.getTargetId(e);if(e instanceof V.StackViewport)o=a.split("imageId:")[1];else{var i=a.split("volumeId:")[1],l=V.cache.getVolume(i);o=V.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return Co(e,t,qi(n),this.mode)}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle(e,"textBox.fontFamily",t),fontSize:this.getStyle(e,"textBox.fontSize",t),color:this.getStyle(e,"textBox.color",t),background:this.getStyle(e,"textBox.background",t),lineWidth:this.getStyle(e,"textBox.link.lineWidth",t),lineDash:this.getStyle(e,"textBox.link.lineDash",t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(Ht);G(ml,"toolName","AnnotationTool");var pl=ml;var yl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(Rt(e)),e.mouseDragCallback=e._dragCallback.bind(Rt(e)),e}return W(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,V.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,c=i.position,s=[c[0]-a[0],c[1]-a[1],c[2]-a[2]],u=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:u,position:s}),o.viewport.render()}}]),o}(Ht);G(yl,"toolName","Pan");var wl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"_getImageDynamicRange",(function(e){var t,n,r=V.cache.getVolume(e),o=r.dimensions,a=r.scalarData,i=Math.floor(o[2]/2),l=o[0]*o[1];a instanceof Float32Array?(t=4,n=Float32Array):a instanceof Uint8Array&&(t=1,n=Uint8Array);for(var c=new n(a.buffer,i*l*t,l),s=1/0,u=-1/0,d=0;d<l;d++){var v=c[d];v<s&&(s=v),v>u&&(u=v)}return u-s})),e.touchDragCallback=e._dragCallback.bind(Rt(e)),e.mouseDragCallback=e._dragCallback.bind(Rt(e)),e}return W(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,a,i,l,c=e.detail,s=c.element,u=c.deltaPoints,d=(0,V.getEnabledElement)(s),v=d.renderingEngine,f=d.viewportId,g=d.viewport,h=!1,m=!1;if(g instanceof V.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).volumeActor.getProperty().getRGBTransferFunction(0),l=V.utilities.getVolumeViewportsContainingVolumeId(t,v.id);var p=Ma(o.getRange(),2);n=p[0],r=p[1],a=V.cache.getVolume(t).metadata.Modality,h=!0}else{if(!(g instanceof V.StackViewport))throw new Error("Viewport is not a valid type");var y=g.getProperties();a=g.modality;var w=y.voiRange;n=w.lower,r=w.upper,m=g.isImagePreScaled(g.getCurrentImageId())}var E={volumeId:t,viewportId:f,range:i="PT"===a&&m?this.getPTNewRange({deltaPointsCanvas:u.canvas,lower:n,upper:r,clientHeight:s.clientHeight}):this.getNewRange({deltaPointsCanvas:u.canvas,useDynamicRange:h,volumeId:t,lower:n,upper:r})};if(g instanceof V.StackViewport)return g.setProperties({voiRange:i}),void g.render();(0,V.triggerEvent)(s,V.Enums.Events.VOI_MODIFIED,E),o.setRange(i.lower,i.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.useDynamicRange,r=e.volumeId,o=e.lower,a=e.upper,i=n?this._getMultiplyerFromDynamicRange(r):4,l=t[0]*i,c=t[1]*i,s=V.utilities.windowLevel.toWindowLevel(o,a),u=s.windowWidth,d=s.windowCenter;return u+=l,d+=c,u=Math.max(u,1),V.utilities.windowLevel.toLowHighRange(u,d)}},{key:"_getMultiplyerFromDynamicRange",value:function(e){if(!e)throw new Error("No volumeId provided for the volume Viewport");var t=4,n=this._getImageDynamicRange(e)/1024;return n>1&&(t=Math.round(n)),t}}]),o}(Ht);G(wl,"toolName","WindowLevel");var El=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"_dragParallelProjection",(function(e,t){var n=e.detail,r=n.element,o=n.deltaPoints,a=(0,V.getEnabledElement)(r).viewport,i=1.5/(r.clientWidth,r.clientHeight),l=(1-o.canvas[1]*i)*t.parallelScale;a.setCamera({parallelScale:l})})),G(Rt(e),"_dragPerspectiveProjection",(function(e,t){var n=e.detail,r=n.element,o=n.deltaPoints,a=(0,V.getEnabledElement)(r).viewport,i=[r.clientWidth,r.clientHeight],l=t.clippingRange[1]/i[1]*1.5,c=t.position,s=t.focalPoint,u=t.viewPlaneNormal,d=[-u[0],-u[1],-u[2]],v=o.canvas[1]*l,f=v*d[0];c[0]+=f,s[0]+=f,f=v*d[1],c[1]+=f,s[1]+=f,f=v*d[2],c[2]+=f,s[2]+=f,a.setCamera({position:c,focalPoint:s})})),e.touchDragCallback=e._dragCallback.bind(Rt(e)),e.mouseDragCallback=e._dragCallback.bind(Rt(e)),e}return W(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,r):this._dragPerspectiveProjection(e,r),n.render()}}]),o}(Ht);G(El,"toolName","Zoom");var Il=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"previousDirection",void 0),G(Rt(e),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),e.previousDirection=1,e.touchDragCallback=e._dragCallback.bind(Rt(e)),e.mouseDragCallback=e._dragCallback.bind(Rt(e)),e}return W(o,[{key:"_dragCallback",value:function(e){var t,n,r=e.detail,o=r.deltaPoints,a=r.viewportId,i=r.renderingEngineId,l=o.canvas[1],c=(0,V.getEnabledElementByIds)(a,i).viewport,s=this.getTargetId(c),u=this.configuration.invert;c instanceof V.VolumeViewport&&(t=s.split("volumeId:")[1]),0===l?n=this.previousDirection:(n=l>0?1:-1,this.previousDirection=n),Mi(c,{direction:n,invert:u,volumeId:t})}}]),o}(Ht);G(Il,"toolName","StackScroll");var bl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],invert:!1};return B(this,o),G(Rt(e=r.call(this,t,n)),"_configuration",void 0),e}return W(o,[{key:"mouseWheelCallback",value:function(e){var t,n=e.detail,r=n.wheel,o=n.element,a=r.direction,i=this.configuration.invert,l=(0,V.getEnabledElement)(o).viewport,c=this.getTargetId(l);l instanceof V.VolumeViewport&&(t=c.split("volumeId:")[1]),Mi(l,{direction:a,invert:i,volumeId:t})}}]),o}(Ht);G(bl,"toolName","StackScrollMouseWheel");var _l={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Tl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:_l.Z,rotateIncrementDegrees:.5}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_configuration",void 0),e}return W(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,V.getEnabledElement)(n).viewport,a=this.configuration,i=a.direction,l=a.rotateIncrementDegrees,c=o.getCamera(),s=c.viewUp,u=c.position,d=c.focalPoint,v=r.direction,f=Ma(d,3),g=f[0],h=f[1],m=f[2],p=Ma(i,3),y=p[0],w=p[1],E=p[2],I=v*l,b=[0,0,0],_=[0,0,0],T=[0,0,0],S=Ya.mat4.identity(new Float32Array(16));Ya.mat4.translate(S,S,[g,h,m]),Ya.mat4.rotate(S,S,I,[y,w,E]),Ya.mat4.translate(S,S,[-g,-h,-m]),Ya.vec3.transformMat4(b,u,S),Ya.vec3.transformMat4(_,d,S),Ya.mat4.identity(S),Ya.mat4.rotate(S,S,I,[y,w,E]),Ya.vec3.transformMat4(T,s,S),o.setCamera({position:b,viewUp:T,focalPoint:_}),o.render()}}]),o}(Ht);G(Tl,"toolName","VolumeRotateMouseWheel");var Sl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_bounds",void 0),e}return W(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,V.getEnabledElement)(n),a=o.viewport,i=o.renderingEngine,l=this.getTargetId(a);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var c=l.split("volumeId:")[1],s=-1/0,u=Ti(a,r.world,c,(function(e,t){if(e>s)return s=e,t}));u&&u.length&&this.configuration.targetViewportIds.forEach((function(e){var t=i.getViewport(e);t instanceof V.VolumeViewport?function(e,t){if(e instanceof V.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];Ya.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=Ya.vec3.dot(t,r),a=Ya.vec3.fromValues(r[0],r[1],r[2]);if(Ya.vec3.scale(a,a,o),Math.abs(a[0])>.001||Math.abs(a[1])>.001||Math.abs(a[2])>.001){var i=[0,0,0],l=[0,0,0];Ya.vec3.add(i,n.focalPoint,a),Ya.vec3.add(l,n.position,a),e.setCamera({focalPoint:i,position:l}),e.render()}}(e,r)}}(t,u):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(Ht);G(Sl,"toolName","MIPJumpToClickTool");var Ol=V.utilities.transformWorldToIndex,Cl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=(0,V.getEnabledElement)(a),c=l.viewport,s=l.renderingEngine;ia(a),e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.getReferencedImageId(c,i,d,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(d),viewUp:Zn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:f},data:{handles:{points:[Zn(i),Zn(i)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(a,g);var h=ji(a,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(a),t.preventDefault(),Br(s,h),g})),G(Rt(e),"isPointNearTool",(function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,a=Ma(t.data.handles.points,2),i=a[0],l=a[1],c=o.worldToCanvas(i),s=o.worldToCanvas(l),u={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return gi([u.start.x,u.start.y],[u.end.x,u.end.y],[n[0],n[1]])<=r})),G(Rt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),ia(o);var i=(0,V.getEnabledElement)(o).renderingEngine;Br(i,a),t.preventDefault()})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),aa(n);var s=(0,V.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&de(o.annotationUID,n),Br(s,a),i){var u=j.ANNOTATION_COMPLETED,d={annotation:o};(0,V.triggerEvent)(V.eventTarget,u,d)}e.editData=null,e.isDrawing=!1}})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=Zn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,V.getEnabledElement)(r).renderingEngine;Br(h,i)})),G(Rt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),aa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Br(l,o),a){var c=j.ANNOTATION_COMPLETED,s={annotation:r};(0,V.triggerEvent)(V.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),G(Rt(e),"_activateModify",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateModify",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_activateDraw",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=i.element,c=se(l,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(a=c=e.filterInteractableAnnotationsForElement(l,c))&&void 0!==a&&a.length)for(var s=e.getTargetId(i),u=i.getRenderingEngine(),d=0;d<c.length;d++){var v=c[d],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,m=h.handles,p=m.points,y=m.activeHandleIndex,w=e.getStyle(f,"lineWidth",v),E=e.getStyle(f,"lineDash",v),I=e.getStyle(f,"color",v),b=p.map((function(e){return i.worldToCanvas(e)})),_=void 0;if($(v)||e.editData||null===y||(_=[b[y]]),_&&Sa(n,e.getToolName(),g,"0",b,{color:I,lineDash:E,lineWidth:w}),Oa(n,e.getToolName(),g,"1",b[0],b[1],{color:I,width:w}),h.cachedStats[s]?v.invalidated&&e._throttledCalculateCachedStats(v,u,t):(h.cachedStats[s]={length:null},e._calculateCachedStats(v,u,t)),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var T=e._getTextLines(h,s);if(!h.handles.textBox.hasMoved){var S=ii(b);h.handles.textBox.worldPosition=i.canvasToWorld(S)}var O=i.worldToCanvas(h.handles.textBox.worldPosition),C=La(n,e.getToolName(),g,"1",T,O,b,{},e.getLinkedTextBoxStyle(f,v)),D=C.x,x=C.y,N=C.width,M=C.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([D,x]),topRight:i.canvasToWorld([D+N,x]),bottomLeft:i.canvasToWorld([D,x+M]),bottomRight:i.canvasToWorld([D+N,x+M])}}})),e._throttledCalculateCachedStats=Ga(e._calculateCachedStats,100,{trailing:!0}),e}return W(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=ji(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),ia(r);var c=(0,V.getEnabledElement)(r).renderingEngine;Br(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].length;if(void 0!==n)return["".concat(n.toFixed(2)," mm")]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.handles.points[1],c=r.cachedStats,s=Object.keys(c),u=0;u<s.length;u++){var d=s[u],v=this.getTargetIdImage(d,t),f=v.imageData,g=v.dimensions,h=this._calculateLength(i,l),m=Ol(f,i),p=Ol(f,l);this._isInsideVolume(m,p,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,c[d]={length:h}}e.invalidated=!1;var y=j.ANNOTATION_MODIFIED,w={annotation:e,viewportId:o,renderingEngineId:a};return(0,V.triggerEvent)(V.eventTarget,y,w),c}},{key:"_isInsideVolume",value:function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)}}]),o}(pl);G(Cl,"toolName","Length");var Dl=Cl;var xl=si;function Nl(){return"rgb(200, 200, 200)"}function Ml(){return!0}function Rl(){return!0}function kl(){return!1}var Al=.001,Ll=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t,n,a,i,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,autoPan:{enabled:!1,panSize:10}}};return B(this,o),G(Rt(i=r.call(this,l,c)),"toolCenter",[0,0,0]),G(Rt(i),"_getReferenceLineColor",void 0),G(Rt(i),"_getReferenceLineControllable",void 0),G(Rt(i),"_getReferenceLineDraggableRotatable",void 0),G(Rt(i),"_getReferenceLineSlabThicknessControlsOn",void 0),G(Rt(i),"editData",void 0),G(Rt(i),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,V.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,a=r.viewport,l=a.element,c=a.getCamera(),s=c.position,u=c.focalPoint,d=c.viewPlaneNormal,v=se(l,i.getToolName());(v=i.filterInteractableAnnotationsForElement(l,v)).length&&de(v[0].annotationUID,l);var f={highlighted:!1,metadata:{cameraPosition:Zn(s),cameraFocalPoint:Zn(u),FrameOfReferenceUID:o,toolName:i.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:i.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}};return aa(l),ue(l,f),{normal:d,point:a.canvasToWorld([a.sWidth/2,a.sHeight/2])}})),G(Rt(i),"init",(function(){var e=sn(i.toolGroupId).viewportsInfo;if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=Ma(e,3),n=t[0],r=t[1],o=t[2],a=i.initializeViewport(n),l=a.normal,c=a.point,s=i.initializeViewport(r),u=s.normal,d=s.point,v=[0,0,0],f=Ya.vec3.create();if(o){var g=i.initializeViewport(o);v=g.normal,f=g.point}else Ya.vec3.add(f,c,d),Ya.vec3.scale(f,f,.5),Ya.vec3.cross(v,l,u);var h=V.utilities.planar.planeEquation(l,c),m=V.utilities.planar.planeEquation(u,d),p=V.utilities.planar.planeEquation(v,f);i.toolCenter=V.utilities.planar.threePlaneIntersection(h,m,p)})),G(Rt(i),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,a=(0,V.getEnabledElement)(r),l=a.viewport;i._jump(a,o);for(var c=se(r,i.getToolName()),s=i.filterInteractableAnnotationsForElement(l.element,c),u=s[0].data,d=u.handles.rotationPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=i._getReferenceLineControllable(g.id),m=i._getReferenceLineDraggableRotatable(g.id);h&&m&&(v.push(g.id),f++)}return u.activeViewportIds=[].concat(v),u.handles.activeOperation=1,e.preventDefault(),ia(r),i._activateModify(r),s[0]})),G(Rt(i),"cancel",(function(){console.log("Not implemented yet")})),G(Rt(i),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),ia(r),e.preventDefault()})),G(Rt(i),"isPointNearTool",(function(e,t,n,r){return!!i._pointNearTool(e,t,n,6)})),G(Rt(i),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),ia(r),e.preventDefault()})),G(Rt(i),"onCameraModified",(function(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.renderingEngine,o=n.viewport,a=ji(t,i.getToolName(),!1),l=se(t,i.getToolName()),c=i.filterInteractableAnnotationsForElement(t,l)[0];if(c){var s=o.getCamera(),u=c.metadata.cameraPosition,d=[0,0,0];_i().subtract(s.position,u,d);var v=c.metadata.cameraFocalPoint,f=[0,0,0];_i().subtract(s.focalPoint,v,f),c.metadata.cameraPosition=Zn(s.position),c.metadata.cameraFocalPoint=Zn(s.focalPoint);var g=i._getReferenceLineControllable(o.id),h=i._getReferenceLineDraggableRotatable(o.id);if(!V.utilities.isEqual(s.position,u,.001)&&g&&h){var m=!0;V.utilities.isEqual(d,f,.001)||(m=!1),m&&Math.abs(_i().dot(d,s.viewPlaneNormal))>.01&&(i.toolCenter[0]+=d[0],i.toolCenter[1]+=d[1],i.toolCenter[2]+=d[2])}i.configuration.autoPan.enabled&&V.utilities.getVolumeViewportsContainingSameVolumes(o,r.id).forEach((function(e){var t=e.id;t!==o.id&&i._autoPanViewportIfNecessary(t,r)})),Br(r,a)}})),G(Rt(i),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,a=!1,l=0;l<t.length;l++){var c=t[l];if(!$(c)){var s=c.data,u=c.highlighted;if(s.handles){var d=s.handles.activeOperation,v=s.activeViewportIds&&s.activeViewportIds.length>0?Zn(s.activeViewportIds):[];s.activeViewportIds=[],s.handles.activeOperation=null;var f;(f=!!i.getHandleNearImagePoint(r,c,o,6)||i._pointNearTool(r,c,o,6))&&!u||!f&&u?(c.highlighted=!u,a=!0):s.handles.activeOperation===d&&i._areViewportIdArraysEqual(s.activeViewportIds,v)||(a=!0)}}}return a})),G(Rt(i),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,V.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),G(Rt(i),"renderAnnotation",(function(e,t){var n=e.viewport,r=e.renderingEngine,o=n.element,a=se(o,i.getToolName()),l=n.getCamera(),c=i.filterInteractableAnnotationsForElement(o,a)[0];if(a&&c&&c.data){var s=c.annotationUID,u=n.sWidth,d=n.sHeight,v=Math.sqrt(u*u+d*d),f=c.data,g=n.worldToCanvas(i.toolCenter),h=i._filterAnnotationsByUniqueViewportOrientations(e,a),m=[];h.forEach((function(e){var t=e.data;t.handles.toolCenter=i.toolCenter;var o=r.getViewport(t.viewportId),a=o.getCamera(),c=i._getReferenceLineControllable(o.id),s=i._getReferenceLineDraggableRotatable(o.id),u=i._getReferenceLineSlabThicknessControlsOn(o.id),d=o.sWidth,f=o.sHeight,p=Math.sqrt(d*d+f*f),y=[.5*d,.5*f],w=o.canvasToWorld(y),E=[0,0,0];_i().cross(l.viewPlaneNormal,a.viewPlaneNormal,E),_i().normalize(E),_i().multiplyScalar(E,p);var I=[0,0,0];_i().add(w,E,I);var b=[0,0,0];_i().subtract(w,E,b);var _=[0,0,d,f],T=n.worldToCanvas(I),S=n.worldToCanvas(w),O=Ya.vec2.create();Ya.vec2.subtract(O,T,S),Ya.vec2.normalize(O,O);var C=Ya.vec2.create();Ya.vec2.scale(C,O,100*v);var D=Ya.vec2.create();Ya.vec2.scale(D,O,.25*v);var x=Ya.vec2.create();Ya.vec2.scale(x,O,.15*v);var N=Ya.vec2.create();Ya.vec2.scale(N,O,2===h.length?.04*v:0);var M=Ya.vec2.create(),R=Ya.vec2.create(),k=Ya.vec2.create(),A=Ya.vec2.create(),L=Ya.vec2.clone(g);s&&c||(L=Ya.vec2.clone(S)),Ya.vec2.add(M,L,N),Ya.vec2.add(R,L,C),Ya.vec2.subtract(k,L,N),Ya.vec2.subtract(A,L,C),xl(M,R,_),xl(k,A,_);var P=Ya.vec2.create();Ya.vec2.subtract(P,g,D);var U=Ya.vec2.create();Ya.vec2.add(U,g,D);var V=Ya.vec2.clone(g);!s&&u&&(V=Ya.vec2.clone(S));var j=Zn(i.toolCenter);!s&&u&&(j=Zn(w));var B=[0,0,0];_i().subtract(I,b,B),_i().normalize(B);var F=l.viewPlaneNormal,W=xi().buildFromDegree().rotate(90,F).matrix,G=[0,0,0];Ya.vec3.transformMat4(G,B,W);var q=o.getSlabThickness(),H=[].concat(G);_i().multiplyScalar(H,q);var z=[0,0,0];_i().add(j,H,z);var K=n.worldToCanvas(z),Y=Ya.vec2.create();Ya.vec2.subtract(Y,V,K);var Z=Ya.vec2.create();Ya.vec2.subtract(Z,V,C),Ya.vec2.add(Z,Z,Y);var $=Ya.vec2.create();Ya.vec2.add($,V,C),Ya.vec2.add($,$,Y),xl(Z,$,_);var X=Ya.vec2.create();Ya.vec2.add(X,V,C),Ya.vec2.subtract(X,X,Y);var J=Ya.vec2.create();Ya.vec2.subtract(J,V,C),Ya.vec2.subtract(J,J,Y),xl(X,J,_);var Q=Ya.vec2.create(),ee=Ya.vec2.create(),te=Ya.vec2.create(),ne=Ya.vec2.create();Ya.vec2.subtract(Q,V,x),Ya.vec2.add(Q,Q,Y),Ya.vec2.add(ee,V,x),Ya.vec2.add(ee,ee,Y),Ya.vec2.subtract(te,V,x),Ya.vec2.subtract(te,te,Y),Ya.vec2.add(ne,V,x),Ya.vec2.subtract(ne,ne,Y),m.push([o,M,R,k,A,Z,$,X,J,P,U,Q,ee,te,ne])}));var p=[],y=[],w=i._getReferenceLineColor(n.id),E=void 0!==w?w:"rgb(200, 200, 200)";m.forEach((function(e,r){var o=e[0],a=i._getReferenceLineColor(o.id),l=i._getReferenceLineControllable(o.id),c=i._getReferenceLineDraggableRotatable(o.id),u=i._getReferenceLineSlabThicknessControlsOn(o.id),d=f.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==a?a:"rgb(200, 200, 200)",g=1,h=null!==f.handles.activeOperation&&1===f.handles.activeOperation&&d;h&&(g=2.5);var m="".concat(r);if(l&&c?(m="".concat(r,"One"),Oa(t,i.getToolName(),s,m,e[1],e[2],{color:v,lineWidth:g}),m="".concat(r,"Two"),Oa(t,i.getToolName(),s,m,e[3],e[4],{color:v,lineWidth:g})):Oa(t,i.getToolName(),s,m,e[2],e[4],{color:v,lineWidth:g}),l){v=void 0!==a?a:"rgb(200, 200, 200)";var w=2===f.handles.activeOperation,E=[e[9],e[10]],I=[n.canvasToWorld(e[9]),o,e[1],e[2]],b=[n.canvasToWorld(e[10]),o,e[3],e[4]];p.push(I,b);var _=3===f.handles.activeOperation,T=[e[11],e[12],e[13],e[14]],S=[n.canvasToWorld(e[11]),o,e[5],e[6]],O=[n.canvasToWorld(e[12]),o,e[5],e[6]],C=[n.canvasToWorld(e[13]),o,e[7],e[8]],D=[n.canvasToWorld(e[14]),o,e[7],e[8]];if(y.push(S,O,C,D),h&&!w&&!_&&c&&u){var x="".concat(r,"One");Sa(t,i.getToolName(),s,x,E,{color:v,handleRadius:3,type:"circle"}),x="".concat(r,"Two"),Sa(t,i.getToolName(),s,x,T,{color:v,handleRadius:3,type:"rect"})}else if(h&&!w&&!_&&c){var N="".concat(r);Sa(t,i.getToolName(),s,N,E,{color:v,handleRadius:3,type:"circle"})}else if(d&&!w&&!_&&u){var M="".concat(r);Sa(t,i.getToolName(),s,M,T,{color:v,handleRadius:3,type:"rect"})}else if(w&&c){var R="".concat(r);Sa(t,i.getToolName(),s,R,E,{color:v,handleRadius:2,fill:v,type:"circle"})}else _&&d&&u&&Sa(t,i.getToolName(),s,m,T,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&u&&(m="".concat(r,"STOne"),Oa(t,i.getToolName(),s,m,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),m="".concat(r,"STTwo"),Oa(t,i.getToolName(),s,m,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),f.handles.rotationPoints=p,f.handles.slabThicknessPoints=y;var I=[.95*u,.05*d],b=.01*v;_a(t,i.getToolName(),s,"0",I,b,{color:E,fill:E})}})),G(Rt(i),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),G(Rt(i),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,a=t.filter((function(e){return e.data.viewportId!==n}));if(!a||!a.length)return[];var i=o.getCamera(),l=i.viewPlaneNormal,c=i.position,s=a.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(V.utilities.isEqual(n.viewPlaneNormal,l,.01)&&V.utilities.isEqual(n.position,c,1))}));return s})),G(Rt(i),"_filterLinkedViewportWithSameOrientationAndScene",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=i._getReferenceLineControllable(r.id),a=t.filter((function(e){var t=e.data,a=n.getViewport(t.viewportId),l=i._getReferenceLineControllable(a.id);return r!==a&&!0===l&&!0===o}));if(!a||!a.length)return[];var l=r.getCamera(),c=l.viewPlaneNormal;return _i().normalize(c),a.filter((function(e){var t=e.data.viewportId,r=n.getViewport(t).getCamera(),o=r.viewPlaneNormal;return _i().normalize(o),V.utilities.isEqual(c,o,.01)&&V.utilities.isEqual(l.viewUp,r.viewUp,.01)}))})),G(Rt(i),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;_i().normalize(o);for(var a=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0===a})),l=[],c=0;c<a.length;++c){var s=a[c],u=s.data.viewportId,d=n.getViewport(u).getCamera(),v=d.viewPlaneNormal;if(_i().normalize(v),!V.utilities.isEqual(o,v,.01)&&!V.utilities.isOpposite(o,v,.01)){for(var f=!1,g=0;g<l.length;++g){var h=l[g].data.viewportId,m=n.getViewport(h).getCamera();V.utilities.isEqual(m.viewPlaneNormal,d.viewPlaneNormal,.01)&&V.utilities.isEqual(m.position,d.position,1)&&(f=!0)}f||l.push(s)}}for(var p=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0!==a})),y=0;y<p.length;++y){var w=p[y],E=w.data.viewportId,I=n.getViewport(E).getCamera(),b=I.viewPlaneNormal;if(_i().normalize(b),!V.utilities.isEqual(o,b,.01)&&!V.utilities.isOpposite(o,b,.01)){for(var _=!1,T=0;T<l.length;++T){var S=l[T].data.viewportId,O=n.getViewport(S).getCamera();V.utilities.isEqual(O.viewPlaneNormal,I.viewPlaneNormal,.01)&&V.utilities.isEqual(O.position,I.position,1)&&(_=!0)}_||l.push(w)}}for(var C=i._getAnnotationsForViewportsWithDifferentCameras(e,t),D=function(e){var t=C[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,a=n.getViewport(r).getCamera(),i=a.viewPlaneNormal;if(_i().normalize(i),V.utilities.isEqual(o,i,.01)||V.utilities.isOpposite(o,i,.01))return"continue";for(var c=!1,s=0;s<l.length;++s){var u=l[s].data.viewportId,d=n.getViewport(u).getCamera();V.utilities.isEqual(d.viewPlaneNormal,a.viewPlaneNormal,.01)&&V.utilities.isEqual(d.position,a.position,1)&&(c=!0)}c||l.push(t)},x=0;x<C.length;++x)D(x);return l})),G(Rt(i),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),G(Rt(i),"_jump",(function(e,t){Tt.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=se(n.element,i.getToolName()),a=[0,0,0];_i().subtract(t,i.toolCenter,a);var l=i._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),a=i._checkIfViewportsRenderingSameScene(n,o);return i._getReferenceLineControllable(o.id)&&i._getReferenceLineDraggableRotatable(o.id)&&a}));return 0===l.length?(Tt.isInteractingWithTool=!1,!1):(i._applyDeltaShiftToSelectedViewportCameras(r,l,a),Tt.isInteractingWithTool=!1,!0)})),G(Rt(i),"_activateModify",(function(e){Tt.isInteractingWithTool=!0,e.addEventListener(j.MOUSE_UP,i._mouseUpCallback),e.addEventListener(j.MOUSE_DRAG,i._mouseDragCallback),e.addEventListener(j.MOUSE_CLICK,i._mouseUpCallback)})),G(Rt(i),"_deactivateModify",(function(e){Tt.isInteractingWithTool=!1,e.removeEventListener(j.MOUSE_UP,i._mouseUpCallback),e.removeEventListener(j.MOUSE_DRAG,i._mouseDragCallback),e.removeEventListener(j.MOUSE_CLICK,i._mouseUpCallback)})),G(Rt(i),"_mouseUpCallback",(function(e){var t=e.detail.element;i.editData.annotation.highlighted=!1,i.editData.annotation.data.handles.activeOperation=null,i.editData.annotation.data.activeViewportIds=[],i._deactivateModify(t),aa(t),i.editData=null;var n=(0,V.getEnabledElement)(t).renderingEngine,r=ji(t,i.getToolName(),!1);Br(n,r)})),G(Rt(i),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,V.getEnabledElement)(r),a=o.renderingEngine,l=o.viewport,c=se(r,i.getToolName()),s=i.filterInteractableAnnotationsForElement(r,c)[0];if(s){var u=s.data.handles,d=e.detail.currentPoints.canvas;if(1===u.activeOperation){var v=i._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId);return s.data.activeViewportIds.find((function(e){return e===n.id}))}));i._applyDeltaShiftToSelectedViewportCameras(a,v,n)}else if(2===u.activeOperation){var f=i._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data;t.handles.toolCenter=m;var n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=Ya.vec2.create(),h=Ya.vec2.create(),m=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]],p=l.worldToCanvas(m),y=t.currentPoints.canvas,w=Ya.vec2.create();Ya.vec2.sub(w,y,t.deltaPoints.canvas),Ya.vec2.sub(g,w,p),Ya.vec2.sub(h,y,p);var E=Ya.vec2.angle(g,h);i._isClockWise(p,w,y)&&(E*=-1),E=Math.round(100*E)/100;var I=l.getCamera().viewPlaneNormal,b=xi().buildFromRadian().translate(m[0],m[1],m[2]).rotate(E,I).translate(-m[0],-m[1],-m[2]).matrix,_=[];f.forEach((function(e){var t=e.data;t.handles.toolCenter=m;var n=a.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,i=r.position,l=r.focalPoint;o[0]+=i[0],o[1]+=i[1],o[2]+=i[2],Ya.vec3.transformMat4(l,l,b),Ya.vec3.transformMat4(i,i,b),Ya.vec3.transformMat4(o,o,b),o[0]-=i[0],o[1]-=i[1],o[2]-=i[2],n.setCamera({position:i,viewUp:o,focalPoint:l}),_.push(n.id)})),a.renderViewports(_)}else 3===u.activeOperation&&c.filter((function(e){var t=e.data,n=a.getViewport(t.viewportId);return s.data.activeViewportIds.find((function(e){return e===n.id}))})).forEach((function(e){var r=e.data,o=a.getViewport(r.viewportId),c=o.getCamera().viewPlaneNormal,u=_i().dot(n,c),v=Zn(c);if(_i().multiplyScalar(v,u),Math.abs(v[0])>.001||Math.abs(v[1])>.001||Math.abs(v[2])>.001){var f=Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]),g=t.lastPoints.world,h=[0,0,0],m=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]];if(!i._getReferenceLineDraggableRotatable(o.id)){var p=i.editData.annotation.data.handles.rotationPoints.filter((function(e){return e[1].uid===o.id}));if(2===p.length){var y=l.canvasToWorld(p[0][3]),w=l.canvasToWorld(p[1][3]);_i().add(y,w,m),_i().multiplyScalar(m,.5)}}_i().subtract(g,m,h);var E=_i().dot(h,c),I=Zn(c);_i().multiplyScalar(I,E);var b=[I[0],I[1],I[2]];Ya.vec3.normalize(b,b);var _=[v[0],v[1],v[2]];Ya.vec3.normalize(_,_);var T=o.getSlabThickness();V.utilities.isOpposite(b,_,.001)?T-=f:T+=f,T=Math.abs(T),T=Math.max(.1,T),i._pointNearReferenceLine(s,d,6,o)?o.setSlabThickness(null):o.setSlabThickness(T),o.render()}}))}}})),G(Rt(i),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,a=0;a<o.length-1;++a){var l=o[a][1];if(l.id===r.id&&i._getReferenceLineControllable(l.id)){var c={start:{x:o[a][2][0],y:o[a][2][1]},end:{x:o[a][3][0],y:o[a][3][1]}},s=gi([c.start.x,c.start.y],[c.end.x,c.end.y],[t[0],t[1]]),u={start:{x:o[a+1][2][0],y:o[a+1][2][1]},end:{x:o[a+1][3][0],y:o[a+1][3][1]}},d=gi([u.start.x,u.start.y],[u.end.x,u.end.y],[t[0],t[1]]);if(s<=n||d<=n)return!0;a++}}return!1})),i._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||Nl,i._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Ml,i._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Rl,i._getReferenceLineSlabThicknessControlsOn=(null===(a=l.configuration)||void 0===a?void 0:a.getReferenceLineSlabThicknessControlsOn)||kl,i}return W(o,[{key:"onSetToolActive",value:function(){this.init()}},{key:"onSetToolPassive",value:function(){this.init()}},{key:"onSetToolEnabled",value:function(){this.init()}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,a=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==a||null!==(a=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?a:void 0}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.sWidth,a=r.sHeight,i=r.canvasToWorld([0,0]),l=r.canvasToWorld([o,a]),c=r.canvasToWorld([o,0]),s=r.canvasToWorld([0,a]),u=Math.min(i[0],l[0],c[0],s[0]),d=Math.max(i[0],l[0],c[0],s[0]),v=Math.min(i[1],l[1],c[1],s[1]),f=Math.max(i[1],l[1],c[1],s[1]),g=Math.min(i[2],l[2],c[2],s[2]),h=Math.max(i[2],l[2],c[2],s[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-Al)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>d+Al)n=[d-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<v-Al)n=[0,v-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>f+Al)n=[0,f-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<g-Al)n=[0,0,g-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>h+Al))return;n=[0,0,h-this.toolCenter[2]-m]}var p=r.getCamera(),y=p.focalPoint,w=p.position,E=[w[0]-n[0],w[1]-n[1],w[2]-n[2]],I=[y[0]-n[0],y[1]-n[1],y[2]-n[2]];r.setCamera({focalPoint:I,position:E}),r.render()}},{key:"_isClockWise",value:function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])>0}},{key:"_applyDeltaShiftToSelectedViewportCameras",value:function(e,t,n){var r=this;t.forEach((function(t){r._applyDeltaShiftToViewportCamera(e,t,n)}))}},{key:"_applyDeltaShiftToViewportCamera",value:function(e,t,n){var r=t.data,o=e.getViewport(r.viewportId),a=o.getCamera(),i=a.viewPlaneNormal,l=_i().dot(n,i),c=Zn(i);if(_i().multiplyScalar(c,l),Math.abs(c[0])>.001||Math.abs(c[1])>.001||Math.abs(c[2])>.001){var s=[0,0,0],u=[0,0,0];_i().add(a.focalPoint,c,s),_i().add(a.position,c,u),o.setCamera({focalPoint:s,position:u}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.rotationPoints,i=0;i<a.length;i++){var l=a[i][0],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineDraggableRotatable(c.id)){var s=e.worldToCanvas(l);if(Ya.vec2.distance(n,s)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.slabThicknessPoints,i=0;i<a.length;i++){var l=a[i][0],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineSlabThicknessControlsOn(c.id)){var s=e.worldToCanvas(l);if(Ya.vec2.distance(n,s)<r)return o.handles.activeOperation=3,o.activeViewportIds=[c.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,a=(0,V.getEnabledElement)(e).viewport,i=a.sWidth,l=a.sHeight,c=Math.sqrt(i*i+l*l),s=t.data,u=s.handles.rotationPoints,d=s.handles.slabThicknessPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=this._getReferenceLineControllable(g.id),m=this._getReferenceLineDraggableRotatable(g.id);if(h&&m){var p={start:{x:u[f][2][0],y:u[f][2][1]},end:{x:u[f][3][0],y:u[f][3][1]}},y=gi([p.start.x,p.start.y],[p.end.x,p.end.y],[n[0],n[1]]),w={start:{x:u[f+1][2][0],y:u[f+1][2][1]},end:{x:u[f+1][3][0],y:u[f+1][3][1]}},E=gi([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]);(y<=r||E<=r)&&(v.push(g.id),s.handles.activeOperation=1),f++}}for(var I=function(e){var t=d[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var a=o._getReferenceLineControllable(t.id),i=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!a||!i)return b=e,"continue";var l=d[e][2],u=d[e][3],f=Ya.vec2.create();Ya.vec2.add(f,l,u),Ya.vec2.scale(f,f,.5);var g=Ya.vec2.create();Ya.vec2.subtract(g,l,f),Ya.vec2.normalize(g,g);var h=Ya.vec2.create();Ya.vec2.scale(h,g,.05*c);var m=Ya.vec2.create(),p=Ya.vec2.create();Ya.vec2.add(m,f,h),Ya.vec2.subtract(p,f,h);var y={start:{x:m[0],y:m[1]},end:{x:l[0],y:l[1]}},w=gi([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]),E={start:{x:p[0],y:p[1]},end:{x:u[0],y:u[1]}},I=gi([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(w<=r||I<=r)&&(v.push(t.id),s.handles.activeOperation=null),e++,b=e},b=0;b<d.length-1;++b)I(b);return s.activeViewportIds=[].concat(v),this.editData={annotation:t},1===s.handles.activeOperation}}]),o}(pl);function Pl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ul(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pl(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}G(Ll,"toolName","Crosshairs");var Vl=V.utilities.transformWorldToIndex,jl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"eventDispatchDetail",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=(0,V.getEnabledElement)(a),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.getReferencedImageId(c,i,d,v),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(d),viewUp:Zn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{points:[Zn(i)]},cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(a,g);var h=ji(a,e.getToolName());return e.editData={annotation:g,newAnnotation:!0,viewportIdsToRender:h},e._activateModify(a),ia(a),t.preventDefault(),Br(s,h),g})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation;o.highlighted=!1;var l=(0,V.getEnabledElement)(n),c=l.renderingEngine,s=l.viewportId;if(e.eventDispatchDetail={viewportId:s,renderingEngineId:c.id},e._deactivateModify(n),aa(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&de(o.annotationUID,n),Br(c,a),i){var u=j.ANNOTATION_COMPLETED,d={annotation:o};(0,V.triggerEvent)(V.eventTarget,u,d)}})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=e.editData,l=i.annotation,c=i.viewportIdsToRender;l.data.handles.points[0]=Zn(a),l.invalidated=!0;var s=(0,V.getEnabledElement)(o).renderingEngine;Br(s,c)})),G(Rt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),aa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Br(l,o),a){var c=j.ANNOTATION_COMPLETED,s={annotation:r};(0,V.triggerEvent)(V.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),G(Rt(e),"_activateModify",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateModify",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=i.element,c=se(l,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(a=c=e.filterInteractableAnnotationsForElement(l,c))&&void 0!==a&&a.length)for(var s=e.getTargetId(i),u=i.getRenderingEngine(),d=0;d<c.length;d++){var v=c[d],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,m=h.handles.points[0],p=i.worldToCanvas(m),y=e.getStyle(f,"color",v);if(h.cachedStats[s]?v.invalidated&&(e._calculateCachedStats(v,u,t),i instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,index:null,value:null},e._calculateCachedStats(v,u,t)),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");Sa(n,e.getToolName(),g,"0",[p],{color:y});var w=e._getTextLines(h,s);if(w){var E=[p[0]+6,p[1]-6];Na(n,e.getToolName(),g,"0",w,[E[0],E[1]],e.getLinkedTextBoxStyle(f,v))}}})),e}return W(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,a=t.data.handles.points[0],i=o.worldToCanvas(a);if(!0==Ya.vec2.distance(n,i)<r)return a}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=ji(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),ia(r);var a=(0,V.getEnabledElement)(r).renderingEngine;Br(a,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.index,o=n.Modality,a=n.value,i=n.SUVBw,l=n.SUVLbm,c=n.SUVBsa;if(void 0!==a||void 0!==i){var s=[];return s.push("(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")")),"PT"===o?a?s.push("".concat(a.toFixed(2)," SUV")):(s.push("".concat(i.toFixed(2)," SUV bw")),l&&s.push("".concat(l.toFixed(2)," SUV lbm")),c&&s.push("".concat(c.toFixed(2)," SUV bsa"))):"CT"===o?s.push("".concat(a.toFixed(2)," HU")):s.push("".concat(a.toFixed(2)," MO")),s}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if("PT"===n)if(t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,a=o.suvbwToSuvlbm,i=o.suvbwToSuvbsa;if(r.SUVBw=e,a){var l=e*a;r.SUVLbm=l}if(a){var c=e*i;r.SUVBsa=c}}else r.value=e;else r.value=e;return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.cachedStats,c=Object.keys(l),s=0;s<c.length;s++){var u=c[s],d=this.getTargetIdImage(u,t),v=d.dimensions,f=d.scalarData,g=d.imageData,h=d.metadata.Modality,m=Vl(g,i);if(m[0]=Math.round(m[0]),m[1]=Math.round(m[1]),m[2]=Math.round(m[2]),V.utilities.indexWithinDimensions(m,v)){this.isHandleOutsideImage=!1;var p=v[0],y=v[0]*v[1],w=f[m[2]*y+m[1]*p+m[0]];u.startsWith("imageId:")&&function(){var e=(0,V.getRenderingEngine)(a).getStackViewports(),t=u.split("imageId:")[1],n=e.find((function(e){return e.hasImageId(t)}));m[2]=n.getCurrentImageIdIndex()}();var E=this._getValueForModality(w,d,h);l[u]=Ul(Ul({index:m},E),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[u]={index:m,Modality:h};e.invalidated=!1;var I=j.ANNOTATION_MODIFIED,b={annotation:e,viewportId:o,renderingEngineId:a};(0,V.triggerEvent)(V.eventTarget,I,b)}return l}}]),o}(pl);G(jl,"toolName","Probe");var Bl=V.utilities.transformWorldToIndex,Fl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=(0,V.getEnabledElement)(a),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.getReferencedImageId(c,i,d,v),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(d),viewUp:Zn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{points:[Zn(i),Zn(i),Zn(i),Zn(i)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(a,g);var h=ji(a,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(a),ia(a),t.preventDefault(),Br(s,h),g})),G(Rt(e),"isPointNearTool",(function(t,n,r,o){var a=(0,V.getEnabledElement)(t).viewport,i=n.data.handles.points,l=a.worldToCanvas(i[0]),c=a.worldToCanvas(i[3]),s=e._getRectangleImageCoordinates([l,c]),u=[r[0],r[1]];return pi([s.left,s.top,s.width,s.height],u)<=o})),G(Rt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),ia(o);var i=(0,V.getEnabledElement)(o).renderingEngine;Br(i,a),t.preventDefault()})),G(Rt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var c=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o),ia(o);var s=(0,V.getEnabledElement)(o).renderingEngine;Br(s,c),t.preventDefault()})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),aa(n);var s=(0,V.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&de(o.annotationUID,n),Br(s,a),i){var u=j.ANNOTATION_COMPLETED,d={annotation:o};(0,V.triggerEvent)(V.eventTarget,u,d)}}})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g,h,m,p,y,w,E,I,b=n.currentPoints,_=(0,V.getEnabledElement)(r).viewport,T=_.worldToCanvas,S=_.canvasToWorld,O=b.world,C=s.handles.points;switch(C[l]=Zn(O),l){case 0:case 3:g=T(C[0]),h=[(p=T(C[3]))[0],g[1]],m=[g[0],p[1]],w=S(h),E=S(m),C[1]=w,C[2]=E;break;case 1:case 2:h=T(C[1]),g=[(m=T(C[2]))[0],h[1]],p=[h[0],m[1]],y=S(g),I=S(p),C[0]=y,C[3]=I}a.invalidated=!0}e.editData.hasMoved=!0;var D=(0,V.getEnabledElement)(r).renderingEngine;Br(D,i)})),G(Rt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),aa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Br(l,o),a){var c=j.ANNOTATION_COMPLETED,s={annotation:r};(0,V.triggerEvent)(V.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),G(Rt(e),"_activateDraw",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_activateModify",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateModify",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=i.element,c=se(l,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(a=c=e.filterInteractableAnnotationsForElement(l,c))&&void 0!==a&&a.length)for(var s=e.getTargetId(i),u=i.getRenderingEngine(),d=0;d<c.length;d++){var v=c[d],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,m=h.handles,p=m.points,y=m.activeHandleIndex,w=p.map((function(e){return i.worldToCanvas(e)})),E=e.getStyle(f,"lineWidth",v),I=e.getStyle(f,"lineDash",v),b=e.getStyle(f,"color",v),_=i.getCamera(),T=_.viewPlaneNormal,S=_.viewUp;if(h.cachedStats[s]?v.invalidated&&(e._throttledCalculateCachedStats(v,T,S,u,t),i instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null},e._calculateCachedStats(v,T,S,u,t)),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var O=void 0;$(v)||e.editData||null===y||(O=[w[y]]),O&&Sa(n,e.getToolName(),g,"0",O,{color:b}),Pa(n,e.getToolName(),g,"0",w[0],w[3],{color:b,lineDash:I,lineWidth:E});var C=e._getTextLines(h,s);if(C&&0!==C.length){if(!h.handles.textBox.hasMoved){var D=ii(w);h.handles.textBox.worldPosition=i.canvasToWorld(D)}var x=i.worldToCanvas(h.handles.textBox.worldPosition),N=La(n,e.getToolName(),g,"1",C,x,w,{},e.getLinkedTextBoxStyle(f,v)),M=N.x,R=N.y,k=N.width,A=N.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([M,R]),topRight:i.canvasToWorld([M+k,R]),bottomLeft:i.canvasToWorld([M,R+A]),bottomRight:i.canvasToWorld([M+k,R+A])}}}})),G(Rt(e),"_getRectangleImageCoordinates",(function(e){var t=Ma(e,2),n=t[0],r=t[1];return{left:Math.min(n[0],r[0]),top:Math.min(n[1],r[1]),width:Math.abs(n[0]-r[0]),height:Math.abs(n[1]-r[1])}})),G(Rt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,a=n.max,i=n.stdDev,l=n.Modality;if(void 0!==o){var c=[],s="Area: ".concat(r.toFixed(2)," mm").concat(String.fromCharCode(178)),u="Mean: ".concat(o.toFixed(2)),d="Max: ".concat(a.toFixed(2)),v="Std Dev: ".concat(i.toFixed(2));return"PT"===l?(u+=" SUV",d+=" SUV",v+=" SUV"):"CT"===l?(u+=" HU",d+=" HU",v+=" HU"):(u+=" MO",d+=" MO",v+=" MO"),c.push(s),c.push(d),c.push(u),c.push(v),c}})),G(Rt(e),"_calculateCachedStats",(function(t,n,r,o,a){for(var i=t.data,l=a.viewportId,c=a.renderingEngineId,s=i.handles.points[0],u=i.handles.points[3],d=i.cachedStats,v=Object.keys(d),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o),m=h.dimensions,p=h.scalarData,y=h.imageData,w=h.metadata,E=Bl(y,s);E[0]=Math.floor(E[0]),E[1]=Math.floor(E[1]),E[2]=Math.floor(E[2]);var I=Bl(y,u);if(I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]),e._isInsideVolume(E,I,m)){e.isHandleOutsideImage=!1;for(var b=Math.min(E[0],I[0]),_=Math.max(E[0],I[0]),T=Math.min(E[1],I[1]),S=Math.max(E[1],I[1]),O=Math.min(E[2],I[2]),C=Math.max(E[2],I[2]),D=Ei(n,r,s,u),x=D.worldWidth*D.worldHeight,N=0,M=0,R=0,k=-1/0,A=m[0],L=m[0]*m[1],P=O;P<=C;P++)for(var U=T;U<=S;U++)for(var B=b;B<=_;B++){var F=p[P*L+U*A+B];F>k&&(k=F),N++,M+=F}M/=N;for(var W=O;W<=C;W++)for(var G=T;G<=S;G++)for(var q=b;q<=_;q++){var H=p[W*L+G*A+q]-M;R+=H*H}R/=N,R=Math.sqrt(R),d[g]={Modality:w.Modality,area:x,mean:M,stdDev:R,max:k}}else e.isHandleOutsideImage=!0,d[g]={Modality:w.Modality}}t.invalidated=!1;var z=j.ANNOTATION_MODIFIED,K={annotation:t,viewportId:l,renderingEngineId:c};return(0,V.triggerEvent)(V.eventTarget,z,K),d})),G(Rt(e),"_isInsideVolume",(function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Ga(e._calculateCachedStats,100,{trailing:!0}),e}return W(o)}(pl);function Wl(e,t,n,r){var o=Ya.vec3.create();Ya.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ya.vec3.fromValues.apply(Ya.vec3,Zn(n)),i=Ya.vec3.fromValues.apply(Ya.vec3,Zn(r)),l=Ya.vec3.create();Ya.vec3.subtract(l,a,i);var c=Ya.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=Ya.vec3.dot(l,o)/(c*Ya.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}G(Fl,"toolName","RectangleROI");var Gl=V.utilities.transformWorldToIndex,ql=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",!1),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=r.canvas,c=(0,V.getEnabledElement)(a),s=c.viewport,u=c.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),v=d.viewPlaneNormal,f=d.viewUp,g=e.getReferencedImageId(s,i,v,f),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(v),viewUp:Zn(f),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:g},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null},cachedStats:{}}};V.Settings.getObjectSettings(h,o),ue(a,h);var m=ji(a,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:m,centerCanvas:l,newAnnotation:!0,hasMoved:!1},e._activateDraw(a),ia(a),t.preventDefault(),Br(u,m),h})),G(Rt(e),"isPointNearTool",(function(t,n,r,o){var a=(0,V.getEnabledElement)(t).viewport,i=Ma(di(n.data.handles.points.map((function(e){return a.worldToCanvas(e)}))),2),l=i[0],c=i[1],s={left:Math.min(l[0],c[0])+o/2,top:Math.min(l[1],c[1])+o/2,width:Math.abs(l[0]-c[0])-o,height:Math.abs(l[1]-c[1])-o},u={left:Math.min(l[0],c[0])-o/2,top:Math.min(l[1],c[1])-o/2,width:Math.abs(l[0]-c[0])+o,height:Math.abs(l[1]-c[1])+o},d=e._pointInEllipseCanvas(s,r);return!(!e._pointInEllipseCanvas(u,r)||d)})),G(Rt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},ia(o),e._activateModify(o);var i=(0,V.getEnabledElement)(o).renderingEngine;Br(i,a),t.preventDefault()})),G(Rt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l,c,s,u,d=!1;if(r.worldPosition)d=!0;else{var v=a.handles.points,f=(0,V.getEnabledElement)(o).viewport.worldToCanvas;i=v.findIndex((function(e){return e===r}));var g=v.map(f);u=g[i],c=Math.abs(g[2][0]-g[3][0]),s=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:i,canvasWidth:c,canvasHeight:s,centerCanvas:l,originalHandleCanvas:u,movingTextBox:d},e._activateModify(o),ia(o);var m=(0,V.getEnabledElement)(o).renderingEngine;Br(m,h),t.preventDefault()})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),aa(n);var s=(0,V.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&de(o.annotationUID,n),Br(s,a),i){var u=j.ANNOTATION_COMPLETED,d={annotation:o};(0,V.triggerEvent)(V.eventTarget,u,d)}}})),G(Rt(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,V.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=[d[0],d[1]-g],m=[d[0],d[1]+g],p=[d[0]-f,d[1]],y=[d[0]+f,d[1]];v.handles.points=[l(h),l(m),l(p),l(y)],s.invalidated=!0,e.editData.hasMoved=!0,Br(i,u)})),G(Rt(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else e._dragHandle(t),a.invalidated=!0;var g=(0,V.getEnabledElement)(r).renderingEngine;Br(g,i)})),G(Rt(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,V.getEnabledElement)(r).viewport.canvasToWorld,a=e.editData,i=a.annotation,l=a.canvasWidth,c=a.canvasHeight,s=a.handleIndex,u=a.centerCanvas,d=a.originalHandleCanvas,v=i.data.handles.points,f=n.currentPoints.canvas;if(0===s||1===s){var g=Math.abs(f[1]-u[1]),h=[u[0],u[1]-g],m=[u[0],u[1]+g];v[0]=o(h),v[1]=o(m);var p=l/2+(f[0]-d[0]),y=[u[0]-p,u[1]],w=[u[0]+p,u[1]];v[2]=o(y),v[3]=o(w)}else{var E=Math.abs(f[0]-u[0]),I=[u[0]-E,u[1]],b=[u[0]+E,u[1]];v[2]=o(I),v[3]=o(b);var _=c/2+(f[1]-d[1]),T=[u[0],u[1]-_],S=[u[0],u[1]+_];v[0]=o(T),v[1]=o(S)}})),G(Rt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),aa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Br(l,o),a){var c=j.ANNOTATION_COMPLETED,s={annotation:r};(0,V.triggerEvent)(V.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),G(Rt(e),"_activateModify",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateModify",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_activateDraw",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(j.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(j.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=i.element,c=se(l,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(a=c=e.filterInteractableAnnotationsForElement(l,c))&&void 0!==a&&a.length)for(var s=e.getTargetId(i),u=i.getRenderingEngine(),d=0;d<c.length;d++){var v=c[d],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,m=h.handles,p=m.points,y=m.activeHandleIndex,w=e.getStyle(f,"lineWidth",v),E=e.getStyle(f,"lineDash",v),I=e.getStyle(f,"color",v),b=p.map((function(e){return i.worldToCanvas(e)})),_=di(b);if(h.cachedStats[s]?v.invalidated&&(e._throttledCalculateCachedStats(v,i,u,t),i instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null},e._calculateCachedStats(v,i,u,t)),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var T=void 0;$(v)||e.editData||null===y||(T=[b[y]]),T&&Sa(n,e.getToolName(),g,"0",T,{color:I}),Ta(n,e.getToolName(),g,"0",_[0],_[1],{color:I,lineDash:E,lineWidth:w});var S=e._getTextLines(h,s);if(S&&0!==S.length){var O=void 0;h.handles.textBox.hasMoved||(O=ii(_),h.handles.textBox.worldPosition=i.canvasToWorld(O));var C=i.worldToCanvas(h.handles.textBox.worldPosition),D=La(n,e.getToolName(),g,"1",S,C,b,{},e.getLinkedTextBoxStyle(f,v)),x=D.x,N=D.y,M=D.width,R=D.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([x,N]),topRight:i.canvasToWorld([x+M,N]),bottomLeft:i.canvasToWorld([x,N+R]),bottomRight:i.canvasToWorld([x+M,N+R])}}}})),G(Rt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,a=n.stdDev,i=n.max,l=n.isEmptyArea,c=n.Modality;if(void 0!==o){var s=[],u=l?"Area: Oblique not supported":"Area: ".concat(r.toFixed(2)," mm").concat(String.fromCharCode(178)),d="Mean: ".concat(o.toFixed(2)),v="Max: ".concat(i.toFixed(2)),f="Std Dev: ".concat(a.toFixed(2));return"PT"===c?(d+=" SUV",v+=" SUV",f+=" SUV"):"CT"===c?(d+=" HU",v+=" HU",f+=" HU"):(d+=" MO",v+=" MO",f+=" MO"),s.push(u),s.push(v),s.push(d),s.push(f),s}})),G(Rt(e),"_calculateCachedStats",(function(t,n,r,o){for(var a=t.data,i=o.viewportId,l=o.renderingEngineId,c=a.handles.points.map((function(e){return n.worldToCanvas(e)})),s=n.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=Ma(di(c),2),f=v[0],g=v[1],h=n.canvasToWorld(f),m=n.canvasToWorld(g),p=a.cachedStats,y=Object.keys(p),w=h,E=m,I=0;I<y.length;I++){var b=y[I],_=e.getTargetIdImage(b,r),T=_.dimensions,S=_.imageData,O=_.metadata,C=Gl(S,w);C[0]=Math.floor(C[0]),C[1]=Math.floor(C[1]),C[2]=Math.floor(C[2]);var D=Gl(S,E);D[0]=Math.floor(D[0]),D[1]=Math.floor(D[1]),D[2]=Math.floor(D[2]),e._isInsideVolume(C,D,T)?function(){var e=[[Math.min(C[0],D[0]),Math.max(C[0],D[0])],[Math.min(C[1],D[1]),Math.max(C[1],D[1])],[Math.min(C[2],D[2]),Math.max(C[2],D[2])]],t={center:[(h[0]+m[0])/2,(h[1]+m[1])/2,(h[2]+m[2])/2],xRadius:Math.abs(h[0]-m[0])/2,yRadius:Math.abs(h[1]-m[1])/2,zRadius:Math.abs(h[2]-m[2])/2},n=Wl(u,d,w,E),r=n.worldWidth,o=n.worldHeight,a=0===r&&0===o,i=Math.PI*(r/2)*(o/2),l=0,c=0,s=0,v=-1/0;Za(S,(function(e,n){return ui(t,e)}),(function(e){var t=e.value;t>v&&(v=t),c+=t,l+=1}),e),c/=l,Za(S,(function(e,n){return ui(t,e)}),(function(e){var t=e.value-c;s+=t*t}),e),s/=l,s=Math.sqrt(s),p[b]={Modality:O.Modality,area:i,mean:c,max:v,stdDev:s,isEmptyArea:a}}():(e.isHandleOutsideImage=!0,p[b]={Modality:O.Modality})}t.invalidated=!1;var x=j.ANNOTATION_MODIFIED,N={annotation:t,viewportId:i,renderingEngineId:l};return(0,V.triggerEvent)(V.eventTarget,x,N),p})),G(Rt(e),"_isInsideVolume",(function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Ga(e._calculateCachedStats,100,{trailing:!0}),e}return W(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],a=[t[0]-o[0],t[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(r*r)<=1}}]),o}(pl);G(ql,"toolName","EllipticalROI");var Hl=V.utilities.transformWorldToIndex,zl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"touchDragCallback",void 0),G(Rt(e),"mouseDragCallback",void 0),G(Rt(e),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"preventHandleOutsideImage",void 0),G(Rt(e),"isPointNearTool",(function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,a=t.data.handles.points,i=o.worldToCanvas(a[0]),l=o.worldToCanvas(a[1]),c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}},s=gi([c.start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]);return s<=r||(i=o.worldToCanvas(a[2]),l=o.worldToCanvas(a[3]),(s=gi([(c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}}).start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]))<=r)})),G(Rt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=ji(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o);var i=(0,V.getEnabledElement)(o).renderingEngine;Br(i,a),ia(o),t.preventDefault()})),G(Rt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var c=ji(o,e.getToolName());ia(o),e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o);var s=(0,V.getEnabledElement)(o).renderingEngine;Br(s,c),t.preventDefault()})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),aa(n);var s=(0,V.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var u=c.handles.points,d=Ya.vec3.distance(u[0],u[1]);if(Ya.vec3.distance(u[2],u[3])>d){var v=[Zn(u[2]),Zn(u[3])],f=Zn(u[0]),g=Zn(u[1]),h=Ya.vec2.create();Ya.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var m=Ya.vec2.create();Ya.vec2.set(m,-h[1],h[0]);var p,y=Ya.vec2.create();Ya.vec2.set(y,g[0]-f[0],g[1]-f[0]),p=Ya.vec2.dot(y,m)>0?[f,g]:[g,f],c.handles.points=[v[0],v[1],p[0],p[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&de(o.annotationUID,n),Br(s,a),i){var w=j.ANNOTATION_COMPLETED,E={annotation:o};(0,V.triggerEvent)(V.eventTarget,w,E)}e.editData=null,e.isDrawing=!1}})),G(Rt(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=(0,V.getEnabledElement)(o),i=a.renderingEngine,l=a.viewport,c=l.worldToCanvas,s=e.editData,u=s.annotation,d=s.viewportIdsToRender,v=s.handleIndex,f=u.data,g=r.world;f.handles.points[v]=Zn(g);var h=f.handles.points.map(c),m={x:h[0][0],y:h[0][1]},p={x:h[1][0],y:h[1][1]},y=(h[2][0],h[2][1],h[3][0],h[3][1],Ya.vec2.distance(h[0],h[1])/3),w=m.x-p.x,E=m.y-p.y,I=Math.sqrt(w*w+E*E),b=w/I,_=E/I,T=(m.x+p.x)/2,S=(m.y+p.y)/2,O=T+y*_,C=S-y*b,D=T-y*_,x=S+y*b;f.handles.points[2]=l.canvasToWorld([O,C]),f.handles.points[3]=l.canvasToWorld([D,x]),u.invalidated=!0,Br(i,d),e.editData.hasMoved=!0})),G(Rt(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,V.getEnabledElement)(r).renderingEngine,a=e.editData,i=a.annotation,l=a.viewportIdsToRender,c=a.handleIndex,s=a.movingTextBox,u=i.data;if(s){var d=n.deltaPoints.world,v=u.handles.textBox,f=v.worldPosition;f[0]+=d[0],f[1]+=d[1],f[2]+=d[2],v.hasMoved=!0}else if(void 0===c){var g=n.deltaPoints.world;u.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),i.invalidated=!0}else e._mouseDragModifyHandle(t),i.invalidated=!0;Br(o,l)})),G(Rt(e),"_mouseDragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,V.getEnabledElement)(o).viewport,i=e.editData,l=i.annotation,c=i.handleIndex,s=l.data,u=r.world,d=[a.worldToCanvas(s.handles.points[0]),a.worldToCanvas(s.handles.points[1]),a.worldToCanvas(s.handles.points[2]),a.worldToCanvas(s.handles.points[3])],v={start:{x:d[0][0],y:d[0][1]},end:{x:d[1][0],y:d[1][1]}},f={start:{x:d[2][0],y:d[2][1]},end:{x:d[3][0],y:d[3][1]}},g=Zn(u),h=a.worldToCanvas(g);if(0===c||1===c){var m=d[0===c?1:0],p={start:{x:m[0],y:m[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(p,f))return;var y=mi([f.start.x,f.start.y],[f.end.x,f.end.y],[v.start.x,v.start.y],[v.end.x,v.end.y]),w=Ya.vec2.create();Ya.vec2.set(w,y[0],y[1]);var E=Ya.vec2.distance(d[2],w),I=Ya.vec2.distance(d[3],w),b=Math.abs(Ya.vec2.distance(m,w)),_=m[0]-h[0],T=m[1]-h[1],S=Math.sqrt(_*_+T*T),O=_/S,C=T/S,D=m[0]-b*O,x=m[1]-b*C,N=0===c?-1:1,M=D+E*C*N,R=x-E*O*N,k=D-I*C*N,A=x+I*O*N;s.handles.points[c]=g,s.handles.points[2]=a.canvasToWorld([M,R]),s.handles.points[3]=a.canvasToWorld([k,A])}else{var L=2===c?3:2,P={x:h[0],y:h[1]},U={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},j=U.longLineSegment.start.x-U.longLineSegment.end.x,B=U.longLineSegment.start.y-U.longLineSegment.end.y,F=Math.sqrt(j*j+B*B),W=j/F,G=B/F,q=(0===c||3===c?1:-1)*Number.MAX_SAFE_INTEGER,H={start:P,end:{x:P.x+G*q,y:P.y+W*q*-1}},z=mi([U.longLineSegment.start.x,U.longLineSegment.start.y],[U.longLineSegment.end.x,U.longLineSegment.end.y],[H.start.x,H.start.y],[H.end.x,H.end.y]);if(void 0===z)return;var K=Ya.vec2.distance(d[L],[z[0],z[1]]),Y={start:{x:z[0]+G*K,y:z[1]+W*K*-1},end:{x:z[0]+G*K*-1,y:z[1]+W*K}},Z=2===L?Y.start:Y.end;s.handles.points[L]=a.canvasToWorld([Z.x,Z.y]),s.handles.points[c]=g}})),G(Rt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),aa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Br(l,o),a){var c=j.ANNOTATION_COMPLETED,s={annotation:r};(0,V.triggerEvent)(V.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),G(Rt(e),"_activateDraw",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(j.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(j.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_activateModify",(function(t){Tt.isInteractingWithTool=!0,t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateModify",(function(t){Tt.isInteractingWithTool=!1,t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=i.element,c=se(i.element,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(a=c=e.filterInteractableAnnotationsForElement(l,c))&&void 0!==a&&a.length)for(var s=e.getTargetId(i),u=i.getRenderingEngine(),d=0;d<c.length;d++){var v=c[d],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,m=h.handles,p=m.points,y=m.activeHandleIndex,w=p.map((function(e){return i.worldToCanvas(e)})),E=e.getStyle(f,"lineWidth",v),I=e.getStyle(f,"lineDash",v),b=e.getStyle(f,"color",v);if(h.cachedStats[s]?v.invalidated&&e._throttledCalculateCachedStats(v,u,t):(h.cachedStats[s]={length:null,width:null},e._calculateCachedStats(v,u,t)),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var _=void 0;$(v)||e.editData||null===y||(_=[w[y]]),_&&Sa(n,e.getToolName(),g,"0",_,{color:b}),Oa(n,e.getToolName(),g,"0",w[0],w[1],{color:b,lineDash:I,lineWidth:E}),Oa(n,e.getToolName(),g,"1",w[2],w[3],{color:b,lineDash:I,lineWidth:E});var T=e._getTextLines(h,s);if(T&&0!==T.length){var S=void 0;h.handles.textBox.hasMoved||(S=ii(w),h.handles.textBox.worldPosition=i.canvasToWorld(S));var O=i.worldToCanvas(h.handles.textBox.worldPosition),C=La(n,e.getToolName(),g,"1",T,O,w,{},e.getLinkedTextBoxStyle(f,v)),D=C.x,x=C.y,N=C.width,M=C.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([D,x]),topRight:i.canvasToWorld([D+N,x]),bottomLeft:i.canvasToWorld([D,x+M]),bottomRight:i.canvasToWorld([D+N,x+M])}}}})),G(Rt(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=Ya.vec2.create();Ya.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),Ya.vec2.normalize(n,n);var r={start:{x:t.start.x-10*n[0],y:t.start.y-10*n[1]},end:{x:t.end.x+10*n[0],y:t.end.y+10*n[1]}};return!mi([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),G(Rt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width;if(void 0!==r)return["L: ".concat(r.toFixed(2)," mm"),"W: ".concat(o.toFixed(2)," mm")]})),G(Rt(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,a=r.viewportId,i=r.renderingEngineId,l=o.handles.points[0],c=o.handles.points[1],s=o.handles.points[2],u=o.handles.points[3],d=o.cachedStats,v=Object.keys(d),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n),m=h.imageData,p=h.dimensions,y=e._calculateLength(l,c),w=e._calculateLength(s,u),E=y>w?y:w,I=y>w?w:y,b=Hl(m,l),_=Hl(m,c),T=Hl(m,s),S=Hl(m,u);e._isInsideVolume(b,_,T,S,p)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,d[g]={length:E,width:I}}t.invalidated=!1;var O=j.ANNOTATION_MODIFIED,C={annotation:t,viewportId:a,renderingEngineId:i};return(0,V.triggerEvent)(V.eventTarget,O,C),d})),G(Rt(e),"_isInsideVolume",(function(e,t,n,r,o){return V.utilities.indexWithinDimensions(e,o)&&V.utilities.indexWithinDimensions(t,o)&&V.utilities.indexWithinDimensions(n,o)&&V.utilities.indexWithinDimensions(r,o)})),e._throttledCalculateCachedStats=Ga(e._calculateCachedStats,100,{trailing:!0}),e}return W(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,a=n.world,i=(0,V.getEnabledElement)(r),l=i.viewport,c=i.renderingEngine;this.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=this.getReferencedImageId(l,a,u,d),f={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:Zn(u),viewUp:Zn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Zn(a),Zn(a),Zn(a),Zn(a)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};V.Settings.getObjectSettings(f,o),ue(r,f);var g=ji(r,this.getToolName());return this.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),ia(r),e.preventDefault(),Br(c,g),f}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}}]),o}(pl);G(zl,"toolName","Bidirectional");var Kl=V.utilities.transformWorldToIndex;function Yl(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.constraintFn,c=n.imageData,s=n.dimensions,u=n.scalarData,d=r.map((function(e){return Kl(c,e)})),v=$a(d=d.map((function(e){return e.map((function(e){return Math.round(e)}))})),s);if(v.every((function(e){var t=Ma(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Za(c,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(u[n]=a):u[n]=a)}),v),Ie(i)}(0,t)}var Zl=V.utilities.transformWorldToIndex;function $l(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentationId,i=n.imageData,l=n.dimensions,c=n.scalarData,s=$a(r.map((function(e){return Zl(i,e)})),l);if(s.every((function(e){var t=Ma(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Za(i,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(c[n]=0)}),s),Ie(a)}(0,t)}var Xl=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Yl,ERASE_INSIDE:$l},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,V.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.toolGroupId,f=nl(v);if(!f)throw new Error("No active segmentation detected, create one before using scissors tool");var g=f.segmentationRepresentationUID,h=f.segmentationId,m=f.type,p=fl(h),y=il(h),w=sl(v,g,p),E=xe(h).representationData[m].volumeId,I=V.cache.getVolume(E),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(u),viewUp:Zn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:w},data:{handles:{points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null}}};V.Settings.getObjectSettings(b,Fl);var _=ji(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:p,segmentsLocked:y,segmentColor:w,segmentationId:h,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),ia(o),t.preventDefault(),Br(c,_),!0})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,a,i,l,c,s,u=t.detail,d=u.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,m=f.data,p=u.currentPoints,y=(0,V.getEnabledElement)(d),w=y.viewport,E=w.worldToCanvas,I=w.canvasToWorld,b=p.world,_=m.handles.points;switch(_[h]=Zn(b),h){case 0:case 3:n=E(_[0]),r=[(a=E(_[3]))[0],n[1]],o=[n[0],a[1]],l=I(r),c=I(o),_[1]=l,_[2]=c;break;case 1:case 2:r=E(_[1]),n=[(o=E(_[2]))[0],r[1]],a=[r[0],o[1]],i=I(n),s=I(a),_[0]=i,_[3]=s}f.invalidated=!0,e.editData.hasMoved=!0;var T=y.renderingEngine;Br(T,g)})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentationId,s=r.segmentIndex,u=r.segmentsLocked,d=o.data;if(!a||i){o.highlighted=!1,d.handles.activeHandleIndex=null,e._deactivateDraw(n),aa(n);var v=(0,V.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof V.StackViewport)throw new Error("Not implemented yet");var g={points:d.handles.points,volume:l,segmentationId:c,segmentIndex:s,segmentsLocked:u};e.applyActiveStrategy(v,g)}})),G(Rt(e),"_activateDraw",(function(t){t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport,o=e.editData.annotation,a=(V.Settings.getObjectSettings(o,Fl),o.metadata),i=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),c="rgb(".concat(a.segmentColor.slice(0,3),")");r.getRenderingEngine()?Pa(n,e.getToolName(),i,"0",l[0],l[3],{color:c}):console.warn("Rendering Engine has been destroyed")}})),e}return W(o)}(Ht);G(Xl,"toolName","RectangleScissor");var Jl=V.utilities.transformWorldToIndex;function Ql(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=n.imageData,c=n.dimensions,s=n.scalarData,u=e.viewport,d=Ya.vec3.fromValues(0,0,0);r.forEach((function(e){Ya.vec3.add(d,d,e)})),Ya.vec3.scale(d,d,1/r.length);var v=Ma(di(r.map((function(e){return u.worldToCanvas(e)}))),2),f=v[0],g=v[1],h=u.canvasToWorld(f),m=u.canvasToWorld(g),p=$a([Jl(l,h),Jl(l,m)],c);if(p.every((function(e){var t=Ma(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var y={center:d,xRadius:Math.abs(h[0]-m[0])/2,yRadius:Math.abs(h[1]-m[1])/2,zRadius:Math.abs(h[2]-m[2])/2},w=new Set;Za(l,(function(e,t){return ui(y,e)}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(s[n]=a,w.add(r[2]))}),p),Ie(i,Array.from(w))}(e,t)}var ec=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Ql},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return B(this,o),G(Rt(e=r.call(this,t,n)),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,V.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.toolGroupId,g=nl(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,m=g.segmentationId,p=g.type,y=fl(m),w=il(m),E=sl(f,h,y),I=xe(m).representationData[p].volumeId,b=V.cache.getVolume(I),_={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:Zn(d),viewUp:Zn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},T=[c.id];return e.editData={annotation:_,segmentation:b,centerCanvas:i,segmentIndex:y,segmentationId:m,segmentsLocked:w,segmentColor:E,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),ia(o),t.preventDefault(),Br(s,T),!0})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,V.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=Math.sqrt(f*f+g*g),m=[d[0],d[1]+h],p=[d[0],d[1]-h],y=[d[0]-h,d[1]],w=[d[0]+h,d[1]];v.handles.points=[l(m),l(p),l(y),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,Br(i,u)})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,u=r.segmentationId,d=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,d.handles.activeHandleIndex=null,e._deactivateDraw(n),aa(n);var h=(0,V.getEnabledElement)(n),m=h.viewport;if(e.editData=null,e.isDrawing=!1,m instanceof V.StackViewport)throw new Error("Not implemented yet");var p={points:d.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,viewPlaneNormal:f,segmentationId:u,viewUp:g};e.applyActiveStrategy(h,p)}})),G(Rt(e),"_activateDraw",(function(t){t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport;if(e.editData.viewportIdsToRender.includes(r.id)){var o=e.editData.annotation,a=o.metadata,i=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),c=l[0],s=l[1],u=[Math.floor((c[0]+s[0])/2),Math.floor((c[1]+s[1])/2)],d=Math.abs(c[1]-Math.floor((c[1]+s[1])/2)),v="rgb(".concat(a.segmentColor.slice(0,3),")");r.getRenderingEngine()?_a(n,e.getToolName(),i,"0",u,d,{color:v}):console.warn("Rendering Engine has been destroyed")}}})),e}return W(o)}(Ht);function tc(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.points,c=r.scalarData;Qa(n,r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(c[t]=a)})),Ie(i)}(e,t)}G(ec,"toolName","CircleScissor");var nc=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:tc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return B(this,o),G(Rt(e=r.call(this,t,n)),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,V.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.toolGroupId,g=nl(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,m=g.segmentationId,p=g.type,y=fl(m),w=il(m),E=sl(f,h,y),I=xe(m).representationData[p].volumeId,b=V.cache.getVolume(I);e.isDrawing=!0;var _={metadata:{viewPlaneNormal:Zn(d),viewUp:Zn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{invalidated:!0,handles:{points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},T=[c.id];return e.editData={annotation:_,segmentation:b,centerCanvas:i,segmentIndex:y,segmentsLocked:w,segmentColor:E,segmentationId:m,toolGroupId:f,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),ia(o),t.preventDefault(),Br(s,T),!0})),G(Rt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,V.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=Math.sqrt(f*f+g*g),m=[d[0],d[1]+h],p=[d[0],d[1]-h],y=[d[0]-h,d[1]],w=[d[0]+h,d[1]];v.handles.points=[l(m),l(p),l(y),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,Br(i,u)})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,u=r.segmentationId,d=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,d.handles.activeHandleIndex=null,e._deactivateDraw(n),aa(n);var h=(0,V.getEnabledElement)(n),m=h.viewport;if(e.editData=null,e.isDrawing=!1,m instanceof V.StackViewport)throw new Error("Not implemented yet");var p={points:d.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,segmentationId:u,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,p)}})),G(Rt(e),"_activateDraw",(function(t){t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport;if(e.editData.viewportIdsToRender.includes(r.id)){var o=e.editData.annotation,a=o.metadata,i=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),c=l[0],s=l[1],u=[Math.floor((c[0]+s[0])/2),Math.floor((c[1]+s[1])/2)],d=Math.abs(c[1]-Math.floor((c[1]+s[1])/2)),v="rgb(".concat(a.segmentColor.slice(0,3),")");r.getRenderingEngine()?_a(n,e.getToolName(),i,"0",u,d,{color:v}):console.warn("Rendering Engine has been destroyed")}}})),e}return W(o)}(Ht);G(nc,"toolName","SphereScissor");var rc=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=(0,V.getEnabledElement)(a),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u,d,v=c.getCamera(),f=v.viewPlaneNormal,g=v.viewUp,h=e.getTargetId(c);if(c instanceof V.StackViewport)u=h.split("imageId:")[1];else{d=h.split("volumeId:")[1];var m=V.cache.getVolume(d);u=V.utilities.getClosestImageId(m,i,f,g)}var p={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(f),enabledElement:l,viewUp:Zn(g),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:u,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null},segmentationId:null}};V.Settings.getObjectSettings(p,o),ue(a,p);var y=ji(a,e.getToolName());return e.editData={annotation:p,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(a),ia(a),t.preventDefault(),Br(s,y),p})),G(Rt(e),"renderAnnotation",(function(t,n){var r,a,i=t.viewport,l=t.renderingEngineId,c=i.element,s=se(c,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(a=s=e.filterInteractableAnnotationsForElement(c,s))&&void 0!==a&&a.length)for(var u=0;u<s.length;u++){var d=s[u],v=V.Settings.getObjectSettings(d,o),f=d.annotationUID,g=d.data.handles,h=g.points,m=g.activeHandleIndex,p=h.map((function(e){return i.worldToCanvas(e)})),y=e.getStyle(v,"lineWidth",d),w=e.getStyle(v,"lineDash",d),E=e.getStyle(v,"color",d);if(!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var I=j.ANNOTATION_MODIFIED,b={annotation:d,viewportId:i.id,renderingEngineId:l};(0,V.triggerEvent)(V.eventTarget,I,b);var _=void 0;$(d)||e.editData||null===m||(_=[p[m]]),_&&Sa(n,e.getToolName(),f,"0",_,{color:E}),Pa(n,e.getToolName(),f,"0",p[0],p[3],{color:E,lineDash:w,lineWidth:y})}})),e}return W(o)}(Fl);G(rc,"toolName","RectangleROIThreshold");var oc=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{numSlicesToPropagate:10}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),G(Rt(e),"editData",void 0),G(Rt(e),"isDrawing",void 0),G(Rt(e),"isHandleOutsideImage",void 0),G(Rt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,a=n.element,i=r.world,l=(0,V.getEnabledElement)(a),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u,d,v,f=c.getCamera(),g=f.viewPlaneNormal,h=f.viewUp;if(c instanceof V.StackViewport)throw new Error("Stack Viewport Not implemented");if(v=e.getTargetId(c).split("volumeId:")[1],d=V.cache.getVolume(v),u=V.utilities.getClosestImageId(d,i,g,h))throw new Error("This tool does not work on non-acquisition planes");var m=c.getCurrentImageIdIndex(),p=V.utilities.getSpacingInNormalDirection(d,g),y=e._getEndSliceIndex(d,i,p,g),w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(g),enabledElement:l,viewUp:Zn(h),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:u,toolName:e.getToolName(),volumeId:v,spacingInNormal:p},data:{label:"",startSlice:m,endSlice:y,cachedStats:{projectionPoints:[],projectionPointsImageIds:[u]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(w,d),V.Settings.getObjectSettings(w,o),ue(a,w);var E=ji(a,e.getToolName());return e.editData={annotation:w,viewportIdsToRender:E,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(a),ia(a),t.preventDefault(),Br(s,E),w})),G(Rt(e),"renderAnnotation",(function(t,n){var r=se(t.viewport.element,e.getToolName());if(null!=r&&r.length)for(var a=t.viewport,i=a.getCurrentImageIdIndex(),l=0;l<r.length;l++){var c=r[l],s=V.Settings.getObjectSettings(c,o),u=c.annotationUID,d=c.data,v=d.startSlice,f=d.endSlice,g=d.handles,h=g.points,m=g.activeHandleIndex,p=h.map((function(e){return a.worldToCanvas(e)})),y=e.getStyle(s,"lineWidth",c),w=e.getStyle(s,"lineDash",c),E=e.getStyle(s,"color",c);if(!(i<Math.min(v,f)||i>Math.max(v,f))){c.invalidated&&e._throttledCalculateCachedStats(c,t);var I=!1;if(i!==v&&i!==f||(I=!0),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var b=void 0;$(c)||e.editData||null===m||!I||(b=[p[m]]),b&&Sa(n,e.getToolName(),u,"0",b,{color:E});var _=w;I||(_=2),Pa(n,e.getToolName(),u,"0",p[0],p[3],{color:E,lineDash:_,lineWidth:y})}}})),e._throttledCalculateCachedStats=Ga(e._calculateCachedStatsTool,100,{trailing:!0}),e}return W(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,a=r.spacingInNormal,i=t.imageData,l=n.startSlice,c=n.endSlice,s=(n.cachedStats.projectionPoints,n.handles.points),u=Ya.vec3.create();if(i.worldToIndexVec3(s[0],u),u[2]!==l)throw new Error("Start slice does not match");var d=Ya.vec3.fromValues(u[0],u[1],c),v=Ya.vec3.create();i.indexToWorldVec3(u,v);var f=Ya.vec3.create();i.indexToWorldVec3(d,f);for(var g=Ya.vec3.distance(v,f),h=[],m=function(e){h.push(s.map((function(t){var n=Ya.vec3.create();return Ya.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},p=0;p<g;p+=a)m(p);n.cachedStats.projectionPoints=h;for(var y=[],w=0,E=h;w<E.length;w++){var I=E[w],b=V.utilities.getClosestImageId(t,I[0],o,r.viewUp);y.push(b)}n.cachedStats.projectionPointsImageIds=y}},{key:"_calculateCachedStatsTool",value:function(e,t){var n=e.data,r=t.viewportId,o=t.renderingEngineId,a=t.viewport,i=n.cachedStats,l=this.getTargetId(a),c=V.cache.getVolume(l);this._computeProjectionPoints(e,c),e.invalidated=!1;var s=j.ANNOTATION_MODIFIED,u={annotation:e,viewportId:r,renderingEngineId:o};return(0,V.triggerEvent)(V.eventTarget,s,u),i}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,a=Ya.vec3.create();Ya.vec3.scaleAndAdd(a,t,r,o*n);for(var i,l=n/2,c=e.imageIds,s=0;s<c.length;s++){var u=c[s],d=V.metaData.get("imagePlaneModule",u).imagePositionPatient,v=Ya.vec3.create();Ya.vec3.sub(v,a,d);var f=Ya.vec3.dot(v,r);Math.abs(f)<l&&(i=s)}return i}}]),o}(Fl);G(oc,"toolName","RectangleROIStartEndThreshold");var ac=function(e){At(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Ut(t);if(n){var o=Ut(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Pt(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Ql},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE",brushSize:25}};return B(this,o),G(Rt(e=r.call(this,t,n)),"_editData",void 0),G(Rt(e),"_hoverData",void 0),G(Rt(e),"_isDrawing",void 0),G(Rt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(r.world,r.canvas),i=(0,V.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine,s=l.canvasToWorld;e._isDrawing=!0;var u=l.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.toolGroupId,g=nl(f);if(!g)throw new Error("No active segmentation detected, create one before using the brush tool");var h=g.segmentationRepresentationUID,m=g.segmentationId,p=g.type,y=fl(m),w=il(m),E=(sl(f,h,y),xe(m).representationData[p].volumeId),I=V.cache.getVolume(E),b=a,_=e.configuration.brushSize,T=[b[0],b[1]+_],S=[b[0],b[1]-_],O=[b[0]-_,b[1]],C=[b[0]+_,b[1]],D=(Zn(d),Zn(v),l.getFrameOfReferenceUID(),e.getToolName(),s(T),s(S),s(O),s(C),[l.id]);return e._editData={segmentation:I,segmentsLocked:w},e._activateDraw(o),ia(o),t.preventDefault(),Br(c,D),!0})),G(Rt(e),"mouseMoveCallback",(function(t){e.updateCursor(t)})),G(Rt(e),"_mouseDragCallback",(function(t){e._isDrawing=!0;var n=e.configuration.brushSize,r=t.detail,o=r.element,a=r.currentPoints.canvas,i=(0,V.getEnabledElement)(o),l=i.renderingEngine,c=i.viewport.canvasToWorld,s=e._editData,u=s.segmentation,d=s.segmentsLocked,v=e._hoverData,f=v.segmentIndex,g=v.segmentationId,h=v.segmentationRepresentationUID,m=v.brushCursor,p=v.viewportIdsToRender,y=m.metadata,w=y.viewPlaneNormal,E=y.viewUp,I=m.data,b=a,_=n,T=[b[0],b[1]+_],S=[b[0],b[1]-_],O=[b[0]-_,b[1]],C=[b[0]+_,b[1]];I.handles.points=[c(T),c(S),c(O),c(C)],I.invalidated=!0,Br(l,p);var D={points:I.handles.points,volume:u,segmentIndex:f,segmentsLocked:d,viewPlaneNormal:w,toolGroupId:e.toolGroupId,segmentationId:g,segmentationRepresentationUID:h,viewUp:E};e.applyActiveStrategy(i,D)})),G(Rt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.segmentation,a=r.segmentsLocked,i=e._hoverData,l=i.segmentIndex,c=i.segmentationId,s=i.segmentationRepresentationUID,u=i.brushCursor,d=u.data,v=u.metadata,f=v.viewPlaneNormal,g=v.viewUp;e._deactivateDraw(n),aa(n);var h=(0,V.getEnabledElement)(n),m=h.viewport;if(e._editData=null,e._isDrawing=!1,e.updateCursor(t),m instanceof V.StackViewport)throw new Error("Not implemented yet");var p={points:d.handles.points,volume:o,segmentIndex:l,segmentsLocked:a,viewPlaneNormal:f,toolGroupId:e.toolGroupId,segmentationId:c,segmentationRepresentationUID:s,viewUp:g};e.applyActiveStrategy(h,p)})),G(Rt(e),"_activateDraw",(function(t){t.addEventListener(j.MOUSE_UP,e._mouseUpCallback),t.addEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),G(Rt(e),"_deactivateDraw",(function(t){t.removeEventListener(j.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(j.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(j.MOUSE_CLICK,e._mouseUpCallback)})),e}return W(o,[{key:"updateCursor",value:function(e){var t=this.configuration.brushSize,n=e.detail,r=n.element,o=n.currentPoints.canvas,a=(0,V.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport,c=l.canvasToWorld,s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=this.toolGroupId,f=nl(v);if(f){var g=f.segmentationRepresentationUID,h=f.segmentationId,m=fl(h),p=(il(h),sl(v,g,m)),y=[l.id],w=o,E=t,I=[w[0],w[1]+E],b=[w[0],w[1]-E],_=[w[0]-E,w[1]],T=[w[0]+E,w[1]],S={metadata:{viewPlaneNormal:Zn(u),viewUp:Zn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:p},data:{invalidated:!0,handles:{points:[c(I),c(b),c(_),c(T)]},cachedStats:{}}};this._hoverData={brushCursor:S,centerCanvas:w,segmentIndex:m,segmentationId:h,segmentationRepresentationUID:g,segmentColor:p,viewportIdsToRender:y},Br(i,y)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor,o=r.metadata,a=o.brushCursorUID,i=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),l=i[0],c=i[1],s=[Math.floor((l[0]+c[0])/2),Math.floor((l[1]+c[1])/2)],u=Math.abs(l[1]-Math.floor((l[1]+c[1])/2)),d="rgb(".concat(o.segmentColor.slice(0,3),")");n.getRenderingEngine()?_a(t,this.getToolName(),a,"0",s,u,{color:d}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(Ht);G(ac,"toolName","Brush")}(),s}()}));
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/MatrixBuilder"),require("@kitware/vtk.js/Common/Core/Math")):"function"==typeof define&&define.amd?define(["@cornerstonejs/core","@kitware/vtk.js/Rendering/Core/ColorTransferFunction","@kitware/vtk.js/Common/DataModel/PiecewiseFunction","gl-matrix","@kitware/vtk.js/Common/Core/MatrixBuilder","@kitware/vtk.js/Common/Core/Math"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/MatrixBuilder"),require("@kitware/vtk.js/Common/Core/Math")):e.cornerstoneTools3D=t(e.cornerstone3D,e["@kitware/vtk.js/Rendering/Core/ColorTransferFunction"],e["@kitware/vtk.js/Common/DataModel/PiecewiseFunction"],e.window,e["@kitware/vtk.js/Common/Core/MatrixBuilder"],e["@kitware/vtk.js/Common/Core/Math"])}(self,(function(e,t,n,r,o,i){return function(){var a={162:function(e,t,n){e.exports=n(47)},907:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",a="[object Boolean]",l="[object Date]",s="[object Function]",c="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",E="[object ArrayBuffer]",y="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",D="[object Int32Array]",O="[object Uint8Array]",T="[object Uint8ClampedArray]",S="[object Uint16Array]",x="[object Uint32Array]",M=/\w*$/,R=/^\[object .+?Constructor\]$/,N=/^(?:0|[1-9]\d*)$/,k={};k[i]=k["[object Array]"]=k[E]=k[y]=k[a]=k[l]=k[I]=k[b]=k[C]=k[_]=k[D]=k[d]=k[u]=k[v]=k[g]=k[h]=k[p]=k[m]=k[O]=k[T]=k[S]=k[x]=!0,k["[object Error]"]=k[s]=k[w]=!1;var A="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,P="object"==typeof self&&self&&self.Object===Object&&self,L=A||P||Function("return this")(),U=t&&!t.nodeType&&t,j=U&&e&&!e.nodeType&&e,V=j&&j.exports===U;function B(e,t){return e.set(t[0],t[1]),e}function F(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,i=e?e.length:0;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function H(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=Function.prototype,Z=Object.prototype,X=L["__core-js_shared__"],J=(K=/[^.]+$/.exec(X&&X.keys&&X.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=$.toString,ee=Z.hasOwnProperty,te=Z.toString,ne=RegExp("^"+Q.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=V?L.Buffer:void 0,oe=L.Symbol,ie=L.Uint8Array,ae=q(Object.getPrototypeOf,Object),le=Object.create,se=Z.propertyIsEnumerable,ce=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=q(Object.keys,Object),fe=Le(L,"DataView"),ge=Le(L,"Map"),he=Le(L,"Promise"),pe=Le(L,"Set"),me=Le(L,"WeakMap"),we=Le(Object,"create"),Ee=Fe(fe),ye=Fe(ge),Ie=Fe(he),be=Fe(pe),Ce=Fe(me),_e=oe?oe.prototype:void 0,De=_e?_e.valueOf:void 0;function Oe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Te(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Te(e)}function Me(e,t,n){var r=e[t];ee.call(e,t)&&We(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Re(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}function Ne(e,t,n,r,o,f,w){var R;if(r&&(R=f?r(e,o,f,w):r(e)),void 0!==R)return R;if(!Ke(e))return e;var N=Ge(e);if(N){if(R=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,R)}else{var A=je(e),P=A==s||A==c;if(qe(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(A==v||A==i||P&&!f){if(G(e))return f?e:{};if(R=function(e){return"function"!=typeof e.constructor||Be(e)?{}:Ke(t=ae(e))?le(t):{};var t}(P?{}:e),!t)return function(e,t){return Ae(e,Ue(e),t)}(e,function(e,t){return e&&Ae(t,Ye(t),e)}(R,e))}else{if(!k[A])return f?e:{};R=function(e,t,n,r){var o,i=e.constructor;switch(t){case E:return ke(e);case a:case l:return new i(+e);case y:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case _:case D:case O:case T:case S:case x:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return W(t?n(H(e),!0):H(e),B,new e.constructor)}(e,r,n);case u:case p:return new i(e);case g:return function(e){var t=new e.constructor(e.source,M.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),F,new e.constructor)}(e,r,n);case m:return o=e,De?Object(De.call(o)):{}}}(e,A,Ne,t)}}w||(w=new xe);var L=w.get(e);if(L)return L;if(w.set(e,R),!N)var U=n?function(e){return function(e,t,n){var r=t(e);return Ge(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Ye,Ue)}(e):Ye(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(U||e,(function(o,i){U&&(o=e[i=o]),Me(R,i,Ne(o,t,n,r,i,e,w))})),R}function ke(e){var t=new e.constructor(e.byteLength);return new ie(t).set(new ie(e)),t}function Ae(e,t,n,r){n||(n={});for(var o=-1,i=t.length;++o<i;){var a=t[o],l=r?r(n[a],e[a],a,n,e):void 0;Me(n,a,void 0===l?e[a]:l)}return n}function Pe(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function Le(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ke(e)||(t=e,J&&J in t))&&(ze(e)||G(e)?ne:R).test(Fe(e));var t}(n)?n:void 0}Oe.prototype.clear=function(){this.__data__=we?we(null):{}},Oe.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Oe.prototype.get=function(e){var t=this.__data__;if(we){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},Oe.prototype.has=function(e){var t=this.__data__;return we?void 0!==t[e]:ee.call(t,e)},Oe.prototype.set=function(e,t){return this.__data__[e]=we&&void 0===t?r:t,this},Te.prototype.clear=function(){this.__data__=[]},Te.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():ce.call(t,n,1),0))},Te.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Te.prototype.has=function(e){return Re(this.__data__,e)>-1},Te.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Oe,map:new(ge||Te),string:new Oe}},Se.prototype.delete=function(e){return Pe(this,e).delete(e)},Se.prototype.get=function(e){return Pe(this,e).get(e)},Se.prototype.has=function(e){return Pe(this,e).has(e)},Se.prototype.set=function(e,t){return Pe(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Te},xe.prototype.delete=function(e){return this.__data__.delete(e)},xe.prototype.get=function(e){return this.__data__.get(e)},xe.prototype.has=function(e){return this.__data__.has(e)},xe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Te){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};var Ue=de?q(de,Object):function(){return[]},je=function(e){return te.call(e)};function Ve(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||N.test(e))&&e>-1&&e%1==0&&e<t}function Be(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Z)}function Fe(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&je(new fe(new ArrayBuffer(1)))!=y||ge&&je(new ge)!=d||he&&je(he.resolve())!=f||pe&&je(new pe)!=h||me&&je(new me)!=w)&&(je=function(e){var t=te.call(e),n=t==v?e.constructor:void 0,r=n?Fe(n):void 0;if(r)switch(r){case Ee:return y;case ye:return d;case Ie:return f;case be:return h;case Ce:return w}return t});var Ge=Array.isArray;function He(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var qe=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==s||t==c}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return He(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&He(e)}(e)&&ee.call(e,"callee")&&(!se.call(e,"callee")||te.call(e)==i)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var a in e)!t&&!ee.call(e,a)||o&&("length"==a||Ve(a,r))||n.push(a);return n}(e):function(e){if(!Be(e))return ve(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Ne(e,!0,!0)}},47:function(e){var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function s(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{s({},"")}catch(e){s=function(e,t,n){return e[t]=n}}function c(e,t,n,r){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),a=new S(r||[]);return i._invoke=function(e,t,n){var r=u;return function(o,i){if(r===f)throw new Error("Generator is already running");if(r===g){if("throw"===o)throw i;return M()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=D(a,n);if(l){if(l===h)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var s=d(e,t,n);if("normal"===s.type){if(r=n.done?g:v,s.arg===h)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r=g,n.method="throw",n.arg=s.arg)}}}(e,n,a),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=c;var u="suspendedStart",v="suspendedYield",f="executing",g="completed",h={};function p(){}function m(){}function w(){}var E={};s(E,i,(function(){return this}));var y=Object.getPrototypeOf,I=y&&y(y(x([])));I&&I!==n&&r.call(I,i)&&(E=I);var b=w.prototype=p.prototype=Object.create(E);function C(e){["next","throw","return"].forEach((function(t){s(e,t,(function(e){return this._invoke(t,e)}))}))}function _(e,t){function n(o,i,a,l){var s=d(e[o],e,i);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,a,l)}),(function(e){n("throw",e,a,l)})):t.resolve(u).then((function(e){c.value=e,a(c)}),(function(e){return n("throw",e,a,l)}))}l(s.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function D(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,D(e,n),"throw"===n.method))return h;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=d(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,h;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,h):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:M}}function M(){return{value:t,done:!0}}return m.prototype=w,s(b,"constructor",w),s(w,"constructor",m),m.displayName=s(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,s(e,l,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},C(_.prototype),s(_.prototype,a,(function(){return this})),e.AsyncIterator=_,e.async=function(t,n,r,o,i){void 0===i&&(i=Promise);var a=new _(c(t,n,r,o),i);return e.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},C(b),s(b,l,"Generator"),s(b,i,(function(){return this})),s(b,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=x,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(T),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return l.type="throw",l.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],l=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;T(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:x(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),h}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},807:function(e){"use strict";e.exports=i},847:function(e){"use strict";e.exports=o},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return a[e](n,n.exports,s),n.loaded=!0,n.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var c={};return function(){"use strict";s.r(c),s.d(c,{AnnotationTool:function(){return Nl},ArrowAnnotateTool:function(){return gc},BaseTool:function(){return zt},BidirectionalTool:function(){return ls},BrushTool:function(){return Tc},CONSTANTS:function(){return d},CircleScissorsTool:function(){return bc},CrosshairsTool:function(){return Zl},EllipticalROITool:function(){return is},Enums:function(){return U},LengthTool:function(){return Gl},MIPJumpToClickTool:function(){return Bl},PanTool:function(){return kl},PlanarFreehandROITool:function(){return vc},ProbeTool:function(){return es},RectangleROIStartEndThresholdTool:function(){return Oc},RectangleROIThresholdTool:function(){return Dc},RectangleROITool:function(){return ns},RectangleScissorsTool:function(){return Ec},SegmentationDisplayTool:function(){return Tn},SphereScissorsTool:function(){return _c},StackScrollMouseWheelTool:function(){return Ul},StackScrollTool:function(){return Ll},Synchronizer:function(){return po},SynchronizerManager:function(){return i},ToolGroupManager:function(){return l},Types:function(){return T},VolumeRotateMouseWheelTool:function(){return Vl},WindowLevelTool:function(){return Al},ZoomTool:function(){return Pl},addTool:function(){return lo},annotation:function(){return x},cancelActiveManipulations:function(){return uo},cursors:function(){return O},destroy:function(){return oo},drawing:function(){return v},init:function(){return ro},removeTool:function(){return so},segmentation:function(){return L},synchronizers:function(){return u},utilities:function(){return D}});var e={};s.r(e),s.d(e,{checkAndDefineIsLockedProperty:function(){return Q},getAnnotationsLocked:function(){return Z},getAnnotationsLockedCount:function(){return J},isAnnotationLocked:function(){return X},setAnnotationLocked:function(){return Y},unlockAllAnnotations:function(){return $}});var t={};s.r(t),s.d(t,{addAnnotation:function(){return ue},getAnnotation:function(){return fe},getAnnotations:function(){return de},getDefaultAnnotationManager:function(){return se},getViewportSpecificAnnotationManager:function(){return ce},removeAnnotation:function(){return ve}});var n={};s.r(n),s.d(n,{triggerSegmentationDataModified:function(){return be},triggerSegmentationModified:function(){return Ie},triggerSegmentationRepresentationModified:function(){return ye},triggerSegmentationRepresentationRemoved:function(){return Ee}});var r={};s.r(r),s.d(r,{addColorLUT:function(){return Ge},addSegmentation:function(){return Ne},addSegmentationRepresentation:function(){return Ue},getColorLUT:function(){return We},getDefaultSegmentationStateManager:function(){return xe},getGlobalConfig:function(){return je},getSegmentation:function(){return Me},getSegmentationRepresentationByUID:function(){return Be},getSegmentationRepresentations:function(){return ke},getSegmentations:function(){return Re},getToolGroupSpecificConfig:function(){return Pe},getToolGroupsWithSegmentation:function(){return Ae},removeSegmentationRepresentation:function(){return Fe},setGlobalConfig:function(){return Ve},setToolGroupSpecificConfig:function(){return Le}});var o={};s.r(o),s.d(o,{deselectAnnotation:function(){return nr},getAnnotationsSelected:function(){return rr},getAnnotationsSelectedByToolName:function(){return or},getAnnotationsSelectedCount:function(){return ar},isAnnotationSelected:function(){return ir},setAnnotationSelected:function(){return er}});var i={};s.r(i),s.d(i,{createSynchronizer:function(){return mo},destroy:function(){return wo},destroySynchronizer:function(){return Io},getAllSynchronizers:function(){return yo},getSynchronizer:function(){return Eo},getSynchronizersForViewport:function(){return Vr}});var a={};s.r(a),s.d(a,{hideElementCursor:function(){return li},initElementCursor:function(){return oi},resetElementCursor:function(){return ai},setElementCursor:function(){return ii}});var l={};s.r(l),s.d(l,{createToolGroup:function(){return gi},destroy:function(){return to},destroyToolGroup:function(){return Qr},getAllToolGroups:function(){return hi},getToolGroup:function(){return dn},getToolGroupForViewport:function(){return Rt}});var d={};s.r(d),s.d(d,{COLOR_LUT:function(){return ge}});var u={};s.r(u),s.d(u,{createCameraPositionSynchronizer:function(){return wi},createVOISynchronizer:function(){return yi}});var v={};s.r(v),s.d(v,{draw:function(){return Mt},drawArrow:function(){return Bi},drawCircle:function(){return _i},drawEllipse:function(){return Di},drawHandles:function(){return Oi},drawLine:function(){return Ti},drawLinkedTextBox:function(){return ji},drawPolyline:function(){return xi},drawRect:function(){return Vi},drawTextBox:function(){return ki}});var f={};s.r(f),s.d(f,{createLabelmapVolumeForViewport:function(){return sa},createMergedLabelmapForIndex:function(){return aa},extend2DBoundingBoxInViewAxis:function(){return ta},getBoundingBoxAroundShape:function(){return ea},getDefaultRepresentationConfig:function(){return Oe},isValidRepresentationConfig:function(){return la},thresholdVolumeByRange:function(){return ia}});var g={};s.r(g),s.d(g,{getTextBoxCoordsCanvas:function(){return da}});var h={};s.r(h),s.d(h,{findClosestPoint:function(){return Pi},liangBarksyClip:function(){return fa}});var p={};s.r(p),s.d(p,{getCanvasEllipseCorners:function(){return ha},pointInEllipse:function(){return ga}});var m={};s.r(m),s.d(m,{distanceToPoint:function(){return wa},distanceToPointSquared:function(){return ma},intersectLine:function(){return ya}});var w={};s.r(w),s.d(w,{distanceToPoint:function(){return Ia}});var E={};s.r(E),s.d(E,{addCanvasPointsToArray:function(){return Ma},calculateAreaOfPoints:function(){return Na},getClosestIntersectionWithPolyline:function(){return Ca},getFirstIntersectionWithPolyline:function(){return ba},getSubPixelSpacingAndXYDirections:function(){return Sa},pointCanProjectOnLine:function(){return Ra},pointsAreWithinCloseContourProximity:function(){return xa}});var y={};s.r(y),s.d(y,{ellipse:function(){return p},lineSegment:function(){return m},polyline:function(){return E},rectangle:function(){return w},vec2:function(){return h}});var I={};s.r(I),s.d(I,{default:function(){return Fa},filterAnnotationsForDisplay:function(){return La},filterAnnotationsWithinSlice:function(){return Aa},getPointInLineOfSightWithCriteria:function(){return Va},getWorldWidthAndHeightFromCorners:function(){return Pa}});var b={};s.r(b),s.d(b,{getSliceRange:function(){return qa},scrollThroughStack:function(){return za},snapFocalPointToSlice:function(){return Wa}});var C={};s.r(C),s.d(C,{filterViewportsWithFrameOfReferenceUID:function(){return Ka},filterViewportsWithToolEnabled:function(){return Xa},getViewportIdsWithToolToRender:function(){return el}});var _={};s.r(_),s.d(_,{getOrientationStringLPS:function(){return tl},invertOrientationStringLPS:function(){return nl}});var D={};s.r(D),s.d(D,{calibrateImageSpacing:function(){return $i},debounce:function(){return zi},deepMerge:function(){return Ht},drawing:function(){return g},getAnnotationNearPoint:function(){return Wi},getAnnotationNearPointOnEnabledElement:function(){return Gi},isObject:function(){return qi},jumpToSlice:function(){return Xi},math:function(){return y},orientation:function(){return _},planar:function(){return I},pointInShapeCallback:function(){return Qi},pointInSurroundingSphereCallback:function(){return ra},segmentation:function(){return f},stackScrollTool:function(){return b},throttle:function(){return Ki},triggerAnnotationRenderForViewportIds:function(){return Fr},triggerEvent:function(){return V.triggerEvent},viewportFilters:function(){return C}});var O={};s.r(O),s.d(O,{CursorNames:function(){return ol},ImageMouseCursor:function(){return Po},MouseCursor:function(){return No},SVGMouseCursor:function(){return Xo},elementCursor:function(){return a},registerCursor:function(){return qo},setCursorForElement:function(){return rl}});var T={};s.r(T);var S={};s.r(S),s.d(S,{getFont:function(){return ll},getState:function(){return il},getStyle:function(){return al},setAnnotationStyle:function(){return sl},setGlobalStyle:function(){return cl},setToolStyle:function(){return dl}});var x={};s.r(x),s.d(x,{config:function(){return S},locking:function(){return e},selection:function(){return o},state:function(){return t}});var M={};s.r(M),s.d(M,{getActiveSegmentationRepresentation:function(){return ml},setActiveSegmentationRepresentation:function(){return wl}});var R={};s.r(R),s.d(R,{getLockedSegments:function(){return Il},isSegmentIndexLocked:function(){return El},setSegmentIndexLocked:function(){return yl}});var N={};s.r(N),s.d(N,{addColorLUT:function(){return bl},getColorForSegmentIndex:function(){return _l},setColorLUT:function(){return Cl}});var k={};s.r(k),s.d(k,{getSegmentationVisibility:function(){return Ol},setSegmentationVisibility:function(){return Dl}});var A={};s.r(A),s.d(A,{color:function(){return N},getGlobalConfig:function(){return rn},getGlobalRepresentationConfig:function(){return an},getToolGroupSpecificConfig:function(){return sn},setGlobalConfig:function(){return on},setGlobalRepresentationConfig:function(){return ln},setToolGroupSpecificConfig:function(){return cn},visibility:function(){return k}});var P={};s.r(P),s.d(P,{getActiveSegmentIndex:function(){return Sl},setActiveSegmentIndex:function(){return Tl}});var L={};s.r(L),s.d(L,{activeSegmentation:function(){return M},addSegmentationRepresentations:function(){return pl},addSegmentations:function(){return vl},config:function(){return A},removeSegmentationsFromToolGroup:function(){return Jr},segmentIndex:function(){return P},segmentLocking:function(){return R},state:function(){return r},triggerSegmentationEvents:function(){return n}});var U={};s.r(U),s.d(U,{AnnotationStyleStates:function(){return To},Events:function(){return B},KeyboardBindings:function(){return Jn},MouseBindings:function(){return Xn},SegmentationRepresentations:function(){return De},ToolModes:function(){return bt}});var j,V=s(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",e.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",e.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",e.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",e.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",e.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",e.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",e.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",e.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",e.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",e.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",e.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",e.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",e.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",e.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",e.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL"}(j||(j={}));var B=j;function F(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function G(e,t,n){return t&&W(e.prototype,t),n&&W(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var q=s(907),z=s.n(q),K=new Set;function Y(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=ee();e&&(t?te(e,K,n):ne(e,K,n)),re(n,K)}function $(){var e=ee();!function(e,t){e.forEach((function(n){ne(n,e,t)}))}(K,e),re(e,K)}function Z(){return Array.from(K)}function X(e){return K.has(e)}function J(){return K.size}function Q(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==oe||t.get!==ie):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:oe,get:ie}),Y(e,t)}}function ee(){return Object.freeze({added:[],removed:[],locked:[]})}function te(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function ne(e,t,n){t.delete(e)&&n.removed.push(e)}function re(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,V.triggerEvent)(V.eventTarget,B.ANNOTATION_LOCK_CHANGE,e))}function oe(e){Y(this,e)}function ie(){return X(this)}var ae=function(){function e(t){var n=this;F(this,e),H(this,"annotations",void 0),H(this,"uid",void 0),H(this,"_imageVolumeModifiedHandler",(function(e){var t=e.detail.FrameOfReferenceUID,r=n.annotations[t];r&&Object.keys(r).forEach((function(e){r[e].forEach((function(e){void 0!==e.invalidated&&(e.invalidated=!0)}))}))})),H(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),H(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),H(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),H(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index;return o[i]}})),H(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,i=n.annotations,a=i[r];a||(i[r]={},a=i[r]);var l=a[o];l||(a[o]=[],l=a[o]),l.push(e),Q(e)})),H(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index,a=o[0].metadata;if(o.splice(i,1),!o.length){var l=a.toolName;delete n.annotations[a.FrameOfReferenceUID][l]}}})),H(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var i=o[t];return z()(i)}if(e){var a=r[e];return z()(a)}return z()(r)})),H(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var i=o[t];i||(o[t]={},i=o[t]),i[r]=e}else t?o[t]=e:n.annotations=z()(e)})),t||(t=V.utilities.uuidv4()),this.annotations={},this.uid=t,V.eventTarget.addEventListener(V.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return G(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,i=this.annotations,a=(n=o?[o]:Object.keys(i)).length,l=0;l<a;l++)for(var s,c=i[n[l]],d=(s=r?[r]:Object.keys(c)).length,u=0;u<d;u++){var v=c[s[u]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),le=new ae("DEFAULT");function se(){return le}function ce(e){return le}function de(e,t){var n=(0,V.getEnabledElement)(e),r=ce(),o=n.FrameOfReferenceUID;return r.get(o,t)}function ue(e,t){var n=ce();void 0===t.annotationUID&&(t.annotationUID=V.utilities.uuidv4()),n.addAnnotation(t);var r=(0,V.getEnabledElement)(e),o=r.renderingEngine,i=r.viewportId,a=B.ANNOTATION_ADDED,l={annotation:t,viewportId:i,renderingEngineId:o.id};(0,V.triggerEvent)(V.eventTarget,a,l)}function ve(e,t){var n=se();t&&(n=ce());var r=n.getAnnotation(e);n.removeAnnotation(e);var o=B.ANNOTATION_REMOVED,i={annotation:r,annotationManagerUID:n.uid};(0,V.triggerEvent)(V.eventTarget,o,i)}function fe(e,t){return ce().getAnnotation(e)}var ge=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var me={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:{}},toolGroups:{}},we=new(function(){function e(t){F(this,e),H(this,"state",void 0),H(this,"uid",void 0),t||(t=V.utilities.uuidv4()),this.state=z()(me),this.uid=t}return G(e,[{key:"getState",value:function(){return this.state}},{key:"getToolGroups",value:function(){return Object.keys(this.state.toolGroups)}},{key:"getColorLUT",value:function(e){return this.state.colorLUT[e]}},{key:"resetState",value:function(){this.state=z()(me)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=pe(pe({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(ge,0)}}]),e}())("DEFAULT");function Ee(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_REPRESENTATION_REMOVED,n)}function ye(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_REPRESENTATION_MODIFIED,n):(ke(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function Ie(e){(e?[e]:Re().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_MODIFIED,t)}))}function be(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_DATA_MODIFIED,n)}var Ce,_e={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.9,fillAlphaInactive:.85};!function(e){e.Labelmap="LABELMAP"}(Ce||(Ce={}));var De=Ce;function Oe(e){var t=e.type;if(t===De.Labelmap)return _e;throw new Error("Unknown representation type: ".concat(t))}function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Se(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xe(){return we}function Me(e){return xe().getSegmentation(e)}function Re(){return xe().getState().segmentations}function Ne(e,t){var n=xe(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},label:t,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:H({},n.type,Se({},n.data))}}(e);!function(e){var t=Oe(e);Ve({renderInactiveSegmentations:!0,representations:H({},e.type,t)},!0)}(r),n.addSegmentation(r),t||Ie(r.segmentationId)}function ke(e){return xe().getSegmentationRepresentations(e)}function Ae(e){var t=xe(),n=t.getState(),r=Object.keys(n.toolGroups),o=[];return r.forEach((function(n){t.getSegmentationRepresentations(n).forEach((function(t){t.segmentationId===e&&o.push(n)}))})),o}function Pe(e){return xe().getToolGroupSpecificConfig(e)}function Le(e,t,n){xe().setSegmentationRepresentationConfig(e,t),n||ye(e)}function Ue(e,t,n){xe().addSegmentationRepresentation(e,t),n||ye(e,t.segmentationRepresentationUID)}function je(){return xe().getGlobalConfig()}function Ve(e,t){xe().setGlobalConfig(e),t||Ie()}function Be(e,t){return xe().getSegmentationRepresentationByUID(e,t)}function Fe(e,t){xe().removeSegmentationRepresentation(e,t),Ee(e,t)}function We(e){return xe().getColorLUT(e)}function Ge(e,t){xe().addColorLUT(e,t)}function He(e,t){var n=t||e.currentTarget,r=(0,V.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),i=function(e){return[e.pageX,e.pageY]}(e),a=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,i);return{page:i,client:o,canvas:a,world:r.canvasToWorld(a)}}var qe=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,i=He(e,t),a={event:e,eventName:B.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:i,lastPoints:i,currentPoints:i,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};(0,V.triggerEvent)(t,B.MOUSE_DOUBLE_CLICK,a)},ze=B.MOUSE_MOVE,Ke=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:He(e),eventName:ze,event:e};(0,V.triggerEvent)(t,ze,r)},Ye=B.MOUSE_DOWN,$e=B.MOUSE_DOWN_ACTIVATE,Ze=B.MOUSE_CLICK,Xe=B.MOUSE_UP,Je=B.MOUSE_DRAG,Qe={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}},et={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};function tt(e){var t=He(e,et.element),n=function(e,t){var n=(0,V.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}(et.element,et.lastPoints),r=it(t,n),o={event:e,eventName:Je,mouseButton:et.mouseButton,renderingEngineId:et.renderingEngineId,viewportId:et.viewportId,camera:{},element:et.element,startPoints:ot(et.startPoints),lastPoints:ot(n),currentPoints:t,deltaPoints:r};(0,V.triggerEvent)(et.element,Je,o),et.lastPoints=ot(t)}function nt(e){clearTimeout(et.preventClickTimeout);var t=et.isClickEvent?Ze:Xe,n=He(e,et.element),r=it(n,et.lastPoints),o={event:e,eventName:t,mouseButton:et.mouseButton,element:et.element,renderingEngineId:et.renderingEngineId,viewportId:et.viewportId,camera:{},startPoints:ot(et.startPoints),lastPoints:ot(et.lastPoints),currentPoints:n,deltaPoints:r};(0,V.triggerEvent)(o.element,t,o),document.removeEventListener("mousemove",tt),document.removeEventListener("mouseup",nt),et.element.addEventListener("mousemove",Ke),et=JSON.parse(JSON.stringify(Qe))}function rt(){et.isClickEvent=!1}function ot(e){return JSON.parse(JSON.stringify(e))}function it(e,t){return{page:at(e.page,t.page),client:at(e.client,t.client),canvas:at(e.canvas,t.canvas),world:(n=e.world,r=t.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])};var n,r}function at(e,t){return[e[0]-t[0],e[1]-t[1]]}var lt=function(e){et.element=e.currentTarget,et.mouseButton=e.button;var t=(0,V.getEnabledElement)(et.element),n=t.renderingEngineId,r=t.viewportId;et.renderingEngineId=n,et.viewportId=r,et.preventClickTimeout=setTimeout(rt,et.clickDelay),et.element.removeEventListener("mousemove",Ke);var o=He(e,et.element),i=it(o,o),a={event:e,eventName:Ye,element:et.element,mouseButton:et.mouseButton,renderingEngineId:et.renderingEngineId,viewportId:et.viewportId,camera:{},startPoints:o,lastPoints:o,currentPoints:o,deltaPoints:i};et.startPoints=ot(a.startPoints),et.lastPoints=ot(a.lastPoints),(0,V.triggerEvent)(a.element,Ye,a)&&(0,V.triggerEvent)(a.element,$e,a),document.addEventListener("mousemove",tt),document.addEventListener("mouseup",nt)};function st(e){e.removeEventListener("dblclick",qe),e.removeEventListener("mousedown",lt),e.removeEventListener("mousemove",Ke)}var ct={enable:function(e){st(e),e.addEventListener("dblclick",qe),e.addEventListener("mousedown",lt),e.addEventListener("mousemove",Ke)},disable:st},dt=function(e){var t=e.currentTarget,n=(0,V.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var i=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),a=i.spinX,l=i.spinY,s=i.pixelX,c=i.pixelY,d=l<0?-1:1,u={event:e,eventName:B.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:a,spinY:l,pixelX:s,pixelY:c,direction:d},points:He(e)};(0,V.triggerEvent)(t,B.MOUSE_WHEEL,u)}};function ut(e){e.removeEventListener("wheel",dt)}var vt={enable:function(e){ut(e),e.addEventListener("wheel",dt,{passive:!1})},disable:ut},ft={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},gt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function ht(e){gt.element=e.currentTarget;var t=(0,V.getEnabledElement)(gt.element),n=t.renderingEngineId,r=t.viewportId;gt.renderingEngineId=n,gt.viewportId=r,gt.key=e.key,gt.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:gt.renderingEngineId,viewportId:gt.viewportId,element:gt.element,key:gt.key,keyCode:gt.keyCode};(0,V.triggerEvent)(o.element,B.KEY_DOWN,o),document.addEventListener("keyup",pt),gt.element.removeEventListener("keydown",ht)}function pt(e){var t={renderingEngineId:gt.renderingEngineId,viewportId:gt.viewportId,element:gt.element,key:gt.key,keyCode:gt.keyCode};document.removeEventListener("keyup",pt),gt.element.addEventListener("keydown",ht),gt=z()(ft),(0,V.triggerEvent)(t.element,B.KEY_UP,t)}var mt=ht;function wt(e){e.removeEventListener("keydown",mt)}var Et,yt,It={enable:function(e){wt(e),e.addEventListener("keydown",mt)},disable:wt,getModifierKey:function(){return gt.keyCode}};(yt=Et||(Et={})).Active="Active",yt.Passive="Passive",yt.Enabled="Enabled",yt.Disabled="Disabled";var bt=Et,Ct={},_t={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Ct,enabledElements:[],handleRadius:6},Dt={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Ct,enabledElements:[],handleRadius:6};function Ot(e,t){if(Dt.svgNodeCache[e])return Dt.svgNodeCache[e][t]?Dt.svgNodeCache[e][t].domRef:void 0}function Tt(e,t,n,r){if(!Dt.svgNodeCache[t])return null;Dt.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function St(e,t){Dt.svgNodeCache[e]&&Dt.svgNodeCache[e][t]&&(Dt.svgNodeCache[e][t].touched=!0)}function xt(e,t){Dt.svgNodeCache[t]&&Object.keys(Dt.svgNodeCache[t]).forEach((function(n){var r=Dt.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete Dt.svgNodeCache[t][n])}))}var Mt=function(e,t){var n=function(e){var t=(0,V.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),i=function(e){return e.firstChild.querySelector(".svg-layer")}(e);return Object.keys(Dt.svgNodeCache[o]).forEach((function(e){Dt.svgNodeCache[o][e].touched=!1})),{enabledElement:t,_element:e,_svgLayerElement:i,_svgNodeCacheForCanvas:Dt.svgNodeCache,_getSvgNode:Ot.bind(this,o),_appendNode:Tt.bind(this,i,o),_setNodeTouched:St.bind(this,o),_clearUntouched:xt.bind(this,i,o)}}(e);t(n),n._clearUntouched()},Rt=function(e,t){var n=Dt.toolGroups.filter((function(n){return n.viewportsInfo.some((function(n){return n.renderingEngineId===t&&(!n.viewportId||n.viewportId===e)}))}));if(n.length){if(n.length>1)throw new Error("Multiple tool groups found for renderingEngineId: ".concat(t," and viewportId: ").concat(e,". You should only\n have one tool group per viewport in a renderingEngine."));return n[0]}};function Nt(e,t){var n=(0,V.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,i=Rt(o,r);if(!i)return[];for(var a=[],l=Object.keys(i.toolOptions),s=0;s<l.length;s++){var c=l[s],d=i.toolOptions[c];if(d&&t.includes(d.mode)){var u=i.getToolInstance(c);a.push(u)}}return a}function kt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function At(e,t){return At=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},At(e,t)}function Pt(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&At(e,t)}function Lt(e){return Lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Lt(e)}function Ut(e,t){if(t&&("object"===Lt(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return kt(e)}function jt(e){return jt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},jt(e)}var Vt=function(e){return e&&"object"===Lt(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},Bt=function(e,t){var n;return t&&!0===t.clone&&Vt(e)?Gt((n=e,Array.isArray(n)?[]:{}),e,t):e},Ft=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=Bt(t,n):Vt(t)?r[o]=Gt(e[o],t,n):-1===e.indexOf(t)&&r.push(Bt(t,n))})),r},Wt=function(e,t,n){var r={};return Vt(e)&&Object.keys(e).forEach((function(t){r[t]=Bt(e[t],n)})),Object.keys(t).forEach((function(o){Vt(t[o])&&e[o]?r[o]=Gt(e[o],t[o],n):r[o]=Bt(t[o],n)})),r},Gt=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=Array.isArray(t),o=n||{arrayMerge:Ft},i=o.arrayMerge||Ft;return r?Array.isArray(e)?i(e,t,n):Bt(t,n):Wt(e,t,n)},Ht=Gt,qt=function(){function e(t,n){F(this,e),H(this,"supportedInteractionTypes",void 0),H(this,"configuration",void 0),H(this,"toolGroupId",void 0),H(this,"mode",void 0);var r=Ht(n,t),o=r.configuration,i=void 0===o?{}:o,a=r.supportedInteractionTypes,l=r.toolGroupId;i.strategies||(i.strategies={},i.defaultStrategy=void 0,i.activeStrategy=void 0,i.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=a||[],this.configuration=Object.assign({},i),this.mode=bt.Disabled}return G(e,[{key:"getToolName",value:function(){return this.constructor.toolName}},{key:"applyActiveStrategy",value:function(e,t){var n=this.configuration;return n.strategies[n.activeStrategy].call(this,e,t)}},{key:"setConfiguration",value:function(e){this.configuration=Ht(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1];return t.getStackViewports().find((function(e){return e.hasImageId(n)})).getImageData()}if(e.startsWith("volumeId:")){var r=e.split("volumeId:")[1];return V.cache.getVolume(r)}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof V.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof V.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();H(qt,"toolName","BaseTool");var zt=qt;function Kt(e,t,n,r,o,i,a){try{var l=e[i](a),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}function Yt(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Kt(i,r,o,a,l,"next",e)}function l(e){Kt(i,r,o,a,l,"throw",e)}a(void 0)}))}}var $t=s(162),Zt=s.n($t),Xt=s(795),Jt=s.n(Xt),Qt=s(441),en=s.n(Qt);function tn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tn(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function rn(){return je()}function on(e){Ve(e)}function an(e){return rn().representations[e]}function ln(e,t){var n=rn();on(nn(nn({},n),{},{representations:nn(nn({},n.representations),{},H({},e,t))}))}function sn(e){return Pe(e)}function cn(e,t){Le(e,t)}var dn=function(e){return Dt.toolGroups.find((function(t){return t.id===e}))};function un(){return(un=Yt(Zt().mark((function e(t,n,r){var o,i,a,l;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,V.getEnabledElement)(t),i=o.renderingEngine,a=o.viewport,l=a.id,e.next=6,(0,V.addVolumesToViewports)(i,[{volumeId:n,actorUID:r,visibility:!0}],[l]);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var vn=function(e,t,n){return un.apply(this,arguments)},fn=function(e,t){(0,V.getEnabledElement)(e).viewport.removeVolumeActors([t])};function gn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gn(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function pn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return mn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function mn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var wn=255,En=new Map;function yn(){return(yn=Yt(Zt().mark((function e(t,n,r){var o,i,a,l,s,c,d,u,v,f;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,i=Me(o),a=i.representationData[De.Labelmap].volumeId,l=V.utilities.uuidv4(),e.next=6,bn(t,a,l);case 6:return s=new Set,c=Jt().newInstance(),d=en().newInstance(),u={segmentationId:o,segmentationRepresentationUID:l,type:De.Labelmap,segmentsHidden:s,visibility:!0,colorLUTIndex:0,active:!0,config:{cfun:c,ofun:d}},r&&(v=sn(t),f=Ht(v,r),cn(t,{renderInactiveSegmentations:f.renderInactiveSegmentations||!0,representations:hn({},f.representations)})),Ue(t,u),e.abrupt("return",l);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function In(e,t,n,r,o){var i="".concat(e,"-").concat(t),a=En.get(i),l=!1,s=!1;return En.set(i,{fillAlpha:n,colorLUTIndex:r}),a||(l=!0,s=!0),a&&a.fillAlpha!==n&&(s=!0),a&&a.colorLUTIndex!==r&&(l=!0),a&&a.renderFill!==o&&(s=!0),{needColorUpdate:l,needOpacityUpdate:s}}function bn(e,t,n){return Cn.apply(this,arguments)}function Cn(){return(Cn=Yt(Zt().mark((function e(t,n,r){var o,i,a,l,s,c,d,u,v;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=dn(t),i=o.viewportsInfo,a=pn(i),e.prev=3,a.s();case 5:if((l=a.n()).done){e.next=15;break}if(s=l.value,c=s.viewportId,d=s.renderingEngineId,u=(0,V.getEnabledElementByIds)(c,d)){e.next=11;break}throw new Error("No enabled element found for rendering engine: ".concat(d," and viewport: ").concat(c));case 11:v=u.viewport,vn(v.element,n,r);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),a.e(e.t0);case 20:return e.prev=20,a.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[3,17,20,23]])})))).apply(this,arguments)}var _n={render:function(e,t,n){var r=t.colorLUTIndex,o=t.active,i=t.segmentationId,a=t.segmentationRepresentationUID,l=t.visibility,s=t.config,c=Me(i).representationData[De.Labelmap].volumeId;if(!V.cache.getVolume(c))throw new Error("No Labelmap found for volumeId: ".concat(c));var d=e.getActor(a);if(d){var u=s.cfun,v=s.ofun,f=n.representations[De.Labelmap],g=n.renderInactiveSegmentations;!function(e,t,n,r,o,i,a,l){var s=!(arguments.length>8&&void 0!==arguments[8])||arguments[8];r.addPoint(0,0);var c=a?i.fillAlpha:i.fillAlphaInactive,d=a?i.outlineWidthActive:i.outlineWidthInactive,u=a?i.renderFill:i.renderFillInactive,v=We(o),f=Math.min(256,v.length),g=t.volumeActor,h=t.uid,p=In(e,h,c,o,u),m=p.needColorUpdate,w=p.needOpacityUpdate;if(m){for(var E=0;E<f;E++){var y=v[E];n.addRGBPoint(E,y[0]/wn,y[1]/wn,y[2]/wn)}g.getProperty().setRGBTransferFunction(0,n)}if(w){if(i.renderFill)for(var I=0;I<f;I++){var b=v[I][3]/255*c;r.addPoint(I,b)}else for(var C=0;C<f;C++)r.addPoint(C,.01);r.setClamping(!1),g.getProperty().setScalarOpacity(0,r)}g.getProperty().setInterpolationTypeToNearest(),g.getProperty().setUseLabelOutline(i.renderOutline),g.getProperty().setLabelOutlineThickness(d);var _=s&&(a||l);g.setVisibility(_)}(e.id,d,u,v,r,f,o,g,l)}else console.warn("No actor found for actorUID: ",a)},addSegmentationRepresentation:function(e,t,n){return yn.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){!function(e,t){var n=dn(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=pn(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var i=r.value,a=i.viewportId,l=i.renderingEngineId,s=(0,V.getEnabledElementByIds)(a,l);fn(s.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}(e,t),Fe(e,t)}};function Dn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return On(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?On(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function On(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Tn=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{}};return F(this,o),H(kt(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=dn(t);if(n){var r=ke(t),o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,V.getEnabledElementByIds)(n,t);if(r)return r.viewport}));r.forEach((function(n){var r=e._getMergedRepresentationsConfig(t);o.forEach((function(e){if(n.type!=De.Labelmap)throw new Error("Render for ".concat(n.type," is not supported yet"));_n.render(e,n,r)}))})),o.forEach((function(e){e.render()}))}})),e}return G(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=ke(e);if(t&&0!==t.length){var n,r=Dn(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,ye(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=ke(e);if(t&&0!==t.length){var n,r=Dn(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,ye(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=sn(e),n=rn();return Ht(n,t)}}]),o}(zt);function Sn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}H(Tn,"toolName","SegmentationDisplay");var xn=bt.Active,Mn=bt.Passive,Rn=bt.Enabled,Nn=function(){function e(){var t=this;F(this,e),H(this,"hasBeenDestroyed",void 0),H(this,"_needsRender",new Set),H(this,"_animationFrameSet",!1),H(this,"_animationFrameHandle",null),H(this,"_viewportElements",void 0),H(this,"_renderFlaggedViewports",(function(){t._throwIfDestroyed();for(var e=Array.from(t._viewportElements.values()),n=0;n<e.length;n++){var r=e[n];if(t._needsRender.has(r)&&(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size))return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}})),this._viewportElements=new Map}return G(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e){this._viewportElements.delete(e),0===this._viewportElements.size&&this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,V.getEnabledElement)(e);if(t)if((0,V.getRenderingEngine)(t.renderingEngineId)){var n=Nt(e,[xn,Mn,Rn]),r=t.renderingEngineId,o=t.viewportId,i={element:e,renderingEngineId:r,viewportId:o};Mt(e,(function(r){n.forEach((function(n){n instanceof Tn||!n.renderAnnotation||(n.renderAnnotation(t,r),(0,V.triggerEvent)(e,B.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sn(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i)))}))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),kn=new Nn,An=function(e){kn.renderViewport(e)},Pn=function(e){An(e.detail.element)};function Ln(e,t,n){var r=e.detail,o=r.renderingEngineId,i=r.viewportId,a=Rt(i,o);if(!a)return[];for(var l=[],s=Object.keys(a.toolOptions),c=0;c<s.length;c++){var d=s[c],u=a.toolOptions[d],v=null!=n&&u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===n}));if(t.includes(u.mode)&&(!n||v)){var f=a.getToolInstance(d);l.push(f)}}return l}var Un=bt.Active,jn=bt.Passive,Vn=bt.Enabled,Bn=function(e){Ln(e,[Un,jn,Vn]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Fn=bt.Active,Wn=bt.Passive,Gn=bt.Enabled,Hn=function(e){Ln(e,[Fn,Wn,Gn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},qn=bt.Active;function zn(e,t,n){if(Dt.isInteractingWithTool)return!1;var r,o=n.detail,i=o.renderingEngineId,a=o.viewportId,l=Rt(a,i);if(!l)return!1;for(var s=Object.keys(l.toolOptions),c=0;c<s.length;c++){var d=s[c],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===qn&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var Kn=zn.bind(null,"Mouse","mouseClickCallback");function Yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $n(e,t){if(e){if("string"==typeof e)return Yn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Yn(e,t):void 0}}function Zn(e){return function(e){if(Array.isArray(e))return Yn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||$n(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var Xn,Jn,Qn=new Set;function er(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?tr(e,n):nr(e)}function tr(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=lr();t||sr(Qn,n),e&&!Qn.has(e)&&(Qn.add(e),n.added.push(e)),cr(n,Qn)}function nr(e){var t=lr();e?Qn.delete(e)&&t.removed.push(e):sr(Qn,t),cr(t,Qn)}function rr(){return Array.from(Qn)}function or(e){return rr().filter((function(t){return fe(t).metadata.toolName===e}))}function ir(e){return Qn.has(e)}function ar(){return Qn.size}function lr(){return Object.freeze({added:[],removed:[],selection:[]})}function sr(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function cr(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,V.triggerEvent)(V.eventTarget,B.ANNOTATION_SELECTION_CHANGE,e))}function dr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ur(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var i=de(e,o.constructor.toolName);i&&("function"==typeof o.filterInteractableAnnotationsForElement&&(i=o.filterInteractableAnnotationsForElement(e,i)),i.length>0&&n.push({tool:o,annotations:i}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function vr(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return fr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?fr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function fr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}(Xn||(Xn={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=18]="Ctrl",e[e.Alt=17]="Alt"}(Jn||(Jn={}));var gr=bt.Active;function hr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,i=It.getModifierKey(),a=Rt(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),s=0;s<l.length;s++){var c=l[s],d=a.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:Xn.Primary)&&e.modifierKey===i}));if(d.mode===gr&&u)return a.getToolInstance(c)}}var pr=bt.Active,mr=bt.Passive;function wr(e){if(!Dt.isInteractingWithTool){var t=hr(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Ln(e,[pr],e.detail.event.buttons),o=n?Ln(e,[mr]):void 0,i=[].concat(Zn(r||[]),Zn(o||[])),a=e.detail,l=a.element,s=ur(l,i),c=a.currentPoints.canvas,d=function(e,t,n){var r=[];return t.forEach((function(t){var o,i=t.tool,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return dr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?dr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(t.annotations);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!l.isLocked){var s=i.getHandleNearImagePoint(e,l,n,6);if(s){r.push({tool:i,annotation:l,handle:s});break}}}}catch(e){a.e(e)}finally{a.f()}})),r}(l,s,c),u=!!e.detail.event.shiftKey;if(d.length>0){var v=Er(d),f=v.tool,g=v.annotation,h=v.handle;return yr(g.annotationUID,u),void f.handleSelectedCallback(e,g,h,"Mouse")}var p=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=6,i=[];return t.forEach((function(t){var a,l=t.tool,s=vr(t.annotations);try{for(s.s();!(a=s.n()).done;){var c=a.value;if(!c.isLocked&&l.isPointNearTool(e,c,n,o,r)){i.push({tool:l,annotation:c});break}}}catch(e){s.e(e)}finally{s.f()}})),i}(l,s,c,"mouse");if(p.length>0){var m=Er(p),w=m.tool,E=m.annotation;return yr(E.annotationUID,u),void w.toolSelectedCallback(e,E,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function Er(e){return e.length>1&&e.find((function(e){return!X(e.annotation)}))||e[0]}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(ir(e))er(e,!1);else{var n=!0;er(e,!0,n)}else{var r=!1;er(e,!0,r)}}function Ir(e){if(!Dt.isInteractingWithTool){var t=hr(e);t&&(Dt.isMultiPartToolActive||t.addNewAnnotation&&er(t.addNewAnnotation(e,"mouse").annotationUID))}}var br=zn.bind(null,"Mouse","doubleClickCallback");function Cr(e){if(!Dt.isInteractingWithTool){var t=hr(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function _r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Dr=bt.Active,Or=bt.Passive;function Tr(e){if(!Dt.isInteractingWithTool&&!Dt.isMultiPartToolActive){var t,n=Ln(e,[Dr,Or]),r=e.detail.element,o=ur(r,n),i=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),a=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return _r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(l.s();!(t=l.n()).done;){var s=t.value,c=s.tool,d=s.annotations;"function"==typeof c.mouseMoveCallback&&(a=c.mouseMoveCallback(e,d)||a)}}catch(e){l.e(e)}finally{l.f()}i.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===a&&An(r)}}var Sr=zn.bind(null,"Mouse","mouseUpCallback"),xr=zn.bind(null,"MouseWheel","mouseWheelCallback"),Mr=function(e){e.addEventListener(B.MOUSE_CLICK,Kn),e.addEventListener(B.MOUSE_DOWN,wr),e.addEventListener(B.MOUSE_DOWN_ACTIVATE,Ir),e.addEventListener(B.MOUSE_DOUBLE_CLICK,br),e.addEventListener(B.MOUSE_DRAG,Cr),e.addEventListener(B.MOUSE_MOVE,Tr),e.addEventListener(B.MOUSE_UP,Sr),e.addEventListener(B.MOUSE_WHEEL,xr)},Rr=function(e){e.removeEventListener(B.MOUSE_CLICK,Kn),e.removeEventListener(B.MOUSE_DOWN,wr),e.removeEventListener(B.MOUSE_DOWN_ACTIVATE,Ir),e.removeEventListener(B.MOUSE_DOUBLE_CLICK,br),e.removeEventListener(B.MOUSE_DRAG,Cr),e.removeEventListener(B.MOUSE_MOVE,Tr),e.removeEventListener(B.MOUSE_UP,Sr),e.removeEventListener(B.MOUSE_WHEEL,xr)},Nr=bt.Active;function kr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=et.mouseButton,i=It.getModifierKey(),a=Rt(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),s=0;s<l.length;s++){var c=l[s],d=a.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:Xn.Primary)&&e.modifierKey===i}));if(d.mode===Nr&&u)return a.getToolInstance(c)}}function Ar(e){var t=kr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=Rt(o,r),a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}function Pr(e){var t=kr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=Rt(o,r);gt.keyCode=void 0;var a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}var Lr=function(e){e.addEventListener(B.KEY_DOWN,Ar),e.addEventListener(B.KEY_UP,Pr)},Ur=function(e){e.removeEventListener(B.KEY_DOWN,Ar),e.removeEventListener(B.KEY_UP,Pr)};function jr(e){var t,n=e.detail,r=n.element,o=n.viewportId,i=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),i=document.createElementNS(e,"feColorMatrix"),a=document.createElementNS(e,"feGaussianBlur"),l=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("width","110%"),r.setAttribute("height","110%"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),i.setAttribute("result","matrixOut"),i.setAttribute("in","offOut"),i.setAttribute("type","matrix"),i.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),a.setAttribute("result","blurOut"),a.setAttribute("in","matrixOut"),a.setAttribute("stdDeviation","0.25"),l.setAttribute("in","SourceGraphic"),l.setAttribute("in2","blurOut"),l.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(i),r.appendChild(a),r.appendChild(l),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);Dt.svgNodeCache[o]={}}(r),t=i,r.querySelector("div.viewport-element").appendChild(t),kn.addViewportElement(o,r),ct.enable(r),vt.enable(r),It.enable(r),function(e){e.addEventListener(V.Enums.Events.IMAGE_RENDERED,Pn)}(r),function(e){e.addEventListener(V.Enums.Events.CAMERA_MODIFIED,Bn)}(r),function(e){e.addEventListener(V.Enums.Events.IMAGE_SPACING_CALIBRATED,Hn)}(r),Mr(r),Lr(r),Dt.enabledElements.push(r)}var Vr=function(e,t){var n=[];if(!t&&!e)throw new Error("At least one of renderingEngineId or viewportId should be given");for(var r=0;r<Dt.synchronizers.length;r++){var o=Dt.synchronizers[r],i=!o.isDisabled(),a=o.hasSourceViewport(t,e);i&&a&&n.push(o)}return n},Br=function(e){var t=e.detail,n=t.element,r=t.viewportId;!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);delete Dt.svgNodeCache[o]}(n);var o=n.querySelector("svg"),i=n.querySelector("div.".concat("viewport-element"));o&&i.removeChild(o),kn.removeViewportElement(r),ct.disable(n),vt.disable(n),It.disable(n),function(e){e.removeEventListener(V.Enums.Events.IMAGE_RENDERED,Pn)}(n),function(e){e.removeEventListener(V.Enums.Events.CAMERA_MODIFIED,Bn)}(n),function(e){e.removeEventListener(V.Enums.Events.IMAGE_SPACING_CALIBRATED,Hn)}(n),Rr(n),Ur(n),function(e){var t=(0,V.getEnabledElement)(e);Vr(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,V.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=Rt(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=Dt.enabledElements.findIndex((function(t){return t===e}));t>-1&&Dt.enabledElements.splice(t,1)}(n)},Fr=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;An(n)}))},Wr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,V.getRenderingEngine)(r);Fr(o,[n])},Gr=function(e){e.detail.removed.length&&(0,V.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));Fr(e,t)}))},Hr=function(e){var t=e.detail.segmentationId;Ae(t).forEach((function(e){ke(e).forEach((function(n){n.segmentationId===t&&ye(e,n.segmentationRepresentationUID)}))}))};function qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var zr=function(){function e(){var t=this;F(this,e),H(this,"_needsRender",new Set),H(this,"_animationFrameSet",!1),H(this,"_animationFrameHandle",null),H(this,"hasBeenDestroyed",void 0),H(this,"_renderFlaggedToolGroups",(function(){t._throwIfDestroyed();for(var e=0,n=Array.from(t._needsRender.values());e<n.length;e++){var r=n[e];if(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size)return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}}))}return G(e,[{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=dn(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,V.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(Tn.toolName);r.forEach((function(e){e.element.addEventListener(V.Enums.Events.IMAGE_RENDERED,i)})),o.renderSegmentation(e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function i(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(V.Enums.Events.IMAGE_RENDERED,i);var a={toolGroupId:Rt(r,o).id,viewportId:r};(0,V.triggerEvent)(V.eventTarget,B.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qr(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},a))}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),Kr=new zr,Yr=function(e){Kr.renderToolGroupSegmentations(e)},$r=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=Me(n),i=o.representationData,a=o.type;if(a!==De.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(a," not supported yet"));var l=V.cache.getVolume(i[a].volumeId);if(l){var s,c=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))s=r;else{var u=c.getDimensions()[2];s=Zn(Array(u).keys())}s.forEach((function(e){d.setUpdatedFrame(e)})),c.modified(),Ae(n).forEach((function(e){Yr(e)}))}else console.warn("segmentation not found in cache")},Zr=function(e){var t=e.detail.toolGroupId;Yr(t)},Xr=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,Yr(n)},Jr=function(e,t){var n=ke(e);if(t&&0!==t.length){var r=n.map((function(e){return e.segmentationRepresentationUID})),o=t;if(o){var i=t.filter((function(e){return!r.includes(e)}));if(i.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(i)))}else o=r;o.forEach((function(t){!function(e,t){var n=Be(e,t).type;if(n!==De.Labelmap)throw new Error("The representation ".concat(n," is not supported yet"));_n.removeSegmentationRepresentation(e,t)}(e,t)}))}else console.warn("removeSegmentationsFromToolGroup: No segmentationRepresentations found for toolGroupId: ",e)},Qr=function(e){var t=Dt.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Jr(e),Dt.toolGroups.splice(t,1))};function eo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var to=function(){var e,t=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return eo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?eo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(Zn(Dt.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;Qr(n.id)}}catch(e){t.e(e)}finally{t.f()}Dt.toolGroups=[]},no=!1;function ro(){no||(function(){io();var e=V.Enums.Events.ELEMENT_ENABLED,t=V.Enums.Events.ELEMENT_DISABLED;V.eventTarget.addEventListener(e,jr),V.eventTarget.addEventListener(t,Br)}(),ao(),V.eventTarget.addEventListener(B.ANNOTATION_MODIFIED,Wr),V.eventTarget.addEventListener(B.ANNOTATION_SELECTION_CHANGE,Gr),V.eventTarget.addEventListener(B.ANNOTATION_SELECTION_CHANGE,Gr),V.eventTarget.addEventListener(B.SEGMENTATION_MODIFIED,Hr),V.eventTarget.addEventListener(B.SEGMENTATION_DATA_MODIFIED,$r),V.eventTarget.addEventListener(B.SEGMENTATION_REPRESENTATION_MODIFIED,Zr),V.eventTarget.addEventListener(B.SEGMENTATION_REPRESENTATION_REMOVED,Xr),no=!0)}function oo(){io(),ao(),to(),Ct={},Dt=z()(_t);var e=se(),t=xe();e.restoreAnnotations({}),t.resetState(),no=!1}function io(){var e=V.Enums.Events.ELEMENT_ENABLED,t=V.Enums.Events.ELEMENT_DISABLED;V.eventTarget.removeEventListener(e,jr),V.eventTarget.removeEventListener(t,Br)}function ao(){V.eventTarget.removeEventListener(B.ANNOTATION_MODIFIED,Wr),V.eventTarget.removeEventListener(B.ANNOTATION_SELECTION_CHANGE,Gr),V.eventTarget.removeEventListener(B.ANNOTATION_SELECTION_CHANGE,Gr),V.eventTarget.removeEventListener(B.SEGMENTATION_MODIFIED,Hr),V.eventTarget.removeEventListener(B.SEGMENTATION_DATA_MODIFIED,$r),V.eventTarget.removeEventListener(B.SEGMENTATION_REPRESENTATION_MODIFIED,Zr),V.eventTarget.removeEventListener(B.SEGMENTATION_REPRESENTATION_REMOVED,Xr)}function lo(e){var t=e.toolName,n=void 0!==Dt.tools[t];if(!t)throw new Error("No Tool Found for the ToolClass ".concat(e.name));if(n)throw new Error("".concat(t," has already been added globally"));Dt.tools[t]={toolClass:e}}function so(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!Dt.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete Dt.tools[t]}function co(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function uo(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return co(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?co(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(ur(e,Nt(e,[bt.Active,bt.Passive])));try{for(n.s();!(t=n.n()).done;){var r=t.value.tool.cancel(e);if(r)return r}}catch(e){n.e(e)}finally{n.f()}}var vo=function(){function e(t,n,r){var o=this;F(this,e),H(this,"_enabled",void 0),H(this,"_eventName",void 0),H(this,"_eventHandler",void 0),H(this,"_ignoreFiredEvents",void 0),H(this,"_sourceViewports",void 0),H(this,"_targetViewports",void 0),H(this,"id",void 0),H(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,V.getEnabledElement)(e.currentTarget);if(t){var n=t.renderingEngineId,r=t.viewportId;o.fireEvent({renderingEngineId:n,viewportId:r},e)}}})),this._enabled=!0,this._eventName=n,this._eventHandler=r,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this.id=t}return G(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!go(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,V.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){go(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}},{key:"getSourceViewports",value:function(){return this._sourceViewports}},{key:"getTargetViewports",value:function(){return this._targetViewports}},{key:"destroy",value:function(){var e=this;this._sourceViewports.forEach((function(t){return e.removeSource(t)})),this._targetViewports.forEach((function(t){return e.removeTarget(t)}))}},{key:"remove",value:function(e){this.removeTarget(e),this.removeSource(e)}},{key:"removeSource",value:function(e){var t=fo(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,V.getRenderingEngine)(e.renderingEngineId);if(!t)throw new Error("No RenderingEngine for Id: ".concat(e.renderingEngineId));return t.getViewport(e.viewportId).element}(e);this._sourceViewports.splice(t,1),n.removeEventListener(this._eventName,this._eventHandler),this._updateDisableHandlers()}}},{key:"removeTarget",value:function(e){var t=fo(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return go(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"fireEvent",value:function(e,t){if(!this.isDisabled()&&!this._ignoreFiredEvents){this._ignoreFiredEvents=!0;try{for(var n=0;n<this._targetViewports.length;n++){var r=this._targetViewports[n];e.viewportId===r.viewportId||this._eventHandler(this,e,r,t)}}catch(e){console.warn("Synchronizer, for: ".concat(this._eventName),e)}finally{this._ignoreFiredEvents=!1}}}},{key:"_hasSourceElements",value:function(){return 0!==this._sourceViewports.length}},{key:"_updateDisableHandlers",value:function(){var e=function(e,t){for(var n=[],r=e.concat(t),o=function(e){var t=r[e];n.some((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))||n.push(t)},i=0;i<r.length;i++)o(i);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,V.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(V.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(V.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function fo(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function go(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var ho,po=vo,mo=function(e,t,n){if(Dt.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new po(e,t,n);return Dt.synchronizers.push(r),r},wo=function(){for(;Dt.synchronizers.length>0;)Dt.synchronizers.pop().destroy()},Eo=function(e){return Dt.synchronizers.find((function(t){return t.id===e}))},yo=function(){return Dt.synchronizers},Io=function(e){var t=Dt.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(Dt.synchronizers[t].destroy(),Dt.synchronizers.splice(t,1))};function bo(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=jt(e)););return e}function Co(){return Co="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=bo(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Co.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(ho||(ho={}));var _o,Do,Oo,To=ho;function So(e,t,n,r){for(var o=function(e,t,n){var r=["tool.style.".concat(e)];return t&&r.push("".concat(r[0]).concat(t)),n&&r.push("".concat(r[r.length-1]).concat(n)),r}(t,n,r),i=o.length-1;i>=0;--i){var a=e.get(o[i]);if(void 0!==a)return a}}function xo(e,t,n){return So(V.Settings.getRuntimeSettings(),e,t,n)}V.Settings.getDefaultSettings().set("tool.style",{color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",textBox:{fontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 255, 0)",colorLocked:"rgb(255, 255, 0)",background:"",link:{lineWidth:"1",lineDash:"2,3"}}}),_o=["",bt.Active,bt.Passive],Do=[To.Default,To.Highlighted,To.Selected,To.Locked],(Oo=V.Settings.getDefaultSettings()).forEach((function(e){var t=function(t){return t.length>0&&e.endsWith(t)};!e.startsWith("tool.style.")||Do.some(t)||_o.some(t)||Do.forEach((function(t){_o.forEach((function(n){var r="".concat(e).concat(t).concat(n);Oo.set(r,Oo.get(r))}))}))}));var Mo=Symbol("DefinedCursors"),Ro=new Set(["alias","all-scroll","auto","cell","col-resize","context-menu","copy","crosshair","default","e-resize","ew-resize","grab","grabbing","help","move","ne-resize","nesw-resize","no-drop","none","not-allowed","n-resize","ns-resize","nw-resize","nwse-resize","pointer","progress","row-resize","se-resize","s-resize","sw-resize","text","vertical-text","wait","w-resize","zoom-in","zoom-out"]),No=function(){function e(t,n){F(this,e),H(this,"name",void 0),H(this,"fallback",void 0),this.name=t+"",this.fallback=n}return G(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=ko(e,Mo),r=n.get(t);return r instanceof e?r:Ro.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(ko(e,Mo).set(t,n),!0)}}]),e}();function ko(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var Ao=Ro.values();var Po=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(e,t,n,i,a){var l;return F(this,o),H(kt(l=r.call(this,i||o.getUniqueInstanceName("image-cursor"),a)),"url",void 0),H(kt(l),"x",void 0),H(kt(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return G(o,[{key:"getStyleProperty",value:function(){var e=this.url,t=this.x,n=this.y,r="url('".concat(e,"')");return t>=0&&n>=0&&(t>0||n>0)&&(r+=" ".concat(t," ").concat(n)),this.addFallbackStyleProperty(r)}}],[{key:"getUniqueInstanceName",value:function(e){return"".concat(e,"-").concat(V.utilities.getRuntimeId(o))}}]),o}(No),Lo={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:'\n <path stroke="{{color}}" d="M8 16L8 0"></path>\n <path stroke="{{color}}" d="M16 8L0 8"></path>\n '},Uo={x:127,y:60},jo='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',Vo='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n<rect fill="{{color}}" x="95.84" y="9.38" width="15.85" height="47.14"/>\n',Bo='<path fill="{{color}}" d="M82.89,10a12.09,12.09,0,0,0-16.8-2.5l-27.5,20.4-8.5-6.3a2.93,2.93,0,0,1-1.1-3,14.66,14.66,0,0,0,.1-6.6,14.08,14.08,0,1,0-6.5,15.2,2.87,2.87,0,0,1,3.2.2l8.2,6.1-8.2,6.1a2.87,2.87,0,0,1-3.2.2,14.16,14.16,0,1,0,6.7,14.4,14,14,0,0,0-.3-5.8,2.93,2.93,0,0,1,1.1-3l8.5-6.3,27.5,20.4A11.91,11.91,0,0,0,82.89,57l-31.7-23.5ZM15.29,21a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,21Zm0,36.8a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,57.77Zm28.3-21.5a2.8,2.8,0,1,1,2.8-2.8A2.8,2.8,0,0,1,43.59,36.27Z" transform="translate(-1.17 -0.96)"/>',Fo='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',Wo='<path fill="{{color}}" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>',Go={Angle:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50\n 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23\n 10l50 50q10 10 10 23z" />',viewBox:{x:1792,y:1792}}),ArrowAnnotate:Ho(Lo,{iconContent:'<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />\n </g>',viewBox:{x:24,y:24}}),Bidirectional:Ho(Lo,{iconContent:'<g fill="{{color}}" stroke-width="3" stroke="{{color}}">\n <path d="M27.63 3.21L3.12 28.81"></path>\n <path d="M27.63 15.75L15.27 4.43"></path>\n <path d="M16.5 4.28C16.5 4.96 15.95 5.51 15.27 5.51C14.59 5.51 14.03 4.96 14.03 4.28C14.03 3.59 14.59 3.04 15.27 3.04C15.95 3.04 16.5 3.59 16.5 4.28Z" ></path>\n <path d="M28.87 3.19C28.87 3.87 28.31 4.43 27.63 4.43C26.95 4.43 26.4 3.87 26.4 3.19C26.4 2.51 26.95 1.95 27.63 1.95C28.31 1.95 28.87 2.51 28.87 3.19Z"></path>\n <path d="M28.87 15.75C28.87 16.43 28.31 16.99 27.63 16.99C26.95 16.99 26.4 16.43 26.4 15.75C26.4 15.07 26.95 14.51 27.63 14.51C28.31 14.51 28.87 15.07 28.87 15.75Z"></path>\n <path d="M4.73 28.44C4.73 29.12 4.17 29.68 3.49 29.68C2.81 29.68 2.25 29.12 2.25 28.44C2.25 27.76 2.81 27.2 3.49 27.2C4.17 27.2 4.73 27.76 4.73 28.44Z"></path>\n </g>',viewBox:{x:48,y:48}}),CobbAngle:Ho(Lo,{iconContent:'<g stroke="{{color}}" stroke-width="3">\n <path d="M28.59 2.34L3.82 12.32"></path>\n <path d="M28.59 29.66L3.82 19.68"></path>\n <path stroke-dasharray="2" fill-opacity="0" d="M12.37\n 23.06C12.67 22.36 12.85 21.93 12.92 21.76C14.6 17.8 14.68 13.35 13.15\n 9.33C13.11 9.24 13.02 9 12.88 8.63">\n </path>\n </g>',viewBox:{x:32,y:32}}),CircleROI:Ho(Lo,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:Ho(Lo,{iconContent:'<path stroke="{{color}}" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16\n 25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14\n 6.3 30.74 10.54 30.74 15.76Z" />',viewBox:{x:32,y:32}}),FreehandROI:Ho(Lo,{iconContent:'<g fill="{{color}}" stroke="{{color}}" stroke-width="2">\n <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>\n <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>\n <line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902"/>\n <line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026"/>\n <line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585"/>\n <line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848"/>\n <line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688"/>\n <line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959"/>\n <line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945"/>\n <line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655"/>\n <line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648"/>\n <line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785"/>\n <line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779"/>\n <line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204"/>\n <line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488"/>\n <line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774"/>\n <line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349"/>\n <line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351"/>\n <line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213"/>\n <line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065"/>\n <line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528"/>\n <line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926"/>\n <line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855"/>\n <line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024"/>\n <line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895"/>\n <line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909"/>\n <line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348"/>\n <line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359"/>\n <line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651"/>\n <ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801"/>\n </g>',viewBox:{x:18,y:18}}),FreehandROISculptor:Ho(Lo,{iconContent:'<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>\n <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>\n <line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759"/>\n <line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707"/>\n <line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828"/>\n <line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842"/>\n <line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918"/>\n <line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153"/>\n <line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898"/>\n <line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829"/>\n <line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918"/>\n <line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145"/>\n <line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621"/>\n <line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352"/>\n <line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407"/>\n <line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807"/>\n <line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758"/>\n <line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096"/>\n <line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792"/>\n <line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171"/>\n <line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813"/>\n <line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427"/>\n <line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013"/>\n <line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271"/>\n <line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475"/>\n <line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758"/>\n <line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048"/>\n <line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166"/>\n <line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794"/>\n <line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614"/>\n <line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925"/>\n <ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918"/>\n </g>',viewBox:{x:18,y:18}}),Length:Ho(Lo,{iconContent:'<g id="length-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />\n </g>',viewBox:{x:24,y:24}}),Probe:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75\n 75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73\n 198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5\n 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5\n 385.5-103 385.5 103 279.5 279.5 103 385.5z" />',viewBox:{x:1792,y:1792}}),RectangleROI:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47\n 113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0\n 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119\n 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),TextMarker:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0\n 57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29\n 31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15\n 34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 5-.5\n 13.5t-.5 12.5q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0\n 12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11\n 2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0\n 22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58\n 0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z" />',viewBox:{x:1792,y:1792}}),Crosshairs:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26\n 19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45\n 19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26\n 0 45 19t19 45v128q0 26-19 45t-45 19h-109q32 108 112.5 188.5t188.5\n 112.5v-109q0-26 19-45t45-19h128q26 0 45 19t19 45v109q108-32\n 188.5-112.5t112.5-188.5zm339-192v128q0 26-19 45t-45 19h-143q-37 161-154.5\n 278.5t-278.5 154.5v143q0 26-19 45t-45 19h-128q-26\n 0-45-19t-19-45v-143q-161-37-278.5-154.5t-154.5-278.5h-143q-26\n 0-45-19t-19-45v-128q0-26 19-45t45-19h143q37-161\n 154.5-278.5t278.5-154.5v-143q0-26 19-45t45-19h128q26 0 45 19t19 45v143q161\n 37 278.5 154.5t154.5 278.5h143q26 0 45 19t19 45z" />',viewBox:{x:1792,y:1792}}),Eraser:Ho(Lo,{iconContent:'<path transform="translate(0,1792) scale(1,-1)" fill="{{color}}" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15\n 34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38\n 0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38\n 0 69.5 20.5t47.5 54.5z" />',viewBox:{x:2048,y:1792}}),Magnify:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />',viewBox:{x:512,y:512}}),Pan:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17\n 39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355\n 355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59\n 39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12\n 0-24-5-40-17-40-59v-448q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69l-144\n 144 355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19\n 45v448q0 42-39 59-13 5-25 5-26 0-45-19z" />',viewBox:{x:1792,y:1792}}),Rotate:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39\n 14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5\n 163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0\n 225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109\n 132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298\n 164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14\n 39 17 39 59z" />',viewBox:{x:1792,y:1792}}),StackScroll:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0\n 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547\n 0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z" />',viewBox:{x:24,y:28}}),WindowLevelRegion:Ho(Lo,{iconContent:'<path fill="{{color}}" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119\n 0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5\n 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),WindowLevel:Ho(Lo,{iconContent:'\n <path fill="{{color}}" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />\n <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="{{color}}" />',viewBox:{x:18,y:18}}),Zoom:Ho(Lo,{iconContent:'\n <path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />\n <path fill="{{color}}" transform="scale(0.22,0.22) translate(1400,0)" d="M1216\n 320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19\n 19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26\n 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z" />',viewBox:{x:640,y:512}}),segmentationFreeHandEraseInside:Ho(Lo,{iconContent:"".concat(Bo," ").concat(jo),viewBox:Uo}),segmentationFreeHandFillInside:Ho(Lo,{iconContent:"".concat(Bo," ").concat(Vo),viewBox:Uo}),segmentationFreeHandEraseOutside:Ho(Lo,{iconContent:"".concat(Bo," ").concat(jo),viewBox:Uo}),segmentationFreeHandFillOutside:Ho(Lo,{iconContent:"".concat(Bo," ").concat(Vo),viewBox:Uo}),segmentationRectangleEraseInside:Ho(Lo,{iconContent:"".concat(Fo," ").concat(jo),viewBox:Uo}),RectangleScissor:Ho(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Uo}),"RectangleScissor.FILL_INSIDE":Ho(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Uo}),"RectangleScissor.FILL_OUTSIDE":Ho(Lo,{iconContent:"".concat(Fo," ").concat(Vo),viewBox:Uo}),"RectangleScissor.ERASE_OUTSIDE":Ho(Lo,{iconContent:"".concat(Fo," ").concat(jo),viewBox:Uo}),"RectangleScissor.ERASE_INSIDE":Ho(Lo,{iconContent:"".concat(Fo," ").concat(jo),viewBox:Uo}),CircleScissor:Ho(Lo,{iconContent:"".concat(Wo," ").concat(Vo),viewBox:Uo}),"CircleScissor.FILL_INSIDE":Ho(Lo,{iconContent:"".concat(Wo," ").concat(Vo),viewBox:Uo}),"CircleScissor.ERASE_OUTSIDE":Ho(Lo,{iconContent:"".concat(Wo," ").concat(jo),viewBox:Uo}),"CircleScissor.FILL_OUTSIDE":Ho(Lo,{iconContent:"".concat(Wo," ").concat(Vo),viewBox:Uo})};function Ho(e,t){return Object.assign(Object.create(e),t)}function qo(e,t,n){Go[e]=Ho(Lo,{iconContent:t,viewBox:n})}function zo(e){if(Object.prototype.hasOwnProperty.call(Go,e))return Go[e]}var Ko=Object.keys(Go);var Yo="color",$o=To.Highlighted,Zo=bt.Active,Xo=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(e,t,n,i,a){return F(this,o),r.call(this,e,t,n,i,a)}return G(o,null,[{key:"getDefinedCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;n||(n=xo(Yo,$o,Zo));var r=Qo(e,t,n),i=Co(jt(o),"getDefinedCursor",this).call(this,r);if(!i){var a=zo(e);a&&(i=ei(a,r,t,n,Co(jt(o),"getDefinedCursor",this).call(this,"default")),Co(jt(o),"setDefinedCursor",this).call(this,r,i))}return i}}]),o}(Po);function Jo(e,t){var n=Object(t),r=Object.prototype.hasOwnProperty.bind(n);return(e+"").replace(/\{\{(\w+)\}\}/g,(function(e,t){return r(t)?n[t]+"":""}))}function Qo(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function ei(e,t,n,r,o){var i=e.mousePoint,a=i.x,l=i.y;return new Xo(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?ni:ti)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),a,l,t,o)}function ti(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Jo('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(r,'" height="').concat(r,'" viewBox="0 0\n ').concat(o.x," ").concat(o.y,'">\n ').concat(n,"\n </svg>"),t)}function ni(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,i=e.mousePointerGroupString,a=r/Math.max(o.x,o.y,1),l=16+r;return Jo('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(i,'</g>\n <g transform="translate(16, 16) scale(').concat(a,')">').concat(n,"</g>\n </svg>"),t)}var ri=Symbol("ElementCursorsMap");function oi(e,t){si(e)[0]=t,ii(e,t)}function ii(e,t){var n=si(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof No?t:No.getDefinedCursor("auto")).getStyleProperty()}function ai(e){ii(e,si(e)[1])}function li(e){ii(e,No.getDefinedCursor("none"))}function si(e){var t=si[ri];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(si,ri,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}var ci=bt.Active,di=bt.Passive,ui=bt.Enabled,vi=bt.Disabled,fi=function(){function e(t){F(this,e),H(this,"id",void 0),H(this,"viewportsInfo",[]),H(this,"toolOptions",{}),H(this,"_toolInstances",{}),this.id=t}return G(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Dt.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var i=n.toolClass,a={name:e,toolGroupId:this.id,configuration:t},l=new i(a);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addViewport",value:function(e,t){var n=(0,V.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var i=!1;r.renderingEngineId===e&&(i=!0,t&&r.viewportId!==t&&(i=!1)),i&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this._toolInstances[e]){var n=this.toolOptions[e]?this.toolOptions[e].bindings:[],r=t.bindings?t.bindings:[],o={bindings:[].concat(Zn(n),Zn(r)),mode:ci};this.toolOptions[e]=o,this._toolInstances[e].mode=ci,this._hasMousePrimaryButtonBinding(t)&&this.setViewportsCursorByToolName(e),"function"==typeof this._toolInstances[e].onSetToolActive&&this._toolInstances[e].onSetToolActive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){if(void 0!==this._toolInstances[e]){var t=this.getToolOptions(e),n=Object.assign({bindings:t?t.bindings:[]},t,{mode:di});n.bindings=n.bindings.filter((function(e){return e.mouseButton!==Xn.Primary}));var r=di;0!==n.bindings.length&&(r=ci,n.mode=r),this.toolOptions[e]=n,this._toolInstances[e].mode=r,"function"==typeof this._toolInstances[e].onSetToolPassive&&this._toolInstances[e].onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:ui};this.toolOptions[e]=t,this._toolInstances[e].mode=ui,"function"==typeof this._toolInstances[e].onSetToolEnabled&&this._toolInstances[e].onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:vi};this.toolOptions[e]=t,this._toolInstances[e].mode=vi,"function"==typeof this._toolInstances[e].onSetToolDisabled&&this._toolInstances[e].onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){return this.toolOptions[e]}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===ci&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=t?"".concat(e,".").concat(t):e,r=Xo.getDefinedCursor(n,!0);r||(r=No.getDefinedCursor("default")),this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId,o=(0,V.getRenderingEngine)(t).getViewport(n);o&&o.element&&oi(o.element,r)}))}},{key:"_hasMousePrimaryButtonBinding",value:function(e){var t;return null==e||null===(t=e.bindings)||void 0===t?void 0:t.some((function(e){return e.mouseButton===Xn.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,V.getRenderingEngine)(t).renderViewport(n)}))}}]),e}(),gi=function(e){if(!Dt.toolGroups.some((function(t){return t.id===e}))){var t=new fi(e);return Dt.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},hi=function(){return Dt.toolGroups};function pi(e,t,n,r){if(t.renderingEngineId!==n.renderingEngineId||t.viewportId!==n.viewportId){var o=r.detail.camera,i=(0,V.getRenderingEngine)(n.renderingEngineId);if(!i)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var a=i.getViewport(n.viewportId);a.setCamera(o),a.render()}}var mi=V.Enums.Events.CAMERA_MODIFIED;function wi(e){return mo(e,mi,pi)}function Ei(e,t,n,r){var o=r.detail,i=o.volumeId,a=o.range,l=(0,V.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var s=l.getViewport(n.viewportId);if(s instanceof V.VolumeViewport){var c=s.getActor(i);c&&c.volumeActor.getProperty().getRGBTransferFunction(0).setRange(a.lower,a.upper)}else{if(!(s instanceof V.StackViewport))throw new Error("Viewport type not supported.");s.setProperties({voiRange:a})}s.render()}function yi(e){return mo(e,V.Enums.Events.VOI_MODIFIED,Ei)}var Ii=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},bi=function(e,t){Object.keys(e).forEach((function(n){var r=t.getAttribute(n),o=e[n];void 0===o||""===o?t.removeAttribute(n):r!==o&&t.setAttribute(n,o)}))},Ci=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},_i=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},i),l=a.color,s=a.fill,c=a.width,d=a.lineWidth,u=d||c,v="http://www.w3.org/2000/svg",f=Ii(t,"circle",n),g=e._getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:s,"stroke-width":u};if(g)bi(h,g),e._setNodeTouched(f);else{var p=document.createElementNS(v,"circle");Ci(h,p),e._appendNode(p,f)}},Di=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,s=a.width,c=a.lineWidth,d=a.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ii(t,"ellipse",n),g=e._getSvgNode(f),h=Math.abs(r[0]-o[0]),p=Math.abs(r[1]-o[1]),m=Math.min(r[0],o[0]),w=Math.min(r[1],o[1]),E=[m+h/2,w+p/2],y=h/2,I=p/2,b={cx:"".concat(E[0]),cy:"".concat(E[1]),rx:"".concat(y),ry:"".concat(I),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)bi(b,g),e._setNodeTouched(f);else{var C=document.createElementNS(v,"ellipse");Ci(b,C),e._appendNode(C,f)}},Oi=function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},o),a=i.color,l=i.handleRadius,s=i.width,c=i.lineWidth,d=i.fill,u=i.type,v=c||s,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=Ii(t,"handle","hg-".concat(n,"-index-").concat(f)),m=void 0;if("circle"===u)m={cx:"".concat(g[0]),cy:"".concat(g[1]),r:l,stroke:a,fill:d,"stroke-width":v};else{if("rect"!==u)throw new Error("Unsupported handle type: ".concat(u));var w=parseFloat(l),E=1.5*w,y=g[0]-.5*E,I=g[1]-.5*E;m={x:"".concat(y),y:"".concat(I),width:"".concat(E),height:"".concat(E),stroke:a,fill:d,"stroke-width":v,rx:"".concat(.1*E)}}var b=e._getSvgNode(p);if(b)bi(m,b),e._setNodeTouched(p);else{var C=document.createElementNS(h,u);Ci(m,C),e._appendNode(C,p)}}};function Ti(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,s=a.width,c=a.lineWidth,d=a.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ii(t,"line",n),g=e._getSvgNode(f),h={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:l,"stroke-width":u,"stroke-dasharray":d};if(g)bi(h,g),e._setNodeTouched(f);else{var p=document.createElementNS(v,"line");Ci(h,p),e._appendNode(p,f)}}}function Si(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xi(e,t,n,r,o){if(!(r.length<2)){var i,a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,connectLastToFirst:!1},o),l=a.color,s=a.width,c=a.lineWidth,d=a.lineDash,u=c||s,v=Ii(t,"polyline",n),f=e._getSvgNode(v),g="",h=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Si(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Si(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(r);try{for(h.s();!(i=h.n()).done;){var p=i.value;g+="".concat(p[0],", ").concat(p[1]," ")}}catch(e){h.e(e)}finally{h.f()}if(o.connectLastToFirst){var m=r[0];g+="".concat(m[0],", ").concat(m[1])}var w={points:g,stroke:l,fill:"none","stroke-width":u,"stroke-dasharray":d};if(f)bi(w,f),e._setNodeTouched(v);else{var E=document.createElementNS("http://www.w3.org/2000/svg","polyline");Ci(w,E),e._appendNode(E,v)}}}function Mi(e,t,n,r,o,i){var a,l=i.padding,s=i.color,c=i.fontFamily,d=i.fontSize,u=i.background,v=o[0]+l,f=o[1]+l,g=Ii(t,"text",n),h=e._getSvgNode(g);if(h){for(var p=h.querySelector("text"),m=Array.from(p.children),w=0;w<m.length;w++){var E=m[w],y=r[w]||"";E.textContent=y}var I={fill:s,"font-size":d,"font-family":c},b={transform:"translate(".concat(v," ").concat(f,")")};bi(I,p),bi(b,h),a=Ni(h,u),e._setNodeTouched(g)}else{var C=document.createElementNS("http://www.w3.org/2000/svg","g");C.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var _=function(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),i="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",i),o}(i),D=0;D<r.length;D++){var O=Ri(r[D]);_.appendChild(O)}C.appendChild(_),e._appendNode(C,g),a=Ni(C,u)}return Object.assign({},a,{x:v,y:f,height:a.height+l,width:a.width+l})}function Ri(e){var t=document.createElementNS("http://www.w3.org/2000/svg","tspan");return t.setAttribute("x","0"),t.setAttribute("dy","1.2em"),t.textContent=e,t}function Ni(e,t){var n=e.querySelector("rect.background");if(!t)return n&&e.removeChild(n),e.getBBox();n||((n=document.createElementNS("http://www.w3.org/2000/svg","rect")).setAttribute("class","background"),e.insertBefore(n,e.firstChild));var r=e.getBBox(),o={x:"".concat(r.x),y:"".concat(r.y),width:"".concat(r.width),height:"".concat(r.height),fill:t};return bi(o,n),r}var ki=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},i),l=Mi(e,t,n,r,o,a);return l};function Ai(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw o}}return i}}(e,t)||$n(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pi(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,i,a,l,s,c,d,u=(o=e,a=(i=Ai(t,2))[0],l=i[1],c=(s=Ai(o,2))[0],d=s[1],Math.sqrt(Math.pow(a-c,2)+Math.pow(l-d,2)));u<r&&(r=u,n=Zn(e))})),n}function Li(e){var t=e.x,n=e.y,r=e.height,o=e.width,i=o/2,a=r/2;return[[t+i,n],[t,n+a],[t+i,n+r],[t+o,n+a]]}var Ui=function(e,t,n,r,o,i){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?Pi(r,o):o,s=Li(i),c=Pi(s,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},a);Ti(e,t,"link-".concat(n),l,c,d)},ji=function(e,t,n,r,o,i,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},s=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),c=ki(e,t,n,r,o,s);return Ui(e,t,n,i,o,c,s),c};function Vi(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,s=a.width,c=a.lineWidth,d=a.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ii(t,"rect",n),g=e._getSvgNode(f),h=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w={x:"".concat(h[0]),y:"".concat(h[1]),width:"".concat(p),height:"".concat(m),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)bi(w,g),e._setNodeTouched(f);else{var E=document.createElementNS(v,"rect");Ci(w,E),e._appendNode(E,f)}}function Bi(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,s=a.width,c=a.lineWidth,d=a.lineDash;Ti(e,t,n,r,o,{color:l,width:s,lineWidth:c,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};Ti(e,t,"2",f.start,f.end,{color:l,width:s,lineWidth:c,lineDash:d}),Ti(e,t,"3",g.start,g.end,{color:l,width:s,lineWidth:c,lineDash:d})}}function Fi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Wi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,V.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return Gi(r,t,n)}function Gi(e,t,n){var r=e.renderingEngineId,o=e.viewportId,i=Rt(o,r);if(!i)return null;var a=i._toolInstances;for(var l in a){var s=Hi(a[l],e,t,n);if(s)return s}return null}function Hi(e,t,n,r){var o=de(t.viewport.element,e.constructor.toolName);if(null!=o&&o.length){var i,a=t.viewport.element,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Fi(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Fi(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(l.s();!(i=l.n()).done;){var s=i.value;if(e.isPointNearTool(a,s,n,r,"")||e.getHandleNearImagePoint(a,s,n,r))return s}}catch(e){l.e(e)}finally{l.f()}}return null}var qi=function(e){var t=Lt(e);return null!==e&&("object"===t||"function"===t)},zi=function(e,t,n){var r,o,i,a,l,s,c=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,i=o;return r=o=void 0,c=t,a=e.apply(i,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return c=e,l=h(w,t),d?g(e):a}function m(e){var n=e-s;return void 0===s||n>=t||n<0||u&&e-c>=i}function w(){var e=Date.now();if(m(e))return E(e);l=h(w,function(e){var n=e-c,r=t-(e-s);return u?Math.min(r,i-n):r}(e))}function E(e){return l=void 0,v&&r?g(e):(r=o=void 0,a)}function y(){for(var e=Date.now(),n=m(e),i=arguments.length,c=new Array(i),d=0;d<i;d++)c[d]=arguments[d];if(r=c,o=this,s=e,n){if(void 0===l)return p(s);if(u)return l=h(w,t),g(s)}return void 0===l&&(l=h(w,t)),a}return t=Number(t)||0,qi(n)&&(d=Boolean(n.leading),i=(u="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):i,v="trailing"in n?Boolean(n.trailing):v),y.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),c=0,r=s=o=l=void 0},y.flush=function(){return void 0===l?a:E(Date.now())},y.pending=function(){return void 0!==l},y},Ki=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return qi(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),zi(e,t,{leading:r,trailing:o,maxWait:t})},Yi=V.utilities.calibratedPixelSpacingMetadataProvider;function $i(e,t,n,r){r||(r=n),Yi.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}var Zi=function(e,t,n){return Math.min(Math.max(t,e),n)},Xi=function(e,t){var n=t.imageIdIndex;if(void 0===n)throw new Error("Cannot jump to slice without an imageIdIndex yet");var r=(0,V.getEnabledElement)(e);if(!r)throw new Error("Element has been disabled");var o=r.viewport;if(!(o instanceof V.StackViewport))throw new Error("Cannot scroll to slice on a non-stack viewport yet");var i=o.getImageIds().length,a=Zi(n,0,i-1);return o.setImageIdIndex(a)},Ji=s(976);function Qi(e,t,n,r){var o,i,a,l,s,c,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=Ai(r,3),f=Ai(v[0],2);o=f[0],i=f[1];var g=Ai(v[1],2);a=g[0],l=g[1];var h=Ai(v[2],2);s=h[0],c=h[1]}else o=0,i=u[0],a=0,l=u[1],s=0,c=u[2];for(var p=Ji.vec3.fromValues(o,a,s),m=e.getDirection(),w=m.slice(0,3),E=m.slice(3,6),y=m.slice(6,9),I=Ai(e.getSpacing(),3),b=I[0],C=I[1],_=I[2],D=e.indexToWorld(p),O=Ji.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),T=Ji.vec3.fromValues(E[0]*C,E[1]*C,E[2]*C),S=Ji.vec3.fromValues(y[0]*_,y[1]*_,y[2]*_),x=u[0],M=u[0]*u[1],R=s;R<=c;R++)for(var N=a;N<=l;N++)for(var k=o;k<=i;k++){var A=[k,N,R],P=k-o,L=N-a,U=R-s,j=D,V=[j[0]+P*O[0]+L*T[0]+U*S[0],j[1]+P*O[1]+L*T[1]+U*S[1],j[2]+P*O[2]+L*T[2]+U*S[2]];if(t(V,A)){var B=R*M+N*x+k;n({value:d[B],index:B,pointIJK:A,pointLPS:V})}}}function ea(e,t){var n=1/0,r=0,o=1/0,i=0,a=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),i=Math.max(e[1],i),a=Math.min(e[2],a),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),t){var s=Ai(t,3),c=s[0],d=s[1],u=s[2];n=Math.max(0,n),r=Math.min(c-1,r),o=Math.max(0,o),i=Math.min(d-1,i),a=Math.max(0,a),l=Math.min(u-1,l)}return[[n,r],[o,i],[a,l]]}function ta(e,t){var n=e.findIndex((function(e){var t=Ai(e,2);return t[0]===t[1]}));if(-1===n)throw new Error("3D bounding boxes not supported in an oblique plane");return e[n][0]-=t,e[n][1]+=t,e}var na=V.utilities.transformWorldToIndex;function ra(e,t,n,r){var o=t.getDimensions(),i=e.getCamera(),a=Ji.vec3.fromValues(i.viewUp[0],i.viewUp[1],i.viewUp[2]),l=Ji.vec3.fromValues(i.viewPlaneNormal[0],i.viewPlaneNormal[1],i.viewPlaneNormal[2]),s=Ji.vec3.create();Ji.vec3.cross(s,a,l),s=[-s[0],-s[1],-s[2]];var c=Ai(n,2),d=c[0],u=c[1],v=Ji.vec3.fromValues((d[0]+u[0])/2,(d[1]+u[1])/2,(d[2]+u[2])/2),f=Ji.vec3.distance(d,u)/2,g=Ji.vec3.create(),h=Ji.vec3.create();Ji.vec3.scaleAndAdd(g,u,l,f),Ji.vec3.scaleAndAdd(h,d,l,-f),Ji.vec3.scaleAndAdd(g,g,s,-f),Ji.vec3.scaleAndAdd(h,h,s,f);var p=ea([na(t,g),na(t,h)],o),m={center:v,radius:f};Qi(t,(function(e){return function(e,t){var n=e.center,r=e.radius,o=Ai(t,3),i=o[0],a=o[1],l=o[2],s=Ai(n,3),c=s[0],d=s[1],u=s[2];return Math.pow(i-c,2)+Math.pow(a-d,2)+Math.pow(l-u,2)<=Math.pow(r,2)}(m,e)}),r,p)}var oa=V.utilities.transformWorldToIndex,ia=function(e,t,n,r){if(t.length>1)throw new Error("thresholding more than one volumes is not supported yet");var o=Me(n.segmentationId),i=n.segmentationId;if(!o)throw new Error("No Segmentation Found");var a=o.type,l=o.representationData[a].volumeId,s=V.cache.getVolume(l),c=s.scalarData,d=s.imageData,u=r.lowerThreshold,v=r.higherThreshold,f=r.numSlicesToProject;if(r.overwrite)for(var g=0;g<c.length;g++)c[g]=0;return e.forEach((function(e){var n,r,o=e.data,i=o.handles.points,a=t[0],l=a.imageData,s=a.dimensions,g=l.getPointData().getScalars().getData(),h=i;if(null!==(n=o.cachedStats)&&void 0!==n&&n.projectionPoints){var p,m=o.cachedStats.projectionPoints;h=(p=[]).concat.apply(p,Zn(m))}var w=ea(h.map((function(e){return oa(l,e)})),s);!f||null!==(r=o.cachedStats)&&void 0!==r&&r.projectionPoints||(w=function(e,t){return ta(e,t)}(w,f)),Qi(d,(function(){return!0}),(function(e){var t=e.index,n=e.pointIJK,r=l.computeOffsetIndex(n),o=g[r];o<=u||o>=v||(c[t]=1)}),w)})),be(i),s},aa=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,i=t.spacing;if(!(V.utilities.isEqual(r,e[0].dimensions)&&V.utilities.isEqual(n,e[0].direction)&&V.utilities.isEqual(i,e[0].spacing)&&V.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,i=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(i[r]=t)}));var a={scalarData:i,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,s=V.volumeLoader.createLocalVolume(a,n,l);return s};function la(e,t){if(e===De.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function sa(e){return ca.apply(this,arguments)}function ca(){return(ca=Yt(Zt().mark((function e(t){var n,r,o,i,a,l,s,c,d,u,v,f;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,i=t.segmentationId,a=(0,V.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=a.viewport)instanceof V.VolumeViewport){e.next=8;break}throw new Error("Segmentation not ready for stackViewport");case 8:if(s=l.getDefaultActor(),c=s.uid,void 0===i&&(i="".concat(c,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:V.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,q._cloneDeep)(o),e.next=14,V.volumeLoader.createLocalVolume(u,i);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,V.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:i});case 19:return e.abrupt("return",i);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function da(e){var t,n,r,o,i=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),a=(i.top[1]+i.bottom[1])/2;return[i.right[0],a]}var ua=1e-6;function va(e,t,n){var r=Ai(n,2),o=r[0],i=r[1];if(Math.abs(t)<ua)return e<0;var a=e/t;if(t>0){if(a>i)return 0;a>o&&(n[0]=a)}else{if(a<o)return 0;a<i&&(n[1]=a)}return 1}function fa(e,t,n,r,o){var i=Ai(e,2),a=i[0],l=i[1],s=Ai(t,2),c=s[0]-a,d=s[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(c)<ua&&Math.abs(d)<ua&&a>=n[0]&&a<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(va(n[0]-a,c,u)&&va(a-n[2],-c,u)&&va(n[1]-l,d,u)&&va(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=a+f*c,o[1]=l+f*d),v>0&&(r[0]+=v*c,r[1]+=v*d),1}return 0}function ga(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,i=e.zRadius,a=Ai(t,3),l=a[0],s=a[1],c=a[2],d=Ai(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(s-v)*(s-v)/(o*o)),0!==i&&(g+=(c-f)*(c-f)/(i*i)),g<=1}function ha(e){var t=Ai(e,4),n=t[0],r=t[1],o=t[2],i=t[3];return[[o[0],r[1]],[i[0],n[1]]]}function pa(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function ma(e,t,n){var r=pa(e,t);if(0===r)return pa(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return pa(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function wa(e,t,n){if(2!==e.length||2!==t.length||2!==n.length)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(ma(e,t,n))}function Ea(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function ya(e,t,n,r){var o=Ai(e,2),i=o[0],a=o[1],l=Ai(t,2),s=l[0],c=l[1],d=Ai(n,2),u=d[0],v=d[1],f=Ai(r,2),g=f[0],h=f[1],p=c-a,m=i-s,w=s*a-i*c,E=p*u+m*v+w,y=p*g+m*h+w;if(0===E||0===y||Ea(E)!==Ea(y)){var I=h-v,b=u-g,C=g*v-u*h,_=I*i+b*a+C,D=I*s+b*c+C;if(0===_||0===D||Ea(_)!==Ea(D)){var O=p*b-I*m;return[(m*C-b*w)/O,(I*w-p*C)/O]}}}function Ia(e,t){if(4!==e.length||2!==t.length)throw Error("rectangle:[left, top, width, height] or point: [x,y] not defined correctly");var n=Ai(e,4),r=n[0],o=n[1],i=n[2],a=n[3],l=655535,s=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,i,a);return Object.keys(s).forEach((function(e){var n=Ai(s[e],2),r=wa(n[0],n[1],t);r<l&&(l=r)})),l}function ba(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=r;a<e.length;a++){var l=e[o],s=e[a];if(_a(t,n,l,s))return[o,a];o=a}}function Ca(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=[],l=r;l<e.length;l++){var s=e[o],c=e[l];_a(t,n,s,c)&&a.push([o,l]),o=l}if(0!==a.length){var d=[];a.forEach((function(n){var r=[e[n[0]],e[n[1]]],o=[(r[0][0]+r[1][0])/2,(r[0][1]+r[1][1])/2];d.push(Ji.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:a[v],distance:u}}}function _a(e,t,n,r){var o=!1,i=[Da(e,t,n),Da(e,t,r),Da(n,r,e),Da(n,r,t)];return i[0]!==i[1]&&i[2]!==i[3]||((0===i[0]&&Oa(e,n,t)||0===i[1]&&Oa(e,r,t)||0===i[2]&&Oa(n,e,r)||0===i[3]&&Oa(n,t,r))&&(o=!0),o)}function Da(e,t,n){var r=(t[1]-e[1])*(n[0]-t[0])-(t[0]-e[0])*(n[1]-t[1]);return 0===r?0:r>0?1:2}function Oa(e,t,n){return t[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1])}var Ta=.001,Sa=function(e,t){var n,r,o;if(e instanceof V.StackViewport){var i=e.getImageData();r=i.direction.slice(0,3),o=i.direction.slice(3,6),n=i.spacing}else{var a,l,s=e.getImageData(),c=s.direction,d=s.spacing,u=e.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=c.slice(0,3),h=c.slice(3,6),p=c.slice(6,9),m=Ji.vec3.create();if(Ji.vec3.cross(m,f,v),m=[-m[0],-m[1],-m[2]],Math.abs(1-Ji.vec3.dot(m,g))<Ta)a=d[0],r=g;else if(Math.abs(1-Ji.vec3.dot(m,h))<Ta)a=d[1],r=h;else{if(!(Math.abs(1-Ji.vec3.dot(m,p))<Ta))throw new Error("No support yet for oblique plane planar contours");a=d[2],r=p}if(Math.abs(1-Ji.vec3.dot(v,g))<Ta)l=d[0],o=g;else if(Math.abs(1-Ji.vec3.dot(v,h))<Ta)l=d[1],o=h;else{if(!(Math.abs(1-Ji.vec3.dot(v,p))<Ta))throw new Error("No support yet for oblique plane planar contours");l=d[2],o=p}n=[a,l]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},xa=function(e,t,n){return Ji.vec2.dist(e,t)<n},Ma=function(e,t,n,r){var o=r.xDir,i=r.yDir,a=r.spacing,l=(0,V.getEnabledElement)(e).viewport,s=l.canvasToWorld(t[t.length-1]),c=l.canvasToWorld(n),d=Ji.vec3.create();Ji.vec3.subtract(d,c,s);var u=Math.abs(Ji.vec3.dot(d,o)),v=Math.abs(Ji.vec3.dot(d,i)),f=Math.max(Math.floor(u/a[0]),Math.floor(v/a[0]));if(f>1){var g=t[t.length-1],h=Ji.vec2.dist(g,n),p=Ji.vec2.create();Ji.vec2.subtract(p,n,g),Ji.vec2.set(p,p[0]/h,p[1]/h);for(var m=h/f,w=1;w<=f;w++)t.push([g[0]+m*p[0]*w,g[1]+m*p[1]*w])}else t.push(n);return f},Ra=function(e,t,n,r){var o=[e[0]-t[0],e[1]-t[1]],i=[n[0]-t[0],n[1]-t[1]],a=o[0]*i[0]+o[1]*i[1];if(a<0)return!1;var l=Math.sqrt(i[0]*i[0]+i[1]*i[1]);if(0===l)return!1;var s=a/l,c=[i[0]/l,i[1]/l],d=[c[0]*s,c[1]*s],u=[t[0]+d[0],t[1]+d[1]];return!(Ji.vec2.distance(e,u)>r||Ji.vec2.distance(t,u)>Ji.vec2.distance(t,n))};function Na(e){for(var t=e.length,n=0,r=t-1,o=0;o<t;o++)n+=(e[r][0]+e[o][0])*(e[r][1]-e[o][1]),r=o;return Math.abs(n/2)}function ka(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Aa(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return V.utilities.isEqual(t,r)}));if(!o.length)return[];var i,a=n/2,l=t.focalPoint,s=[],c=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ka(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ka(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(c.s();!(i=c.n()).done;){var d=i.value,u=d.data.handles.points[0],v=Ji.vec3.create();Ji.vec3.sub(v,l,u);var f=Ji.vec3.dot(v,r);Math.abs(f)<a&&s.push(d)}}catch(e){c.e(e)}finally{c.f()}return s}function Pa(e,t,n,r){var o=Ji.vec3.create();Ji.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var i=Ji.vec3.fromValues.apply(Ji.vec3,Zn(n)),a=Ji.vec3.fromValues.apply(Ji.vec3,Zn(r)),l=Ji.vec3.create();Ji.vec3.subtract(l,i,a);var s=Ji.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ji.vec3.dot(l,o)/(s*Ji.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}function La(e,t){if(e instanceof V.StackViewport){var n=e.getCurrentImageId(),r=n.indexOf(":"),o=n.substring(r+1);return t.filter((function(e){var t=e.metadata.referencedImageId,n=t.indexOf(":");return t.substring(n+1)===o}))}if(e instanceof V.VolumeViewport){var i=e.getCamera();return Aa(t,i,V.utilities.getTargetVolumeAndSpacingInNormalDir(e,i).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var Ua=s(807),ja=s.n(Ua);function Va(e,t,n,r){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,a=e.getCamera(),l=a.position,s=V.utilities.getTargetVolumeAndSpacingInNormalDir(e,a,n),c=s.spacingInNormalDirection,d=c*i,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];ja().subtract(t,l,g);for(var p=v;p<=f;p+=d){h=[p,0,0];var m=(p-l[0])/g[0];if(h[1]=m*g[1]+l[1],h[2]=m*g[2]+l[2],Ba(h,u)){var w=e.getIntensityFromWorld(h),E=r(w,h);E&&(o=E)}}return o}var Ba=function(e,t){var n=Ai(t,6),r=n[0],o=n[1],i=n[2],a=n[3],l=n[4],s=n[5];return e[0]>r&&e[0]<o&&e[1]>i&&e[1]<a&&e[2]>l&&e[2]<s},Fa={filterAnnotationsWithinSlice:Aa,getWorldWidthAndHeightFromCorners:Pa,filterAnnotationsForDisplay:La,getPointInLineOfSightWithCriteria:Va};function Wa(e,t,n,r,o,i){var a=n.min,l=n.max,s=n.current,c=Ji.vec3.create();Ji.vec3.sub(c,t,e);var d=Math.round((l-a)/o),u=(s-a)/(l-a)*d,v=Math.round(u),f=[e[0]-r[0]*u*o,e[1]-r[1]*u*o,e[2]-r[2]*u*o];(v+=i)>d?v=d:v<0&&(v=0);var g=v*o;return{newFocalPoint:f=[f[0]+r[0]*g,f[1]+r[1]*g,f[2]+r[2]*g],newPosition:[f[0]+c[0],f[1]+c[1],f[2]+c[2]]}}var Ga=s(847),Ha=s.n(Ga);function qa(e,t,n){var r=V.utilities.getVolumeActorCorners(e),o=Ha().buildFromDegree().identity().rotateFromDirections(t,[1,0,0]);r.forEach((function(e){return o.apply(e)}));var i=Zn(n);o.apply(i);for(var a=i[0],l=1/0,s=-1/0,c=0;c<8;c++){var d=r[c][0];d>s&&(s=d),d<l&&(l=d)}return{min:l,max:s,current:a}}function za(e,t){var n=e.type,r=t.volumeId,o=t.direction,i=t.invert?-o:o;if(e instanceof V.StackViewport){var a=e.getCurrentImageIdIndex(),l=e.getImageIds().length,s=a+i;s=Zi(s,0,l-1),e.setImageIdIndex(s)}else{if(!(e instanceof V.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));var c=e.getCamera(),d=c.focalPoint,u=c.viewPlaneNormal,v=c.position,f=V.utilities.getTargetVolumeAndSpacingInNormalDir(e,c,r),g=f.spacingInNormalDirection,h=f.imageVolume;if(!h)return;var p=e.getActor(h.volumeId);p||console.warn("No actor found for with actorUID of",h.volumeId);var m=Wa(d,v,qa(p.volumeActor,u,d),u,g,i),w=m.newFocalPoint,E=m.newPosition;e.setCamera({focalPoint:w,position:E}),e.render()}}function Ka(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o];i.getFrameOfReferenceUID()===t&&r.push(i)}return r}var Ya=bt.Active,$a=bt.Passive,Za=bt.Enabled;function Xa(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o];Ja(Rt(i.id,i.renderingEngineId),t)&&r.push(i)}return r}function Ja(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===Ya||r===$a||r===Za}var Qa=function(e,t){return e.filter((function(e){var n=e.getCamera();return V.utilities.isEqual(n.viewPlaneNormal,t.viewPlaneNormal)&&V.utilities.isEqual(n.viewUp,t.viewUp)}))};function el(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,V.getEnabledElement)(e),o=r.renderingEngine,i=r.FrameOfReferenceUID,a=o.getViewports();a=Xa(a=Ka(a,i),t);var l=o.getViewport(r.viewportId);n&&(a=Qa(a,l.getCamera()));var s=a.map((function(e){return e.id}));return s}function tl(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",i=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],a=1e-4,l=0;l<3;l++)if(i[0]>a&&i[0]>i[1]&&i[0]>i[2])t+=n,i[0]=0;else if(i[1]>a&&i[1]>i[0]&&i[1]>i[2])t+=r,i[1]=0;else if(i[2]>a&&i[2]>i[0]&&i[2]>i[1])t+=o,i[2]=0;else if(i[0]>a&&i[1]>a&&i[0]===i[1])t+=n+r,i[0]=0,i[1]=0;else if(i[0]>a&&i[2]>a&&i[0]===i[2])t+=n+o,i[0]=0,i[2]=0;else{if(!(i[1]>a&&i[2]>a&&i[1]===i[2]))break;t+=r+o,i[1]=0,i[2]=0}return t}function nl(e){var t=e.replace("H","f");return(t=(t=(t=(t=(t=t.replace("F","h")).replace("R","l")).replace("L","r")).replace("A","p")).replace("P","a")).toUpperCase()}var rl=function(e,t){var n=Xo.getDefinedCursor(t,!0);n||(n=No.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=No.getDefinedCursor(t)),ii(e,n)},ol=[].concat(Zn(Ko),Zn(Ao)),il=function(e){if(e){if(e.data&&e.highlighted)return To.Highlighted;if(ir(e.annotationUID))return To.Selected;if(X(e))return To.Locked}return To.Default};function al(e,t){if(e){var n=Dt.tools[e];if(n){var r=n.toolClass;return t?V.Settings.getObjectSettings(t,r):V.Settings.getObjectSettings(r)}}return V.Settings.getRuntimeSettings()}var ll=function(e,t,n){var r=V.Settings.assert(e),o=So(r,"textBox.fontSize",t,n),i=So(r,"textBox.fontFamily",t,n);return"".concat(o,"px ").concat(i)},sl=function(e,t,n){var r=Dt.tools[e];if(r){var o=r.toolClass;return V.Settings.getObjectSettings(t,o).set("tool.style",n)}return!1};function cl(e){return V.Settings.getRuntimeSettings().set("tool.style",e)}function dl(e,t){var n=Dt.tools[e];if(n){var r=n.toolClass;return V.Settings.getObjectSettings(r).set("tool.style",t)}return!1}var ul=function(e){if(!e||!e.length)throw new Error("The segmentationInputArray is undefined or empty array");e.forEach((function(e){if(void 0===e.segmentationId)throw new Error("The segmentationInput.segmentationId is undefined, please provide a valid segmentationId");if(void 0===e.representation)throw new Error("The segmentationInput.representation is undefined, please provide a valid representation");e.representation.type===De.Labelmap&&function(e){if(!e.representation.data)throw new Error("The segmentationInput.representationData.data is undefined, please provide a valid representationData.data");var t=e.representation.data;if(!t.volumeId)throw new Error("The segmentationInput.representationData.volumeId is undefined, please provide a valid representationData.volumeId");if(!V.cache.getVolume(t.volumeId))throw new Error("volumeId of ".concat(t.volumeId," not found in cache, you should load and cache volume before adding segmentation"))}(e)}))},vl=function(e){ul(e),e.map((function(e){Ne(z()(e))}))};function fl(){return(fl=Yt(Zt().mark((function e(t,n,r){var o,i;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(dn(t)){e.next=3;break}throw new Error("No tool group found for toolGroupId: ".concat(t));case 3:return o=n.map((function(e){return gl(t,e,r)})),e.next=6,Promise.all(o);case 6:return i=e.sent,e.abrupt("return",i);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function gl(e,t,n){return hl.apply(this,arguments)}function hl(){return(hl=Yt(Zt().mark((function e(t,n,r){var o;return Zt().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==De.Labelmap){e.next=6;break}return e.next=3,_n.addSegmentationRepresentation(t,n,r);case 3:o=e.sent,e.next=7;break;case 6:throw new Error("The representation type ".concat(n.type," is not supported"));case 7:return e.abrupt("return",o);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var pl=function(e,t,n){return fl.apply(this,arguments)};function ml(e){var t=xe().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function wl(e,t){xe().setActiveSegmentationRepresentation(e,t),ye(e,t)}function El(e,t){var n=Me(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function yl(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Me(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),Ie(e)}function Il(e){var t=Me(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function bl(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");V.utilities.isEqual(e[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),e.unshift([0,0,0,0])),Ge(e,t)}function Cl(e,t,n){var r=Be(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!We(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,ye(e,t)}function _l(e,t,n){var r=Be(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return We(r.colorLUTIndex)[n]}function Dl(e,t,n){var r=ke(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,ye(e,r.segmentationRepresentationUID))}))}function Ol(e,t){var n=ke(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function Tl(e,t){var n=Me(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,Ie(e))}function Sl(e){var t=Me(e);if(t)return t.activeSegmentIndex}function xl(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ml(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ml(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function Ml(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Rl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e;F(this,o);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return H(kt(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,i=o.element,a=o.currentPoints.canvas,l=!1,s=xl(n);try{for(s.s();!(r=s.n()).done;){var c=r.value;if(!X(c)){var d=c.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(i,c,a,6),f=v&&!c.highlighted,g=!v&&c.highlighted;f||g?(c.highlighted=!c.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){s.e(e)}finally{s.f()}return l})),H(kt(e),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,i=n.columnScale,a=n.imageId,l=n.imageData,s=n.worldToIndex;if((0,V.getEnabledElement)(r).viewport instanceof V.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var c=l.getIndexToWorld(),d=V.utilities.imageIdToURI(a),u=ce();u.getFramesOfReference().forEach((function(t){var n=u.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){V.utilities.imageIdToURI(e.metadata.referencedImageId)===d&&(e.invalidated=!0,e.data.cachedStats={},e.data.handles.points=e.data.handles.points.map((function(e){var t=Ji.vec4.fromValues.apply(Ji.vec4,Zn(e).concat([1])),n=Ji.vec4.fromValues(0,0,0,1),r=Ji.vec4.create();Ji.vec4.transformMat4(r,t,s);var a=[i*r[0],o*r[1],r[2]];return Ji.vec4.transformMat4(n,Ji.vec4.fromValues(a[0],a[1],a[2],1),c),n.slice(0,3)})))})),An(r))}))})),e}return G(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return La((0,V.getEnabledElement)(e).viewport,t)}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=t.data,a=i.handles,l=a.points,s=a.textBox,c=s.worldBoundingBox;if(c){var d={topLeft:o.worldToCanvas(c.topLeft),topRight:o.worldToCanvas(c.topRight),bottomLeft:o.worldToCanvas(c.bottomLeft),bottomRight:o.worldToCanvas(c.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return i.handles.activeHandleIndex=null,s}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==Ji.vec2.distance(n,f)<r)return i.handles.activeHandleIndex=u,v}i.handles.activeHandleIndex=null}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,i=this.getTargetId(e);if(e instanceof V.StackViewport)o=i.split("imageId:")[1];else{var a=i.split("volumeId:")[1],l=V.cache.getVolume(a);o=V.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return So(e,t,il(n),this.mode)}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle(e,"textBox.fontFamily",t),fontSize:this.getStyle(e,"textBox.fontSize",t),color:this.getStyle(e,"textBox.color",t),background:this.getStyle(e,"textBox.background",t),lineWidth:this.getStyle(e,"textBox.link.lineWidth",t),lineDash:this.getStyle(e,"textBox.link.lineDash",t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(zt);H(Rl,"toolName","AnnotationTool");var Nl=Rl;var kl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(kt(e)),e.mouseDragCallback=e._dragCallback.bind(kt(e)),e}return G(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,V.getEnabledElement)(n),i=r.world,a=o.viewport.getCamera(),l=a.focalPoint,s=a.position,c=[s[0]-i[0],s[1]-i[1],s[2]-i[2]],d=[l[0]-i[0],l[1]-i[1],l[2]-i[2]];o.viewport.setCamera({focalPoint:d,position:c}),o.viewport.render()}}]),o}(zt);H(kl,"toolName","Pan");var Al=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_getImageDynamicRange",(function(e){var t,n,r=V.cache.getVolume(e),o=r.dimensions,i=r.scalarData,a=Math.floor(o[2]/2),l=o[0]*o[1];i instanceof Float32Array?(t=4,n=Float32Array):i instanceof Uint8Array&&(t=1,n=Uint8Array);for(var s=new n(i.buffer,a*l*t,l),c=1/0,d=-1/0,u=0;u<l;u++){var v=s[u];v<c&&(c=v),v>d&&(d=v)}return d-c})),e.touchDragCallback=e._dragCallback.bind(kt(e)),e.mouseDragCallback=e._dragCallback.bind(kt(e)),e}return G(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,i,a,l,s=e.detail,c=s.element,d=s.deltaPoints,u=(0,V.getEnabledElement)(c),v=u.renderingEngine,f=u.viewportId,g=u.viewport,h=!1,p=!1;if(g instanceof V.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).volumeActor.getProperty().getRGBTransferFunction(0),l=V.utilities.getVolumeViewportsContainingVolumeId(t,v.id);var m=Ai(o.getRange(),2);n=m[0],r=m[1],i=V.cache.getVolume(t).metadata.Modality,h=!0}else{if(!(g instanceof V.StackViewport))throw new Error("Viewport is not a valid type");var w=g.getProperties();i=g.modality;var E=w.voiRange;n=E.lower,r=E.upper,p=g.isImagePreScaled(g.getCurrentImageId())}var y={volumeId:t,viewportId:f,range:a="PT"===i&&p?this.getPTNewRange({deltaPointsCanvas:d.canvas,lower:n,upper:r,clientHeight:c.clientHeight}):this.getNewRange({deltaPointsCanvas:d.canvas,useDynamicRange:h,volumeId:t,lower:n,upper:r})};if(g instanceof V.StackViewport)return g.setProperties({voiRange:a}),void g.render();(0,V.triggerEvent)(c,V.Enums.Events.VOI_MODIFIED,y),o.setRange(a.lower,a.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.useDynamicRange,r=e.volumeId,o=e.lower,i=e.upper,a=n?this._getMultiplyerFromDynamicRange(r):4,l=t[0]*a,s=t[1]*a,c=V.utilities.windowLevel.toWindowLevel(o,i),d=c.windowWidth,u=c.windowCenter;return d+=l,u+=s,d=Math.max(d,1),V.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplyerFromDynamicRange",value:function(e){if(!e)throw new Error("No volumeId provided for the volume Viewport");var t=4,n=this._getImageDynamicRange(e)/1024;return n>1&&(t=Math.round(n)),t}}]),o}(zt);H(Al,"toolName","WindowLevel");var Pl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_dragParallelProjection",(function(e,t){var n=e.detail,r=n.element,o=n.deltaPoints,i=(0,V.getEnabledElement)(r).viewport,a=1.5/(r.clientWidth,r.clientHeight),l=(1-o.canvas[1]*a)*t.parallelScale;i.setCamera({parallelScale:l})})),H(kt(e),"_dragPerspectiveProjection",(function(e,t){var n=e.detail,r=n.element,o=n.deltaPoints,i=(0,V.getEnabledElement)(r).viewport,a=[r.clientWidth,r.clientHeight],l=t.clippingRange[1]/a[1]*1.5,s=t.position,c=t.focalPoint,d=t.viewPlaneNormal,u=[-d[0],-d[1],-d[2]],v=o.canvas[1]*l,f=v*u[0];s[0]+=f,c[0]+=f,f=v*u[1],s[1]+=f,c[1]+=f,f=v*u[2],s[2]+=f,c[2]+=f,i.setCamera({position:s,focalPoint:c})})),e.touchDragCallback=e._dragCallback.bind(kt(e)),e.mouseDragCallback=e._dragCallback.bind(kt(e)),e}return G(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,r):this._dragPerspectiveProjection(e,r),n.render()}}]),o}(zt);H(Pl,"toolName","Zoom");var Ll=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"previousDirection",void 0),H(kt(e),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),e.previousDirection=1,e.touchDragCallback=e._dragCallback.bind(kt(e)),e.mouseDragCallback=e._dragCallback.bind(kt(e)),e}return G(o,[{key:"_dragCallback",value:function(e){var t,n,r=e.detail,o=r.deltaPoints,i=r.viewportId,a=r.renderingEngineId,l=o.canvas[1],s=(0,V.getEnabledElementByIds)(i,a).viewport,c=this.getTargetId(s),d=this.configuration.invert;s instanceof V.VolumeViewport&&(t=c.split("volumeId:")[1]),0===l?n=this.previousDirection:(n=l>0?1:-1,this.previousDirection=n),za(s,{direction:n,invert:d,volumeId:t})}}]),o}(zt);H(Ll,"toolName","StackScroll");var Ul=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],invert:!1};return F(this,o),H(kt(e=r.call(this,t,n)),"_configuration",void 0),e}return G(o,[{key:"mouseWheelCallback",value:function(e){var t,n=e.detail,r=n.wheel,o=n.element,i=r.direction,a=this.configuration.invert,l=(0,V.getEnabledElement)(o).viewport,s=this.getTargetId(l);l instanceof V.VolumeViewport&&(t=s.split("volumeId:")[1]),za(l,{direction:i,invert:a,volumeId:t})}}]),o}(zt);H(Ul,"toolName","StackScrollMouseWheel");var jl={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Vl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:jl.Z,rotateIncrementDegrees:.5}};return F(this,o),H(kt(e=r.call(this,t,n)),"_configuration",void 0),e}return G(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,V.getEnabledElement)(n).viewport,i=this.configuration,a=i.direction,l=i.rotateIncrementDegrees,s=o.getCamera(),c=s.viewUp,d=s.position,u=s.focalPoint,v=r.direction,f=Ai(u,3),g=f[0],h=f[1],p=f[2],m=Ai(a,3),w=m[0],E=m[1],y=m[2],I=v*l,b=[0,0,0],C=[0,0,0],_=[0,0,0],D=Ji.mat4.identity(new Float32Array(16));Ji.mat4.translate(D,D,[g,h,p]),Ji.mat4.rotate(D,D,I,[w,E,y]),Ji.mat4.translate(D,D,[-g,-h,-p]),Ji.vec3.transformMat4(b,d,D),Ji.vec3.transformMat4(C,u,D),Ji.mat4.identity(D),Ji.mat4.rotate(D,D,I,[w,E,y]),Ji.vec3.transformMat4(_,c,D),o.setCamera({position:b,viewUp:_,focalPoint:C}),o.render()}}]),o}(zt);H(Vl,"toolName","VolumeRotateMouseWheel");var Bl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}};return F(this,o),H(kt(e=r.call(this,t,n)),"_bounds",void 0),e}return G(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,V.getEnabledElement)(n),i=o.viewport,a=o.renderingEngine,l=this.getTargetId(i);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var s=l.split("volumeId:")[1],c=-1/0,d=Va(i,r.world,s,(function(e,t){if(e>c)return c=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=a.getViewport(e);t instanceof V.VolumeViewport?function(e,t){if(e instanceof V.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];Ji.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=Ji.vec3.dot(t,r),i=Ji.vec3.fromValues(r[0],r[1],r[2]);if(Ji.vec3.scale(i,i,o),Math.abs(i[0])>.001||Math.abs(i[1])>.001||Math.abs(i[2])>.001){var a=[0,0,0],l=[0,0,0];Ji.vec3.add(a,n.focalPoint,i),Ji.vec3.add(l,n.position,i),e.setCamera({focalPoint:a,position:l}),e.render()}}(e,r)}}(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(zt);H(Bl,"toolName","MIPJumpToClickTool");var Fl=V.utilities.transformWorldToIndex,Wl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;li(i),e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:f},data:{handles:{points:[Zn(a),Zn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(i,g);var h=el(i,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),t.preventDefault(),Fr(c,h),g})),H(kt(e),"isPointNearTool",(function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=Ai(t.data.handles.points,2),a=i[0],l=i[1],s=o.worldToCanvas(a),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return wa([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),li(o);var a=(0,V.getEnabledElement)(o).renderingEngine;Fr(a,i),t.preventDefault()})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,s=o.data;if(!a||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),ai(n);var c=(0,V.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),Fr(c,i),a){var d=B.ANNOTATION_COMPLETED,u={annotation:o};(0,V.triggerEvent)(V.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=i.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Zn(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,V.getEnabledElement)(r).renderingEngine;Fr(h,a)})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_activateDraw",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(l,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=e.getTargetId(a),d=a.getRenderingEngine(),u=0;u<s.length;u++){var v=s[u],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=e.getStyle(f,"lineWidth",v),y=e.getStyle(f,"lineDash",v),I=e.getStyle(f,"color",v),b=m.map((function(e){return a.worldToCanvas(e)})),C=void 0;if(X(v)||e.editData||null===w||(C=[b[w]]),C&&Oi(n,g,"0",b,{color:I,lineDash:y,lineWidth:E}),Ti(n,g,"1",b[0],b[1],{color:I,width:E,lineDash:y}),h.cachedStats[c]?v.invalidated&&e._throttledCalculateCachedStats(v,d,t):(h.cachedStats[c]={length:null},e._calculateCachedStats(v,d,t)),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var _=e._getTextLines(h,c);if(!h.handles.textBox.hasMoved){var D=da(b);h.handles.textBox.worldPosition=a.canvasToWorld(D)}var O=a.worldToCanvas(h.handles.textBox.worldPosition),T=ji(n,g,"1",_,O,b,{},e.getLinkedTextBoxStyle(f,v)),S=T.x,x=T.y,M=T.width,R=T.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([S,x]),topRight:a.canvasToWorld([S+M,x]),bottomLeft:a.canvasToWorld([S,x+R]),bottomRight:a.canvasToWorld([S+M,x+R])}}})),e._throttledCalculateCachedStats=Ki(e._calculateCachedStats,100,{trailing:!0}),e}return G(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=el(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),li(r);var s=(0,V.getEnabledElement)(r).renderingEngine;Fr(s,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].length;if(void 0!==n)return["".concat(n.toFixed(2)," mm")]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.handles.points[1],s=r.cachedStats,c=Object.keys(s),d=0;d<c.length;d++){var u=c[d],v=this.getTargetIdImage(u,t),f=v.imageData,g=v.dimensions,h=this._calculateLength(a,l),p=Fl(f,a),m=Fl(f,l);this._isInsideVolume(p,m,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,s[u]={length:h}}e.invalidated=!1;var w=B.ANNOTATION_MODIFIED,E={annotation:e,viewportId:o,renderingEngineId:i};return(0,V.triggerEvent)(V.eventTarget,w,E),s}},{key:"_isInsideVolume",value:function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)}}]),o}(Nl);H(Wl,"toolName","Length");var Gl=Wl;var Hl=fa;function ql(){return"rgb(200, 200, 200)"}function zl(){return!0}function Kl(){return!0}function Yl(){return!1}var $l=.001,Zl=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t,n,i,a,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,autoPan:{enabled:!1,panSize:10}}};return F(this,o),H(kt(a=r.call(this,l,s)),"toolCenter",[0,0,0]),H(kt(a),"_getReferenceLineColor",void 0),H(kt(a),"_getReferenceLineControllable",void 0),H(kt(a),"_getReferenceLineDraggableRotatable",void 0),H(kt(a),"_getReferenceLineSlabThicknessControlsOn",void 0),H(kt(a),"editData",void 0),H(kt(a),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,V.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,i=r.viewport,l=i.element,s=i.getCamera(),c=s.position,d=s.focalPoint,u=s.viewPlaneNormal,v=de(l,a.getToolName());(v=a.filterInteractableAnnotationsForElement(l,v)).length&&ve(v[0].annotationUID,l);var f={highlighted:!1,metadata:{cameraPosition:Zn(c),cameraFocalPoint:Zn(d),FrameOfReferenceUID:o,toolName:a.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:a.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}};return ai(l),ue(l,f),{normal:u,point:i.canvasToWorld([i.sWidth/2,i.sHeight/2])}})),H(kt(a),"init",(function(){var e=dn(a.toolGroupId).viewportsInfo;if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=Ai(e,3),n=t[0],r=t[1],o=t[2],i=a.initializeViewport(n),l=i.normal,s=i.point,c=a.initializeViewport(r),d=c.normal,u=c.point,v=[0,0,0],f=Ji.vec3.create();if(o){var g=a.initializeViewport(o);v=g.normal,f=g.point}else Ji.vec3.add(f,s,u),Ji.vec3.scale(f,f,.5),Ji.vec3.cross(v,l,d);var h=V.utilities.planar.planeEquation(l,s),p=V.utilities.planar.planeEquation(d,u),m=V.utilities.planar.planeEquation(v,f);a.toolCenter=V.utilities.planar.threePlaneIntersection(h,p,m)})),H(kt(a),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,i=(0,V.getEnabledElement)(r),l=i.viewport;a._jump(i,o);for(var s=de(r,a.getToolName()),c=a.filterInteractableAnnotationsForElement(l.element,s),d=c[0].data,u=d.handles.rotationPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=a._getReferenceLineControllable(g.id),p=a._getReferenceLineDraggableRotatable(g.id);h&&p&&(v.push(g.id),f++)}return d.activeViewportIds=[].concat(v),d.handles.activeOperation=1,e.preventDefault(),li(r),a._activateModify(r),c[0]})),H(kt(a),"cancel",(function(){console.log("Not implemented yet")})),H(kt(a),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),li(r),e.preventDefault()})),H(kt(a),"isPointNearTool",(function(e,t,n,r){return!!a._pointNearTool(e,t,n,6)})),H(kt(a),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),li(r),e.preventDefault()})),H(kt(a),"onCameraModified",(function(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.renderingEngine,o=n.viewport,i=el(t,a.getToolName(),!1),l=de(t,a.getToolName()),s=a.filterInteractableAnnotationsForElement(t,l)[0];if(s){var c=o.getCamera(),d=s.metadata.cameraPosition,u=[0,0,0];ja().subtract(c.position,d,u);var v=s.metadata.cameraFocalPoint,f=[0,0,0];ja().subtract(c.focalPoint,v,f),s.metadata.cameraPosition=Zn(c.position),s.metadata.cameraFocalPoint=Zn(c.focalPoint);var g=a._getReferenceLineControllable(o.id),h=a._getReferenceLineDraggableRotatable(o.id);if(!V.utilities.isEqual(c.position,d,.001)&&g&&h){var p=!0;V.utilities.isEqual(u,f,.001)||(p=!1),p&&Math.abs(ja().dot(u,c.viewPlaneNormal))>.01&&(a.toolCenter[0]+=u[0],a.toolCenter[1]+=u[1],a.toolCenter[2]+=u[2])}a.configuration.autoPan.enabled&&V.utilities.getVolumeViewportsContainingSameVolumes(o,r.id).forEach((function(e){var t=e.id;t!==o.id&&a._autoPanViewportIfNecessary(t,r)})),Fr(r,i)}})),H(kt(a),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,i=!1,l=0;l<t.length;l++){var s=t[l];if(!X(s)){var c=s.data,d=s.highlighted;if(c.handles){var u=c.handles.activeOperation,v=c.activeViewportIds&&c.activeViewportIds.length>0?Zn(c.activeViewportIds):[];c.activeViewportIds=[],c.handles.activeOperation=null;var f;(f=!!a.getHandleNearImagePoint(r,s,o,6)||a._pointNearTool(r,s,o,6))&&!d||!f&&d?(s.highlighted=!d,i=!0):c.handles.activeOperation===u&&a._areViewportIdArraysEqual(c.activeViewportIds,v)||(i=!0)}}}return i})),H(kt(a),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,V.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),H(kt(a),"renderAnnotation",(function(e,t){var n=e.viewport,r=e.renderingEngine,o=n.element,i=de(o,a.getToolName()),l=n.getCamera(),s=a.filterInteractableAnnotationsForElement(o,i)[0];if(i&&s&&s.data){var c=s.annotationUID,d=n.sWidth,u=n.sHeight,v=Math.sqrt(d*d+u*u),f=s.data,g=n.worldToCanvas(a.toolCenter),h=a._filterAnnotationsByUniqueViewportOrientations(e,i),p=[];h.forEach((function(e){var t=e.data;t.handles.toolCenter=a.toolCenter;var o=r.getViewport(t.viewportId),i=o.getCamera(),s=a._getReferenceLineControllable(o.id),c=a._getReferenceLineDraggableRotatable(o.id),d=a._getReferenceLineSlabThicknessControlsOn(o.id),u=o.sWidth,f=o.sHeight,m=Math.sqrt(u*u+f*f),w=[.5*u,.5*f],E=o.canvasToWorld(w),y=[0,0,0];ja().cross(l.viewPlaneNormal,i.viewPlaneNormal,y),ja().normalize(y),ja().multiplyScalar(y,m);var I=[0,0,0];ja().add(E,y,I);var b=[0,0,0];ja().subtract(E,y,b);var C=[0,0,u,f],_=n.worldToCanvas(I),D=n.worldToCanvas(E),O=Ji.vec2.create();Ji.vec2.subtract(O,_,D),Ji.vec2.normalize(O,O);var T=Ji.vec2.create();Ji.vec2.scale(T,O,100*v);var S=Ji.vec2.create();Ji.vec2.scale(S,O,.25*v);var x=Ji.vec2.create();Ji.vec2.scale(x,O,.15*v);var M=Ji.vec2.create();Ji.vec2.scale(M,O,2===h.length?.04*v:0);var R=Ji.vec2.create(),N=Ji.vec2.create(),k=Ji.vec2.create(),A=Ji.vec2.create(),P=Ji.vec2.clone(g);c&&s||(P=Ji.vec2.clone(D)),Ji.vec2.add(R,P,M),Ji.vec2.add(N,P,T),Ji.vec2.subtract(k,P,M),Ji.vec2.subtract(A,P,T),Hl(R,N,C),Hl(k,A,C);var L=Ji.vec2.create();Ji.vec2.subtract(L,g,S);var U=Ji.vec2.create();Ji.vec2.add(U,g,S);var j=Ji.vec2.clone(g);!c&&d&&(j=Ji.vec2.clone(D));var V=Zn(a.toolCenter);!c&&d&&(V=Zn(E));var B=[0,0,0];ja().subtract(I,b,B),ja().normalize(B);var F=l.viewPlaneNormal,W=Ha().buildFromDegree().rotate(90,F).matrix,G=[0,0,0];Ji.vec3.transformMat4(G,B,W);var H=o.getSlabThickness(),q=[].concat(G);ja().multiplyScalar(q,H);var z=[0,0,0];ja().add(V,q,z);var K=n.worldToCanvas(z),Y=Ji.vec2.create();Ji.vec2.subtract(Y,j,K);var $=Ji.vec2.create();Ji.vec2.subtract($,j,T),Ji.vec2.add($,$,Y);var Z=Ji.vec2.create();Ji.vec2.add(Z,j,T),Ji.vec2.add(Z,Z,Y),Hl($,Z,C);var X=Ji.vec2.create();Ji.vec2.add(X,j,T),Ji.vec2.subtract(X,X,Y);var J=Ji.vec2.create();Ji.vec2.subtract(J,j,T),Ji.vec2.subtract(J,J,Y),Hl(X,J,C);var Q=Ji.vec2.create(),ee=Ji.vec2.create(),te=Ji.vec2.create(),ne=Ji.vec2.create();Ji.vec2.subtract(Q,j,x),Ji.vec2.add(Q,Q,Y),Ji.vec2.add(ee,j,x),Ji.vec2.add(ee,ee,Y),Ji.vec2.subtract(te,j,x),Ji.vec2.subtract(te,te,Y),Ji.vec2.add(ne,j,x),Ji.vec2.subtract(ne,ne,Y),p.push([o,R,N,k,A,$,Z,X,J,L,U,Q,ee,te,ne])}));var m=[],w=[],E=a._getReferenceLineColor(n.id),y=void 0!==E?E:"rgb(200, 200, 200)";p.forEach((function(e,r){var o=e[0],i=a._getReferenceLineColor(o.id),l=a._getReferenceLineControllable(o.id),s=a._getReferenceLineDraggableRotatable(o.id),d=a._getReferenceLineSlabThicknessControlsOn(o.id),u=f.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==i?i:"rgb(200, 200, 200)",g=1,h=null!==f.handles.activeOperation&&1===f.handles.activeOperation&&u;h&&(g=2.5);var p="".concat(r);if(l&&s?(p="".concat(r,"One"),Ti(t,c,p,e[1],e[2],{color:v,lineWidth:g}),p="".concat(r,"Two"),Ti(t,c,p,e[3],e[4],{color:v,lineWidth:g})):Ti(t,c,p,e[2],e[4],{color:v,lineWidth:g}),l){v=void 0!==i?i:"rgb(200, 200, 200)";var E=2===f.handles.activeOperation,y=[e[9],e[10]],I=[n.canvasToWorld(e[9]),o,e[1],e[2]],b=[n.canvasToWorld(e[10]),o,e[3],e[4]];m.push(I,b);var C=3===f.handles.activeOperation,_=[e[11],e[12],e[13],e[14]],D=[n.canvasToWorld(e[11]),o,e[5],e[6]],O=[n.canvasToWorld(e[12]),o,e[5],e[6]],T=[n.canvasToWorld(e[13]),o,e[7],e[8]],S=[n.canvasToWorld(e[14]),o,e[7],e[8]];if(w.push(D,O,T,S),h&&!E&&!C&&s&&d){var x="".concat(r,"One");Oi(t,c,x,y,{color:v,handleRadius:3,type:"circle"}),x="".concat(r,"Two"),Oi(t,c,x,_,{color:v,handleRadius:3,type:"rect"})}else if(h&&!E&&!C&&s){var M="".concat(r);Oi(t,c,M,y,{color:v,handleRadius:3,type:"circle"})}else if(u&&!E&&!C&&d){var R="".concat(r);Oi(t,c,R,_,{color:v,handleRadius:3,type:"rect"})}else if(E&&s){var N="".concat(r);Oi(t,c,N,y,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&d&&Oi(t,c,p,_,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&d&&(p="".concat(r,"STOne"),Ti(t,c,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(r,"STTwo"),Ti(t,c,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),f.handles.rotationPoints=m,f.handles.slabThicknessPoints=w,_i(t,c,"0",[.95*d,.05*u],.01*v,{color:y,fill:y})}})),H(kt(a),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),H(kt(a),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,i=t.filter((function(e){return e.data.viewportId!==n}));if(!i||!i.length)return[];var a=o.getCamera(),l=a.viewPlaneNormal,s=a.position,c=i.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(V.utilities.isEqual(n.viewPlaneNormal,l,.01)&&V.utilities.isEqual(n.position,s,1))}));return c})),H(kt(a),"_filterLinkedViewportWithSameOrientationAndScene",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=a._getReferenceLineControllable(r.id),i=t.filter((function(e){var t=e.data,i=n.getViewport(t.viewportId),l=a._getReferenceLineControllable(i.id);return r!==i&&!0===l&&!0===o}));if(!i||!i.length)return[];var l=r.getCamera(),s=l.viewPlaneNormal;return ja().normalize(s),i.filter((function(e){var t=e.data.viewportId,r=n.getViewport(t).getCamera(),o=r.viewPlaneNormal;return ja().normalize(o),V.utilities.isEqual(s,o,.01)&&V.utilities.isEqual(l.viewUp,r.viewUp,.01)}))})),H(kt(a),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;ja().normalize(o);for(var i=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0===i})),l=[],s=0;s<i.length;++s){var c=i[s],d=c.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(ja().normalize(v),!V.utilities.isEqual(o,v,.01)&&!V.utilities.isOpposite(o,v,.01)){for(var f=!1,g=0;g<l.length;++g){var h=l[g].data.viewportId,p=n.getViewport(h).getCamera();V.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&V.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(c)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0!==i})),w=0;w<m.length;++w){var E=m[w],y=E.data.viewportId,I=n.getViewport(y).getCamera(),b=I.viewPlaneNormal;if(ja().normalize(b),!V.utilities.isEqual(o,b,.01)&&!V.utilities.isOpposite(o,b,.01)){for(var C=!1,_=0;_<l.length;++_){var D=l[_].data.viewportId,O=n.getViewport(D).getCamera();V.utilities.isEqual(O.viewPlaneNormal,I.viewPlaneNormal,.01)&&V.utilities.isEqual(O.position,I.position,1)&&(C=!0)}C||l.push(E)}}for(var T=a._getAnnotationsForViewportsWithDifferentCameras(e,t),S=function(e){var t=T[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,i=n.getViewport(r).getCamera(),a=i.viewPlaneNormal;if(ja().normalize(a),V.utilities.isEqual(o,a,.01)||V.utilities.isOpposite(o,a,.01))return"continue";for(var s=!1,c=0;c<l.length;++c){var d=l[c].data.viewportId,u=n.getViewport(d).getCamera();V.utilities.isEqual(u.viewPlaneNormal,i.viewPlaneNormal,.01)&&V.utilities.isEqual(u.position,i.position,1)&&(s=!0)}s||l.push(t)},x=0;x<T.length;++x)S(x);return l})),H(kt(a),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),H(kt(a),"_jump",(function(e,t){Dt.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=de(n.element,a.getToolName()),i=[0,0,0];ja().subtract(t,a.toolCenter,i);var l=a._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),i=a._checkIfViewportsRenderingSameScene(n,o);return a._getReferenceLineControllable(o.id)&&a._getReferenceLineDraggableRotatable(o.id)&&i}));return 0===l.length?(Dt.isInteractingWithTool=!1,!1):(a._applyDeltaShiftToSelectedViewportCameras(r,l,i),Dt.isInteractingWithTool=!1,!0)})),H(kt(a),"_activateModify",(function(e){Dt.isInteractingWithTool=!0,e.addEventListener(B.MOUSE_UP,a._mouseUpCallback),e.addEventListener(B.MOUSE_DRAG,a._mouseDragCallback),e.addEventListener(B.MOUSE_CLICK,a._mouseUpCallback)})),H(kt(a),"_deactivateModify",(function(e){Dt.isInteractingWithTool=!1,e.removeEventListener(B.MOUSE_UP,a._mouseUpCallback),e.removeEventListener(B.MOUSE_DRAG,a._mouseDragCallback),e.removeEventListener(B.MOUSE_CLICK,a._mouseUpCallback)})),H(kt(a),"_mouseUpCallback",(function(e){var t=e.detail.element;a.editData.annotation.highlighted=!1,a.editData.annotation.data.handles.activeOperation=null,a.editData.annotation.data.activeViewportIds=[],a._deactivateModify(t),ai(t),a.editData=null;var n=(0,V.getEnabledElement)(t).renderingEngine,r=el(t,a.getToolName(),!1);Fr(n,r)})),H(kt(a),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,V.getEnabledElement)(r),i=o.renderingEngine,l=o.viewport,s=de(r,a.getToolName()),c=a.filterInteractableAnnotationsForElement(r,s)[0];if(c){var d=c.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=a._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId);return c.data.activeViewportIds.find((function(e){return e===n.id}))}));a._applyDeltaShiftToSelectedViewportCameras(i,v,n)}else if(2===d.activeOperation){var f=a._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data;t.handles.toolCenter=p;var n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=Ji.vec2.create(),h=Ji.vec2.create(),p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,E=Ji.vec2.create();Ji.vec2.sub(E,w,t.deltaPoints.canvas),Ji.vec2.sub(g,E,m),Ji.vec2.sub(h,w,m);var y=Ji.vec2.angle(g,h);a._isClockWise(m,E,w)&&(y*=-1),y=Math.round(100*y)/100;var I=l.getCamera().viewPlaneNormal,b=Ha().buildFromRadian().translate(p[0],p[1],p[2]).rotate(y,I).translate(-p[0],-p[1],-p[2]).matrix,C=[];f.forEach((function(e){var t=e.data;t.handles.toolCenter=p;var n=i.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,a=r.position,l=r.focalPoint;o[0]+=a[0],o[1]+=a[1],o[2]+=a[2],Ji.vec3.transformMat4(l,l,b),Ji.vec3.transformMat4(a,a,b),Ji.vec3.transformMat4(o,o,b),o[0]-=a[0],o[1]-=a[1],o[2]-=a[2],n.setCamera({position:a,viewUp:o,focalPoint:l}),C.push(n.id)})),i.renderViewports(C)}else 3===d.activeOperation&&s.filter((function(e){var t=e.data,n=i.getViewport(t.viewportId);return c.data.activeViewportIds.find((function(e){return e===n.id}))})).forEach((function(e){var r=e.data,o=i.getViewport(r.viewportId),s=o.getCamera().viewPlaneNormal,d=ja().dot(n,s),v=Zn(s);if(ja().multiplyScalar(v,d),Math.abs(v[0])>.001||Math.abs(v[1])>.001||Math.abs(v[2])>.001){var f=Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]),g=t.lastPoints.world,h=[0,0,0],p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]];if(!a._getReferenceLineDraggableRotatable(o.id)){var m=a.editData.annotation.data.handles.rotationPoints.filter((function(e){return e[1].uid===o.id}));if(2===m.length){var w=l.canvasToWorld(m[0][3]),E=l.canvasToWorld(m[1][3]);ja().add(w,E,p),ja().multiplyScalar(p,.5)}}ja().subtract(g,p,h);var y=ja().dot(h,s),I=Zn(s);ja().multiplyScalar(I,y);var b=[I[0],I[1],I[2]];Ji.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];Ji.vec3.normalize(C,C);var _=o.getSlabThickness();V.utilities.isOpposite(b,C,.001)?_-=f:_+=f,_=Math.abs(_),_=Math.max(.1,_),a._pointNearReferenceLine(c,u,6,o)?o.setSlabThickness(null):o.setSlabThickness(_),o.render()}}))}}})),H(kt(a),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,i=0;i<o.length-1;++i){var l=o[i][1];if(l.id===r.id&&a._getReferenceLineControllable(l.id)){var s={start:{x:o[i][2][0],y:o[i][2][1]},end:{x:o[i][3][0],y:o[i][3][1]}},c=wa([s.start.x,s.start.y],[s.end.x,s.end.y],[t[0],t[1]]),d={start:{x:o[i+1][2][0],y:o[i+1][2][1]},end:{x:o[i+1][3][0],y:o[i+1][3][1]}},u=wa([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(c<=n||u<=n)return!0;i++}}return!1})),a._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||ql,a._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||zl,a._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Kl,a._getReferenceLineSlabThicknessControlsOn=(null===(i=l.configuration)||void 0===i?void 0:i.getReferenceLineSlabThicknessControlsOn)||Yl,a}return G(o,[{key:"onSetToolActive",value:function(){this.init()}},{key:"onSetToolPassive",value:function(){this.init()}},{key:"onSetToolEnabled",value:function(){this.init()}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==i||null!==(i=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?i:void 0}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.sWidth,i=r.sHeight,a=r.canvasToWorld([0,0]),l=r.canvasToWorld([o,i]),s=r.canvasToWorld([o,0]),c=r.canvasToWorld([0,i]),d=Math.min(a[0],l[0],s[0],c[0]),u=Math.max(a[0],l[0],s[0],c[0]),v=Math.min(a[1],l[1],s[1],c[1]),f=Math.max(a[1],l[1],s[1],c[1]),g=Math.min(a[2],l[2],s[2],c[2]),h=Math.max(a[2],l[2],s[2],c[2]),p=this.configuration.autoPan.panSize;if(this.toolCenter[0]<d-$l)n=[d-this.toolCenter[0]+p,0,0];else if(this.toolCenter[0]>u+$l)n=[u-this.toolCenter[0]-p,0,0];else if(this.toolCenter[1]<v-$l)n=[0,v-this.toolCenter[1]+p,0];else if(this.toolCenter[1]>f+$l)n=[0,f-this.toolCenter[1]-p,0];else if(this.toolCenter[2]<g-$l)n=[0,0,g-this.toolCenter[2]+p];else{if(!(this.toolCenter[2]>h+$l))return;n=[0,0,h-this.toolCenter[2]-p]}var m=r.getCamera(),w=m.focalPoint,E=m.position,y=[E[0]-n[0],E[1]-n[1],E[2]-n[2]],I=[w[0]-n[0],w[1]-n[1],w[2]-n[2]];r.setCamera({focalPoint:I,position:y}),r.render()}},{key:"_isClockWise",value:function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])>0}},{key:"_applyDeltaShiftToSelectedViewportCameras",value:function(e,t,n){var r=this;t.forEach((function(t){r._applyDeltaShiftToViewportCamera(e,t,n)}))}},{key:"_applyDeltaShiftToViewportCamera",value:function(e,t,n){var r=t.data,o=e.getViewport(r.viewportId),i=o.getCamera(),a=i.viewPlaneNormal,l=ja().dot(n,a),s=Zn(a);if(ja().multiplyScalar(s,l),Math.abs(s[0])>.001||Math.abs(s[1])>.001||Math.abs(s[2])>.001){var c=[0,0,0],d=[0,0,0];ja().add(i.focalPoint,s,c),ja().add(i.position,s,d),o.setCamera({focalPoint:c,position:d}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.rotationPoints,a=0;a<i.length;a++){var l=i[a][0],s=i[a][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineDraggableRotatable(s.id)){var c=e.worldToCanvas(l);if(Ji.vec2.distance(n,c)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.slabThicknessPoints,a=0;a<i.length;a++){var l=i[a][0],s=i[a][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineSlabThicknessControlsOn(s.id)){var c=e.worldToCanvas(l);if(Ji.vec2.distance(n,c)<r)return o.handles.activeOperation=3,o.activeViewportIds=[s.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,i=(0,V.getEnabledElement)(e).viewport,a=i.sWidth,l=i.sHeight,s=Math.sqrt(a*a+l*l),c=t.data,d=c.handles.rotationPoints,u=c.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=wa([m.start.x,m.start.y],[m.end.x,m.end.y],[n[0],n[1]]),E={start:{x:d[f+1][2][0],y:d[f+1][2][1]},end:{x:d[f+1][3][0],y:d[f+1][3][1]}},y=wa([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(w<=r||y<=r)&&(v.push(g.id),c.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var i=o._getReferenceLineControllable(t.id),a=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!i||!a)return b=e,"continue";var l=u[e][2],d=u[e][3],f=Ji.vec2.create();Ji.vec2.add(f,l,d),Ji.vec2.scale(f,f,.5);var g=Ji.vec2.create();Ji.vec2.subtract(g,l,f),Ji.vec2.normalize(g,g);var h=Ji.vec2.create();Ji.vec2.scale(h,g,.05*s);var p=Ji.vec2.create(),m=Ji.vec2.create();Ji.vec2.add(p,f,h),Ji.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},E=wa([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]),y={start:{x:m[0],y:m[1]},end:{x:d[0],y:d[1]}},I=wa([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(E<=r||I<=r)&&(v.push(t.id),c.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return c.activeViewportIds=[].concat(v),this.editData={annotation:t},1===c.handles.activeOperation}}]),o}(Nl);function Xl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Jl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xl(Object(n),!0).forEach((function(t){H(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}H(Zl,"toolName","Crosshairs");var Ql=V.utilities.transformWorldToIndex,es=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"editData",void 0),H(kt(e),"eventDispatchDetail",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{points:[Zn(a)]},cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(i,g);var h=el(i,e.getToolName());return e.editData={annotation:g,newAnnotation:!0,viewportIdsToRender:h},e._activateModify(i),li(i),t.preventDefault(),Fr(c,h),g})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation;o.highlighted=!1;var l=(0,V.getEnabledElement)(n),s=l.renderingEngine,c=l.viewportId;if(e.eventDispatchDetail={viewportId:c,renderingEngineId:s.id},e._deactivateModify(n),ai(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),Fr(s,i),a){var d=B.ANNOTATION_COMPLETED,u={annotation:o};(0,V.triggerEvent)(V.eventTarget,d,u)}})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=e.editData,l=a.annotation,s=a.viewportIdsToRender;l.data.handles.points[0]=Zn(i),l.invalidated=!0;var c=(0,V.getEnabledElement)(o).renderingEngine;Fr(c,s)})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(l,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=e.getTargetId(a),d=a.getRenderingEngine(),u=0;u<s.length;u++){var v=s[u],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,p=h.handles.points[0],m=a.worldToCanvas(p),w=e.getStyle(f,"color",v);if(h.cachedStats[c]?v.invalidated&&(e._calculateCachedStats(v,d,t),a instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,index:null,value:null},e._calculateCachedStats(v,d,t)),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");Oi(n,g,"0",[m],{color:w});var E=e._getTextLines(h,c);if(E){var y=[m[0]+6,m[1]-6];ki(n,g,"0",E,[y[0],y[1]],e.getLinkedTextBoxStyle(f,v))}}})),e}return G(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=t.data.handles.points[0],a=o.worldToCanvas(i);if(!0==Ji.vec2.distance(n,a)<r)return i}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=el(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),li(r);var i=(0,V.getEnabledElement)(r).renderingEngine;Fr(i,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.index,o=n.Modality,i=n.value,a=n.SUVBw,l=n.SUVLbm,s=n.SUVBsa;if(void 0!==i||void 0!==a){var c=[];return c.push("(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")")),"PT"===o?i?c.push("".concat(i.toFixed(2)," SUV")):(c.push("".concat(a.toFixed(2)," SUV bw")),l&&c.push("".concat(l.toFixed(2)," SUV lbm")),s&&c.push("".concat(s.toFixed(2)," SUV bsa"))):"CT"===o?c.push("".concat(i.toFixed(2)," HU")):c.push("".concat(i.toFixed(2)," MO")),c}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if("PT"===n)if(t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,i=o.suvbwToSuvlbm,a=o.suvbwToSuvbsa;if(r.SUVBw=e,i){var l=e*i;r.SUVLbm=l}if(i){var s=e*a;r.SUVBsa=s}}else r.value=e;else r.value=e;return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.cachedStats,s=Object.keys(l),c=0;c<s.length;c++){var d=s[c],u=this.getTargetIdImage(d,t),v=u.dimensions,f=u.scalarData,g=u.imageData,h=u.metadata.Modality,p=Ql(g,a);if(p[0]=Math.round(p[0]),p[1]=Math.round(p[1]),p[2]=Math.round(p[2]),V.utilities.indexWithinDimensions(p,v)){this.isHandleOutsideImage=!1;var m=v[0],w=v[0]*v[1],E=f[p[2]*w+p[1]*m+p[0]];d.startsWith("imageId:")&&function(){var e=(0,V.getRenderingEngine)(i).getStackViewports(),t=d.split("imageId:")[1],n=e.find((function(e){return e.hasImageId(t)}));p[2]=n.getCurrentImageIdIndex()}();var y=this._getValueForModality(E,u,h);l[d]=Jl(Jl({index:p},y),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[d]={index:p,Modality:h};e.invalidated=!1;var I=B.ANNOTATION_MODIFIED,b={annotation:e,viewportId:o,renderingEngineId:i};(0,V.triggerEvent)(V.eventTarget,I,b)}return l}}]),o}(Nl);H(es,"toolName","Probe");var ts=V.utilities.transformWorldToIndex,ns=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{points:[Zn(a),Zn(a),Zn(a),Zn(a)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};V.Settings.getObjectSettings(g,o),ue(i,g);var h=el(i,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),li(i),t.preventDefault(),Fr(c,h),g})),H(kt(e),"isPointNearTool",(function(t,n,r,o){var i=(0,V.getEnabledElement)(t).viewport,a=n.data.handles.points,l=i.worldToCanvas(a[0]),s=i.worldToCanvas(a[3]),c=e._getRectangleImageCoordinates([l,s]),d=[r[0],r[1]];return Ia([c.left,c.top,c.width,c.height],d)<=o})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),li(o);var a=(0,V.getEnabledElement)(o).renderingEngine;Fr(a,i),t.preventDefault()})),H(kt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var s=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:s,handleIndex:a,movingTextBox:l},e._activateModify(o),li(o);var c=(0,V.getEnabledElement)(o).renderingEngine;Fr(c,s),t.preventDefault()})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,s=o.data;if(!a||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),ai(n);var c=(0,V.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),Fr(c,i),a){var d=B.ANNOTATION_COMPLETED,u={annotation:o};(0,V.triggerEvent)(V.eventTarget,d,u)}}})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=i.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g,h,p,m,w,E,y,I,b=n.currentPoints,C=(0,V.getEnabledElement)(r).viewport,_=C.worldToCanvas,D=C.canvasToWorld,O=b.world,T=c.handles.points;switch(T[l]=Zn(O),l){case 0:case 3:g=_(T[0]),h=[(m=_(T[3]))[0],g[1]],p=[g[0],m[1]],E=D(h),y=D(p),T[1]=E,T[2]=y;break;case 1:case 2:h=_(T[1]),g=[(p=_(T[2]))[0],h[1]],m=[h[0],p[1]],w=D(g),I=D(m),T[0]=w,T[3]=I}i.invalidated=!0}e.editData.hasMoved=!0;var S=(0,V.getEnabledElement)(r).renderingEngine;Fr(S,a)})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateDraw",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(l,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=e.getTargetId(a),d=a.getRenderingEngine(),u=0;u<s.length;u++){var v=s[u],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return a.worldToCanvas(e)})),y=e.getStyle(f,"lineWidth",v),I=e.getStyle(f,"lineDash",v),b=e.getStyle(f,"color",v),C=a.getCamera(),_=C.viewPlaneNormal,D=C.viewUp;if(h.cachedStats[c]?v.invalidated&&(e._throttledCalculateCachedStats(v,_,D,d,t),a instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null},e._calculateCachedStats(v,_,D,d,t)),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var O=void 0;X(v)||e.editData||null===w||(O=[E[w]]),O&&Oi(n,g,"0",O,{color:b}),Vi(n,g,"0",E[0],E[3],{color:b,lineDash:I,lineWidth:y});var T=e._getTextLines(h,c);if(T&&0!==T.length){if(!h.handles.textBox.hasMoved){var S=da(E);h.handles.textBox.worldPosition=a.canvasToWorld(S)}var x=a.worldToCanvas(h.handles.textBox.worldPosition),M=ji(n,g,"1",T,x,E,{},e.getLinkedTextBoxStyle(f,v)),R=M.x,N=M.y,k=M.width,A=M.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([R,N]),topRight:a.canvasToWorld([R+k,N]),bottomLeft:a.canvasToWorld([R,N+A]),bottomRight:a.canvasToWorld([R+k,N+A])}}}})),H(kt(e),"_getRectangleImageCoordinates",(function(e){var t=Ai(e,2),n=t[0],r=t[1];return{left:Math.min(n[0],r[0]),top:Math.min(n[1],r[1]),width:Math.abs(n[0]-r[0]),height:Math.abs(n[1]-r[1])}})),H(kt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,i=n.max,a=n.stdDev,l=n.Modality;if(void 0!==o){var s=[],c="Area: ".concat(r.toFixed(2)," mm").concat(String.fromCharCode(178)),d="Mean: ".concat(o.toFixed(2)),u="Max: ".concat(i.toFixed(2)),v="Std Dev: ".concat(a.toFixed(2));return"PT"===l?(d+=" SUV",u+=" SUV",v+=" SUV"):"CT"===l?(d+=" HU",u+=" HU",v+=" HU"):(d+=" MO",u+=" MO",v+=" MO"),s.push(c),s.push(u),s.push(d),s.push(v),s}})),H(kt(e),"_calculateCachedStats",(function(t,n,r,o,i){for(var a=t.data,l=i.viewportId,s=i.renderingEngineId,c=a.handles.points[0],d=a.handles.points[3],u=a.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o),p=h.dimensions,m=h.scalarData,w=h.imageData,E=h.metadata,y=ts(w,c);y[0]=Math.floor(y[0]),y[1]=Math.floor(y[1]),y[2]=Math.floor(y[2]);var I=ts(w,d);if(I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]),e._isInsideVolume(y,I,p)){e.isHandleOutsideImage=!1;for(var b=Math.min(y[0],I[0]),C=Math.max(y[0],I[0]),_=Math.min(y[1],I[1]),D=Math.max(y[1],I[1]),O=Math.min(y[2],I[2]),T=Math.max(y[2],I[2]),S=Pa(n,r,c,d),x=S.worldWidth*S.worldHeight,M=0,R=0,N=0,k=-1/0,A=p[0],P=p[0]*p[1],L=O;L<=T;L++)for(var U=_;U<=D;U++)for(var j=b;j<=C;j++){var F=m[L*P+U*A+j];F>k&&(k=F),M++,R+=F}R/=M;for(var W=O;W<=T;W++)for(var G=_;G<=D;G++)for(var H=b;H<=C;H++){var q=m[W*P+G*A+H]-R;N+=q*q}N/=M,N=Math.sqrt(N),u[g]={Modality:E.Modality,area:x,mean:R,stdDev:N,max:k}}else e.isHandleOutsideImage=!0,u[g]={Modality:E.Modality}}t.invalidated=!1;var z=B.ANNOTATION_MODIFIED,K={annotation:t,viewportId:l,renderingEngineId:s};return(0,V.triggerEvent)(V.eventTarget,z,K),u})),H(kt(e),"_isInsideVolume",(function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Ki(e._calculateCachedStats,100,{trailing:!0}),e}return G(o)}(Nl);function rs(e,t,n,r){var o=Ji.vec3.create();Ji.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var i=Ji.vec3.fromValues.apply(Ji.vec3,Zn(n)),a=Ji.vec3.fromValues.apply(Ji.vec3,Zn(r)),l=Ji.vec3.create();Ji.vec3.subtract(l,i,a);var s=Ji.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ji.vec3.dot(l,o)/(s*Ji.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}H(ns,"toolName","RectangleROI");var os=V.utilities.transformWorldToIndex,is=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",!1),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=r.canvas,s=(0,V.getEnabledElement)(i),c=s.viewport,d=s.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getReferencedImageId(c,a,v,f),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(v),viewUp:Zn(f),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:g},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null},cachedStats:{}}};V.Settings.getObjectSettings(h,o),ue(i,h);var p=el(i,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:p,centerCanvas:l,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),li(i),t.preventDefault(),Fr(d,p),h})),H(kt(e),"isPointNearTool",(function(t,n,r,o){var i=(0,V.getEnabledElement)(t).viewport,a=Ai(ha(n.data.handles.points.map((function(e){return i.worldToCanvas(e)}))),2),l=a[0],s=a[1],c={left:Math.min(l[0],s[0])+o/2,top:Math.min(l[1],s[1])+o/2,width:Math.abs(l[0]-s[0])-o,height:Math.abs(l[1]-s[1])-o},d={left:Math.min(l[0],s[0])-o/2,top:Math.min(l[1],s[1])-o/2,width:Math.abs(l[0]-s[0])+o,height:Math.abs(l[1]-s[1])+o},u=e._pointInEllipseCanvas(c,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},li(o),e._activateModify(o);var a=(0,V.getEnabledElement)(o).renderingEngine;Fr(a,i),t.preventDefault()})),H(kt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l,s,c,d,u=!1;if(r.worldPosition)u=!0;else{var v=i.handles.points,f=(0,V.getEnabledElement)(o).viewport.worldToCanvas;a=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[a],s=Math.abs(g[2][0]-g[3][0]),c=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:a,canvasWidth:s,canvasHeight:c,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),li(o);var p=(0,V.getEnabledElement)(o).renderingEngine;Fr(p,h),t.preventDefault()})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,s=o.data;if(!a||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),ai(n);var c=(0,V.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),Fr(c,i),a){var d=B.ANNOTATION_COMPLETED,u={annotation:o};(0,V.triggerEvent)(V.eventTarget,d,u)}}})),H(kt(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,V.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],c.invalidated=!0,e.editData.hasMoved=!0,Fr(a,d)})),H(kt(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=i.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else e._dragHandle(t),i.invalidated=!0;var g=(0,V.getEnabledElement)(r).renderingEngine;Fr(g,a)})),H(kt(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,V.getEnabledElement)(r).viewport.canvasToWorld,i=e.editData,a=i.annotation,l=i.canvasWidth,s=i.canvasHeight,c=i.handleIndex,d=i.centerCanvas,u=i.originalHandleCanvas,v=a.data.handles.points,f=n.currentPoints.canvas;if(0===c||1===c){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],E=[d[0]+m,d[1]];v[2]=o(w),v[3]=o(E)}else{var y=Math.abs(f[0]-d[0]),I=[d[0]-y,d[1]],b=[d[0]+y,d[1]];v[2]=o(I),v[3]=o(b);var C=s/2+(f[1]-u[1]),_=[d[0],d[1]-C],D=[d[0],d[1]+C];v[0]=o(_),v[1]=o(D)}})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_activateDraw",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(B.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(B.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(l,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=e.getTargetId(a),d=a.getRenderingEngine(),u=0;u<s.length;u++){var v=s[u],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=e.getStyle(f,"lineWidth",v),y=e.getStyle(f,"lineDash",v),I=e.getStyle(f,"color",v),b=m.map((function(e){return a.worldToCanvas(e)})),C=ha(b);if(h.cachedStats[c]?v.invalidated&&(e._throttledCalculateCachedStats(v,a,d,t),a instanceof V.VolumeViewport&&function(){var e=v.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=V.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=V.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null},e._calculateCachedStats(v,a,d,t)),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var _=void 0;X(v)||e.editData||null===w||(_=[b[w]]),_&&Oi(n,g,"0",_,{color:I}),Di(n,g,"0",C[0],C[1],{color:I,lineDash:y,lineWidth:E});var D=e._getTextLines(h,c);if(D&&0!==D.length){var O=void 0;h.handles.textBox.hasMoved||(O=da(C),h.handles.textBox.worldPosition=a.canvasToWorld(O));var T=a.worldToCanvas(h.handles.textBox.worldPosition),S=ji(n,g,"1",D,T,b,{},e.getLinkedTextBoxStyle(f,v)),x=S.x,M=S.y,R=S.width,N=S.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([x,M]),topRight:a.canvasToWorld([x+R,M]),bottomLeft:a.canvasToWorld([x,M+N]),bottomRight:a.canvasToWorld([x+R,M+N])}}}})),H(kt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,i=n.stdDev,a=n.max,l=n.isEmptyArea,s=n.Modality;if(void 0!==o){var c=[],d=l?"Area: Oblique not supported":"Area: ".concat(r.toFixed(2)," mm").concat(String.fromCharCode(178)),u="Mean: ".concat(o.toFixed(2)),v="Max: ".concat(a.toFixed(2)),f="Std Dev: ".concat(i.toFixed(2));return"PT"===s?(u+=" SUV",v+=" SUV",f+=" SUV"):"CT"===s?(u+=" HU",v+=" HU",f+=" HU"):(u+=" MO",v+=" MO",f+=" MO"),c.push(d),c.push(v),c.push(u),c.push(f),c}})),H(kt(e),"_calculateCachedStats",(function(t,n,r,o){for(var i=t.data,a=o.viewportId,l=o.renderingEngineId,s=i.handles.points.map((function(e){return n.worldToCanvas(e)})),c=n.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=Ai(ha(s),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=i.cachedStats,w=Object.keys(m),E=h,y=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r),_=C.dimensions,D=C.imageData,O=C.metadata,T=os(D,E);T[0]=Math.floor(T[0]),T[1]=Math.floor(T[1]),T[2]=Math.floor(T[2]);var S=os(D,y);S[0]=Math.floor(S[0]),S[1]=Math.floor(S[1]),S[2]=Math.floor(S[2]),e._isInsideVolume(T,S,_)?function(){var e=[[Math.min(T[0],S[0]),Math.max(T[0],S[0])],[Math.min(T[1],S[1]),Math.max(T[1],S[1])],[Math.min(T[2],S[2]),Math.max(T[2],S[2])]],t={center:[(h[0]+p[0])/2,(h[1]+p[1])/2,(h[2]+p[2])/2],xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},n=rs(d,u,E,y),r=n.worldWidth,o=n.worldHeight,i=0===r&&0===o,a=Math.PI*(r/2)*(o/2),l=0,s=0,c=0,v=-1/0;Qi(D,(function(e,n){return ga(t,e)}),(function(e){var t=e.value;t>v&&(v=t),s+=t,l+=1}),e),s/=l,Qi(D,(function(e,n){return ga(t,e)}),(function(e){var t=e.value-s;c+=t*t}),e),c/=l,c=Math.sqrt(c),m[b]={Modality:O.Modality,area:a,mean:s,max:v,stdDev:c,isEmptyArea:i}}():(e.isHandleOutsideImage=!0,m[b]={Modality:O.Modality})}t.invalidated=!1;var x=B.ANNOTATION_MODIFIED,M={annotation:t,viewportId:a,renderingEngineId:l};return(0,V.triggerEvent)(V.eventTarget,x,M),m})),H(kt(e),"_isInsideVolume",(function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Ki(e._calculateCachedStats,100,{trailing:!0}),e}return G(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],i=[t[0]-o[0],t[1]-o[1]];return i[0]*i[0]/(n*n)+i[1]*i[1]/(r*r)<=1}}]),o}(Nl);H(is,"toolName","EllipticalROI");var as=V.utilities.transformWorldToIndex,ls=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"preventHandleOutsideImage",void 0),H(kt(e),"isPointNearTool",(function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=t.data.handles.points,a=o.worldToCanvas(i[0]),l=o.worldToCanvas(i[1]),s={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}},c=wa([s.start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]);return c<=r||(a=o.worldToCanvas(i[2]),l=o.worldToCanvas(i[3]),(c=wa([(s={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}}).start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]))<=r)})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o);var a=(0,V.getEnabledElement)(o).renderingEngine;Fr(a,i),li(o),t.preventDefault()})),H(kt(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var s=el(o,e.getToolName());li(o),e.editData={annotation:n,viewportIdsToRender:s,handleIndex:a,movingTextBox:l},e._activateModify(o);var c=(0,V.getEnabledElement)(o).renderingEngine;Fr(c,s),t.preventDefault()})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,s=o.data;if(!a||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),ai(n);var c=(0,V.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=s.handles.points,u=Ji.vec3.distance(d[0],d[1]);if(Ji.vec3.distance(d[2],d[3])>u){var v=[Zn(d[2]),Zn(d[3])],f=Zn(d[0]),g=Zn(d[1]),h=Ji.vec2.create();Ji.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=Ji.vec2.create();Ji.vec2.set(p,-h[1],h[0]);var m,w=Ji.vec2.create();Ji.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=Ji.vec2.dot(w,p)>0?[f,g]:[g,f],s.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),Fr(c,i),a){var E=B.ANNOTATION_COMPLETED,y={annotation:o};(0,V.triggerEvent)(V.eventTarget,E,y)}e.editData=null,e.isDrawing=!1}})),H(kt(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=(0,V.getEnabledElement)(o),a=i.renderingEngine,l=i.viewport,s=l.worldToCanvas,c=e.editData,d=c.annotation,u=c.viewportIdsToRender,v=c.handleIndex,f=d.data,g=r.world;f.handles.points[v]=Zn(g);var h=f.handles.points.map(s),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],Ji.vec2.distance(h[0],h[1])/3),E=p.x-m.x,y=p.y-m.y,I=Math.sqrt(E*E+y*y),b=E/I,C=y/I,_=(p.x+m.x)/2,D=(p.y+m.y)/2,O=_+w*C,T=D-w*b,S=_-w*C,x=D+w*b;f.handles.points[2]=l.canvasToWorld([O,T]),f.handles.points[3]=l.canvasToWorld([S,x]),d.invalidated=!0,Fr(a,u),e.editData.hasMoved=!0})),H(kt(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,V.getEnabledElement)(r).renderingEngine,i=e.editData,a=i.annotation,l=i.viewportIdsToRender,s=i.handleIndex,c=i.movingTextBox,d=a.data;if(c){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===s){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),a.invalidated=!0}else e._mouseDragModifyHandle(t),a.invalidated=!0;Fr(o,l)})),H(kt(e),"_mouseDragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(0,V.getEnabledElement)(o).viewport,a=e.editData,l=a.annotation,s=a.handleIndex,c=l.data,d=r.world,u=[i.worldToCanvas(c.handles.points[0]),i.worldToCanvas(c.handles.points[1]),i.worldToCanvas(c.handles.points[2]),i.worldToCanvas(c.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=Zn(d),h=i.worldToCanvas(g);if(0===s||1===s){var p=u[0===s?1:0],m={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(m,f))return;var w=ya([f.start.x,f.start.y],[f.end.x,f.end.y],[v.start.x,v.start.y],[v.end.x,v.end.y]),E=Ji.vec2.create();Ji.vec2.set(E,w[0],w[1]);var y=Ji.vec2.distance(u[2],E),I=Ji.vec2.distance(u[3],E),b=Math.abs(Ji.vec2.distance(p,E)),C=p[0]-h[0],_=p[1]-h[1],D=Math.sqrt(C*C+_*_),O=C/D,T=_/D,S=p[0]-b*O,x=p[1]-b*T,M=0===s?-1:1,R=S+y*T*M,N=x-y*O*M,k=S-I*T*M,A=x+I*O*M;c.handles.points[s]=g,c.handles.points[2]=i.canvasToWorld([R,N]),c.handles.points[3]=i.canvasToWorld([k,A])}else{var P=2===s?3:2,L={x:h[0],y:h[1]},U={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},j=U.longLineSegment.start.x-U.longLineSegment.end.x,B=U.longLineSegment.start.y-U.longLineSegment.end.y,F=Math.sqrt(j*j+B*B),W=j/F,G=B/F,H=(0===s||3===s?1:-1)*Number.MAX_SAFE_INTEGER,q={start:L,end:{x:L.x+G*H,y:L.y+W*H*-1}},z=ya([U.longLineSegment.start.x,U.longLineSegment.start.y],[U.longLineSegment.end.x,U.longLineSegment.end.y],[q.start.x,q.start.y],[q.end.x,q.end.y]);if(void 0===z)return;var K=Ji.vec2.distance(u[P],[z[0],z[1]]),Y={start:{x:z[0]+G*K,y:z[1]+W*K*-1},end:{x:z[0]+G*K*-1,y:z[1]+W*K}},$=2===P?Y.start:Y.end;c.handles.points[P]=i.canvasToWorld([$.x,$.y]),c.handles.points[s]=g}})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateDraw",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(B.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(B.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(a.element,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=e.getTargetId(a),d=a.getRenderingEngine(),u=0;u<s.length;u++){var v=s[u],f=V.Settings.getObjectSettings(v,o),g=v.annotationUID,h=v.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return a.worldToCanvas(e)})),y=e.getStyle(f,"lineWidth",v),I=e.getStyle(f,"lineDash",v),b=e.getStyle(f,"color",v);if(h.cachedStats[c]?v.invalidated&&e._throttledCalculateCachedStats(v,d,t):(h.cachedStats[c]={length:null,width:null},e._calculateCachedStats(v,d,t)),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var C=void 0;X(v)||e.editData||null===w||(C=[E[w]]),C&&Oi(n,g,"0",C,{color:b}),Ti(n,g,"0",E[0],E[1],{color:b,lineDash:I,lineWidth:y}),Ti(n,g,"1",E[2],E[3],{color:b,lineDash:I,lineWidth:y});var _=e._getTextLines(h,c);if(_&&0!==_.length){var D=void 0;h.handles.textBox.hasMoved||(D=da(E),h.handles.textBox.worldPosition=a.canvasToWorld(D));var O=a.worldToCanvas(h.handles.textBox.worldPosition),T=ji(n,g,"1",_,O,E,{},e.getLinkedTextBoxStyle(f,v)),S=T.x,x=T.y,M=T.width,R=T.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([S,x]),topRight:a.canvasToWorld([S+M,x]),bottomLeft:a.canvasToWorld([S,x+R]),bottomRight:a.canvasToWorld([S+M,x+R])}}}})),H(kt(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=Ji.vec2.create();Ji.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),Ji.vec2.normalize(n,n);var r={start:{x:t.start.x-10*n[0],y:t.start.y-10*n[1]},end:{x:t.end.x+10*n[0],y:t.end.y+10*n[1]}};return!ya([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),H(kt(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width;if(void 0!==r)return["L: ".concat(r.toFixed(2)," mm"),"W: ".concat(o.toFixed(2)," mm")]})),H(kt(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,i=r.viewportId,a=r.renderingEngineId,l=o.handles.points[0],s=o.handles.points[1],c=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n),p=h.imageData,m=h.dimensions,w=e._calculateLength(l,s),E=e._calculateLength(c,d),y=w>E?w:E,I=w>E?E:w,b=as(p,l),C=as(p,s),_=as(p,c),D=as(p,d);e._isInsideVolume(b,C,_,D,m)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,u[g]={length:y,width:I}}t.invalidated=!1;var O=B.ANNOTATION_MODIFIED,T={annotation:t,viewportId:i,renderingEngineId:a};return(0,V.triggerEvent)(V.eventTarget,O,T),u})),H(kt(e),"_isInsideVolume",(function(e,t,n,r,o){return V.utilities.indexWithinDimensions(e,o)&&V.utilities.indexWithinDimensions(t,o)&&V.utilities.indexWithinDimensions(n,o)&&V.utilities.indexWithinDimensions(r,o)})),e._throttledCalculateCachedStats=Ki(e._calculateCachedStats,100,{trailing:!0}),e}return G(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,i=n.world,a=(0,V.getEnabledElement)(r),l=a.viewport,s=a.renderingEngine;this.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=this.getReferencedImageId(l,i,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:Zn(d),viewUp:Zn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Zn(i),Zn(i),Zn(i),Zn(i)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};V.Settings.getObjectSettings(f,o),ue(r,f);var g=el(r,this.getToolName());return this.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),li(r),e.preventDefault(),Fr(s,g),f}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}}]),o}(Nl);H(ls,"toolName","Bidirectional");var ss=Ma,cs=xa,ds=ba,us=Sa;function vs(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,V.getEnabledElement)(i).viewport,s=us(l,this.configuration.subPixelResolution),c=s.spacing,d=s.xDir,u=s.yDir;this.drawData={canvasPoints:[a],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:c,xDir:d,yDir:u},Dt.isInteractingWithTool=!0,i.addEventListener(B.MOUSE_UP,this.mouseUpDrawCallback),i.addEventListener(B.MOUSE_DRAG,this.mouseDragDrawCallback),i.addEventListener(B.MOUSE_CLICK,this.mouseUpDrawCallback),li(i)}function fs(e){Dt.isInteractingWithTool=!1,e.removeEventListener(B.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(B.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(B.MOUSE_CLICK,this.mouseUpDrawCallback),ai(e)}function gs(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,V.getEnabledElement)(r),l=a.renderingEngine,s=a.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=s.canvasToWorld(m),E=Ji.vec3.create();Ji.vec3.subtract(E,o,w);var y=Math.abs(Ji.vec3.dot(E,u)),I=Math.abs(Ji.vec3.dot(E,v));if(!(y<=f[0]&&I<=f[1])){var b=this.findCrossingIndexDuringCreate(e);if(void 0!==b)this.applyCreateOnCross(e,b);else{var C=ss(r,p,i,this.commonData);this.drawData.polylineIndex=h+C}Fr(l,d)}}function hs(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!cs(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function ps(e){this.removeCrossedLinesOnCompleteDraw();var t=this.drawData.canvasPoints,n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=e.detail.element,a=(0,V.getEnabledElement)(i),l=a.viewport,s=a.renderingEngine;ss(i,t,t[0],this.commonData),t.pop();var c=t.map((function(e){return l.canvasToWorld(e)}));r.data.polyline=c,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Fr(s,o),this.deactivateDraw(i)}function ms(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=ds(r,n[0],n[1],!1);if(o){var i=o[1];this.drawData.canvasPoints=e.splice(0,i)}}function ws(e){var t=this.drawData.canvasPoints,n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=e.detail.element,a=(0,V.getEnabledElement)(i),l=a.viewport,s=a.renderingEngine,c=t.map((function(e){return l.canvasToWorld(e)}));r.data.polyline=c,r.data.isOpenContour=!0,r.data.handles.points=[c[0],c[c.length-1]],this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Fr(s,o),this.deactivateDraw(i)}function Es(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.drawData.canvasPoints.slice(0,-1),l=ds(a,o,i,!1);if(void 0!==l)return l[0]}function ys(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender;ss(n,r,r[t],this.commonData),r.pop();for(var l=0;l<t;l++)r.shift();this.completeDrawClosedContour(e),this.activateClosedContourEdit(e,i,a)}var Is=function(e){e.activateDraw=vs.bind(e),e.deactivateDraw=fs.bind(e),e.applyCreateOnCross=ys.bind(e),e.findCrossingIndexDuringCreate=Es.bind(e),e.completeDrawOpenContour=ws.bind(e),e.removeCrossedLinesOnCompleteDraw=ms.bind(e),e.mouseDragDrawCallback=gs.bind(e),e.mouseUpDrawCallback=hs.bind(e),e.completeDrawClosedContour=ps.bind(e)},bs=Ma,Cs=ba;function _s(e,t){var n=e.detail,r=n.element,o=n.currentPoints,i=n.lastPoints,a=o.canvas,l=i.canvas,s=this.editData,c=s.editCanvasPoints,d=s.prevCanvasPoints,u=Cs(d,a,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(c.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=c[0],f=[],g=0;g<d.length;g++){var h=d[g],p=Ji.vec2.distance(h,v);f.push({distance:p,index:g})}f.sort((function(e,t){return e.distance-t.distance}));var m=[f[0],f[1]],w=Math.min(m[0].index,m[1].index);this.editData.startCrossingIndex=w}else if(c.length>=2){var E=Ji.vec2.create();Ji.vec2.subtract(E,c[1],c[0]),Ji.vec2.normalize(E,E);var y=[c[0][0]-6*E[0],c[0][1]-6*E[1]],I=Cs(d,y,c[0],t);if(I){var b=[y];bs(r,b,c[0],this.commonData),c.unshift.apply(c,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=c.length-1,this.editData.startCrossingIndex=I[0]}}}function Ds(e){for(var t=this.editData,n=t.editCanvasPoints,r=t.prevCanvasPoints,o=0,i=0;i<n.length-1;i++){var a=[n[i],n[i+1]];if(o++,Cs(r,a[0],a[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Os(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,i=r.canvas,a=o.canvas,l=this.editData.prevCanvasPoints;return!!Cs(l,i,a,t)}function Ts(e){for(var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=r.length-1;o>0;o--){var i=[r[o],r[o-1]],a=!!Cs(n,i[0],i[1],e);if(r.pop(),a)break}}function Ss(){var e=this.editData,t=e.editCanvasPoints,n=e.prevCanvasPoints;if(void 0!==e.startCrossingIndex){for(var r=t[t.length-1],o=[],i=0;i<n.length;i++){var a=n[i],l=Ji.vec2.distance(a,r);o.push({distance:l,index:i})}o.sort((function(e,t){return e.distance-t.distance}));for(var s=t.slice(0,-1),c=0;c<o.length;c++){var d=o[c].index,u=n[d],v=t[t.length-1];if(!Cs(s,u,v,!1))return d}return-1}}var xs=function(e){e.checkForFirstCrossing=_s.bind(e),e.removePointsUpUntilFirstCrossing=Ds.bind(e),e.checkForSecondCrossing=Os.bind(e),e.findSnapIndex=Ss.bind(e),e.removePointsAfterSecondCrossing=Ts.bind(e)},Ms=Sa,Rs=Ma,Ns=Na;function ks(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,V.getEnabledElement)(i).viewport,s=t.data.polyline.map(l.worldToCanvas),c=Ms(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},Dt.isInteractingWithTool=!0,i.addEventListener(B.MOUSE_UP,this.mouseUpClosedContourEditCallback),i.addEventListener(B.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),i.addEventListener(B.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),li(i)}function As(e){Dt.isInteractingWithTool=!1,e.removeEventListener(B.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(B.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(B.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),ai(e)}function Ps(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,V.getEnabledElement)(r),l=a.renderingEngine,s=a.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=s.canvasToWorld(w),y=Ji.vec3.create();Ji.vec3.subtract(y,o,E);var I=Math.abs(Ji.vec3.dot(y,u)),b=Math.abs(Ji.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){var C=h+Rs(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!0),this.editData.snapIndex=this.findSnapIndex(),-1!==this.editData.snapIndex?(this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(e),void 0!==m&&this.checkForSecondCrossing(e,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(e)),Fr(l,d)):this.finishEditAndStartNewEdit(e)}}function Ls(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=u,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},Fr(o,l)}function Us(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,s=e.detail.element,c=Zn(r);Rs(s,c,n[i],this.commonData),c.length>r.length&&c.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var d=Ji.vec2.distance(n[a],c[0]),u=Ji.vec2.distance(n[a],c[c.length-1]),v=Ji.vec2.distance(n[l],c[0]),f=Ji.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}var m=d+f,w=u+v;if(m<w)for(var E=0;E<c.length;E++){var y=c[E];g.push([y[0],y[1]])}else for(var I=c.length-1;I>=0;I--){var b=c[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var _=n[C];g.push([_[0],_[1]])}for(var D=[],O=a;O<l;O++){var T=n[O];D.push([T[0],T[1]])}if((m=v+u)<(w=f+d))for(var S=0;S<c.length;S++){var x=c[S];D.push([x[0],x[1]])}else for(var M=c.length-1;M>=0;M--){var R=c[M];D.push([R[0],R[1]])}return Ns(g)>Ns(D)?g:D}}function js(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,s=this.editData.fusedCanvasPoints;if(s){var c=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=c,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,n)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,Fr(o,l),this.deactivateClosedContourEdit(t)}var Vs=function(e){e.activateClosedContourEdit=ks.bind(e),e.deactivateClosedContourEdit=As.bind(e),e.mouseDragClosedContourEditCallback=Ps.bind(e),e.mouseUpClosedContourEditCallback=js.bind(e),e.finishEditAndStartNewEdit=Ls.bind(e),e.fuseEditPointsWithClosedContour=Us.bind(e)},Bs=Ma,Fs=Sa;function Ws(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,V.getEnabledElement)(i).viewport,s=t.data.polyline.map(l.worldToCanvas),c=Fs(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},Dt.isInteractingWithTool=!0,i.addEventListener(B.MOUSE_UP,this.mouseUpOpenContourEditCallback),i.addEventListener(B.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),i.addEventListener(B.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),li(i)}function Gs(e){Dt.isInteractingWithTool=!1,e.removeEventListener(B.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(B.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(B.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),ai(e)}function Hs(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,V.getEnabledElement)(r),l=a.renderingEngine,s=a.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=s.canvasToWorld(w),y=Ji.vec3.create();Ji.vec3.subtract(y,o,E);var I=Math.abs(Ji.vec3.dot(y,u)),b=Math.abs(Ji.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){var C=h+Bs(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!1),this.editData.snapIndex=this.findSnapIndex(),this.editData.fusedCanvasPoints=this.fuseEditPointsWithOpenContour(e),void 0!==m&&this.checkForSecondCrossing(e,!1)?(this.removePointsAfterSecondCrossing(!1),this.finishEditOpenOnSecondCrossing(e)):this.checkIfShouldOverwriteAnEnd(e)&&this.openContourEditOverwriteEnd(e),Fr(l,d)}}function qs(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.viewport,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.fuseEditPointsForOpenContourEndEdit().map((function(e){return r.canvasToWorld(e)}));i.data.polyline=l,i.data.isOpenContour=!0,i.data.handles.points=[l[0],l[l.length-1]],i.data.handles.activeHandleIndex=1,this.triggerAnnotationModified(i,n),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(t),this.activateOpenContourEndEdit(e,i,a)}function zs(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.editData,l=a.snapIndex,s=a.prevCanvasPoints;if(void 0===a.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==s.length-1)return!1;var c=o,d=i,u=s[l],v=Ji.vec2.create(),f=Ji.vec2.create();Ji.vec2.set(v,c[0]-d[0],c[1]-d[1]),Ji.vec2.set(f,c[0]-u[0],c[1]-u[1]);var g=Ji.vec2.dot(v,f),h=Math.sqrt(v[0]*v[0]+v[1]*v[1]),p=Math.sqrt(f[0]*f[0]+f[1]*f[1]);return Math.acos(g/(h*p))<Math.PI/2}function Ks(){var e=this.editData,t=e.snapIndex,n=e.prevCanvasPoints,r=e.editCanvasPoints,o=e.startCrossingIndex,i=[];if(0===t)for(var a=n.length-1;a>=o;a--){var l=n[a];i.push([l[0],l[1]])}else for(var s=0;s<o;s++){var c=n[s];i.push([c[0],c[1]])}if(Ji.vec2.distance(n[o],r[0])<Ji.vec2.distance(n[o],r[r.length-1]))for(var d=0;d<r.length;d++){var u=r[d];i.push([u[0],u[1]])}else for(var v=r.length-1;v>=0;v--){var f=r[v];i.push([f[0],f[1]])}return i}function Ys(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,s=e.detail.element,c=Zn(r);Bs(s,c,n[i],this.commonData),c.length>r.length&&c.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var d=Ji.vec2.distance(n[a],c[0]),u=Ji.vec2.distance(n[a],c[c.length-1]),v=Ji.vec2.distance(n[l],c[0]),f=Ji.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}if(d+f<u+v)for(var m=0;m<c.length;m++){var w=c[m];g.push([w[0],w[1]])}else for(var E=c.length-1;E>=0;E--){var y=c[E];g.push([y[0],y[1]])}for(var I=l;I<n.length;I++){var b=n[I];g.push([b[0],b[1]])}return g}}function $s(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=u,a.data.isOpenContour=!0,a.data.handles.points=[u[0],u[u.length-1]],this.triggerAnnotationModified(a,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},Fr(o,l)}function Zs(e){var t=e.detail.element,n=(0,V.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,s=this.editData.fusedCanvasPoints;if(s){var c=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=c,a.data.isOpenContour=!0,a.data.handles.points=[c[0],c[c.length-1]],this.triggerAnnotationModified(a,n)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,Fr(o,l),this.deactivateOpenContourEdit(t)}var Xs=function(e){e.activateOpenContourEdit=Ws.bind(e),e.deactivateOpenContourEdit=Gs.bind(e),e.mouseDragOpenContourEditCallback=Hs.bind(e),e.mouseUpOpenContourEditCallback=Zs.bind(e),e.fuseEditPointsWithOpenContour=Ys.bind(e),e.finishEditOpenOnSecondCrossing=$s.bind(e),e.checkIfShouldOverwriteAnEnd=zs.bind(e),e.fuseEditPointsForOpenContourEndEdit=Ks.bind(e),e.openContourEditOverwriteEnd=qs.bind(e)},Js=Sa;function Qs(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,V.getEnabledElement)(r).viewport,i=Js(o,this.configuration.subPixelResolution),a=i.spacing,l=i.xDir,s=i.yDir,c=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&c.reverse(),this.drawData={canvasPoints:c,polylineIndex:c.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:a,xDir:l,yDir:s},Dt.isInteractingWithTool=!0,r.addEventListener(B.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(B.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(B.MOUSE_CLICK,this.mouseUpDrawCallback),li(r)}var ec=function(e){e.activateOpenContourEndEdit=Qs.bind(e)},tc=xa;function nc(e){var t=V.Settings.getObjectSettings(e,this.getToolName()),n=this.getStyle(t,"lineWidth",e),r=this.getStyle(t,"color",e);return{color:void 0===r?void 0:r,width:void 0===n?void 0:n,connectLastToFirst:!e.data.isOpenContour}}function rc(e,t,n){n.data.isOpenContour?this.renderOpenContour(e,t,n):this.renderClosedContour(e,t,n)}function oc(e,t,n){var r=e.viewport,o=this._getRenderingOptions(n),i=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));xi(t,n.annotationUID,"1",i,o)}function ic(e,t,n){var r=e.viewport,o=this._getRenderingOptions(n),i=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));xi(t,n.annotationUID,"1",i,o);var a=n.data.handles.activeHandleIndex;if(null!==a){var l=i[0===a?0:i.length-1];Oi(t,n.annotationUID,"0",[l],{color:o.color})}}function ac(e,t,n){var r=this._getRenderingOptions(n),o=this.configuration.allowOpenContours,i=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,xi(t,n.annotationUID,"1",i,r),o){var a=i[0],l=i[i.length-1];tc(a,l,this.configuration.closeContourProximity)?xi(t,n.annotationUID,"2",[l,a],r):Oi(t,n.annotationUID,"0",[a],{color:r.color,handleRadius:2})}}function lc(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(n);xi(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function sc(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(n);xi(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var cc=function(e){e.renderContour=rc.bind(e),e.renderClosedContour=oc.bind(e),e.renderOpenContour=ic.bind(e),e.renderContourBeingDrawn=ac.bind(e),e.renderClosedContourBeingEdited=lc.bind(e),e.renderOpenContourBeingEdited=sc.bind(e),e._getRenderingOptions=nc.bind(e)};var dc=Ra,uc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,subPixelResolution:4}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_throttledCalculateCachedStats",void 0),H(kt(e),"commonData",void 0),H(kt(e),"isDrawing",!1),H(kt(e),"isEditingClosed",!1),H(kt(e),"isEditingOpen",!1),H(kt(e),"activateDraw",void 0),H(kt(e),"activateClosedContourEdit",void 0),H(kt(e),"activateOpenContourEdit",void 0),H(kt(e),"activateOpenContourEndEdit",void 0),H(kt(e),"renderContour",void 0),H(kt(e),"renderContourBeingDrawn",void 0),H(kt(e),"renderClosedContourBeingEdited",void 0),H(kt(e),"renderOpenContourBeingEdited",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine,d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g=el(i,e.getToolName()),h={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:f,toolName:e.getToolName()},data:{handles:{points:[],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},polyline:[Zn(a)],label:""}};return V.Settings.getObjectSettings(h,o),ue(i,h),e.activateDraw(t,h,g),t.preventDefault(),Fr(c,g),h})),H(kt(e),"handleSelectedCallback",(function(t,n,r){var o=el(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,o)})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=el(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,o):e.activateClosedContourEdit(t,n,o)})),H(kt(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,V.getEnabledElement)(e).viewport,i=t.data.polyline,a=o.worldToCanvas(i[0]),l=1;l<i.length;l++){var s=a,c=o.worldToCanvas(i[l]);if(!0===dc(n,s,c,r))return!0;a=c}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(i[0]),u=o.worldToCanvas(i[i.length-1]);return!0===dc(n,d,u,r)})),H(kt(e),"cancel",(function(e){})),H(kt(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=B.ANNOTATION_MODIFIED,i={annotation:e,viewportId:n,renderingEngineId:r};(0,V.triggerEvent)(V.eventTarget,o,i)})),H(kt(e),"triggerAnnotationCompleted",(function(e){var t=B.ANNOTATION_COMPLETED,n={annotation:e};(0,V.triggerEvent)(V.eventTarget,t,n)})),H(kt(e),"renderAnnotation",(function(t,n){var r,o,i=t.viewport.element,a=de(i,e.getToolName());if(null!==(r=a)&&void 0!==r&&r.length&&null!==(o=a=e.filterInteractableAnnotationsForElement(i,a))&&void 0!==o&&o.length){var l=e.isDrawing,s=e.isEditingOpen,c=e.isEditingClosed;if(l||s||c){var d=e.commonData.annotation.annotationUID;a.forEach((function(r){if(r.annotationUID===d)if(l)e.renderContourBeingDrawn(t,n,r);else if(c)e.renderClosedContourBeingEdited(t,n,r);else{if(!s)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)}))}else a.forEach((function(r){return e.renderContour(t,n,r)}))}})),Is(kt(e)),xs(kt(e)),Vs(kt(e)),Xs(kt(e)),ec(kt(e)),cc(kt(e)),e}return G(o)}(Nl);H(uc,"toolName","PlanarFreehandROI");var vc=uc;var fc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,getTextCallback:function(){return prompt("Enter your annotation:")},changeTextCallback:function(){return prompt("Enter your annotation:")},preventHandleOutsideImage:!1,arrowFirst:!0}};return F(this,o),H(kt(e=r.call(this,t,n)),"touchDragCallback",void 0),H(kt(e),"mouseDragCallback",void 0),H(kt(e),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;li(i),e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:f},data:{text:"",handles:{points:[Zn(a),Zn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};V.Settings.getObjectSettings(g,o),ue(i,g);var h=el(i,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),t.preventDefault(),Fr(c,h),g})),H(kt(e),"isPointNearTool",(function(e,t,n,r){var o=(0,V.getEnabledElement)(e).viewport,i=Ai(t.data.handles.points,2),a=i[0],l=i[1],s=o.worldToCanvas(a),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return wa([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),H(kt(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=el(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),li(o);var a=(0,V.getEnabledElement)(o).renderingEngine;Fr(a,i),t.preventDefault()})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,s=o.data;if(!a||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),ai(n);var c=(0,V.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&ve(o.annotationUID,n),a){var d=e.configuration.getTextCallback();if(!d)return ve(o.annotationUID,n),Fr(c,i),e.editData=null,void(e.isDrawing=!1);o.data.text=d;var u=B.ANNOTATION_COMPLETED,v={annotation:o};(0,V.triggerEvent)(V.eventTarget,u,v)}Fr(c,i),e.editData=null,e.isDrawing=!1}})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=i.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Zn(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,V.getEnabledElement)(r).renderingEngine;Fr(h,a)})),H(kt(e),"doubleClickCallback",(function(t){var n=t.detail,r=n.element,o=(0,V.getEnabledElement)(r),i=o.viewportId,a=o.renderingEngineId,l=o.renderingEngine,s=de(r,e.getToolName()),c=(s=e.filterInteractableAnnotationsForElement(r,s)).find((function(t){return e.isPointNearTool(r,t,n.currentPoints.canvas,6)}));if(c){var d=c,u=e.configuration.changeTextCallback();d.data.text=u;var v=el(r,e.getToolName());Fr(l,v);var f=B.ANNOTATION_MODIFIED;(0,V.triggerEvent)(V.eventTarget,f,{annotation:d,viewportId:i,renderingEngineId:a}),e.editData=null,e.isDrawing=!1}})),H(kt(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),ai(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,V.getEnabledElement)(t).renderingEngine;if(Fr(l,o),i){var s=B.ANNOTATION_COMPLETED,c={annotation:r};(0,V.triggerEvent)(V.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),H(kt(e),"_activateModify",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateModify",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_activateDraw",(function(t){Dt.isInteractingWithTool=!0,t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){Dt.isInteractingWithTool=!1,t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=a.element,s=de(l,e.getToolName());if(null!==(r=s)&&void 0!==r&&r.length&&null!==(i=s=e.filterInteractableAnnotationsForElement(l,s))&&void 0!==i&&i.length)for(var c=0;c<s.length;c++){var d=s[c],u=V.Settings.getObjectSettings(d,o),v=d.annotationUID,f=d.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex,w=e.getStyle(u,"lineWidth",d),E=e.getStyle(u,"lineDash",d),y=e.getStyle(u,"color",d),I=p.map((function(e){return a.worldToCanvas(e)})),b=void 0;if(X(d)||e.editData||null===m||(b=[I[m]]),b&&Oi(n,v,"0",I,{color:y,lineDash:E,lineWidth:w}),e.configuration.arrowFirst?Bi(n,v,"1",I[1],I[0],{color:y,width:w}):Bi(n,v,"1",I[0],I[1],{color:y,width:w}),!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");if(h){if(!f.handles.textBox.hasMoved){var C=da(I);f.handles.textBox.worldPosition=a.canvasToWorld(C)}var _=a.worldToCanvas(f.handles.textBox.worldPosition),D=ji(n,v,"1",[h],_,I,{},e.getLinkedTextBoxStyle(u,d)),O=D.x,T=D.y,S=D.width,x=D.height;f.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([O,T]),topRight:a.canvasToWorld([O+S,T]),bottomLeft:a.canvasToWorld([O,T+x]),bottomRight:a.canvasToWorld([O+S,T+x])}}}})),e}return G(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=el(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),li(r);var s=(0,V.getEnabledElement)(r).renderingEngine;Fr(s,l),e.preventDefault()}},{key:"_isInsideVolume",value:function(e,t,n){return V.utilities.indexWithinDimensions(e,n)&&V.utilities.indexWithinDimensions(t,n)}}]),o}(Nl);H(fc,"toolName","ArrowAnnotate");var gc=fc,hc=V.utilities.transformWorldToIndex;function pc(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.constraintFn,s=n.imageData,c=n.dimensions,d=n.scalarData,u=r.map((function(e){return hc(s,e)})),v=ea(u=u.map((function(e){return e.map((function(e){return Math.round(e)}))})),c);if(v.every((function(e){var t=Ai(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Qi(s,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(d[n]=i):d[n]=i)}),v),be(a)}(0,t)}var mc=V.utilities.transformWorldToIndex;function wc(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentationId,a=n.imageData,l=n.dimensions,s=n.scalarData,c=ea(r.map((function(e){return mc(a,e)})),l);if(c.every((function(e){var t=Ai(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Qi(a,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(s[n]=0)}),c),be(i)}(0,t)}var Ec=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:pc,ERASE_INSIDE:wc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return F(this,o),H(kt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,V.getEnabledElement)(o),l=a.viewport,s=a.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.toolGroupId,f=ml(v);if(!f)throw new Error("No active segmentation detected, create one before using scissors tool");var g=f.segmentationRepresentationUID,h=f.segmentationId,p=f.type,m=Sl(h),w=Il(h),E=_l(v,g,m),y=Me(h).representationData[p].volumeId,I=V.cache.getVolume(y),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(d),viewUp:Zn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null}}};V.Settings.getObjectSettings(b,ns);var C=el(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:m,segmentsLocked:w,segmentColor:E,segmentationId:h,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),li(o),t.preventDefault(),Fr(s,C),!0})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,i,a,l,s,c,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,V.getEnabledElement)(u),E=w.viewport,y=E.worldToCanvas,I=E.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=Zn(b),h){case 0:case 3:n=y(C[0]),r=[(i=y(C[3]))[0],n[1]],o=[n[0],i[1]],l=I(r),s=I(o),C[1]=l,C[2]=s;break;case 1:case 2:r=y(C[1]),n=[(o=y(C[2]))[0],r[1]],i=[r[0],o[1]],a=I(n),c=I(i),C[0]=a,C[3]=c}f.invalidated=!0,e.editData.hasMoved=!0;var _=w.renderingEngine;Fr(_,g)})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,s=r.segmentationId,c=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!i||a){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),ai(n);var v=(0,V.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof V.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:s,segmentIndex:c,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),H(kt(e),"_activateDraw",(function(t){t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport,o=e.editData.annotation,i=(V.Settings.getObjectSettings(o,ns),o.metadata),a=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),s="rgb(".concat(i.segmentColor.slice(0,3),")");r.getRenderingEngine()?Vi(n,a,"0",l[0],l[3],{color:s}):console.warn("Rendering Engine has been destroyed")}})),e}return G(o)}(zt);H(Ec,"toolName","RectangleScissor");var yc=V.utilities.transformWorldToIndex;function Ic(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=n.imageData,s=n.dimensions,c=n.scalarData,d=e.viewport,u=Ji.vec3.fromValues(0,0,0);r.forEach((function(e){Ji.vec3.add(u,u,e)})),Ji.vec3.scale(u,u,1/r.length);var v=Ai(ha(r.map((function(e){return d.worldToCanvas(e)}))),2),f=v[0],g=v[1],h=d.canvasToWorld(f),p=d.canvasToWorld(g),m=ea([yc(l,h),yc(l,p)],s);if(m.every((function(e){var t=Ai(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var w={center:u,xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},E=new Set;Qi(l,(function(e,t){return ga(w,e)}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(c[n]=i,E.add(r[2]))}),m),be(a,Array.from(E))}(e,t)}var bc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Ic},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return F(this,o),H(kt(e=r.call(this,t,n)),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,V.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ml(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Sl(p),E=Il(p),y=_l(f,h,w),I=Me(p).representationData[m].volumeId,b=V.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentationId:p,segmentsLocked:E,segmentColor:y,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),li(o),t.preventDefault(),Fr(c,_),!0})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,V.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],c.invalidated=!0,e.editData.hasMoved=!0,Fr(a,d)})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),ai(n);var h=(0,V.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof V.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),H(kt(e),"_activateDraw",(function(t){t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport;if(e.editData.viewportIdsToRender.includes(r.id)){var o=e.editData.annotation,i=o.metadata,a=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),s=l[0],c=l[1],d=[Math.floor((s[0]+c[0])/2),Math.floor((s[1]+c[1])/2)],u=Math.abs(s[1]-Math.floor((s[1]+c[1])/2)),v="rgb(".concat(i.segmentColor.slice(0,3),")");r.getRenderingEngine()?_i(n,a,"0",d,u,{color:v}):console.warn("Rendering Engine has been destroyed")}}})),e}return G(o)}(zt);function Cc(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.points,s=r.scalarData;ra(n,r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(s[t]=i)})),be(a)}(e,t)}H(bc,"toolName","CircleScissor");var _c=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Cc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return F(this,o),H(kt(e=r.call(this,t,n)),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,V.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ml(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Sl(p),E=Il(p),y=_l(f,h,w),I=Me(p).representationData[m].volumeId,b=V.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:Zn(u),viewUp:Zn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{invalidated:!0,handles:{points:[Zn(i),Zn(i),Zn(i),Zn(i)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentsLocked:E,segmentColor:y,segmentationId:p,toolGroupId:f,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),li(o),t.preventDefault(),Fr(c,_),!0})),H(kt(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,V.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],c.invalidated=!0,e.editData.hasMoved=!0,Fr(a,d)})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),ai(n);var h=(0,V.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof V.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),H(kt(e),"_activateDraw",(function(t){t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"renderAnnotation",(function(t,n){if(e.editData){var r=t.viewport;if(e.editData.viewportIdsToRender.includes(r.id)){var o=e.editData.annotation,i=o.metadata,a=o.annotationUID,l=o.data.handles.points.map((function(e){return r.worldToCanvas(e)})),s=l[0],c=l[1],d=[Math.floor((s[0]+c[0])/2),Math.floor((s[1]+c[1])/2)],u=Math.abs(s[1]-Math.floor((s[1]+c[1])/2)),v="rgb(".concat(i.segmentColor.slice(0,3),")");r.getRenderingEngine()?_i(n,a,"0",d,u,{color:v}):console.warn("Rendering Engine has been destroyed")}}})),e}return G(o)}(zt);H(_c,"toolName","SphereScissor");var Dc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return F(this,o),H(kt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d,u,v=s.getCamera(),f=v.viewPlaneNormal,g=v.viewUp,h=e.getTargetId(s);if(s instanceof V.StackViewport)d=h.split("imageId:")[1];else{u=h.split("volumeId:")[1];var p=V.cache.getVolume(u);d=V.utilities.getClosestImageId(p,a,f,g)}var m={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(f),enabledElement:l,viewUp:Zn(g),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:d,toolName:e.getToolName(),volumeId:u},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null},segmentationId:null}};V.Settings.getObjectSettings(m,o),ue(i,m);var w=el(i,e.getToolName());return e.editData={annotation:m,viewportIdsToRender:w,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),li(i),t.preventDefault(),Fr(c,w),m})),H(kt(e),"renderAnnotation",(function(t,n){var r,i,a=t.viewport,l=t.renderingEngineId,s=a.element,c=de(s,e.getToolName());if(null!==(r=c)&&void 0!==r&&r.length&&null!==(i=c=e.filterInteractableAnnotationsForElement(s,c))&&void 0!==i&&i.length)for(var d=0;d<c.length;d++){var u=c[d],v=V.Settings.getObjectSettings(u,o),f=u.annotationUID,g=u.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return a.worldToCanvas(e)})),w=e.getStyle(v,"lineWidth",u),E=e.getStyle(v,"lineDash",u),y=e.getStyle(v,"color",u);if(!a.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var I=B.ANNOTATION_MODIFIED,b={annotation:u,viewportId:a.id,renderingEngineId:l};(0,V.triggerEvent)(V.eventTarget,I,b);var C=void 0;X(u)||e.editData||null===p||(C=[m[p]]),C&&Oi(n,f,"0",C,{color:y}),Vi(n,f,"0",m[0],m[3],{color:y,lineDash:E,lineWidth:w})}})),e}return G(o)}(ns);H(Dc,"toolName","RectangleROIThreshold");var Oc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{numSlicesToPropagate:10}};return F(this,o),H(kt(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),H(kt(e),"editData",void 0),H(kt(e),"isDrawing",void 0),H(kt(e),"isHandleOutsideImage",void 0),H(kt(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,i=n.element,a=r.world,l=(0,V.getEnabledElement)(i),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d,u,v,f=s.getCamera(),g=f.viewPlaneNormal,h=f.viewUp;if(s instanceof V.StackViewport)throw new Error("Stack Viewport Not implemented");if(v=e.getTargetId(s).split("volumeId:")[1],u=V.cache.getVolume(v),d=V.utilities.getClosestImageId(u,a,g,h))throw new Error("This tool does not work on non-acquisition planes");var p=s.getCurrentImageIdIndex(),m=V.utilities.getSpacingInNormalDirection(u,g),w=e._getEndSliceIndex(u,a,m,g),E={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Zn(g),enabledElement:l,viewUp:Zn(h),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:d,toolName:e.getToolName(),volumeId:v,spacingInNormal:m},data:{label:"",startSlice:p,endSlice:w,cachedStats:{projectionPoints:[],projectionPointsImageIds:[d]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Zn(a),Zn(a),Zn(a),Zn(a)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(E,u),V.Settings.getObjectSettings(E,o),ue(i,E);var y=el(i,e.getToolName());return e.editData={annotation:E,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(i),li(i),t.preventDefault(),Fr(c,y),E})),H(kt(e),"renderAnnotation",(function(t,n){var r=de(t.viewport.element,e.getToolName());if(null!=r&&r.length)for(var i=t.viewport,a=i.getCurrentImageIdIndex(),l=0;l<r.length;l++){var s=r[l],c=V.Settings.getObjectSettings(s,o),d=s.annotationUID,u=s.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.worldToCanvas(e)})),w=e.getStyle(c,"lineWidth",s),E=e.getStyle(c,"lineDash",s),y=e.getStyle(c,"color",s);if(!(a<Math.min(v,f)||a>Math.max(v,f))){s.invalidated&&e._throttledCalculateCachedStats(s,t);var I=!1;if(a!==v&&a!==f||(I=!0),!i.getRenderingEngine())return void console.warn("Rendering Engine has been destroyed");var b=void 0;X(s)||e.editData||null===p||!I||(b=[m[p]]),b&&Oi(n,d,"0",b,{color:y});var C=E;I||(C=2),Vi(n,d,"0",m[0],m[3],{color:y,lineDash:C,lineWidth:w})}}})),e._throttledCalculateCachedStats=Ki(e._calculateCachedStatsTool,100,{trailing:!0}),e}return G(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,i=r.spacingInNormal,a=t.imageData,l=n.startSlice,s=n.endSlice,c=(n.cachedStats.projectionPoints,n.handles.points),d=Ji.vec3.create();if(a.worldToIndexVec3(c[0],d),d[2]!==l)throw new Error("Start slice does not match");var u=Ji.vec3.fromValues(d[0],d[1],s),v=Ji.vec3.create();a.indexToWorldVec3(d,v);var f=Ji.vec3.create();a.indexToWorldVec3(u,f);for(var g=Ji.vec3.distance(v,f),h=[],p=function(e){h.push(c.map((function(t){var n=Ji.vec3.create();return Ji.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=i)p(m);n.cachedStats.projectionPoints=h;for(var w=[],E=0,y=h;E<y.length;E++){var I=y[E],b=V.utilities.getClosestImageId(t,I[0],o,r.viewUp);w.push(b)}n.cachedStats.projectionPointsImageIds=w}},{key:"_calculateCachedStatsTool",value:function(e,t){var n=e.data,r=t.viewportId,o=t.renderingEngineId,i=t.viewport,a=n.cachedStats,l=this.getTargetId(i),s=V.cache.getVolume(l);this._computeProjectionPoints(e,s),e.invalidated=!1;var c=B.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,V.triggerEvent)(V.eventTarget,c,d),a}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,i=Ji.vec3.create();Ji.vec3.scaleAndAdd(i,t,r,o*n);for(var a,l=n/2,s=e.imageIds,c=0;c<s.length;c++){var d=s[c],u=V.metaData.get("imagePlaneModule",d).imagePositionPatient,v=Ji.vec3.create();Ji.vec3.sub(v,i,u);var f=Ji.vec3.dot(v,r);Math.abs(f)<l&&(a=c)}return a}}]),o}(ns);H(Oc,"toolName","RectangleROIStartEndThreshold");var Tc=function(e){Pt(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=jt(t);if(n){var o=jt(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Ut(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:Ic},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE",brushSize:25}};return F(this,o),H(kt(e=r.call(this,t,n)),"_editData",void 0),H(kt(e),"_hoverData",void 0),H(kt(e),"_isDrawing",void 0),H(kt(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(r.world,r.canvas),a=(0,V.getEnabledElement)(o),l=a.viewport,s=a.renderingEngine,c=l.canvasToWorld;e._isDrawing=!0;var d=l.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ml(f);if(!g)throw new Error("No active segmentation detected, create one before using the brush tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Sl(p),E=Il(p),y=(_l(f,h,w),Me(p).representationData[m].volumeId),I=V.cache.getVolume(y),b=i,C=e.configuration.brushSize,_=[b[0],b[1]+C],D=[b[0],b[1]-C],O=[b[0]-C,b[1]],T=[b[0]+C,b[1]],S=(Zn(u),Zn(v),l.getFrameOfReferenceUID(),e.getToolName(),c(_),c(D),c(O),c(T),[l.id]);return e._editData={segmentation:I,segmentsLocked:E},e._activateDraw(o),li(o),t.preventDefault(),Fr(s,S),!0})),H(kt(e),"mouseMoveCallback",(function(t){e.updateCursor(t)})),H(kt(e),"_mouseDragCallback",(function(t){e._isDrawing=!0;var n=e.configuration.brushSize,r=t.detail,o=r.element,i=r.currentPoints.canvas,a=(0,V.getEnabledElement)(o),l=a.renderingEngine,s=a.viewport.canvasToWorld,c=e._editData,d=c.segmentation,u=c.segmentsLocked,v=e._hoverData,f=v.segmentIndex,g=v.segmentationId,h=v.segmentationRepresentationUID,p=v.brushCursor,m=v.viewportIdsToRender,w=p.metadata,E=w.viewPlaneNormal,y=w.viewUp,I=p.data,b=i,C=n,_=[b[0],b[1]+C],D=[b[0],b[1]-C],O=[b[0]-C,b[1]],T=[b[0]+C,b[1]];I.handles.points=[s(_),s(D),s(O),s(T)],I.invalidated=!0,Fr(l,m);var S={points:I.handles.points,volume:d,segmentIndex:f,segmentsLocked:u,viewPlaneNormal:E,toolGroupId:e.toolGroupId,segmentationId:g,segmentationRepresentationUID:h,viewUp:y};e.applyActiveStrategy(a,S)})),H(kt(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.segmentation,i=r.segmentsLocked,a=e._hoverData,l=a.segmentIndex,s=a.segmentationId,c=a.segmentationRepresentationUID,d=a.brushCursor,u=d.data,v=d.metadata,f=v.viewPlaneNormal,g=v.viewUp;e._deactivateDraw(n),ai(n);var h=(0,V.getEnabledElement)(n),p=h.viewport;if(e._editData=null,e._isDrawing=!1,e.updateCursor(t),p instanceof V.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:o,segmentIndex:l,segmentsLocked:i,viewPlaneNormal:f,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:c,viewUp:g};e.applyActiveStrategy(h,m)})),H(kt(e),"_activateDraw",(function(t){t.addEventListener(B.MOUSE_UP,e._mouseUpCallback),t.addEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),H(kt(e),"_deactivateDraw",(function(t){t.removeEventListener(B.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(B.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(B.MOUSE_CLICK,e._mouseUpCallback)})),e}return G(o,[{key:"updateCursor",value:function(e){var t=this.configuration.brushSize,n=e.detail,r=n.element,o=n.currentPoints.canvas,i=(0,V.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport,s=l.canvasToWorld,c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=this.toolGroupId,f=ml(v);if(f){var g=f.segmentationRepresentationUID,h=f.segmentationId,p=Sl(h),m=(Il(h),_l(v,g,p)),w=[l.id],E=o,y=t,I=[E[0],E[1]+y],b=[E[0],E[1]-y],C=[E[0]-y,E[1]],_=[E[0]+y,E[1]],D={metadata:{viewPlaneNormal:Zn(d),viewUp:Zn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{invalidated:!0,handles:{points:[s(I),s(b),s(C),s(_)]},cachedStats:{}}};this._hoverData={brushCursor:D,centerCanvas:E,segmentIndex:p,segmentationId:h,segmentationRepresentationUID:g,segmentColor:m,viewportIdsToRender:w},Fr(a,w)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor,o=r.metadata,i=o.brushCursorUID,a=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),l=a[0],s=a[1],c=[Math.floor((l[0]+s[0])/2),Math.floor((l[1]+s[1])/2)],d=Math.abs(l[1]-Math.floor((l[1]+s[1])/2)),u="rgb(".concat(o.segmentColor.slice(0,3),")");n.getRenderingEngine()?_i(t,i,"0",c,d,{color:u}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(zt);H(Tc,"toolName","Brush")}(),c}()}));
|
|
3
3
|
//# sourceMappingURL=index.js.map
|