{"version":3,"sources":["webpack://cornerstoneTools/webpack/universalModuleDefinition","webpack://cornerstoneTools/webpack/bootstrap","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/createClass.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/inherits.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/helpers/typeof.js","webpack://cornerstoneTools/../node_modules/@babel/runtime/regenerator/index.js","webpack://cornerstoneTools/../node_modules/regenerator-runtime/runtime-module.js","webpack://cornerstoneTools/../node_modules/regenerator-runtime/runtime.js","webpack://cornerstoneTools/./drawing/draw.js","webpack://cornerstoneTools/./drawing/drawArrow.js","webpack://cornerstoneTools/./drawing/drawCircle.js","webpack://cornerstoneTools/./drawing/drawEllipse.js","webpack://cornerstoneTools/./drawing/drawHandles.js","webpack://cornerstoneTools/./drawing/drawJoinedLines.js","webpack://cornerstoneTools/./drawing/drawLine.js","webpack://cornerstoneTools/./drawing/drawLines.js","webpack://cornerstoneTools/./drawing/drawLink.js","webpack://cornerstoneTools/./drawing/drawLinkedTextBox.js","webpack://cornerstoneTools/./drawing/drawRect.js","webpack://cornerstoneTools/./drawing/drawTextBox.js","webpack://cornerstoneTools/./drawing/fillBox.js","webpack://cornerstoneTools/./drawing/fillOutsideRect.js","webpack://cornerstoneTools/./drawing/fillTextLines.js","webpack://cornerstoneTools/./drawing/getNewContext.js","webpack://cornerstoneTools/./drawing/index.js","webpack://cornerstoneTools/./drawing/path.js","webpack://cornerstoneTools/./drawing/resetCanvasContextTransform.js","webpack://cornerstoneTools/./drawing/setShadow.js","webpack://cornerstoneTools/./drawing/transformCanvasContext.js","webpack://cornerstoneTools/./eventDispatchers/imageRenderedEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/index.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/addNewMeasurement.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/index.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDown.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDownActivate.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseDrag.js","webpack://cornerstoneTools/./eventDispatchers/mouseEventHandlers/mouseMove.js","webpack://cornerstoneTools/./eventDispatchers/mouseToolEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/newImageEventDispatcher.js","webpack://cornerstoneTools/./eventDispatchers/shared/customCallbackHandler.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/addNewMeasurement.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/index.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/multiTouchDrag.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/shared/deactivateAllToolInstances.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/tap.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/touchStart.js","webpack://cornerstoneTools/./eventDispatchers/touchEventHandlers/touchStartActive.js","webpack://cornerstoneTools/./eventDispatchers/touchToolEventDispatcher.js","webpack://cornerstoneTools/./eventListeners/index.js","webpack://cornerstoneTools/./eventListeners/internals/normalizeWheel.js","webpack://cornerstoneTools/./eventListeners/mouseEventListeners.js","webpack://cornerstoneTools/./eventListeners/onImageRenderedBrushEventHandler.js","webpack://cornerstoneTools/./eventListeners/onNewImageBrushEventHandler.js","webpack://cornerstoneTools/./eventListeners/preventGhostClick.js","webpack://cornerstoneTools/./eventListeners/touchEventListeners.js","webpack://cornerstoneTools/./eventListeners/wheelEventListener.js","webpack://cornerstoneTools/./eventListeners/windowResizeHandler.js","webpack://cornerstoneTools/./events.js","webpack://cornerstoneTools/./externalModules.js","webpack://cornerstoneTools/./import.js","webpack://cornerstoneTools/./index.js","webpack://cornerstoneTools/./init.js","webpack://cornerstoneTools/./lib.js","webpack://cornerstoneTools/./manipulators/anyHandlesOutsideImage.js","webpack://cornerstoneTools/./manipulators/getHandleNearImagePoint.js","webpack://cornerstoneTools/./manipulators/handleActivator.js","webpack://cornerstoneTools/./manipulators/index.js","webpack://cornerstoneTools/./manipulators/moveAllHandles.js","webpack://cornerstoneTools/./manipulators/moveHandle.js","webpack://cornerstoneTools/./manipulators/moveNewHandle.js","webpack://cornerstoneTools/./mixins/activeOrDisabledBinaryTool.js","webpack://cornerstoneTools/./mixins/enabledOrDisabledBinaryTool.js","webpack://cornerstoneTools/./mixins/index.js","webpack://cornerstoneTools/./orientation/getOrientationString.js","webpack://cornerstoneTools/./orientation/index.js","webpack://cornerstoneTools/./orientation/invertOrientationString.js","webpack://cornerstoneTools/./requestPool/requestPoolManager.js","webpack://cornerstoneTools/./stackTools/fusionRenderer.js","webpack://cornerstoneTools/./stackTools/playClip.js","webpack://cornerstoneTools/./stackTools/stackPrefetch.js","webpack://cornerstoneTools/./stackTools/stackRenderers.js","webpack://cornerstoneTools/./stateManagement/frameOfReferenceStateManager.js","webpack://cornerstoneTools/./stateManagement/imageIdSpecificStateManager.js","webpack://cornerstoneTools/./stateManagement/loadHandlerManager.js","webpack://cornerstoneTools/./stateManagement/stackSpecificStateManager.js","webpack://cornerstoneTools/./stateManagement/textStyle.js","webpack://cornerstoneTools/./stateManagement/toolColors.js","webpack://cornerstoneTools/./stateManagement/toolCoordinates.js","webpack://cornerstoneTools/./stateManagement/toolState.js","webpack://cornerstoneTools/./stateManagement/toolStyle.js","webpack://cornerstoneTools/./store/addTool.js","webpack://cornerstoneTools/./store/filterToolsUsableWithMultiPartTools.js","webpack://cornerstoneTools/./store/getActiveToolsForElement.js","webpack://cornerstoneTools/./store/getInteractiveToolsForElement.js","webpack://cornerstoneTools/./store/getToolForElement.js","webpack://cornerstoneTools/./store/getToolsWithDataForElement.js","webpack://cornerstoneTools/./store/getToolsWithMoveableHandles.js","webpack://cornerstoneTools/./store/index.js","webpack://cornerstoneTools/./store/internals/addEnabledElement.js","webpack://cornerstoneTools/./store/internals/removeEnabledElement.js","webpack://cornerstoneTools/./store/isToolActive.js","webpack://cornerstoneTools/./store/modules/brushModule.js","webpack://cornerstoneTools/./store/modules/globalConfigurationModule.js","webpack://cornerstoneTools/./store/removeTool.js","webpack://cornerstoneTools/./store/setToolMode.js","webpack://cornerstoneTools/./store/setToolOptions.js","webpack://cornerstoneTools/./synchronization/Synchronizer.js","webpack://cornerstoneTools/./synchronization/panZoomSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImageIndexSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImagePositionOffsetSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackImagePositionSynchronizer.js","webpack://cornerstoneTools/./synchronization/stackScrollSynchronizer.js","webpack://cornerstoneTools/./synchronization/updateImageSynchronizer.js","webpack://cornerstoneTools/./synchronization/wwwcSynchronizer.js","webpack://cornerstoneTools/./thirdParty/register.js","webpack://cornerstoneTools/./thirdParty/registerItem.js","webpack://cornerstoneTools/./thirdParty/registerMixin.js","webpack://cornerstoneTools/./thirdParty/registerModule.js","webpack://cornerstoneTools/./thirdParty/registerSome.js","webpack://cornerstoneTools/./toolOptions.js","webpack://cornerstoneTools/./tools/CrosshairsTool.js","webpack://cornerstoneTools/./tools/DoubleTapFitToWindowTool.js","webpack://cornerstoneTools/./tools/DragProbeTool.js","webpack://cornerstoneTools/./tools/EraserTool.js","webpack://cornerstoneTools/./tools/FreehandSculpterMouseTool.js","webpack://cornerstoneTools/./tools/MagnifyTool.js","webpack://cornerstoneTools/./tools/PanMultiTouchTool.js","webpack://cornerstoneTools/./tools/PanTool.js","webpack://cornerstoneTools/./tools/ReferenceLinesTool.js","webpack://cornerstoneTools/./tools/RotateTool.js","webpack://cornerstoneTools/./tools/RotateTouchTool.js","webpack://cornerstoneTools/./tools/ScaleOverlayTool.js","webpack://cornerstoneTools/./tools/StackScrollMouseWheelTool.js","webpack://cornerstoneTools/./tools/StackScrollMultiTouchTool.js","webpack://cornerstoneTools/./tools/StackScrollTool.js","webpack://cornerstoneTools/./tools/WwwcRegionTool.js","webpack://cornerstoneTools/./tools/WwwcTool.js","webpack://cornerstoneTools/./tools/ZoomMouseWheelTool.js","webpack://cornerstoneTools/./tools/ZoomTool.js","webpack://cornerstoneTools/./tools/ZoomTouchPinchTool.js","webpack://cornerstoneTools/./tools/annotation/AngleTool.js","webpack://cornerstoneTools/./tools/annotation/ArrowAnnotateTool.js","webpack://cornerstoneTools/./tools/annotation/BidirectionalTool.js","webpack://cornerstoneTools/./tools/annotation/CobbAngleTool.js","webpack://cornerstoneTools/./tools/annotation/EllipticalRoiTool.js","webpack://cornerstoneTools/./tools/annotation/FreehandMouseTool.js","webpack://cornerstoneTools/./tools/annotation/LengthTool.js","webpack://cornerstoneTools/./tools/annotation/ProbeTool.js","webpack://cornerstoneTools/./tools/annotation/RectangleRoiTool.js","webpack://cornerstoneTools/./tools/annotation/TextMarkerTool.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/addNewMeasurement.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/createNewMeasurement.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedMouseCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/handleSelectedTouchCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/invertHandles.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/mouseMoveCallback.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/moveHandle.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/perpendicularBothFixedLeft.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/perpendicularBothFixedRight.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/perpendicularLeftFixedPoint.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/perpendicularRightFixedPoint.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/setHandlesPosition.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/moveHandle/touchMoveHandle.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/pointNearTool.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/renderToolData.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/calculateLongestAndShortestDiameters.js","webpack://cornerstoneTools/./tools/annotation/bidirectionalTool/utils/updatePerpendicularLineHandles.js","webpack://cornerstoneTools/./tools/annotation/index.js","webpack://cornerstoneTools/./tools/base/BaseAnnotationTool.js","webpack://cornerstoneTools/./tools/base/BaseBrushTool.js","webpack://cornerstoneTools/./tools/base/BaseTool.js","webpack://cornerstoneTools/./tools/brush/BrushTool.js","webpack://cornerstoneTools/./tools/brush/index.js","webpack://cornerstoneTools/./tools/index.js","webpack://cornerstoneTools/./tools/referenceLines/calculateReferenceLine.js","webpack://cornerstoneTools/./tools/referenceLines/renderActiveReferenceLine.js","webpack://cornerstoneTools/./util/SaveAs.js","webpack://cornerstoneTools/./util/angleBetweenPoints.js","webpack://cornerstoneTools/./util/brush/drawBrush.js","webpack://cornerstoneTools/./util/brush/getCircle.js","webpack://cornerstoneTools/./util/brush/index.js","webpack://cornerstoneTools/./util/calculateSUV.js","webpack://cornerstoneTools/./util/clip.js","webpack://cornerstoneTools/./util/convertToVector3.js","webpack://cornerstoneTools/./util/copyPoints.js","webpack://cornerstoneTools/./util/debounce.js","webpack://cornerstoneTools/./util/ellipse/calculateEllipseStatistics.js","webpack://cornerstoneTools/./util/ellipse/index.js","webpack://cornerstoneTools/./util/ellipse/pointInEllipse.js","webpack://cornerstoneTools/./util/findAndMoveHelpers.js","webpack://cornerstoneTools/./util/freehand/ClickedLineData.js","webpack://cornerstoneTools/./util/freehand/FreehandHandleData.js","webpack://cornerstoneTools/./util/freehand/FreehandLineFinder.js","webpack://cornerstoneTools/./util/freehand/addLine.js","webpack://cornerstoneTools/./util/freehand/calculateFreehandStatistics.js","webpack://cornerstoneTools/./util/freehand/freehandArea.js","webpack://cornerstoneTools/./util/freehand/freehandIntersect.js","webpack://cornerstoneTools/./util/freehand/index.js","webpack://cornerstoneTools/./util/freehand/insertOrDelete.js","webpack://cornerstoneTools/./util/freehand/pointInFreehand.js","webpack://cornerstoneTools/./util/getDefault.js","webpack://cornerstoneTools/./util/getKeyFromKeyCode.js","webpack://cornerstoneTools/./util/getLuminance.js","webpack://cornerstoneTools/./util/getMaxSimultaneousRequests.js","webpack://cornerstoneTools/./util/getRGBPixels.js","webpack://cornerstoneTools/./util/isObject.js","webpack://cornerstoneTools/./util/lineSegDistance.js","webpack://cornerstoneTools/./util/makeUnselectable.js","webpack://cornerstoneTools/./util/numbersWithCommas.js","webpack://cornerstoneTools/./util/pointInsideBoundingBox.js","webpack://cornerstoneTools/./util/pointProjector.js","webpack://cornerstoneTools/./util/roundToDecimal.js","webpack://cornerstoneTools/./util/scroll.js","webpack://cornerstoneTools/./util/scrollToIndex.js","webpack://cornerstoneTools/./util/setContextToDisplayFontSize.js","webpack://cornerstoneTools/./util/throttle.js","webpack://cornerstoneTools/./util/triggerEvent.js","webpack://cornerstoneTools/./util/wait.js","webpack://cornerstoneTools/./util/zoom/changeViewportScale.js","webpack://cornerstoneTools/./util/zoom/correctShift.js","webpack://cornerstoneTools/./util/zoom/index.js","webpack://cornerstoneTools/./version.js"],"names":["context","fn","save","restore","start","end","color","lineWidth","headLength","angle","Math","atan2","y","x","options","drawLine","undefined","fillStyle","points","cos","PI","sin","drawJoinedLines","element","center","radius","coordSystem","external","cornerstone","pixelToCanvas","path","arc","corner1","corner2","min","w","abs","h","kappa","ox","oy","xe","ye","xm","ym","moveTo","bezierCurveTo","closePath","evtDetail","handles","defaultColor","toolColors","getToolColor","strokeStyle","handleKeys","Object","keys","i","handleKey","handle","drawnIndependently","drawHandlesIfActive","active","toolStyle","getActiveWidth","getToolWidth","fill","handleCanvasCoords","handleRadius","state","length","map","p","forEach","lineTo","lines","line","linkAnchorPoints","refPoint","boundingBox","cornerstoneMath","point","findClosestPoint","boundingBoxPoints","left","width","top","height","lineDash","textBox","text","textBoxAnchorPoints","xOffset","yCenter","textCoords","centering","drawTextBox","hasMoved","drawLink","rect","textBoxWidth","padding","font","textStyle","getFont","origFont","measureText","textLines","prototype","toString","call","fontSize","getFontSize","backgroundColor","getBackgroundColor","maxWidth","max","draw","debug","fillBox","fillTextLines","fillRect","canvas","clientWidth","clientHeight","textBaseline","index","fillText","getContext","setTransform","beginPath","setLineDash","stroke","shadow","shadowColor","getDefault","shadowBlur","shadowOffsetX","shadowOffsetY","viewport","vflip","rotation","translation","scale","translate","rotate","hflip","onImageRendered","evt","eventData","detail","toolsToRender","tools","filter","tool","mode","brushTools","BaseBrushTool","onImageRenderedBrushEventHandler","renderToolData","enable","addEventListener","EVENTS","IMAGE_RENDERED","disable","removeEventListener","preventDefault","stopPropagation","measurementData","createNewMeasurement","addToolState","name","updateImage","handleMover","moveHandle","moveNewHandle","mouseClick","customCallbackHandler","bind","mouseDoubleClick","mouseUp","mouseWheel","isToolLocked","coords","currentPoints","activeAndPassiveTools","getInteractiveToolsForElement","getters","mouseTools","activeTools","Array","isArray","mouseButtonMask","includes","buttons","isMouseActive","isMultiPartToolActive","filterToolsUseableWithMultiPartTools","firstActiveToolWithCallback","find","preMouseDownCallback","consumedEvent","annotationTools","getToolsWithDataForElement","annotationToolsWithMoveableHandles","getToolsWithMoveableHandles","firstToolWithMoveableHandles","toolState","getToolState","findHandleDataNearImagePoint","data","handleSelectedCallback","annotationToolsWithPointNearClick","isNearPoint","pointNearTool","some","firstToolNearPoint","firstAnnotationNearPoint","toolSelectedCallback","postMouseDownCallback","getActiveToolsForElement","activeTool","preMouseDownActivateCallback","addNewMeasurement","BaseAnnotationTool","mouseDragCallback","mousePositionImage","image","imageNeedsUpdate","hasCursor","t","mouseMoveCallback","MOUSE_CLICK","MOUSE_DOWN","mouseDown","MOUSE_DOWN_ACTIVATE","mouseDownActivate","MOUSE_DOUBLE_CLICK","MOUSE_DRAG","mouseDrag","MOUSE_MOVE","mouseMove","MOUSE_UP","MOUSE_WHEEL","onNewImage","newImageCallback","onNewImageBrushEventHandler","NEW_IMAGE","handlerType","customFunction","supportedInteractionTypes","console","log","touchEventData","type","TAP","highlight","invalidated","deleteIfHandleOutsideImage","anyHandlesOutsideImage","removeToolState","doubleTap","touchDrag","touchEnd","touchPinch","touchPress","touchRotate","numPointers","multiTouchDragCallback","configuration","touchPointers","toolData","deactivateAllHandles","distanceFromHandle","touchTools","toolsWithMoveableHandles","getHandleNearImagePoint","moveableHandle","d","toolOptions","assign","doneMovingCallback","deactivateAllToolInstances","stopImmediatePropagation","toolsNearPoint","moveAllHandles","allActiveTools","touchStartActiveCallback","touchStartActive","startPoints","isTouchActive","preTouchStartCallback","annotationToolsWithPointNearTouch","postTouchStartCallback","tap","TOUCH_START","touchStart","passive","TOUCH_DRAG","TOUCH_END","TOUCH_START_ACTIVE","TOUCH_PRESS","DOUBLE_TAP","TOUCH_PINCH","TOUCH_ROTATE","MULTI_TOUCH_DRAG","multiTouchDrag","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","event","spinX","spinY","pixelX","pixelY","wheelDelta","wheelDeltaY","wheelDeltaX","deltaY","deltaX","deltaMode","isClickEvent","preventClickTimeout","clickDelay","getEventButtons","which","preventClickHandler","e","currentTarget","enabledElement","getEnabledElement","eventType","page","pageToPoint","pageToPixel","pageX","pageY","client","clientX","clientY","lastPoints","copyPoints","getViewport","deltaPoints","triggerEvent","setTimeout","eventPropagated","onMouseMove","subtract","ctrlKey","metaKey","shiftKey","onMouseUp","clearTimeout","document","window","createImageBitmap","imageData","Promise","resolve","img","createElement","conversionCanvas","conversionCanvasContext","putImageData","src","toDataURL","store","modules","brush","setters","maxSegmentations","getNumberOfColors","getReferencedToolDataName","enabledElementUID","uuid","segData","visibleSegmentations","visibleSegmentationsForElement","imageBitmapCache","imageBitmapCacheForElement","segIndex","shouldRenderSegmentation","renderSegmentation","pixelData","currentColor","drawColorId","_drawImageBitmap","createNewBitmapAndQueueRenderOfSegmentation","colormapId","colorMapId","colormap","colors","getColormap","colorLutTable","getColor","ImageData","stats","minPixelValue","getPixelData","storedPixelDataToCanvasImageDataColorLUT","then","newImageBitmap","imageBitmap","alwaysVisible","getNewContext","canvasContext","canvasTopLeft","canvasTopRight","canvasBottomRight","cornerstoneCanvasWidth","distance","cornerstoneCanvasHeight","imageSmoothingEnabled","globalAlpha","getLayerAlpha","transformCanvasContext","canvasViewportTranslation","drawImage","resetCanvasContextTransform","alpha","hiddenButActiveAlpha","antiGhostDelay","pointerType","mouse","touch","lastInteractionType","lastInteractionTime","handleTap","now","Date","handleTapMouse","handleTapTouch","attachEvents","eventList","interactionType","tapHandler","eventName","removeEvents","mouseEvents","touchEvents","touchStartDelay","pressTimeout","pageDistanceMoved","lastScale","lastRotation","preventNextPinch","isPress","lastDelta","pressDelay","pressMaxDistance","toolType","onTouch","srcEvent","scaleChange","delta","remainingPointers","pointers","touches","isTouchEvent","direction","MULTI_TOUCH_START","MULTI_TOUCH_START_ACTIVE","changedTouches","sqrt","TOUCH_DRAG_END","changedPointers","Hammer","hammerOptions","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","TouchInput","mc","Manager","panOptions","DIRECTION_ALL","threshold","pan","Pan","pinch","Pinch","Rotate","recognizeWith","Tap","taps","interval","posThreshold","add","on","preventGhostClick","getToolOptions","hammer","setToolOptions","off","touchInput","wheelEventHandler","startingCoords","normalizeWheel","mouseWheelData","imageX","imageY","resizeThrottler","resizeTimeout","forceEnabledElementResize","enabledElements","resize","KEY_DOWN","KEY_UP","KEY_PRESS","MEASUREMENT_ADDED","MEASUREMENT_MODIFIED","MEASUREMENT_REMOVED","TOOL_DEACTIVATED","CLIP_STOPPED","STACK_SCROLL","cs","cm","module","uri","lib","cornerstoneTools","AngleTool","ArrowAnnotateTool","BidirectionalTool","CobbAngleTool","EllipticalRoiTool","FreehandMouseTool","LengthTool","ProbeTool","RectangleRoiTool","TextMarkerTool","BrushTool","CrosshairsTool","DoubleTapFitToWindowTool","DragProbeTool","EraserTool","FreehandSculpterMouseTool","MagnifyTool","PanMultiTouchTool","PanTool","ReferenceLinesTool","RotateTool","RotateTouchTool","ScaleOverlayTool","StackScrollMouseWheelTool","StackScrollMultiTouchTool","StackScrollTool","WwwcRegionTool","WwwcTool","ZoomMouseWheelTool","ZoomTool","ZoomTouchPinchTool","init","stackPrefetch","stackRenderers","playClip","stopClip","getToolForElement","addTool","addToolForElement","removeTool","removeToolForElement","setToolOptionsForElement","setToolActive","setToolActiveForElement","setToolEnabled","setToolEnabledForElement","setToolDisabled","setToolDisabledForElement","setToolPassive","setToolPassiveForElement","clearToolState","setElementToolStateManager","getElementToolStateManager","toolCoordinates","stackSpecificStateManager","newStackSpecificToolStateManager","addStackStateManager","loadHandlerManager","newImageIdSpecificToolStateManager","globalImageIdSpecificToolStateManager","newFrameOfReferenceSpecificToolStateManager","globalFrameOfReferenceSpecificToolStateManager","orientation","SaveAs","import","imp","register","registerSome","wwwcSynchronizer","updateImageSynchronizer","Synchronizer","stackScrollSynchronizer","stackImagePositionSynchronizer","stackImagePositionOffsetSynchronizer","stackImageIndexSynchronizer","panZoomSynchronizer","requestPoolManager","version","_addCornerstoneEventListeners","_initModules","windowResizeHandler","globalConfiguration","_removeCornerstoneEventListeners","elementEnabledEvent","ELEMENT_ENABLED","elementDisabledEvent","ELEMENT_DISABLED","events","addEnabledElement","removeEnabledElement","key","onRegisterCallback","BaseTool","handleActivator","moveHandleNearImagePoint","moveAnnotation","mixins","activeOrDisabledBinaryTool","enabledOrDisabledBinaryTool","setShadow","drawLines","drawCircle","drawEllipse","drawRect","fillOutsideRect","drawArrow","drawLinkedTextBox","drawHandles","getLuminance","calculateSUV","setContextToDisplayFontSize","scrollToIndex","scroll","roundToDecimal","projectPatientPointToImagePlane","imagePointToPatientPoint","planePlaneIntersection","pointInsideBoundingBox","makeUnselectable","getRGBPixels","getDefaultSimultaneousRequests","getMaxSimultaneousRequests","getBrowserInfo","isMobileDevice","angleBetweenPoints","getKeyFromKeyCode","numbersWithCommas","lineSegDistance","convertToVector3","ellipseUtils","freehandUtils","brushUtils","zoomUtils","renderData","imageRect","handleOutsideImage","allowedOutsideImage","insideRect","distanceThreshold","nearbyHandle","hasOwnProperty","_isHandleNearImagePoint","handleName","pointNearHandle","hasBoundingBox","handleCanvas","canvasPoint","activeHandle","_getActiveHandle","_dragEvents","_upOrEndEvents","toolName","annotation","preventHandleOutsideImage","dragHandler","_dragHandler","upOrEndHandler","_upOrEndHandler","movesIndependently","clipToBox","modifiedEventData","runAnimation","value","fingerDistance","aboveFinger","targetLocation","_animate","fingerOffset","handlePressed","distanceRemaining","linearDistEachFrame","requestAnimationFrame","_moveEvents","_moveEndEvents","moveHandler","_moveHandler","moveEndHandler","_moveEndHandler","_stopImmediatePropagation","passiveCallback","enabledCallback","activeCallback","vector","vec3","orientationX","orientationY","orientationZ","z","Vector3","getOrientationString","invertOrientationString","orientationString","inverted","replace","toUpperCase","requestPool","interaction","thumbnail","prefetch","numRequests","maxNumRequests","awake","grabDelay","addRequest","imageId","preventCache","doneCallback","failCallback","addToBeginning","Error","requestDetails","imageLoadObject","imageCache","getImageLoadObject","promise","error","unshift","push","clearRequestStack","startAgain","startGrabbing","sendRequest","requestTypeToLoadPriority","priority","loader","loadImage","loadAndCacheImage","maxSimultaneousRequests","currentRequests","requestsToSend","getNextRequest","shift","getRequestPool","FusionRenderer","currentImageIdIndex","layerIds","findImageFn","imageStacks","Number","isInteger","baseImageObject","currentImageId","imageIds","overlayImageStacks","slice","baseImage","baseLayerId","setLayerImage","addLayer","displayImage","imgObj","overlayLayerIndex","layerIndex","currentLayerId","setActiveLayer","getPlayClipTimeouts","speed","sample","delay","sum","limit","timeouts","isTimeVarying","stopClipWithData","playClipData","id","intervalId","usingFrameTimeVector","clearInterval","triggerStopEvent","eventDetail","framesPerSecond","playClipTimeouts","stackToolData","stackRenderer","stackRendererData","stackData","playClipToolData","lastFrameTimeStamp","frameRate","frameTimeVector","ignoreFrameTimeVector","reverse","loop","playClipAction","startLoadingHandler","endLoadingHandler","errorLoadingHandler","newImageIdIndex","imageCount","getStartLoadHandler","getEndLoadHandler","getErrorLoadingHandler","render","playClipTimeoutHandler","setInterval","requestType","maxImagesToPrefetch","Infinity","resetPrefetchTimeout","resetPrefetchDelay","range","lowEnd","highEnd","round","arr","c","apply","nearestIndex","l","v","low","indexOf","high","stack","stackPrefetchData","indicesToRequest","enabled","removeFromList","imageIdIndex","splice","sort","a","b","indicesToRequestCopy","nearest","nextImageIdIndex","lowerIndex","higherIndex","currentIndex","shouldSkipLower","shouldSkipHigher","shouldLoadLower","shouldLoadHigher","getPromiseRemovedHandler","onImageUpdated","target","stackPrefetchDataArray","warn","indexOfCurrentImage","promiseRemovedHandler","IMAGE_CACHE_PROMISE_REMOVED","getConfiguration","setConfiguration","config","setMaxSimultaneousRequests","addFrameOfReferenceSpecificToolState","frameOfReference","frameOfReferenceToolState","getFrameOfReferenceSpecificToolState","removeFrameOfReferenceSpecificToolState","indexOfData","get","remove","saveImageIdToolState","restoreImageIdToolState","imageIdToolState","saveToolState","restoreToolState","savedToolState","addImageIdSpecificToolState","getImageIdSpecificToolState","clearImageIdSpecificToolStateManager","clear","defaultStartLoadHandler","defaultEndLoadHandler","defaultErrorLoadingHandler","setStartLoadHandler","handler","setEndLoadHandler","setErrorLoadingHandler","toolTypes","oldStateManager","stackToolState","addStackSpecificToolState","getStackSpecificToolState","stackSpecificToolStateManager","stackStateManagers","otherTools","stackTools","concat","defaultFontSize","defaultFont","defaultBackgroundColor","setFont","setFontSize","setBackgroundColor","activeColor","fillColor","setFillColor","getFillColor","setToolColor","setActiveColor","getActiveColor","getColorIfActive","coordsData","setCoords","getCoords","toolStateManager","defaultWidth","activeWidth","setToolWidth","setActiveWidth","ApiTool","toolAlreadyAddedToElement","_addToolGlobally","globalToolSyncEnabled","toolAlreadyAddedGlobally","globalTools","activeBindings","isMultiPartTool","proximity","clickProximity","touchProximity","globalToolChangeHistory","activeMultiPartTool","enabledElementByUID","elementEnabledEvt","imageRenderedEventDispatcher","newImageEventDispatcher","mouseEnabled","mouseEventListeners","wheelEventListener","mouseToolEventDispatcher","touchEnabled","touchEventListeners","touchToolEventDispatcher","_addEnabledElmenet","_initModulesOnElement","_addGlobalToolsToElement","_repeatGlobalToolHistory","enabledElementCallback","setToolModeFns","disabled","historyEvent","args","elementDisabledEvt","info","_removeAllToolsForElement","_removeEnabledElement","_cleanModulesOnElement","foundElementIndex","findIndex","removeEnabledElementCallback","minRadius","maxRadius","renderBrushIfHiddenButActive","segmentationMetadata","brushColorMap","setNumberOfColors","setColor","elementVisible","cornerstoneEnabledElement","numberOfColors","brushVisibilityForElement","visible","clearImageBitmapCacheForElement","metadata","seriesInstanceUid","_initDefaultColorMap","distinctColors","colorPairIndex","defaultSegmentationCount","_generateInterpolatedColor","randIndicies","_getNextColorPair","fraction","random","interpolatedColor","floor","indexPair","toolIndex","_removeToolGlobally","interactionTypes","_resolveInputConflicts","setToolModeForElement","_trackGlobalToolModeChange","setToolMode","changeEvent","_getNormalizedOptions","mergeOptions","statusChangeEventData","inputResolver","_inputResolvers","activeToolsForElement","toolHasAnyActiveInteractionType","_resolveMouseInputConflicts","hasMouseButtonMask","activeToolWithMatchingMouseButtonMask","mask","_resolveTouchInputConflicts","activeTouchTool","activeMultiTouchToolWithOneTouchPointer","isMultiTouchActive","_resolveMultiTouchInputConflicts","activeMultiTouchTool","_resolveGenericInputConflicts","activeToolWithActiveInteractionType","arbitraryChangeHistoryLimit","globalTool","stringBindings","_determineStringBindings","binding","mouseButtonMasks","Mouse","MouseWheel","Touch","TouchPinch","TouchRotate","DoubleTap","MultiTouch","tempArray","unique","array","self","that","sourceElements","targetElements","ignoreFiredEvents","initialData","eventHandler","setHandler","getHandler","getDistances","distances","sourceElement","sourceEnabledElement","sourceImageId","sourceImagePlane","metaData","imagePositionPatient","sourceImagePosition","targetElement","targetEnabledElement","targetImageId","targetImagePlane","targetImagePosition","clone","sub","fireEvent","isDisabled","noElements","targetIndex","sourceIndex","positionDifference","onEvent","addSource","split","oneEvent","updateDisableHandlers","addTarget","removeSource","removeTarget","getSourceElements","getTargetElements","setViewport","disableHandler","clearToolOptionsByElement","elements","destroy","synchronizer","sourceViewport","targetViewport","sourceStackToolDataSource","sourceStackData","targetStackToolDataSource","targetStackData","clip","stackToolDataSource","minDistance","MAX_VALUE","finalPosition","imagePlane","imagePosition","distanceToSquared","newImageId","voi","windowWidth","windowCenter","invert","item","overwrite","isValidInput","registerModule","registerMixin","registerItem","isItemNameRegistered","mixin","isMixinRegistered","newModule","isModuleNameRegistered","items","elementToolOptions","optionsObject","toolOptionObject","elementOptions","clearToolOptions","clearToolOptionsByToolType","defaultConfig","initialConfiguration","mouseDownCallback","_chooseLocation","touchDragCallback","sourceImagePoint","patientPoint","syncContext","synchronizationContext","rowCosines","columnCosines","row","column","normal","cross","dot","fitToWindow","strategies","default","defaultStrategy","minimal","minimalStrategy","_movingEventCallback","touchEndCallback","_endMovingEventCallback","mouseUpCallback","dragEventData","Boolean","applyActiveStrategy","fontHeight","columns","rows","storedPixels","str","getStoredPixels","sp","mo","slope","intercept","suv","parseFloat","toFixed","pageCoordY","toolCoords","seriesModule","modality","modalityPixelValueText","_deleteAllNearbyTools","consumeEvent","FreehandHandleData","referencedToolName","getDefaultFreehandSculpterMouseToolConfiguration","_active","activeMouseUpCallback","activeTouchEndCallback","activeMouseDragCallback","currentTool","dragColor","_toolSizeCanvas","mouseLocation","showCursorOnHover","_recentTouchEnd","_renderHoverCursor","_selectFreehandTool","_initialiseSculpting","_getMouseLocation","_sculpt","_activeEnd","_deselectAllTools","_invalidateToolData","mouseUpRender","_deactivateSculpt","preventPropagation","freehandMouseTool","radiusCanvas","distanceFromPointCanvas","limitRadiusOutsideRegion","unlimitedRadius","_limitCursorRadiusCanvas","hoverCursorFadeDistance","hoverCursorFadeAlpha","hoverColor","closestToolIndex","_getClosestFreehandToolOnElement","_configureToolSize","_activateFreehandTool","_activateSculpt","_sculptData","mousePoint","toolSize","_toolSizeImage","minSpacing","maxSpacing","pushedHandles","_pushHandles","first","_insertNewHandles","_consolidateHandles","distanceToHandle","_pushOneHandle","last","directionUnitVector","position","lastHandleIndex","constructor","_getPreviousHandleIndex","pop","indiciesToInsertAfter","_findNewHandleIndicies","newIndexModifier","insertIndex","_insertHandleRadially","_checkSpacing","pointAfterLast","_getNextHandleIndex","pointBeforeFirst","nextHandleIndex","distanceToNextHandle","previousIndex","nextIndex","_getNextHandleIndexBeforeInsert","insertPosition","_getInsertPosition","handleData","addLine","closePairs","_findCloseHandlePairs","_mergeCloseHandles","pair","removedIndexModifier","_getCorrectedPair","_combineHandles","newClosePairs","handlePair","midPoint","handleAfterPairIndex","radiusImage","distanceFromPoint","_limitCursorRadiusImage","TOUCH_TAP","_limitCursorRadius","canvasCoords","areaModifier","topLeft","bottomRight","canvasArea","area","pow","freehand","pixelCoords","closest","distanceFromToolI","distanceToMidPoint","correctedPair","magnifySize","magnificationLevel","zoomCanvas","zoomElement","_createMagnificationCanvas","disabledCallback","_destroyMagnificationCanvas","_addMagnifyingGlass","_updateMagnifyingGlass","_removeMagnifyingGlass","touchDragEndCallback","mouseClickCallback","_drawMagnificationTool","_removeZoomElement","_drawZoomedElement","querySelector","style","display","body","cursor","magnifyCanvas","canvasLocation","copyFrom","touchOffset","magnifyPosition","magnifierBox","getBoundingClientRect","origCanvas","zoomEnabledElement","classList","appendChild","removeChild","_dragCallback","_getTranslation","_applyTranslation","widthScale","heightScale","rowPixelSpacing","columnPixelSpacing","renderer","renderActiveReferenceLine","waitForEnabledElementImageToLoad","forceImageUpdate","setToPixelCoordinateSystem","referenceEnabledElement","horizontal","horizontalStrategy","vertical","verticalStrategy","dragCallback","initialRotation","initialPoints","centerPoints","angleInfo","minorTickLength","majorTickLength","colPixelSpacing","rowImagePixelSpacing","colImagePixelSpacing","canvasSize","verticalIntervalScale","horizontalIntervalScale","hscaleBounds","computeScaleBounds","vscaleBounds","imageAttributes","verticalMinorTick","horizontalMinorTick","verticalLine","horizontalLine","drawVerticalScalebarIntervals","drawHorizontalScalebarIntervals","horizontalReduction","verticalReduction","hReduction","vReduction","canvasBounds","startPoint","endPoint","allowSkipping","images","pixelsPerImage","_getPixelPerImage","_getDeltaY","imageIdIndexOffset","deltaPointsY","stackScrollSpeed","offsetHeight","minWindowWidth","_resetHandles","_startOutliningRegion","_setHandlesAndUpdate","_applyStrategy","_isEmptyObject","_applyWWWCRegion","obj","pixelLuminanceData","minMaxMean","_calculateMinMaxMean","maxPixelValue","mean","pixelLuminance","globalMin","globalMax","numPixels","spv","basicLevelingStrategy","maxVOI","minVOI","imageDynamicRange","multiplier","minScale","maxScale","ticks","updatedViewport","changeViewportScale","correctShift","translateStrategy","zoomToCenter","zoomToCenterStrategy","preventZoomOutsideImage","startX","startY","newCoords","translateSpeed","outwardsMinScaleToTranslate","minTranslation","desiredTranslation","distanceToDesired","pageStartX","pageStartY","imageStartX","imageStartY","preventNewMeasurement","middle","drawHandlesOnHover","handleStartCanvas","handleMiddleCanvas","handleOptions","sideA","sideB","sideC","sideALength","sideBLength","sideCLength","acos","rAngle","textBoxText","textWidth","transform","internal","getTransform","transformPoint","suffix","String","fromCharCode","parseInt","doneMovingEndHandleOptions","doneMovingMiddleHandleOptions","getTextCallback","changeTextCallback","arrowFirst","handleEndCanvas","textHeight","midpoint","_updateTextForNearbyAnnotation","_doneChangingTextCallback","updatedText","deleteTool","doneChangingTextCallback","prompt","emptyLocationCallback","textBoxConfig","shadowConfig","changeMeasurementLocationCallback","getMeasurementLocationCallback","additionalData","mergedConfiguration","_moveCallback","handleSelectedMouseCallback","handleSelectedTouchCallback","hasIncomplete","complete","start2","end2","toMoveHandle","maybePending","getIncomplete","ev","calculateValue","dx1","ceil","dy1","dx2","dy2","isNaN","onMeasureModified","goodEventData","hasStartAndEndHandles","validParameters","startCanvas","endCanvas","minorEllipse","majorEllipse","pointInMinorEllipse","pointInEllipse","pointInMajorEllipse","hasPixelSpacing","pixelSpacing","cachedStats","_throttledUpdateCachedStats","_updateCachedStats","_findTextBoxAnchorPoints","textBoxContent","_createTextBoxContent","throttle","_calculateStats","startHandle","endHandle","_getEllipseImageCoordinates","isColorImage","stdDev","meanStdDevSUV","showMinMax","showHounsfieldUnits","otherLines","hasStandardUptakeValues","meanString","stdDevString","SUVtext","meanSuvString","stdDevSuvString","targetStringLength","minString","maxString","_formatArea","ellipseCoordinates","pixels","getPixels","ellipseMeanStdDev","calculateEllipseStatistics","count","variance","insertOrDelete","freehandArea","calculateFreehandStatistics","freehandIntersect","defaultFreehandConfiguration","_drawing","_dragging","_modifying","_drawingMouseDownCallback","_drawingMouseMoveCallback","_drawingMouseDragCallback","_drawingMouseUpCallback","_drawingMouseDoubleClickCallback","_editMouseUpCallback","_editMouseDragCallback","_drawingTouchStartCallback","_drawingTouchDragCallback","_drawingDoubleTapClickCallback","_editTouchDragCallback","isPointNearTool","_pointNearHandle","distanceI","invalidHandlePlacement","invalidColor","j","polyBoundingBox","alwaysShowHandles","activeHandleRadius","canComplete","completeHandleRadius","firstHandle","meanStdDev","bounds","right","bottom","scaling","moSuffix","meanText","stdDevText","areaText","_startDrawing","_addPoint","nearby","_pointNearHandleAllTools","handleNearby","dragOrigin","currentHandle","_activateModify","_checkInvalidHandleLocation","_drawingDrag","_addPointPencilMode","lastHandlePlaced","_endDrawing","completeDrawing","handleIndex","modify","_getPrevHandleIndex","lastLineIndex","lastLine","_deactivateModify","_dropHandle","currentHandleData","previousHandleData","lastHandleID","_referencedElement","_activateDraw","_activeDrawingToolReference","newHandleData","handleFurtherThanMinimumSpacing","_isDistanceLargerThanSpacing","every","_deactivateDraw","_checkHandlesPencilMode","_checkHandlesPolygonMode","mouseAtOriginHandle","_isDistanceSmallerThanCompleteSpacingCanvas","newHandle","_invalidHandlePencilMode","_isDistanceSmallerThanSpacing","p1","p2","p1Canvas","p2Canvas","_drawingInteractionType","completeHandleRadiusTouch","_compareDistanceToSpacing","comparison","spacing","_closeToolIfDrawing","dx","dy","hasEndHandle","probeCoords","distanceToPoint","_getRectangleImageCoordinates","roiCoordinates","roiMeanStdDev","_calculateRectangleStats","rectangle","sumSquared","markers","current","ascending","touchPressCallback","_changeText","doubleClickCallback","increment","insideBoundingBox","checkPixelSpacing","timestamp","getTime","perpendicularStart","longestDiameter","shortestDiameter","hasHandlesOutside","longestDiameterSize","shortestDiameterSize","isTooSmal","isTooFast","cancelled","locked","calculateLongestAndShortestDiameters","getHandle","extraAttributes","mouseEventData","isCreating","perpendicularEnd","handleDoneMove","moving","selected","handleParams","unselectAllHandles","invertHandles","getDoneMovingCallback","setHandlesMovingState","touchMoveHandle","swapAttribute","attribute","originalA","originalB","swapHandles","wx","wy","values","handleActivatorChanged","newActiveState","hover","nearTool","nearToolAndInactive","notNearToolAndActive","distanceFromTool","setHandlesPosition","currentImage","getImage","imageRenderedHandler","newImage","interactionEndCallback","proposedPoint","longLine","perpendicularLine","intersection","lineSegment","intersectLine","distanceFromPerpendicularP1","distanceFromPerpendicularP2","distanceToLineP2","newLineLength","k","newIntersection","movedPoint","fudgeFactor","fixedPoint","distanceFromFixed","distanceFromMoved","distanceBetweenPoints","total","adjustedLineP1","adjustedLineP2","outOfBounds","result","d1","d2","perpendicularBothFixedLeft","perpendicularBothFixedRight","perpendicularLeftFixedPoint","perpendicularRightFixedPoint","touchEndEvents","pointNearPerpendicular","strokeWidth","updatePerpendicularLineHandles","getTextBoxText","lengthText","widthText","labels","tempW","tempL","endX","endY","mid","vectorX","vectorY","perpendicularLineLength","nearToolAndNotMarkedActive","notNearToolAndMarkedActive","referencedToolData","_startPainting","_paint","_startListeningForMouseUp","_lastImageCoords","isToolActive","renderBrush","drawId","colorArray","_mouseUpRender","_stopListeningForMouseUp","oldRadius","newRadius","_getEnabledElement","brushData","dim","xy","xyz","buffer","ArrayBuffer","uint8View","Uint8Array","activeStrategy","_options","_configuration","_applyMixins","mixinsArray","drawBrushPixels","getCircle","brushModule","overlapping","_overlappingStrategy","nonOverlapping","_nonOverlappingStrategy","mousePosition","_getBrushColor","circleRadius","mouseCoordsCanvas","ellipse","pointerArray","_drawMainColor","segmentationIndex","shouldErase","_isCtrlDown","Uint8ClampedArray","toolDataI","referenceImagePlane","referenceElement","targetImage","referenceImage","frameOfReferenceUID","targetNormal","referenceNormal","angleInRadians","angleTo","referenceLine","calculateReferenceLine","filename","mimetype","msToBlob","blob","navigator","msSaveBlob","lnk","download","href","createEvent","initMouseEvent","dispatchEvent","p0","p12","p13","p23","getPixelIndex","spIndex","drawBrushOnCanvas","canvasPtTL","canvasPtBR","sizeX","sizeY","canvasPt","xCoord","yCoord","x0","y0","circleArray","storedPixelValue","skipRescale","patientStudyModule","modalityPixelValue","patientWeight","petSequenceModule","radiopharmaceuticalInfo","startTime","radiopharmaceuticalStartTime","totalDose","radionuclideTotalDose","halfLife","radionuclideHalfLife","seriesAcquisitionTime","seriesTime","acquisitionTimeInSeconds","fracToDec","fractionalSeconds","seconds","minutes","hours","injectionStartTimeInSeconds","durationInSeconds","correctedDose","exp","fractionalValue","val","box","arrayOrVector3","_copy","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","TypeError","isObject","invokeFunc","time","thisArg","startTimer","pendingFunc","cancelTimer","cancelAnimationFrame","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","pending","debounced","isInvoking","location","xRadius","yRadius","normalized","inEllipse","ClickedLineData","handleIndexArray","FreehandLineFinder","_eventData","_toolName","findTool","closeLines","_getCloseLinesInTool","clickedLineData","_findCorrectLine","_toolData","_mousePoint","closestHandle","_nearestHandleToPointAllTools","closestHandleForToolI","_nearestHandleToPoint","handleDistanceFromMousePoint","getNextHandleIndex","_distanceOfPointfromLine","_pointProjectsToLineSegment","handle1","handle2","getCanvasPointsFromHandles","r","getLineAsVector","m","_getLineOriginToMouseAsVector","mProj","magnitude","pMouse","twiceAreaOfTriangle","rMagnitude","dataHandles","statisticsObj","getSum","squared","sumPointIfInFreehand","workingSum","pixelValue","pointInFreehand","freeHandArea","candidateHandle","lastHandleId","lastHandle","doesIntersectOtherLines","modifiedHandleId","modifiedHandle","neighborHandleId","neighborHandle","q1","ignoredHandleIds","q2","doesIntersect","orient","onSegment","dataHandle","q","orientationValue","deleteInfo","_deletePoint","freehandLineFinder","insertInfo","findLine","_insertPoint","deleteHandle","_getInsertionIndex","arrayContainsZero","inROI","rayFromPointCrosssesLine","isEnclosedY","yp","y1","y2","isLineRightOfPoint","lp1","lp2","lptemp","lPointY","lineSegmentAtPoint","sign","gradient","dydx","fx","handleI","handleJ","defaultValue","keyCode","KEY_CODES","luminance","red","green","blue","configMaxSimultaneousRequests","IE","Firefox","Opera","Chrome","Safari","ua","userAgent","M","match","tem","test","exec","join","appName","appVersion","newMaxSimultaneousRequests","infoString","browserName","browserVersion","browserData","pattern","RegExp","storedPixelData","ignorePointerEvents","webkitUserSelect","webkitTouchCallout","mozUserSelect","msUserSelect","oUserSelect","khtmlUserSelect","userSelect","unselectable","oncontextmenu","pointerEvents","parts","imagePoint","multiplyScalar","getRectangleFromImagePlane","topRight","bottomLeft","Line3","lineRectangleIntersection","intersections","side","segment","targetRowCosines","targetColumnCosines","targetImagePositionPatient","referenceRowCosines","referenceColumnCosines","referenceImagePositionPatient","targetPlane","Plane","setFromNormalAndCoplanarPoint","referencePlane","originDirection","intersectPlane","origin","distanceTo","precision","nbImages","pendingEvent","scrollWithoutSkipping","newImageHandler","imagePromise","fontScale","scaledFontSize","lineHeight","el","CustomEvent","cancelable","initCustomEvent","ms","ex","scaleLimits","oldFactor","factor","viewportOrientation","cosA","sinA","newX","newY"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA,cAAM;AACN;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA,sDAA8C;AAC9C;AACA;AACA,oCAA4B;AAC5B,qCAA6B;AAC7B,yCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAA6B;AAC7B,qCAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAAqB,gBAAgB;AACrC;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,6BAAqB,gBAAgB;AACrC;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,aAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAAkB,8BAA8B;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA,YAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAAmB,cAAc;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAgB,KAAK;AACrB;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,wBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,uCAAuC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAiB,sBAAsB;AACvC;AACA;AACA;AACA,gBAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,kBAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;AACA;AACA,eAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AACN;AACA;AACA;AACA;AACA;AACA,gBAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,8CAAsC,uBAAuB;;;AAG7D;AACA;;;;;;;;;;;;AC1vBA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wC;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA,mC;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACNA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8B;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;AAEA,iC;;;;;;;;;;;ACPA,qBAAqB,mBAAO,CAAC,kFAAkB;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,2B;;;;;;;;;;;ACjBA;AACA;AACA;;AAEA,kC;;;;;;;;;;;ACJA;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACJA,cAAc,mBAAO,CAAC,2EAAmB;;AAEzC,4BAA4B,mBAAO,CAAC,gGAAyB;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4C;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iC;;;;;;;;;;;ACTA,wBAAwB,mBAAO,CAAC,wFAAqB;;AAErD,sBAAsB,mBAAO,CAAC,oFAAmB;;AAEjD,wBAAwB,mBAAO,CAAC,wFAAqB;;AAErD;AACA;AACA;;AAEA,oC;;;;;;;;;;;ACVA,wBAAwB,2EAA2E,oCAAoC,mBAAmB,GAAG,EAAE,OAAO,oCAAoC,8HAA8H,GAAG,EAAE,sBAAsB;;AAEnW;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yB;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,kFAAqB;;;;;;;;;;;;ACA9C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,iEAAW;;AAEpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;AChtBA;AAAA;;;;;;;;;;;;AAYe,yEAASA,OAAT,EAAkBC,EAAlB,EAAsB;AACnCD,SAAO,CAACE,IAAR;AACAD,IAAE,CAACD,OAAD,CAAF;AACAA,SAAO,CAACG,OAAR;AACD,C;;;;;;;;;;;;AChBD;AAAA;AAAA;AAAA;AACA;AAEA;;;;;;;;;;;;;;AAae,yEAASH,OAAT,EAAkBI,KAAlB,EAAyBC,GAAzB,EAA8BC,KAA9B,EAAqCC,SAArC,EAAgD;AAC7D;AACA,MAAMC,UAAU,GAAG,EAAnB;AAEA,MAAMC,KAAK,GAAGC,IAAI,CAACC,KAAL,CAAWN,GAAG,CAACO,CAAJ,GAAQR,KAAK,CAACQ,CAAzB,EAA4BP,GAAG,CAACQ,CAAJ,GAAQT,KAAK,CAACS,CAA1C,CAAd,CAJ6D,CAM7D;;AACA,MAAIC,OAAO,GAAG;AACZR,SAAK,EAALA,KADY;AAEZC,aAAS,EAATA;AAFY,GAAd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","file":"cornerstoneTools.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cornerstone-tools\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cornerstone-tools\"] = factory();\n\telse\n\t\troot[\"cornerstoneTools\"] = factory();\n})(window, function() {\nreturn "," \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = window[\"webpackHotUpdate\"];\n \twindow[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\n \t\t;\n \t\thead.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\")\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \tvar hotCurrentHash = \"7fe0100353f076b98f3f\"; // eslint-disable-line no-unused-vars\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule; // eslint-disable-line no-unused-vars\n \tvar hotCurrentParents = []; // eslint-disable-line no-unused-vars\n \tvar hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1)\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) me.children.push(request);\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (typeof dep === \"undefined\") hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (typeof dep === \"undefined\") hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\")\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(\"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tvar chunkId = \"cornerstoneTools\";\n \t\t\t{\n \t\t\t\t// eslint-disable-line no-lone-blocks\n \t\t\t\t/*globals chunkId */\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.slice().map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (!module || module.hot._selfAccepted) continue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted\n \t\t\t)\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Not in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\thotCurrentHash = hotUpdateNewHash;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = [moduleId];\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n\n \t// Load entry module and return exports\n \treturn hotCreateRequire(\"./index.js\")(__webpack_require__.s = \"./index.js\");\n","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() {\n return this || (typeof self === \"object\" && self);\n})() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","/**\n * This function manages the {@link https://www.w3.org/TR/2dcontext/#the-canvas-state|save/restore}\n * pattern for working in a new context state stack. The parameter `fn` is passed the `context` and can\n * execute any API calls in a clean stack.\n * @public\n * @method draw\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target Canvas\n * @param {ContextFn} fn - A function which performs drawing operations within the given context.\n * @returns {undefined}\n */\nexport default function(context, fn) {\n context.save();\n fn(context);\n context.restore();\n}\n","import drawLine from './drawLine.js';\nimport drawJoinedLines from './drawJoinedLines.js';\n\n/**\n * Draw an arrow using the drawing API.\n * @public\n * @method drawArrow\n * @memberof Drawing\n *\n * @param {Object} context The canvas context.\n * @param {Object} start The start position.\n * @param {Object} end The end position.\n * @param {string} color The color of the arrow.\n * @param {number} lineWidth The width of the arrow line.\n * @returns {undefined}\n */\nexport default function(context, start, end, color, lineWidth) {\n // Variables to be used when creating the arrow\n const headLength = 10;\n\n const angle = Math.atan2(end.y - start.y, end.x - start.x);\n\n // Starting path of the arrow from the start square to the end square and drawing the stroke\n let options = {\n color,\n lineWidth,\n };\n\n drawLine(context, undefined, start, end, options, 'canvas');\n options = {\n color,\n lineWidth,\n fillStyle: color,\n };\n\n const points = [\n {\n x: end.x - headLength * Math.cos(angle - Math.PI / 7),\n y: end.y - headLength * Math.sin(angle - Math.PI / 7),\n },\n {\n x: end.x - headLength * Math.cos(angle + Math.PI / 7),\n y: end.y - headLength * Math.sin(angle + Math.PI / 7),\n },\n end,\n ];\n\n drawJoinedLines(context, undefined, end, points, options, 'canvas');\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a circle with given `center` and `radius`.\n * @public\n * @method drawCircle\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} center - `{ x, y }` in either pixel or canvas coordinates.\n * @param {number} radius - The circle's radius in canvas units.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n center,\n radius,\n options,\n coordSystem = 'pixel'\n) {\n if (coordSystem === 'pixel') {\n center = external.cornerstone.pixelToCanvas(element, center);\n }\n\n path(context, options, context => {\n context.arc(center.x, center.y, radius, 0, 2 * Math.PI);\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw an ellipse within the bounding box defined by `corner1` and `corner2`.\n * @public\n * @method drawEllipse\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel'\n) {\n // http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas\n if (coordSystem === 'pixel') {\n corner1 = external.cornerstone.pixelToCanvas(element, corner1);\n corner2 = external.cornerstone.pixelToCanvas(element, corner2);\n }\n const x = Math.min(corner1.x, corner2.x);\n const y = Math.min(corner1.y, corner2.y);\n const w = Math.abs(corner1.x - corner2.x);\n const h = Math.abs(corner1.y - corner2.y);\n\n const kappa = 0.5522848,\n ox = (w / 2) * kappa, // Control point offset horizontal\n oy = (h / 2) * kappa, // Control point offset vertical\n xe = x + w, // X-end\n ye = y + h, // Y-end\n xm = x + w / 2, // X-middle\n ym = y + h / 2; // Y-middle\n\n path(context, options, context => {\n context.moveTo(x, ym);\n context.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n context.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n context.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n context.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n context.closePath();\n });\n}\n","import external from './../externalModules.js';\nimport toolStyle from './../stateManagement/toolStyle.js';\nimport toolColors from './../stateManagement/toolColors.js';\nimport path from './path.js';\nimport { state } from './../store/index.js';\n\n/**\n * Draws proivded handles to the provided context\n * @public\n * @method drawHandles\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {*} evtDetail - Cornerstone's 'cornerstoneimagerendered' event's `detail`\n * @param {Object[]|Object} handles - An array of handle objects, or an object w/ named handle objects\n * @param {Object} [options={}] - Options object\n * @param {string} [options.color]\n * @param {Boolean} [options.drawHandlesIfActive=false] - Whether the handles should only be drawn if Active (hovered/selected)\n * @param {string} [options.fill]\n * @param {Number} [options.handleRadius=6]\n * @returns {undefined}\n */\nexport default function(context, evtDetail, handles, options = {}) {\n const element = evtDetail.element;\n const defaultColor = toolColors.getToolColor();\n\n context.strokeStyle = options.color || defaultColor;\n\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const handleKey = handleKeys[i];\n const handle = handles[handleKey];\n\n if (handle.drawnIndependently === true) {\n continue;\n }\n\n if (options.drawHandlesIfActive === true && !handle.active) {\n continue;\n }\n\n const lineWidth = handle.active\n ? toolStyle.getActiveWidth()\n : toolStyle.getToolWidth();\n const fillStyle = options.fill;\n\n path(\n context,\n {\n lineWidth,\n fillStyle,\n },\n context => {\n const handleCanvasCoords = external.cornerstone.pixelToCanvas(\n element,\n handle\n );\n\n // Handle's radisu, then tool's radius, then default radius\n const handleRadius =\n handle.radius || options.handleRadius || state.handleRadius;\n\n context.arc(\n handleCanvasCoords.x,\n handleCanvasCoords.y,\n handleRadius,\n 0,\n 2 * Math.PI\n );\n }\n );\n }\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a series of joined lines, starting at `start` and then going to each point in `points`.\n * @public\n * @method drawJoinedLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} start - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object[]} points - `[{ x, y }]` An array of points in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n start,\n points,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n if (coordSystem === 'pixel') {\n start = external.cornerstone.pixelToCanvas(element, start);\n points = points.map(p => external.cornerstone.pixelToCanvas(element, p));\n }\n context.moveTo(start.x, start.y);\n points.forEach(({ x, y }) => {\n context.lineTo(x, y);\n });\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a line between `start` and `end`.\n *\n * @public\n * @method drawLine\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} start - `{ x, y } in either pixel or canvas coordinates.\n * @param {Object} end - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function drawLine(\n context,\n element,\n start,\n end,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n if (coordSystem === 'pixel') {\n start = external.cornerstone.pixelToCanvas(element, start);\n end = external.cornerstone.pixelToCanvas(element, end);\n }\n\n context.moveTo(start.x, start.y);\n context.lineTo(end.x, end.y);\n });\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw multiple lines.\n * @public\n * @method drawJoinedLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object[]} lines - `[{ start: {x, y}, end: { x, y }]` An array of `start`, `end` pairs.\n * Each point is `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n lines,\n options,\n coordSystem = 'pixel'\n) {\n path(context, options, context => {\n lines.forEach(line => {\n let start = line.start;\n let end = line.end;\n\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n start = cornerstone.pixelToCanvas(element, start);\n end = cornerstone.pixelToCanvas(element, end);\n }\n\n context.moveTo(start.x, start.y);\n context.lineTo(end.x, end.y);\n });\n });\n}\n","import external from '../externalModules.js';\nimport drawLine from './drawLine.js';\n\n/**\n * Draw a link between an annotation to a box.\n * @public\n * @method drawLink\n * @memberof Drawing\n *\n * @param {Object[]} linkAnchorPoints An array of possible anchor points.\n * @param {Object} refPoint A reference point to select the anchor point.\n * @param {Object} boundingBox The bounding box to link.\n * @param {Object} context The canvas context.\n * @param {string} color The link color.\n * @param {number} lineWidth The line width of the link.\n * @returns {undefined}\n */\nexport default function(\n linkAnchorPoints,\n refPoint,\n boundingBox,\n context,\n color,\n lineWidth\n) {\n // Draw a link from \"the closest anchor point to refPoint\" to \"the nearest midpoint on the bounding box\".\n\n // Find the closest anchor point to RefPoint\n const start =\n linkAnchorPoints.length > 0\n ? external.cornerstoneMath.point.findClosestPoint(\n linkAnchorPoints,\n refPoint\n )\n : refPoint;\n\n // Calculate the midpoints of the bounding box\n const boundingBoxPoints = [\n {\n x: boundingBox.left + boundingBox.width / 2,\n y: boundingBox.top,\n },\n {\n x: boundingBox.left,\n y: boundingBox.top + boundingBox.height / 2,\n },\n {\n x: boundingBox.left + boundingBox.width / 2,\n y: boundingBox.top + boundingBox.height,\n },\n {\n x: boundingBox.left + boundingBox.width,\n y: boundingBox.top + boundingBox.height / 2,\n },\n ];\n\n // Calculate the link endpoint by identifying which midpoint of the bounding box\n // Is closest to the start point.\n const end = external.cornerstoneMath.point.findClosestPoint(\n boundingBoxPoints,\n start\n );\n\n // Finally we draw the dashed linking line\n const options = {\n color,\n lineWidth,\n lineDash: [2, 3],\n };\n\n drawLine(context, undefined, start, end, options, 'canvas');\n}\n","import external from '../externalModules.js';\nimport drawTextBox from './drawTextBox.js';\nimport drawLink from './drawLink.js';\n\n/**\n * Draw a link between an annotation to a textBox.\n * @public\n * @method drawLinkedTextBox\n * @memberof Drawing\n *\n * @param {Object} context - The canvas context.\n * @param {HTMLElement} element - The element on which to draw the link.\n * @param {Object} textBox - The textBox to link.\n * @param {Object} text - The text to display in the textbox.\n * @param {Object[]} handles - The handles of the annotation.\n * @param {Object[]} textBoxAnchorPoints - An array of possible anchor points on the textBox.\n * @param {string} color - The link color.\n * @param {number} lineWidth - The line width of the link.\n * @param {number} xOffset - The x offset of the textbox.\n * @param {boolean} yCenter - Vertically centers the text if true.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n textBox,\n text,\n handles,\n textBoxAnchorPoints,\n color,\n lineWidth,\n xOffset,\n yCenter\n) {\n const cornerstone = external.cornerstone;\n\n // Convert the textbox Image coordinates into Canvas coordinates\n const textCoords = cornerstone.pixelToCanvas(element, textBox);\n\n if (xOffset) {\n textCoords.x += xOffset;\n }\n\n const options = {\n centering: {\n x: false,\n y: yCenter,\n },\n };\n\n // Draw the text box\n textBox.boundingBox = drawTextBox(\n context,\n text,\n textCoords.x,\n textCoords.y,\n color,\n options\n );\n if (textBox.hasMoved) {\n // Identify the possible anchor points for the tool -> text line\n const linkAnchorPoints = textBoxAnchorPoints(handles).map(h =>\n cornerstone.pixelToCanvas(element, h)\n );\n\n // Draw dashed link line between tool and text\n drawLink(\n linkAnchorPoints,\n textCoords,\n textBox.boundingBox,\n context,\n color,\n lineWidth\n );\n }\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Draw a rectangle defined by `corner1` and `corner2`.\n * @public\n * @method drawRect\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel'\n) {\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n corner1 = cornerstone.pixelToCanvas(element, corner1);\n corner2 = cornerstone.pixelToCanvas(element, corner2);\n }\n\n const left = Math.min(corner1.x, corner2.x);\n const top = Math.min(corner1.y, corner2.y);\n const width = Math.abs(corner1.x - corner2.x);\n const height = Math.abs(corner1.y - corner2.y);\n\n path(context, options, context => {\n context.rect(left, top, width, height);\n });\n}\n","import textStyle from '../stateManagement/textStyle.js';\nimport draw from './draw.js';\nimport fillTextLines from './fillTextLines.js';\nimport fillBox from './fillBox.js';\n\n/**\n * Compute the width of the box required to display the given `text` with a given `padding`.\n * @public\n * @function textBoxWidth\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {String} text - The text to find the width of.\n * @param {Number} padding - The padding to apply on either end of the text.\n * @returns {Number} computed text box width\n */\nexport function textBoxWidth(context, text, padding) {\n const font = textStyle.getFont();\n const origFont = context.font;\n\n if (font && font !== origFont) {\n context.font = font;\n }\n const width = context.measureText(text).width;\n\n if (font && font !== origFont) {\n context.font = origFont;\n }\n\n return width + 2 * padding;\n}\n\n/**\n * Draws a textBox.\n * @public\n * @function drawTextBox\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context The canvas context.\n * @param {string} textLines The text to display.\n * @param {number} x The x position of the textBox.\n * @param {number} y The y position of the textBox.\n * @param {string} color The color of the textBox.\n * @param {Object} options Options for the textBox.\n * @returns {Object} {top, left, width, height} - Bounding box; can be used for pointNearTool\n */\nexport default function(context, textLines, x, y, color, options) {\n if (Object.prototype.toString.call(textLines) !== '[object Array]') {\n textLines = [textLines];\n }\n\n const padding = 5;\n const fontSize = textStyle.getFontSize();\n const backgroundColor = textStyle.getBackgroundColor();\n\n // Find the longest text width in the array of text data\n let maxWidth = 0;\n\n textLines.forEach(function(text) {\n // Get the text width in the current font\n const width = textBoxWidth(context, text, padding);\n\n // Find the maximum with for all the text rows;\n maxWidth = Math.max(maxWidth, width);\n });\n\n // Calculate the bounding box for this text box\n const boundingBox = {\n width: maxWidth,\n height: padding + textLines.length * (fontSize + padding),\n };\n\n draw(context, context => {\n context.strokeStyle = color;\n\n // Draw the background box with padding\n if (options && options.centering && options.centering.x === true) {\n x -= boundingBox.width / 2;\n }\n\n if (options && options.centering && options.centering.y === true) {\n y -= boundingBox.height / 2;\n }\n\n boundingBox.left = x;\n boundingBox.top = y;\n\n const fillStyle =\n options && options.debug === true ? '#FF0000' : backgroundColor;\n\n fillBox(context, boundingBox, fillStyle);\n\n // Draw each of the text lines on top of the background box\n fillTextLines(context, boundingBox, textLines, color, padding);\n });\n\n // Return the bounding box so it can be used for pointNearHandle\n return boundingBox;\n}\n","/**\n * Draw a filled rectangle defined by `boundingBox` using the style defined by `fillStyle`.\n * @public\n * @method fillBox\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {Object} boundingBox - `{ left, top, width, height }` in canvas coordinates.\n * @param {FillStyle} fillStyle - The fillStyle to apply to the region.\n * @returns {undefined}\n */\nexport default function(context, boundingBox, fillStyle) {\n context.fillStyle = fillStyle;\n context.fillRect(\n boundingBox.left,\n boundingBox.top,\n boundingBox.width,\n boundingBox.height\n );\n}\n","import external from './../externalModules.js';\nimport path from './path.js';\n\n/**\n * Fill the region outside a rectangle defined by `corner1` and `corner2`.\n * @public\n * @method fillOutsideRect\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {HTMLElement} element - The DOM Element to draw on\n * @param {Object} corner1 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} corner2 - `{ x, y }` in either pixel or canvas coordinates.\n * @param {Object} options - See {@link path}\n * @param {String} [coordSystem='pixel'] - Can be \"pixel\" (default) or \"canvas\". The coordinate\n * system of the points passed in to the function. If \"pixel\" then cornerstone.pixelToCanvas\n * is used to transform the points from pixel to canvas coordinates.\n * @returns {undefined}\n */\nexport default function(\n context,\n element,\n corner1,\n corner2,\n options,\n coordSystem = 'pixel'\n) {\n if (coordSystem === 'pixel') {\n const cornerstone = external.cornerstone;\n\n corner1 = cornerstone.pixelToCanvas(element, corner1);\n corner2 = cornerstone.pixelToCanvas(element, corner2);\n }\n\n const left = Math.min(corner1.x, corner2.x);\n const top = Math.min(corner1.y, corner2.y);\n const width = Math.abs(corner1.x - corner2.x);\n const height = Math.abs(corner1.y - corner2.y);\n\n path(context, options, context => {\n context.rect(0, 0, context.canvas.clientWidth, context.canvas.clientHeight);\n context.rect(left + width, top, -width, height);\n });\n}\n","import textStyle from './../stateManagement/textStyle.js';\n\n/**\n * Draw multiple lines of text within a bounding box.\n * @public\n * @method fillTextLines\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Target context\n * @param {Object} boundingBox - `{ left, top }` in canvas coordinates. Only the top-left corner is specified, as the text will take up as much space as it needs.\n * @param {String[]} textLines - The text to be displayed.\n * @param {FillStyle} fillStyle - The fillStyle to apply to the text.\n * @param {Number} padding - The amount of padding above/below each line in canvas units. Note this gives an inter-line spacing of `2*padding`.\n * @returns {undefined}\n */\nexport default function(context, boundingBox, textLines, fillStyle, padding) {\n const fontSize = textStyle.getFontSize();\n\n context.font = textStyle.getFont();\n context.textBaseline = 'top';\n context.fillStyle = fillStyle;\n textLines.forEach(function(text, index) {\n context.fillText(\n text,\n boundingBox.left + padding,\n boundingBox.top + padding + index * (fontSize + padding)\n );\n });\n}\n","/**\n * Create a new {@link CanvasRenderingContext2D|context} object for the given {@link HTMLCanvasElement|canvas}\n * and set the transform to the {@link https://www.w3.org/TR/2dcontext/#transformations|identity transform}.\n *\n * @public\n * @function getNewContext\n * @memberof Drawing\n *\n * @param {HTMLCanvasElement} canvas - Canvas you would like the context for\n * @returns {CanvasRenderingContext2D} - The provided canvas's 2d context\n */\nexport default function(canvas) {\n const context = canvas.getContext('2d');\n\n context.setTransform(1, 0, 0, 1, 0, 0);\n\n return context;\n}\n","/**\n * A {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle|color, gradient or pattern} to use inside shapes.\n * @typedef {(String|CanvasGradient|CanvasPattern)} FillStyle\n */\n\n/**\n * A {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/strokeStyle|color, gradient or pattern} to use for the lines around shapes.\n * @typedef {(String|CanvasGradient|CanvasPattern)} StrokeStyle\n */\n\n/**\n * @callback ContextFn\n * @param {CanvasRenderingContext2D} context\n */\n\nimport draw from './draw.js';\nimport drawArrow from './drawArrow.js';\nimport drawCircle from './drawCircle.js';\nimport drawEllipse from './drawEllipse.js';\nimport drawHandles from './drawHandles.js';\nimport drawJoinedLines from './drawJoinedLines.js';\nimport drawLine from './drawLine.js';\nimport drawLines from './drawLines.js';\nimport drawLink from './drawLink.js';\nimport drawLinkedTextBox from './drawLinkedTextBox.js';\nimport drawRect from './drawRect.js';\nimport drawTextBox from './drawTextBox.js';\nimport fillBox from './fillBox.js';\nimport fillOutsideRect from './fillOutsideRect.js';\nimport fillTextLines from './fillTextLines.js';\nimport getNewContext from './getNewContext.js';\nimport path from './path.js';\nimport setShadow from './setShadow.js';\nimport transformCanvasContext from './transformCanvasContext.js';\nimport resetCanvasContextTransform from './resetCanvasContextTransform.js';\n\n// Named exports\nexport {\n draw,\n drawArrow,\n drawCircle,\n drawEllipse,\n drawHandles,\n drawJoinedLines,\n drawLine,\n drawLines,\n drawLink,\n drawLinkedTextBox,\n drawRect,\n drawTextBox,\n fillBox,\n fillOutsideRect,\n fillTextLines,\n getNewContext,\n path,\n setShadow,\n transformCanvasContext,\n resetCanvasContextTransform,\n};\n","import toolStyle from './../stateManagement/toolStyle.js';\n\n/**\n * This function manages the beginPath/stroke pattern for working with\n * {@link https://www.w3.org/TR/2dcontext/#drawing-paths-to-the-canvas|path objects}.\n *\n * @public\n * @function path\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context to add path to\n * @param {Object} [options={}] - Drawing Options\n * @param {StrokeStyle} [options.color] - The stroke style of the path.\n * @param {Number} [options.lineWidth] - The width of lines in the path. If null, no line width is set.\n * If undefined then toolStyle.getToolWidth() is set.\n * @param {FillStyle} [options.fillStyle] - The style to fill the path with. If undefined then no filling is done.\n * @param {Number[]} [options.lineDash] - The {@link https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/setLineDash|dash pattern}\n * to use on the lines.\n * @param {ContextFn} fn - A drawing function to execute with the provided stroke pattern.\n * @returns {undefined}\n */\nexport default function(context, options = {}, fn) {\n const { color, lineWidth, fillStyle, lineDash } = options;\n\n context.beginPath();\n context.strokeStyle = color || context.strokeStyle;\n context.lineWidth =\n lineWidth ||\n (lineWidth === undefined && toolStyle.getToolWidth()) ||\n context.lineWidth;\n if (lineDash) {\n context.setLineDash(lineDash);\n }\n\n fn(context);\n\n if (fillStyle) {\n context.fillStyle = fillStyle;\n context.fill();\n }\n context.stroke();\n if (lineDash) {\n context.setLineDash([]);\n }\n}\n","/**\n * Resets the canvas {@link CanvasRenderingContext2D|context} transform to the\n * {@link https://www.w3.org/TR/2dcontext/#transformations|identity transform}.\n *\n * @public\n * @function resetCanvasContextTransform\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - context you wish to transform\n * @returns {void}\n */\nexport default function(context) {\n context.setTransform(1, 0, 0, 1, 0, 0);\n}\n","import getDefault from './../util/getDefault.js';\n\n/**\n * Set the {@link https://www.w3.org/TR/2dcontext/#shadows|shadow} properties of the context.\n * Each property is set on the context object if defined, otherwise a default value is set.\n *\n * @public\n * @method setShadow\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context to apply shadow options on\n * @param {Object} [options={}] - Options object\n * @param {Boolean} [options.shadow=undefined] - Whether to set any shadow options\n * @param {String} [options.shadowColor=#000000] - Default value: #000000\n * @param {Number} [options.shadowBlur=0] - Default Value: 0\n * @param {Number} [options.shadowOffsetX=1] - Default value: 1\n * @param {Number} [options.shadowOffsetY=1] - Default value: 1\n * @returns {undefined}\n */\nexport default function(context, options = {}) {\n if (options.shadow) {\n context.shadowColor = getDefault(options.shadowColor, '#000000');\n context.shadowBlur = getDefault(options.shadowBlur, 0);\n context.shadowOffsetX = getDefault(options.shadowOffsetX, 1);\n context.shadowOffsetY = getDefault(options.shadowOffsetY, 1);\n }\n}\n","/**\n * Transform the canvas {@link CanvasRenderingContext2D|context} such that it\n * coincides with the orientation of the viewport.\n *\n * @public\n * @function transformCanvasContext\n * @memberof Drawing\n *\n * @param {CanvasRenderingContext2D} context - Context you wish to transform.\n * @param {HTMLCanvasElement} canvas - Canvas the context relates to.\n * @param {*} viewport - The viewport you wish to map on to.\n * @returns {void}\n */\nexport default function(context, canvas, viewport) {\n if (!(viewport.vflip || viewport.vflip || viewport.rotation)) {\n return;\n }\n\n const translation = {\n x: canvas.width / 2 + viewport.translation.x * viewport.scale,\n y: canvas.height / 2 + viewport.translation.y * viewport.scale,\n };\n\n context.translate(translation.x, translation.y);\n\n if (viewport.rotation) {\n context.rotate((viewport.rotation * Math.PI) / 180);\n }\n\n if (viewport.vflip) {\n context.scale(1, -1);\n }\n\n if (viewport.hflip) {\n context.scale(-1, 1);\n }\n\n context.translate(-translation.x, -translation.y);\n}\n","import { state } from './../store/index.js';\nimport BaseBrushTool from './../tools/base/BaseBrushTool.js';\nimport onImageRenderedBrushEventHandler from '../eventListeners/onImageRenderedBrushEventHandler.js';\nimport external from './../externalModules.js';\n\nconst onImageRendered = function(evt) {\n const eventData = evt.detail;\n const element = eventData.element;\n\n // Render Annotation Tools\n const toolsToRender = state.tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' ||\n tool.mode === 'passive' ||\n tool.mode === 'enabled')\n );\n\n const brushTools = toolsToRender.filter(\n tool => tool instanceof BaseBrushTool\n );\n\n if (brushTools.length > 0) {\n onImageRenderedBrushEventHandler(evt);\n }\n\n toolsToRender.forEach(tool => {\n if (tool.renderToolData) {\n tool.renderToolData(evt);\n }\n });\n};\n\nconst enable = function(element) {\n element.addEventListener(\n external.cornerstone.EVENTS.IMAGE_RENDERED,\n onImageRendered\n );\n};\n\nconst disable = function(element) {\n element.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_RENDERED,\n onImageRendered\n );\n};\n\nexport default {\n enable,\n disable,\n};\n","import imageRenderedEventDispatcher from './imageRenderedEventDispatcher.js';\nimport mouseToolEventDispatcher from './mouseToolEventDispatcher.js';\nimport newImageEventDispatcher from './newImageEventDispatcher.js';\nimport touchToolEventDispatcher from './touchToolEventDispatcher.js';\n\nexport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n};\n","import external from '../../externalModules.js';\nimport { addToolState } from '../../stateManagement/toolState.js';\nimport { moveHandle, moveNewHandle } from '../../manipulators/index.js';\n\nexport default function(evt, tool) {\n //\n evt.preventDefault();\n evt.stopPropagation();\n const eventData = evt.detail;\n const element = eventData.element;\n const measurementData = tool.createNewMeasurement(eventData);\n\n if (!measurementData) {\n return;\n }\n\n // Associate this data with this imageId so we can render it and manipulate it\n addToolState(element, tool.name, measurementData);\n\n external.cornerstone.updateImage(element);\n\n const handleMover =\n Object.keys(measurementData.handles).length === 1\n ? moveHandle\n : moveNewHandle;\n\n handleMover(\n eventData,\n tool.name,\n measurementData,\n measurementData.handles.end,\n tool.options,\n 'mouse'\n );\n}\n","import customCallbackHandler from './../shared/customCallbackHandler.js';\nimport mouseDown from './mouseDown.js';\nimport mouseDownActivate from './mouseDownActivate.js';\nimport mouseDrag from './mouseDrag.js';\nimport mouseMove from './mouseMove.js';\n\nconst mouseClick = customCallbackHandler.bind(\n null,\n 'Mouse',\n 'mouseClickCallback'\n);\n\nconst mouseDoubleClick = customCallbackHandler.bind(\n null,\n 'Mouse',\n 'doubleClickCallback'\n);\n\nconst mouseUp = customCallbackHandler.bind(null, 'Mouse', 'mouseUpCallback');\n\nconst mouseWheel = customCallbackHandler.bind(\n null,\n 'MouseWheel',\n 'mouseWheelCallback'\n);\n\nexport {\n mouseClick,\n mouseDown,\n mouseDownActivate,\n mouseDoubleClick,\n mouseDrag,\n mouseMove,\n mouseUp,\n mouseWheel,\n};\n","// State\nimport { getters, state } from './../../store/index.js';\nimport { getToolState } from './../../stateManagement/toolState.js';\n// Util\nimport getToolsWithMoveableHandles from '../../store/getToolsWithMoveableHandles.js';\nimport { findHandleDataNearImagePoint } from '../../util/findAndMoveHelpers.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\n/**\n * MouseDown is called before MouseDownActivate. If MouseDown\n * finds an existing tool to interact with, it can prevent the\n * event from bubbling to MouseDownActivate.\n *\n * @private\n * @param {mousedown} evt\n * @listens {CornerstoneTools.event:cornerstonetoolsmousedown}\n * @returns {undefined}\n */\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const eventData = evt.detail;\n const element = evt.detail.element;\n const coords = evt.detail.currentPoints.canvas;\n\n // High level filtering\n const activeAndPassiveTools = getInteractiveToolsForElement(\n element,\n getters.mouseTools()\n );\n\n // ACTIVE TOOL W/ PRE CALLBACK?\n // Note: In theory, this should only ever be a single tool.\n let activeTools = activeAndPassiveTools.filter(\n tool =>\n tool.mode === 'active' &&\n Array.isArray(tool.options.mouseButtonMask) &&\n tool.options.mouseButtonMask.includes(eventData.buttons) &&\n tool.options.isMouseActive\n );\n\n if (state.isMultiPartToolActive) {\n activeTools = filterToolsUseableWithMultiPartTools(activeTools);\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.preMouseDownCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.preMouseDownCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n\n if (state.isMultiPartToolActive) {\n // Don't fire events to Annotation Tools during a multi part loop.\n return;\n }\n\n // Annotation tool specific\n const annotationTools = getToolsWithDataForElement(\n element,\n activeAndPassiveTools\n );\n\n // NEAR HANDLES?\n const annotationToolsWithMoveableHandles = getToolsWithMoveableHandles(\n element,\n annotationTools,\n coords,\n 'mouse'\n );\n\n if (annotationToolsWithMoveableHandles.length > 0) {\n const firstToolWithMoveableHandles = annotationToolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n\n const { handle, data } = findHandleDataNearImagePoint(\n element,\n toolState,\n firstToolWithMoveableHandles.name,\n coords\n );\n\n firstToolWithMoveableHandles.handleSelectedCallback(\n evt,\n data,\n handle,\n 'mouse'\n );\n\n return;\n }\n\n // NEAR TOOL?\n const annotationToolsWithPointNearClick = activeAndPassiveTools.filter(\n tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data =>\n tool.pointNearTool(element, data, coords, 'mouse')\n );\n\n return isNearPoint;\n }\n );\n\n if (annotationToolsWithPointNearClick.length > 0) {\n const firstToolNearPoint = annotationToolsWithPointNearClick[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n firstToolNearPoint.toolSelectedCallback(\n evt,\n firstAnnotationNearPoint,\n 'mouse'\n );\n\n return;\n }\n\n // ACTIVE TOOL W/ POST CALLBACK?\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.postMouseDownCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.postMouseDownCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n}\n","import addNewMeasurement from './addNewMeasurement.js';\nimport { getters, state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport BaseAnnotationTool from './../../tools/base/BaseAnnotationTool.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\n// Todo: We could simplify this if we only allow one active\n// Tool per mouse button mask?\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const eventData = evt.detail;\n const element = eventData.element;\n\n // Filter out disabled, enabled, and passive\n let tools = getActiveToolsForElement(element, getters.mouseTools());\n\n // Filter out tools that do not match mouseButtonMask\n tools = tools.filter(\n tool =>\n Array.isArray(tool.options.mouseButtonMask) &&\n tool.options.mouseButtonMask.includes(eventData.buttons) &&\n tool.options.isMouseActive\n );\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return;\n }\n\n const activeTool = tools[0];\n\n if (typeof activeTool.preMouseDownActivateCallback === 'function') {\n const consumedEvent = activeTool.preMouseDownActivateCallback(evt);\n\n if (consumedEvent) {\n return;\n }\n }\n\n if (state.isMultiPartToolActive) {\n return;\n }\n\n // Note: custom `addNewMeasurement` will need to prevent event bubbling\n if (activeTool.addNewMeasurement) {\n activeTool.addNewMeasurement(evt, 'mouse');\n } else if (activeTool instanceof BaseAnnotationTool) {\n addNewMeasurement(evt, activeTool);\n }\n}\n","import { getters, state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\n// Tools like wwwc. Non-annotation tools w/ specific\n// Down + mouse behavior\n// TODO: I don't like filtering in drag because it's such\n// A high frequency event. Anything we can do to reduce\n// Repeat math here would be a big help\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n let tools;\n const eventData = evt.detail;\n const element = eventData.element;\n\n // Filter out disabled, enabled, and passive\n tools = getActiveToolsForElement(element, getters.mouseTools());\n tools = tools.filter(\n tool =>\n Array.isArray(tool.options.mouseButtonMask) &&\n tool.options.mouseButtonMask.includes(eventData.buttons) &&\n tool.options.isMouseActive\n );\n tools = tools.filter(tool => typeof tool.mouseDragCallback === 'function');\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return;\n }\n\n const activeTool = tools[0];\n\n activeTool.mouseDragCallback(evt);\n}\n","import external from './../../externalModules.js';\n// State\nimport { getters, state } from './../../store/index.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\n\n/**\n * This is mostly used to update the [un]hover state\n * of a tool.\n *\n * @private\n * @param {*} evt\n * @returns {void}\n */\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n let tools;\n const { element, currentPoints } = evt.detail;\n\n // Set the mouse position incase any tool needs it.\n state.mousePositionImage = currentPoints.image;\n\n // TODO: instead of filtering these for every interaction, we can change our\n // TODO: State's structure to always know these values.\n // Filter out disabled and enabled\n tools = getInteractiveToolsForElement(element, getters.mouseTools());\n\n const activeTools = tools.filter(\n tool => tool.mode === 'active' && tool.options.isMouseActive\n );\n\n let imageNeedsUpdate = false;\n\n // If any tools are active, check if they have a cursor, and if so update image.\n if (activeTools.length > 0) {\n imageNeedsUpdate = activeTools.some(tool => tool.hasCursor);\n }\n\n tools = getToolsWithDataForElement(element, tools);\n\n // Iterate over each tool, and each tool's data\n // Activate any handles we're hovering over, or whole tools if we're near the tool\n // If we've changed the state of anything, redrawn the image\n\n for (let t = 0; t < tools.length; t++) {\n const tool = tools[t];\n\n if (typeof tool.mouseMoveCallback === 'function') {\n imageNeedsUpdate = tool.mouseMoveCallback(evt) || imageNeedsUpdate;\n }\n }\n\n // Tool data activation status changed, redraw the image\n if (imageNeedsUpdate === true) {\n external.cornerstone.updateImage(element);\n }\n}\n","import EVENTS from './../events.js';\nimport {\n mouseClick,\n mouseDown,\n mouseDownActivate,\n mouseDoubleClick,\n mouseDrag,\n mouseMove,\n mouseUp,\n mouseWheel,\n} from './mouseEventHandlers/index.js';\n\n/**\n * These listeners are emitted in order, and can be cancelled/prevented from bubbling\n * by any previous event.\n * - mouseMove: used to update the [un]hover state of a tool (highlighting)\n * - mouseDown: check to see if we are close to an existing annotation, grab it\n * - mouseDownActivate: createNewMeasurement (usually)\n * - mouseDrag: update measurement or apply strategy (wwwc)\n * - mouseDoubleClick: usually a one-time apply specialty action\n * - onImageRendered: redraw visible tool data\n * @private\n * @param {*} element\n * @returns {undefined}\n */\nconst enable = function(element) {\n element.addEventListener(EVENTS.MOUSE_CLICK, mouseClick);\n element.addEventListener(EVENTS.MOUSE_DOWN, mouseDown);\n element.addEventListener(EVENTS.MOUSE_DOWN_ACTIVATE, mouseDownActivate);\n element.addEventListener(EVENTS.MOUSE_DOUBLE_CLICK, mouseDoubleClick);\n element.addEventListener(EVENTS.MOUSE_DRAG, mouseDrag);\n element.addEventListener(EVENTS.MOUSE_MOVE, mouseMove);\n element.addEventListener(EVENTS.MOUSE_UP, mouseUp);\n element.addEventListener(EVENTS.MOUSE_WHEEL, mouseWheel);\n};\n\nconst disable = function(element) {\n element.removeEventListener(EVENTS.MOUSE_CLICK, mouseClick);\n element.removeEventListener(EVENTS.MOUSE_DOWN, mouseDown);\n element.removeEventListener(EVENTS.MOUSE_DOWN_ACTIVATE, mouseDownActivate);\n element.removeEventListener(EVENTS.MOUSE_DOUBLE_CLICK, mouseDoubleClick);\n element.removeEventListener(EVENTS.MOUSE_DRAG, mouseDrag);\n element.removeEventListener(EVENTS.MOUSE_MOVE, mouseMove);\n element.removeEventListener(EVENTS.MOUSE_UP, mouseUp);\n element.removeEventListener(EVENTS.MOUSE_WHEEL, mouseWheel);\n};\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../store/index.js';\nimport BaseBrushTool from './../tools/base/BaseBrushTool.js';\nimport onNewImageBrushEventHandler from '../eventListeners/onNewImageBrushEventHandler.js';\nimport external from './../externalModules.js';\n\nconst onNewImage = function(evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n const element = evt.detail.element;\n\n const tools = state.tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' ||\n tool.mode === 'passive' ||\n tool.mode === 'enabled')\n );\n\n if (tools.length === 0) {\n return false;\n }\n\n tools.forEach(tool => {\n if (tool.newImageCallback) {\n tool.newImageCallback(evt);\n }\n });\n\n // Check if any brush tools are present.\n const brushTools = tools.filter(tool => tool instanceof BaseBrushTool);\n\n if (brushTools.length > 0) {\n onNewImageBrushEventHandler(evt);\n }\n};\n\nconst enable = function(element) {\n element.addEventListener(external.cornerstone.EVENTS.NEW_IMAGE, onNewImage);\n};\n\nconst disable = function(element) {\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onNewImage\n );\n};\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(handlerType, customFunction, evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n // TODO: We sometimes see a null detail for TOUCH_PRESS\n const element = evt.detail.element;\n let tools = state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes(handlerType)\n );\n\n // Tool is active, and specific callback is active\n tools = getActiveToolsForElement(element, tools, handlerType);\n\n // Tool has expected callback custom function\n tools = tools.filter(tool => typeof tool[customFunction] === 'function');\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return false;\n }\n\n tools[0][customFunction](evt);\n}\n","import EVENTS from '../../events.js';\nimport external from '../../externalModules.js';\nimport { state } from '../../store/index.js';\nimport anyHandlesOutsideImage from './../../manipulators/anyHandlesOutsideImage.js';\nimport { moveNewHandle } from '../../manipulators/index.js';\nimport {\n addToolState,\n removeToolState,\n} from '../../stateManagement/toolState.js';\n\nexport default function(evt, tool) {\n console.log('touch: addNewMeasurement');\n //\n evt.preventDefault();\n evt.stopPropagation();\n //\n const touchEventData = evt.detail;\n const element = touchEventData.element;\n const measurementData = tool.createNewMeasurement(touchEventData);\n\n if (!measurementData) {\n return;\n }\n\n addToolState(element, tool.name, measurementData);\n\n // Todo: Looks like we're handling the \"up\" of the tap?\n if (\n Object.keys(measurementData.handles).length === 1 &&\n touchEventData.type === EVENTS.TAP\n ) {\n // Todo: bold assumptions about measurement data for all tools?\n measurementData.active = false;\n measurementData.handles.end.active = false;\n measurementData.handles.end.highlight = false;\n measurementData.invalidated = true;\n\n const deleteIfHandleOutsideImage =\n state.deleteIfHandleOutsideImage ||\n tool.options.deleteIfHandleOutsideImage;\n\n if (\n deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(touchEventData, measurementData.handles)\n ) {\n // Delete the measurement\n removeToolState(element, tool.name, measurementData);\n }\n\n external.cornerstone.updateImage(element);\n\n return;\n }\n\n external.cornerstone.updateImage(element);\n\n moveNewHandle(\n touchEventData,\n tool.name,\n measurementData,\n measurementData.handles.end,\n tool.options,\n 'touch'\n );\n}\n","import customCallbackHandler from './../shared/customCallbackHandler.js';\nimport multiTouchDrag from './multiTouchDrag.js';\nimport tap from './tap.js';\nimport touchStart from './touchStart.js';\nimport touchStartActive from './touchStartActive.js';\n\nconst doubleTap = customCallbackHandler.bind(\n null,\n 'DoubleTap',\n 'doubleTapCallback'\n);\n// TODO: some touchDrag tools don't want to fire on touchStart\n// TODO: Drag tools have an option `fireOnTouchStart` used to filter\n// TODO: Them out of TOUCH_START handler\nconst touchDrag = customCallbackHandler.bind(\n null,\n 'Touch',\n 'touchDragCallback'\n);\nconst touchEnd = customCallbackHandler.bind(null, 'Touch', 'touchEndCallback');\nconst touchPinch = customCallbackHandler.bind(\n null,\n 'TouchPinch',\n 'touchPinchCallback'\n);\nconst touchPress = customCallbackHandler.bind(\n null,\n 'Touch',\n 'touchPressCallback'\n);\nconst touchRotate = customCallbackHandler.bind(\n null,\n 'TouchRotate',\n 'touchRotateCallback'\n);\n\nexport {\n doubleTap,\n multiTouchDrag,\n tap,\n touchDrag,\n touchEnd,\n touchPinch,\n touchPress,\n touchRotate,\n touchStart,\n touchStartActive,\n};\n","import { state } from '../../store/index.js';\nimport getActiveToolsForElement from '../../store/getActiveToolsForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(evt) {\n if (state.isToolLocked) {\n return false;\n }\n\n // TODO: We sometimes see a null detail for TOUCH_PRESS\n const { element, numPointers } = evt.detail;\n let tools = state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('MultiTouch')\n );\n\n // Tool is active, and specific callback is active\n tools = getActiveToolsForElement(element, tools, 'MultiTouch');\n // Tool has expected callback custom function\n tools = tools.filter(\n tool =>\n typeof tool.multiTouchDragCallback === 'function' &&\n numPointers === tool.configuration.touchPointers\n );\n\n if (state.isMultiPartToolActive) {\n tools = filterToolsUseableWithMultiPartTools(tools);\n }\n\n if (tools.length === 0) {\n return false;\n }\n\n const activeTool = tools[0];\n\n activeTool.multiTouchDragCallback(evt);\n}\n","export default function(toolData) {\n if (!toolData) {\n return;\n }\n\n for (let i = 0; i < toolData.data.length; i++) {\n const data = toolData.data[i];\n\n data.active = false;\n if (!data.handles) {\n continue;\n }\n\n deactivateAllHandles(data.handles);\n }\n}\n\nfunction deactivateAllHandles(handles) {\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n handle.active = false;\n });\n}\n","import external from '../../externalModules.js';\nimport touchStartActive from './touchStartActive.js';\n// State\nimport { getters, state } from '../../store/index.js';\nimport getActiveToolsForElement from '../../store/getActiveToolsForElement.js';\nimport getToolsWithDataForElement from '../../store/getToolsWithDataForElement.js';\nimport { getToolState } from '../../stateManagement/toolState.js';\n//\nimport getHandleNearImagePoint from '../../manipulators/getHandleNearImagePoint.js';\nimport { moveHandle, moveAllHandles } from '../../manipulators/index.js';\n//\nimport deactivateAllToolInstances from './shared/deactivateAllToolInstances.js';\n\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n let tools;\n const distanceFromHandle = 28;\n const element = evt.detail.element;\n const coords = evt.detail.currentPoints.canvas;\n\n tools = getActiveToolsForElement(element, getters.touchTools());\n tools = getToolsWithDataForElement(element, tools);\n\n // Deactivate everything\n // DeactivateAllToolInstances(toolData);\n\n // Find all tools w/ handles that we are near\n const toolsWithMoveableHandles = tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n for (let i = 0; i < toolState.data.length; i++) {\n if (\n getHandleNearImagePoint(\n element,\n toolState.data[i].handles,\n coords,\n distanceFromHandle\n ) !== undefined\n ) {\n return true;\n }\n }\n\n return false;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (toolsWithMoveableHandles.length > 0) {\n // Todo: ignore: touch_start, tap\n\n const firstToolWithMoveableHandles = toolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n const moveableHandle = toolState.data.find(\n d =>\n getHandleNearImagePoint(\n element,\n d.handles,\n coords,\n distanceFromHandle\n ) !== undefined\n );\n\n toolState.data.active = true;\n moveableHandle.active = true; // Why here, but not touchStart?\n external.cornerstone.updateImage(element);\n\n const toolOptions = Object.assign(\n {},\n {\n doneMovingCallback: () => {\n deactivateAllToolInstances(toolState);\n },\n },\n firstToolWithMoveableHandles.options\n );\n\n moveHandle(\n evt.detail,\n firstToolWithMoveableHandles.name,\n toolState.data,\n moveableHandle,\n toolOptions,\n 'touch'\n );\n evt.stopImmediatePropagation();\n evt.preventDefault();\n // Why no stopPropagation?\n\n return;\n }\n\n // Find all tools near our point\n const toolsNearPoint = tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data => tool.pointNearTool(element, data, coords));\n\n return isNearPoint;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (toolsNearPoint.length > 0) {\n // Todo: Ignore: TAP, START, PRESS\n const firstToolNearPoint = toolsNearPoint[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n // Todo: ignore: touch_start, tap\n firstAnnotationNearPoint.active = true;\n external.cornerstone.updateImage(element);\n\n const toolOptions = Object.assign(\n {},\n {\n doneMovingCallback: () => {\n deactivateAllToolInstances(toolState);\n },\n },\n firstToolNearPoint.options\n );\n\n moveAllHandles(\n evt.detail,\n firstToolNearPoint.name,\n firstAnnotationNearPoint,\n null,\n toolOptions,\n 'touch'\n );\n\n evt.stopImmediatePropagation();\n evt.preventDefault();\n // TODO: Why no stop propagation?\n\n return;\n }\n\n // If there is nothing to move, add a new instance of the tool\n // Need to check here to see if activation is allowed!\n // TODO: What would this be? First active tool?\n // Or should _always_ pass through to our larger event handler that checks\n // All tools anyway?\n const allActiveTools = getActiveToolsForElement(\n element,\n getters.touchTools()\n );\n\n if (allActiveTools.length > 0 && allActiveTools[0].touchStartActiveCallback) {\n allActiveTools[0].touchStartActiveCallback(evt);\n } else {\n touchStartActive(evt);\n }\n\n return false;\n}\n","// State\nimport { getters, state } from '../../store/index.js';\nimport { findHandleDataNearImagePoint } from '../../util/findAndMoveHelpers.js';\nimport getToolsWithMoveableHandles from '../../store/getToolsWithMoveableHandles.js';\nimport { getToolState } from './../../stateManagement/toolState.js';\nimport getInteractiveToolsForElement from './../../store/getInteractiveToolsForElement.js';\nimport getToolsWithDataForElement from './../../store/getToolsWithDataForElement.js';\nimport filterToolsUseableWithMultiPartTools from './../../store/filterToolsUsableWithMultiPartTools.js';\n\nexport default function(evt) {\n if (state.isToolLocked) {\n return;\n }\n\n const eventData = evt.detail;\n const element = eventData.element;\n const coords = eventData.startPoints.canvas;\n\n const activeAndPassiveTools = getInteractiveToolsForElement(\n element,\n getters.touchTools()\n );\n\n let activeTools = activeAndPassiveTools.filter(\n tool => tool.mode === 'active' && tool.options.isTouchActive\n );\n\n if (state.isMultiPartToolActive) {\n activeTools = filterToolsUseableWithMultiPartTools(activeTools);\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.preTouchStartCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.preTouchStartCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n\n if (state.isMultiPartToolActive) {\n return;\n }\n\n const annotationTools = getToolsWithDataForElement(\n element,\n activeAndPassiveTools\n );\n\n // NEAR HANDLES?\n const annotationToolsWithMoveableHandles = getToolsWithMoveableHandles(\n element,\n annotationTools,\n coords,\n 'touch'\n );\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (annotationToolsWithMoveableHandles.length > 0) {\n // Todo: Ignore TAP, START, PRESS\n\n const firstToolWithMoveableHandles = annotationToolsWithMoveableHandles[0];\n const toolState = getToolState(element, firstToolWithMoveableHandles.name);\n\n const { handle, data } = findHandleDataNearImagePoint(\n element,\n toolState,\n firstToolWithMoveableHandles.name,\n coords,\n 'touch'\n );\n\n firstToolWithMoveableHandles.handleSelectedCallback(\n evt,\n data,\n handle,\n 'touch'\n );\n\n return;\n }\n\n // NEAR POINT?\n const annotationToolsWithPointNearTouch = annotationTools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n const isNearPoint =\n toolState &&\n toolState.data &&\n tool.pointNearTool &&\n toolState.data.some(data =>\n tool.pointNearTool(element, data, coords, 'touch')\n );\n\n return isNearPoint;\n });\n\n // TODO: More than one? Which one was moved most recently?\n // We'll just grab the first one we encounter for now\n if (annotationToolsWithPointNearTouch.length > 0) {\n // Todo: Ignore: TAP, START, PRESS\n const firstToolNearPoint = annotationToolsWithPointNearTouch[0];\n const toolState = getToolState(element, firstToolNearPoint.name);\n const firstAnnotationNearPoint = toolState.data.find(data =>\n firstToolNearPoint.pointNearTool(element, data, coords)\n );\n\n firstToolNearPoint.toolSelectedCallback(\n evt,\n firstAnnotationNearPoint,\n 'touch'\n );\n\n return;\n }\n\n // If any tools are active, check if they have a special reason for dealing with the event.\n if (activeTools.length > 0) {\n // TODO: If length > 1, you could assess fitness and select the ideal tool\n // TODO: But because we're locking this to 'active' tools, that should rarely be an issue\n // Super-Meta-TODO: ^ I think we should just take the approach of one active tool per mouse button?\n const firstActiveToolWithCallback = activeTools.find(\n tool => typeof tool.postTouchStartCallback === 'function'\n );\n\n if (firstActiveToolWithCallback) {\n const consumedEvent = firstActiveToolWithCallback.postTouchStartCallback(\n evt\n );\n\n if (consumedEvent) {\n return;\n }\n }\n }\n}\n","// State\nimport { getters, state } from './../../store/index.js';\nimport getActiveToolsForElement from './../../store/getActiveToolsForElement.js';\nimport addNewMeasurement from './addNewMeasurement.js';\nimport BaseAnnotationTool from './../../tools/base/BaseAnnotationTool.js';\n\nexport default function(evt) {\n if (state.isToolLocked || state.isMultiPartToolActive) {\n return;\n }\n\n const element = evt.detail.element;\n let tools = getActiveToolsForElement(element, getters.touchTools());\n\n tools = tools.filter(tool => tool.options.isTouchActive);\n\n if (tools.length === 0) {\n return;\n }\n\n const activeTool = tools[0];\n\n // Note: custom `addNewMeasurement` will need to prevent event bubbling\n if (activeTool && activeTool.addNewMeasurement) {\n activeTool.addNewMeasurement(evt, 'touch');\n } else if (activeTool instanceof BaseAnnotationTool) {\n addNewMeasurement(evt, activeTool);\n }\n}\n","import EVENTS from '../events.js';\nimport {\n tap,\n doubleTap,\n multiTouchDrag,\n touchStart,\n touchStartActive,\n touchRotate,\n touchDrag,\n touchEnd,\n touchPress,\n touchPinch,\n} from './touchEventHandlers/index.js';\n\n/**\n * These listeners are emitted in order, and can be cancelled/prevented from bubbling\n * by any previous event.\n * - tap:\n * - touchStart: check to see if we are close to an existing annotation, grab it\n * - touchDrag:\n * - touchStartActive: createNewMeasurement (usually)\n * - touchPress:\n * - touchRotate:\n * - doubleTap: usually a one-time apply specialty action\n * - touchPinch:\n * - onImageRendered: redraw visible tool data\n * @private\n * @param {*} element\n * @returns {void}\n */\nconst enable = function(element) {\n element.addEventListener(EVENTS.TAP, tap);\n element.addEventListener(EVENTS.TOUCH_START, touchStart, { passive: false });\n element.addEventListener(EVENTS.TOUCH_DRAG, touchDrag, { passive: false });\n element.addEventListener(EVENTS.TOUCH_END, touchEnd);\n // Mouse equivelant is `mouse_down_activate`\n // Should the naming pattern here match?\n element.addEventListener(EVENTS.TOUCH_START_ACTIVE, touchStartActive);\n element.addEventListener(EVENTS.TOUCH_PRESS, touchPress);\n element.addEventListener(EVENTS.DOUBLE_TAP, doubleTap);\n element.addEventListener(EVENTS.TOUCH_PINCH, touchPinch);\n element.addEventListener(EVENTS.TOUCH_ROTATE, touchRotate);\n element.addEventListener(EVENTS.MULTI_TOUCH_DRAG, multiTouchDrag);\n};\n\nconst disable = function(element) {\n element.removeEventListener(EVENTS.TAP, tap);\n element.removeEventListener(EVENTS.TOUCH_START, touchStart);\n element.removeEventListener(EVENTS.TOUCH_DRAG, touchDrag);\n element.removeEventListener(EVENTS.TOUCH_END, touchEnd);\n // Mouse equivelant is `mouse_down_activate`\n // Should the naming pattern here match?\n element.removeEventListener(EVENTS.TOUCH_START_ACTIVE, touchStartActive);\n element.removeEventListener(EVENTS.TOUCH_PRESS, touchPress);\n element.removeEventListener(EVENTS.DOUBLE_TAP, doubleTap);\n element.removeEventListener(EVENTS.TOUCH_PINCH, touchPinch);\n element.removeEventListener(EVENTS.TOUCH_ROTATE, touchRotate);\n element.removeEventListener(EVENTS.MULTI_TOUCH_DRAG, multiTouchDrag);\n};\n\nexport default {\n enable,\n disable,\n};\n","import mouseEventListeners from './mouseEventListeners.js';\nimport wheelEventListener from './wheelEventListener.js';\nimport touchEventListeners from './touchEventListeners.js';\n\nexport { mouseEventListeners, wheelEventListener, touchEventListeners };\n","// Reasonable defaults\nconst PIXEL_STEP = 10;\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\n/**\n * Normalizes wheel events and provides properties that are more\n * consistent and helpful across different browsers\n *\n * @private\n * @function normalizeWheel\n * @param {WheelEvent} event\n * @returns {Object} { spinX, spinY, pixlX, pixelY }\n */\nexport default function(event) {\n let spinX = 0,\n spinY = 0,\n pixelX = 0,\n pixelY = 0;\n\n // Legacy\n if ('detail' in event) {\n spinY = event.detail;\n }\n if ('wheelDelta' in event) {\n spinY = -event.wheelDelta / 120;\n }\n if ('wheelDeltaY' in event) {\n spinY = -event.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in event) {\n spinX = -event.wheelDeltaX / 120;\n }\n\n pixelX = spinX * PIXEL_STEP;\n pixelY = spinY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pixelY = event.deltaY;\n }\n if ('deltaX' in event) {\n pixelX = event.deltaX;\n }\n\n if ((pixelX || pixelY) && event.deltaMode) {\n if (event.deltaMode === 1) {\n // Delta in LINE units\n pixelX *= LINE_HEIGHT;\n pixelY *= LINE_HEIGHT;\n } else {\n // Delta in PAGE units\n pixelX *= PAGE_HEIGHT;\n pixelY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pixelX && !spinX) {\n spinX = pixelX < 1 ? -1 : 1;\n }\n if (pixelY && !spinY) {\n spinY = pixelY < 1 ? -1 : 1;\n }\n\n return {\n spinX,\n spinY,\n pixelX,\n pixelY,\n };\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport copyPoints from '../util/copyPoints.js';\nimport triggerEvent from '../util/triggerEvent.js';\n\nlet isClickEvent = true;\nlet preventClickTimeout;\nconst clickDelay = 200;\n\nfunction getEventButtons(event) {\n if (typeof event.buttons === 'number') {\n return event.buttons;\n }\n\n switch (event.which) {\n // No button\n case 0:\n return 0;\n // Left\n case 1:\n return 1;\n // Middle\n case 2:\n return 4;\n // Right\n case 3:\n return 2;\n }\n\n return 0;\n}\n\nfunction preventClickHandler() {\n isClickEvent = false;\n}\n\nfunction mouseDoubleClick(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n const eventType = EVENTS.MOUSE_DOUBLE_CLICK;\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n const lastPoints = copyPoints(startPoints);\n\n console.log(`double-click: ${getEventButtons(e)}`);\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints: startPoints,\n deltaPoints: {\n x: 0,\n y: 0,\n },\n type: eventType,\n };\n\n triggerEvent(element, eventType, eventData);\n}\n\nfunction mouseDown(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n preventClickTimeout = setTimeout(preventClickHandler, clickDelay);\n\n // Prevent CornerstoneToolsMouseMove while mouse is down\n element.removeEventListener('mousemove', mouseMove);\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n let lastPoints = copyPoints(startPoints);\n\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints: startPoints,\n deltaPoints: {\n x: 0,\n y: 0,\n },\n type: EVENTS.MOUSE_DOWN,\n };\n\n const eventPropagated = triggerEvent(\n eventData.element,\n EVENTS.MOUSE_DOWN,\n eventData\n );\n\n if (eventPropagated) {\n // No tools responded to this event, create a new tool\n eventData.type = EVENTS.MOUSE_DOWN_ACTIVATE;\n triggerEvent(eventData.element, EVENTS.MOUSE_DOWN_ACTIVATE, eventData);\n }\n\n function onMouseMove(e) {\n // Calculate our current points in page and image coordinates\n const eventType = EVENTS.MOUSE_DRAG;\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n console.log(`mousemove ${getEventButtons(e)}`);\n const eventData = {\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n };\n\n triggerEvent(eventData.element, eventType, eventData);\n\n // Update the last points\n lastPoints = copyPoints(currentPoints);\n }\n\n // Hook mouseup so we can unbind our event listeners\n // When they stop dragging\n function onMouseUp(e) {\n // Cancel the timeout preventing the click event from triggering\n clearTimeout(preventClickTimeout);\n\n let eventType = EVENTS.MOUSE_UP;\n\n if (isClickEvent) {\n eventType = EVENTS.MOUSE_CLICK;\n }\n\n // Calculate our current points in page and image coordinates\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n console.log(`mouseup: ${getEventButtons(e)}`);\n const eventData = {\n event: e,\n buttons: getEventButtons(e),\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n };\n\n triggerEvent(eventData.element, eventType, eventData);\n\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n\n element.addEventListener('mousemove', mouseMove);\n\n isClickEvent = true;\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n}\n\nfunction mouseMove(e) {\n const element = e.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n const eventType = EVENTS.MOUSE_MOVE;\n\n const startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n let lastPoints = copyPoints(startPoints);\n\n // Calculate our current points in page and image coordinates\n const currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e),\n image: external.cornerstone.pageToPixel(element, e.pageX, e.pageY),\n client: {\n x: e.clientX,\n y: e.clientY,\n },\n };\n\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n const deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n const eventData = {\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n };\n\n triggerEvent(element, eventType, eventData);\n\n // Update the last points\n lastPoints = copyPoints(currentPoints);\n}\n\nfunction disable(element) {\n element.removeEventListener('mousedown', mouseDown);\n element.removeEventListener('mousemove', mouseMove);\n element.removeEventListener('dblclick', mouseDoubleClick);\n}\n\nfunction enable(element) {\n // Prevent handlers from being attached multiple times\n disable(element);\n\n element.addEventListener('mousedown', mouseDown);\n element.addEventListener('mousemove', mouseMove);\n element.addEventListener('dblclick', mouseDoubleClick);\n}\n\nexport default {\n enable,\n disable,\n};\n","import store from '../store/index.js';\nimport getActiveToolsForElement from '../store/getActiveToolsForElement.js';\nimport { getToolState } from '../stateManagement/toolState.js';\nimport external from '../externalModules.js';\nimport BaseBrushTool from './../tools/base/BaseBrushTool.js';\nimport {\n getNewContext,\n resetCanvasContextTransform,\n transformCanvasContext,\n} from '../drawing/index.js';\n\n/* Safari and Edge polyfill for createImageBitmap\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap\n */\n\n// TODO: Do we still need this? I've yanked the package for now\n// It should be covered by @babel/runtime and plugin-transform-runtime:\n// https://babeljs.io/docs/en/babel-plugin-transform-runtime\n// @James, I think Babel should take care of this for us\n// Import regeneratorRuntime from \"regenerator-runtime\";\n\nif (!('createImageBitmap' in window)) {\n window.createImageBitmap = function(imageData) {\n return new Promise(resolve => {\n const img = document.createElement('img');\n\n img.addEventListener('load', function() {\n resolve(this);\n });\n\n const conversionCanvas = document.createElement('canvas');\n\n conversionCanvas.width = imageData.width;\n conversionCanvas.height = imageData.height;\n\n const conversionCanvasContext = conversionCanvas.getContext('2d');\n\n conversionCanvasContext.putImageData(\n imageData,\n 0,\n 0,\n 0,\n 0,\n conversionCanvas.width,\n conversionCanvas.height\n );\n img.src = conversionCanvas.toDataURL();\n });\n };\n}\n\nconst { state, getters, setters } = store.modules.brush;\n\n/**\n * Used to redraw the brush label map data per render.\n *\n * @private\n * @param {Object} evt - The event.\n * @returns {void}\n */\nexport default function(evt) {\n const eventData = evt.detail;\n const element = eventData.element;\n const maxSegmentations = BaseBrushTool.getNumberOfColors();\n\n const toolData = getToolState(\n element,\n BaseBrushTool.getReferencedToolDataName()\n );\n\n if (!toolData) {\n return;\n }\n\n const enabledElement = external.cornerstone.getEnabledElement(element);\n const enabledElementUID = enabledElement.uuid;\n\n const segData = {\n visibleSegmentations: getters.visibleSegmentationsForElement(\n enabledElementUID\n ),\n imageBitmapCache: getters.imageBitmapCacheForElement(enabledElementUID),\n toolData,\n };\n\n for (let segIndex = 0; segIndex < maxSegmentations; segIndex++) {\n if (shouldRenderSegmentation(evt, segIndex, segData)) {\n renderSegmentation(evt, segIndex, segData);\n }\n }\n}\n\nfunction shouldRenderSegmentation(evt, segIndex, segData) {\n const element = evt.detail.element;\n const toolData = segData.toolData;\n const visibleSegmentations = segData.visibleSegmentations;\n\n if (!toolData.data[segIndex] || !toolData.data[segIndex].pixelData) {\n // No data, no render.\n return false;\n }\n\n if (visibleSegmentations[segIndex]) {\n // Has data and marked as visible, render!\n return true;\n }\n\n const currentColor = state.drawColorId;\n\n if (currentColor !== segIndex) {\n // Hidden and not current color, don't render.\n return false;\n }\n\n // Check that a brush tool is active.\n const activeTools = getActiveToolsForElement(element, store.state.tools);\n const brushTools = activeTools.filter(tool => tool instanceof BaseBrushTool);\n\n if (brushTools.length > 0) {\n // Active brush tool with same color, render!\n return true;\n }\n\n return false;\n}\n\nfunction renderSegmentation(evt, segIndex, segData) {\n const toolData = segData.toolData;\n const imageBitmapCache = segData.imageBitmapCache;\n const visibleSegmentations = segData.visibleSegmentations;\n\n // Draw previous image if cached.\n if (imageBitmapCache && imageBitmapCache[segIndex]) {\n _drawImageBitmap(\n evt,\n imageBitmapCache[segIndex],\n visibleSegmentations[segIndex]\n );\n }\n\n if (toolData.data[segIndex].invalidated) {\n createNewBitmapAndQueueRenderOfSegmentation(evt, toolData, segIndex);\n }\n}\n\nfunction createNewBitmapAndQueueRenderOfSegmentation(evt, toolData, segIndex) {\n const eventData = evt.detail;\n const element = eventData.element;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n const pixelData = toolData.data[segIndex].pixelData;\n\n if (!pixelData) {\n return;\n }\n\n const colormapId = state.colorMapId;\n const colormap = external.cornerstone.colors.getColormap(colormapId);\n const colorLutTable = [[0, 0, 0, 0], colormap.getColor(segIndex)];\n\n const imageData = new ImageData(\n eventData.image.width,\n eventData.image.height\n );\n const image = {\n stats: {},\n minPixelValue: 0,\n getPixelData: () => pixelData,\n };\n\n external.cornerstone.storedPixelDataToCanvasImageDataColorLUT(\n image,\n colorLutTable,\n imageData.data\n );\n\n window.createImageBitmap(imageData).then(newImageBitmap => {\n setters.imageBitmapCacheForElement(\n enabledElement.uuid,\n segIndex,\n newImageBitmap\n );\n toolData.data[segIndex].invalidated = false;\n\n external.cornerstone.updateImage(eventData.element);\n });\n}\n\n/**\n * Draws the ImageBitmap the canvas.\n *\n * @private\n * @param {Object} evt description\n * @param {ImageBitmap} imageBitmap\n * @param {Boolean} alwaysVisible\n * @returns {void}\n */\nfunction _drawImageBitmap(evt, imageBitmap, alwaysVisible) {\n const eventData = evt.detail;\n const context = getNewContext(eventData.canvasContext.canvas);\n\n const canvasTopLeft = external.cornerstone.pixelToCanvas(eventData.element, {\n x: 0,\n y: 0,\n });\n\n const canvasTopRight = external.cornerstone.pixelToCanvas(eventData.element, {\n x: eventData.image.width,\n y: 0,\n });\n\n const canvasBottomRight = external.cornerstone.pixelToCanvas(\n eventData.element,\n {\n x: eventData.image.width,\n y: eventData.image.height,\n }\n );\n\n const cornerstoneCanvasWidth = external.cornerstoneMath.point.distance(\n canvasTopLeft,\n canvasTopRight\n );\n const cornerstoneCanvasHeight = external.cornerstoneMath.point.distance(\n canvasTopRight,\n canvasBottomRight\n );\n\n const canvas = eventData.canvasContext.canvas;\n const viewport = eventData.viewport;\n\n context.imageSmoothingEnabled = false;\n context.globalAlpha = getLayerAlpha(alwaysVisible);\n\n transformCanvasContext(context, canvas, viewport);\n\n const canvasViewportTranslation = {\n x: viewport.translation.x * viewport.scale,\n y: viewport.translation.y * viewport.scale,\n };\n\n context.drawImage(\n imageBitmap,\n canvas.width / 2 - cornerstoneCanvasWidth / 2 + canvasViewportTranslation.x,\n canvas.height / 2 -\n cornerstoneCanvasHeight / 2 +\n canvasViewportTranslation.y,\n cornerstoneCanvasWidth,\n cornerstoneCanvasHeight\n );\n\n context.globalAlpha = 1.0;\n\n resetCanvasContextTransform(context);\n}\n\nfunction getLayerAlpha(alwaysVisible) {\n if (alwaysVisible) {\n return state.alpha;\n }\n\n return state.hiddenButActiveAlpha;\n}\n","import { getToolState, addToolState } from '../stateManagement/toolState.js';\nimport BaseBrushTool from './../tools/base/BaseBrushTool.js';\nimport external from '../externalModules.js';\n\n/**\n * Clears the brush imageBitmapCache,\n * invaldates the data and calls for a re-render.\n * @private\n * @param {Object} evt - The event.\n * @returns {void}\n */\nexport default function(evt) {\n const eventData = evt.detail;\n const element = eventData.element;\n\n let toolData = getToolState(\n element,\n BaseBrushTool.getReferencedToolDataName()\n );\n\n if (!toolData) {\n addToolState(element, BaseBrushTool.getReferencedToolDataName(), {});\n toolData = getToolState(element, BaseBrushTool.getReferencedToolDataName());\n }\n\n const maxSegmentations = BaseBrushTool.getNumberOfColors();\n\n // Invalidate the segmentation bitmap such that it gets redrawn.\n for (let i = 0; i < maxSegmentations; i++) {\n if (toolData.data[i]) {\n toolData.data[i].invalidated = true;\n }\n }\n\n // Refresh the canvas\n external.cornerstone.updateImage(eventData.element);\n}\n","// Functions to prevent ghost clicks following a touch\n// All credit to @kosich\n// https://gist.github.com/kosich/23188dd86633b6c2efb7\n\nconst antiGhostDelay = 2000,\n pointerType = {\n mouse: 0,\n touch: 1,\n };\n\nlet lastInteractionType, lastInteractionTime;\n\nfunction handleTap(type, e) {\n const now = Date.now();\n\n if (type !== lastInteractionType) {\n if (now - lastInteractionTime <= antiGhostDelay) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n\n return false;\n }\n\n lastInteractionType = type;\n }\n\n lastInteractionTime = now;\n}\n\n// Cacheing the function references\n// Necessary because a new function reference is created after .bind() is called\n// http://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind\nconst handleTapMouse = handleTap.bind(null, pointerType.mouse);\nconst handleTapTouch = handleTap.bind(null, pointerType.touch);\n\nfunction attachEvents(element, eventList, interactionType) {\n const tapHandler = interactionType ? handleTapMouse : handleTapTouch;\n\n eventList.forEach(function(eventName) {\n element.addEventListener(eventName, tapHandler, { passive: false });\n });\n}\n\nfunction removeEvents(element, eventList, interactionType) {\n const tapHandler = interactionType ? handleTapMouse : handleTapTouch;\n\n eventList.forEach(function(eventName) {\n element.removeEventListener(eventName, tapHandler);\n });\n}\n\nconst mouseEvents = ['mousedown', 'mouseup'];\nconst touchEvents = ['touchstart', 'touchend'];\n\nfunction disable(element) {\n removeEvents(element, mouseEvents, pointerType.mouse);\n removeEvents(element, touchEvents, pointerType.touch);\n}\n\nfunction enable(element) {\n disable(element);\n attachEvents(element, mouseEvents, pointerType.mouse);\n attachEvents(element, touchEvents, pointerType.touch);\n}\n\nexport default {\n enable,\n disable,\n};\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport copyPoints from '../util/copyPoints.js';\nimport preventGhostClick from './preventGhostClick.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { setToolOptions, getToolOptions } from '../toolOptions.js';\n\nlet startPoints,\n currentPoints,\n lastPoints,\n deltaPoints,\n eventData,\n touchStartDelay,\n pressTimeout,\n pageDistanceMoved;\n\nlet lastScale = 1.0,\n lastRotation = 0.0,\n preventNextPinch = false,\n isPress = false,\n lastDelta;\n\nconst pressDelay = 700,\n pressMaxDistance = 5;\n\nconst toolType = 'touchInput';\n\nfunction onTouch(e) {\n const element = e.currentTarget || e.srcEvent.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n let eventType, scaleChange, delta, remainingPointers, rotation;\n\n // Prevent mouse events from occurring alongside touch events\n e.preventDefault();\n\n // If more than one finger is placed on the element, stop the press timeout\n if (\n (e.pointers && e.pointers.length > 1) ||\n (e.touches && e.touches.length > 1)\n ) {\n isPress = false;\n clearTimeout(pressTimeout);\n }\n\n switch (e.type) {\n case 'tap':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n eventType = EVENTS.TAP;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n break;\n\n case 'doubletap':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n eventType = EVENTS.DOUBLE_TAP;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n break;\n\n case 'pinchstart':\n isPress = false;\n clearTimeout(pressTimeout);\n\n lastScale = 1.0;\n break;\n\n case 'pinchmove':\n isPress = false;\n clearTimeout(pressTimeout);\n\n if (preventNextPinch === true) {\n lastScale = e.scale;\n preventNextPinch = false;\n break;\n }\n\n scaleChange = (e.scale - lastScale) / lastScale;\n\n startPoints = {\n page: e.center,\n image: external.cornerstone.pageToPixel(\n element,\n e.center.x,\n e.center.y\n ),\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_PINCH;\n eventData = {\n event: e,\n startPoints,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n direction: e.scale < 1 ? 1 : -1,\n scaleChange,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n lastScale = e.scale;\n break;\n\n case 'touchstart':\n lastScale = 1.0;\n\n clearTimeout(pressTimeout);\n\n clearTimeout(touchStartDelay);\n touchStartDelay = setTimeout(function() {\n startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.touches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.touches[0].pageX,\n e.touches[0].pageY\n ),\n client: {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n },\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_START;\n if (e.touches.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_START;\n }\n\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n currentPoints: startPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n const eventPropagated = triggerEvent(element, eventType, eventData);\n\n if (eventPropagated === true) {\n // IsPress = false;\n // ClearTimeout(pressTimeout);\n\n // No current tools responded to the drag action.\n // Create new tool measurement\n eventType = EVENTS.TOUCH_START_ACTIVE;\n if (e.touches.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_START_ACTIVE;\n }\n\n eventData.type = eventType;\n triggerEvent(element, eventType, eventData);\n }\n\n // Console.log(eventType);\n lastPoints = copyPoints(startPoints);\n }, 50);\n\n isPress = true;\n pageDistanceMoved = 0;\n pressTimeout = setTimeout(function() {\n if (!isPress) {\n return;\n }\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.touches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.touches[0].pageX,\n e.touches[0].pageY\n ),\n client: {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_PRESS;\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n currentPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n // Console.log(eventType);\n }, pressDelay);\n break;\n\n case 'touchend':\n lastScale = 1.0;\n\n isPress = false;\n clearTimeout(pressTimeout);\n\n setTimeout(function() {\n startPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.changedTouches[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.changedTouches[0].pageX,\n e.changedTouches[0].pageY\n ),\n client: {\n x: e.changedTouches[0].clientX,\n y: e.changedTouches[0].clientY,\n },\n };\n startPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n startPoints.image\n );\n\n eventType = EVENTS.TOUCH_END;\n\n eventData = {\n event: e,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n currentPoints: startPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n }, 50);\n break;\n\n case 'panmove':\n // Using the delta-value of HammerJS, because it takes all pointers into account\n // This is very important when using panning in combination with pinch-zooming\n // But HammerJS' delta is relative to the start of the pan event\n // So it needs to be converted to a per-event-delta for CornerstoneTools\n delta = {\n x: e.deltaX - lastDelta.x,\n y: e.deltaY - lastDelta.y,\n };\n\n lastDelta = {\n x: e.deltaX,\n y: e.deltaY,\n };\n\n // Calculate our current points in page and image coordinates\n currentPoints = {\n page: {\n x: lastPoints.page.x + delta.x,\n y: lastPoints.page.y + delta.y,\n },\n image: external.cornerstone.pageToPixel(\n element,\n lastPoints.page.x + delta.x,\n lastPoints.page.y + delta.y\n ),\n client: {\n x: lastPoints.client.x + delta.x,\n y: lastPoints.client.y + delta.y,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n pageDistanceMoved += Math.sqrt(\n deltaPoints.page.x * deltaPoints.page.x +\n deltaPoints.page.y * deltaPoints.page.y\n );\n // Console.log(\"pageDistanceMoved: \" + pageDistanceMoved);\n if (pageDistanceMoved > pressMaxDistance) {\n // Console.log('Press event aborted due to movement');\n isPress = false;\n clearTimeout(pressTimeout);\n }\n\n eventType = EVENTS.TOUCH_DRAG;\n if (e.pointers.length > 1) {\n eventType = EVENTS.MULTI_TOUCH_DRAG;\n }\n\n eventData = {\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n numPointers: e.pointers.length,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n lastPoints = copyPoints(currentPoints);\n break;\n\n case 'panstart':\n lastDelta = {\n x: e.deltaX,\n y: e.deltaY,\n };\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n lastPoints = copyPoints(currentPoints);\n break;\n\n case 'panend':\n isPress = false;\n clearTimeout(pressTimeout);\n\n // If lastPoints is not yet set, it means panend fired without panstart or pan,\n // So we can ignore this event\n if (!lastPoints) {\n return false;\n }\n\n currentPoints = {\n page: external.cornerstoneMath.point.pageToPoint(e.pointers[0]),\n image: external.cornerstone.pageToPixel(\n element,\n e.pointers[0].pageX,\n e.pointers[0].pageY\n ),\n client: {\n x: e.pointers[0].clientX,\n y: e.pointers[0].clientY,\n },\n };\n currentPoints.canvas = external.cornerstone.pixelToCanvas(\n element,\n currentPoints.image\n );\n\n // Calculate delta values in page and image coordinates\n deltaPoints = {\n page: external.cornerstoneMath.point.subtract(\n currentPoints.page,\n lastPoints.page\n ),\n image: external.cornerstoneMath.point.subtract(\n currentPoints.image,\n lastPoints.image\n ),\n client: external.cornerstoneMath.point.subtract(\n currentPoints.client,\n lastPoints.client\n ),\n canvas: external.cornerstoneMath.point.subtract(\n currentPoints.canvas,\n lastPoints.canvas\n ),\n };\n\n eventType = EVENTS.TOUCH_DRAG_END;\n\n eventData = {\n event: e.srcEvent,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n startPoints,\n lastPoints,\n currentPoints,\n deltaPoints,\n type: eventType,\n isTouchEvent: true,\n };\n\n triggerEvent(element, eventType, eventData);\n\n remainingPointers = e.pointers.length - e.changedPointers.length;\n\n if (remainingPointers === 2) {\n preventNextPinch = true;\n }\n break;\n\n case 'rotatemove':\n isPress = false;\n clearTimeout(pressTimeout);\n\n rotation = e.rotation - lastRotation;\n\n lastRotation = e.rotation;\n\n eventType = EVENTS.TOUCH_ROTATE;\n eventData = {\n event: e.srcEvent,\n viewport: external.cornerstone.getViewport(element),\n image: enabledElement.image,\n element,\n rotation,\n type: eventType,\n };\n triggerEvent(element, eventType, eventData);\n break;\n }\n\n return false;\n}\n\nfunction enable(element) {\n disable(element);\n const Hammer = external.Hammer;\n\n const hammerOptions = {\n inputClass: Hammer.SUPPORT_POINTER_EVENTS\n ? Hammer.PointerEventInput\n : Hammer.TouchInput,\n };\n\n const mc = new Hammer.Manager(element, hammerOptions);\n\n const panOptions = {\n pointers: 0,\n direction: Hammer.DIRECTION_ALL,\n threshold: 0,\n };\n\n const pan = new Hammer.Pan(panOptions);\n const pinch = new Hammer.Pinch({\n threshold: 0,\n });\n const rotate = new Hammer.Rotate({\n threshold: 0,\n });\n\n pinch.recognizeWith(pan);\n pinch.recognizeWith(rotate);\n rotate.recognizeWith(pan);\n\n const doubleTap = new Hammer.Tap({\n event: 'doubletap',\n taps: 2,\n interval: 1500,\n threshold: 50,\n posThreshold: 50,\n });\n\n doubleTap.recognizeWith(pan);\n\n // Add to the Manager\n mc.add([doubleTap, pan, rotate, pinch]);\n mc.on(\n 'tap doubletap panstart panmove panend pinchstart pinchmove rotatemove',\n onTouch\n );\n\n preventGhostClick.enable(element);\n\n const touchEvents = ['touchstart', 'touchend'];\n\n touchEvents.forEach(eventType => {\n element.addEventListener(eventType, onTouch, { passive: false });\n });\n\n const options = getToolOptions(toolType, element);\n\n options.hammer = mc;\n\n setToolOptions(toolType, element, options);\n}\n\nfunction disable(element) {\n preventGhostClick.disable(element);\n\n const touchEvents = ['touchstart', 'touchend'];\n\n touchEvents.forEach(eventType => {\n element.removeEventListener(eventType, onTouch);\n });\n\n const options = getToolOptions(toolType, element);\n const mc = options.hammer;\n\n if (mc) {\n mc.off(\n 'tap doubletap panstart panmove panend pinchstart pinchmove rotatemove',\n onTouch\n );\n }\n}\n\n// Module exports\nconst touchInput = {\n enable,\n disable,\n};\n\nexport default touchInput;\n","/**\n * Internal module used to turn on listening, handling, and normalizing of the\n * native `wheel` event\n */\n\nimport EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport normalizeWheel from './internals/normalizeWheel.js';\n\n/**\n *\n * @private\n * @function wheelEventHandler\n * @param {WheelEvent} evt\n * @returns {undefined}\n */\nfunction wheelEventHandler(evt) {\n const element = evt.currentTarget;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (!enabledElement.image) {\n return;\n }\n\n evt.preventDefault();\n\n const { pageX, pageY } = evt;\n const startingCoords = external.cornerstone.pageToPixel(\n element,\n pageX,\n pageY\n );\n const { spinX, spinY, pixelX, pixelY } = normalizeWheel(evt);\n const direction = spinY < 0 ? -1 : 1;\n\n const mouseWheelData = {\n element,\n viewport: external.cornerstone.getViewport(element),\n detail: evt,\n image: enabledElement.image,\n direction,\n spinX,\n spinY,\n pixelX,\n pixelY,\n pageX,\n pageY,\n imageX: startingCoords.x,\n imageY: startingCoords.y,\n };\n\n triggerEvent(element, EVENTS.MOUSE_WHEEL, mouseWheelData);\n}\n\n/**\n * Listens for the wheel event, and handles it. Handled event\n * will be \"normalized\" and re-emitted as `EVENTS.MOUSE_WHEEL`\n *\n * @private\n * @param {HTMLElement} element\n * @returns {undefined}\n */\nfunction enable(element) {\n disable(element);\n element.addEventListener('wheel', wheelEventHandler, { passive: false });\n}\n\n/**\n * Removes listener and handler for wheel event. `EVENTS.MOUSE_WHEEL`\n * will no longer be emitted.\n *\n * @private\n * @param {HTMLElement} element\n * @returns {undefined}\n */\nfunction disable(element) {\n element.removeEventListener('wheel', wheelEventHandler, { passive: false });\n}\n\nexport default {\n enable,\n disable,\n};\n","import { state } from './../store/index.js';\nimport external from './../externalModules.js';\n\nconst enable = function() {\n disable(); // Clean up any lingering listeners\n window.addEventListener('resize', resizeThrottler, false);\n};\n\nconst disable = function() {\n window.removeEventListener('resize', resizeThrottler, false);\n};\n\nlet resizeTimeout;\n\nfunction resizeThrottler() {\n // Ignore resize events as long as an actualResizeHandler execution is in the queue\n if (!resizeTimeout) {\n resizeTimeout = setTimeout(function() {\n resizeTimeout = null;\n forceEnabledElementResize();\n\n // The actualResizeHandler will execute at a rate of 15fps\n }, 66);\n }\n}\n\nexport const forceEnabledElementResize = function() {\n state.enabledElements.forEach(element => {\n external.cornerstone.resize(element);\n });\n};\n\nexport default {\n enable,\n disable,\n};\n","/**\n * Enumerates the events for CornestoneTools. Native events are captured,\n * normalized, and re-triggered with a `cornerstonetools` prefix. This allows\n * us to handle events consistently across different browsers.\n *\n * @enum {String}\n * @memberof CornerstoneTools\n * @readonly\n */\nconst EVENTS = {\n //\n // MOUSE\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mousedown\n * @type {String}\n */\n MOUSE_DOWN: 'cornerstonetoolsmousedown',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mouseup\n * @type {String}\n */\n MOUSE_UP: 'cornerstonetoolsmouseup',\n\n /**\n * Is fired if a handled `MOUSE_DOWN` event does not `stopPropagation`. The hook\n * we use to create new measurement data for mouse events.\n * @type {String}\n */\n MOUSE_DOWN_ACTIVATE: 'cornerstonetoolsmousedownactivate',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/drag\n * @type {String}\n */\n MOUSE_DRAG: 'cornerstonetoolsmousedrag',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/mousemove\n * @type {String}\n */\n MOUSE_MOVE: 'cornerstonetoolsmousemove',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/click\n * @type {String}\n */\n MOUSE_CLICK: 'cornerstonetoolsmouseclick',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/dblclick\n * @type {String}\n */\n MOUSE_DOUBLE_CLICK: 'cornerstonetoolsmousedoubleclick',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/wheel\n * @type {String}\n */\n MOUSE_WHEEL: 'cornerstonetoolsmousewheel',\n\n //\n // TOUCH\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/touchstart\n * @type {String}\n */\n TOUCH_START: 'cornerstonetoolstouchstart',\n\n /**\n * Is fired if a handled `TOUCH_START` event does not `stopPropagation`. The hook\n * we use to create new measurement data for touch events.\n * @type {String}\n */\n TOUCH_START_ACTIVE: 'cornerstonetoolstouchstartactive',\n\n /**\n * @type {String}\n */\n TOUCH_END: 'cornerstonetoolstouchend',\n\n /**\n * @type {String}\n */\n TOUCH_DRAG: 'cornerstonetoolstouchdrag',\n\n /**\n * @type {String}\n */\n TOUCH_DRAG_END: 'cornerstonetoolstouchdragend',\n\n /**\n * http://hammerjs.github.io/recognizer-pinch/\n * @type {String}\n */\n TOUCH_PINCH: 'cornerstonetoolstouchpinch',\n\n /**\n * http://hammerjs.github.io/recognizer-rotate/\n * @type {String}\n */\n TOUCH_ROTATE: 'cornerstonetoolstouchrotate',\n\n /**\n * http://hammerjs.github.io/recognizer-press/\n * @type {String}\n */\n TOUCH_PRESS: 'cornerstonetoolstouchpress',\n\n /**\n * http://hammerjs.github.io/recognizer-tap/\n * @type {String}\n */\n TAP: 'cornerstonetoolstap',\n\n /**\n * @type {String}\n */\n DOUBLE_TAP: 'cornerstonetoolsdoubletap',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_START: 'cornerstonetoolsmultitouchstart',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_START_ACTIVE: 'cornerstonetoolsmultitouchstartactive',\n\n /**\n * @type {String}\n */\n MULTI_TOUCH_DRAG: 'cornerstonetoolsmultitouchdrag',\n\n //\n // KEYBOARD\n //\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keydown\n * @type {String}\n */\n KEY_DOWN: 'cornerstonetoolskeydown',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keyup\n * @type {String}\n */\n KEY_UP: 'cornerstonetoolskeyup',\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/Events/keypress\n * @type {String}\n */\n KEY_PRESS: 'cornerstonetoolskeypress',\n\n //\n // CUSTOM\n //\n\n /**\n * @type {String}\n */\n MEASUREMENT_ADDED: 'cornerstonetoolsmeasurementadded',\n\n /**\n * @type {String}\n */\n MEASUREMENT_MODIFIED: 'cornerstonetoolsmeasurementmodified',\n\n /**\n * @type {String}\n */\n MEASUREMENT_REMOVED: 'cornerstonetoolsmeasurementremoved',\n\n /**\n * @type {String}\n */\n TOOL_DEACTIVATED: 'cornerstonetoolstooldeactivated',\n\n /**\n * @type {String}\n */\n CLIP_STOPPED: 'cornerstonetoolsclipstopped',\n\n /**\n * @type {String}\n */\n STACK_SCROLL: 'cornerstonetoolsstackscroll',\n};\n\nexport default EVENTS;\n","let cornerstone = window.cornerstone;\nlet cornerstoneMath = window.cornerstoneMath;\nlet Hammer = window.Hammer;\n\nexport default {\n set cornerstone(cs) {\n cornerstone = cs;\n },\n get cornerstone() {\n return cornerstone;\n },\n set cornerstoneMath(cm) {\n cornerstoneMath = cm;\n },\n get cornerstoneMath() {\n return cornerstoneMath;\n },\n set Hammer(module) {\n Hammer = module;\n },\n get Hammer() {\n return Hammer;\n },\n};\n","import { lib } from './lib.js';\n\n/**\n * Imports functionality from cornerstoneTools for use in external packages/plugins.\n * @export\n * @public\n * @method\n * @name import\n *\n * @param {string} uri the import path for the entity to import.\n * @returns {Class|Object|Function} The entity requested.\n */\nexport default function(uri) {\n return lib[uri];\n}\n","/**\n * Root\n * @namespace CornerstoneTools\n */\n\n/**\n * Drawing API to assist in consistent annotation creation\n * @namespace Drawing\n */\n\n/**\n * Event dispatchers listen for events from `cornerstone` and `enabledElements`. Dispatchers\n * choose which tool(s) get to handle the event by looking at callbacks, priority, and other factors.\n * @private\n * @namespace EventDispatchers\n */\n\n/**\n * Event listeners normalize events emitted by `cornerstone` and `enabledElements`. The listeners\n * then re-emit events prefixed with `cornerstonetools`. For example, `mousemove` becomes `cornerstonetoolsmousemove`.\n * Most of these events are caught by an `eventDispatcher`, and used to shape tool behavior.\n * @private\n * @namespace EventListeners\n */\n\n/**\n * Manipulators describe a tool's `handle` behavior. Leveraging a small set of manipulators\n * allows us to create a consistent experience when interacting with tools via their handles.\n * @namespace Manipulators\n */\n\n/**\n * Mixins are \"tool beahviors\" that can be added to a tool via its mixin\n * array configuration property\n * @namespace Mixins\n */\n\n/**\n * StateManagement\n * @namespace StateManagement\n */\n\n/**\n * Sync\n * @namespace Synchronization\n */\n\n/**\n * Third party\n * @namespace ThirdParty\n */\n\n/**\n * Tools\n * @namespace Tools\n */\n\n/**\n * Tools that extend the {@link #Tools.Base.BaseAnnotationTool|`BaseAnnotationTool`}\n * @namespace Tools.Annotation\n */\n\n/**\n * The parent (abstract) classes that all tools derive from.\n * @namespace Tools.Base\n */\n\n/**\n * Tools that extend the {@link #Tools.Base.BaseBrushTool|`BaseBrushTool`}\n * @namespace Tools.Brush\n */\n\n/**\n * Util\n * @namespace Util\n */\n\nimport {\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandMouseTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n} from './tools/annotation/index.js';\nimport { BrushTool } from './tools/brush/index.js';\nimport {\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandSculpterMouseTool,\n MagnifyTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n} from './tools/index.js';\n\nimport { default as imp } from './import.js';\n\nimport { default as init } from './init.js';\n\n// ~~~~~~ STACK TOOLS ~~~~~ //\nimport { default as stackPrefetch } from './stackTools/stackPrefetch.js';\nimport { default as stackRenderers } from './stackTools/stackRenderers.js';\nimport { playClip, stopClip } from './stackTools/playClip.js';\n\n// ~~~~~~ STATE MANAGEMENT ~~~~~ //\nimport { default as store } from './store/index.js';\nimport { default as getToolForElement } from './store/getToolForElement.js';\nimport { addTool, addToolForElement } from './store/addTool.js';\nimport { removeTool, removeToolForElement } from './store/removeTool.js';\nimport {\n setToolOptions,\n setToolOptionsForElement,\n} from './store/setToolOptions.js';\nimport {\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n} from './store/setToolMode.js';\nimport {\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n} from './stateManagement/toolState.js';\nimport { default as textStyle } from './stateManagement/textStyle.js';\nimport { default as toolStyle } from './stateManagement/toolStyle.js';\nimport { default as toolColors } from './stateManagement/toolColors.js';\nimport { default as toolCoordinates } from './stateManagement/toolCoordinates.js';\nimport {\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n} from './stateManagement/stackSpecificStateManager.js';\nimport { default as loadHandlerManager } from './stateManagement/loadHandlerManager.js';\nimport {\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n} from './stateManagement/imageIdSpecificStateManager.js';\nimport {\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n} from './stateManagement/frameOfReferenceStateManager.js';\nimport { forceEnabledElementResize } from './eventListeners/windowResizeHandler.js';\n\n// ~~~~~~ ORIENTATION ~~~~~ //\nimport { default as orientation } from './orientation/index.js';\n\n// ~~~~~~ CANVAS EXPORT ~~~~~ //\nimport { default as SaveAs } from './util/SaveAs.js';\n\n// ~~~~~~ THIRD PARTY SUPPORT ~~~~~ //\nimport { default as register } from './thirdParty/register.js';\nimport { default as registerSome } from './thirdParty/registerSome.js';\n\n// ~~~~~~ SYNCHRONIZERS ~~~~~ //\nimport { default as wwwcSynchronizer } from './synchronization/wwwcSynchronizer.js';\nimport { default as updateImageSynchronizer } from './synchronization/updateImageSynchronizer.js';\nimport { default as Synchronizer } from './synchronization/Synchronizer.js';\nimport { default as stackScrollSynchronizer } from './synchronization/stackScrollSynchronizer.js';\nimport { default as stackImagePositionSynchronizer } from './synchronization/stackImagePositionSynchronizer.js';\nimport { default as stackImagePositionOffsetSynchronizer } from './synchronization/stackImagePositionOffsetSynchronizer.js';\nimport { default as stackImageIndexSynchronizer } from './synchronization/stackImageIndexSynchronizer.js';\nimport { default as panZoomSynchronizer } from './synchronization/panZoomSynchronizer.js';\n\n// ~~~~~~ REQUEST POOL MANAGER ~~~~~ //\nimport { default as requestPoolManager } from './requestPool/requestPoolManager.js';\n\nimport { default as external } from './externalModules.js';\nimport { default as EVENTS } from './events.js';\nimport { default as version } from './version.js';\n\nconst cornerstoneTools = {\n // ~~~ TOOLS\n // ~ Annotation Tools\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandMouseTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n // ~ Brush Tools\n BrushTool,\n // ~ Tools\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandSculpterMouseTool,\n MagnifyTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n init,\n stackPrefetch,\n stackRenderers,\n playClip,\n stopClip,\n store,\n getToolForElement,\n addTool,\n addToolForElement,\n removeTool,\n removeToolForElement,\n setToolOptions,\n setToolOptionsForElement,\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n textStyle,\n toolStyle,\n toolColors,\n toolCoordinates,\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n loadHandlerManager,\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n forceEnabledElementResize,\n orientation,\n SaveAs,\n import: imp,\n register,\n registerSome,\n wwwcSynchronizer,\n updateImageSynchronizer,\n Synchronizer,\n stackScrollSynchronizer,\n stackImagePositionSynchronizer,\n stackImagePositionOffsetSynchronizer,\n stackImageIndexSynchronizer,\n panZoomSynchronizer,\n requestPoolManager,\n external,\n EVENTS,\n version,\n};\n\n// Named Exports\nexport {\n // ~~~ TOOLS\n // ~ Annotation Tools\n AngleTool,\n ArrowAnnotateTool,\n BidirectionalTool,\n CobbAngleTool,\n EllipticalRoiTool,\n FreehandMouseTool,\n LengthTool,\n ProbeTool,\n RectangleRoiTool,\n TextMarkerTool,\n // ~ Brush Tools\n BrushTool,\n // ~ Tools\n CrosshairsTool,\n DoubleTapFitToWindowTool,\n DragProbeTool,\n EraserTool,\n FreehandSculpterMouseTool,\n MagnifyTool,\n PanMultiTouchTool,\n PanTool,\n ReferenceLinesTool,\n RotateTool,\n RotateTouchTool,\n ScaleOverlayTool,\n StackScrollMouseWheelTool,\n StackScrollMultiTouchTool,\n StackScrollTool,\n WwwcRegionTool,\n WwwcTool,\n ZoomMouseWheelTool,\n ZoomTool,\n ZoomTouchPinchTool,\n init,\n stackPrefetch,\n stackRenderers,\n playClip,\n stopClip,\n store,\n getToolForElement,\n addTool,\n addToolForElement,\n removeTool,\n removeToolForElement,\n setToolOptions,\n setToolOptionsForElement,\n setToolActive,\n setToolActiveForElement,\n setToolEnabled,\n setToolEnabledForElement,\n setToolDisabled,\n setToolDisabledForElement,\n setToolPassive,\n setToolPassiveForElement,\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n textStyle,\n toolStyle,\n toolColors,\n toolCoordinates,\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n loadHandlerManager,\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n forceEnabledElementResize,\n orientation,\n SaveAs,\n register,\n registerSome,\n wwwcSynchronizer,\n updateImageSynchronizer,\n Synchronizer,\n stackScrollSynchronizer,\n stackImagePositionSynchronizer,\n stackImagePositionOffsetSynchronizer,\n stackImageIndexSynchronizer,\n panZoomSynchronizer,\n requestPoolManager,\n external,\n EVENTS,\n version,\n};\n\n// This has a weird name, so we can't just import it as 'import';\nexport { default as import } from './import.js';\n\nexport default cornerstoneTools;\n","import external from './externalModules.js';\nimport store from './store/index.js';\nimport addEnabledElement from './store/internals/addEnabledElement.js';\nimport removeEnabledElement from './store/internals/removeEnabledElement.js';\nimport windowResizeHandler from './eventListeners/windowResizeHandler.js';\n\n/**\n * Merges the provided configuration with default values and returns a\n * configured CornerstoneTools instance.\n * @export\n * @public\n * @method\n * @name init\n *\n * @param {Object} configuration\n * @returns {Object} A configured CornerstoneTools instance with top level API members.\n */\nexport default function(configuration) {\n _addCornerstoneEventListeners();\n _initModules();\n windowResizeHandler.enable();\n\n // Apply global configuration\n store.modules.globalConfiguration.state = Object.assign(\n {},\n store.modules.globalConfiguration.state,\n configuration\n );\n}\n\n/**\n * Wires up event listeners for the Cornerstone#ElementDisabled and\n * Cornerstone#ElementEnabled events.\n * @private\n * @method\n * @returns {void}\n */\nfunction _addCornerstoneEventListeners() {\n // Clear any listeners that may already be set\n _removeCornerstoneEventListeners();\n\n const cornerstone = external.cornerstone;\n const elementEnabledEvent = cornerstone.EVENTS.ELEMENT_ENABLED;\n const elementDisabledEvent = cornerstone.EVENTS.ELEMENT_DISABLED;\n\n cornerstone.events.addEventListener(elementEnabledEvent, addEnabledElement);\n cornerstone.events.addEventListener(\n elementDisabledEvent,\n removeEnabledElement\n );\n}\n\n/**\n * Removes event listeners for the Cornerstone#ElementDisabled and\n * Cornerstone#ElementEnabled events.\n * @private\n * @method\n * @returns {void}\n */\nfunction _removeCornerstoneEventListeners() {\n const cornerstone = external.cornerstone;\n const elementEnabledEvent = cornerstone.EVENTS.ELEMENT_ENABLED;\n const elementDisabledEvent = cornerstone.EVENTS.ELEMENT_DISABLED;\n\n cornerstone.events.removeEventListener(\n elementEnabledEvent,\n addEnabledElement\n );\n cornerstone.events.removeEventListener(\n elementDisabledEvent,\n removeEnabledElement\n );\n}\n\n/*\n * TODO: This could cause issues if the module was already initialized for\n * the store. As there's nothing stopping implementers from calling `init`\n * multiple times. Modules should self-check if they have already been\n * registered to prevent issues.\n */\n\n/**\n * Iterate over our store's modules. If the module has an `onRegisterCallback`\n * call it. This hook can be used to setup any global store requirements per\n * module.\n * @private\n * @method\n * @returns {void}\n */\nfunction _initModules() {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].onRegisterCallback === 'function') {\n modules[key].onRegisterCallback();\n }\n });\n}\n","import BaseTool from './tools/base/BaseTool.js';\nimport BaseAnnotationTool from './tools/base/BaseAnnotationTool.js';\nimport BaseBrushTool from './tools/base/BaseBrushTool.js';\n\nimport {\n anyHandlesOutsideImage,\n getHandleNearImagePoint,\n handleActivator,\n moveHandle,\n moveAllHandles,\n moveNewHandle,\n} from './manipulators/index.js';\n\nimport {\n moveHandleNearImagePoint,\n findHandleDataNearImagePoint,\n moveAnnotation,\n} from './util/findAndMoveHelpers.js';\n\nimport mixins from './mixins/index.js';\n\nimport {\n getNewContext,\n draw,\n path,\n setShadow,\n drawLine,\n drawLines,\n drawJoinedLines,\n drawCircle,\n drawEllipse,\n drawRect,\n fillOutsideRect,\n fillBox,\n fillTextLines,\n} from './drawing/index.js';\nimport drawTextBox, { textBoxWidth } from './drawing/drawTextBox.js';\nimport drawArrow from './drawing/drawArrow.js';\nimport drawLink from './drawing/drawLink.js';\nimport drawLinkedTextBox from './drawing/drawLinkedTextBox.js';\nimport drawHandles from './drawing/drawHandles.js';\n\nimport getLuminance from './util/getLuminance.js';\nimport copyPoints from './util/copyPoints.js';\nimport calculateSUV from './util/calculateSUV.js';\nimport setContextToDisplayFontSize from './util/setContextToDisplayFontSize.js';\nimport scrollToIndex from './util/scrollToIndex.js';\nimport scroll from './util/scroll.js';\nimport roundToDecimal from './util/roundToDecimal.js';\nimport {\n projectPatientPointToImagePlane,\n imagePointToPatientPoint,\n planePlaneIntersection,\n} from './util/pointProjector.js';\nimport lineSegDistance from './util/lineSegDistance.js';\n\nimport pointInsideBoundingBox from './util/pointInsideBoundingBox.js';\nimport makeUnselectable from './util/makeUnselectable.js';\nimport getRGBPixels from './util/getRGBPixels.js';\nimport {\n getDefaultSimultaneousRequests,\n getMaxSimultaneousRequests,\n getBrowserInfo,\n isMobileDevice,\n} from './util/getMaxSimultaneousRequests.js';\nimport angleBetweenPoints from './util/angleBetweenPoints.js';\nimport getKeyFromKeyCode from './util/getKeyFromKeyCode.js';\nimport numbersWithCommas from './util/numbersWithCommas.js';\n\nimport ellipseUtils from './util/ellipse/index.js';\nimport freehandUtils from './util/freehand/index.js';\nimport brushUtils from './util/brush/index.js';\nimport zoomUtils from './util/zoom/index.js';\nimport triggerEvent from './util/triggerEvent.js';\nimport convertToVector3 from './util/convertToVector3.js';\n\nexport const lib = {\n 'base/BaseTool': BaseTool,\n 'base/BaseAnnotationTool': BaseAnnotationTool,\n 'base/BaseBrushTool': BaseBrushTool,\n\n 'manipulators/anyHandlesOutsideImage': anyHandlesOutsideImage,\n 'manipulators/getHandleNearImagePoint': getHandleNearImagePoint,\n 'manipulators/handleActivator': handleActivator,\n 'manipulators/moveAllHandles': moveAllHandles,\n 'manipulators/moveHandle': moveHandle,\n 'manipulators/moveNewHandle': moveNewHandle,\n 'manipulators/moveHandleNearImagePoint': moveHandleNearImagePoint,\n 'manipulators/findHandleDataNearImagePoint': findHandleDataNearImagePoint,\n 'manipulators/moveAnnotation': moveAnnotation,\n\n 'mixins/activeOrDisabledBinaryTool': mixins.activeOrDisabledBinaryTool,\n 'mixins/enabledOrDisabledBinaryTool': mixins.enabledOrDisabledBinaryTool,\n\n 'drawing/getNewContext': getNewContext,\n 'drawing/draw': draw,\n 'drawing/path': path,\n 'drawing/setShadow': setShadow,\n 'drawing/drawLine': drawLine,\n 'drawing/drawLines': drawLines,\n 'drawing/drawJoinedLines': drawJoinedLines,\n 'drawing/drawCircle': drawCircle,\n 'drawing/drawEllipse': drawEllipse,\n 'drawing/drawRect': drawRect,\n 'drawing/fillOutsideRect': fillOutsideRect,\n 'drawing/drawTextBox': drawTextBox,\n 'drawing/drawArrow': drawArrow,\n 'drawing/fillBox': fillBox,\n 'drawing/fillTextLines': fillTextLines,\n 'drawing/drawLink': drawLink,\n 'drawing/drawLinkedTextBox': drawLinkedTextBox,\n 'drawing/drawHandles': drawHandles,\n 'drawing/textBoxWidth': textBoxWidth,\n\n 'util/getLuminance': getLuminance,\n 'util/copyPoints': copyPoints,\n 'util/calculateSUV': calculateSUV,\n 'util/setContextToDisplayFontSize': setContextToDisplayFontSize,\n 'util/scrollToIndex': scrollToIndex,\n 'util/scroll': scroll,\n 'util/roundToDecimal': roundToDecimal,\n 'util/projectPatientPointToImagePlane': projectPatientPointToImagePlane,\n 'util/imagePointToPatientPoint': imagePointToPatientPoint,\n 'util/planePlaneIntersection': planePlaneIntersection,\n 'util/pointInsideBoundingBox': pointInsideBoundingBox,\n 'util/makeUnselectable': makeUnselectable,\n 'util/getRGBPixels': getRGBPixels,\n 'util/getDefaultSimultaneousRequests': getDefaultSimultaneousRequests,\n 'util/getMaxSimultaneousRequests': getMaxSimultaneousRequests,\n 'util/getBrowserInfo': getBrowserInfo,\n 'util/isMobileDevice': isMobileDevice,\n 'util/angleBetweenPoints': angleBetweenPoints,\n 'util/getKeyFromKeyCode': getKeyFromKeyCode,\n 'util/numbersWithCommas': numbersWithCommas,\n 'util/lineSegDistance': lineSegDistance,\n 'util/triggerEvent': triggerEvent,\n 'util/convertToVectro3': convertToVector3,\n\n // Whole tool specific util packages\n 'util/ellipseUtils': ellipseUtils,\n 'util/freehandUtils': freehandUtils,\n 'util/brushUtils': brushUtils,\n 'util/zoomUtils': zoomUtils,\n};\n","import external from '../externalModules.js';\n\n/**\n * Determine if a handle is outside the bounds of the rendered image.\n * @public\n * @function anyHandlesOutsideImage\n * @memberof Manipulators\n *\n * @param {*} renderData - Cornerstone Tool's event detail\n * @param {Object} handles - An object containing named handles\n * @returns {Boolean} - True if the handle was placed outside the image\n */\nexport default function(renderData, handles) {\n const image = renderData.image;\n const imageRect = {\n left: 0,\n top: 0,\n width: image.width,\n height: image.height,\n };\n\n let handleOutsideImage = false;\n\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n if (handle.allowedOutsideImage === true) {\n return;\n }\n\n if (\n external.cornerstoneMath.point.insideRect(handle, imageRect) === false\n ) {\n handleOutsideImage = true;\n }\n });\n\n return handleOutsideImage;\n}\n","import external from '../externalModules.js';\nimport pointInsideBoundingBox from '../util/pointInsideBoundingBox.js';\n\n/**\n * Returns the first handle found to be near the provided point. Handles to search can be an array of handles, an\n * object of named handles, or an object of named handles AND named arrays of handles.\n *\n * @public\n * @function getHandleNearImagePoint\n * @memberof Manipulators\n *\n * @param {*} element - Target enabledElement\n * @param {(Array|Object)} handles - An arry of handles, object with named handles, or object with named handles AND named arrays of handles\n * @param {Object} coords - The coordinates to measure from when determining distance from handles\n * @param {number} distanceThreshold - minimum distance handle needs to be from provided coords\n * @returns {Object} Handle\n */\nconst getHandleNearImagePoint = function(\n element,\n handles,\n coords,\n distanceThreshold\n) {\n let nearbyHandle;\n\n if (!handles) {\n return;\n }\n\n if (Array.isArray(handles)) {\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const key = handleKeys[i];\n const handle = handles[key];\n\n if (\n // Not a true handle\n !handle.hasOwnProperty('x') ||\n !handle.hasOwnProperty('y')\n ) {\n continue;\n }\n\n if (_isHandleNearImagePoint(handle, element, coords, distanceThreshold)) {\n nearbyHandle = handle;\n break;\n }\n }\n } else if (typeof handles === 'object') {\n const handleKeys = Object.keys(handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const handleName = handleKeys[i];\n\n if (Array.isArray(handles[handleName])) {\n nearbyHandle = getHandleNearImagePoint(\n element,\n handles[handleName],\n coords,\n distanceThreshold\n );\n if (nearbyHandle) {\n break;\n }\n } else {\n const handle = handles[handleName];\n\n if (\n _isHandleNearImagePoint(handle, element, coords, distanceThreshold)\n ) {\n nearbyHandle = handle;\n break;\n }\n }\n }\n }\n\n return nearbyHandle;\n};\n\n/**\n * Determines if the handle is less than the provided distance from the provided coordinates\n * @private\n * @function _isHandleNearImagePoint\n *\n * @param {*} handle\n * @param {*} element\n * @param {*} coords\n * @param {*} distanceThreshold\n * @returns {boolean} true if handles is near image point\n */\nconst _isHandleNearImagePoint = function(\n handle,\n element,\n coords,\n distanceThreshold\n) {\n if (handle.hasOwnProperty('pointNearHandle')) {\n if (handle.pointNearHandle(element, handle, coords)) {\n return true;\n }\n } else if (handle.hasBoundingBox === true) {\n if (pointInsideBoundingBox(handle, coords)) {\n return true;\n }\n } else {\n const handleCanvas = external.cornerstone.pixelToCanvas(element, handle);\n const distance = external.cornerstoneMath.point.distance(\n handleCanvas,\n coords\n );\n\n if (distance <= distanceThreshold) {\n return true;\n }\n }\n\n return false;\n};\n\nexport default getHandleNearImagePoint;\n","import getHandleNearImagePoint from './getHandleNearImagePoint.js';\n\n/**\n * Update the active handle\n * @public\n * @function handleActivator\n * @memberof Manipulators\n *\n * @param {*} element\n * @param {*} handles\n * @param {*} canvasPoint\n * @param {*} distanceThreshold\n * @returns {Boolean} - True if a handle was activated\n */\nexport default function(element, handles, canvasPoint, distanceThreshold) {\n if (!distanceThreshold) {\n distanceThreshold = 6;\n }\n\n const activeHandle = _getActiveHandle(handles);\n const nearbyHandle = getHandleNearImagePoint(\n element,\n handles,\n canvasPoint,\n distanceThreshold\n );\n\n if (activeHandle !== nearbyHandle) {\n if (nearbyHandle !== undefined) {\n nearbyHandle.active = true;\n }\n\n if (activeHandle !== undefined) {\n activeHandle.active = false;\n }\n\n return true;\n }\n\n return false;\n}\n\n/**\n *\n * @private\n *\n * @param {*} handles\n * @returns {Object} - Activated Handle\n */\nfunction _getActiveHandle(handles) {\n let activeHandle;\n\n Object.keys(handles).forEach(function(name) {\n const handle = handles[name];\n\n if (handle.active === true) {\n activeHandle = handle;\n\n return;\n }\n });\n\n return activeHandle;\n}\n","import anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport getHandleNearImagePoint from './getHandleNearImagePoint.js';\nimport handleActivator from './handleActivator.js';\nimport moveAllHandles from './moveAllHandles.js';\nimport moveHandle from './moveHandle.js';\nimport moveNewHandle from './moveNewHandle.js';\n\nexport {\n anyHandlesOutsideImage,\n getHandleNearImagePoint,\n handleActivator,\n moveAllHandles,\n moveHandle,\n moveNewHandle,\n};\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\n\nconst _dragEvents = {\n mouse: [EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _upOrEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [\n EVENTS.TOUCH_END,\n EVENTS.TOUCH_DRAG_END,\n EVENTS.TOUCH_PINCH,\n EVENTS.TOUCH_PRESS,\n EVENTS.TAP,\n ],\n};\n\n/**\n * Manipulator to move all provided handles at the same time\n * @public\n * @function moveAllHandles\n * @memberof Manipulators\n *\n * @param {*} evtDetail\n * @param {*} evtDetail.element\n * @param {String} toolName\n * @param {*} annotation\n * @param {*} [handle=null] - not needed by moveAllHandles, but keeps call signature the same as `moveHandle`\n * @param {Object} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {function} [options.doneMovingCallback]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {string} [interactionType=mouse]\n * @returns {undefined}\n */\nexport default function(\n { element },\n toolName,\n annotation,\n handle,\n options = {},\n interactionType = 'mouse'\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n const dragHandler = _dragHandler.bind(this, toolName, annotation, options);\n // So we don't need to inline the entire `upOrEndHandler` function\n const upOrEndHandler = evt => {\n _upOrEndHandler(\n toolName,\n annotation,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n evt\n );\n };\n\n annotation.active = true;\n state.isToolLocked = true;\n\n // Add Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, upOrEndHandler);\n });\n}\n\nfunction _dragHandler(toolName, annotation, options = {}, evt) {\n const { element, image } = evt.detail;\n const { x, y } = evt.detail.deltaPoints.image;\n\n annotation.active = true;\n annotation.invalidated = true;\n\n const handleKeys = Object.keys(annotation.handles);\n\n for (let i = 0; i < handleKeys.length; i++) {\n const key = handleKeys[i];\n const handle = annotation.handles[key];\n\n if (\n // Don't move this part of the annotation\n handle.movesIndependently === true ||\n // Not a true handle\n !handle.hasOwnProperty('x') ||\n !handle.hasOwnProperty('y')\n ) {\n continue;\n }\n\n handle.x += x;\n handle.y += y;\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n }\n\n external.cornerstone.updateImage(element);\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n\n evt.preventDefault();\n evt.stopPropagation();\n}\n\nfunction _upOrEndHandler(\n toolName,\n annotation,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n evt\n) {\n const eventData = evt.detail;\n const element = evt.detail.element;\n\n annotation.active = false;\n annotation.invalidated = true;\n state.isToolLocked = false;\n\n // Remove Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, upOrEndHandler);\n });\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(eventData, annotation.handles)\n ) {\n removeToolState(element, toolName, annotation);\n }\n\n if (typeof options.doneMovingCallback === 'function') {\n options.doneMovingCallback();\n }\n\n external.cornerstone.updateImage(element);\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\n\nconst runAnimation = {\n value: false,\n};\n\nconst _dragEvents = {\n mouse: [EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _upOrEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [\n EVENTS.TOUCH_END,\n EVENTS.TOUCH_DRAG_END,\n EVENTS.TOUCH_PINCH,\n EVENTS.TOUCH_PRESS,\n EVENTS.TAP,\n ],\n};\n\n/**\n * Move the provided handle\n *\n * @public\n * @method moveHandle\n * @memberof Manipulators\n *\n * @param {*} evtDetail\n * @param {*} toolName\n * @param {*} annotation\n * @param {*} handle\n * @param {*} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {function} [options.doneMovingCallback]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {*} [interactionType=mouse]\n * @returns {undefined}\n */\nexport default function(\n evtDetail,\n toolName,\n annotation,\n handle,\n options = {},\n interactionType = 'mouse'\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n const element = evtDetail.element;\n const dragHandler = _dragHandler.bind(\n this,\n toolName,\n annotation,\n handle,\n options,\n interactionType\n );\n // So we don't need to inline the entire `upOrEndHandler` function\n const upOrEndHandler = evt => {\n _upOrEndHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options,\n interactionType,\n {\n dragHandler,\n upOrEndHandler,\n },\n evt\n );\n };\n\n handle.active = true;\n annotation.active = true;\n state.isToolLocked = true;\n\n // Add Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, upOrEndHandler);\n });\n\n // ==========================\n // ======== TOUCH ==========\n // ==========================\n if (interactionType === 'touch') {\n runAnimation.value = true;\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n // Average pixel width of index finger is 45-57 pixels\n // https://www.smashingmagazine.com/2012/02/finger-friendly-design-ideal-mobile-touchscreen-target-sizes/\n const fingerDistance = -57;\n\n const aboveFinger = {\n x: evtDetail.currentPoints.page.x,\n y: evtDetail.currentPoints.page.y + fingerDistance,\n };\n\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n aboveFinger.x,\n aboveFinger.y\n );\n\n _animate(handle, runAnimation, enabledElement, targetLocation);\n }\n}\n\nfunction _dragHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n evt\n) {\n const { image, currentPoints, element } = evt.detail;\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n runAnimation.value = false;\n handle.active = true;\n handle.hasMoved = true;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n // TODO: A way to not flip this for textboxes on annotations\n annotation.invalidated = true;\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n\n external.cornerstone.updateImage(element);\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n}\n\nfunction _upOrEndHandler(\n toolName,\n evtDetail,\n annotation,\n handle,\n options = {},\n interactionType,\n { dragHandler, upOrEndHandler },\n evt\n) {\n const image = evtDetail.currentPoints.image;\n const element = evt.detail.element;\n\n handle.active = false;\n annotation.active = false;\n // TODO: A way to not flip this for textboxes on annotations\n annotation.invalidated = true;\n state.isToolLocked = false;\n runAnimation.value = false;\n\n // Remove Event Listeners\n _dragEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, dragHandler);\n });\n _upOrEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, upOrEndHandler);\n });\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(evtDetail, annotation.handles)\n ) {\n removeToolState(element, toolName, annotation);\n }\n\n // TODO: What dark magic makes us want to handle TOUCH_PRESS differently?\n if (evt.type === EVENTS.TOUCH_PRESS) {\n evt.detail.handlePressed = annotation;\n handle.x = image.x; // Original Event\n handle.y = image.y;\n }\n\n if (typeof options.doneMovingCallback === 'function') {\n options.doneMovingCallback();\n }\n\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Animates the provided handle using `requestAnimationFrame`\n * @private\n * @method _animate\n *\n * @param {*} handle\n * @param {*} runAnimation\n * @param {*} enabledElement\n * @param {*} targetLocation\n * @returns {undefined}\n */\nfunction _animate(handle, runAnimation, enabledElement, targetLocation) {\n if (!runAnimation.value) {\n return;\n }\n\n // Pixels / second\n const distanceRemaining = Math.abs(handle.y - targetLocation.y);\n const linearDistEachFrame = distanceRemaining / 10;\n\n if (distanceRemaining < 1) {\n handle.y = targetLocation.y;\n runAnimation.value = false;\n\n return;\n }\n\n if (handle.y > targetLocation.y) {\n handle.y -= linearDistEachFrame;\n } else if (handle.y < targetLocation.y) {\n handle.y += linearDistEachFrame;\n }\n\n // Update the image\n external.cornerstone.updateImage(enabledElement.element);\n\n // Request a new frame\n external.cornerstone.requestAnimationFrame(function() {\n _animate(handle, runAnimation, enabledElement, targetLocation);\n });\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport anyHandlesOutsideImage from './anyHandlesOutsideImage.js';\nimport { removeToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\nimport { clipToBox } from '../util/clip.js';\nimport { state } from './../store/index.js';\n\nconst _moveEvents = {\n mouse: [EVENTS.MOUSE_MOVE, EVENTS.MOUSE_DRAG],\n touch: [EVENTS.TOUCH_DRAG],\n};\n\nconst _moveEndEvents = {\n mouse: [EVENTS.MOUSE_UP, EVENTS.MOUSE_CLICK],\n touch: [EVENTS.TOUCH_END, EVENTS.TOUCH_PINCH, EVENTS.TAP],\n};\n\n/**\n * Move a new handle\n * @public\n * @method moveNewHandle\n * @memberof Manipulators\n *\n * @param {*} evtDetail\n * @param {*} toolName\n * @param {*} annotation\n * @param {*} handle\n * @param {*} [options={}]\n * @param {Boolean} [options.deleteIfHandleOutsideImage]\n * @param {function} [options.doneMovingCallback]\n * @param {Boolean} [options.preventHandleOutsideImage]\n * @param {*} [interactionType=mouse]\n * @returns {undefined}\n */\nexport default function(\n evtDetail,\n toolName,\n annotation,\n handle,\n options,\n interactionType = 'mouse'\n) {\n // Use global defaults, unless overidden by provided options\n options = Object.assign(\n {\n deleteIfHandleOutsideImage: state.deleteIfHandleOutsideImage,\n preventHandleOutsideImage: state.preventHandleOutsideImage,\n },\n options\n );\n\n const element = evtDetail.element;\n\n annotation.active = true;\n handle.active = true;\n state.isToolLocked = true;\n\n const moveHandler = _moveHandler.bind(\n this,\n toolName,\n annotation,\n handle,\n options,\n interactionType\n );\n // So we don't need to inline the entire `moveEndEventHandler` function\n const moveEndHandler = evt => {\n _moveEndHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n {\n moveHandler,\n moveEndHandler,\n },\n evt\n );\n };\n\n // Add event listeners\n _moveEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, moveHandler);\n });\n _moveEndEvents[interactionType].forEach(eventType => {\n element.addEventListener(eventType, moveEndHandler);\n });\n element.addEventListener(EVENTS.TOUCH_START, _stopImmediatePropagation);\n}\n\nfunction _moveHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n evt\n) {\n const { currentPoints, image, element } = evt.detail;\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n interactionType === 'touch' ? page.x + fingerOffset : page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n annotation.invalidated = true;\n handle.active = true;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n\n if (options && options.preventHandleOutsideImage) {\n clipToBox(handle, image);\n }\n\n external.cornerstone.updateImage(element);\n\n const eventType = EVENTS.MEASUREMENT_MODIFIED;\n const modifiedEventData = {\n toolName,\n element,\n measurementData: annotation,\n };\n\n triggerEvent(element, eventType, modifiedEventData);\n}\n\nfunction _moveEndHandler(\n toolName,\n annotation,\n handle,\n options,\n interactionType,\n { moveHandler, moveEndHandler },\n evt\n) {\n const { element, currentPoints } = evt.detail;\n const page = currentPoints.page;\n const fingerOffset = -57;\n const targetLocation = external.cornerstone.pageToPixel(\n element,\n interactionType === 'touch' ? page.x + fingerOffset : page.x,\n interactionType === 'touch' ? page.y + fingerOffset : page.y\n );\n\n // \"Release\" the handle\n annotation.active = false;\n annotation.invalidated = true;\n handle.active = false;\n handle.x = targetLocation.x;\n handle.y = targetLocation.y;\n state.isToolLocked = false;\n\n // Remove event listeners\n _moveEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, moveHandler);\n });\n _moveEndEvents[interactionType].forEach(eventType => {\n element.removeEventListener(eventType, moveEndHandler);\n });\n element.removeEventListener(EVENTS.TOUCH_START, _stopImmediatePropagation);\n\n // TODO: WHY?\n // Why would a Touch_Pinch or Touch_Press be associated with a new handle?\n if (evt.type === EVENTS.TOUCH_PINCH || evt.type === EVENTS.TOUCH_PRESS) {\n handle.active = false;\n external.cornerstone.updateImage(element);\n if (typeof options.doneMovingCallback === 'function') {\n options.doneMovingCallback();\n }\n\n return;\n }\n\n if (options.preventHandleOutsideImage) {\n clipToBox(handle, evt.detail.image);\n }\n\n // If any handle is outside the image, delete the tool data\n if (\n options.deleteIfHandleOutsideImage &&\n anyHandlesOutsideImage(evt.detail, annotation.handles)\n ) {\n removeToolState(element, toolName, annotation);\n }\n\n if (typeof options.doneMovingCallback === 'function') {\n options.doneMovingCallback();\n }\n\n // Update Image\n external.cornerstone.updateImage(element);\n}\n\n/**\n * Stop the CornerstoneToolsTouchStart event from\n * Becoming a CornerstoneToolsTouchStartActive event when\n * MoveNewHandle ends\n *\n * @private\n * @function _stopImmediatePropagation\n *\n * @param {*} evt\n * @returns {Boolean} false\n */\nfunction _stopImmediatePropagation(evt) {\n evt.stopImmediatePropagation();\n\n return false;\n}\n","import {\n setToolDisabledForElement,\n setToolActiveForElement,\n} from '../store/setToolMode.js';\n\n/**\n * If one attempts to change mode to 'passive', redirect the tool to 'disabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction passiveCallback(element) {\n setToolDisabledForElement(element, this.name);\n}\n\n/**\n * If one attempts to turn the tool 'enabled', redirect the tool to 'active'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction enabledCallback(element) {\n setToolActiveForElement(element, this.name);\n}\n\n/**\n * @mixin activeOrDisabledBinaryTool - Redirect enabled/passive mode changes to active/disabled.\n * @memberof Mixins\n */\nexport default {\n passiveCallback,\n enabledCallback,\n};\n","import {\n setToolDisabledForElement,\n setToolEnabledForElement,\n} from '../store/setToolMode.js';\n\n/**\n * If one attempts to change mode to 'passive', redirect the tool to 'disabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction passiveCallback(element) {\n setToolDisabledForElement(element, this.name);\n}\n\n/**\n * If one attempts to change mode to 'active', redirect the tool to 'enabled'.\n *\n * @param {HTMLElement} element The element on which the tool resides.\n * @returns {undefined}\n */\nfunction activeCallback(element) {\n setToolEnabledForElement(element, this.name);\n}\n\n/**\n *\n * @mixin enabledOrDisabledBinaryTool - Redirect active/passive mode changes to enabled/disabled.\n * @memberof Mixins\n */\nexport default {\n passiveCallback,\n activeCallback,\n};\n","import activeOrDisabledBinaryTool from './activeOrDisabledBinaryTool.js';\nimport enabledOrDisabledBinaryTool from './enabledOrDisabledBinaryTool.js';\n\nexport default {\n activeOrDisabledBinaryTool,\n enabledOrDisabledBinaryTool,\n};\n","import external from '../externalModules.js';\nimport convertToVector3 from '../util/convertToVector3.js';\n\n/**\n * Returns the orientation of the vector in the patient coordinate system.\n * @public\n * @function getOrientationString\n *\n * @param {Array|cornerstoneMath.Vector3} vector Input array or Vector3\n * @returns {string} The orientation in the patient coordinate system.\n */\nexport default function(vector) {\n const vec3 = convertToVector3(vector);\n\n // Thanks to David Clunie\n // https://sites.google.com/site/dicomnotes/\n\n let orientation = '';\n const orientationX = vec3.x < 0 ? 'R' : 'L';\n const orientationY = vec3.y < 0 ? 'A' : 'P';\n const orientationZ = vec3.z < 0 ? 'F' : 'H';\n\n // Should probably make this a function vector3.abs\n const abs = new external.cornerstoneMath.Vector3(\n Math.abs(vec3.x),\n Math.abs(vec3.y),\n Math.abs(vec3.z)\n );\n\n for (let i = 0; i < 3; i++) {\n if (abs.x > 0.0001 && abs.x > abs.y && abs.x > abs.z) {\n orientation += orientationX;\n abs.x = 0;\n } else if (abs.y > 0.0001 && abs.y > abs.x && abs.y > abs.z) {\n orientation += orientationY;\n abs.y = 0;\n } else if (abs.z > 0.0001 && abs.z > abs.x && abs.z > abs.y) {\n orientation += orientationZ;\n abs.z = 0;\n } else {\n break;\n }\n }\n\n return orientation;\n}\n","import getOrientationString from './getOrientationString.js';\nimport invertOrientationString from './invertOrientationString.js';\n\nconst orientation = {\n getOrientationString,\n invertOrientationString,\n};\n\nexport default orientation;\n","/**\n * Inverts an orientation string.\n * @public\n * @function invertOrientationString\n *\n * @param {string} orientationString The orientation.\n * @returns {string} The inverted orientationString.\n */\nexport default function(orientationString) {\n let inverted = orientationString.replace('H', 'f');\n\n inverted = inverted.replace('F', 'h');\n inverted = inverted.replace('R', 'l');\n inverted = inverted.replace('L', 'r');\n inverted = inverted.replace('A', 'p');\n inverted = inverted.replace('P', 'a');\n inverted = inverted.toUpperCase();\n\n return inverted;\n}\n","import external from '../externalModules.js';\nimport { getMaxSimultaneousRequests } from '../util/getMaxSimultaneousRequests.js';\n\nconst requestPool = {\n interaction: [],\n thumbnail: [],\n prefetch: [],\n};\n\nconst numRequests = {\n interaction: 0,\n thumbnail: 0,\n prefetch: 0,\n};\n\nlet maxNumRequests = {\n interaction: 6,\n thumbnail: 6,\n prefetch: 5,\n};\n\nlet awake = false;\nconst grabDelay = 20;\n\nfunction addRequest(\n element,\n imageId,\n type,\n preventCache,\n doneCallback,\n failCallback,\n addToBeginning\n) {\n if (!requestPool.hasOwnProperty(type)) {\n throw new Error(\n 'Request type must be one of interaction, thumbnail, or prefetch'\n );\n }\n\n if (!element || !imageId) {\n return;\n }\n\n // Describe the request\n const requestDetails = {\n type,\n imageId,\n preventCache,\n doneCallback,\n failCallback,\n };\n\n // If this imageId is in the cache, resolve it immediately\n const imageLoadObject = external.cornerstone.imageCache.getImageLoadObject(\n imageId\n );\n\n if (imageLoadObject) {\n imageLoadObject.promise.then(\n function(image) {\n doneCallback(image);\n },\n function(error) {\n failCallback(error);\n }\n );\n\n return;\n }\n\n if (addToBeginning) {\n // Add it to the beginning of the stack\n requestPool[type].unshift(requestDetails);\n } else {\n // Add it to the end of the stack\n requestPool[type].push(requestDetails);\n }\n\n // Wake up\n awake = true;\n}\n\nfunction clearRequestStack(type) {\n // Console.log('clearRequestStack');\n if (!requestPool.hasOwnProperty(type)) {\n throw new Error(\n 'Request type must be one of interaction, thumbnail, or prefetch'\n );\n }\n\n requestPool[type] = [];\n}\n\nfunction startAgain() {\n if (!awake) {\n return;\n }\n\n setTimeout(function() {\n startGrabbing();\n }, grabDelay);\n}\n\nfunction sendRequest(requestDetails) {\n const cornerstone = external.cornerstone;\n // Increment the number of current requests of this type\n const type = requestDetails.type;\n\n numRequests[type]++;\n\n awake = true;\n const imageId = requestDetails.imageId;\n const doneCallback = requestDetails.doneCallback;\n const failCallback = requestDetails.failCallback;\n\n // Check if we already have this image promise in the cache\n const imageLoadObject = cornerstone.imageCache.getImageLoadObject(imageId);\n\n if (imageLoadObject) {\n // If we do, remove from list (when resolved, as we could have\n // Pending prefetch requests) and stop processing this iteration\n imageLoadObject.promise.then(\n function(image) {\n numRequests[type]--;\n // Console.log(numRequests);\n\n doneCallback(image);\n startAgain();\n },\n function(error) {\n numRequests[type]--;\n // Console.log(numRequests);\n failCallback(error);\n startAgain();\n }\n );\n\n return;\n }\n\n function requestTypeToLoadPriority(requestDetails) {\n if (requestDetails.type === 'prefetch') {\n return -5;\n } else if (requestDetails.type === 'interactive') {\n return 0;\n } else if (requestDetails.type === 'thumbnail') {\n return 5;\n }\n }\n\n const priority = requestTypeToLoadPriority(requestDetails);\n\n let loader;\n\n if (requestDetails.preventCache === true) {\n loader = cornerstone.loadImage(imageId, {\n priority,\n type: requestDetails.type,\n });\n } else {\n loader = cornerstone.loadAndCacheImage(imageId, {\n priority,\n type: requestDetails.type,\n });\n }\n\n // Load and cache the image\n loader.then(\n function(image) {\n numRequests[type]--;\n // Console.log(numRequests);\n doneCallback(image);\n startAgain();\n },\n function(error) {\n numRequests[type]--;\n // Console.log(numRequests);\n failCallback(error);\n startAgain();\n }\n );\n}\n\nfunction startGrabbing() {\n // Begin by grabbing X images\n const maxSimultaneousRequests = getMaxSimultaneousRequests();\n\n maxNumRequests = {\n interaction: Math.max(maxSimultaneousRequests, 1),\n thumbnail: Math.max(maxSimultaneousRequests - 2, 1),\n prefetch: Math.max(maxSimultaneousRequests - 1, 1),\n };\n\n const currentRequests =\n numRequests.interaction + numRequests.thumbnail + numRequests.prefetch;\n const requestsToSend = maxSimultaneousRequests - currentRequests;\n\n for (let i = 0; i < requestsToSend; i++) {\n const requestDetails = getNextRequest();\n\n if (requestDetails) {\n sendRequest(requestDetails);\n }\n }\n}\n\nfunction getNextRequest() {\n if (\n requestPool.interaction.length &&\n numRequests.interaction < maxNumRequests.interaction\n ) {\n return requestPool.interaction.shift();\n }\n\n if (\n requestPool.thumbnail.length &&\n numRequests.thumbnail < maxNumRequests.thumbnail\n ) {\n return requestPool.thumbnail.shift();\n }\n\n if (\n requestPool.prefetch.length &&\n numRequests.prefetch < maxNumRequests.prefetch\n ) {\n return requestPool.prefetch.shift();\n }\n\n if (\n !requestPool.interaction.length &&\n !requestPool.thumbnail.length &&\n !requestPool.prefetch.length\n ) {\n awake = false;\n }\n\n return false;\n}\n\nfunction getRequestPool() {\n return requestPool;\n}\n\nexport default {\n addRequest,\n clearRequestStack,\n startGrabbing,\n getRequestPool,\n};\n","import external from '../externalModules.js';\nimport { getToolState } from '../stateManagement/toolState.js';\n\nexport default class FusionRenderer {\n constructor() {\n this.currentImageIdIndex = 0;\n this.layerIds = [];\n this.findImageFn = undefined;\n }\n\n render(element, imageStacks) {\n // Move this to base Renderer class\n if (!Number.isInteger(this.currentImageIdIndex)) {\n throw new Error(\n 'FusionRenderer: render - Image ID Index is not an integer'\n );\n }\n\n if (!this.findImageFn) {\n throw new Error('No findImage function has been defined');\n }\n\n if (!imageStacks) {\n const toolData = getToolState(element, 'stack');\n\n imageStacks = toolData.data;\n }\n // TODO: Figure out what to do with LoadHandlers in this scenario...\n\n const cornerstone = external.cornerstone;\n\n // For the base layer, go to the currentImageIdIndex\n const baseImageObject = imageStacks[0];\n const currentImageId = baseImageObject.imageIds[this.currentImageIdIndex];\n const overlayImageStacks = imageStacks.slice(1, imageStacks.length);\n\n cornerstone.loadAndCacheImage(currentImageId).then(baseImage => {\n let baseLayerId = this.layerIds[0];\n\n // Get the base layer if one exists\n if (baseLayerId) {\n cornerstone.setLayerImage(element, baseImage, baseLayerId);\n } else {\n // Otherwise, create a new layer with the base layer's image\n baseLayerId = cornerstone.addLayer(\n element,\n baseImage,\n baseImageObject.options\n );\n this.layerIds.push(baseLayerId);\n }\n\n // Display the image immediately while the overlay images are identified\n cornerstone.displayImage(element, baseImage);\n\n // Loop through the remaining 'overlay' image stacks\n overlayImageStacks.forEach((imgObj, overlayLayerIndex) => {\n const imageId = this.findImageFn(imgObj.imageIds, currentImageId);\n const layerIndex = overlayLayerIndex + 1;\n let currentLayerId = this.layerIds[layerIndex];\n\n // If no layer exists yet for this overlaid stack, create\n // One and add it to the layerIds property for this instance\n // Of the fusion renderer.\n if (!currentLayerId) {\n currentLayerId = cornerstone.addLayer(\n element,\n undefined,\n imgObj.options\n );\n this.layerIds.push(currentLayerId);\n }\n\n if (imageId) {\n // If an imageId was returned from the findImage function,\n // Load it, make sure it's visible and update the layer\n // With the new image object.\n cornerstone.loadAndCacheImage(imageId).then(image => {\n cornerstone.setLayerImage(element, image, currentLayerId);\n cornerstone.updateImage(element);\n });\n } else {\n // If no imageId was returned from the findImage function.\n // This means that there is no relevant image to display.\n cornerstone.setLayerImage(element, undefined, currentLayerId);\n cornerstone.setActiveLayer(element, baseLayerId);\n cornerstone.updateImage(element);\n }\n });\n });\n }\n}\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport loadHandlerManager from '../stateManagement/loadHandlerManager.js';\nimport { addToolState, getToolState } from '../stateManagement/toolState.js';\nimport triggerEvent from '../util/triggerEvent.js';\n\nconst toolType = 'playClip';\n\n/**\n * [private] Turns a Frame Time Vector (0018,1065) array into a normalized array of timeouts. Each element\n * ... of the resulting array represents the amount of time each frame will remain on the screen.\n * @param {Array} vector A Frame Time Vector (0018,1065) as specified in section C.7.6.5.1.2 of DICOM standard.\n * @param {Number} speed A speed factor which will be applied to each element of the resulting array.\n * @returns {Array} An array with timeouts for each animation frame.\n */\nfunction getPlayClipTimeouts(vector, speed) {\n let i;\n let sample;\n let delay;\n let sum = 0;\n const limit = vector.length;\n const timeouts = [];\n\n // Initialize time varying to false\n timeouts.isTimeVarying = false;\n\n if (typeof speed !== 'number' || speed <= 0) {\n speed = 1;\n }\n\n // First element of a frame time vector must be discarded\n for (i = 1; i < limit; i++) {\n // eslint-disable-next-line no-bitwise\n delay = (Number(vector[i]) / speed) | 0; // Integral part only\n timeouts.push(delay);\n if (i === 1) {\n // Use first item as a sample for comparison\n sample = delay;\n } else if (delay !== sample) {\n timeouts.isTimeVarying = true;\n }\n\n sum += delay;\n }\n\n if (timeouts.length > 0) {\n if (timeouts.isTimeVarying) {\n // If it's a time varying vector, make the last item an average...\n // eslint-disable-next-line no-bitwise\n delay = (sum / timeouts.length) | 0;\n } else {\n delay = timeouts[0];\n }\n\n timeouts.push(delay);\n }\n\n return timeouts;\n}\n\n/**\n * [private] Performs the heavy lifting of stopping an ongoing animation.\n * @param {Object} playClipData The data from playClip that needs to be stopped.\n * @returns {void}\n */\nfunction stopClipWithData(playClipData) {\n const id = playClipData.intervalId;\n\n if (typeof id !== 'undefined') {\n playClipData.intervalId = undefined;\n if (playClipData.usingFrameTimeVector) {\n clearTimeout(id);\n } else {\n clearInterval(id);\n }\n }\n}\n\n/**\n * [private] Trigger playClip tool stop event.\n * @param {HTMLElement} element\n * @returns {void}\n */\nfunction triggerStopEvent(element) {\n const eventDetail = {\n element,\n };\n\n triggerEvent(element, EVENTS.CLIP_STOPPED, eventDetail);\n}\n\n/**\n * Starts playing a clip or adjusts the frame rate of an already playing clip. framesPerSecond is\n * optional and defaults to 30 if not specified. A negative framesPerSecond will play the clip in reverse.\n * The element must be a stack of images\n * @param {HTMLElement} element\n * @param {number} framesPerSecond\n * @returns {void}\n */\nfunction playClip(element, framesPerSecond) {\n let playClipData;\n let playClipTimeouts;\n\n if (element === undefined) {\n throw new Error('playClip: element must not be undefined');\n }\n\n const stackToolData = getToolState(element, 'stack');\n\n if (!stackToolData || !stackToolData.data || !stackToolData.data.length) {\n return;\n }\n\n const cornerstone = external.cornerstone;\n // If we have more than one stack, check if we have a stack renderer defined\n let stackRenderer;\n\n if (stackToolData.data.length > 1) {\n const stackRendererData = getToolState(element, 'stackRenderer');\n\n if (\n stackRendererData &&\n stackRendererData.data &&\n stackRendererData.data.length\n ) {\n stackRenderer = stackRendererData.data[0];\n }\n }\n\n const stackData = stackToolData.data[0];\n\n const playClipToolData = getToolState(element, toolType);\n\n if (\n !playClipToolData ||\n !playClipToolData.data ||\n !playClipToolData.data.length\n ) {\n playClipData = {\n intervalId: undefined,\n framesPerSecond: 30,\n lastFrameTimeStamp: undefined,\n frameRate: 0,\n frameTimeVector: undefined,\n ignoreFrameTimeVector: false,\n usingFrameTimeVector: false,\n speed: 1,\n reverse: false,\n loop: true,\n };\n addToolState(element, toolType, playClipData);\n } else {\n playClipData = playClipToolData.data[0];\n // Make sure the specified clip is not running before any property update\n stopClipWithData(playClipData);\n }\n\n // If a framesPerSecond is specified and is valid, update the playClipData now\n if (framesPerSecond < 0 || framesPerSecond > 0) {\n playClipData.framesPerSecond = Number(framesPerSecond);\n playClipData.reverse = playClipData.framesPerSecond < 0;\n // If framesPerSecond is given, frameTimeVector will be ignored...\n playClipData.ignoreFrameTimeVector = true;\n }\n\n // Determine if frame time vector should be used instead of a fixed frame rate...\n if (\n playClipData.ignoreFrameTimeVector !== true &&\n playClipData.frameTimeVector &&\n playClipData.frameTimeVector.length === stackData.imageIds.length\n ) {\n playClipTimeouts = getPlayClipTimeouts(\n playClipData.frameTimeVector,\n playClipData.speed\n );\n }\n\n // This function encapsulates the frame rendering logic...\n const playClipAction = () => {\n // Hoisting of context variables\n let loader,\n startLoadingHandler,\n endLoadingHandler,\n errorLoadingHandler,\n newImageIdIndex = stackData.currentImageIdIndex;\n\n const imageCount = stackData.imageIds.length;\n\n if (playClipData.reverse) {\n newImageIdIndex--;\n } else {\n newImageIdIndex++;\n }\n\n if (\n !playClipData.loop &&\n (newImageIdIndex < 0 || newImageIdIndex >= imageCount)\n ) {\n stopClipWithData(playClipData);\n triggerStopEvent(element);\n\n return;\n }\n\n // Loop around if we go outside the stack\n if (newImageIdIndex >= imageCount) {\n newImageIdIndex = 0;\n }\n\n if (newImageIdIndex < 0) {\n newImageIdIndex = imageCount - 1;\n }\n\n if (newImageIdIndex !== stackData.currentImageIdIndex) {\n startLoadingHandler = loadHandlerManager.getStartLoadHandler();\n endLoadingHandler = loadHandlerManager.getEndLoadHandler();\n errorLoadingHandler = loadHandlerManager.getErrorLoadingHandler();\n\n if (startLoadingHandler) {\n startLoadingHandler(element);\n }\n\n if (stackData.preventCache === true) {\n loader = cornerstone.loadImage(stackData.imageIds[newImageIdIndex]);\n } else {\n loader = cornerstone.loadAndCacheImage(\n stackData.imageIds[newImageIdIndex]\n );\n }\n\n loader.then(\n function(image) {\n try {\n stackData.currentImageIdIndex = newImageIdIndex;\n if (stackRenderer) {\n stackRenderer.currentImageIdIndex = newImageIdIndex;\n stackRenderer.render(element, stackToolData.data);\n } else {\n cornerstone.displayImage(element, image);\n }\n if (endLoadingHandler) {\n endLoadingHandler(element, image);\n }\n } catch (error) {\n return;\n }\n },\n function(error) {\n const imageId = stackData.imageIds[newImageIdIndex];\n\n if (errorLoadingHandler) {\n errorLoadingHandler(element, imageId, error);\n }\n }\n );\n }\n };\n\n // If playClipTimeouts array is available, not empty and its elements are NOT uniform ...\n // ... (at least one timeout is different from the others), use alternate setTimeout implementation\n if (\n playClipTimeouts &&\n playClipTimeouts.length > 0 &&\n playClipTimeouts.isTimeVarying\n ) {\n playClipData.usingFrameTimeVector = true;\n playClipData.intervalId = setTimeout(function playClipTimeoutHandler() {\n playClipData.intervalId = setTimeout(\n playClipTimeoutHandler,\n playClipTimeouts[stackData.currentImageIdIndex]\n );\n playClipAction();\n }, 0);\n } else {\n // ... otherwise user setInterval implementation which is much more efficient.\n playClipData.usingFrameTimeVector = false;\n playClipData.intervalId = setInterval(\n playClipAction,\n 1000 / Math.abs(playClipData.framesPerSecond)\n );\n }\n}\n\n/**\n * Stops an already playing clip.\n * @param {HTMLElement} element\n * @returns {void}\n */\nfunction stopClip(element) {\n const playClipToolData = getToolState(element, toolType);\n\n if (\n !playClipToolData ||\n !playClipToolData.data ||\n !playClipToolData.data.length\n ) {\n return;\n }\n\n stopClipWithData(playClipToolData.data[0]);\n}\n\nexport { playClip, stopClip };\n","import external from './../externalModules.js';\nimport requestPoolManager from '../requestPool/requestPoolManager.js';\nimport loadHandlerManager from '../stateManagement/loadHandlerManager.js';\nimport { addToolState, getToolState } from '../stateManagement/toolState.js';\nimport { setMaxSimultaneousRequests } from '../util/getMaxSimultaneousRequests.js';\n\nconst toolType = 'stackPrefetch';\nconst requestType = 'prefetch';\n\nlet configuration = {\n maxImagesToPrefetch: Infinity,\n};\n\nlet resetPrefetchTimeout;\nconst resetPrefetchDelay = 10;\n\nfunction range(lowEnd, highEnd) {\n // Javascript version of Python's range function\n // http://stackoverflow.com/questions/3895478/does-javascript-have-a-method-like-range-to-generate-an-array-based-on-suppl\n lowEnd = Math.round(lowEnd) || 0;\n highEnd = Math.round(highEnd) || 0;\n\n const arr = [];\n let c = highEnd - lowEnd + 1;\n\n if (c <= 0) {\n return arr;\n }\n\n while (c--) {\n arr[c] = highEnd--;\n }\n\n return arr;\n}\n\nconst max = function(arr) {\n return Math.max.apply(null, arr);\n};\n\nconst min = function(arr) {\n return Math.min.apply(null, arr);\n};\n\nfunction nearestIndex(arr, x) {\n // Return index of nearest values in array\n // http://stackoverflow.com/questions/25854212/return-index-of-nearest-values-in-an-array\n const l = [];\n const h = [];\n\n arr.forEach(function(v) {\n if (v < x) {\n l.push(v);\n } else if (v > x) {\n h.push(v);\n }\n });\n\n return {\n low: arr.indexOf(max(l)),\n high: arr.indexOf(min(h)),\n };\n}\n\nfunction prefetch(element) {\n // Check to make sure stack data exists\n const stackData = getToolState(element, 'stack');\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n\n // Get the stackPrefetch tool data\n const stackPrefetchData = getToolState(element, toolType);\n\n if (!stackPrefetchData) {\n return;\n }\n\n const stackPrefetch = stackPrefetchData.data[0] || {};\n\n // If all the requests are complete, disable the stackPrefetch tool\n if (\n !stackPrefetch.indicesToRequest ||\n !stackPrefetch.indicesToRequest.length\n ) {\n stackPrefetch.enabled = false;\n }\n\n // Make sure the tool is still enabled\n if (stackPrefetch.enabled === false) {\n return;\n }\n\n // Remove an imageIdIndex from the list of indices to request\n // This fires when the individual image loading deferred is resolved\n function removeFromList(imageIdIndex) {\n const index = stackPrefetch.indicesToRequest.indexOf(imageIdIndex);\n\n if (index > -1) {\n // Don't remove last element if imageIdIndex not found\n stackPrefetch.indicesToRequest.splice(index, 1);\n }\n }\n\n // Remove all already cached images from the\n // IndicesToRequest array\n stackPrefetchData.data[0].indicesToRequest.sort((a, b) => a - b);\n const indicesToRequestCopy = stackPrefetch.indicesToRequest.slice();\n\n indicesToRequestCopy.forEach(function(imageIdIndex) {\n const imageId = stack.imageIds[imageIdIndex];\n\n if (!imageId) {\n return;\n }\n\n const imageLoadObject = external.cornerstone.imageCache.getImageLoadObject(\n imageId\n );\n\n if (imageLoadObject) {\n removeFromList(imageIdIndex);\n }\n });\n\n // Stop here if there are no images left to request\n // After those in the cache have been removed\n if (!stackPrefetch.indicesToRequest.length) {\n return;\n }\n\n // Clear the requestPool of prefetch requests\n requestPoolManager.clearRequestStack(requestType);\n\n // Identify the nearest imageIdIndex to the currentImageIdIndex\n const nearest = nearestIndex(\n stackPrefetch.indicesToRequest,\n stack.currentImageIdIndex\n );\n\n let imageId;\n let nextImageIdIndex;\n const preventCache = false;\n\n function doneCallback(image) {\n // Console.log('prefetch done: ' + image.imageId);\n const imageIdIndex = stack.imageIds.indexOf(image.imageId);\n\n removeFromList(imageIdIndex);\n }\n\n // Retrieve the errorLoadingHandler if one exists\n const errorLoadingHandler = loadHandlerManager.getErrorLoadingHandler();\n\n function failCallback(error) {\n console.log(`prefetch errored: ${error}`);\n if (errorLoadingHandler) {\n errorLoadingHandler(element, imageId, error, 'stackPrefetch');\n }\n }\n\n // Prefetch images around the current image (before and after)\n let lowerIndex = nearest.low;\n let higherIndex = nearest.high;\n\n while (\n lowerIndex >= 0 ||\n higherIndex < stackPrefetch.indicesToRequest.length\n ) {\n const currentIndex = stack.currentImageIdIndex;\n const shouldSkipLower =\n currentIndex - stackPrefetch.indicesToRequest[lowerIndex] >\n configuration.maxImagesToPrefetch;\n const shouldSkipHigher =\n stackPrefetch.indicesToRequest[higherIndex] - currentIndex >\n configuration.maxImagesToPrefetch;\n\n const shouldLoadLower = !shouldSkipLower && lowerIndex >= 0;\n const shouldLoadHigher =\n !shouldSkipHigher && higherIndex < stackPrefetch.indicesToRequest.length;\n\n if (!shouldLoadHigher && !shouldLoadLower) {\n break;\n }\n\n if (shouldLoadLower) {\n nextImageIdIndex = stackPrefetch.indicesToRequest[lowerIndex--];\n imageId = stack.imageIds[nextImageIdIndex];\n requestPoolManager.addRequest(\n element,\n imageId,\n requestType,\n preventCache,\n doneCallback,\n failCallback\n );\n }\n\n if (shouldLoadHigher) {\n nextImageIdIndex = stackPrefetch.indicesToRequest[higherIndex++];\n imageId = stack.imageIds[nextImageIdIndex];\n requestPoolManager.addRequest(\n element,\n imageId,\n requestType,\n preventCache,\n doneCallback,\n failCallback\n );\n }\n }\n\n // Try to start the requestPool's grabbing procedure\n // In case it isn't already running\n requestPoolManager.startGrabbing();\n}\n\nfunction getPromiseRemovedHandler(element) {\n return function(e) {\n const eventData = e.detail;\n\n // When an imagePromise has been pushed out of the cache, re-add its index\n // It to the indicesToRequest list so that it will be retrieved later if the\n // CurrentImageIdIndex is changed to an image nearby\n let stackData;\n\n try {\n // It will throw an exception in some cases (eg: thumbnails)\n stackData = getToolState(element, 'stack');\n } catch (error) {\n return;\n }\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n const imageIdIndex = stack.imageIds.indexOf(eventData.imageId);\n\n // Make sure the image that was removed is actually in this stack\n // Before adding it to the indicesToRequest array\n if (imageIdIndex < 0) {\n return;\n }\n\n const stackPrefetchData = getToolState(element, toolType);\n\n if (\n !stackPrefetchData ||\n !stackPrefetchData.data ||\n !stackPrefetchData.data.length\n ) {\n return;\n }\n\n stackPrefetchData.data[0].indicesToRequest.push(imageIdIndex);\n };\n}\n\nfunction onImageUpdated(e) {\n // Start prefetching again (after a delay)\n // When the user has scrolled to a new image\n clearTimeout(resetPrefetchTimeout);\n resetPrefetchTimeout = setTimeout(function() {\n const element = e.target;\n\n // If playClip is enabled and the user loads a different series in the viewport\n // An exception will be thrown because the element will not be enabled anymore\n try {\n prefetch(element);\n } catch (error) {\n return;\n }\n }, resetPrefetchDelay);\n}\n\nfunction enable(element) {\n // Clear old prefetch data. Skipping this can cause problems when changing the series inside an element\n const stackPrefetchDataArray = getToolState(element, toolType);\n\n stackPrefetchDataArray.data = [];\n\n // First check that there is stack data available\n const stackData = getToolState(element, 'stack');\n\n if (!stackData || !stackData.data || !stackData.data.length) {\n return;\n }\n\n const stack = stackData.data[0];\n\n // Check if we are allowed to cache images in this stack\n if (stack.preventCache === true) {\n console.warn(\n 'A stack that should not be cached was given the stackPrefetch'\n );\n\n return;\n }\n\n // Use the currentImageIdIndex from the stack as the initalImageIdIndex\n const stackPrefetchData = {\n indicesToRequest: range(0, stack.imageIds.length - 1),\n enabled: true,\n direction: 1,\n };\n\n // Remove the currentImageIdIndex from the list to request\n const indexOfCurrentImage = stackPrefetchData.indicesToRequest.indexOf(\n stack.currentImageIdIndex\n );\n\n stackPrefetchData.indicesToRequest.splice(indexOfCurrentImage, 1);\n\n addToolState(element, toolType, stackPrefetchData);\n\n prefetch(element);\n\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n element.addEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n\n const promiseRemovedHandler = getPromiseRemovedHandler(element);\n\n external.cornerstone.events.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n external.cornerstone.events.addEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n}\n\nfunction disable(element) {\n clearTimeout(resetPrefetchTimeout);\n element.removeEventListener(\n external.cornerstone.EVENTS.NEW_IMAGE,\n onImageUpdated\n );\n\n const promiseRemovedHandler = getPromiseRemovedHandler(element);\n\n external.cornerstone.events.removeEventListener(\n external.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,\n promiseRemovedHandler\n );\n\n const stackPrefetchData = getToolState(element, toolType);\n // If there is actually something to disable, disable it\n\n if (stackPrefetchData && stackPrefetchData.data.length) {\n stackPrefetchData.data[0].enabled = false;\n\n // Clear current prefetch requests from the requestPool\n requestPoolManager.clearRequestStack(requestType);\n }\n}\n\nfunction getConfiguration() {\n return configuration;\n}\n\nfunction setConfiguration(config) {\n configuration = config;\n\n if (config.maxSimultaneousRequests) {\n setMaxSimultaneousRequests(config.maxSimultaneousRequests);\n }\n}\n\n// Module/private exports\nconst stackPrefetch = {\n enable,\n disable,\n getConfiguration,\n setConfiguration,\n};\n\nexport default stackPrefetch;\n","import FusionRenderer from './fusionRenderer.js';\n\nconst stackRenderers = {};\n\nstackRenderers.FusionRenderer = FusionRenderer;\n\nexport default stackRenderers;\n","/**\n * Implements a frame-of-reference specific tool state management strategy. This means that\n * Measurement data are tied to a specific frame of reference UID and only visible to objects using\n * That frame-of-reference UID.\n * @public\n * @constructor newFrameOfReferenceSpecificToolStateManager\n * @memberof StateManagement\n *\n * @returns {Object} A frameOfReferenceSpecificToolStateManager instance.\n */\nfunction newFrameOfReferenceSpecificToolStateManager() {\n const toolState = {};\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addFrameOfReferenceSpecificToolState(\n frameOfReference,\n toolType,\n data\n ) {\n // If we don't have any tool state for this frameOfReference, add an empty object\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n toolState[frameOfReference] = {};\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, add an empty object\n if (frameOfReferenceToolState.hasOwnProperty(toolType) === false) {\n frameOfReferenceToolState[toolType] = {\n data: [],\n };\n }\n\n const toolData = frameOfReferenceToolState[toolType];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getFrameOfReferenceSpecificToolState(frameOfReference, toolType) {\n // If we don't have any tool state for this frame of reference, return undefined\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n return;\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, return undefined\n if (frameOfReferenceToolState.hasOwnProperty(toolType) === false) {\n return;\n }\n\n const toolData = frameOfReferenceToolState[toolType];\n\n return toolData;\n }\n\n function removeFrameOfReferenceSpecificToolState(\n frameOfReference,\n toolType,\n data\n ) {\n // If we don't have any tool state for this frame of reference, return undefined\n if (toolState.hasOwnProperty(frameOfReference) === false) {\n return;\n }\n\n const frameOfReferenceToolState = toolState[frameOfReference];\n\n // If we don't have tool state for this type of tool, return undefined\n if (frameOfReferenceToolState.hasOwnProperty(toolType) === false) {\n return;\n }\n\n const toolData = frameOfReferenceToolState[toolType];\n // Find this tool data\n let indexOfData = -1;\n\n for (let i = 0; i < toolData.data.length; i++) {\n if (toolData.data[i] === data) {\n indexOfData = i;\n }\n }\n\n if (indexOfData !== -1) {\n toolData.data.splice(indexOfData, 1);\n }\n }\n\n return {\n get: getFrameOfReferenceSpecificToolState,\n add: addFrameOfReferenceSpecificToolState,\n remove: removeFrameOfReferenceSpecificToolState,\n };\n}\n\n// A global frameOfReferenceSpecificToolStateManager - the most common case is to share 3d information\n// Between stacks of images\nconst globalFrameOfReferenceSpecificToolStateManager = newFrameOfReferenceSpecificToolStateManager();\n\nexport {\n newFrameOfReferenceSpecificToolStateManager,\n globalFrameOfReferenceSpecificToolStateManager,\n};\n","import external from '../externalModules.js';\n\n/**\n * Implements an imageId specific tool state management strategy. This means that\n * Measurements data is tied to a specific imageId and only visible for enabled elements\n * That are displaying that imageId.\n * @public\n * @constructor newImageIdSpecificToolStateManager\n * @memberof StateManagement\n *\n * @returns {Object} An imageIdSpecificToolStateManager instance.\n */\nfunction newImageIdSpecificToolStateManager() {\n let toolState = {};\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n\n function saveImageIdToolState(imageId) {\n return toolState[imageId];\n }\n\n function restoreImageIdToolState(imageId, imageIdToolState) {\n toolState[imageId] = imageIdToolState;\n }\n\n function saveToolState() {\n return toolState;\n }\n\n function restoreToolState(savedToolState) {\n toolState = savedToolState;\n }\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addImageIdSpecificToolState(element, toolType, data) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n // If we don't have an image for this element exit early\n if (!enabledElement.image) {\n return;\n }\n\n // If we don't have any tool state for this imageId, add an empty object\n if (toolState.hasOwnProperty(enabledElement.image.imageId) === false) {\n toolState[enabledElement.image.imageId] = {};\n }\n\n const imageIdToolState = toolState[enabledElement.image.imageId];\n\n // If we don't have tool state for this type of tool, add an empty object\n if (imageIdToolState.hasOwnProperty(toolType) === false) {\n imageIdToolState[toolType] = {\n data: [],\n };\n }\n\n const toolData = imageIdToolState[toolType];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getImageIdSpecificToolState(element, toolType) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n // If we don't have any tool state for this imageId, return undefined\n\n if (\n !enabledElement.image ||\n toolState.hasOwnProperty(enabledElement.image.imageId) === false\n ) {\n return;\n }\n\n const imageIdToolState = toolState[enabledElement.image.imageId];\n\n // If we don't have tool state for this type of tool, return undefined\n if (imageIdToolState.hasOwnProperty(toolType) === false) {\n return;\n }\n\n const toolData = imageIdToolState[toolType];\n\n return toolData;\n }\n\n // Clears all tool data from this toolStateManager.\n function clearImageIdSpecificToolStateManager(element) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n if (\n !enabledElement.image ||\n toolState.hasOwnProperty(enabledElement.image.imageId) === false\n ) {\n return;\n }\n\n delete toolState[enabledElement.image.imageId];\n }\n\n return {\n get: getImageIdSpecificToolState,\n add: addImageIdSpecificToolState,\n clear: clearImageIdSpecificToolStateManager,\n saveImageIdToolState,\n restoreImageIdToolState,\n saveToolState,\n restoreToolState,\n toolState,\n };\n}\n\n// A global imageIdSpecificToolStateManager - the most common case is to share state between all\n// Visible enabled images\nconst globalImageIdSpecificToolStateManager = newImageIdSpecificToolStateManager();\n\nexport {\n newImageIdSpecificToolStateManager,\n globalImageIdSpecificToolStateManager,\n};\n","let defaultStartLoadHandler;\nlet defaultEndLoadHandler;\nlet defaultErrorLoadingHandler;\n\nfunction setStartLoadHandler(handler) {\n defaultStartLoadHandler = handler;\n}\n\nfunction getStartLoadHandler() {\n return defaultStartLoadHandler;\n}\n\nfunction setEndLoadHandler(handler) {\n defaultEndLoadHandler = handler;\n}\n\nfunction getEndLoadHandler() {\n return defaultEndLoadHandler;\n}\n\nfunction setErrorLoadingHandler(handler) {\n defaultErrorLoadingHandler = handler;\n}\n\nfunction getErrorLoadingHandler() {\n return defaultErrorLoadingHandler;\n}\n\nconst loadHandlerManager = {\n setStartLoadHandler,\n getStartLoadHandler,\n setEndLoadHandler,\n getEndLoadHandler,\n setErrorLoadingHandler,\n getErrorLoadingHandler,\n};\n\nexport default loadHandlerManager;\n","import { globalImageIdSpecificToolStateManager } from './imageIdSpecificStateManager.js';\nimport {\n getElementToolStateManager,\n setElementToolStateManager,\n} from './toolState.js';\n\n/**\n * Implements an Stack specific tool state management strategy. This means\n * That tool data is shared between all imageIds in a given stack.\n * @public\n * @constructor newStackSpecificToolStateManager\n * @memberof StateManagement\n *\n * @param {string[]} toolTypes The tool types to apply to the stack.\n * @param {Object} oldStateManager The imageIdSpecificStateManager.\n * @returns {Object} A stackSpecificToolStateManager instance.\n */\nfunction newStackSpecificToolStateManager(toolTypes, oldStateManager) {\n let toolState = {};\n\n function saveToolState() {\n return toolState;\n }\n\n function restoreToolState(stackToolState) {\n toolState = stackToolState;\n }\n\n // Here we add tool state, this is done by tools as well\n // As modules that restore saved state\n function addStackSpecificToolState(element, toolType, data) {\n // If this is a tool type to apply to the stack, do so\n if (toolTypes.indexOf(toolType) >= 0) {\n // If we don't have tool state for this type of tool, add an empty object\n if (toolState.hasOwnProperty(toolType) === false) {\n toolState[toolType] = {\n data: [],\n };\n }\n\n const toolData = toolState[toolType];\n\n // Finally, add this new tool to the state\n toolData.data.push(data);\n } else {\n // Call the imageId specific tool state manager\n return oldStateManager.add(element, toolType, data);\n }\n }\n\n // Here you can get state - used by tools as well as modules\n // That save state persistently\n function getStackSpecificToolState(element, toolType) {\n // If this is a tool type to apply to the stack, do so\n if (toolTypes.indexOf(toolType) >= 0) {\n // If we don't have tool state for this type of tool, add an empty object\n if (toolState.hasOwnProperty(toolType) === false) {\n toolState[toolType] = {\n data: [],\n };\n }\n\n return toolState[toolType];\n }\n\n // Call the imageId specific tool state manager\n return oldStateManager.get(element, toolType);\n }\n\n const stackSpecificToolStateManager = {\n get: getStackSpecificToolState,\n add: addStackSpecificToolState,\n saveToolState,\n restoreToolState,\n toolState,\n };\n\n return stackSpecificToolStateManager;\n}\n\nconst stackStateManagers = [];\n\nfunction addStackStateManager(element, otherTools) {\n let oldStateManager = getElementToolStateManager(element);\n\n if (!oldStateManager) {\n oldStateManager = globalImageIdSpecificToolStateManager;\n }\n\n let stackTools = [\n 'stack',\n 'stackPrefetch',\n 'playClip',\n 'volume',\n 'slab',\n 'referenceLines',\n 'crosshairs',\n 'stackRenderer',\n ];\n\n if (otherTools) {\n stackTools = stackTools.concat(otherTools);\n }\n\n const stackSpecificStateManager = newStackSpecificToolStateManager(\n stackTools,\n oldStateManager\n );\n\n stackStateManagers.push(stackSpecificStateManager);\n setElementToolStateManager(element, stackSpecificStateManager);\n}\n\nconst stackSpecificStateManager = {\n newStackSpecificToolStateManager,\n addStackStateManager,\n};\n\nexport {\n stackSpecificStateManager,\n newStackSpecificToolStateManager,\n addStackStateManager,\n};\n","let defaultFontSize = 15,\n defaultFont = `${defaultFontSize}px Arial`,\n defaultBackgroundColor = 'transparent';\n\nfunction setFont(font) {\n defaultFont = font;\n}\n\nfunction getFont() {\n return defaultFont;\n}\n\nfunction setFontSize(fontSize) {\n defaultFontSize = fontSize;\n}\n\nfunction getFontSize() {\n return defaultFontSize;\n}\n\nfunction setBackgroundColor(backgroundColor) {\n defaultBackgroundColor = backgroundColor;\n}\n\nfunction getBackgroundColor() {\n return defaultBackgroundColor;\n}\n\nconst textStyle = {\n setFont,\n getFont,\n setFontSize,\n getFontSize,\n setBackgroundColor,\n getBackgroundColor,\n};\n\nexport default textStyle;\n","let defaultColor = 'white',\n activeColor = 'greenyellow',\n fillColor = 'transparent';\n\nfunction setFillColor(color) {\n fillColor = color;\n}\n\nfunction getFillColor() {\n return fillColor;\n}\n\nfunction setToolColor(color) {\n defaultColor = color;\n}\n\nfunction getToolColor() {\n return defaultColor;\n}\n\nfunction setActiveColor(color) {\n activeColor = color;\n}\n\nfunction getActiveColor() {\n return activeColor;\n}\n\nfunction getColorIfActive(data) {\n if (data.color) {\n return data.color;\n }\n\n return data.active ? activeColor : defaultColor;\n}\n\nconst toolColors = {\n setFillColor,\n getFillColor,\n setToolColor,\n getToolColor,\n setActiveColor,\n getActiveColor,\n getColorIfActive,\n};\n\nexport default toolColors;\n","let coordsData;\n\nfunction setCoords(eventData) {\n coordsData = eventData.currentPoints.canvas;\n}\n\nfunction getCoords() {\n return coordsData;\n}\n\nconst toolCoordinates = {\n setCoords,\n getCoords,\n};\n\nexport default toolCoordinates;\n","import EVENTS from '../events.js';\nimport external from '../externalModules.js';\nimport { globalImageIdSpecificToolStateManager } from './imageIdSpecificStateManager.js';\nimport triggerEvent from '../util/triggerEvent.js';\n\n/**\n * Returns the toolstate for a specific element.\n * @public\n * @function getElementToolStateManager\n *\n * @param {HTMLElement} element The element.\n * @returns {Object} The toolState.\n */\nfunction getElementToolStateManager(element) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n // If the enabledElement has no toolStateManager, create a default one for it\n // NOTE: This makes state management element specific\n\n if (enabledElement.toolStateManager === undefined) {\n enabledElement.toolStateManager = globalImageIdSpecificToolStateManager;\n }\n\n return enabledElement.toolStateManager;\n}\n\n/**\n * Adds tool state to the toolStateManager, this is done by tools as well\n * as modules that restore saved state.\n * @public\n * @method addToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolType The toolType of the state.\n * @param {Object} measurementData The data to store in the state.\n * @returns {undefined}\n */\nfunction addToolState(element, toolType, measurementData) {\n const toolStateManager = getElementToolStateManager(element);\n\n toolStateManager.add(element, toolType, measurementData);\n\n const eventType = EVENTS.MEASUREMENT_ADDED;\n const eventData = {\n toolType,\n element,\n measurementData,\n };\n\n triggerEvent(element, eventType, eventData);\n}\n\n/**\n * Returns tool specific state of an element. Used by tools as well as modules\n * that save state persistently\n * @export\n * @public\n * @method\n * @name getToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolType The toolType of the state.\n * @returns {Object} The element's state for the given toolType.\n */\nfunction getToolState(element, toolType) {\n const toolStateManager = getElementToolStateManager(element);\n\n return toolStateManager.get(element, toolType);\n}\n\n/**\n * Removes specific tool state from the toolStateManager.\n * @public\n * @method removeToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolType The toolType of the state.\n * @param {Object} data The data to remove from the toolStateManager.\n * @returns {undefined}\n */\nfunction removeToolState(element, toolType, data) {\n const toolStateManager = getElementToolStateManager(element);\n const toolData = toolStateManager.get(element, toolType);\n // Find this tool data\n let indexOfData = -1;\n\n for (let i = 0; i < toolData.data.length; i++) {\n if (toolData.data[i] === data) {\n indexOfData = i;\n }\n }\n\n if (indexOfData !== -1) {\n toolData.data.splice(indexOfData, 1);\n\n const eventType = EVENTS.MEASUREMENT_REMOVED;\n const eventData = {\n toolType,\n element,\n measurementData: data,\n };\n\n triggerEvent(element, eventType, eventData);\n }\n}\n\n/**\n * Removes all toolState from the toolStateManager corresponding to\n * the toolType and element.\n * @public\n * @method clearToolState\n *\n * @param {HTMLElement} element The element.\n * @param {string} toolType The toolType of the state.\n * @returns {undefined}\n */\nfunction clearToolState(element, toolType) {\n const toolStateManager = getElementToolStateManager(element);\n const toolData = toolStateManager.get(element, toolType);\n\n // If any toolData actually exists, clear it\n if (toolData !== undefined) {\n toolData.data = [];\n }\n}\n\n/**\n * Sets the tool state manager for an element\n * @public\n * @method setElementToolStateManager\n *\n * @param {HTMLElement} element The element.\n * @param {Object} toolStateManager The toolStateManager.\n * @returns {undefined}\n */\nfunction setElementToolStateManager(element, toolStateManager) {\n const enabledElement = external.cornerstone.getEnabledElement(element);\n\n enabledElement.toolStateManager = toolStateManager;\n}\n\nexport {\n addToolState,\n getToolState,\n removeToolState,\n clearToolState,\n setElementToolStateManager,\n getElementToolStateManager,\n};\n","let defaultWidth = 1,\n activeWidth = 2;\n\nfunction setToolWidth(width) {\n defaultWidth = width;\n}\n\nfunction getToolWidth() {\n return defaultWidth;\n}\n\nfunction setActiveWidth(width) {\n activeWidth = width;\n}\n\nfunction getActiveWidth() {\n return activeWidth;\n}\n\nconst toolStyle = {\n setToolWidth,\n getToolWidth,\n setActiveWidth,\n getActiveWidth,\n};\n\nexport default toolStyle;\n","import store from './index.js';\nimport getToolForElement from './getToolForElement.js';\n\n/**\n * Adds a tool to an enabled element.\n *\n * @public\n * @function addToolForElement\n * @memberof CornerstoneTools\n *\n * @param {HTMLElement} element The element to add the tool to.\n * @param {BaseTool} ApiTool The tool to add to the element.\n * @param {Object} [configuration] Override the default tool configuration\n * @returns {undefined}\n */\nconst addToolForElement = function(element, ApiTool, configuration) {\n // Instantiating the tool here makes it harder to accidentally add\n // The same tool (by reference) for multiple elements (which would reassign the tool\n // To a new element).\n const tool = new ApiTool(configuration);\n const toolAlreadyAddedToElement = getToolForElement(element, tool.name);\n\n if (toolAlreadyAddedToElement) {\n console.warn(`${tool.name} has already been added to the target element`);\n\n return;\n }\n\n tool.element = element;\n store.state.tools.push(tool);\n};\n\n/**\n * Adds a tool to all enabled element.\n *\n * @public\n * @function addTool\n * @memberof CornerstoneTools\n *\n * @param {BaseTool} ApiTool The tool to add to each element.\n * @param {Object} [configuration] Override the default tool configuration\n * @returns {undefined}\n */\nconst addTool = function(ApiTool, configuration) {\n _addToolGlobally(ApiTool, configuration);\n store.state.enabledElements.forEach(element => {\n addToolForElement(element, ApiTool, configuration);\n });\n};\n\n/**\n * Adds tool with matching name from globally registered tools.\n * Requires `globalToolSyncEnabled` to be set to true\n *\n * @private\n * @function addToolGlobally\n *\n * @param {BaseTool} ApiTool\n * @param {Object} [configuration] Override the default tool configuration\n * @returns {undefined}\n */\nconst _addToolGlobally = function(ApiTool, configuration) {\n if (!store.modules.globalConfiguration.state.globalToolSyncEnabled) {\n return;\n }\n\n const tool = new ApiTool(configuration);\n const toolAlreadyAddedGlobally =\n store.state.globalTools[tool.name] !== undefined;\n\n if (toolAlreadyAddedGlobally) {\n console.warn(`${tool.name} has already been added globally`);\n\n return;\n }\n\n store.state.globalTools[tool.name] = {\n tool: ApiTool,\n configuration,\n activeBindings: [],\n };\n};\n\nexport { addTool, addToolForElement };\n","import BaseAnnotationTool from '../tools/base/BaseAnnotationTool.js';\nimport BaseBrushTool from '../tools/base/BaseBrushTool.js';\n\n/**\n * Filters an array of tools, returning only tools which are active or passive.\n * @export\n * @public\n * @method\n * @name filterToolsUseableWithMultiPartTools\n *\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(tools) {\n return tools.filter(\n tool =>\n !tool.isMultiPartTool &&\n !(tool instanceof BaseAnnotationTool) &&\n !(tool instanceof BaseBrushTool)\n );\n}\n","/**\n * Filters an array of tools, returning only tools which are active.\n * @export\n * @public\n * @method\n * @name getActiveToolsForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @param {string} handlerType The input type being queried.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools, handlerType) {\n return tools.filter(\n tool =>\n tool.element === element &&\n tool.mode === 'active' &&\n (handlerType === undefined || tool.options[`is${handlerType}Active`])\n );\n}\n","/**\n * Filters an array of tools, returning only tools which are active or passive.\n * @export\n * @public\n * @method\n * @name getInteractiveToolsForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools) {\n return tools.filter(\n tool =>\n tool.element === element &&\n (tool.mode === 'active' || tool.mode === 'passive')\n );\n}\n","import { state } from './index.js';\n\n/**\n * Returns the tool instance attached to the element.\n * @export\n * @public\n * @method\n * @name getToolForElement\n *\n * @param {HTMLElement} element The element.\n * @param {string} name The tool's name.\n * @returns {Object} The tool instance.\n */\nexport default function(element, name) {\n return state.tools.find(\n tool => tool.element === element && tool.name === name\n );\n}\n","import { getToolState } from './../stateManagement/toolState.js';\n\n/**\n * Filters an array of tools, returning only tools which have annotation data.\n * @export\n * @public\n * @method\n * @name getToolsWithDataForElement\n *\n * @param {HTMLElement} element The element.\n * @param {Object[]} tools The input tool array.\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools) {\n return tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n return toolState && toolState.data.length > 0;\n });\n}\n","import { state } from './index.js';\nimport { getToolState } from '../stateManagement/toolState.js';\nimport getHandleNearImagePoint from '../manipulators/getHandleNearImagePoint.js';\n\n/**\n * Filters an array of tools, returning only tools with moveable handles at the\n * mouse location.\n *\n * @public\n * @function getToolsWithMoveableHandles\n *\n * @param {HTMLElement} element The element\n * @param {Object[]} tools The input tool array.\n * @param {Object} coords The coordinates of the mouse position.\n * @param {string} [interactionType=mouse]\n * @returns {Object[]} The filtered array.\n */\nexport default function(element, tools, coords, interactionType = 'mouse') {\n const proximity =\n interactionType === 'mouse' ? state.clickProximity : state.touchProximity;\n\n return tools.filter(tool => {\n const toolState = getToolState(element, tool.name);\n\n for (let i = 0; i < toolState.data.length; i++) {\n if (\n getHandleNearImagePoint(\n element,\n toolState.data[i].handles,\n coords,\n proximity\n ) !== undefined\n ) {\n return true;\n }\n }\n\n return false;\n });\n}\n","// Modules\nimport brush from './modules/brushModule.js';\nimport globalConfiguration from './modules/globalConfigurationModule.js';\nimport external from '../externalModules.js';\n\nexport const state = {\n // Global\n globalTools: {},\n globalToolChangeHistory: [],\n // Tracking\n enabledElements: [],\n tools: [],\n isToolLocked: false,\n activeMultiPartTool: null,\n mousePositionImage: {},\n // Settings\n clickProximity: 6,\n touchProximity: 10,\n handleRadius: 6,\n deleteIfHandleOutsideImage: true,\n preventHandleOutsideImage: false,\n};\n\nexport const getters = {\n mouseTools: () =>\n state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('Mouse')\n ),\n touchTools: () =>\n state.tools.filter(tool =>\n tool.supportedInteractionTypes.includes('Touch')\n ),\n enabledElementByUID: enabledElementUID =>\n state.enabledElements.find(\n element =>\n external.cornerstone.getEnabledElement(element).uuid ===\n enabledElementUID\n ),\n};\n\nexport const setters = {};\n\nexport const modules = {\n brush,\n globalConfiguration,\n};\n\nexport default {\n modules,\n state,\n getters,\n};\n","import {\n mouseEventListeners,\n wheelEventListener,\n touchEventListeners,\n} from '../../eventListeners/index.js';\nimport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n} from '../../eventDispatchers/index.js';\nimport { addToolForElement } from './../addTool.js';\nimport {\n setToolActiveForElement,\n setToolPassiveForElement,\n setToolEnabledForElement,\n setToolDisabledForElement,\n} from './../setToolMode.js';\nimport store from '../index.js';\n\n/**\n * Element Enabled event.\n *\n * @event Cornerstone#ElementEnabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being enabled.\n */\n\n/* TODO: It would be nice if this automatically added \"all tools\"\n * To the enabledElement that already exist on all other tools.\n * A half-measure might be a new method to \"duplicate\" the tool\n * Configuration for an existing enabled element\n * We may need to also save/store the original class/constructor per tool\n * To accomplish this\n */\n/**\n * Adds an enabledElement to our store.\n * @export\n * @private\n * @method\n * @name addEnabledElement\n * @param {Cornerstone#ElementEnabled} elementEnabledEvt\n * @listens Cornerstone#ElementEnabled\n * @returns {void}\n */\nexport default function(elementEnabledEvt) {\n console.log('EVENT:ELEMENT_ENABLED');\n const enabledElement = elementEnabledEvt.detail.element;\n\n // Dispatchers\n imageRenderedEventDispatcher.enable(enabledElement);\n newImageEventDispatcher.enable(enabledElement);\n\n // Mouse\n if (store.modules.globalConfiguration.state.mouseEnabled) {\n mouseEventListeners.enable(enabledElement);\n wheelEventListener.enable(enabledElement);\n mouseToolEventDispatcher.enable(enabledElement);\n }\n\n // Touch\n if (store.modules.globalConfiguration.state.touchEnabled) {\n touchEventListeners.enable(enabledElement);\n touchToolEventDispatcher.enable(enabledElement);\n }\n\n // State\n _addEnabledElmenet(enabledElement);\n}\n\n/**\n * Adds the enabled element to the store.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _addEnabledElmenet = function(enabledElement) {\n store.state.enabledElements.push(enabledElement);\n if (store.modules) {\n _initModulesOnElement(enabledElement);\n }\n _addGlobalToolsToElement(enabledElement);\n _repeatGlobalToolHistory(enabledElement);\n};\n\n/**\n * Iterate over our store's modules. If the module has an `enabledElementCallback`\n * call it and pass it a reference to our enabled element.\n * @private\n * @method\n * @param {Object} enabledElement\n * @returns {void}\n */\nfunction _initModulesOnElement(enabledElement) {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].enabledElementCallback === 'function') {\n modules[key].enabledElementCallback(enabledElement);\n }\n });\n}\n\n/**\n * Iterate over our stores globalTools adding each one to `enabledElement`\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nfunction _addGlobalToolsToElement(enabledElement) {\n if (!store.modules.globalConfiguration.state.globalToolSyncEnabled) {\n return;\n }\n\n Object.keys(store.state.globalTools).forEach(function(key) {\n const { tool, configuration } = store.state.globalTools[key];\n\n addToolForElement(enabledElement, tool, configuration);\n });\n}\n\n/**\n * Iterate over the globalToolChangeHistory and apply each `historyEvent`\n * to the supplied `enabledElement`.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nfunction _repeatGlobalToolHistory(enabledElement) {\n if (!store.modules.globalConfiguration.state.globalToolSyncEnabled) {\n return;\n }\n\n const setToolModeFns = {\n active: setToolActiveForElement,\n passive: setToolPassiveForElement,\n enabled: setToolEnabledForElement,\n disabled: setToolDisabledForElement,\n };\n\n store.state.globalToolChangeHistory.forEach(historyEvent => {\n const args = historyEvent.args.slice(0);\n\n args.unshift(enabledElement);\n setToolModeFns[historyEvent.mode].apply(null, args);\n });\n}\n","import {\n mouseEventListeners,\n wheelEventListener,\n touchEventListeners,\n} from '../../eventListeners/index.js';\nimport {\n imageRenderedEventDispatcher,\n mouseToolEventDispatcher,\n newImageEventDispatcher,\n touchToolEventDispatcher,\n} from '../../eventDispatchers/index.js';\nimport store from '../index.js';\n\n/**\n * Element Disabled event.\n *\n * @event Cornerstone#ElementDisabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being disabled.\n */\n\n/**\n * Removes an enabledElement from our store, and all associated tools that were added to it.\n * @export\n * @private\n * @method\n * @name removeEnabledElement\n * @param {Cornerstone#ElementDisabled} elementDisabledEvt\n * @listens Cornerstone#ElementDisabled\n * @returns {void}\n */\nexport default function(elementDisabledEvt) {\n console.info('EVENT:ELEMENT_DISABLED');\n const enabledElement = elementDisabledEvt.detail.element;\n\n // Dispatchers\n imageRenderedEventDispatcher.disable(enabledElement);\n newImageEventDispatcher.disable(enabledElement);\n\n // Mouse\n if (store.modules.globalConfiguration.state.mouseEnabled) {\n mouseEventListeners.disable(enabledElement);\n wheelEventListener.disable(enabledElement);\n mouseToolEventDispatcher.disable(enabledElement);\n }\n\n // Touch\n if (store.modules.globalConfiguration.state.touchEnabled) {\n touchEventListeners.disable(enabledElement);\n touchToolEventDispatcher.disable(enabledElement);\n }\n\n // State\n _removeAllToolsForElement(enabledElement);\n _removeEnabledElement(enabledElement);\n}\n\n/**\n * Remove all tools associated with enabled element.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _removeAllToolsForElement = function(enabledElement) {\n // Note: We may want to `setToolDisabled` before removing from store\n // Or take other action to remove any lingering eventListeners/state\n store.state.tools = store.state.tools.filter(\n tool => tool.element !== enabledElement\n );\n};\n\n/**\n * Remove the enabled element from the store if it exists.\n * @private\n * @method\n * @param {HTMLElement} enabledElement\n * @returns {void}\n */\nconst _removeEnabledElement = function(enabledElement) {\n if (store.modules) {\n _cleanModulesOnElement(enabledElement);\n }\n\n const foundElementIndex = store.state.enabledElements.findIndex(\n element => element === enabledElement\n );\n\n if (foundElementIndex > -1) {\n store.state.enabledElements.splice(foundElementIndex, 1);\n } else {\n console.warn('unable to remove element');\n }\n};\n\n/**\n * Iterate over our store's modules. If the module has a\n * `removeEnabledElementCallback` call it and clean up unneeded metadata.\n * @private\n * @method\n * @param {Object} enabledElement\n * @returns {void}\n */\nfunction _cleanModulesOnElement(enabledElement) {\n const modules = store.modules;\n\n Object.keys(modules).forEach(function(key) {\n if (typeof modules[key].removeEnabledElementCallback === 'function') {\n modules[key].removeEnabledElementCallback(enabledElement);\n }\n });\n}\n","import getToolForElement from './getToolForElement.js';\n\n/**\n * Queries if a tool is active on the specified element.\n * @export\n * @public\n * @method\n * @name isToolActive\n *\n * @param {HTMLElement} element The element being queried.\n * @param {string} name The name of the tool.\n * @returns {boolean} True if the tool is active.\n */\nexport default function(element, name) {\n const tool = getToolForElement(element, name);\n\n return tool.mode === 'active';\n}\n","import external from './../../externalModules.js';\n\nconst state = {\n drawColorId: 0,\n radius: 10,\n minRadius: 1,\n maxRadius: 50,\n alpha: 0.4,\n renderBrushIfHiddenButActive: true,\n hiddenButActiveAlpha: 0.2,\n colorMapId: 'BrushColorMap',\n visibleSegmentations: {},\n imageBitmapCache: {},\n segmentationMetadata: {},\n};\n\nconst setters = {\n /**\n * Sets the brush radius, account for global min/max radius\n *\n * @param {number} radius\n * @returns {void}\n */\n radius: radius => {\n state.radius = Math.min(Math.max(radius, state.minRadius), state.maxRadius);\n },\n\n /**\n * TODO: Should this be a init config property?\n * Sets the brush color map to something other than the default\n *\n * @param {Array} colors An array of 4D [red, green, blue, alpha] arrays.\n * @returns {void}\n */\n brushColorMap: colors => {\n const colormap = external.cornerstone.colors.getColormap(state.colorMapId);\n\n colormap.setNumberOfColors(colors.length);\n\n for (let i = 0; i < colors.length; i++) {\n colormap.setColor(i, colors[i]);\n }\n },\n elementVisible: enabledElement => {\n if (!external.cornerstone) {\n return;\n }\n\n const cornerstoneEnabledElement = external.cornerstone.getEnabledElement(\n enabledElement\n );\n\n const enabledElementUID = cornerstoneEnabledElement.uuid;\n const colormap = external.cornerstone.colors.getColormap(state.colorMapId);\n const numberOfColors = colormap.getNumberOfColors();\n\n state.visibleSegmentations[enabledElementUID] = [];\n\n for (let i = 0; i < numberOfColors; i++) {\n state.visibleSegmentations[enabledElementUID].push(true);\n }\n },\n brushVisibilityForElement: (enabledElementUID, segIndex, visible = true) => {\n if (!state.visibleSegmentations[enabledElementUID]) {\n state.imageBitmapCache[enabledElementUID] = [];\n }\n\n state.visibleSegmentations[enabledElementUID][segIndex] = visible;\n },\n imageBitmapCacheForElement: (enabledElementUID, segIndex, imageBitmap) => {\n if (!state.imageBitmapCache[enabledElementUID]) {\n state.imageBitmapCache[enabledElementUID] = [];\n }\n\n state.imageBitmapCache[enabledElementUID][segIndex] = imageBitmap;\n },\n clearImageBitmapCacheForElement: enabledElementUID => {\n state.imageBitmapCache[enabledElementUID] = [];\n },\n metadata: (seriesInstanceUid, segIndex, metadata) => {\n if (!state.segmentationMetadata[seriesInstanceUid]) {\n state.segmentationMetadata[seriesInstanceUid] = [];\n }\n\n state.segmentationMetadata[seriesInstanceUid][segIndex] = metadata;\n },\n};\n\nconst getters = {\n imageBitmapCacheForElement: enabledElementUID => {\n if (!state.imageBitmapCache[enabledElementUID]) {\n return null;\n }\n\n return state.imageBitmapCache[enabledElementUID];\n },\n visibleSegmentationsForElement: enabledElementUID => {\n if (!state.visibleSegmentations[enabledElementUID]) {\n return null;\n }\n\n return state.visibleSegmentations[enabledElementUID];\n },\n\n /**\n * Retrieves series-specific brush segmentation metadata.\n * @public\n * @function metadata\n * @param {string} seriesInstanceUid - The seriesInstanceUid of the scan.\n * @param {number} [segIndex] - The segmentation index.\n *\n * @returns {Object[]|Object} An array of segmentation metadata, or specifc\n * segmentation data if segIndex is defined.\n */\n metadata: (seriesInstanceUid, segIndex) => {\n if (!state.segmentationMetadata[seriesInstanceUid]) {\n return;\n }\n\n if (segIndex !== undefined) {\n return state.segmentationMetadata[seriesInstanceUid][segIndex];\n }\n\n return state.segmentationMetadata[seriesInstanceUid];\n },\n};\n\n/**\n * EnabledElementCallback - Element specific initilisation.\n * @public\n * @param {Object} enabledElement - The element on which the module is\n * being initialised.\n * @returns {void}\n */\nfunction enabledElementCallback(enabledElement) {\n setters.elementVisible(enabledElement);\n}\n\n/**\n * RemoveEnabledElementCallback - Element specific memory cleanup.\n * @public\n * @param {Object} enabledElement The element being removed.\n * @returns {void}\n */\n// TODO -> Test this before adding it to the module.\nfunction removeEnabledElementCallback(enabledElement) {\n if (!external.cornerstone) {\n return;\n }\n\n const cornerstoneEnabledElement = external.cornerstone.getEnabledElement(\n enabledElement\n );\n\n const enabledElementUID = cornerstoneEnabledElement.uuid;\n const colormap = external.cornerstone.colors.getColormap(state.colorMapId);\n const numberOfColors = colormap.getNumberOfColors();\n\n // Remove enabledElement specific data.\n delete state.visibleSegmentations[enabledElementUID];\n delete state.imageBitmapCache[enabledElementUID];\n}\n\n/**\n * OnRegisterCallback - Initialise the module when a new element is added.\n * @public\n * @returns {void}\n */\nfunction onRegisterCallback() {\n _initDefaultColorMap();\n}\n\nexport default {\n state,\n onRegisterCallback,\n enabledElementCallback,\n getters,\n setters,\n};\n\nconst distinctColors = [\n [230, 25, 75, 255],\n [60, 180, 175, 255],\n [255, 225, 25, 255],\n [0, 130, 200, 255],\n [245, 130, 48, 255],\n [145, 30, 180, 255],\n [70, 240, 240, 255],\n [240, 50, 230, 255],\n [210, 245, 60, 255],\n [250, 190, 190, 255],\n [0, 128, 128, 255],\n [230, 190, 255, 255],\n [170, 110, 40, 255],\n [255, 250, 200, 255],\n [128, 0, 0, 255],\n [170, 255, 195, 255],\n [128, 128, 0, 255],\n [255, 215, 180, 255],\n [0, 0, 128, 255],\n];\n\nlet colorPairIndex = 0;\n\nfunction _initDefaultColorMap() {\n const defaultSegmentationCount = 19;\n const colormap = external.cornerstone.colors.getColormap(state.colorMapId);\n\n colormap.setNumberOfColors(defaultSegmentationCount);\n\n /*\n 19 Colors selected to be as distinct from each other as possible,\n and ordered such that between each index you make large jumps around the\n color wheel. If defaultSegmentationCount is greater than 19, generate a\n random linearly interperlated color between 2 colors.\n */\n for (let i = 0; i < defaultSegmentationCount; i++) {\n if (i < distinctColors.length) {\n colormap.setColor(i, distinctColors[i]);\n } else {\n colormap.setColor(i, _generateInterpolatedColor());\n }\n }\n}\n\n/**\n * _generateInterpolatedColor - generates a color interpolated between two\n * colors. Humans can only distinguish between\n * ~15-20 colors, so this is the best we can do.\n * @private\n *\n * @returns {type} description\n */\nfunction _generateInterpolatedColor() {\n const randIndicies = _getNextColorPair();\n const fraction = Math.random();\n const interpolatedColor = [];\n\n for (let i = 0; i < 4; i++) {\n interpolatedColor.push(\n Math.floor(\n fraction * distinctColors[randIndicies[0]][i] +\n (1.0 - fraction) * distinctColors[randIndicies[1]][i]\n )\n );\n }\n\n return interpolatedColor;\n}\n\n/**\n * _getNextColorPair - returns the next pair of indicies to interpolate between.\n *\n * @private\n *\n * @returns {Array} An array containing the two indicies.\n */\nfunction _getNextColorPair() {\n const indexPair = [colorPairIndex];\n\n if (colorPairIndex < distinctColors.length - 1) {\n colorPairIndex++;\n indexPair.push(colorPairIndex);\n } else {\n colorPairIndex = 0;\n indexPair.push(colorPairIndex);\n }\n\n return indexPair;\n}\n","const state = {\n mouseEnabled: true,\n touchEnabled: true,\n globalToolSyncEnabled: false,\n};\n\nexport default {\n state,\n setters: {},\n};\n","import store from './index.js';\n\n/**\n * Deactivates and removes the tool from the target element with the provided name\n *\n * @export\n * @public\n * @method\n * @name removeToolForElement\n * @param {HTMLElement} element The element.\n * @param {string} toolName The name of the tool.\n * @returns {void}\n */\nconst removeToolForElement = function(element, toolName) {\n const toolIndex = store.state.tools.findIndex(\n tool => tool.element === element && tool.name === toolName\n );\n\n if (toolIndex >= 0) {\n store.state.tools.splice(toolIndex, 1);\n }\n};\n\n/**\n * Removes all tools from all enabled elements with the provided name.\n *\n * @export\n * @public\n * @method\n * @name removeTool\n * @param {string} toolName The name of the tool.\n * @returns {void}\n */\nconst removeTool = function(toolName) {\n _removeToolGlobally(toolName);\n store.state.enabledElements.forEach(element => {\n removeToolForElement(element, toolName);\n });\n};\n\n/**\n * Removes tool with matching name from globally registered tools.\n * Requires `globalToolSyncEnabled` to be set to true\n *\n * @private\n * @method\n * @name removeToolGlobally\n * @param {string} toolName The name of the tool to remove.\n * @returns {void}\n */\nconst _removeToolGlobally = function(toolName) {\n if (!store.modules.globalConfiguration.state.globalToolSyncEnabled) {\n return;\n }\n\n if (store.state.globalTools[toolName]) {\n delete store.state.globalTools[toolName];\n }\n};\n\nexport { removeTool, removeToolForElement };\n","import EVENTS from './../events.js';\nimport triggerEvent from './../util/triggerEvent.js';\nimport getToolForElement from './getToolForElement.js';\nimport store from './../store/index.js';\n\n/**\n * Sets a tool's state, with the provided toolName and element, to 'active'. Active tools are rendered,\n * respond to user input, and can create new data.\n *\n * @public\n * @function setToolActiveForElement\n * @memberof CornerstoneTools\n *\n * @example