/*! cornerstone-tools - 4.0.0-beta.4835 - 2019-09-06 | (c) 2017 Chris Hafey | https://github.com/cornerstonejs/cornerstoneTools */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("cornerstone-tools",[],t):"object"==typeof exports?exports["cornerstone-tools"]=t():e.cornerstoneTools=t()}(window,function(){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:a})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=12)}([function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){var a=n(24);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var a=n(8),o=n(1);e.exports=function(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?o(e):t}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}e.exports=function(e,t,a){return t&&n(e.prototype,t),a&&n(e,a),e}},function(e,t,n){var a=n(20),o=n(19),i=n(18);e.exports=function(e){return a(e)||o(e)||i()}},function(e,t,n){var a=n(17),o=n(16),i=n(15);e.exports=function(e,t){return a(e)||o(e,t)||i()}},function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=a=function(e){return n(e)}:e.exports=a=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},a(t)}e.exports=a},function(e,t,n){(function(a){t.log=function(...e){return"object"==typeof console&&console.log&&console.log(...e)},t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let a=0,o=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&"%c"===e&&(o=++a)}),t.splice(o,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&void 0!==a&&"env"in a&&(e=a.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.exports=n(22)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this,n(23))},function(e,t,n){e.exports=n(14)},function(e,t){function n(e,t,n,a,o,i,r){try{var s=e[i](r),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(a,o)}e.exports=function(e){return function(){var t=this,a=arguments;return new Promise(function(o,i){var r=e.apply(t,a);function s(e){n(r,o,i,s,l,"next",e)}function l(e){n(r,o,i,s,l,"throw",e)}s(void 0)})}}},function(e,t,n){"use strict";n.r(t);var a={};n.d(a,"drawBrushPixels",function(){return $}),n.d(a,"eraseIfSegmentIndex",function(){return Z}),n.d(a,"eraseOutsideBoundingBox",function(){return J}),n.d(a,"eraseInsideShape",function(){return ae}),n.d(a,"eraseOutsideShape",function(){return oe}),n.d(a,"fillOutsideBoundingBox",function(){return ie}),n.d(a,"fillInsideShape",function(){return le}),n.d(a,"fillOutsideShape",function(){return ce}),n.d(a,"floodFill",function(){return ue}),n.d(a,"getBoundingBoxAroundCircle",function(){return ge}),n.d(a,"getBoundingBoxAroundPolygon",function(){return fe}),n.d(a,"getCircle",function(){return me}),n.d(a,"getPixelPathBetweenPixels",function(){return ye}),n.d(a,"isSameSegment",function(){return te}),n.d(a,"triggerLabelmapModifiedEvent",function(){return Se}),n.d(a,"getDiffBetweenPixelData",function(){return ke});var o={};n.d(o,"angleCursor",function(){return Oa}),n.d(o,"arrowAnnotateCursor",function(){return Aa}),n.d(o,"bidirectionalCursor",function(){return Ra}),n.d(o,"cobbAngleCursor",function(){return Ha}),n.d(o,"circleRoiCursor",function(){return Ua}),n.d(o,"ellipticalRoiCursor",function(){return Na}),n.d(o,"freehandRoiCursor",function(){return Ba}),n.d(o,"freehandRoiSculptorCursor",function(){return Fa}),n.d(o,"lengthCursor",function(){return Va}),n.d(o,"probeCursor",function(){return qa}),n.d(o,"rectangleRoiCursor",function(){return ja}),n.d(o,"textMarkerCursor",function(){return za}),n.d(o,"crosshairsCursor",function(){return Wa}),n.d(o,"eraserCursor",function(){return Ga}),n.d(o,"magnifyCursor",function(){return Ya}),n.d(o,"panCursor",function(){return Xa}),n.d(o,"rotateCursor",function(){return Ka}),n.d(o,"stackScrollCursor",function(){return Za}),n.d(o,"wwwcRegionCursor",function(){return $a}),n.d(o,"wwwcCursor",function(){return Ja}),n.d(o,"zoomCursor",function(){return Qa}),n.d(o,"freehandEraseInsideCursor",function(){return ro}),n.d(o,"freehandFillInsideCursor",function(){return so}),n.d(o,"freehandEraseOutsideCursor",function(){return lo}),n.d(o,"freehandFillOutsideCursor",function(){return co}),n.d(o,"segRectangleEraseInsideCursor",function(){return uo}),n.d(o,"segRectangleFillInsideCursor",function(){return ho}),n.d(o,"segRectangleEraseOutsideCursor",function(){return vo}),n.d(o,"segRectangleFillOutsideCursor",function(){return go}),n.d(o,"segCircleEraseInsideCursor",function(){return fo}),n.d(o,"segCircleFillInsideCursor",function(){return mo}),n.d(o,"segCircleEraseOutsideCursor",function(){return po}),n.d(o,"segCircleFillOutsideCursor",function(){return xo});var i=n(0),r=n.n(i),s=n(5),l=n.n(s),c=n(4),u=n.n(c),d=n(3),h=n.n(d),v=n(2),g=n.n(v),f=window.cornerstone,m=window.cornerstoneMath,p=window.Hammer,x={set cornerstone(e){f=e},get cornerstone(){return f},set cornerstoneMath(e){m=e},get cornerstoneMath(){return m},set Hammer(e){p=e},get Hammer(){return p}},y=n(8),T=n.n(y),b={MOUSE_DOWN:"cornerstonetoolsmousedown",MOUSE_UP:"cornerstonetoolsmouseup",MOUSE_DOWN_ACTIVATE:"cornerstonetoolsmousedownactivate",MOUSE_DRAG:"cornerstonetoolsmousedrag",MOUSE_MOVE:"cornerstonetoolsmousemove",MOUSE_CLICK:"cornerstonetoolsmouseclick",MOUSE_DOUBLE_CLICK:"cornerstonetoolsmousedoubleclick",MOUSE_WHEEL:"cornerstonetoolsmousewheel",TOUCH_START:"cornerstonetoolstouchstart",TOUCH_START_ACTIVE:"cornerstonetoolstouchstartactive",TOUCH_END:"cornerstonetoolstouchend",TOUCH_DRAG:"cornerstonetoolstouchdrag",TOUCH_DRAG_END:"cornerstonetoolstouchdragend",TOUCH_PINCH:"cornerstonetoolstouchpinch",TOUCH_ROTATE:"cornerstonetoolstouchrotate",TOUCH_PRESS:"cornerstonetoolstouchpress",TAP:"cornerstonetoolstap",DOUBLE_TAP:"cornerstonetoolsdoubletap",MULTI_TOUCH_START:"cornerstonetoolsmultitouchstart",MULTI_TOUCH_START_ACTIVE:"cornerstonetoolsmultitouchstartactive",MULTI_TOUCH_DRAG:"cornerstonetoolsmultitouchdrag",KEY_DOWN:"cornerstonetoolskeydown",KEY_UP:"cornerstonetoolskeyup",KEY_PRESS:"cornerstonetoolskeypress",MEASUREMENT_ADDED:"cornerstonetoolsmeasurementadded",MEASUREMENT_MODIFIED:"cornerstonetoolsmeasurementmodified",MEASUREMENT_COMPLETED:"cornerstonetoolsmeasurementcompleted",MEASUREMENT_REMOVED:"cornerstonetoolsmeasurementremoved",TOOL_DEACTIVATED:"cornerstonetoolstooldeactivated",CLIP_STOPPED:"cornerstonetoolsclipstopped",STACK_SCROLL:"cornerstonetoolsstackscroll",STACK_PREFETCH_IMAGE_LOADED:"cornerstonetoolsstackprefetchimageloaded",STACK_PREFETCH_DONE:"cornerstonetoolsstackprefetchdone",LABELMAP_MODIFIED:"cornersontetoolslabelmapmodified"};function C(e,t){var n,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return"function"==typeof window.CustomEvent?n=new CustomEvent(t,{detail:a,cancelable:!0}):(n=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,a),e.dispatchEvent(n)}function M(e){return e instanceof HTMLElement?e:Qe.enabledElementByUID(e)}function E(e,t,n){e.labelmaps3D[t]={buffer:new ArrayBuffer(2*n),labelmaps2D:[],metadata:[],activeSegmentIndex:1,colorLUTIndex:0,segmentsHidden:[],undo:[],redo:[]}}function I(){var e={};return{get:function(t,n){var a=x.cornerstone.getEnabledElement(t);if(a.image&&!1!==e.hasOwnProperty(a.image.imageId)){var o=e[a.image.imageId];if(!1!==o.hasOwnProperty(n))return o[n]}},add:function(t,n,a){var o=x.cornerstone.getEnabledElement(t);if(o.image){!1===e.hasOwnProperty(o.image.imageId)&&(e[o.image.imageId]={});var i=e[o.image.imageId];!1===i.hasOwnProperty(n)&&(i[n]={data:[]}),i[n].data.push(a)}},clear:function(t){var n=x.cornerstone.getEnabledElement(t);n.image&&!1!==e.hasOwnProperty(n.image.imageId)&&delete e[n.image.imageId]},saveImageIdToolState:function(t){return e[t]},restoreImageIdToolState:function(t,n){e[t]=n},saveToolState:function(){return e},restoreToolState:function(t){e=t},toolState:e}}var w=I();function S(e){var t=x.cornerstone.getEnabledElement(e);return void 0===t.toolStateManager&&(t.toolStateManager=w),t.toolStateManager}function k(e,t,n){S(e).add(e,t,n),C(e,b.MEASUREMENT_ADDED,{toolType:t,element:e,measurementData:n})}function _(e,t){return S(e).get(e,t)}function P(e,t,n){for(var a=S(e).get(e,t),o=-1,i=0;i<a.data.length;i++)a.data[i]===n&&(o=i);-1!==o&&(a.data.splice(o,1),C(e,b.MEASUREMENT_REMOVED,{toolType:t,element:e,measurementData:n}))}function D(e,t){var n=S(e).get(e,t);void 0!==n&&(n.data=[])}function L(e,t){x.cornerstone.getEnabledElement(e).toolStateManager=t}var O=n(9),A=n.n(O),R=A()("cornerstoneTools");var H=function(e){var t=R.extend(e);return{log:t,warn:t,error:console.error.bind(console)}},U=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"".concat("cornerstoneTools",":*");return A.a.enable(e)},N=function(){return A.a.disable()},B={series:{},colorLutTables:[]},F=H("store:modules:segmentationModule:metadata");var V={renderOutline:!0,renderFill:!0,shouldRenderInactiveLabelmaps:!0,radius:10,minRadius:1,maxRadius:50,segmentsPerLabelmap:65535,fillAlpha:.2,fillAlphaInactive:.1,outlineAlpha:.7,outlineAlphaInactive:.35,outlineWidth:3,storeHistory:!0};function q(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"increase",n=_(e,"stack").data[0].imageIds[0],a=B.series[n];if(a){var o=a.activeLabelmapIndex,i=a.labelmaps3D[o];switch(t){case"increase":i.activeSegmentIndex++,i.activeSegmentIndex>V.segmentsPerLabelmap&&(i.activeSegmentIndex=1);break;case"decrease":i.activeSegmentIndex--,i.activeSegmentIndex<=0&&(i.activeSegmentIndex=V.segmentsPerLabelmap)}}}var j=H("store:modules:segmentationModule:segmentVisibility");function z(e){var t=M(e);if(t){var n,a,o=_(t,"stack").data[0],i=o.imageIds[0],r=B.series[i];return r&&(n=r.labelmaps3D,a=r.activeLabelmapIndex),{labelmaps3D:n,activeLabelmapIndex:a,currentImageIdIndex:o.currentImageIdIndex}}}function W(e,t){var n=z(e),a=n.labelmaps3D,o=n.activeLabelmapIndex;return a[t=void 0!==t?t:o]}function G(e,t){var n=M(e);if(n){var a=z(n).labelmaps3D;if(!a)return[];var o=B.colorLutTables;if(void 0!==t){var i=a[t];return i?{labelmapIndex:t,bytesPerVoxel:2,buffer:i.buffer,colorLUT:o[i.colorLUTIndex]}:void 0}for(var r=[],s=0;s<a.length;s++){var l=a[s];l&&r.push({labelmapIndex:s,bytesPerVoxel:2,buffer:l.buffer,colorLUT:o[l.colorLUTIndex]})}return r}}function Y(e){for(var t=new Set(e).values(),n=[],a=!1;!a;){var o=t.next();(a=o.done)||n.push(o.value)}return n}var X=n(6),K=n.n(X);function Z(e,t,n){t[e]===n&&(t[e]=0)}function $(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];e.forEach(function(e){var i=function(e,t){return t*a+e}.apply(void 0,K()(e));o?Z(i,t,n):t[i]=n})}function J(e,t,n,a){for(var o=e.detail,i=t.pixelData,r=t.segmentIndex,s=o.image,l=s.width,c=s.height,u=0;u<l;u++)for(var d=0;d<n[1];d++)Z(d*l+u,i,r);for(var h=0;h<n[0];h++)for(var v=n[1];v<a[1];v++)Z(v*l+h,i,r);for(var g=a[0];g<l;g++)for(var f=n[1];f<a[1];f++)Z(f*l+g,i,r);for(var m=0;m<l;m++)for(var p=a[1];p<c;p++)Z(p*l+m,i,r)}var Q=n(7),ee=n.n(Q);function te(e,t,n){return t[e]===n}H("util:segmentation:operations:eraseOutsideCircle");function ne(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"inside",r=e.detail.image.width,s=t.pixelData,l=t.segmentIndex,c=ee()(a,2),u=c[0],d=c[1],h=ee()(o,2),v=h[0],g=h[1];"outside"===i&&J(e,t,a,o);for(var f=u;f<v;f++)for(var m=d;m<g;m++){var p=m*r+f;te(p,s,l)&&n({x:f,y:m})&&(s[p]=0)}}function ae(e,t,n,a,o){ne(e,t,n,a,o,"inside")}function oe(e,t,n,a,o){ne(e,t,function(e){return!n(e)},a,o,"outside")}function ie(e,t,n,a){for(var o=t.pixelData,i=t.segmentIndex,r=e.detail.image,s=r.width,l=r.height,c=0;c<s;c++)for(var u=0;u<n[1];u++)o[u*s+c]=i;for(var d=0;d<n[0];d++)for(var h=n[1];h<a[1];h++)o[h*s+d]=i;for(var v=a[0];v<s;v++)for(var g=n[1];g<a[1];g++)o[g*s+v]=i;for(var f=0;f<s;f++)for(var m=a[1];m<l;m++)o[m*s+f]=i}var re=H("util:segmentation:operations:helpers:fillShape");function se(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"inside",r=t.pixelData,s=t.segmentIndex;if(void 0!==r&&void 0!==s){var l=e.detail.image.width,c=ee()(a,2),u=c[0],d=c[1],h=ee()(o,2),v=h[0],g=h[1];"outside"===i&&ie(e,t,a,o);for(var f=u;f<v;f++)for(var m=d;m<g;m++){var p=m*l+f;n({x:f,y:m})&&(r[p]=s)}}else re.error("fillInsideShape requires operationData to contain pixelData and segmentIndex")}function le(e,t,n,a,o){se(e,t,n,a,o,"inside")}function ce(e,t,n,a,o){se(e,t,function(e){return!n(e)},a,o,"outside")}var ue=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.onFlood||function(){},o=n.onBoundary||function(){},i=n.equals||de,r=n.diagonals||!1,s=g(t),l=function(e){for(var t=[],n=function(e){return e.split("").map(function(e){return parseInt(e,10)-1})},a=0;a<Math.pow(3,e);a+=1){var o=he(a.toString(3),"0",e);t.push(n(o))}return t}(t.length).filter(function(e){var t=function(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}(e);return 0!==t&&(1===t||r)}),c=[],u=[],d={},h={};for(c.push({currentArgs:t});c.length>0;)v(c.pop());return{flooded:u,boundaries:function(){var e=[];for(var t in h)h.hasOwnProperty(t)&&e.unshift(h[t]);return e}()};function v(e){var t=e.currentArgs,n=e.previousArgs;!0!==d[t]&&(!function(e){d[e]=!0}(t),function(e){var t=f(g,[e]);return f(i,[t,s])}(t)?(function(e){u.push(e),a.apply(void 0,K()(e))}(t),function(e){for(var t=0;t<l.length;t+=1){for(var n=l[t],a=e.slice(0),o=0;o<e.length;o+=1)a[o]+=n[o];c.push({currentArgs:a,previousArgs:e})}}(t)):function(e){h[e]=e,o.apply(void 0,K()(e))}(n))}function g(t){return e.apply(void 0,K()(t))}function f(e,t){try{return e.apply(void 0,K()(t))}catch(e){return}}};function de(e,t){return e===t}function he(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}function ve(e,t){var n=(0,x.cornerstoneMath.point.distance)(e,t);return{left:Math.floor(Math.min(e.x-n,t.x)),top:Math.floor(Math.min(e.y-n,t.y)),width:2*n,height:2*n}}function ge(e){var t=e.detail.handles,n=e.detail.image,a=n.width,o=n.height,i=ve(t.start,t.end),r=i.width+i.left,s=i.left,l=i.top+i.height,c=i.top;return s=Math.floor(s),c=Math.floor(c),r=Math.floor(r),l=Math.floor(l),r=Math.min(a,r),s=Math.max(0,s),l=Math.min(o,l),[[s,c=Math.max(0,c)],[r,l]]}function fe(e,t){var n=1/0,a=0,o=1/0,i=0,r=t.width,s=t.height;return e.forEach(function(e){n=Math.min(e[0],n),a=Math.max(e[0],a),o=Math.min(e[1],o),i=Math.max(e[1],i)}),n=Math.floor(n),o=Math.floor(o),a=Math.floor(a),i=Math.floor(i),a=Math.min(r,a),n=Math.max(0,n),i=Math.min(s,i),o=Math.max(0,o),[[n,o],[a,i]]}function me(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,i=Math.floor(a),r=Math.floor(o);if(1===e)return[[i,r]];for(var s=[],l=0,c=-e;c<=e;c++){var u=r+c;if(!(u>t||u<0))for(var d=-e;d<=e;d++){var h=i+d;h>=n||h<0||d*d+c*c<e*e&&(s[l++]=[i+d,r+c])}}return s}var pe=1/Math.sqrt(2),xe={up:{x:0,y:1},upRight:{x:pe,y:pe},right:{x:1,y:0},downRight:{x:pe,y:-pe},down:{x:0,y:1},downLeft:{x:-pe,y:-pe},left:{x:-1,y:0},upLeft:{x:-pe,y:pe}},ye=function(e,t){for(var n={x:e.x,y:e.y},a=[];t.x!==n.x||t.y!==n.y;)t.x===n.x?t.y>n.y?n.y++:n.y--:t.y===n.y?t.x>n.x?n.x++:n.x--:t.y>n.y?t.x>n.x?Te(n,t):be(n,t):t.x>n.x?Ce(n,t):Me(n,t),a.push({x:n.x,y:n.y});return a.pop(),a};function Te(e,t){var n=Ee(e,t);switch(we([Ie(n,xe.up),Ie(n,xe.right),Ie(n,xe.upRight)])){case 0:e.y++;break;case 1:e.x++;break;case 2:e.y++,e.x++}}function be(e,t){var n=Ee(e,t);switch(we([Ie(n,xe.up),Ie(n,xe.left),Ie(n,xe.upLeft)])){case 0:e.y++;break;case 1:e.x--;break;case 2:e.y++,e.x--}}function Ce(e,t){var n=Ee(e,t);switch(we([Ie(n,xe.down),Ie(n,xe.right),Ie(n,xe.downRight)])){case 0:e.y--;break;case 1:e.x++;break;case 2:e.y--,e.x++}}function Me(e,t){var n=Ee(e,t);switch(we([Ie(n,xe.down),Ie(n,xe.left),Ie(n,xe.downLeft)])){case 0:e.y--;break;case 1:e.x--;break;case 2:e.y--,e.x--}}function Ee(e,t){var n=x.cornerstoneMath.point.distance(e,t);return{x:(t.x-e.x)/n,y:(t.y-e.y)/n}}function Ie(e,t){return e.x*t.x+e.y*t.y}function we(e){var t=e[0]>e[1]?0:1;return e[2]>e[t]&&(t=2),t}function Se(e,t){var n=tt("segmentation").getters;t=void 0===t?n.activeLabelmapIndex(e):t,x.cornerstone.triggerEvent(e,b.LABELMAP_MODIFIED,{labelmapIndex:t})}function ke(e,t){for(var n=[],a=0;a<e.length;a++)e[a]!==t[a]&&n.push([a,e[a],t[a]]);return n}function _e(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,r=(arguments.length>6&&void 0!==arguments[6]&&arguments[6],B.series[e]);r||(B.series[e]={activeLabelmapIndex:n,labelmaps3D:[]},r=B.series[e]),r.labelmaps3D[n]={buffer:t,labelmaps2D:[],metadata:a,activeSegmentIndex:1,colorLUTIndex:0,segmentsHidden:[],undo:[],redo:[]};for(var s=r.labelmaps3D[n].labelmaps2D,l=t.byteLength/o,c=l/2,u=0;u<o;u++){var d=new Uint16Array(t,l*u,c),h=i?i[u]:Y(d);h&&h.some(function(e){return e})&&(s[u]={pixelData:d,segmentsOnLabelmap:h})}}function Pe(e,t,n,a,o){var i=a*o,r=2*i*n,s=new Uint16Array(e.labelmaps3D[t].buffer,r,i);e.labelmaps3D[t].labelmaps2D[n]={pixelData:s,segmentsOnLabelmap:[]}}function De(e,t,n){var a=e.x,o=e.y;return a<n&&a>=0&&o<t&&o>=0}var Le=H("store:modules:segmentationModule:getSegmentOfActiveLabelmapAtEvent");var Oe=H("store:modules:segmentationModule:setColorLUT");function Ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=V.segmentsPerLabelmap;t?(!function(e,t){e.length<t?Oe.warn("The provided colorLUT only provides ".concat(e.length," labels, whereas segmentsPerLabelmap is set to ").concat(t,". Autogenerating the rest.")):e.length>t&&Oe.warn("segmentsPerLabelmap is set to ".concat(t,", and the provided colorLUT provides ").concat(e.length,". Using the first ").concat(t," colors from the LUT."))}(t,n),t.length<n&&(t=[].concat(K()(t),K()(He(n-t.length))))):t=t||He(n),t.unshift([0,0,0,0]),B.colorLutTables[e]=t}function Re(e){return"number"==typeof e?B.colorLutTables[e]:B.colorLutTables[e.colorLUTIndex]}function He(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:255,t=[],n=0;n<e;n++)t.push(We(Be(),ze()));return t}var Ue=137.5,Ne=222.5;function Be(){return(Ne+=Ue)>=360&&(Ne-=360),Ne}var Fe=.6,Ve=.82,qe=.3,je=.07;function ze(){(Fe+=je)>Ve&&(Fe=qe+(Fe-Ve));return Fe}function We(e){var t,n,a,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.6,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:255,s=(1-Math.abs(2*i-1))*o,l=s*(1-Math.abs(e/60%2-1)),c=i-s/2;return e<60?(t=s,n=l,a=0):e<120?(t=l,n=s,a=0):e<180?(t=0,n=s,a=l):e<240?(t=0,n=l,a=s):e<300?(t=l,n=0,a=s):e<360&&(t=s,n=0,a=l),[255*(t+c),255*(n+c),255*(a+c),r]}var Ge=H("util:segmentation:labelmap3DHistory");function Ye(e,t,n){var a=e.labelmaps2D;t.forEach(function(e){for(var t=e.imageIdIndex,o=e.diff,i=a[t].pixelData,r=0;r<o.length;r++){var s=o[r];i[s[0]]=s[n]}})}var Xe={state:B,configuration:V,onRegisterCallback:function(){Ae(0)},getters:{metadata:function(e,t,n){var a=M(e);if(a){var o=_(a,"stack").data[0].imageIds[0],i=B.series[o];if(i){if(t=void 0===t?i.activeLabelmapIndex:t,i.labelmaps3D[t]){var r=i.labelmaps3D[t];return void 0===n?r.metadata:r.metadata[n]}F.warn("No labelmap3D of labelmap index ".concat(t," on stack."))}else F.warn("brushStackState is undefined")}},labelmap3D:W,labelmaps3D:z,activeLabelmapIndex:function(e){var t=M(e);if(t){var n=_(t,"stack").data[0].imageIds[0],a=B.series[n];if(a)return a.activeLabelmapIndex}},activeSegmentIndex:function(e,t){var n=M(e);if(n){var a=_(n,"stack").data[0].imageIds[0],o=B.series[a];if(o){t=void 0===t?o.activeLabelmapIndex:t;var i=o.labelmaps3D[t];if(i)return i.activeSegmentIndex}return 1}},isSegmentVisible:function(e,t,n){if(t){var a=M(e);if(a){var o=_(a,"stack").data[0].imageIds[0],i=B.series[o];if(i){if(n=void 0===n?i.activeLabelmapIndex:n,i.labelmaps3D[n])return!i.labelmaps3D[n].segmentsHidden[t];j.warn("No labelmap3D of labelmap index ".concat(n," on stack."))}else j.warn("brushStackState is undefined")}}},labelmap2D:function(e){var t=M(e);if(t){var n,a=x.cornerstone,o=_(t,"stack").data[0],i=a.getEnabledElement(t),r=o.currentImageIdIndex,s=i.image,l=s.rows,c=s.columns,u=o.imageIds.length,d=o.imageIds[0],h=B.series[d];h?(n=h.activeLabelmapIndex,h.labelmaps3D[n]||E(h,n,l*c*u),h.labelmaps3D[n].labelmaps2D[r]||Pe(h,n,r,l,c)):(n=0,B.series[d]={activeLabelmapIndex:n,labelmaps3D:[]},E(h=B.series[d],n,l*c*u),Pe(h,n,r,l,c));var v=h.labelmaps3D[n];return{labelmap2D:v.labelmaps2D[r],labelmap3D:v,currentImageIdIndex:r,activeLabelmapIndex:n}}},labelmap2DByImageIdIndex:function(e,t,n,a){if(!e.labelmaps2D[t]){var o=n*a,i=2*o*t,r=new Uint16Array(e.buffer,i,o);e.labelmaps2D[t]={pixelData:r,getSegmentIndexes:function(){return new Set(r)}}}return e.labelmaps2D[t]},labelmapStats:function(e,t){var n=M(e);if(n)return new Promise(function(e){var a=x.cornerstone,o=_(n,"stack").data[0].imageIds,i=o[0],r=B.series[i];r||e();for(var s=r.activeLabelmapIndex,l=r.labelmaps3D[s].buffer,c=[],u=0;u<o.length;u++)c.push(a.loadAndCacheImage(o[u]));Promise.all(c).then(function(n){for(var a=[],o=n[0],i=o.rows,r=o.columns,s=0;s<n.length;s++)a.push(n[s].getPixelData());var c=function(e,t,n,a){for(var o=[],i=0;i<t.length;i++)for(var r=new Uint8Array(e,i*n,n),s=t[i],l=0;l<s.length;l++)r[l]===a&&o.push(s[l]);for(var c=Math.max.apply(Math,o),u=0,d=0;d<o.length;d++)u+=o[d];u/=o.length;for(var h=0,v=0;v<o.length;v++)h+=Math.pow(o[v]-u,2);return h=Math.pow(h,.5),{maximum:c,mean:u,stdDev:h}}(l,a,i*r,t);e(c)})})},segmentOfActiveLabelmapAtEvent:function(e){var t=e.detail,n=t.element,a=t.image,o=t.currentPoints;if(o){var i=a.width,r=a.height;if(n){var s=_(n,"stack").data[0],l=s.currentImageIdIndex,c=s.imageIds[0],u=B.series[c],d=u.activeLabelmapIndex,h=u.labelmaps3D[d];if(h){var v=h.labelmaps2D[l];if(v){var g=v.pixelData,f=o.image,m=f.x,p=f.y;if(De({x:m=Math.floor(m),y:p=Math.floor(p)},r,i)){var x=g[p*i+m];if(0===x)return;return{segmentIndex:x,metadata:h.metadata[x]}}}}}}else Le.warn("Not a cornerstone input event.")},brushColor:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=M(e);if(n){var a,o=_(n,"stack").data[0].imageIds[0],i=B.series[o];if(i){var r=i.activeLabelmapIndex,s=i.labelmaps3D[r],l=s.activeSegmentIndex;a=B.colorLutTables[s.colorLUTIndex][l]}else a=B.colorLutTables[0][1];return t?"rgba(".concat(a[0],", ").concat(a[1],", ").concat(a[2],", 1.0 )"):"rgba(".concat(a[0],", ").concat(a[1],", ").concat(a[2],", 0.8 )")}},labelmapBuffers:G,activeLabelmapBuffer:function(e){var t=M(e);if(t){var n=_(t,"stack").data[0].imageIds[0],a=B.series[n];if(a)return G(t,a.activeLabelmapIndex)}},colorLUT:Re,colorForSegmentIndexColorLUT:function(e,t){return Re(e)[t]}},setters:{metadata:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=M(e);if(o){var i=x.cornerstone,r=_(o,"stack").data[0],s=r.imageIds[0],l=B.series[s];if(l||(B.series[s]={labelmapIndex:t,labelmaps3D:[]},l=B.series[s]),!l.labelmaps3D[t]){var c=i.getEnabledElement(o).image;E(l,t,c.rows*c.columns*r.imageIds.length)}l.labelmaps3D[t].metadata[n]=a}},labelmap3DForElement:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],o=arguments.length>4?arguments[4]:void 0,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=M(e);if(r){var s=_(r,"stack"),l=s.data[0].imageIds.length;_e(s.data[0].imageIds[0],t,n,a,l,o,i),Se(r,n)}},labelmap3DByFirstImageId:_e,incrementActiveSegmentIndex:function(e){var t=M(e);t&&q(t,"increase")},decrementActiveSegmentIndex:function(e){var t=M(e);t&&q(t,"decrease")},activeSegmentIndex:function(e,t){var n=M(e);if(n){var a=_(n,"stack").data[0].imageIds[0],o=B.series[a];if(o){var i=o.activeLabelmapIndex,r=o.labelmaps3D[i];t<=0?t=1:t>V.segmentsPerLabelmap&&(t=V.segmentsPerLabelmap),r.activeSegmentIndex=t}}},toggleSegmentVisibility:function(e,t,n){if(t){var a=M(e);if(a){var o=_(a,"stack").data[0].imageIds[0],i=B.series[o];if(i){if(n=void 0===n?i.activeLabelmapIndex:n,i.labelmaps3D[n]){var r=i.labelmaps3D[n].segmentsHidden;return r[t]=!r[t],!r[t]}j.warn("No labelmap3D of labelmap index ".concat(n," on stack."))}else j.warn("brushStackState is undefined")}}},updateSegmentsOnLabelmap2D:function(e){e.segmentsOnLabelmap=Y(e.pixelData)},deleteSegment:function(e,t,n){if(t){var a=M(e);if(a){var o=_(a,"stack").data[0].imageIds[0],i=B.series[o];if(i){n=void 0===n?i.activeLabelmapIndex:n;var r=i.labelmaps3D[n];if(r){delete r.metadata[t];for(var s=r.labelmaps2D,l=0;l<s.length;l++){var c=s[l];if(c&&c.segmentsOnLabelmap.includes(t)){var u=c.pixelData,d=c.segmentsOnLabelmap.indexOf(t);c.segmentsOnLabelmap.splice(d,1);for(var h=0;h<u.length;h++)u[h]===t&&(u[h]=0)}}x.cornerstone.updateImage(a)}}}}},colorLUT:Ae,colorLUTIndexForLabelmap3D:function(e,t){e.colorLUTIndex=t},colorForSegmentIndexOfColorLUT:function(e,t,n){Re(e)[t]=n},activeLabelmapIndex:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=M(e);if(n){var a=x.cornerstone,o=_(n,"stack").data[0],i=a.getEnabledElement(n).image,r=i.rows*i.columns*o.imageIds.length,s=o.imageIds[0],l=B.series[s];l?(l.activeLabelmapIndex=t,l.labelmaps3D[t]||E(l,t,r)):(B.series[s]={activeLabelmapIndex:t,labelmaps3D:[]},E(l=B.series[s],t,r)),a.updateImage(n)}},radius:function(e){V.radius=Math.min(Math.max(e,V.minRadius),V.maxRadius)},pushState:function(e,t,n){var a=W(e,n);a.undo.push(t),a.redo=[]},undo:function(e,t){var n=W(e,t),a=n.undo,o=n.redo;if(a.length){var i=a.pop();Ye(n,i,1),o.push(i),x.cornerstone.updateImage(e)}else Ge.warn("No undos left.")},redo:function(e,t){var n=W(e,t),a=n.undo,o=n.redo;if(o.length){var i=o.pop();Ye(n,i,2),a.push(i),x.cornerstone.updateImage(e)}else Ge.warn("No redos left.")}}},Ke={iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:'\n    <path stroke="ACTIVE_COLOR" d="M8 16L8 0"></path>\n    <path stroke="ACTIVE_COLOR" d="M16 8L0 8"></path>\n  '},Ze={getters:{defaultOptions:function(){return Ke}},setters:{defaultOptions:function(e){Object.assign(Ke,e)}}},$e={configuration:{mouseEnabled:!0,touchEnabled:!0,globalToolSyncEnabled:!1,showSVGCursors:!1}},Je=(H("store:modules:storeLogger"),{globalTools:{},globalToolChangeHistory:[],enabledElements:[],tools:[],isToolLocked:!1,activeMultiPartTool:null,mousePositionImage:{},clickProximity:6,touchProximity:10,handleRadius:6,deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1,svgCursorUrl:null}),Qe={mouseTools:function(){return Je.tools.filter(function(e){return e.supportedInteractionTypes.includes("Mouse")})},touchTools:function(){return Je.tools.filter(function(e){return e.supportedInteractionTypes.includes("Touch")})},enabledElementByUID:function(e){return Je.enabledElements.find(function(t){return x.cornerstone.getEnabledElement(t).uuid===e})}},et={segmentation:Xe,cursor:Ze,globalConfiguration:$e};function tt(e){return et[e]}var nt={modules:et,state:Je,getters:Qe},at=function(e,t){return Je.tools.find(function(n){return n.element===e&&n.name===t})},ot=et.globalConfiguration;function it(e,t){if(ot.configuration.showSVGCursors){var n=t.getIconWithPointerSVG(),a=t.mousePoint,o=window.URL.createObjectURL(n);e.style.cursor="url('".concat(o,"') ").concat(a,", auto"),Je.svgCursorUrl=o}}function rt(e){ot.configuration.showSVGCursors&&st(e,"none")}function st(e,t){Je.svgCursorUrl&&window.URL.revokeObjectURL(Je.svgCursorUrl),Je.svgCursorUrl=null,e.style.cursor=t}var lt=tt("globalConfiguration"),ct=H("store:setToolMode"),ut=function(e,t,n,a){void 0===a&&Array.isArray(n)&&(a=n,n=null);var o=at(e,t);o&&(function(e,t,n,a){t.supportedInteractionTypes.forEach(function(o){if(void 0===a||a.includes(o)){var i=Ct[o];i?i(t,e,n):ct.warn("Unable to resolve input conflicts for type %s",o)}}),nt.state.tools.filter(function(t){return t.element===e&&"active"===t.mode&&t.supportedInteractionTypes.length>0}).forEach(function(t){var n=!1;t.supportedInteractionTypes.forEach(function(e){t.options["is".concat(e,"Active")]&&(n=!0)}),n||(ct.log("Setting tool %s's to PASSIVE",t.name),mt(e,t.name))})}(e,o,n,a),o.supportedInteractionTypes.forEach(function(e){void 0===a||a.includes(e)?n["is".concat(e,"Active")]=!0:n["is".concat(e,"Active")]=!1}),lt.configuration.showSVGCursors&&o.supportedInteractionTypes.includes("Mouse")&&function(e,t,n){var a;a="number"==typeof t?[t]:t.mouseButtonMask;a.includes(1)&&(n.svgCursor?it(n.element,n.svgCursor):n.hideDefaultCursor?rt(e):function(e){st(e,"initial")}(e))}(e,n,o)),xt("active",null,e,t,n)};var dt=function(e,t,n){bt("active",e,t,n),nt.state.enabledElements.forEach(function(a){ut(a,e,t,n)})},ht=xt.bind(null,"disabled",null),vt=yt.bind(null,"disabled",null),gt=xt.bind(null,"enabled",null),ft=yt.bind(null,"enabled",null),mt=xt.bind(null,"passive",b.TOOL_DEACTIVATED),pt=yt.bind(null,"passive",b.TOOL_DEACTIVATED);function xt(e,t,n,a,o){var i,r,s=at(n,a);s?(o=Mt(o),Array.isArray(o.mouseButtonMask)&&0!==o.mouseButtonMask.length&&Array.isArray(s.options.mouseButtonMask)&&(o.mouseButtonMask=(i=o.mouseButtonMask,r=s.options.mouseButtonMask,i.concat(r).reduce(function(e,t){return-1===e.indexOf(t)&&e.push(t),e},[]))),s.mode=e,s.mergeOptions(o),s["".concat(e,"Callback")]&&s["".concat(e,"Callback")](n,o),t&&C(n,t,{options:o,toolName:a,type:t})):ct.warn('Unable to find tool "%s" for enabledElement',a)}function yt(e,t,n,a){bt(e,n,a),nt.state.enabledElements.forEach(function(o){xt(e,t,o,n,a)})}function Tt(e,t,n){var a="is".concat(e,"Active"),o=nt.state.tools.find(function(e){return e.element===n&&"active"===e.mode&&!0===e.options[a]});o&&(ct.log("Setting tool %s's %s to false",o.name,a),o.options[a]=!1)}function bt(e,t,n,a){if(lt.configuration.globalToolSyncEnabled){var o={mode:e,args:[t,n]};a&&o.push(a),nt.state.globalToolChangeHistory.push(o);nt.state.globalToolChangeHistory.length>50&&nt.state.globalToolChangeHistory.shift();var i=nt.state.globalTools[t];if(i)if("active"===e){var r=function(e,t,n){void 0===n&&Array.isArray(t)&&(n=t,t=null);var a=[],o=nt.state.globalTools[e];if(o){var i=new o.tool(o.props);i.supportedInteractionTypes.forEach(function(e){if(void 0===n||n.includes(e))if("Mouse"===e){var o=Mt(t).mouseButtonMask;Array.isArray(o)&&o.length>0?o.forEach(function(t){return a.push("".concat(e,"-").concat(t))}):Array.isArray(o)&&0===o.length&&a.push("".concat(e,"-DELETE"))}else"MultiTouch"===e?a.push("".concat(e,"-").concat(i.configuration.touchPointers)):a.push(e)})}return a}(t,n,a);Object.keys(nt.state.globalTools).forEach(function(e){var t=nt.state.globalTools[e];t.activeBindings=t.activeBindings.filter(function(e){return!r.includes(e)})}),r.some(function(e){return e.includes("Mouse-DELETE")})&&(i.activeBindings=i.activeBindings.filter(function(e){return!e.includes("Mouse")}),r=r.filter(function(e){return!e.includes("Mouse")})),i.activeBindings=i.activeBindings.concat(r)}else i.activeBindings=[];else ct.warn("setToolMode call for tool not available globally: ".concat(t))}}var Ct={Mouse:function(e,t,n){var a=Mt(n).mouseButtonMask;if(Array.isArray(a)&&a.length>0){var o=nt.state.tools.find(function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isMouseActive&&Array.isArray(e.options.mouseButtonMask)&&e.options.mouseButtonMask.some(function(e){return a.includes(e)})});o&&(o.options.mouseButtonMask=o.options.mouseButtonMask.filter(function(e){return!a.includes(e)}),0===o.options.mouseButtonMask.length&&(o.options.isMouseActive=!1))}},MouseWheel:Tt.bind(void 0,"MouseWheel"),Touch:function(e,t){var n=nt.state.tools.find(function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isTouchActive}),a=nt.state.tools.find(function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isMultiTouchActive&&1===e.configuration.touchPointers});n&&(ct.log("Setting tool %s's isTouchActive to false",n.name),n.options.isTouchActive=!1),a&&(ct.log("Setting tool %s's isTouchActive to false",a.name),a.options.isMultiTouchActive=!1)},TouchPinch:Tt.bind(void 0,"TouchPinch"),TouchRotate:Tt.bind(void 0,"TouchRotate"),DoubleTap:Tt.bind(void 0,"DoubleTap"),MultiTouch:function(e,t){var n,a=nt.state.tools.find(function(n){return n.element===t&&"active"===n.mode&&!0===n.options.isMultiTouchActive&&n.configuration.touchPointers===e.configuration.touchPointers});1===e.configuration.touchPointers&&(n=nt.state.tools.find(function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isTouchActive})),a&&(ct.log("Setting tool %s's isMultiTouchActive to false",a.name),a.options.isMultiTouchActive=!1),n&&(ct.log("Setting tool %s's isTouchActive to false",n.name),n.options.isTouchActive=!1)}};function Mt(e){return Array.isArray(e)?e={mouseButtonMask:e}:e!==Object(e)&&(e={mouseButtonMask:[e]}),e.hasOwnProperty("mouseButtonMask")||(e.mouseButtonMask=[]),Array.isArray(e.mouseButtonMask)||(e.mouseButtonMask=[e.mouseButtonMask]),e.mouseButtonMask=e.mouseButtonMask.filter(function(e){return"number"==typeof e&&0!==e}),e}var Et={passiveCallback:function(e){ht(e,this.name)},enabledCallback:function(e){ut(e,this.name)}};var It={passiveCallback:function(e){ht(e,this.name)},activeCallback:function(e){gt(e,this.name)}},wt=function(e,t){e.save(),t(e),e.restore()},St=1,kt=2;var _t={setToolWidth:function(e){St=e},getToolWidth:function(){return St},setActiveWidth:function(e){kt=e},getActiveWidth:function(){return kt}},Pt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,a=t.color,o=t.lineWidth,i=t.fillStyle,r=t.lineDash,s=t.shouldDrawLines,l=void 0===s||s;e.beginPath(),e.strokeStyle=a||e.strokeStyle,e.lineWidth=o||void 0===o&&_t.getToolWidth()||e.lineWidth,r&&e.setLineDash(r),n(e),i&&(e.fillStyle=i,e.fill()),l&&e.stroke(),r&&e.setLineDash([])};function Dt(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";Pt(e,o,function(e){"pixel"===i&&(n=x.cornerstone.pixelToCanvas(t,n),a=x.cornerstone.pixelToCanvas(t,a)),e.moveTo(n.x,n.y),e.lineTo(a.x,a.y)})}var Lt=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";Pt(e,o,function(e){"pixel"===i&&(n=x.cornerstone.pixelToCanvas(t,n),a=a.map(function(e){return x.cornerstone.pixelToCanvas(t,e)})),e.moveTo(n.x,n.y),a.forEach(function(t){var n=t.x,a=t.y;e.lineTo(n,a)})})},Ot=function(e,t,n,a,o){var i=Math.atan2(n.y-t.y,n.x-t.x),r={color:a,lineWidth:o};Dt(e,void 0,t,n,r,"canvas"),r={color:a,lineWidth:o,fillStyle:a};var s=[{x:n.x-10*Math.cos(i-Math.PI/7),y:n.y-10*Math.sin(i-Math.PI/7)},{x:n.x-10*Math.cos(i+Math.PI/7),y:n.y-10*Math.sin(i+Math.PI/7)},n];Lt(e,void 0,n,s,r,"canvas")},At=function(e,t,n,a,o){"pixel"===(arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel")&&(n=x.cornerstone.pixelToCanvas(t,n)),Pt(e,o,function(e){e.arc(n.x,n.y,a,0,2*Math.PI)})};function Rt(e){var t=x.cornerstoneMath;return e instanceof t.Vector3?e:new t.Vector3(e[0],e[1],e[2])}function Ht(e,t){var n=Rt(t.rowCosines),a=Rt(t.columnCosines),o=Rt(t.imagePositionPatient),i=e.clone().sub(o);return{x:n.dot(i)/t.columnPixelSpacing,y:a.dot(i)/t.rowPixelSpacing}}function Ut(e,t){var n=Rt(t.rowCosines),a=Rt(t.columnCosines),o=Rt(t.imagePositionPatient),i=n.clone().multiplyScalar(e.x);i.multiplyScalar(t.columnPixelSpacing);var r=a.clone().multiplyScalar(e.y);r.multiplyScalar(t.rowPixelSpacing);var s=i.add(r);return s.add(o),s}function Nt(e,t){var n=Rt(e.rowCosines),a=Rt(e.columnCosines),o=Rt(e.imagePositionPatient),i=Rt(t.rowCosines),r=Rt(t.columnCosines),s=Rt(t.imagePositionPatient),l=n.clone().cross(a),c=new x.cornerstoneMath.Plane;c.setFromNormalAndCoplanarPoint(l,o);var u=i.clone().cross(r),d=new x.cornerstoneMath.Plane;d.setFromNormalAndCoplanarPoint(u,s);var h=d.clone().intersectPlane(c),v=h.origin,g=h.direction,f=Ut({x:t.columns,y:t.rows},t),m=s.distanceTo(f),p=new x.cornerstoneMath.Line3;p.start=v,p.end=v.clone().add(g.multiplyScalar(m));var y=function(e,t){var n=[];return Object.keys(t).forEach(function(a){var o=t[a],i=e.intersectLine(o);i&&n.push(i)}),n}(p,function(e){var t=Ut({x:0,y:0},e),n=Ut({x:e.columns,y:0},e),a=Ut({x:0,y:e.rows},e),o=Ut({x:e.columns,y:e.rows},e);return{top:new x.cornerstoneMath.Line3(t,n),left:new x.cornerstoneMath.Line3(t,a),right:new x.cornerstoneMath.Line3(n,o),bottom:new x.cornerstoneMath.Line3(a,o)}}(t));if(2===y.length)return{start:y[0],end:y[1]}}function Bt(e,t,n){var a=n*(Math.PI/180);return{x:Math.cos(a)*(e.x-t.x)-Math.sin(a)*(e.y-t.y)+t.x,y:Math.sin(a)*(e.x-t.x)+Math.cos(a)*(e.y-t.y)+t.y}}var Ft=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel",r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0;"pixel"===i&&(n=x.cornerstone.pixelToCanvas(t,n),a=x.cornerstone.pixelToCanvas(t,a));var s=x.cornerstone.getViewport(t),l=t.clientWidth,c=t.clientHeight,u=s.scale,d=s.translation,h=s.rotation-r,v={x:l/2+d.x*u,y:c/2+d.y*u};Math.abs(h)>.05&&(n=Bt(n,v,-h),a=Bt(a,v,-h));var g=Math.abs(n.x-a.x),f=Math.abs(n.y-a.y),m=Math.min(n.x,a.x),p=Math.min(n.y,a.y),y={x:m+g/2,y:p+f/2};Math.abs(h)>.05&&(y=Bt(y,v,h));var T=h*Math.PI/180;Pt(e,o,function(e){e.ellipse(y.x,y.y,g/2,f/2,T,0,2*Math.PI),e.closePath()})},Vt="white",qt="greenyellow",jt="transparent";var zt={setFillColor:function(e){jt=e},getFillColor:function(){return jt},setToolColor:function(e){Vt=e},getToolColor:function(){return Vt},setActiveColor:function(e){qt=e},getActiveColor:function(){return qt},getColorIfActive:function(e){return e.color?e.color:e.active?qt:Vt}},Wt=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.element,i=zt.getToolColor();e.strokeStyle=a.color||i;for(var r=Object.keys(n),s=function(t){var i=r[t],s=n[i];if(!0===s.drawnIndependently)return"continue";if(!0===a.drawHandlesIfActive&&!s.active)return"continue";var l=s.active?_t.getActiveWidth():_t.getToolWidth(),c=a.fill;Pt(e,{lineWidth:l,fillStyle:c},function(e){var t=x.cornerstone.pixelToCanvas(o,s),n=s.radius||a.handleRadius||Je.handleRadius;e.arc(t.x,t.y,n,0,2*Math.PI)})},l=0;l<r.length;l++)s(l)},Gt=function(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"pixel";Pt(e,a,function(e){n.forEach(function(n){var a=n.start,i=n.end;if("pixel"===o){var r=x.cornerstone;a=r.pixelToCanvas(t,a),i=r.pixelToCanvas(t,i)}e.moveTo(a.x,a.y),e.lineTo(i.x,i.y)})})},Yt=function(e,t,n,a,o,i){var r=e.length>0?x.cornerstoneMath.point.findClosestPoint(e,t):t,s=[{x:n.left+n.width/2,y:n.top},{x:n.left,y:n.top+n.height/2},{x:n.left+n.width/2,y:n.top+n.height},{x:n.left+n.width,y:n.top+n.height/2}];Dt(a,void 0,r,x.cornerstoneMath.point.findClosestPoint(s,r),{color:o,lineWidth:i,lineDash:[2,3]},"canvas")},Xt=15,Kt="".concat(Xt,"px Arial"),Zt="transparent";var $t={setFont:function(e){Kt=e},getFont:function(){return Kt},setFontSize:function(e){Xt=e},getFontSize:function(){return Xt},setBackgroundColor:function(e){Zt=e},getBackgroundColor:function(){return Zt}},Jt=function(e,t,n,a,o){var i=$t.getFontSize();e.font=$t.getFont(),e.textBaseline="top",e.fillStyle=a,n.forEach(function(n,a){e.fillText(n,t.left+o,t.top+o+a*(i+o))})},Qt=function(e,t,n){e.fillStyle=n,e.fillRect(t.left,t.top,t.width,t.height)};function en(e,t,n){var a=$t.getFont(),o=e.font;a&&a!==o&&(e.font=a);var i=e.measureText(t).width;return a&&a!==o&&(e.font=o),i+2*n}var tn=function(e,t,n,a,o,i){"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]);var r=$t.getFontSize(),s=$t.getBackgroundColor(),l=0;t.forEach(function(t){var n=en(e,t,5);l=Math.max(l,n)});var c={width:l,height:5+t.length*(r+5)};return wt(e,function(e){e.strokeStyle=o,i&&i.centering&&!0===i.centering.x&&(n-=c.width/2),i&&i.centering&&!0===i.centering.y&&(a-=c.height/2),c.left=n,c.top=a;var r=i&&!0===i.debug?"#FF0000":s;Qt(e,c,r),Jt(e,c,t,o,5)}),c},nn=function(e,t,n,a,o,i,r,s,l,c){var u=x.cornerstone,d=u.pixelToCanvas(t,n);l&&(d.x+=l);var h={centering:{x:!1,y:c}};if(n.boundingBox=tn(e,a,d.x,d.y,r,h),n.hasMoved){var v=i(o).map(function(e){return u.pixelToCanvas(t,e)});Yt(v,d,n.boundingBox,e,r,s)}},an=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel",r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0;if("pixel"===i){var s=x.cornerstone;n=s.pixelToCanvas(t,n),a=s.pixelToCanvas(t,a)}var l=x.cornerstone.getViewport(t),c=t.clientWidth,u=t.clientHeight,d=l.scale,h=l.translation,v=l.rotation-r,g={x:c/2+h.x*d,y:u/2+h.y*d};Math.abs(v)>.05&&(n=Bt(n,g,-v),a=Bt(a,g,-v));var f=Math.abs(n.x-a.x),m=Math.abs(n.y-a.y);n={x:Math.min(n.x,a.x),y:Math.min(n.y,a.y)},a={x:n.x+f,y:n.y+m};var p={x:n.x+f,y:n.y},y={x:n.x,y:n.y+m};Math.abs(v)>.05&&(n=Bt(n,g,v),a=Bt(a,g,v),p=Bt(p,g,v),y=Bt(y,g,v)),Pt(e,o,function(e){e.moveTo(n.x,n.y),e.lineTo(p.x,p.y),e.moveTo(p.x,p.y),e.lineTo(a.x,a.y),e.moveTo(a.x,a.y),e.lineTo(y.x,y.y),e.moveTo(y.x,y.y),e.lineTo(n.x,n.y)})},on=function(e){var t=e.getContext("2d");return t.setTransform(1,0,0,1,0,0),t},rn=function(e,t){return void 0===e?t:e},sn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.shadow&&(e.shadowColor=rn(t.shadowColor,"#000000"),e.shadowBlur=rn(t.shadowBlur,0),e.shadowOffsetX=rn(t.shadowOffsetX,1),e.shadowOffsetY=rn(t.shadowOffsetY,1))},ln=function(e,t,n){if(n.hflip||n.vflip||n.rotation){var a={x:t.width/2+n.translation.x*n.scale,y:t.height/2+n.translation.y*n.scale};e.translate(a.x,a.y),n.rotation&&e.rotate(n.rotation*Math.PI/180),n.vflip&&e.scale(1,-1),n.hflip&&e.scale(-1,1),e.translate(-a.x,-a.y)}},cn=function(e){e.setTransform(1,0,0,1,0,0)},un=function(e){return 0===Object.keys(e).length&&e.constructor===Object},dn=tt("segmentation"),hn=dn.getters,vn=dn.setters;function gn(){this.handles={start:{},end:{}}}function fn(e){var t=e.detail.element,n=e.detail.currentPoints.image;return un(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),x.cornerstone.updateImage(t),!0}function mn(e){var t=e.detail,n=t.element,a=t.currentPoints.image;this.handles.end=a,x.cornerstone.updateImage(n)}function pn(e){e.detail.handles=this.handles;var t=e.detail.element,n=hn.labelmap2D(t),a=n.labelmap2D,o=n.labelmap3D,i=n.currentImageIdIndex,r=a.pixelData,s=r.slice(),l={points:{start:{x:this.handles.start.x,y:this.handles.start.y},end:{x:this.handles.end.x,y:this.handles.end.y}},pixelData:r,segmentIndex:o.activeSegmentIndex,segmentationMixinType:"circleSegmentationMixin"};this.applyActiveStrategy(e,l);var c={imageIdIndex:i,diff:ke(s,r)};vn.pushState(this.element,[c]),vn.updateSegmentsOnLabelmap2D(a),x.cornerstone.updateImage(t),this._resetHandles()}var xn={postTouchStartCallback:fn,postMouseDownCallback:fn,mouseClickCallback:fn,touchDragCallback:mn,mouseDragCallback:mn,mouseMoveCallback:mn,touchEndCallback:pn,mouseUpCallback:pn,initializeMixin:gn,renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=hn.brushColor(a,!0),i=on(n.canvasContext.canvas),r=x.cornerstoneMath.point.distance;wt(i,function(e){if(!t.handles)return null;var n=x.cornerstone.pixelToCanvas(a,t.handles.start),i=x.cornerstone.pixelToCanvas(a,t.handles.end),s=r(n,i);At(e,a,t.handles.start,s,{color:o})})},_resetHandles:gn,_applyStrategy:pn},yn=H("tools:ScissorsTool"),Tn=tt("segmentation"),bn=Tn.getters,Cn=Tn.setters;function Mn(e){var t=e.detail.element,n=e.detail.currentPoints.image,a=this.handles.points;if(!a.length)return yn.warn("Something went wrong, empty handles detected."),null;a.push({x:n.x,y:n.y,lines:[]}),this.currentHandle+=1,x.cornerstone.updateImage(t)}function En(e){var t=e.detail,n=e.detail.element;this._addPoint(t),x.cornerstone.updateImage(n)}function In(e){var t=this.handles.points,n=e.detail.element,a=bn.labelmap2D(n),o=a.labelmap2D,i=a.labelmap3D,r=a.currentImageIdIndex,s=o.pixelData,l=s.slice(),c={points:t,pixelData:s,segmentIndex:i.activeSegmentIndex,segmentationMixinType:"freehandSegmentationMixin"};this.applyActiveStrategy(e,c);var u={imageIdIndex:r,diff:ke(l,s)};Cn.pushState(this.element,[u]),Cn.updateSegmentsOnLabelmap2D(o),x.cornerstone.updateImage(n),this._resetHandles()}function wn(){this.handles={points:[]},this.currentHandle=0}var Sn={postTouchStartCallback:Mn,postMouseDownCallback:Mn,mouseClickCallback:Mn,touchDragCallback:En,mouseDragCallback:En,mouseMoveCallback:En,touchEndCallback:In,mouseUpCallback:In,initializeMixin:wn,renderToolData:function(e){var t=e.detail,n=t.element,a=bn.brushColor(n,!0),o=on(t.canvasContext.canvas),i=this.handles.points;i.length<2||wt(o,function(e){for(var t=0;t<i.length;t++){var o=K()(i[t].lines);t===i.length-1&&o.push(i[0]),Lt(e,n,i[t],o,{color:a})}})},_resetHandles:wn,_addPoint:function(e){var t=this.handles.points;t.length&&t[this.currentHandle-1].lines.push({x:e.currentPoints.image.x,y:e.currentPoints.image.y,lines:[]}),t.push({x:e.currentPoints.image.x,y:e.currentPoints.image.y,lines:[]}),this.currentHandle+=1,x.cornerstone.updateImage(e.element)},_applyStrategy:In},kn=tt("segmentation").getters;var _n=Object.assign({},Sn,{renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=kn.brushColor(a,!0),i=on(n.canvasContext.canvas),r=this.handles;wt(i,function(e){if(r.points.length>1)for(var n=0;n<r.points.length;n++){var i=K()(r.points[n].lines);Lt(e,a,t.handles.points[n],i,{color:o})}})}}),Pn=tt("segmentation"),Dn=Pn.getters,Ln=Pn.setters;function On(e){var t=e.detail.element,n=e.detail.currentPoints.image;return un(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),x.cornerstone.updateImage(t),!0}function An(e){var t=e.detail,n=t.element,a=t.currentPoints.image;this.handles.end=a,x.cornerstone.updateImage(n)}function Rn(e){e.detail.handles=this.handles;var t=e.detail.element,n=Dn.labelmap2D(t),a=n.labelmap2D,o=n.labelmap3D,i=n.currentImageIdIndex,r=a.pixelData,s=r.slice(),l={points:[{x:this.handles.start.x,y:this.handles.start.y},{x:this.handles.end.x,y:this.handles.end.y}],pixelData:r,segmentIndex:o.activeSegmentIndex,segmentationMixinType:"rectangleSegmentationMixin"};this.applyActiveStrategy(e,l);var c={imageIdIndex:i,diff:ke(s,r)};Ln.pushState(this.element,[c]),Ln.updateSegmentsOnLabelmap2D(a),x.cornerstone.updateImage(t),this._resetHandles()}function Hn(){this.handles={start:{},end:{}}}var Un={activeOrDisabledBinaryTool:Et,enabledOrDisabledBinaryTool:It,circleSegmentationMixin:xn,polylineSegmentationMixin:_n,freehandSegmentationMixin:Sn,rectangleSegmentationMixin:{postTouchStartCallback:On,postMouseDownCallback:On,mouseClickCallback:On,touchDragCallback:An,mouseDragCallback:An,mouseMoveCallback:An,touchEndCallback:Rn,mouseUpCallback:Rn,initializeMixin:Hn,renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=Dn.brushColor(a,!0),i=on(n.canvasContext.canvas);wt(i,function(e){an(e,a,t.handles.start,t.handles.end,{color:o})})},_resetHandles:Hn,_applyStrategy:Rn}},Nn=function(e){return e&&"object"===T()(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},Bn=function(e,t){var n;return t&&!0===t.clone&&Nn(e)?qn((n=e,Array.isArray(n)?[]:{}),e,t):e},Fn=function(e,t,n){var a=e.slice();return t.forEach(function(t,o){void 0===a[o]?a[o]=Bn(t,n):Nn(t)?a[o]=qn(e[o],t,n):-1===e.indexOf(t)&&a.push(Bn(t,n))}),a},Vn=function(e,t,n){var a={};return Nn(e)&&Object.keys(e).forEach(function(t){a[t]=Bn(e[t],n)}),Object.keys(t).forEach(function(o){Nn(t[o])&&e[o]?a[o]=qn(e[o],t[o],n):a[o]=Bn(t[o],n)}),a},qn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,a=Array.isArray(t),o=(n||{arrayMerge:Fn}).arrayMerge||Fn;return a?Array.isArray(e)?o(e,t,n):Bn(t,n):Vn(e,t,n)},jn=qn,zn=H("tools:base:BaseTool"),Wn=tt("globalConfiguration"),Gn=function(){function e(t,n){r()(this,e),this.initialConfiguration=jn(n,t);var a=this.initialConfiguration,o=a.name,i=a.strategies,s=a.defaultStrategy,l=a.configuration,c=a.supportedInteractionTypes,u=a.mixins,d=a.svgCursor;this.name=o,this.mode="disabled",this.element=void 0,this.supportedInteractionTypes=c||[],this.strategies=i||{},this.defaultStrategy=s||Object.keys(this.strategies)[0]||void 0,this.activeStrategy=this.defaultStrategy,d&&(this.svgCursor=d),this._options={},this._configuration=Object.assign({},l),this.updateOnMouseMove=!1,this.hideDefaultCursor=!1,u&&u.length&&this._applyMixins(u),this._cursors=Object.assign({},this.initialConfiguration.cursors);var h=this.defaultStrategy&&this._cursors[this.activeStrategy];h&&(this.svgCursor=h)}return l()(e,[{key:"mergeOptions",value:function(e){this._options=Object.assign({},this._options,e)}},{key:"clearOptions",value:function(){this._options={}}},{key:"applyActiveStrategy",value:function(e,t){return this.strategies[this.activeStrategy].call(this,e,t)}},{key:"_applyMixins",value:function(e){for(var t=0;t<e.length;t++){var n=Un["".concat(e[t])];"object"===T()(n)?(Object.assign(this,n),"function"==typeof this.initializeMixin&&this.initializeMixin()):zn.warn("".concat(this.name,": mixin ").concat(Un[t]," does not exist."))}"function"===this.initializeMixin&&delete this.initializeMixin}},{key:"setActiveStrategy",value:function(e){this.activeStrategy=e,Wn.configuration.showSVGCursors&&this.changeCursor(this.element,e)}},{key:"changeCursor",value:function(e,t){if(e){var n=this._cursors[t];n&&(this.svgCursor=n,"active"===this.mode&&it(e,n))}}},{key:"configuration",get:function(){return this._configuration},set:function(e){this._configuration=e}},{key:"options",get:function(){return this._options}}],[{key:"configuration",get:function(){}}]),e}(),Yn=function(e,t){if(e.boundingBox)return x.cornerstoneMath.point.insideRect(t,e.boundingBox)},Xn=function(e,t,n,a){if(e.hasOwnProperty("pointNearHandle")){if(e.pointNearHandle(t,e,n))return!0}else if(!0===e.hasBoundingBox){if(Yn(e,n))return!0}else{var o=x.cornerstone.pixelToCanvas(t,e);if(x.cornerstoneMath.point.distance(o,n)<=a)return!0}return!1},Kn=function e(t,n,a,o){var i;if(n){if(Array.isArray(n))for(var r=Object.keys(n),s=0;s<r.length;s++){var l=n[r[s]];if(l.hasOwnProperty("x")&&l.hasOwnProperty("y")&&Xn(l,t,a,o)){i=l;break}}else if("object"===T()(n))for(var c=Object.keys(n),u=0;u<c.length;u++){var d=c[u];if(Array.isArray(n[d])){if(i=e(t,n[d],a,o))break}else{var h=n[d];if(Xn(h,t,a,o)){i=h;break}}}return i}},Zn=function(e,t,n,a){a||(a=6);var o=function(e){var t;return Object.keys(e).forEach(function(n){var a=e[n];!0!==a.active||(t=a)}),t}(t),i=Kn(e,t,n,a);return o!==i&&(void 0!==i&&(i.active=!0),void 0!==o&&(o.active=!1),!0)};var $n=function(e,t){var n=e.image,a={left:0,top:0,width:n.width,height:n.height},o=!1;return Object.keys(t).forEach(function(e){var n=t[e];!0!==n.allowedOutsideImage&&!1===x.cornerstoneMath.point.insideRect(n,a)&&(o=!0)}),o};function Jn(e,t,n){return Math.min(Math.max(t,e),n)}function Qn(e,t){e.x=Jn(e.x,0,t.width),e.y=Jn(e.y,0,t.height)}var ea=function(e,t,n){return t.filter(function(t){return t.element===e&&"active"===t.mode&&(void 0===n||t.options["is".concat(n,"Active")])})},ta=n(1),na=n.n(ta),aa=tt("segmentation"),oa=aa.configuration,ia=aa.getters,ra=aa.setters,sa=function(e){function t(e){var n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r()(this,t),a.configuration||(a.configuration={alwaysEraseOnClick:!1}),(n=u()(this,h()(t).call(this,e,a))).updateOnMouseMove=!0,n.hideDefaultCursor=!0,n._drawing=!1,n._drawingMouseUpCallback=n._drawingMouseUpCallback.bind(na()(n)),n}return g()(t,e),l()(t,[{key:"renderBrush",value:function(e){throw new Error("Method renderBrush not implemented for ".concat(this.name,"."))}},{key:"_paint",value:function(e){throw new Error("Method _paint not implemented for ".concat(this.name,"."))}},{key:"mouseDragCallback",value:function(e){var t=e.detail.currentPoints;this._lastImageCoords=t.image,this._drawing&&this._paint(e)}},{key:"preMouseDownCallback",value:function(e){var t=e.detail,n=t.element,a=t.currentPoints;return this._startPainting(e),this._lastImageCoords=a.image,this._drawing=!0,this._startListeningForMouseUp(n),this._paint(e),!0}},{key:"_startPainting",value:function(e){var t=e.detail,n=t.element,a=ia.labelmap2D(n),o=a.labelmap2D,i=a.labelmap3D,r=a.currentImageIdIndex,s=a.activeLabelmapIndex,l=this._isCtrlDown(t)||this.configuration.alwaysEraseOnClick;if(this.paintEventData={labelmap2D:o,labelmap3D:i,currentImageIdIndex:r,activeLabelmapIndex:s,shouldErase:l},oa.storeHistory){var c=o.pixelData.slice();this.paintEventData.previousPixelData=c}}},{key:"_endPainting",value:function(e){for(var t=this.paintEventData,n=t.labelmap2D,a=t.currentImageIdIndex,o=new Set(n.pixelData).values(),i=[],r=!1;!r;){var s=o.next();(r=s.done)||i.push(s.value)}if(n.segmentsOnLabelmap=i,oa.storeHistory){var l={imageIdIndex:a,diff:ke(this.paintEventData.previousPixelData,n.pixelData)};ra.pushState(this.element,[l])}}},{key:"mouseMoveCallback",value:function(e){var t=e.detail.currentPoints;this._lastImageCoords=t.image}},{key:"renderToolData",value:function(e){(function(e,t){return"active"===at(e,t).mode})(e.detail.element,this.name)&&this.renderBrush(e)}},{key:"passiveCallback",value:function(e){try{x.cornerstone.updateImage(this.element)}catch(e){return}}},{key:"_drawingMouseUpCallback",value:function(e){var t=e.detail.element;this._endPainting(e),this._drawing=!1,this._mouseUpRender=!0,this._stopListeningForMouseUp(t)}},{key:"newImageCallback",value:function(e){this._drawing&&(this._endPainting(e),this._startPainting(e))}},{key:"_startListeningForMouseUp",value:function(e){e.removeEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.removeEventListener(b.MOUSE_CLICK,this._drawingMouseUpCallback),e.addEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.addEventListener(b.MOUSE_CLICK,this._drawingMouseUpCallback),x.cornerstone.updateImage(e)}},{key:"_stopListeningForMouseUp",value:function(e){e.removeEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.removeEventListener(b.MOUSE_CLICK,this._drawingMouseUpCallback),x.cornerstone.updateImage(e)}},{key:"increaseBrushSize",value:function(){var e=oa.radius,t=Math.floor(1.2*e);t===e&&(t+=1),ra.radius(t)}},{key:"decreaseBrushSize",value:function(){var e=oa.radius,t=Math.floor(.8*e);ra.radius(t)}},{key:"_isCtrlDown",value:function(e){return e.event&&e.event.ctrlKey||e.ctrlKey}}]),t}(Gn),la=function(e){return e.filter(function(e){return!(e.isMultiPartTool||e instanceof ka||e instanceof sa)})};function ca(e,t){var n;if("touch"===(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mouse")?n=(n=ea(e,Qe.touchTools())).filter(function(e){return e.options.isTouchActive}):(n=(n=ea(e,Qe.mouseTools())).filter(function(e){return Array.isArray(e.options.mouseButtonMask)&&t&&e.options.mouseButtonMask.includes(t)&&e.options.isMouseActive}),Je.isMultiPartToolActive&&(n=la(n))),0!==n.length)return n[0]}var ua=H("manipulators:moveAllHandles"),da={mouse:[b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},ha={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP]},va=function(e,t,n,a){var o=e.element,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"mouse",s=arguments.length>6?arguments[6]:void 0;i=Object.assign({deleteIfHandleOutsideImage:Je.deleteIfHandleOutsideImage,preventHandleOutsideImage:Je.preventHandleOutsideImage},i);var l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,i=o.detail,r=i.element,s=i.image,l=i.buttons,c=o.detail.deltaPoints.image,u=c.x,d=c.y;t.active=!0,t.invalidated=!0;for(var h=Object.keys(t.handles),v=0;v<h.length;v++){var g=h[v],f=t.handles[g];!0!==f.movesIndependently&&f.hasOwnProperty("x")&&f.hasOwnProperty("y")&&(f.x+=u,f.y+=d,n.preventHandleOutsideImage&&Qn(f,s))}x.cornerstone.updateImage(r);var m=ca(r,l,a);m instanceof ka&&m.updateCachedStats(s,r,t);var p=b.MEASUREMENT_MODIFIED;C(r,p,{toolName:e,element:r,measurementData:t}),o.preventDefault(),o.stopPropagation()}.bind(this,t,n,i,r),c=function e(a){!function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,i=o.dragHandler,r=o.upOrEndHandler,s=arguments.length>5?arguments[5]:void 0,l=arguments.length>6?arguments[6]:void 0,c=s.detail,u=s.detail.element;t.active=!1,t.invalidated=!0,Je.isToolLocked=!1,da[a].forEach(function(e){u.removeEventListener(e,i)}),ha[a].forEach(function(e){u.removeEventListener(e,r)}),n.deleteIfHandleOutsideImage&&$n(c,t.handles)&&P(u,e,t);"function"==typeof n.doneMovingCallback&&(ua.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),n.doneMovingCallback());"function"==typeof l&&l();x.cornerstone.updateImage(u)}(t,n,i,r,{dragHandler:l,upOrEndHandler:e},a,s)};n.active=!0,Je.isToolLocked=!0,da[r].forEach(function(e){o.addEventListener(e,l)}),ha[r].forEach(function(e){o.addEventListener(e,c)})};var ga=H("manipulators:moveHandle"),fa={value:!1},ma={mouse:[b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},pa={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP]},xa=function(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"mouse",r=arguments.length>6?arguments[6]:void 0;o=Object.assign({deleteIfHandleOutsideImage:Je.deleteIfHandleOutsideImage,preventHandleOutsideImage:Je.preventHandleOutsideImage},o);var s=e.element,l=function(e,t,n,a,o,i){var r=i.detail,s=r.image,l=r.currentPoints,c=r.element,u=r.buttons,d=l.page,h=x.cornerstone.pageToPixel(c,d.x,"touch"===o?d.y+-57:d.y);fa.value=!1,n.active=!0,n.hasMoved=!0,n.x=h.x,n.y=h.y,t.invalidated=!0,a.preventHandleOutsideImage&&Qn(n,s);x.cornerstone.updateImage(c);var v=ca(c,u,o);v instanceof ka&&v.updateCachedStats(s,c,t);var g=b.MEASUREMENT_MODIFIED;C(c,g,{toolName:e,element:c,measurementData:t})}.bind(this,t,n,a,o,i),c=function s(c){!function(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5?arguments[5]:void 0,r=arguments.length>6?arguments[6]:void 0,s=r.dragHandler,l=r.upOrEndHandler,c=arguments.length>7?arguments[7]:void 0,u=arguments.length>8?arguments[8]:void 0,d=t.currentPoints.image,h=c.detail.element;a.active=!1,n.active=!1,n.invalidated=!0,Je.isToolLocked=!1,fa.value=!1,ma[i].forEach(function(e){h.removeEventListener(e,s)}),pa[i].forEach(function(e){h.removeEventListener(e,l)}),o.deleteIfHandleOutsideImage&&$n(t,n.handles)&&P(h,e,n);c.type===b.TOUCH_PRESS&&(c.detail.handlePressed=n,a.x=d.x,a.y=d.y);"function"==typeof o.doneMovingCallback&&(ga.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),o.doneMovingCallback());"function"==typeof u&&u();x.cornerstone.updateImage(h)}(t,e,n,a,o,i,{dragHandler:l,upOrEndHandler:s},c,r)};if(a.active=!0,n.active=!0,Je.isToolLocked=!0,ma[i].forEach(function(e){s.addEventListener(e,l)}),pa[i].forEach(function(e){s.addEventListener(e,c)}),"touch"===i){fa.value=!0;var u=x.cornerstone.getEnabledElement(s),d={x:e.currentPoints.page.x,y:e.currentPoints.page.y+-57},h=x.cornerstone.pageToPixel(s,d.x,d.y);!function e(t,n,a,o){if(!n.value)return;var i=Math.abs(t.y-o.y);var r=i/10;if(i<1)return t.y=o.y,void(n.value=!1);t.y>o.y?t.y-=r:t.y<o.y&&(t.y+=r);x.cornerstone.updateImage(a.element);x.cornerstone.requestAnimationFrame(function(){e(t,n,a,o)})}(a,fa,u,h)}};var ya=H("manipulators:moveNewHandle"),Ta={mouse:[b.MOUSE_MOVE,b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},ba={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_PINCH,b.TAP]},Ca=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"mouse",r=arguments.length>6?arguments[6]:void 0;o=Object.assign({deleteIfHandleOutsideImage:Je.deleteIfHandleOutsideImage,preventHandleOutsideImage:Je.preventHandleOutsideImage},o);var s=e.element;function l(e){!function(e,t,n,a,o,i,r){var s=i.moveEndHandler,l=r.detail,c=l.currentPoints,u=l.image,d=l.element,h=l.buttons;ba[o].forEach(function(e){d.addEventListener(e,s)});var v=c.page,g=x.cornerstone.pageToPixel(d,"touch"===o?v.x+-57:v.x,"touch"===o?v.y+-57:v.y);t.invalidated=!0,n.active=!0,n.x=g.x,n.y=g.y,a&&a.preventHandleOutsideImage&&Qn(n,u);x.cornerstone.updateImage(d);var f=ca(d,h,o);f instanceof ka&&f.updateCachedStats(u,d,t);var m=b.MEASUREMENT_MODIFIED;C(d,m,{toolName:e,element:d,measurementData:t})}(t,n,a,o,i,{moveHandler:l,moveEndHandler:c},e)}function c(e){!function(e,t,n,a,o,i,r,s){var l=i.moveHandler,c=i.moveEndHandler,u=r.detail,d=u.element,h=u.currentPoints.page,v=x.cornerstone.pageToPixel(d,"touch"===o?h.x+-57:h.x,"touch"===o?h.y+-57:h.y);if(t.active=!1,t.invalidated=!0,n.active=!1,n.x=v.x,n.y=v.y,Je.isToolLocked=!1,Ta[o].forEach(function(e){d.removeEventListener(e,l)}),ba[o].forEach(function(e){d.removeEventListener(e,c)}),d.removeEventListener(b.TOUCH_START,Ma),r.type===b.TOUCH_PINCH||r.type===b.TOUCH_PRESS)return n.active=!1,x.cornerstone.updateImage(d),"function"==typeof a.doneMovingCallback&&(ya.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),a.doneMovingCallback()),void("function"==typeof s&&s());a.preventHandleOutsideImage&&Qn(n,r.detail.image);a.deleteIfHandleOutsideImage&&$n(r.detail,t.handles)&&P(d,e,t);"function"==typeof a.doneMovingCallback&&(ya.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),a.doneMovingCallback());"function"==typeof s&&s();x.cornerstone.updateImage(d)}(t,n,a,o,i,{moveHandler:l,moveEndHandler:c},e,r)}n.active=!0,a.active=!0,Je.isToolLocked=!0,Ta[i].forEach(function(e){s.addEventListener(e,l)}),s.addEventListener(b.TOUCH_START,Ma)};function Ma(e){return e.stopImmediatePropagation(),!1}var Ea=function(e,t,n,a,o){n.active=!0,Je.isToolLocked=!0,xa(e.detail,t.name,n,a,t.options,o),e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},Ia=function(e,t,n,a){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"mouse",i=0;i<t.data.length;i++){var r=t.data[i],s=Kn(e,r.handles,a,"mouse"===o?Je.clickProximity:Je.touchProximity);if(s)return{handle:s,data:r}}},wa=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse";n.active=!0,Je.isToolLocked=!0,va(e.detail,t.name,n,null,t.options,a,function(){n.active=!1,Je.isToolLocked=!1}),e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},Sa=H("baseAnnotationTool"),ka=function(e){function t(){return r()(this,t),u()(this,h()(t).apply(this,arguments))}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){throw new Error("Method createNewMeasurement not implemented for ".concat(this.name,"."))}},{key:"pointNearTool",value:function(e,t,n){arguments.length>3&&void 0!==arguments[3]&&arguments[3];throw new Error("Method pointNearTool not implemented for ".concat(this.name,"."))}},{key:"distanceFromPoint",value:function(e,t,n){throw new Error("Method distanceFromPoint not implemented for ".concat(this.name,"."))}},{key:"renderToolData",value:function(e){throw new Error("renderToolData not implemented for ".concat(this.name,"."))}},{key:"mouseMoveCallback",value:function(e){for(var t=e.detail,n=t.element,a=t.currentPoints.canvas,o=_(n,this.name),i=!1,r=0;r<o.data.length;r++){var s=o.data[r];!0===Zn(n,s.handles,a)&&(i=!0);var l=this.pointNearTool(n,s,a,"mouse")&&!s.active,c=!this.pointNearTool(n,s,a,"mouse")&&s.active;(l||c)&&(s.active=!s.active,i=!0)}return i}},{key:"handleSelectedCallback",value:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse";Ea(e,this,t,n,a)}},{key:"toolSelectedCallback",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mouse";wa(e,this,t,n)}},{key:"updateCachedStats",value:function(e,t,n){Sa.warn("updateCachedStats not implemented for ".concat(this.name,"."))}}]),t}(Gn),_a=function(e,t,n,a){var o=x.cornerstone,i={start:o.pixelToCanvas(e,t),end:o.pixelToCanvas(e,n)};return x.cornerstoneMath.lineSegment.distanceToPoint(i,a)},Pa=function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n},Da=et.cursor,La=function(){function e(t,n){r()(this,e),this.iconGroupString=t,this.options=Object.assign({},Da.getters.defaultOptions(),n)}return l()(e,[{key:"getIconSVG",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._generateIconSVGString(e);return new Blob([t],{type:"image/svg+xml"})}},{key:"getIconSVGString",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._generateIconSVGString(e)}},{key:"getIconWithPointerSVG",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._generateIconWithPointerSVGString(e);return new Blob([t],{type:"image/svg+xml"})}},{key:"getIconWithPointerString",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._generateIconWithPointerSVGString(e)}},{key:"_generateIconWithPointerSVGString",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},this.options,e),n=t.mousePointerGroupString,a=t.iconSize,o=t.viewBox,i=a/Math.max(o.x,o.y),r=16+a,s='\n        <svg\n        data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n        width="'.concat(r,'" height="').concat(r,'" viewBox="0 0 ').concat(r," ").concat(r,'"\n      >\n        <g>\n          ').concat(n,'\n        </g>\n        <g transform="translate(16, 16) scale(').concat(i,')">\n          ').concat(this.iconGroupString,"\n        </g>\n      </svg>");return this._injectColors(s,t)}},{key:"_generateIconSVGString",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},this.options,e),n=t.iconSize,a=t.viewBox,o='\n      <svg\n        data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n        width="'.concat(n,'" height="').concat(n,'" viewBox="0 0\n        ').concat(a.x," ").concat(a.y,'"\n      >\n        ').concat(this.iconGroupString,"\n      </svg>");return this._injectColors(o,t)}},{key:"_injectColors",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.activeColor||zt.getActiveColor(),a=t.toolColor||zt.getToolColor(),o=t.fillColor||zt.getFillColor();return e.replace(/ACTIVE_COLOR/g,"".concat(n)).replace(/TOOL_COLOR/g,"".concat(a)).replace(/FILL_COLOR/g,"".concat(o))}},{key:"mousePoint",get:function(){var e=this.options.mousePoint;return"".concat(e.x," ").concat(e.y)}}]),e}(),Oa=new La('<path fill="ACTIVE_COLOR" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50\n        50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23\n        10l50 50q10 10 10 23z"\n      />',{viewBox:{x:1792,y:1792}}),Aa=new La('<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="ACTIVE_COLOR" stroke-linecap="round" stroke-linejoin="round">\n    <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />\n  </g>',{viewBox:{x:24,y:24}}),Ra=new La('<g fill="ACTIVE_COLOR" stroke-width="3" stroke="ACTIVE_COLOR">\n    <path d="M27.63 3.21L3.12 28.81"></path>\n    <path d="M27.63 15.75L15.27 4.43"></path>\n    <path d="M16.5 4.28C16.5 4.96 15.95 5.51 15.27 5.51C14.59 5.51 14.03 4.96 14.03 4.28C14.03 3.59 14.59 3.04 15.27 3.04C15.95 3.04 16.5 3.59 16.5 4.28Z" ></path>\n    <path d="M28.87 3.19C28.87 3.87 28.31 4.43 27.63 4.43C26.95 4.43 26.4 3.87 26.4 3.19C26.4 2.51 26.95 1.95 27.63 1.95C28.31 1.95 28.87 2.51 28.87 3.19Z"></path>\n    <path d="M28.87 15.75C28.87 16.43 28.31 16.99 27.63 16.99C26.95 16.99 26.4 16.43 26.4 15.75C26.4 15.07 26.95 14.51 27.63 14.51C28.31 14.51 28.87 15.07 28.87 15.75Z"></path>\n    <path d="M4.73 28.44C4.73 29.12 4.17 29.68 3.49 29.68C2.81 29.68 2.25 29.12 2.25 28.44C2.25 27.76 2.81 27.2 3.49 27.2C4.17 27.2 4.73 27.76 4.73 28.44Z"></path>\n  </g>',{viewBox:{x:48,y:48}}),Ha=new La('<g stroke="ACTIVE_COLOR" stroke-width="3">\n    <path d="M28.59 2.34L3.82 12.32"></path>\n    <path d="M28.59 29.66L3.82 19.68"></path>\n    <path stroke-dasharray="2" fill-opacity="0" d="M12.37\n      23.06C12.67 22.36 12.85 21.93 12.92 21.76C14.6 17.8 14.68 13.35 13.15\n      9.33C13.11 9.24 13.02 9 12.88 8.63">\n    </path>\n  </g>',{viewBox:{x:32,y:32}}),Ua=new La('<circle stroke="ACTIVE_COLOR" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',{viewBox:{x:32,y:32}}),Na=new La('<path stroke="ACTIVE_COLOR" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16\n    25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14\n    6.3 30.74 10.54 30.74 15.76Z"\n    />',{viewBox:{x:32,y:32}}),Ba=new La('\n  <g fill="ACTIVE_COLOR" stroke="ACTIVE_COLOR" stroke-width="2">\n    <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>\n    <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>\n    <line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902"/>\n    <line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026"/>\n    <line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585"/>\n    <line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848"/>\n    <line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688"/>\n    <line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959"/>\n    <line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945"/>\n    <line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655"/>\n    <line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648"/>\n    <line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785"/>\n    <line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779"/>\n    <line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204"/>\n    <line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488"/>\n    <line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774"/>\n    <line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349"/>\n    <line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351"/>\n    <line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213"/>\n    <line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065"/>\n    <line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528"/>\n    <line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926"/>\n    <line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855"/>\n    <line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024"/>\n    <line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895"/>\n    <line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909"/>\n    <line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348"/>\n    <line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359"/>\n    <line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651"/>\n    <ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801"/>\n  </g>',{viewBox:{x:18,y:18}}),Fa=new La('<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="ACTIVE_COLOR" stroke-linecap="round" stroke-linejoin="round">\n      <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>\n      <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>\n      <line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759"/>\n      <line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707"/>\n      <line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828"/>\n      <line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842"/>\n      <line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918"/>\n      <line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153"/>\n      <line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898"/>\n      <line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829"/>\n      <line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918"/>\n      <line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145"/>\n      <line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621"/>\n      <line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352"/>\n      <line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407"/>\n      <line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807"/>\n      <line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758"/>\n      <line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096"/>\n      <line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792"/>\n      <line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171"/>\n      <line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813"/>\n      <line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427"/>\n      <line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013"/>\n      <line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271"/>\n      <line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475"/>\n      <line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758"/>\n      <line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048"/>\n      <line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166"/>\n      <line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794"/>\n      <line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614"/>\n      <line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925"/>\n      <ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918"/>\n    </g>',{viewBox:{x:18,y:18}}),Va=new La('<g id="length-group" fill="none" stroke-width="1" stroke="ACTIVE_COLOR" stroke-linecap="round" stroke-linejoin="round">\n    <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />\n  </g>',{viewBox:{x:24,y:24}}),qa=new La('<path fill="ACTIVE_COLOR" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75\n    75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73\n    198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5\n    279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5\n    385.5-103 385.5 103 279.5 279.5 103 385.5z"\n  />',{viewBox:{x:1792,y:1792}}),ja=new La('<path fill="ACTIVE_COLOR" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47\n    113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0\n    119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119\n    84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"\n  />',{viewBox:{x:1792,y:1792}}),za=new La('<path fill="ACTIVE_COLOR" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0\n    57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29\n    31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15\n    34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 5-.5\n    13.5t-.5 12.5q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0\n    12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11\n    2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0\n    22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58\n    0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z"\n  />',{viewBox:{x:1792,y:1792}}),Wa=new La('<path fill="ACTIVE_COLOR" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26\n    19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45\n    19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26\n    0 45 19t19 45v128q0 26-19 45t-45 19h-109q32 108 112.5 188.5t188.5\n    112.5v-109q0-26 19-45t45-19h128q26 0 45 19t19 45v109q108-32\n    188.5-112.5t112.5-188.5zm339-192v128q0 26-19 45t-45 19h-143q-37 161-154.5\n    278.5t-278.5 154.5v143q0 26-19 45t-45 19h-128q-26\n    0-45-19t-19-45v-143q-161-37-278.5-154.5t-154.5-278.5h-143q-26\n    0-45-19t-19-45v-128q0-26 19-45t45-19h143q37-161\n    154.5-278.5t278.5-154.5v-143q0-26 19-45t45-19h128q26 0 45 19t19 45v143q161\n    37 278.5 154.5t154.5 278.5h143q26 0 45 19t19 45z"\n  />',{viewBox:{x:1792,y:1792}}),Ga=new La('<path transform="translate(0,1792) scale(1,-1)" fill="ACTIVE_COLOR" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15\n      34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38\n      0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38\n      0 69.5 20.5t47.5 54.5z"\n    />',{viewBox:{x:2048,y:1792}}),Ya=new La('<path fill="ACTIVE_COLOR" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n      312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n      0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n      0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n      32s176 78.7 176 176-78.7 176-176 176z"\n    />',{viewBox:{x:512,y:512}}),Xa=new La('<path fill="ACTIVE_COLOR" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17\n      39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355\n      355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59\n      39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12\n      0-24-5-40-17-40-59v-448q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69l-144\n      144 355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19\n      45v448q0 42-39 59-13 5-25 5-26 0-45-19z"\n    />',{viewBox:{x:1792,y:1792}}),Ka=new La('<path fill="ACTIVE_COLOR" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39\n      14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5\n      163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0\n      225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109\n      132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298\n      164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14\n      39 17 39 59z"\n    />',{viewBox:{x:1792,y:1792}}),Za=new La('<path fill="ACTIVE_COLOR" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547\n      0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0\n      0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547\n      0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547\n      0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z"\n      />',{viewBox:{x:24,y:28}}),$a=new La('<path fill="ACTIVE_COLOR" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119\n    0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5\n    84.5t84.5 203.5z"\n  />',{viewBox:{x:1792,y:1792}}),Ja=new La('<path fill="ACTIVE_COLOR" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />\n    <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="ACTIVE_COLOR" />',{viewBox:{x:18,y:18}}),Qa=new La('<path fill="ACTIVE_COLOR" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n      312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n      0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n      0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n      32s176 78.7 176 176-78.7 176-176 176z"\n    />\n    <path fill="ACTIVE_COLOR" transform="scale(0.22,0.22) translate(1400,0)" d="M1216\n      320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19\n      19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26\n      0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z"\n    />',{viewBox:{x:640,y:512}}),eo={x:127,y:60},to=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"ACTIVE_COLOR";return'<rect fill="'.concat(e,'" x="80.19" y="25.03" width="47.14" height="15.85"/>')},no=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"ACTIVE_COLOR";return'<rect fill="'.concat(e,'" x="80.19" y="25.03" width="47.14" height="15.85"/>\n      <rect fill="').concat(e,'" x="95.84" y="9.38" width="15.85" height="47.14"/>')},ao='<path fill="ACTIVE_COLOR" d="M82.89,10a12.09,12.09,0,0,0-16.8-2.5l-27.5,20.4-8.5-6.3a2.93,2.93,0,0,1-1.1-3,14.66,14.66,0,0,0,.1-6.6,14.08,14.08,0,1,0-6.5,15.2,2.87,2.87,0,0,1,3.2.2l8.2,6.1-8.2,6.1a2.87,2.87,0,0,1-3.2.2,14.16,14.16,0,1,0,6.7,14.4,14,14,0,0,0-.3-5.8,2.93,2.93,0,0,1,1.1-3l8.5-6.3,27.5,20.4A11.91,11.91,0,0,0,82.89,57l-31.7-23.5ZM15.29,21a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,21Zm0,36.8a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,57.77Zm28.3-21.5a2.8,2.8,0,1,1,2.8-2.8A2.8,2.8,0,0,1,43.59,36.27Z" transform="translate(-1.17 -0.96)"/>',oo='<path fill="ACTIVE_COLOR" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',io='<path fill="ACTIVE_COLOR" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>',ro=new La("".concat(ao," ").concat(to()),{viewBox:eo}),so=new La("".concat(ao," ").concat(no()),{viewBox:eo}),lo=new La("".concat(ao," ").concat(to()),{viewBox:eo}),co=new La("".concat(ao," ").concat(no()),{viewBox:eo}),uo=new La("".concat(oo," ").concat(to()),{viewBox:eo}),ho=new La("".concat(oo," ").concat(no()),{viewBox:eo}),vo=new La("".concat(oo," ").concat(to()),{viewBox:eo}),go=new La("".concat(oo," ").concat(no()),{viewBox:eo}),fo=new La("".concat(io," ").concat(to()),{viewBox:eo}),mo=new La("".concat(io," ").concat(no()),{viewBox:eo}),po=new La("".concat(io," ").concat(to()),{viewBox:eo}),xo=new La("".concat(io," ").concat(no()),{viewBox:eo});function yo(e){var t=x.cornerstone.metaData.get("imagePlaneModule",e.imageId);return t?{rowPixelSpacing:t.rowPixelSpacing||t.rowImagePixelSpacing,colPixelSpacing:t.columnPixelSpacing||t.colImagePixelSpacing}:{rowPixelSpacing:e.rowPixelSpacing,colPixelSpacing:e.columnPixelSpacing}}var To=function(e){var t=T()(e);return null!==e&&("object"===t||"function"===t)};var bo=function(e,t,n){var a,o,i,r,s,l,c=0,u=!1,d=!1,h=!0,v=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=a,i=o;return a=o=void 0,c=t,r=e.apply(i,n)}function f(e,t){return v?window.requestAnimationFrame(e):setTimeout(e,t)}function m(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=i}function p(){var e=Date.now();if(m(e))return x(e);s=f(p,function(e){var n=e-c,a=t-(e-l);return d?Math.min(a,i-n):a}(e))}function x(e){return s=void 0,h&&a?g(e):(a=o=void 0,r)}function y(){for(var e=Date.now(),n=m(e),i=arguments.length,h=new Array(i),v=0;v<i;v++)h[v]=arguments[v];if(a=h,o=this,l=e,n){if(void 0===s)return function(e){return c=e,s=f(p,t),u?g(e):r}(l);if(d)return s=f(p,t),g(l)}return void 0===s&&(s=f(p,t)),r}return t=Number(t)||0,To(n)&&(u=Boolean(n.leading),i=(d="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):i,h="trailing"in n?Boolean(n.trailing):h),y.cancel=function(){void 0!==s&&function(e){if(v)return window.cancelAnimationFrame(e);clearTimeout(e)}(s),c=0,a=l=o=s=void 0},y.flush=function(){return void 0===s?r:x(Date.now())},y.pending=function(){return void 0!==s},y};var Co=function(e,t,n){var a=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return To(n)&&(a="leading"in n?Boolean(n.leading):a,o="trailing"in n?Boolean(n.trailing):o),bo(e,t,{leading:a,trailing:o,maxWait:t})},Mo=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Angle",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Oa};return(e=u()(this,h()(t).call(this,n,a))).preventNewMeasurement=!1,e.throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{start:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},middle:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0},end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}}},{key:"pointNearTool",value:function(e,t,n){return!1!==t.visible&&(_a(e,t.handles.start,t.handles.middle,n)<25||_a(e,t.handles.middle,t.handles.end,n)<25)}},{key:"updateCachedStats",value:function(e,t,n){var a=yo(e),o=a.rowPixelSpacing,i=a.colPixelSpacing,r={x:(n.handles.middle.x-n.handles.start.x)*i,y:(n.handles.middle.y-n.handles.start.y)*o},s={x:(n.handles.end.x-n.handles.middle.x)*i,y:(n.handles.end.y-n.handles.middle.y)*o},l={x:(n.handles.end.x-n.handles.start.x)*i,y:(n.handles.end.y-n.handles.start.y)*o},c=Eo(r),u=Eo(s),d=Eo(l),h=Math.acos((Math.pow(c,2)+Math.pow(u,2)-Math.pow(d,2))/(2*c*u));h*=180/Math.PI,n.rAngle=Pa(h,2),n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=n.enabledElement,o=this.configuration,i=o.handleRadius,r=o.drawHandlesOnHover,s=_(e.currentTarget,this.name);if(s)for(var l=on(n.canvasContext.canvas),c=n.image,u=n.element,d=yo(c),h=d.rowPixelSpacing,v=d.colPixelSpacing,g=_t.getToolWidth(),f=function(e){var o=s.data[e];if(!1===o.visible)return"continue";wt(l,function(e){sn(e,t.configuration);var s=zt.getColorIfActive(o),l=x.cornerstone.pixelToCanvas(n.element,o.handles.start),d=x.cornerstone.pixelToCanvas(n.element,o.handles.middle);Lt(e,n.element,o.handles.start,[o.handles.middle,o.handles.end],{color:s});var f={color:s,handleRadius:i,drawHandlesIfActive:r};if(Wt(e,n,o.handles,f),!0===o.invalidated&&(o.rAngle?t.throttledUpdateCachedStats(c,u,o):t.updateCachedStats(c,u,o)),o.rAngle){var m,y=function(e,t,n){var a=t&&n?"":" (isotropic)";return e.rAngle.toString()+String.fromCharCode(parseInt("00B0",16))+a}(o,h,v);if(!o.handles.textBox.hasMoved){m={x:d.x,y:d.y};var T=en(e,y,5);d.x<l.x?m.x-=15+T+10:m.x+=15;var b=x.cornerstone.internal.getTransform(a);b.invert();var C=b.transformPoint(m.x,m.y);o.handles.textBox.x=C.x,o.handles.textBox.y=C.y}nn(e,n.element,o.handles.textBox,y,o.handles,p,s,g,0,!0)}})},m=0;m<s.data.length;m++)f(m);function p(e){return[e.start,e.middle,e.end]}}},{key:"addNewMeasurement",value:function(e,t){var n=this;if(!this.preventNewMeasurement){this.preventNewMeasurement=!0,e.preventDefault(),e.stopPropagation();var a=e.detail,o=this.createNewMeasurement(a),i=e.detail.element;k(i,this.name,o),x.cornerstone.updateImage(i),Ca(a,this.name,o,o.handles.middle,this.options,t,function(){o.active=!1,o.handles.end.active=!0,x.cornerstone.updateImage(i),Ca(a,n.name,o,o.handles.end,n.options,t,function(){o.active=!1,n.preventNewMeasurement=!1,x.cornerstone.updateImage(i)})})}}}]),t}(ka);function Eo(e){return Math.sqrt(Math.pow(e.x,2)+Math.pow(e.y,2))}var Io=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"ArrowAnnotate",supportedInteractionTypes:["Mouse","Touch"],configuration:{getTextCallback:wo,changeTextCallback:So,drawHandles:!1,drawHandlesOnHover:!0,arrowFirst:!0},svgCursor:Aa};return(e=u()(this,h()(t).call(this,n,a))).preventNewMeasurement=!1,e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){return{visible:!0,active:!0,color:void 0,handles:{start:{x:e.detail.currentPoints.image.x,y:e.detail.currentPoints.image.y,highlight:!0,active:!1},end:{x:e.detail.currentPoints.image.x,y:e.detail.currentPoints.image.y,highlight:!0,active:!1},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}}},{key:"pointNearTool",value:function(e,t,n){return!1!==t.visible&&_a(e,t.handles.start,t.handles.end,n)<25}},{key:"updateCachedStats",value:function(){}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=n.element,o=n.enabledElement,i=this.configuration,r=i.handleRadius,s=i.drawHandlesOnHover,l=_(a,this.name);if(l)for(var c=e.detail.canvasContext.canvas,u=on(c),d=_t.getToolWidth(),h=function(n){var i=l.data[n];if(!1===i.visible)return"continue";wt(u,function(n){sn(n,t.configuration);var l=zt.getColorIfActive(i),c=x.cornerstone.pixelToCanvas(a,i.handles.start),u=x.cornerstone.pixelToCanvas(a,i.handles.end);t.configuration.arrowFirst?Ot(n,u,c,l,d):Ot(n,c,u,l,d);var h={color:l,handleRadius:r,drawHandlesIfActive:s};t.configuration.drawHandles&&Wt(n,e.detail,i.handles,h);var v=function(e){return e.text}(i);if(v&&""!==v){var f=en(n,v,5),m=$t.getFontSize()+10,p=Math.max(f,m)/2+5;if(u.x<c.x&&(p=-p),!i.handles.textBox.hasMoved){var y;y=t.configuration.arrowFirst?{x:u.x-f/2+p,y:u.y-m/2}:{x:c.x-f/2-p,y:c.y-m/2};var T=x.cornerstone.internal.getTransform(o);T.invert();var b=T.transformPoint(y.x,y.y);i.handles.textBox.x=b.x,i.handles.textBox.y=b.y}nn(n,a,i.handles.textBox,v,i.handles,g,l,d,0,!1)}})},v=0;v<l.data.length;v++)h(v);function g(e){var t={x:(e.start.x+e.end.x)/2,y:(e.start.y+e.end.y)/2};return[e.start,t,e.end]}}},{key:"addNewMeasurement",value:function(e,t){var n=this,a=e.detail.element,o=this.createNewMeasurement(e);k(a,this.name,o),x.cornerstone.updateImage(a),Ca(e.detail,this.name,o,o.handles.end,this.options,t,function(){void 0===o.text&&n.configuration.getTextCallback(function(e){e?o.text=e:P(a,n.name,o),o.active=!1,x.cornerstone.updateImage(a)}),x.cornerstone.updateImage(a)})}},{key:"doubleClickCallback",value:function(e){return this._updateTextForNearbyAnnotation(e)}},{key:"touchPressCallback",value:function(e){return this._updateTextForNearbyAnnotation(e)}},{key:"_updateTextForNearbyAnnotation",value:function(e){var t=e.detail.element,n=e.detail.currentPoints.canvas,a=_(t,this.name);if(!a)return!1;for(var o=0;o<a.data.length;o++){var i=a.data[o];if(this.pointNearTool(t,i,n)||Yn(i.handles.textBox,n))return i.active=!0,x.cornerstone.updateImage(t),this.configuration.changeTextCallback(i,e.detail,this._doneChangingTextCallback.bind(this,t,i)),e.stopImmediatePropagation(),e.preventDefault(),e.stopPropagation(),!0}}},{key:"_doneChangingTextCallback",value:function(e,t,n,a){!0===a?P(e,this.name,t):t.text=n,t.active=!1,x.cornerstone.updateImage(e)}}]),t}(ka);function wo(e){e(prompt("Enter your annotation:"))}function So(e,t,n){n(prompt("Change your annotation:"))}var ko,_o=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return Object.assign({x:e,y:t,index:n,drawnIndependently:!1,allowedOutsideImage:!1,highlight:!0,active:!1},a)},Po=function(e){var t=e.currentPoints.image,n=t.x,a=t.y;return{toolType:this.name,isCreating:!0,visible:!0,active:!0,invalidated:!0,handles:{start:_o(n,a,0),end:_o(n,a,1,{active:!0}),perpendicularStart:_o(n,a,2,{locked:!0}),perpendicularEnd:_o(n,a,3),textBox:_o(n-50,a-70,null,{highlight:!1,hasMoved:!0,active:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0})},longestDiameter:0,shortestDiameter:0}},Do=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=x.cornerstone,i=x.cornerstoneMath,r=t.handles,s={start:o.pixelToCanvas(e,r.start),end:o.pixelToCanvas(e,r.end)},l=i.lineSegment.distanceToPoint(s,n);if(Yn(r.textBox,n))return!0;var c="mouse"===a?Je.clickProximity:Je.touchProximity;return!!function(e,t,n,a){var o=x.cornerstone,i=x.cornerstoneMath,r={start:o.pixelToCanvas(e,t.perpendicularStart),end:o.pixelToCanvas(e,t.perpendicularEnd)};return i.lineSegment.distanceToPoint(r,n)<a}(e,r,n,c)||l<c},Lo=function(e){var t=this,n=e.detail,a=n.element,o=n.canvasContext,i=n.image,r=this.configuration,s=r.handleRadius,l=r.drawHandlesOnHover,c=_(a,this.name);if(c){var u=yo(i),d=u.rowPixelSpacing,h=u.colPixelSpacing;if(d&&h)for(var v,g=on(o.canvas),f=zt.getActiveColor(),m=_t.getToolWidth(),p=function(e){var o=c.data[e];if(!1===o.visible)return"continue";v=o.active?f:zt.getToolColor(),!0===o.invalidated&&(o.longestDiameter&&o.shortestDiameter?t.throttledUpdateCachedStats(i,a,o):t.updateCachedStats(i,a,o)),wt(g,function(e){sn(e,t.configuration);var i=o.handles,r=i.start,c=i.end,u=i.perpendicularStart,g=i.perpendicularEnd,f=i.textBox;Dt(e,a,r,c,{color:v});var p=m;!function(e,t){if(t.handles.perpendicularStart.locked){var n,a,o,i,r=t.handles,s=r.start,l=r.end;if(s.x===l.x&&s.y===l.y)n=s.x,a=s.y,o=l.x,i=l.y;else{var c={x:(s.x+l.x)/2,y:(s.y+l.y)/2},u=(s.x-l.x)*(e.image.columnPixelSpacing||1),d=(s.y-l.y)*(e.image.rowPixelSpacing||1),h=Math.sqrt(u*u+d*d),v=(s.x-l.x)/h,g=(s.y-l.y)/h,f=h/2;n=c.x+f/2*g,a=c.y-f/2*v,o=c.x-f/2*g,i=c.y+f/2*v}t.handles.perpendicularStart.x=n,t.handles.perpendicularStart.y=a,t.handles.perpendicularEnd.x=o,t.handles.perpendicularEnd.y=i}}(n,o),Dt(e,a,u,g,{color:v,strokeWidth:p});var x={color:v,handleRadius:s,drawHandlesIfActive:l};Wt(e,n,o.handles,x);var y=Oo(o,d,h);nn(e,a,f,y,o.handles,function(e){return[e.start,e.end,e.perpendicularStart,e.perpendicularEnd]},v,m,10,!0)})},x=0;x<c.data.length;x++)p(x)}},Oo=function(e,t,n){var a=" mm";t&&n||(a=" pixels");var o=" L ".concat(e.longestDiameter).concat(a),i=" W ".concat(e.shortestDiameter).concat(a),r=e.labels;return r&&Array.isArray(r)?[].concat(K()(r),[o,i]):[o,i]},Ao=function(e,t){var n=this,a=e.detail,o=a.element,i=a.image,r=a.buttons,s=this.configuration;if(!Ro(i)){var l=this.createNewMeasurement(a),c=function(){l.active=!1,x.cornerstone.updateImage(o)};k(o,this.name,l),x.cornerstone.updateImage(o);var u=(new Date).getTime(),d=l.handles,h=d.end,v=d.perpendicularStart;Ca(a,this.name,l,h,{},t,function(){var e=l.handles,d=l.longestDiameter,h=l.shortestDiameter,g=$n(a,e),f=parseFloat(d)||0,m=parseFloat(h)||0,p=f<1||m<1,y=(new Date).getTime()-u<150;g||p||y?(l.cancelled=!0,P(o,n.name,l)):s.getMeasurementLocationCallback(l,a,c),v.locked=!1,l.invalidated=!0,x.cornerstone.updateImage(o);var T=ca(o,r,t);T instanceof ka&&T.updateCachedStats(i,o,l);var M={toolType:n.name,element:o,measurementData:l};C(o,b.MEASUREMENT_MODIFIED,M),C(o,b.MEASUREMENT_COMPLETED,M)})}},Ro=function(e){var t=x.cornerstone.metaData.get("imagePlaneModule",e.imageId),n=e.rowPixelSpacing,a=e.columnPixelSpacing;return t&&(n=t.rowPixelSpacing||t.rowImagePixelSpacing,a=t.columnPixelSpacing||t.colImagePixelSpacing),!n||!a};var Ho={setCoords:function(e){ko=e.currentPoints.canvas},getCoords:function(){return ko}},Uo=function(e){var t=this,n=e.detail,a=n.element;Ho.setCoords(n);var o=_(a,this.name);if(o){for(var i=!1,r=function(e){var r=n.currentPoints.canvas,s=o.data[e],l=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:6,o=Kn(e,t,n,a),i=!1;return Object.keys(t).forEach(function(e){if("textBox"!==e){var n=t[e],a=n===o;n.active!==a&&(i=!0),n.active=a}}),i}(a,s.handles,r);Object.keys(s.handles).forEach(function(e){if("textBox"!==e){var t=s.handles[e];t.hover=t.active}}),l&&(i=!0);var c=t.pointNearTool(a,s,r,"mouse"),u=c&&!s.active,d=!c&&s.active;(u||d)&&(s.active=!s.active,i=!0)},s=0;s<o.data.length;s++)r(s);!0===i&&x.cornerstone.updateImage(a)}},No=function(e,t,n){"touch"===(arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse")?this.handleSelectedTouchCallback(e):this.handleSelectedMouseCallback(e)},Bo=function(e,t,n,a){var o,i,r,s,l={},c={},u={x:t.currentPoints.image.x+a.x,y:t.currentPoints.image.y+a.y};0===e.index?function(e,t){var n=x.cornerstoneMath.point.distance,a=t.handles,o=a.start,i=a.end,r=a.perpendicularStart,s=a.perpendicularEnd,l={start:{x:o.x,y:o.y},end:{x:i.x,y:i.y}},c={start:{x:r.x,y:r.y},end:{x:s.x,y:s.y}},u=x.cornerstoneMath.lineSegment.intersectLine(l,c),d=n(r,u),h=n(s,u),v=n(i,u),g=n(i,e);if(g<=v)return!1;var f=(i.x-e.x)/g,m=(i.y-e.y)/g,p=v/g,y=i.x+(e.x-i.x)*p,T=i.y+(e.y-i.y)*p;return r.x=y-d*m,r.y=T+d*f,s.x=y+h*m,s.y=T-h*f,!0}(u,n)?(e.x=u.x,e.y=u.y):(t.currentPoints.image.x=e.x,t.currentPoints.image.y=e.y):1===e.index?function(e,t){var n=x.cornerstoneMath.point.distance,a=t.handles,o=a.start,i=a.end,r=a.perpendicularStart,s=a.perpendicularEnd,l={start:{x:o.x,y:o.y},end:{x:i.x,y:i.y}},c={start:{x:r.x,y:r.y},end:{x:s.x,y:s.y}},u=x.cornerstoneMath.lineSegment.intersectLine(l,c),d=n(r,u),h=n(s,u),v=n(o,u),g=n(o,e);if(g<=v)return!1;var f=(o.x-e.x)/g,m=(o.y-e.y)/g,p=v/g,y=o.x+(e.x-o.x)*p,T=o.y+(e.y-o.y)*p;return r.x=y+d*m,r.y=T-d*f,s.x=y-h*m,s.y=T+h*f,!0}(u,n)?(e.x=u.x,e.y=u.y):(t.currentPoints.image.x=e.x,t.currentPoints.image.y=e.y):2===e.index?(o=!1,l.start={x:n.handles.start.x,y:n.handles.start.y},l.end={x:n.handles.end.x,y:n.handles.end.y},c.start={x:n.handles.perpendicularEnd.x,y:n.handles.perpendicularEnd.y},c.end={x:u.x,y:u.y},(i=x.cornerstoneMath.lineSegment.intersectLine(l,c))||(c.end={x:n.handles.perpendicularStart.x,y:n.handles.perpendicularStart.y},i=x.cornerstoneMath.lineSegment.intersectLine(l,c),r=x.cornerstoneMath.point.distance(i,n.handles.start),s=x.cornerstoneMath.point.distance(i,n.handles.end),(!i||r<3||s<3)&&(o=!0)),!1,o||function(e,t){var n=x.cornerstoneMath.point.distance,a=t.handles,o=a.start,i=a.end,r=a.perpendicularStart,s=a.perpendicularEnd,l=s,c=x.cornerstoneMath.lineSegment.distanceToPoint(t.handles,l),u=x.cornerstoneMath.lineSegment.distanceToPoint(t.handles,e),d=c+u;if(n(l,e)<=c)return!1;var h=n(o,i);if(0===h)return!1;var v=(o.x-i.x)/h,g=(o.y-i.y)/h,f=o.x-1*v,m=o.y-1*g,p=i.x+1*v,y=i.y+1*g;r.x=e.x,r.y=e.y,s.x=e.x-d*g,s.y=e.y+d*v;var T={start:{x:o.x,y:o.y},end:{x:i.x,y:i.y}},b={start:{x:r.x,y:r.y},end:{x:s.x,y:s.y}};return x.cornerstoneMath.lineSegment.intersectLine(T,b)||(n(e,o)>n(e,i)?(r.x=p+u*g,r.y=y-u*v,s.x=r.x-d*g,s.y=r.y+d*v):(r.x=f+u*g,r.y=m-u*v,s.x=r.x-d*g,s.y=r.y+d*v)),!0}(u,n)||(t.currentPoints.image.x=n.handles.perpendicularStart.x,t.currentPoints.image.y=n.handles.perpendicularStart.y)):3===e.index&&(o=!1,l.start={x:n.handles.start.x,y:n.handles.start.y},l.end={x:n.handles.end.x,y:n.handles.end.y},c.start={x:n.handles.perpendicularStart.x,y:n.handles.perpendicularStart.y},c.end={x:u.x,y:u.y},(i=x.cornerstoneMath.lineSegment.intersectLine(l,c))||(c.end={x:n.handles.perpendicularEnd.x,y:n.handles.perpendicularEnd.y},i=x.cornerstoneMath.lineSegment.intersectLine(l,c),r=x.cornerstoneMath.point.distance(i,n.handles.start),s=x.cornerstoneMath.point.distance(i,n.handles.end),(!i||r<3||s<3)&&(o=!0)),!1,o||function(e,t){var n=x.cornerstoneMath.point.distance,a=t.handles,o=a.start,i=a.end,r=a.perpendicularStart,s=a.perpendicularEnd,l=r,c=x.cornerstoneMath.lineSegment.distanceToPoint(t.handles,l),u=x.cornerstoneMath.lineSegment.distanceToPoint(t.handles,e),d=c+u;if(n(l,e)<=c)return!1;var h=n(o,i),v=(o.x-i.x)/h,g=(o.y-i.y)/h,f=o.x-1*v,m=o.y-1*g,p=i.x+1*v,y=i.y+1*g;r.x=e.x+d*g,r.y=e.y-d*v,s.x=e.x,s.y=e.y,s.locked=!1,r.locked=!1;var T={start:{x:o.x,y:o.y},end:{x:i.x,y:i.y}},b={start:{x:r.x,y:r.y},end:{x:s.x,y:s.y}};return x.cornerstoneMath.lineSegment.intersectLine(T,b)||(n(e,o)>n(e,i)?(s.x=p-u*g,s.y=y+u*v,r.x=s.x+d*g,r.y=s.y-d*v):(s.x=f-u*g,s.y=m+u*v,r.x=s.x+d*g,r.y=s.y-d*v)),!0}(u,n)||(t.currentPoints.image.x=n.handles.perpendicularEnd.x,t.currentPoints.image.y=n.handles.perpendicularEnd.y))},Fo=function(e,t,n){var a=e[n],o=t[n];e[n]=o,t[n]=a},Vo=function(e,t){Fo(e,t,"x"),Fo(e,t,"y"),Fo(e,t,"moving"),Fo(e,t,"hover"),Fo(e,t,"active"),Fo(e,t,"selected")};var qo=function(e){var t,n=this,a=e.detail,o=a.element,i=Je.clickProximity,r=function(e){t.invalidated=!0,$n(a,t.handles)&&P(o,n.name,t),e&&(e.moving=!1,e.selected=!0),it(n.element,n.svgCursor),x.cornerstone.updateImage(o),o.addEventListener(b.MOUSE_MOVE,n._moveCallback),o.addEventListener(b.TOUCH_START,n._moveCallback)},s=a.startPoints.canvas,l=_(e.currentTarget,this.name);if(l){for(var c=function(c){t=l.data[c];var u=[o,t.handles,s,i],d=Kn.apply(void 0,u);if(d)return o.removeEventListener(b.MOUSE_MOVE,n._moveCallback),o.removeEventListener(b.TOUCH_START,n._moveCallback),t.active=!0,jo(t.handles),d.moving=!0,(d=function(e,t,n){var a=e.image,o=a.rowPixelSpacing,i=a.columnPixelSpacing,r=t.handles,s=r.start,l=r.end,c=r.perpendicularStart,u=r.perpendicularEnd,d=(s.x-l.x)*(i||1),h=(s.y-l.y)*(o||1),v=Math.sqrt(d*d+h*h),g=(c.x-u.x)*(i||1),f=(c.y-u.y)*(o||1);return(Math.sqrt(g*g+f*f)||0)>v?(Vo(s,l),Vo(s,c),Vo(l,u),Object.values(r).find(function(e){return!0===e.moving})):n}(a,t,d)).hasBoundingBox||rt(n.element),function(e,t,n,a,o,i){var r=e.element,s=e.image,l=e.buttons,c={x:a.x-e.currentPoints.image.x,y:a.y-e.currentPoints.image.y},u=function(e){var o=e.detail;a.hasMoved=!0,void 0===a.index||null===a.index?(a.x=o.currentPoints.image.x+c.x,a.y=o.currentPoints.image.y+c.y):Bo(a,o,n,c),i&&(a.x=Math.max(a.x,0),a.x=Math.min(a.x,o.image.width),a.y=Math.max(a.y,0),a.y=Math.min(a.y,o.image.height)),n.invalidated=!0,x.cornerstone.updateImage(r);var u=ca(r,l,"mouse");u instanceof ka&&u.updateCachedStats(s,r,n);var d={toolType:t,element:r,measurementData:n};x.cornerstone.triggerEvent(r,b.MEASUREMENT_MODIFIED,d)};a.active=!0,Je.isToolLocked=!0,r.addEventListener(b.MOUSE_DRAG,u),r.addEventListener(b.TOUCH_DRAG,u);var d=x.cornerstone.getImage(r),h=function(){x.cornerstone.getImage(r).imageId!==d.imageId&&v()};r.addEventListener(x.cornerstone.EVENTS.IMAGE_RENDERED,h);var v=function e(){a.active=!1,Je.isToolLocked=!1,r.removeEventListener(x.cornerstone.EVENTS.IMAGE_RENDERED,h),r.removeEventListener(b.MOUSE_DRAG,u),r.removeEventListener(b.MOUSE_UP,e),r.removeEventListener(b.MOUSE_CLICK,e),r.removeEventListener(b.TOUCH_DRAG,u),r.removeEventListener(b.TOUCH_DRAG_END,e),r.removeEventListener(b.TAP,e),x.cornerstone.updateImage(r),"function"==typeof o&&o()};r.addEventListener(b.MOUSE_UP,v),r.addEventListener(b.MOUSE_CLICK,v),r.addEventListener(b.TOUCH_DRAG_END,v),r.addEventListener(b.TAP,v)}(a,n.name,t,d,function(){return r(d)}),Wo(e),{v:!0}},u=0;u<l.data.length;u++){var d=c(u);if("object"===T()(d))return d.v}var h=function(e){return function(){zo(e,!1),r()}};for(u=0;u<l.data.length;u++)if(t=l.data[u],this.pointNearTool(o,t,s,"mouse")){o.removeEventListener(b.MOUSE_MOVE,this._moveCallback),o.removeEventListener(b.TOUCH_START,this._moveCallback),t.active=!0,jo(t.handles),zo(t.handles,!0);var v=h(t.handles);return va(a,this.name,t,null,{deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1},"mouse",v),Wo(e),!0}}},jo=function(e){var t=!1;return Object.keys(e).forEach(function(n){"textBox"!==n&&(e[n].selected=!1,t=e[n].active||t,e[n].active=!1)}),t},zo=function(e,t){Object.keys(e).forEach(function(n){"textBox"!==n&&(e[n].moving=t)})},Wo=function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},Go=[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP],Yo=function(e){var t,n=this,a=e.detail,o=a.element,i=Je.touchProximity,r=function(e){t.invalidated=!0,$n(a,t.handles)&&P(o,n.name,t),e&&(e.moving=!1,e.selected=!0),x.cornerstone.updateImage(o),o.addEventListener(b.TOUCH_DRAG,n._moveCallback)},s=a.startPoints.canvas,l=_(e.currentTarget,this.name);if(l){for(var c=function(c){t=l.data[c];var u=[o,t.handles,s,i],d=Kn.apply(void 0,u);if(d)return o.removeEventListener(b.TOUCH_DRAG,n._moveCallback),t.active=!0,Xo(t.handles),d.moving=!0,function(e,t,n,a,o,i){var r=e.element,s=e.image,l=e.buttons,c={x:a.x-e.currentPoints.image.x,y:a.y-e.currentPoints.image.y},u=function(e){var o=e.detail;a.hasMoved=!0,void 0===a.index||null===a.index?(a.x=o.currentPoints.image.x+c.x,a.y=o.currentPoints.image.y+c.y):Bo(a,o,n,c),i&&(a.x=Math.max(a.x,0),a.x=Math.min(a.x,o.image.width),a.y=Math.max(a.y,0),a.y=Math.min(a.y,o.image.height)),n.invalidated=!0,x.cornerstone.updateImage(r);var u=ca(r,l,"touch");u instanceof ka&&u.updateCachedStats(s,r,n);var d={toolType:t,element:r,measurementData:n};x.cornerstone.triggerEvent(r,b.MEASUREMENT_MODIFIED,d)};a.active=!0,Je.isToolLocked=!0,r.addEventListener(b.TOUCH_DRAG,u);var d=function e(){a.active=!1,Je.isToolLocked=!1,r.removeEventListener(b.TOUCH_DRAG,u),Go.forEach(function(t){r.removeEventListener(t,e)}),x.cornerstone.updateImage(r),"function"==typeof o&&o()};Go.forEach(function(e){r.addEventListener(e,d)})}(a,n.name,t,d,function(){return r(d)}),Zo(e),{v:!0}},u=0;u<l.data.length;u++){var d=c(u);if("object"===T()(d))return d.v}var h=function(e){return function(){Ko(e,!1),r()}};for(u=0;u<l.data.length;u++)if(t=l.data[u],this.pointNearTool(o,t,s,"touch")){o.removeEventListener(b.TOUCH_DRAG,this._moveCallback),t.active=!0,Xo(t.handles),Ko(t.handles,!0);var v=h(t.handles);return va(a,this.name,t,null,{deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1},"touch",v),Zo(e),!0}}},Xo=function(e){var t=!1;return Object.keys(e).forEach(function(n){"textBox"!==n&&(e[n].selected=!1,t=e[n].active||t,e[n].active=!1)}),t},Ko=function(e,t){Object.keys(e).forEach(function(n){"textBox"!==n&&(e[n].moving=t)})},Zo=function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()};var $o=function(e,t,n){return n()},Jo=function(e){function t(e){var n;r()(this,t);var a={name:"Bidirectional",supportedInteractionTypes:["Mouse","Touch"],configuration:{changeMeasurementLocationCallback:$o,getMeasurementLocationCallback:$o,textBox:"",shadow:"",drawHandlesOnHover:!0,additionalData:[]},svgCursor:Ra};return(n=u()(this,h()(t).call(this,e,a))).throttledUpdateCachedStats=Co(n.updateCachedStats,110),n.createNewMeasurement=Po.bind(na()(n)),n.pointNearTool=Do.bind(na()(n)),n.renderToolData=Lo.bind(na()(n)),n.addNewMeasurement=Ao.bind(na()(n)),n._moveCallback=Uo.bind(na()(n)),n.handleSelectedCallback=No.bind(na()(n)),n.handleSelectedMouseCallback=qo.bind(na()(n)),n.handleSelectedTouchCallback=Yo.bind(na()(n)),n}return g()(t,e),l()(t,[{key:"updateCachedStats",value:function(e,t,n){var a=function(e,t){var n=t.rowPixelSpacing,a=t.colPixelSpacing,o=e.handles,i=o.start,r=o.end,s=o.perpendicularStart,l=o.perpendicularEnd,c=(i.x-r.x)*(a||1),u=(i.y-r.y)*(n||1),d=Math.sqrt(c*c+u*u),h=(s.x-l.x)*(a||1),v=(s.y-l.y)*(n||1),g=Math.sqrt(h*h+v*v);if(g||(g=0),g>d){var f=d;d=g,g=f}return{longestDiameter:d.toFixed(1),shortestDiameter:g.toFixed(1)}}(n,yo(e)),o=a.longestDiameter,i=a.shortestDiameter;n.longestDiameter=o,n.shortestDiameter=i,n.invalidated=!1}}]),t}(ka),Qo=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=x.cornerstone,o=a.metaData.get("patientStudyModule",e.imageId),i=a.metaData.get("generalSeriesModule",e.imageId);if(o&&i&&"PT"===i.modality){var r=n?t:t*e.slope+e.intercept,s=o.patientWeight;if(s){var l=a.metaData.get("petIsotopeModule",e.imageId);if(l){var c=l.radiopharmaceuticalInfo,u=c.radiopharmaceuticalStartTime,d=c.radionuclideTotalDose,h=c.radionuclideHalfLife,v=i.seriesTime;if(u&&d&&h&&v){var g=ei(v.fractionalSeconds||0)+v.seconds+60*v.minutes+60*v.hours*60-(ei(u.fractionalSeconds)+u.seconds+60*u.minutes+60*u.hours*60);return r*s/(d*Math.exp(-g*Math.log(2)/h))*1e3}}}}};function ei(e){return parseFloat(".".concat(e))}var ti=function(e,t){var n=e.width/2,a=e.height/2;if(n<=0||a<=0)return!1;var o=e.left+n,i=e.top+a,r=t.x-o,s=t.y-i;return r*r/(n*n)+s*s/(a*a)<=1},ni=function(e,t){for(var n=0,a=0,o=0,i=0,r=null,s=null,l=t.top;l<t.top+t.height;l++)for(var c=t.left;c<t.left+t.width;c++){ti(t,{x:c,y:l})&&(null===r&&(r=e[i],s=e[i]),n+=e[i],a+=e[i]*e[i],r=Math.min(r,e[i]),s=Math.max(s,e[i]),o++),i++}if(0===o)return{count:o,mean:0,variance:0,stdDev:0,min:0,max:0};var u=n/o,d=a/o-u*u;return{count:o,mean:u,variance:d,stdDev:Math.sqrt(d),min:r,max:s}},ai={calculateEllipseStatistics:ni,pointInEllipse:ti};function oi(e,t){var n=function(e){var t=[e.start,e.end].sort(function(e,t){return e.x<t.x?-1:1}),n=[e.start,e.end].sort(function(e,t){return e.y<t.y?-1:1}),a=t[0],o=t[t.length-1],i=n[0],r=n[n.length-1];return{top:i,left:a,bottom:r,right:o}}(t),a=(n.left.x+n.right.x)/2,o=(n.top.y+n.bottom.y)/2,i={};return e.rotation>=0&&e.rotation<90&&(i.x=e.hflip?n.left.x:n.right.x,i.y=o),e.rotation>=90&&e.rotation<180&&(i.x=a,i.y=e.vflip?n.bottom.y:n.top.y),e.rotation>=180&&e.rotation<270&&(i.x=e.hflip?n.right.x:n.left.x,i.y=o),e.rotation>=270&&e.rotation<360&&(i.x=a,i.y=e.vflip?n.top.y:n.bottom.y),i}var ii=function(e){var t=e.toString().split(".");return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.join(".")},ri=H("tools:annotation:CircleRoiTool"),si=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"CircleRoi",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Ua};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image)return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{start:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0},initialRotation:e.viewport.rotation,textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}};ri.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n,a){var o=t&&t.handles&&t.handles.start&&t.handles.end,i=x.cornerstoneMath.point.distance;if(o||ri.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;var r="mouse"===a?15:25,s=x.cornerstone.pixelToCanvas(e,t.handles.start),l=x.cornerstone.pixelToCanvas(e,t.handles.end),c=i(s,n),u=i(s,l);return c>u-r/2&&c<u+r/2}},{key:"updateCachedStats",value:function(e,t,n){var a=(x.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=yo(e),i=function(e,t,n,a,o){var i,r=ve(n.start,n.end),s=x.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),l=ni(s,r);"PT"===a&&(i={mean:Qo(e,l.mean,!0)||0,stdDev:Qo(e,l.stdDev,!0)||0});return{area:Math.PI*(r.width*(o.colPixelSpacing||1)/2)*(r.height*(o.rowPixelSpacing||1)/2)||0,count:l.count||0,mean:l.mean||0,variance:l.variance||0,stdDev:l.stdDev||0,min:l.min||0,max:l.max||0,meanStdDevSUV:i}}(e,t,n.handles,a,o);n.cachedStats=i,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=_(e.currentTarget,this.name);if(n){var a=x.cornerstoneMath.point.distance,o=e.detail,i=o.image,r=o.element,s=o.canvasContext,l=_t.getToolWidth(),c=this.configuration,u=c.handleRadius,d=c.drawHandlesOnHover,h=on(s.canvas),v=yo(i),g=v.rowPixelSpacing,f=v.colPixelSpacing,m=(x.cornerstone.metaData.get("generalSeriesModule",i.imageId)||{}).modality,p=g&&f;wt(h,function(e){for(var s=0;s<n.data.length;s++){var c=n.data[s];if(!1!==c.visible){var h=zt.getColorIfActive(c),v={color:h,handleRadius:u,drawHandlesIfActive:d};sn(e,t.configuration);var g=x.cornerstone.pixelToCanvas(r,c.handles.start),f=x.cornerstone.pixelToCanvas(r,c.handles.end),y=a(g,f);if(At(e,r,c.handles.start,y,{color:h},"pixel"),Wt(e,o,c.handles,v),!0===c.invalidated&&(c.cachedStats?t.throttledUpdateCachedStats(i,r,c):t.updateCachedStats(i,r,c)),!c.handles.textBox.hasMoved){var T=oi(o.viewport,c.handles);Object.assign(c.handles.textBox,T)}var b=ci(e,i.color,c.cachedStats,m,p,t.configuration);c.unit=li(m,t.configuration.showHounsfieldUnits),nn(e,r,c.handles.textBox,b,c.handles,function(e){return t=e.start,n=e.end,a=ve(t,n),o=a.left,i=a.top,r=a.width,s=a.height,[{x:o+r/2,y:i},{x:o,y:i+s/2},{x:o+r/2,y:i+s},{x:o+r,y:i+s/2}];var t,n,a,o,i,r,s},h,l,10,!0)}}})}}}]),t}(ka);function li(e,t){return"CT"===e&&!1!==t?"HU":""}function ci(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.area,o=n.mean,i=n.stdDev,r=n.min,s=n.max,l=n.meanStdDevSUV,c=arguments.length>3?arguments[3]:void 0,u=arguments.length>4?arguments[4]:void 0,d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},h=d.showMinMax||!1,v=[],g=[];if(!t){var f=l&&0!==l.mean,m=li(c,d.showHounsfieldUnits),p="Mean: ".concat(ii(o.toFixed(2))," ").concat(m),x="Std Dev: ".concat(ii(i.toFixed(2))," ").concat(m);if(f){for(var y="".concat(" SUV: ").concat(ii(l.mean.toFixed(2))),T="".concat(" SUV: ").concat(ii(l.stdDev.toFixed(2))),b=Math.floor(e.measureText("".concat(x,"     ")).width);e.measureText(p).width<b;)p+=" ";g.push("".concat(p).concat(y)),g.push("".concat(x,"     ").concat(T))}else g.push("".concat(p,"     ").concat(x));if(h){for(var C="Min: ".concat(r," ").concat(m),M="Max: ".concat(s," ").concat(m),E=f?Math.floor(e.measureText("".concat(x,"     ")).width):Math.floor(e.measureText("".concat(p,"     ")).width);e.measureText(C).width<E;)C+=" ";g.push("".concat(C).concat(M))}}return v.push(function(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ii(e.toFixed(2))).concat(n)}(a,u)),g.forEach(function(e){return v.push(e)}),v}var ui=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"CobbAngle",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Ha};return(e=u()(this,h()(t).call(this,n,a))).hasIncomplete=!1,e.throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){return this.hasIncomplete=!0,{visible:!0,active:!0,color:void 0,invalidated:!0,complete:!1,value:"",handles:{start:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0},start2:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1,drawnIndependently:!0},end2:{x:e.currentPoints.image.x+1,y:e.currentPoints.image.y,highlight:!0,active:!1,drawnIndependently:!0},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}}},{key:"pointNearTool",value:function(e,t,n){return!1!==t.visible&&(!this.hasIncomplete&&(_a(e,t.handles.start,t.handles.end,n)<25||_a(e,t.handles.start2,t.handles.end2,n)<25))}},{key:"updateCachedStats",value:function(e,t,n){var a=yo(e),o=a.rowPixelSpacing,i=a.colPixelSpacing,r=(Math.ceil(n.handles.start.x)-Math.ceil(n.handles.end.x))*i,s=(Math.ceil(n.handles.start.y)-Math.ceil(n.handles.end.y))*o,l=(Math.ceil(n.handles.start2.x)-Math.ceil(n.handles.end2.x))*i,c=(Math.ceil(n.handles.start2.y)-Math.ceil(n.handles.end2.y))*o,u=Math.acos(Math.abs((r*l+s*c)/(Math.sqrt(r*r+s*s)*Math.sqrt(l*l+c*c))));u*=180/Math.PI,n.rAngle=Pa(u,2),n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=this.configuration,o=a.handleRadius,i=a.drawHandlesOnHover,r=_(e.currentTarget,this.name);if(r)for(var s=on(n.canvasContext.canvas),l=_t.getToolWidth(),c=$t.getFont(),u=function(e){var a=r.data[e];if(!1===a.visible)return"continue";wt(s,function(e){sn(e,t.configuration);var r=zt.getColorIfActive(a);Dt(e,n.element,a.handles.start,a.handles.end,{color:r}),a.complete&&Dt(e,n.element,a.handles.start2,a.handles.end2,{color:r});var s={color:r,handleRadius:o,drawHandlesIfActive:i};Wt(e,n,a.handles,s),e.fillStyle=r;var u=a.value;if(!a.handles.textBox.hasMoved){var d={x:(a.handles.start.x+a.handles.end.x)/2,y:(a.handles.start.y+a.handles.end.y)/2-10};e.font=c,a.handles.textBox.x=d.x,a.handles.textBox.y=d.y}nn(e,n.element,a.handles.textBox,u,a.handles,h,r,l,0,!0)})},d=0;d<r.data.length;d++)u(d);function h(e){return[e.start,e.start2,e.end,e.end2]}}},{key:"getIncomplete",value:function(e){var t=_(e,this.name);if(t&&Array.isArray(t.data))return t.data.find(function(e){return!1===e.complete})}},{key:"addNewMeasurement",value:function(e,t){var n=this;e.preventDefault(),e.stopPropagation();var a,o,i,r=e.detail,s=e.detail.element,l=this.getIncomplete(s);l?((a=l).complete=!0,a.handles.start2={x:r.currentPoints.image.x,y:r.currentPoints.image.y,drawnIndependently:!1,highlight:!0,active:!1},a.handles.end2={x:r.currentPoints.image.x,y:r.currentPoints.image.y,drawnIndependently:!1,highlight:!0,active:!0},o=a.handles.end2,this.hasIncomplete=!1,i=function(){var e=b.MEASUREMENT_COMPLETED,t={toolType:n.name,element:s,measurementData:a};C(s,e,t)}):(a=this.createNewMeasurement(r),k(s,this.name,a),o=a.handles.end),x.cornerstone.updateImage(s),Ca(r,this.name,a,o,this.options,t,i)}},{key:"onMeasureModified",value:function(e){var t=e.detail.element,n=x.cornerstone.getEnabledElement(t).image,a=yo(n),o=a.rowPixelSpacing,i=a.colPixelSpacing;if(e.detail.toolName===this.name){var r=e.detail.measurementData;!0===r.invalidated&&(r.rAngle?this.throttledUpdateCachedStats(n,t,r):this.updateCachedStats(n,t,r));var s=r.rAngle;r.value="",Number.isNaN(s)||(r.value=function(e,t,n){var a=t&&n?"":" (isotropic)";return e.toString()+String.fromCharCode(parseInt("00B0",16))+a}(s,o,i))}}},{key:"activeCallback",value:function(e){this.onMeasureModified=this.onMeasureModified.bind(this),e.addEventListener(b.MEASUREMENT_MODIFIED,this.onMeasureModified)}},{key:"passiveCallback",value:function(e){this.onMeasureModified=this.onMeasureModified.bind(this),e.addEventListener(b.MEASUREMENT_MODIFIED,this.onMeasureModified)}},{key:"enabledCallback",value:function(e){e.removeEventListener(b.MEASUREMENT_MODIFIED,this.onMeasureModified)}},{key:"disabledCallback",value:function(e){e.removeEventListener(b.MEASUREMENT_MODIFIED,this.onMeasureModified)}}]),t}(ka),di=H("tools:annotation:EllipticalRoiTool"),hi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"EllipticalRoi",supportedInteractionTypes:["Mouse","Touch"],configuration:{},svgCursor:Na};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image)return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{start:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0},initialRotation:e.viewport.rotation,textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}};di.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n,a){var o=t&&t.handles&&t.handles.start&&t.handles.end;if(o||di.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;var i="mouse"===a?15:25,r=x.cornerstone.pixelToCanvas(e,t.handles.start),s=x.cornerstone.pixelToCanvas(e,t.handles.end),l={left:Math.min(r.x,s.x)+i/2,top:Math.min(r.y,s.y)+i/2,width:Math.abs(r.x-s.x)-i,height:Math.abs(r.y-s.y)-i},c={left:Math.min(r.x,s.x)-i/2,top:Math.min(r.y,s.y)-i/2,width:Math.abs(r.x-s.x)+i,height:Math.abs(r.y-s.y)+i},u=ti(l,n);return!(!ti(c,n)||u)}},{key:"updateCachedStats",value:function(e,t,n){var a=(x.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=yo(e),i=function(e,t,n,a,o){var i,r=fi(n.start,n.end),s=x.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),l=ni(s,r);"PT"===a&&(i={mean:Qo(e,l.mean,!0)||0,stdDev:Qo(e,l.stdDev,!0)||0});return{area:Math.PI*(r.width*(o.colPixelSpacing||1)/2)*(r.height*(o.rowPixelSpacing||1)/2)||0,count:l.count||0,mean:l.mean||0,variance:l.variance||0,stdDev:l.stdDev||0,min:l.min||0,max:l.max||0,meanStdDevSUV:i}}(e,t,n.handles,a,o);n.cachedStats=i,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=_(e.currentTarget,this.name);if(n){var a=e.detail,o=a.image,i=a.element,r=_t.getToolWidth(),s=this.configuration,l=s.handleRadius,c=s.drawHandlesOnHover,u=on(a.canvasContext.canvas),d=yo(o),h=d.rowPixelSpacing,v=d.colPixelSpacing,g=(x.cornerstone.metaData.get("generalSeriesModule",o.imageId)||{}).modality,f=h&&v;wt(u,function(e){for(var s=0;s<n.data.length;s++){var u=n.data[s];if(!1!==u.visible){var d=zt.getColorIfActive(u),h={color:d,handleRadius:l,drawHandlesIfActive:c};if(sn(e,t.configuration),Ft(e,i,u.handles.start,u.handles.end,{color:d},"pixel",u.handles.initialRotation),Wt(e,a,u.handles,h),!0===u.invalidated&&(u.cachedStats?t.throttledUpdateCachedStats(o,i,u):t.updateCachedStats(o,i,u)),!u.handles.textBox.hasMoved){var v=oi(a.viewport,u.handles);Object.assign(u.handles.textBox,v)}var m=gi(e,o.color,u.cachedStats,g,f,t.configuration);u.unit=vi(g,t.configuration.showHounsfieldUnits),nn(e,i,u.handles.textBox,m,u.handles,function(e){return t=e.start,n=e.end,a=fi(t,n),o=a.left,i=a.top,r=a.width,s=a.height,[{x:o+r/2,y:i},{x:o,y:i+s/2},{x:o+r/2,y:i+s},{x:o+r,y:i+s/2}];var t,n,a,o,i,r,s},d,r,10,!0)}}})}}}]),t}(ka);function vi(e,t){return"CT"===e&&!1!==t?"HU":""}function gi(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=n.area,o=n.mean,i=n.stdDev,r=n.min,s=n.max,l=n.meanStdDevSUV,c=arguments.length>3?arguments[3]:void 0,u=arguments.length>4?arguments[4]:void 0,d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},h=d.showMinMax||!1,v=[],g=[];if(!t){var f=l&&0!==l.mean,m=vi(c,d.showHounsfieldUnits),p="Mean: ".concat(ii(o.toFixed(2))," ").concat(m),x="Std Dev: ".concat(ii(i.toFixed(2))," ").concat(m);if(f){for(var y="".concat(" SUV: ").concat(ii(l.mean.toFixed(2))),T="".concat(" SUV: ").concat(ii(l.stdDev.toFixed(2))),b=Math.floor(e.measureText("".concat(x,"     ")).width);e.measureText(p).width<b;)p+=" ";g.push("".concat(p).concat(y)),g.push("".concat(x,"     ").concat(T))}else g.push("".concat(p,"     ").concat(x));if(h){for(var C="Min: ".concat(r," ").concat(m),M="Max: ".concat(s," ").concat(m),E=f?Math.floor(e.measureText("".concat(x,"     ")).width):Math.floor(e.measureText("".concat(p,"     ")).width);e.measureText(C).width<E;)C+=" ";g.push("".concat(C).concat(M))}}return v.push(function(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ii(e.toFixed(2))).concat(n)}(a,u)),g.forEach(function(e){return v.push(e)}),v}function fi(e,t){return{left:Math.round(Math.min(e.x,t.x)),top:Math.round(Math.min(e.y,t.y)),width:Math.round(Math.abs(e.x-t.x)),height:Math.round(Math.abs(e.y-t.y))}}var mi=function(e,t){for(var n=!1,a=e.length-1,o=0;o<e.length;o++)pi(t,e[o],e[a])&&(n=!n),a=o;return n};function pi(e,t,n){return a=e.y,o=t.y,i=n.y,!(!(o<a&&a<i||i<a&&a<o)||!function(e,t,n){if(t.x>e.x&&n.x>e.x)return!0;if(t.x===n.x)return e.x<t.x;if(t.x>n.x){var a=t;t=n,n=a}var o=function(e,t,n){var a=(n.y-t.y)/(n.x-t.x);return{value:t.x+a*(e.x-t.x),gradient:a}}(e,t,n);return Math.sign(o.gradient)*e.y>o.value}(e,t,n));var a,o,i}function xi(e,t,n,a){mi(e,t)&&(n.value+=a,n.squared+=a*a,n.count++)}var yi=function e(t,n){r()(this,e),this.toolIndex=t,this.handleIndexArray=n},Ti=function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];r()(this,e),this.x=t.x,this.y=t.y,this.highlight=n,this.active=a,this.lines=[]};function bi(e,t,n,a){for(var o=e.length-1,i=0;i<e.length;i++)if(-1===a.indexOf(i)&&-1===a.indexOf(o)){if(Ci(t,n,Mi(e[o]),Mi(e[i])))return!0;o=i}else o=i;return!1}function Ci(e,t,n,a){var o=!1,i=[Ei(e,t,n),Ei(e,t,a),Ei(n,a,e),Ei(n,a,t)];return i[0]!==i[1]&&i[2]!==i[3]||(0===i[0]&&Ii(e,n,t)?o=!0:0===i[1]&&Ii(e,a,t)?o=!0:0===i[2]&&Ii(n,e,a)?o=!0:0===i[3]&&Ii(n,t,a)&&(o=!0),o)}function Mi(e){return{x:e.x,y:e.y}}function Ei(e,t,n){var a=(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y);return 0===a?0:a>0?1:2}function Ii(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}var wi={newHandle:function(e,t){var n=t.length-1;return bi(t,Mi(t[n]),Mi(e),[n])},end:function(e){var t=e.length-1;return bi(e,Mi(e[t]),Mi(e[0]),[t,0])},modify:function(e,t){var n=Mi(e[t]),a=t-1;0===t&&(a=e.length-1);var o=Mi(e[a]);return!!bi(e,n,o,[t,a])||bi(e,n,o=Mi(e[a=t===e.length-1?0:t+1]),[t,a])}},Si=function(){function e(t,n){r()(this,e),this._eventData=t,this._toolName=n}return l()(e,[{key:"findLine",value:function(){var e=this.findTool();if(null===e)return null;var t=this._getCloseLinesInTool(e);return t?this._findCorrectLine(e,t):null}},{key:"findTool",value:function(){return this._toolData=_(this._eventData.element,this._toolName),this._mousePoint=this._eventData.currentPoints.canvas,this._toolData?this._nearestHandleToPointAllTools().toolIndex:null}},{key:"_nearestHandleToPointAllTools",value:function(){for(var e=this._toolData,t={toolIndex:null,handleIndex:null,distance:1/0},n=0;n<e.data.length;n++){var a=this._nearestHandleToPoint(n);null!==a&&(a.distance<t.distance&&(t=a))}return t}},{key:"_nearestHandleToPoint",value:function(e){var t=this._eventData,n=this._toolData.data[e],a=n.handles.points;if(void 0===a)return null;if(!1===n.visible)return null;for(var o={toolIndex:e,handleIndex:null,distance:1/0},i=0;i<a.length;i++){var r=x.cornerstone.pixelToCanvas(t.element,a[i]),s=x.cornerstoneMath.point.distance(r,this._mousePoint);s<o.distance&&(o.handleIndex=i,o.distance=s)}return o}},{key:"_getCloseLinesInTool",value:function(t){for(var n=this._toolData.data[t].handles.points,a=[],o=0;o<n.length;o++){var i=e.getNextHandleIndex(o,n.length);this._distanceOfPointfromLine(n[o],n[i])<10&&a.push([o,i])}return a}},{key:"_findCorrectLine",value:function(e,t){for(var n=0;n<t.length;n++)if(this._pointProjectsToLineSegment(e,t[n]))return new yi(e,t[n]);return null}},{key:"_pointProjectsToLineSegment",value:function(t,n){var a=this._eventData,o=this._toolData.data[t],i=o.handles.points;if(void 0!==o.handles.points){if(!1===o.visible)return!1;var r=i[n[0]],s=i[n[1]],l=e.getCanvasPointsFromHandles(r,s,a.element),c=e.getLineAsVector(l),u=this._getLineOriginToMouseAsVector(l),d=(u[0]*c[0]+u[1]*c[1])/c.magnitude;return d>0&&d<c.magnitude}}},{key:"_getLineOriginToMouseAsVector",value:function(e){return[this._mousePoint.x-e[0].x,this._mousePoint.y-e[0].y]}},{key:"_distanceOfPointfromLine",value:function(e,t){var n=this._eventData,a=x.cornerstone.pixelToCanvas(n.element,e),o=x.cornerstone.pixelToCanvas(n.element,t),i=this._mousePoint;return Math.abs((o.y-a.y)*i.x-(o.x-a.x)*i.y+o.x*a.y-o.y*a.x)/x.cornerstoneMath.point.distance(a,o)}}],[{key:"getCanvasPointsFromHandles",value:function(e,t,n){var a=[];return e.x<t.x?(a.push(x.cornerstone.pixelToCanvas(n,e)),a.push(x.cornerstone.pixelToCanvas(n,t))):(a.push(x.cornerstone.pixelToCanvas(n,t)),a.push(x.cornerstone.pixelToCanvas(n,e))),a}},{key:"getLineAsVector",value:function(e){var t=[e[1].x-e[0].x,e[1].y-e[0].y];return t.magnitude=x.cornerstoneMath.point.distance(e[0],e[1]),t}},{key:"getNextHandleIndex",value:function(e,t){return e<t-1?e+1:0}}]),e}(),ki=function(e,t){t===e.length-1?e[t].lines.push(e[0]):e[t].lines.push(e[t+1])};var _i={calculateFreehandStatistics:function(e,t,n){var a={count:0,mean:0,variance:0,stdDev:0},o=function(e,t,n){for(var a={value:0,squared:0,count:0},o=0,i=t.top;i<t.top+t.height;i++)for(var r=t.left;r<t.left+t.width;r++){var s={x:r,y:i};xi(n,s,a,e[o]),o++}return a}(e,t,n);return 0===o.count?a:(a.count=o.count,a.mean=o.value/o.count,a.variance=o.squared/o.count-a.mean*a.mean,a.stdDev=Math.sqrt(a.variance),a)},ClickedLineData:yi,freehandArea:function(e,t){var n=0,a=e.length-1;t=t||1;for(var o=0;o<e.length;o++)n+=(e[a].x+e[o].x)*(e[a].y-e[o].y),a=o;return Math.abs(n*t/2)},FreehandHandleData:Ti,freehandIntersect:wi,FreehandLineFinder:Si,insertOrDelete:function(e,t){var n=e.detail;if(t&&null!==t.handleNearby){var a={toolIndex:t.toolIndex,handleIndex:t.handleNearby};(function(e,t){var n=_(e.element,this.name);if(void 0!==n){var a=t.handleIndex,o=t.toolIndex,i=n.data[o],r=i.handles.points;r.length<=3||(a===r.length-1?(r[a-1].lines.pop(),r[a-1].lines.push(r[0])):0===a?(r[r.length-1].lines.pop(),r[r.length-1].lines.push(r[a+1])):(r[a-1].lines.pop(),r[a-1].lines.push(r[a+1])),r.splice(a,1),i.invalidated=!0,i.active=!0,i.highlight=!0,x.cornerstone.updateImage(e.element))}}).call(this,n,a)}else{var o=new Si(n,this.name).findLine();o&&function(e,t){var n=_(e.element,this.name);if(void 0!==n){var a=n.data[t.toolIndex],o=function(e){for(var t=e.handleIndexArray,n=1/0,a=t.includes(0),o=0;o<t.length;o++){var i=t[o];0!==i&&i<n&&(n=i)}return a&&1===n&&(n=0),++n}(t);if(o!==1/0){var i=new Ti(e.currentPoints.image),r=a.handles.points;r.splice(o,0,i),r[o-1].lines.pop(),r[o-1].lines.push(e.currentPoints.image),ki(r,o),a.active=!0,a.highlight=!0,a.invalidated=!0,x.cornerstone.updateImage(e.element)}}}.call(this,n,o)}},pointInFreehand:mi,addLine:ki},Pi=H("tools:annotation:FreehandRoiTool"),Di=_i.insertOrDelete,Li=_i.freehandArea,Oi=_i.calculateFreehandStatistics,Ai=_i.freehandIntersect,Ri=_i.FreehandHandleData,Hi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"FreehandRoi",supportedInteractionTypes:["Mouse","Touch"],configuration:{mouseLocation:{handles:{start:{highlight:!0,active:!0}}},spacing:1,activeHandleRadius:3,completeHandleRadius:6,completeHandleRadiusTouch:28,alwaysShowHandles:!1,invalidColor:"crimson",currentHandle:0,currentTool:-1},svgCursor:Ba};return(e=u()(this,h()(t).call(this,n,a))).isMultiPartTool=!0,e._drawing=!1,e._dragging=!1,e._modifying=!1,e._drawingMouseDownCallback=e._drawingMouseDownCallback.bind(na()(e)),e._drawingMouseMoveCallback=e._drawingMouseMoveCallback.bind(na()(e)),e._drawingMouseDragCallback=e._drawingMouseDragCallback.bind(na()(e)),e._drawingMouseUpCallback=e._drawingMouseUpCallback.bind(na()(e)),e._drawingMouseDoubleClickCallback=e._drawingMouseDoubleClickCallback.bind(na()(e)),e._editMouseUpCallback=e._editMouseUpCallback.bind(na()(e)),e._editMouseDragCallback=e._editMouseDragCallback.bind(na()(e)),e._drawingTouchStartCallback=e._drawingTouchStartCallback.bind(na()(e)),e._drawingTouchDragCallback=e._drawingTouchDragCallback.bind(na()(e)),e._drawingDoubleTapClickCallback=e._drawingDoubleTapClickCallback.bind(na()(e)),e._editTouchDragCallback=e._editTouchDragCallback.bind(na()(e)),e.throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image){var t={visible:!0,active:!0,invalidated:!0,color:void 0,handles:{points:[]}};return t.handles.textBox={active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0},t}Pi.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n){var a=t&&t.handles&&t.handles.points;if(!a)throw new Error("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool"));return!(!a||!1===t.visible)&&void 0!==this._pointNearHandle(e,t,n)}},{key:"distanceFromPoint",value:function(e,t,n){for(var a=1/0,o=0;o<t.handles.points.length;o++){var i=x.cornerstoneMath.point.distance(t.handles.points[o],n);a=Math.min(a,i)}return a===1/0?-1:a}},{key:"distanceFromPointCanvas",value:function(e,t,n){var a=1/0;if(!t)return-1;for(var o=x.cornerstone.pixelToCanvas(e,n),i=t.handles.points,r=0;r<i.length;r++){var s=x.cornerstone.pixelToCanvas(e,i[r]),l=x.cornerstoneMath.point.distance(s,o);a=Math.min(a,l)}return a===1/0?-1:a}},{key:"updateCachedStats",value:function(e,t,n){for(var a,o,i=x.cornerstone.metaData.get("generalSeriesModule",e.imageId),r=i?i.modality:null,s=n.handles.points,l={left:s[0].x,right:s[0].x,bottom:s[0].y,top:s[0].x},c=0;c<s.length;c++)l.left=Math.min(l.left,s[c].x),l.right=Math.max(l.right,s[c].x),l.bottom=Math.min(l.bottom,s[c].y),l.top=Math.max(l.top,s[c].y);var u={left:l.left,top:l.bottom,width:Math.abs(l.right-l.left),height:Math.abs(l.top-l.bottom)};if(n.polyBoundingBox=u,!e.color){var d=x.cornerstone.getPixels(t,u.left,u.top,u.width,u.height);a=Oi.call(this,d,u,n.handles.points),"PT"===r&&(o={mean:Qo(e,(a.mean-e.intercept)/e.slope),stdDev:Qo(e,(a.stdDev-e.intercept)/e.slope)}),a&&!isNaN(a.mean)&&(n.meanStdDev=a,n.meanStdDevSUV=o)}var h=(e.columnPixelSpacing||1)*(e.rowPixelSpacing||1),v=Li(n.handles.points,h);isNaN(v)||(n.area=v),n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=_(e.currentTarget,this.name);if(a)for(var o=n.image,i=n.element,r=this.configuration,s=x.cornerstone.metaData.get("generalSeriesModule",o.imageId),l=s?s.modality:null,c=on(n.canvasContext.canvas),u=_t.getToolWidth(),d=function(e){var s=a.data[e];if(!1===s.visible)return"continue";wt(c,function(e){var a,c=zt.getColorIfActive(s);if(s.active?s.handles.invalidHandlePlacement?(c=r.invalidColor,a=r.invalidColor):(c=zt.getColorIfActive(s),a=zt.getFillColor()):a=zt.getToolColor(),s.handles.points.length)for(var d=0;d<s.handles.points.length;d++){var h=K()(s.handles.points[d].lines);d!==s.handles.points.length-1||s.polyBoundingBox||h.push(r.mouseLocation.handles.start),Lt(e,i,s.handles.points[d],h,{color:c})}var g={color:c,fill:a};if((r.alwaysShowHandles||s.active&&s.polyBoundingBox)&&(g.handleRadius=r.activeHandleRadius,Wt(e,n,s.handles.points,g)),s.canComplete){g.handleRadius=r.completeHandleRadius;var f=s.handles.points[0];Wt(e,n,[f],g)}if(s.active&&!s.polyBoundingBox){g.handleRadius=r.activeHandleRadius,Wt(e,n,r.mouseLocation.handles,g);var m=s.handles.points[0];Wt(e,n,[m],g)}if(!0!==s.invalidated||s.active||(s.meanStdDev&&s.meanStdDevSUV&&s.area?t.throttledUpdateCachedStats(o,i,s):t.updateCachedStats(o,i,s)),s.polyBoundingBox&&!s.handles.textBox.freehand){s.handles.textBox.hasMoved||(s.handles.textBox.x=s.polyBoundingBox.left+s.polyBoundingBox.width,s.handles.textBox.y=s.polyBoundingBox.top+s.polyBoundingBox.height/2);var p=function(e){var t=e.meanStdDev,n=e.meanStdDevSUV,a=e.area,i=[];if(t&&void 0!==t.mean){var r="";"CT"===l&&(r="HU"),e.unit=r;var s="Mean: ".concat(ii(t.mean.toFixed(2))," ").concat(r),c="StdDev: ".concat(ii(t.stdDev.toFixed(2))," ").concat(r);if(n&&void 0!==n.mean){s+=" SUV: "+ii(n.mean.toFixed(2)),c+=" SUV: "+ii(n.stdDev.toFixed(2))}i.push(s),i.push(c)}if(a){var u=" mm".concat(String.fromCharCode(178));o.rowPixelSpacing&&o.columnPixelSpacing||(u=" pixels".concat(String.fromCharCode(178)));var d="Area: ".concat(ii(a.toFixed(2))).concat(u);i.push(d)}return i}.call(t,s);nn(e,i,s.handles.textBox,p,s.handles.points,v,c,u,0,!0)}})},h=0;h<a.data.length;h++)d(h);function v(e){return e}}},{key:"addNewMeasurement",value:function(e){var t=e.detail;this._startDrawing(e),this._addPoint(t),Ui(e)}},{key:"preMouseDownCallback",value:function(e){var t=e.detail,n=this._pointNearHandleAllTools(t);return!!t.event.ctrlKey&&(void 0!==n&&n.handleNearby.hasBoundingBox||Di.call(this,e,n),Ui(e),!0)}},{key:"handleSelectedCallback",value:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=e.detail.element,i=_(o,this.name);if(n.hasBoundingBox)Ea(e,this,t,n,a);else{var r=this.configuration;r.dragOrigin={x:n.x,y:n.y};for(var s=0;s<i.data.length;s++)for(var l=i.data[s].handles.points,c=0;c<l.length;c++)l[c]===n&&(r.currentHandle=c,r.currentTool=s);this._modifying=!0,this._activateModify(o),Ui(e)}}},{key:"_drawingMouseMoveCallback",value:function(e){var t=e.detail,n=t.currentPoints,a=t.element,o=_(a,this.name),i=this.configuration,r=i.currentTool,s=o.data[r],l=n.canvas;this._getMouseLocation(t),this._checkInvalidHandleLocation(s,t);var c=this._pointNearHandle(a,s,l),u=s.handles.points;void 0!==c&&!c.hasBoundingBox&&c<u.length-1&&(i.mouseLocation.handles.start.x=u[c].x,i.mouseLocation.handles.start.y=u[c].y),x.cornerstone.updateImage(a)}},{key:"_drawingMouseDragCallback",value:function(e){this.options.mouseButtonMask.includes(e.detail.buttons)&&this._drawingDrag(e)}},{key:"_drawingTouchDragCallback",value:function(e){this._drawingDrag(e)}},{key:"_drawingDrag",value:function(e){var t=e.detail,n=t.element,a=_(n,this.name),o=this.configuration.currentTool,i=a.data[o];this._getMouseLocation(t),this._checkInvalidHandleLocation(i,t),this._addPointPencilMode(t,i.handles.points),this._dragging=!0,x.cornerstone.updateImage(n)}},{key:"_drawingMouseUpCallback",value:function(e){var t=e.detail.element;if(this._dragging){this._dragging=!1;var n=this.configuration,a=n.currentTool,o=_(t,this.name).data[a];if(!Ai.end(o.handles.points)&&o.canComplete){var i=n.currentHandle;this._endDrawing(t,i)}Ui(e)}}},{key:"_drawingMouseDownCallback",value:function(e){var t=e.detail,n=t.buttons,a=t.currentPoints,o=t.element;if(this.options.mouseButtonMask.includes(n)){var i=a.canvas,r=this.configuration,s=r.currentTool,l=_(o,this.name).data[s],c=this._pointNearHandle(o,l,i);if(!Ai.end(l.handles.points)&&l.canComplete){var u=r.currentHandle;this._endDrawing(o,u)}else void 0===c&&this._addPoint(t);Ui(e)}}},{key:"_drawingTouchStartCallback",value:function(e){var t=e.detail,n=t.currentPoints,a=t.element,o=n.canvas,i=this.configuration,r=i.currentTool,s=_(a,this.name).data[r],l=this._pointNearHandle(a,s,o);if(!Ai.end(s.handles.points)&&s.canComplete){var c=i.currentHandle;this._endDrawing(a,c)}else void 0===l&&this._addPoint(t);Ui(e)}},{key:"completeDrawing",value:function(e){if(this._drawing){var t=_(e,this.name),n=this.configuration,a=t.data[n.currentTool];if(!Ai.end(a.handles.points)&&a.handles.points.length>=2){var o=n.currentHandle;a.polyBoundingBox={},this._endDrawing(e,o)}}}},{key:"_drawingMouseDoubleClickCallback",value:function(e){var t=e.detail.element;this.completeDrawing(t),Ui(e)}},{key:"_drawingDoubleTapClickCallback",value:function(e){var t=e.detail.element;this.completeDrawing(t),Ui(e)}},{key:"_editMouseDragCallback",value:function(e){var t=e.detail,n=t.element,a=t.buttons;if(this.options.mouseButtonMask.includes(a)){var o,i=_(n,this.name),r=this.configuration,s=i.data[r.currentTool],l=r.currentHandle,c=s.handles.points;if(this._getMouseLocation(t),s.handles.invalidHandlePlacement=Ai.modify(c,l),s.active=!0,s.highlight=!0,c[l].x=r.mouseLocation.handles.start.x,c[l].y=r.mouseLocation.handles.start.y,o=this._getPrevHandleIndex(l,c),l>=0){var u=c[o].lines.length-1,d=c[o].lines[u];d.x=r.mouseLocation.handles.start.x,d.y=r.mouseLocation.handles.start.y}x.cornerstone.updateImage(n)}}},{key:"_editTouchDragCallback",value:function(e){var t,n=e.detail,a=n.element,o=_(a,this.name),i=this.configuration,r=o.data[i.currentTool],s=i.currentHandle,l=r.handles.points;if(this._getMouseLocation(n),r.handles.invalidHandlePlacement=Ai.modify(l,s),r.active=!0,r.highlight=!0,l[s].x=i.mouseLocation.handles.start.x,l[s].y=i.mouseLocation.handles.start.y,t=this._getPrevHandleIndex(s,l),s>=0){var c=l[t].lines.length-1,u=l[t].lines[c];u.x=i.mouseLocation.handles.start.x,u.y=i.mouseLocation.handles.start.y}x.cornerstone.updateImage(a)}},{key:"_getPrevHandleIndex",value:function(e,t){return 0===e?t.length-1:e-1}},{key:"_editMouseUpCallback",value:function(e){var t=e.detail,n=t.element,a=_(n,this.name);this._deactivateModify(n),this._dropHandle(t,a),this._endDrawing(n),x.cornerstone.updateImage(n)}},{key:"_dropHandle",value:function(e,t){var n=this.configuration,a=n.currentTool,o=t.data[a].handles,i=o.points;if(o.invalidHandlePlacement){var r,s=n.currentHandle,l=i[s];if(0===s)r=i[i.length-1];else r=i[s-1];l.x=n.dragOrigin.x,l.y=n.dragOrigin.y,r.lines[0]=l,o.invalidHandlePlacement=!1}}},{key:"_startDrawing",value:function(e){var t,n=e.detail,a=this.createNewMeasurement(n),o=n.element,i=this.configuration;e.type===b.MOUSE_DOWN_ACTIVATE?t="Mouse":e.type===b.TOUCH_START_ACTIVE&&(t="Touch"),this._activateDraw(o,t),this._getMouseLocation(n),k(o,this.name,a);var r=_(o,this.name);i.currentTool=r.data.length-1,this._activeDrawingToolReference=r.data[i.currentTool]}},{key:"_addPoint",value:function(e){var t=e.currentPoints,n=e.element,a=_(n,this.name),o=this.configuration,i=a.data[o.currentTool];if(!i.handles.invalidHandlePlacement){var r=new Ri(t.image);i.handles.points.length&&i.handles.points[o.currentHandle-1].lines.push(t.image),i.handles.points.push(r),o.currentHandle+=1,x.cornerstone.updateImage(n),this.fireModifiedEvent(n,i)}}},{key:"_addPointPencilMode",value:function(e,t){var n=this,a=this.configuration,o=e.element,i=a.mouseLocation.handles.start;t.every(function(e){return n._isDistanceLargerThanSpacing(o,e,i)})&&this._addPoint(e)}},{key:"_endDrawing",value:function(e,t){var n=_(e,this.name),a=this.configuration,o=n.data[a.currentTool];if(o.active=!1,o.highlight=!1,o.handles.invalidHandlePlacement=!1,void 0!==t){var i=o.handles.points;i[a.currentHandle-1].lines.push(i[0])}this._modifying&&(this._modifying=!1,o.invalidated=!0),a.currentHandle=0,a.currentTool=-1,o.canComplete=!1,this._drawing&&this._deactivateDraw(e),x.cornerstone.updateImage(e),this.fireModifiedEvent(e,o),this.fireCompletedEvent(e,o)}},{key:"_pointNearHandle",value:function(e,t,n){if(void 0!==t.handles&&void 0!==t.handles.points&&!1!==t.visible){for(var a=0;a<t.handles.points.length;a++){var o=x.cornerstone.pixelToCanvas(e,t.handles.points[a]);if(x.cornerstoneMath.point.distance(o,n)<6)return a}return t.handles.textBox&&Yn(t.handles.textBox,n)?t.handles.textBox:void 0}}},{key:"_pointNearHandleAllTools",value:function(e){var t=e.currentPoints,n=e.element,a=t.canvas,o=_(n,this.name);if(o)for(var i,r=0;r<o.data.length;r++)if(void 0!==(i=this._pointNearHandle(n,o.data[r],a)))return{handleNearby:i,toolIndex:r}}},{key:"_getMouseLocation",value:function(e){var t=e.currentPoints,n=e.image,a=this.configuration;a.mouseLocation.handles.start.x=t.image.x,a.mouseLocation.handles.start.y=t.image.y,Qn(a.mouseLocation.handles.start,n)}},{key:"_checkInvalidHandleLocation",value:function(e,t){if(e.handles.points.length<2)return!0;var n;n=this._dragging?this._checkHandlesPencilMode(e,t):this._checkHandlesPolygonMode(e,t),e.handles.invalidHandlePlacement=n}},{key:"_checkHandlesPolygonMode",value:function(e,t){var n=this.configuration,a=t.element,o=n.mouseLocation.handles.start,i=e.handles.points,r=!1;return e.canComplete=!1,this._isDistanceSmallerThanCompleteSpacingCanvas(a,i[0],o)&&!Ai.end(i)&&i.length>2?(e.canComplete=!0,r=!1):r=Ai.newHandle(o,i),r}},{key:"_checkHandlesPencilMode",value:function(e,t){var n=this.configuration.mouseLocation.handles.start,a=e.handles.points,o=Ai.newHandle(n,a);return!1===o&&(o=this._invalidHandlePencilMode(e,t)),o}},{key:"_invalidHandlePencilMode",value:function(e,t){var n=this.configuration,a=t.element,o=n.mouseLocation.handles.start,i=e.handles.points;if(this._isDistanceSmallerThanCompleteSpacingCanvas(a,i[0],o))return e.canComplete=!0,!1;e.canComplete=!1;for(var r=1;r<i.length-1;r++)if(this._isDistanceSmallerThanSpacing(a,i[r],o))return!0;return!1}},{key:"_isDistanceSmallerThanCompleteSpacingCanvas",value:function(e,t,n){var a,o=x.cornerstone.pixelToCanvas(e,t),i=x.cornerstone.pixelToCanvas(e,n);return"Mouse"===this._drawingInteractionType?a=this.configuration.completeHandleRadius:"Touch"===this._drawingInteractionType&&(a=this.configuration.completeHandleRadiusTouch),this._compareDistanceToSpacing(e,o,i,"<",a)}},{key:"_isDistanceSmallerThanSpacing",value:function(e,t,n){return this._compareDistanceToSpacing(e,t,n,"<")}},{key:"_isDistanceLargerThanSpacing",value:function(e,t,n){return this._compareDistanceToSpacing(e,t,n,">")}},{key:"_compareDistanceToSpacing",value:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:">",o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:this.configuration.spacing;return">"===a?x.cornerstoneMath.point.distance(t,n)>o:x.cornerstoneMath.point.distance(t,n)<o}},{key:"_activateDraw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Mouse";this._drawing=!0,this._drawingInteractionType=t,Je.isMultiPartToolActive=!0,rt(this.element),e.addEventListener(b.MOUSE_DOWN,this._drawingMouseDownCallback),e.addEventListener(b.MOUSE_MOVE,this._drawingMouseMoveCallback),e.addEventListener(b.MOUSE_DOUBLE_CLICK,this._drawingMouseDoubleClickCallback),e.addEventListener(b.MOUSE_DRAG,this._drawingMouseDragCallback),e.addEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.addEventListener(b.TOUCH_START,this._drawingMouseMoveCallback),e.addEventListener(b.TOUCH_START,this._drawingTouchStartCallback),e.addEventListener(b.TOUCH_DRAG,this._drawingTouchDragCallback),e.addEventListener(b.TOUCH_END,this._drawingMouseUpCallback),e.addEventListener(b.DOUBLE_TAP,this._drawingDoubleTapClickCallback),x.cornerstone.updateImage(e)}},{key:"_deactivateDraw",value:function(e){this._drawing=!1,Je.isMultiPartToolActive=!1,this._activeDrawingToolReference=null,this._drawingInteractionType=null,it(this.element,this.svgCursor),e.removeEventListener(b.MOUSE_DOWN,this._drawingMouseDownCallback),e.removeEventListener(b.MOUSE_MOVE,this._drawingMouseMoveCallback),e.removeEventListener(b.MOUSE_DOUBLE_CLICK,this._drawingMouseDoubleClickCallback),e.removeEventListener(b.MOUSE_DRAG,this._drawingMouseDragCallback),e.removeEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.removeEventListener(b.TOUCH_START,this._drawingTouchStartCallback),e.removeEventListener(b.TOUCH_DRAG,this._drawingTouchDragCallback),e.removeEventListener(b.TOUCH_START,this._drawingMouseMoveCallback),e.removeEventListener(b.TOUCH_END,this._drawingMouseUpCallback),x.cornerstone.updateImage(e)}},{key:"_activateModify",value:function(e){Je.isToolLocked=!0,e.addEventListener(b.MOUSE_UP,this._editMouseUpCallback),e.addEventListener(b.MOUSE_DRAG,this._editMouseDragCallback),e.addEventListener(b.MOUSE_CLICK,this._editMouseUpCallback),e.addEventListener(b.TOUCH_END,this._editMouseUpCallback),e.addEventListener(b.TOUCH_DRAG,this._editTouchDragCallback),x.cornerstone.updateImage(e)}},{key:"_deactivateModify",value:function(e){Je.isToolLocked=!1,e.removeEventListener(b.MOUSE_UP,this._editMouseUpCallback),e.removeEventListener(b.MOUSE_DRAG,this._editMouseDragCallback),e.removeEventListener(b.MOUSE_CLICK,this._editMouseUpCallback),e.removeEventListener(b.TOUCH_END,this._editMouseUpCallback),e.removeEventListener(b.TOUCH_DRAG,this._editTouchDragCallback),x.cornerstone.updateImage(e)}},{key:"passiveCallback",value:function(e){this._closeToolIfDrawing(e)}},{key:"enabledCallback",value:function(e){this._closeToolIfDrawing(e)}},{key:"disabledCallback",value:function(e){this._closeToolIfDrawing(e)}},{key:"_closeToolIfDrawing",value:function(e){if(this._drawing){var t=this.configuration.currentHandle;this._endDrawing(e,t),x.cornerstone.updateImage(e)}}},{key:"fireModifiedEvent",value:function(e,t){C(e,b.MEASUREMENT_MODIFIED,{toolName:this.name,element:e,measurementData:t})}},{key:"fireCompletedEvent",value:function(e,t){C(e,b.MEASUREMENT_COMPLETED,{toolName:this.name,element:e,measurementData:t})}},{key:"cancelDrawing",value:function(e){if(this._drawing){var t=_(e,this.name),n=this.configuration,a=t.data[n.currentTool];a.active=!1,a.highlight=!1,a.handles.invalidHandlePlacement=!1,n.currentHandle=0,n.currentTool=-1,a.canComplete=!1,P(e,this.name,a),this._deactivateDraw(e),x.cornerstone.updateImage(e)}}},{key:"newImageCallback",value:function(e){var t=this.configuration;if(this._drawing&&this._activeDrawingToolReference){var n=e.detail.element,a=this._activeDrawingToolReference;a.active=!1,a.highlight=!1,a.handles.invalidHandlePlacement=!1;var o=a.handles.points;o[t.currentHandle-1].lines.push(o[0]),t.currentHandle=0,t.currentTool=-1,a.canComplete=!1,this._deactivateDraw(n),x.cornerstone.updateImage(n)}}},{key:"spacing",get:function(){return this.configuration.spacing},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehand spacing to a value other than a number.");this.configuration.spacing=e,x.cornerstone.updateImage(this.element)}},{key:"activeHandleRadius",get:function(){return this.configuration.activeHandleRadius},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehand activeHandleRadius to a value other than a number.");this.configuration.activeHandleRadius=e,x.cornerstone.updateImage(this.element)}},{key:"completeHandleRadius",get:function(){return this.configuration.completeHandleRadius},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehand completeHandleRadius to a value other than a number.");this.configuration.completeHandleRadius=e,x.cornerstone.updateImage(this.element)}},{key:"alwaysShowHandles",get:function(){return this.configuration.alwaysShowHandles},set:function(e){if("boolean"!=typeof e)throw new Error("Attempting to set freehand alwaysShowHandles to a value other than a boolean.");this.configuration.alwaysShowHandles=e,x.cornerstone.updateImage(this.element)}},{key:"invalidColor",get:function(){return this.configuration.invalidColor},set:function(e){this.configuration.invalidColor=e,x.cornerstone.updateImage(this.element)}}]),t}(ka);function Ui(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()}var Ni=H("tools:annotation:LengthTool"),Bi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Length",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Va};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image){var t=e.currentPoints.image,n=t.x,a=t.y;return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{start:{x:n,y:a,highlight:!0,active:!1},end:{x:n,y:a,highlight:!0,active:!0},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}}}Ni.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n){return t&&t.handles&&t.handles.start&&t.handles.end?!1!==t.visible&&_a(e,t.handles.start,t.handles.end,n)<25:(Ni.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!1)}},{key:"updateCachedStats",value:function(e,t,n){var a=yo(e),o=a.rowPixelSpacing,i=a.colPixelSpacing,r=(n.handles.end.x-n.handles.start.x)*(i||1),s=(n.handles.end.y-n.handles.start.y)*(o||1),l=Math.sqrt(r*r+s*s);n.length=l,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=this.configuration,o=a.handleRadius,i=a.drawHandlesOnHover,r=_(e.currentTarget,this.name);if(r)for(var s=on(n.canvasContext.canvas),l=n.image,c=n.element,u=yo(l),d=u.rowPixelSpacing,h=u.colPixelSpacing,v=_t.getToolWidth(),g=function(e){var a=r.data[e];if(!1===a.visible)return"continue";wt(s,function(e){sn(e,t.configuration);var r=zt.getColorIfActive(a);Dt(e,c,a.handles.start,a.handles.end,{color:r});var s={color:r,handleRadius:o,drawHandlesIfActive:i};if(Wt(e,n,a.handles,s),!a.handles.textBox.hasMoved){var u={x:Math.max(a.handles.start.x,a.handles.end.x)};u.x===a.handles.start.x?u.y=a.handles.start.y:u.y=a.handles.end.y,a.handles.textBox.x=u.x,a.handles.textBox.y=u.y}!0===a.invalidated&&(a.length?t.throttledUpdateCachedStats(l,c,a):t.updateCachedStats(l,c,a));var g=function(e,t,n){var a="mm";t&&n||(a="pixels");return e.unit=a,"".concat(e.length.toFixed(2)," ").concat(a)}(a,d,h);nn(e,c,a.handles.textBox,g,a.handles,m,r,v,10,!0)})},f=0;f<r.data.length;f++)g(f);function m(e){var t={x:(e.start.x+e.end.x)/2,y:(e.start.y+e.end.y)/2};return[e.start,t,e.end]}}}]),t}(ka),Fi=function(e,t,n,a,o){if(!e)throw new Error("getRGBPixels: parameter element must not be undefined");t=Math.round(t),n=Math.round(n);var i,r,s,l=x.cornerstone.getEnabledElement(e),c=[],u=0,d=l.image.getPixelData();if(l.image.color)for(r=0;r<o;r++)for(s=0;s<a;s++){var h=d[i=4*((r+n)*l.image.columns+(s+t))],v=d[i+1],g=d[i+2],f=d[i+3];c[u++]=h,c[u++]=v,c[u++]=g,c[u++]=f}return c},Vi=H("tools:annotation:ProbeTool"),qi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Probe",supportedInteractionTypes:["Mouse","Touch"],svgCursor:qa};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image)return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0}}};Vi.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n){var a=t&&t.handles&&t.handles.end;if(a||Vi.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!a||!1===t.visible)return!1;var o=x.cornerstone.pixelToCanvas(e,t.handles.end);return x.cornerstoneMath.point.distance(o,n)<5}},{key:"updateCachedStats",value:function(e,t,n){var a=Math.round(n.handles.end.x),o=Math.round(n.handles.end.y),i={};a>=0&&o>=0&&a<e.columns&&o<e.rows&&(i.x=a,i.y=o,e.color?i.storedPixels=Fi(t,a,o,1,1):(i.storedPixels=x.cornerstone.getStoredPixels(t,a,o,1,1),i.sp=i.storedPixels[0],i.mo=i.sp*e.slope+e.intercept,i.suv=Qo(e,i.sp))),n.cachedStats=i,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=this.configuration.handleRadius,o=_(e.currentTarget,this.name);if(o)for(var i=on(n.canvasContext.canvas),r=n.image,s=n.element,l=$t.getFontSize(),c=function(e){var c=o.data[e];if(!1===c.visible)return"continue";wt(i,function(e){var o,i,u=zt.getColorIfActive(c);Wt(e,n,c.handles,{handleRadius:a,color:u}),!0===c.invalidated&&(c.cachedStats?t.throttledUpdateCachedStats(r,s,c):t.updateCachedStats(r,s,c));var d=c.cachedStats,h=d.x,v=d.y,g=d.storedPixels,f=d.sp,m=d.mo,p=d.suv;if(h>=0&&v>=0&&h<r.columns&&v<r.rows){o="".concat(h,", ").concat(v),r.color?i="R: ".concat(g[0]," G: ").concat(g[1]," B: ").concat(g[2]):(i="SP: ".concat(f," MO: ").concat(parseFloat(m.toFixed(3))),p&&(i+=" SUV: ".concat(parseFloat(p.toFixed(3)))));var y={x:c.handles.end.x+3,y:c.handles.end.y-3},T=x.cornerstone.pixelToCanvas(n.element,y);tn(e,i,T.x,T.y+l+5,u),tn(e,o,T.x,T.y,u)}})},u=0;u<o.data.length;u++)c(u)}}]),t}(ka),ji=H("tools:annotation:RectangleRoiTool"),zi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"RectangleRoi",supportedInteractionTypes:["Mouse","Touch"],configuration:{},svgCursor:ja};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=Co(e.updateCachedStats,110),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){if(e&&e.currentPoints&&e.currentPoints.image)return{visible:!0,active:!0,color:void 0,invalidated:!0,handles:{start:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!1},end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0},initialRotation:e.viewport.rotation,textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}};ji.error("required eventData not supplied to tool ".concat(this.name,"'s createNewMeasurement"))}},{key:"pointNearTool",value:function(e,t,n,a){var o=t&&t.handles&&t.handles.start&&t.handles.end;if(o||ji.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;var i="mouse"===a?15:25,r=x.cornerstone.pixelToCanvas(e,t.handles.start),s=x.cornerstone.pixelToCanvas(e,t.handles.end),l={left:Math.min(r.x,s.x),top:Math.min(r.y,s.y),width:Math.abs(r.x-s.x),height:Math.abs(r.y-s.y)};return x.cornerstoneMath.rect.distanceToPoint(l,n)<i}},{key:"updateCachedStats",value:function(e,t,n){var a=(x.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=yo(e),i=function(e,t,n,a,o){var i,r=Wi(n.start,n.end),s=function(e,t){for(var n=0,a=0,o=0,i=0,r=e?e[0]:null,s=e?e[0]:null,l=t.top;l<t.top+t.height;l++)for(var c=t.left;c<t.left+t.width;c++)n+=e[i],a+=e[i]*e[i],r=Math.min(r,e[i]),s=Math.max(s,e[i]),o++,i++;if(0===o)return{count:o,mean:0,variance:0,stdDev:0,min:0,max:0};var u=n/o,d=a/o-u*u;return{count:o,mean:u,variance:d,stdDev:Math.sqrt(d),min:r,max:s}}(x.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),r);"PT"===a&&(i={mean:Qo(e,s.mean,!0)||0,stdDev:Qo(e,s.stdDev,!0)||0});return{area:r.width*(o.colPixelSpacing||1)*(r.height*(o.rowPixelSpacing||1))||0,count:s.count||0,mean:s.mean||0,variance:s.variance||0,stdDev:s.stdDev||0,min:s.min||0,max:s.max||0,meanStdDevSUV:i}}(e,t,n.handles,a,o);n.cachedStats=i,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=_(e.currentTarget,this.name);if(n){var a=e.detail,o=a.image,i=a.element,r=_t.getToolWidth(),s=this.configuration,l=s.handleRadius,c=s.drawHandlesOnHover,u=on(a.canvasContext.canvas),d=yo(o),h=d.rowPixelSpacing,v=d.colPixelSpacing,g=(x.cornerstone.metaData.get("generalSeriesModule",o.imageId)||{}).modality,f=h&&v;wt(u,function(e){for(var s=0;s<n.data.length;s++){var u=n.data[s];if(!1!==u.visible){var d=zt.getColorIfActive(u),h={color:d,handleRadius:l,drawHandlesIfActive:c};if(sn(e,t.configuration),an(e,i,u.handles.start,u.handles.end,{color:d},"pixel",u.handles.initialRotation),Wt(e,a,u.handles,h),!0===u.invalidated&&(u.cachedStats?t.throttledUpdateCachedStats(o,i,u):t.updateCachedStats(o,i,u)),!u.handles.textBox.hasMoved){var v=oi(a.viewport,u.handles);Object.assign(u.handles.textBox,v)}var m=Yi(e,o.color,u.cachedStats,g,f,t.configuration);u.unit=Gi(g,t.configuration.showHounsfieldUnits),nn(e,i,u.handles.textBox,m,u.handles,function(e){return t=e.start,n=e.end,a=Wi(t,n),o=a.left,i=a.top,r=a.width,s=a.height,[{x:o+r/2,y:i},{x:o,y:i+s/2},{x:o+r/2,y:i+s},{x:o+r,y:i+s/2}];var t,n,a,o,i,r,s},d,r,10,!0)}}})}}}]),t}(ka);function Wi(e,t){return{left:Math.min(e.x,t.x),top:Math.min(e.y,t.y),width:Math.abs(e.x-t.x),height:Math.abs(e.y-t.y)}}function Gi(e,t){return"CT"===e&&!1!==t?"HU":""}function Yi(e,t,n,a,o){var i=n.area,r=n.mean,s=n.stdDev,l=n.min,c=n.max,u=n.meanStdDevSUV,d=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},h=d.showMinMax||!1,v=[],g=[];if(!t){var f=u&&0!==u.mean,m=Gi(a,d.showHounsfieldUnits),p="Mean: ".concat(ii(r.toFixed(2))," ").concat(m),x="Std Dev: ".concat(ii(s.toFixed(2))," ").concat(m);if(f){for(var y="".concat(" SUV: ").concat(ii(u.mean.toFixed(2))),T="".concat(" SUV: ").concat(ii(u.stdDev.toFixed(2))),b=Math.floor(e.measureText("".concat(x,"     ")).width);e.measureText(p).width<b;)p+=" ";g.push("".concat(p).concat(y)),g.push("".concat(x,"     ").concat(T))}else g.push("".concat(p,"     ").concat(x));if(h){for(var C="Min: ".concat(l," ").concat(m),M="Max: ".concat(c," ").concat(m),E=f?Math.floor(e.measureText("".concat(x,"     ")).width):Math.floor(e.measureText("".concat(p,"     ")).width);e.measureText(C).width<E;)C+=" ";g.push("".concat(C).concat(M))}}return v.push(function(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ii(e.toFixed(2))).concat(n)}(i,o)),g.forEach(function(e){return v.push(e)}),v}var Xi=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"TextMarker",supportedInteractionTypes:["Mouse","Touch"],configuration:{markers:[],current:"",ascending:!0,loop:!1,changeTextCallback:Ki},svgCursor:za};return(e=u()(this,h()(t).call(this,n,a))).touchPressCallback=e._changeText.bind(na()(e)),e.doubleClickCallback=e._changeText.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"createNewMeasurement",value:function(e){var t=this.configuration;if(t.current){var n={visible:!0,active:!0,text:t.current,color:void 0,handles:{end:{x:e.currentPoints.image.x,y:e.currentPoints.image.y,highlight:!0,active:!0,hasBoundingBox:!0}}},a={left:0,top:0,width:e.image.width,height:e.image.height};if(x.cornerstoneMath.point.insideRect(n.handles.end,a)){var o=t.markers.indexOf(t.current);return(o+=t.ascending?1:-1)>=t.markers.length?o=t.loop?0:-1:o<0&&(o=t.loop?t.markers.length:-1),t.current=t.markers[o],n}}}},{key:"pointNearTool",value:function(e,t,n){if(!1===t.visible)return!1;if(t.handles.end.boundingBox){var a=x.cornerstoneMath.rect.distanceToPoint(t.handles.end.boundingBox,n),o=Yn(t.handles.end,n);return a<10||o}}},{key:"updateCachedStats",value:function(){}},{key:"renderToolData",value:function(e){var t=e.detail,n=this.configuration,a=_(t.element,this.name);if(a)for(var o=on(t.canvasContext.canvas),i=function(e){var i=a.data[e];if(!1===i.visible)return"continue";var r=zt.getColorIfActive(i);wt(o,function(e){sn(e,n);var a=x.cornerstone.pixelToCanvas(t.element,i.handles.end);i.handles.end.boundingBox=tn(e,i.text,a.x,a.y-10,r,{centering:{x:!0,y:!0}})})},r=0;r<a.data.length;r++)i(r)}},{key:"_changeText",value:function(e){var t,n=e.detail,a=n.element,o=n.currentPoints;function i(e,t,n){!0===n?P(a,this.name,e):e.text=t,e.active=!1,x.cornerstone.updateImage(a)}var r=this.configuration,s=o.canvas,l=_(a,this.name);if(l)for(var c=0;c<l.data.length;c++)if(t=l.data[c],this.pointNearTool(a,t,s))return t.active=!0,x.cornerstone.updateImage(a),r.changeTextCallback(t,n,i),e.stopImmediatePropagation(),e.preventDefault(),void e.stopPropagation()}}]),t}(ka),Ki=function(e,t,n){n(e,prompt("Change your annotation:"))},Zi=(H("tools:BrushTool"),tt("segmentation")),$i=Zi.getters,Ji=Zi.configuration,Qi=(Zi.state,function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return(e=u()(this,h()(t).call(this,n,{name:"Brush",supportedInteractionTypes:["Mouse","Touch"],configuration:{}}))).touchDragCallback=e._paint.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"renderBrush",value:function(e){var t,n=e.detail,a=n.viewport;if(this._drawing?t=this._lastImageCoords:this._mouseUpRender?(t=this._lastImageCoords,this._mouseUpRender=!1):t=nt.state.mousePositionImage,t){var o=n.image,i=o.rows,r=o.columns,s=t,l=s.x,c=s.y;if(!(l<0||l>r||c<0||c>i)){var u=Ji.radius,d=n.canvasContext,h=n.element,v=$i.brushColor(h,this._drawing);d.setTransform(1,0,0,1,0,0);var g=x.cornerstone,f=u*a.scale,m=g.pixelToCanvas(h,t);d.beginPath(),d.strokeStyle=v,d.ellipse(m.x,m.y,f,f,0,0,2*Math.PI),d.stroke()}}}},{key:"_paint",value:function(e){var t=e.detail,n=t.element,a=t.image,o=a.rows,i=a.columns,r=t.currentPoints.image,s=r.x,l=r.y;if(!(s<0||s>i||l<0||l>o)){var c=me(Ji.radius,o,i,s,l),u=this.paintEventData,d=u.labelmap2D,h=u.labelmap3D,v=u.shouldErase;$(c,d.pixelData,h.activeSegmentIndex,i,v),Se(n),x.cornerstone.updateImage(e.detail.element)}}}]),t}(sa)),er=H("tools:SphericalBrushTool"),tr=tt("segmentation"),nr=tr.getters,ar=tr.setters,or=tr.configuration,ir=function(e){function t(){var e;arguments.length>0&&void 0!==arguments[0]&&arguments[0];r()(this,t);return(e=u()(this,h()(t).call(this,{name:"SphericalBrush",supportedInteractionTypes:["Mouse","Touch"],configuration:{alwaysEraseOnClick:!1}}))).touchDragCallback=e._paint.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_startPainting",value:function(e){var t,n=e.detail,a=n.element,o=n.image,i=x.cornerstone,r=or.radius,s=o.rows,l=o.columns,c=Math.max(o.rowPixelSpacing,o.columnPixelSpacing),u=_(a,"stack").data[0].imageIds,d=nr.labelmap2D(a),h=d.labelmap2D,v=d.labelmap3D,g=d.currentImageIdIndex,f=d.activeLabelmapIndex,m=this._isCtrlDown(n)||this.configuration.alwaysEraseOnClick,p=i.metaData.get("imagePlaneModule",o.imageId);if(p){var y=p.imagePositionPatient;t=this._getImagesInRange(g,y,u,r,c)}else er.warn("No imagePlane metadata found for image, defaulting to circle brush application."),t=[{imageIdIndex:g,radiusOnImage:r}];if(this.paintEventData={labelmap2D:h,labelmap3D:v,currentImageIdIndex:g,activeLabelmapIndex:f,shouldErase:m,imagesInRange:t},or.storeHistory){for(var T=[],b=0;b<t.length;b++){var C=t[b].imageIdIndex,M=nr.labelmap2DByImageIdIndex(v,C,s,l).pixelData.slice();T.push(M)}this.paintEventData.previousPixeldataForImagesInRange=T}}},{key:"_paint",value:function(e){var t=e.detail,n=t.element,a=t.image,o=a.rows,i=a.columns,r=t.currentPoints.image,s=r.x,l=r.y;if(!(s<0||s>i||l<0||l>o)){for(var c=this.paintEventData,u=c.labelmap3D,d=c.imagesInRange,h=c.shouldErase,v=0;v<d.length;v++){var g=d[v],f=g.imageIdIndex;$(me(g.radiusOnImage,o,i,s,l),nr.labelmap2DByImageIdIndex(u,f,o,i).pixelData,u.activeSegmentIndex,i,h)}Se(n),x.cornerstone.updateImage(e.detail.element)}}},{key:"_getImagesInRange",value:function(e,t,n,a,o){for(var i=a*o,r=[{imageIdIndex:e,radiusOnImage:a}],s=e+1;s<n.length;s++){var l=this._getRadiusOnImage(n[s],t,i,o);if(!l)break;r.push({imageIdIndex:s,radiusOnImage:l})}for(var c=e-1;c>=0;c--){var u=this._getRadiusOnImage(n[c],t,i,o);if(!u)break;r.push({imageIdIndex:c,radiusOnImage:u})}return r}},{key:"_getRadiusOnImage",value:function(e,t,n,a){var o=x.cornerstone.metaData.get("imagePlaneModule",e);if(o){var i=o.imagePositionPatient,r=Math.sqrt(Math.pow(i[0]-t[0],2)+Math.pow(i[1]-t[1],2)+Math.pow(i[2]-t[2],2));if(!(r>n))return Math.floor(Math.sqrt(Math.pow(n,2)-Math.pow(r,2))/a)}else er.warn("Can't find imagePlane metadata for image, cancelling spherical brushing on: ".concat(e,","))}},{key:"_endPainting",value:function(e){for(var t=this.paintEventData,n=t.labelmap3D,a=t.imagesInRange,o=[],i=0;i<a.length;i++){for(var r=a[i].imageIdIndex,s=n.labelmaps2D[r],l=new Set(s.pixelData).values(),c=[],u=!1;!u;){var d=l.next();(u=d.done)||c.push(d.value)}if(s.segmentsOnLabelmap=c,or.storeHistory){var h=this.paintEventData.previousPixeldataForImagesInRange[i],v=n.labelmaps2D[r].pixelData;o.push({imageIdIndex:r,diff:ke(h,v)})}}ar.pushState(this.element,o)}}]),t}(Qi),rr=H("util:segmentation:operations:correction");function sr(e,t){var n=t.pixelData,a=t.segmentIndex,o=t.segmentationMixinType;if("freehandSegmentationMixin"===o){var i=function(e,t){for(var n=t.pixelData,a=t.points,o=e.detail.image,i=o.width,r=o.height,s=[],l=0;l<a.length;l++){var c=a[l],u=Math.floor(c.x),d=Math.floor(c.y);u=Jn(u,0,i-1),d=Jn(d,0,r-1);var h=s[s.length-1];h&&u===h.x&&d===h.y||s.push({x:u,y:d,segment:n[d*i+u]})}return s}(e,t),r=function(e,t){for(var n=!0,a=!0,o=0;o<e.length;o++){var i=e[o];if(i.segment===t?a=!1:n=!1,!n&&!a)break}if(a)return{isScissorOperation:!0,operation:"fillInsideFreehand"};if(n)return{isScissorOperation:!0,operation:"eraseInsideFreehand"};return{isScissorOperation:!1}}(i,a);if(r.isScissorOperation)"fillInsideFreehand"===r.operation?(rr.warn("The line never intersects a segment."),Cr(e,t)):"eraseInsideFreehand"===r.operation&&(rr.warn("The line is only ever inside the segment."),gr(e,t));else{var s=new Uint8Array(n.length);(function(e,t){var n=e[0].segment===t,a=[];a.push({additive:!n,nodes:[]});for(var o=0,i=0;i<e.length;i++){var r=e[i];n?(a[o].nodes.push(r),r.segment!==t&&(o++,n=!n,a.push({additive:!0,nodes:[]}),a[o].nodes.push(e[i-1]),a[o].nodes.push(r))):(a[o].nodes.push(r),r.segment===t&&(o++,n=!n,a.push({additive:!1,nodes:[]}),a[o].nodes.push(e[i-1]),a[o].nodes.push(r)))}return a.pop(),a.shift(),a})(i,a).forEach(function(t){!function(e,t,n,a,o){var i=o.detail.image,r=i.width,s=i.height,l=e.nodes,c=e.additive,u=c?0:1,d=function(e){return e.y*r+e.x},h=function(e){return{x:e%r,y:Math.floor(e/r)}};c?rr.warn("additive operation..."):rr.warn("subtractive operation...");for(var v=function(e){for(var t=[],n=0;n<e.length-1;n++)t.push(e[n]),t.push.apply(t,K()(ye(e[n],e[n+1])));t.push[e[e.length-1]];for(var a=[],o=[],i=0;i<t.length-1;i++){var r=ur(t[i],t[i+1]),s=r.left,l=r.right;a.push(s),o.push(l)}return{pixelPath:t,leftPath:a,rightPath:o}}(l),g=v.pixelPath,f=v.leftPath,m=v.rightPath,p=g[0],x={xMin:p.x,xMax:p.x,yMin:p.y,yMax:p.y},y=0;y<n.length;y++)if(t[y]===a){var T=h(y);lr(x,T),n[y]=1}else n[y]=0;for(var b=0;b<g.length;b++){var C=g[b];n[d(C)]=2,lr(x,C)}!function(e,t,n){e.xMax=Math.min(e.xMax+2,n),e.xMin=Math.max(e.xMin-2,0),e.yMax=Math.min(e.yMax+2,t),e.yMin=Math.max(e.yMin-2,0)}(x,s,r);var M=x.xMin,E=x.xMax,I=x.yMin,w=x.yMax;function S(e,t){if(!(e>=E||e<M||t>=w||t<I))return n[t*r+e]}for(var k=0,_=0,P=0;P<f.length;P++){var D=f[P],L=n[d(D)];L===u&&De(D,s,r)&&(k+=cr(D,3,n,S,r));var O=m[P],A=n[d(O)];A===u&&De(O,s,r)&&(_+=cr(O,4,n,S,r))}if(0===k||0===_)return;for(var R=c?a:0,H=k<_?3:4,U=0;U<n.length;U++)n[U]===H&&(t[U]=R);if(R===a)for(var N=0;N<g.length;N++)t[d(g[N])]=a;else for(var B=0;B<g.length;B++){var F=d(g[B]);t[F]===a&&(t[F]=0)}}(t,n,s,a,e)})}}else rr.error("correction operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function lr(e,t){var n=t.x,a=t.y;n<e.xMin&&(e.xMin=n),n>e.xMax&&(e.xMax=n),a<e.yMin&&(e.yMin=a),a>e.yMax&&(e.yMax=a)}function cr(e,t,n,a,o){for(var i=ue(a,[e.x,e.y]).flooded,r=0;r<i.length;r++){var s=i[r];n[s[1]*o+s[0]]=t}return i.length}function ur(e,t){var n={x:t.x-e.x,y:t.y-e.y};return-1===n.x&&1===n.y?{left:{x:e.x-1,y:e.y-1},right:{x:e.x+1,y:e.y+1}}:0===n.x&&1===n.y?{left:{x:e.x-1,y:e.y},right:{x:e.x+1,y:e.y}}:1===n.x&&1===n.y?{left:{x:e.x-1,y:e.y+1},right:{x:e.x+1,y:e.y-1}}:1===n.x&&0===n.y?{left:{x:e.x,y:e.y+1},right:{x:e.x,y:e.y-1}}:1===n.x&&-1===n.y?{left:{x:e.x+1,y:e.y+1},right:{x:e.x-1,y:e.y-1}}:0===n.x&&-1===n.y?{left:{x:e.x+1,y:e.y},right:{x:e.x-1,y:e.y}}:-1===n.x&&-1===n.y?{left:{x:e.x+1,y:e.y-1},right:{x:e.x-1,y:e.y+1}}:-1===n.x&&0===n.y?{left:{x:e.x,y:e.y-1},right:{x:e.x,y:e.y+1}}:void rr.error("Unable to find left and right paths for flood fill ",e,t,n)}function dr(e,t){for(var n=e[0],a=e[1],o=!1,i=0,r=t.length-1;i<t.length;r=i++){var s=t[i][0],l=t[i][1],c=t[r][0],u=t[r][1];l>a!=u>a&&n<(c-s)*(a-l)/(u-l)+s&&(o=!o)}return o}var hr=H("util:segmentation:operations:eraseInsideFreehand");function vr(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.points,o=t.segmentationMixinType;if("freehandSegmentationMixin"===o){var i=e.detail.image,r=a.map(function(e){return[e.x,e.y]}),s=fe(r,i),l=ee()(s,2),c=l[0],u=l[1];n?ae(e,t,function(e){return dr([e.x,e.y],r)},c,u):oe(e,t,function(e){return dr([e.x,e.y],r)},c,u)}else hr.error("eraseInsideFreehand operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function gr(e,t){vr(e,t,!0)}function fr(e,t){vr(e,t,!1)}var mr=H("util:segmentation:operations:eraseInsideRectangle");function pr(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.points,o=t.segmentationMixinType;if("rectangleSegmentationMixin"===o){var i=e.detail.image,r=fe(a.map(function(e){return[e.x,e.y]}),i),s=ee()(r,2),l=s[0],c=s[1];n?ae(e,t,function(){return!0},l,c):J(e,t,l,c)}else mr.error("eraseInsideRectangle operation requires rectangleSegmentationMixin operationData, recieved ".concat(o))}function xr(e,t){pr(e,t,!0)}function yr(e,t){pr(e,t,!1)}var Tr=H("util:segmentation:operations:fillInsideFreehand");function br(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.points,o=t.segmentationMixinType;if("freehandSegmentationMixin"===o){var i=e.detail.image,r=a.map(function(e){return[e.x,e.y]}),s=fe(r,i),l=ee()(s,2),c=l[0],u=l[1];n?le(e,t,function(e){return dr([e.x,e.y],r)},c,u):ce(e,t,function(e){return dr([e.x,e.y],r)},c,u)}else Tr.error("eraseInsideFreehand operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function Cr(e,t){br(e,t,!0)}function Mr(e,t){br(e,t,!1)}var Er=H("util:segmentation:operations:fillInsideRectangle");function Ir(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.points,o=t.segmentationMixinType;if("rectangleSegmentationMixin"===o){var i=e.detail.image,r=fe(a.map(function(e){return[e.x,e.y]}),i),s=ee()(r,2),l=s[0],c=s[1];n?le(e,t,function(){return!0},l,c):ie(e,t,l,c)}else Er.error("eraseInsideRectangle operation requires rectangleSegmentationMixin operationData, recieved ".concat(o))}function wr(e,t){Ir(e,t,!0)}function Sr(e,t){Ir(e,t,!1)}var kr=H("util:segmentation:operations:fillCircle");function _r(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.segmentationMixinType;if("circleSegmentationMixin"===a){var o=e.detail,i=ge(e),r=ee()(i,2),s=r[0],l=r[1],c=ve(o.handles.start,o.handles.end);n?le(e,t,function(e){return ti(c,e)},s,l):ce(e,t,function(e){return ti(c,e)},s,l)}else kr.error("fillInsideCircle operation requires circleSegmentationMixin operationData, recieved ".concat(a))}function Pr(e,t){_r(e,t,!0)}function Dr(e,t){_r(e,t,!1)}var Lr=H("util:segmentation:operations:eraseInsideCircle");function Or(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.segmentationMixinType;if("circleSegmentationMixin"===a){var o=e.detail,i=ge(e),r=ee()(i,2),s=r[0],l=r[1],c=ve(o.handles.start,o.handles.end);n?ae(e,t,function(e){return ti(c,e)},s,l):oe(e,t,function(e){return ti(c,e)},s,l)}else Lr.error("eraseInsideCircle operation requires circleSegmentationMixin operationData, recieved ".concat(a))}function Ar(e,t){Or(e,t,!0)}function Rr(e,t){Or(e,t,!1)}var Hr=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"FreehandScissors",strategies:{FILL_INSIDE:Cr,FILL_OUTSIDE:Mr,ERASE_OUTSIDE:fr,ERASE_INSIDE:gr},cursors:{FILL_INSIDE:so,FILL_OUTSIDE:co,ERASE_OUTSIDE:lo,ERASE_INSIDE:ro},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],svgCursor:so,mixins:["freehandSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(Gn),Ur=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"RectangleScissors",strategies:{FILL_INSIDE:wr,FILL_OUTSIDE:Sr,ERASE_OUTSIDE:yr,ERASE_INSIDE:xr},cursors:{FILL_INSIDE:ho,FILL_OUTSIDE:go,ERASE_OUTSIDE:vo,ERASE_INSIDE:uo},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],mixins:["rectangleSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(Gn),Nr=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"CircleScissors",strategies:{FILL_INSIDE:Pr,FILL_OUTSIDE:Dr,ERASE_OUTSIDE:Rr,ERASE_INSIDE:Ar},cursors:{FILL_INSIDE:mo,FILL_OUTSIDE:xo,ERASE_OUTSIDE:po,ERASE_INSIDE:fo},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],svgCursor:mo,mixins:["circleSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(Gn),Br=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"CorrectionScissors",strategies:{CORRECTION:sr},cursors:{CORRECTION:so},defaultStrategy:"CORRECTION",supportedInteractionTypes:["Mouse","Touch"],svgCursor:so,mixins:["polylineSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(Gn),Fr="DEFAULT",Vr={},qr={},jr={};function zr(e){if(!e)return Fr;var t=x.cornerstone.getEnabledElement(e).uuid;if(!t)throw new Error("Something went wrong when getting uuid from element");return t}var Wr={setStartLoadHandler:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!e)throw new Error("The Handler function must be defined");var n=zr(t);Vr[n]=e},getStartLoadHandler:function(e){var t=zr(e);return Vr[t]||Vr[Fr]},setEndLoadHandler:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!e)throw new Error("The Handler function must be defined");var n=zr(t);qr[n]=e},getEndLoadHandler:function(e){var t=zr(e);return qr[t]||qr[Fr]},setErrorLoadingHandler:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;if(!e)throw new Error("The Handler function must be defined");var n=zr(t);jr[n]=e},getErrorLoadingHandler:function(e){var t=zr(e);return jr[t]||jr[Fr]},removeHandlers:function(e){var t=zr(e);delete Vr[t],delete qr[t],delete jr[t]}},Gr={};function Yr(e,t){if(!Gr[e])return{};var n=Gr[e].find(function(e){return e.element===t});return n?n.options:{}}function Xr(e,t,n){if(Gr[e]){var a=Gr[e].findIndex(function(e){return e.element===t});if(-1===a)Gr[e].push({element:t,options:n});else{var o=Gr[e][a].options||{};Gr[e][a].options=Object.assign(o,n)}}else Gr[e]=[{element:t,options:n}]}var Kr=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Crosshairs",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Wa};return(e=u()(this,h()(t).call(this,n,a))).mouseDownCallback=e._chooseLocation.bind(na()(e)),e.mouseDragCallback=e._chooseLocation.bind(na()(e)),e.touchDragCallback=e._chooseLocation.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_chooseLocation",value:function(e){var t=e.detail,n=t.element;e.stopImmediatePropagation();var a=_(n,this.name);if(a){var o=n,i=x.cornerstone.getEnabledElement(o).image.imageId,r=x.cornerstone.metaData.get("imagePlaneModule",i);if(r){var s=Ut(t.currentPoints.image,r);a.data[0].synchronizationContext.getSourceElements().forEach(function(e){if(e!==o){var t=Number.MAX_VALUE,n=-1,a=_(e,"stack");if(void 0!==a){var i=a.data[0];if(i.imageIds.forEach(function(e,a){var o=x.cornerstone.metaData.get("imagePlaneModule",e);if(o&&o.imagePositionPatient&&o.rowCosines&&o.columnCosines){var i=Rt(o.imagePositionPatient),r=Rt(o.rowCosines),l=Rt(o.columnCosines).clone().cross(r.clone()),c=Math.abs(l.clone().dot(i)-l.clone().dot(s));c<t&&(t=c,n=a)}}),n!==i.currentImageIdIndex&&-1!==n&&void 0!==i.imageIds[n]){var r=Wr.getStartLoadHandler(e),l=Wr.getEndLoadHandler(e),c=Wr.getErrorLoadingHandler(e);r&&r(e),(!0===i.preventCache?x.cornerstone.loadImage(i.imageIds[n]):x.cornerstone.loadAndCacheImage(i.imageIds[n])).then(function(t){var a=x.cornerstone.getViewport(e);i.currentImageIdIndex=n,x.cornerstone.displayImage(e,t,a),l&&l(e,t)},function(t){var a=i.imageIds[n];c&&c(e,a,t)})}}}})}}}},{key:"activeCallback",value:function(e,t){var n=t.mouseButtonMask,a=t.synchronizationContext;Xr(this.name,e,{mouseButtonMask:n}),D(e,this.name),k(e,this.name,{synchronizationContext:a})}}]),t}(Gn),Zr=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"DoubleTapFitToWindow",supportedInteractionTypes:["DoubleTap"]}))}return g()(t,e),l()(t,[{key:"doubleTapCallback",value:function(e){var t=e.detail;x.cornerstone.fitToWindow(t.element)}}]),t}(Gn),$r=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"DragProbe",strategies:{default:Jr,minimal:Qr},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],svgCursor:qa};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._movingEventCallback.bind(na()(e)),e.touchEndCallback=e._endMovingEventCallback.bind(na()(e)),e.mouseDragCallback=e._movingEventCallback.bind(na()(e)),e.mouseUpCallback=e._endMovingEventCallback.bind(na()(e)),e.dragEventData={},e}return g()(t,e),l()(t,[{key:"_movingEventCallback",value:function(e){var t=e.detail,n=t.element;this.dragEventData=t,x.cornerstone.updateImage(n)}},{key:"_endMovingEventCallback",value:function(e){var t=e.detail.element;this.dragEventData={},x.cornerstone.updateImage(t)}},{key:"renderToolData",value:function(e){this.dragEventData.currentPoints&&e&&e.detail&&Boolean(Object.keys(this.dragEventData.currentPoints).length)&&(e.detail.currentPoints=this.dragEventData.currentPoints,this.applyActiveStrategy(e))}}]),t}(Gn),Jr=function(e){var t=(void 0).configuration,n=x.cornerstone,a=e.detail,o=a.element,i=a.image,r=a.currentPoints,s=a.canvasContext,l=on(s.canvas),c=zt.getActiveColor(),u=$t.getFontSize(),d=Math.round(r.image.x),h=Math.round(r.image.y);d<0||h<0||d>=i.columns||h>=i.rows||wt(l,function(e){sn(e,t);var a,s,l="".concat(d,", ").concat(h);if(i.color)a=Fi(o,d,h,1,1),s="R: ".concat(a[0]," G: ").concat(a[1]," B: ").concat(a[2]," A: ").concat(a[3]);else{var v=(a=n.getStoredPixels(o,d,h,1,1))[0],g=v*i.slope+i.intercept,f=Qo(i,v);s="SP: ".concat(v," MO: ").concat(parseFloat(g.toFixed(3))),f&&(s+=" SUV: ".concat(parseFloat(f.toFixed(3))))}var m={x:r.canvas.x+5,y:r.canvas.y-5};tn(e,s,m.x,m.y+u+5,c),tn(e,l,m.x,m.y,c)})},Qr=function(e){var t=(void 0).configuration,n=x.cornerstone,a=e.detail,o=a.element,i=a.image,r=a.currentPoints,s=a.canvasContext,l=a.isTouchEvent,c=on(s.canvas),u=zt.getActiveColor(),d=r.page.y-$t.getFontSize()/2;l&&(d=r.page.y-4*$t.getFontSize());var h=n.pageToPixel(o,r.page.x,d);h.x<0||h.y<0||h.x>=i.columns||h.y>=i.rows||wt(c,function(e){sn(e,t);var a,r=n.metaData.get("generalSeriesModule",i.imageId),s=r&&r.modality,c="";if(i.color)a=Fi(o,h.x,h.y,1,1),c="R: ".concat(a[0]," G: ").concat(a[1]," B: ").concat(a[2]);else{var d=(a=n.getStoredPixels(o,h.x,h.y,1,1))[0],v=d*i.slope+i.intercept,g=parseFloat(v.toFixed(2));if("CT"===s)c+="HU: ".concat(g);else if("PT"===s){c+=g;var f=Qo(i,d);f&&(c+=" SUV: ".concat(parseFloat(f.toFixed(2))))}else c+=g}var m=n.pixelToCanvas(o,h),p={x:12,y:-($t.getFontSize()+10)/2},x=en(e,c,5);l&&(p={x:-x/2,y:-$t.getFontSize()-10-12}),At(e,o,m,6,{color:u},"canvas"),tn(e,c,m.x+p.x,m.y+p.y,u)})},es=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Eraser",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Ga};return(e=u()(this,h()(t).call(this,n,a))).preMouseDownCallback=e._deleteAllNearbyTools.bind(na()(e)),e.preTouchStartCallback=e._deleteAllNearbyTools.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_deleteAllNearbyTools",value:function(e){var t=e.detail.currentPoints.canvas,n=e.detail.element;Je.tools.forEach(function(e){var a=_(n,e.name);a&&a.data.forEach(function(a){"function"==typeof e.pointNearTool&&e.pointNearTool(n,a,t)&&(P(n,e.name,a),x.cornerstone.updateImage(n))})});return!0}}]),t}(Gn),ts=_i.FreehandHandleData,ns=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"FreehandRoiSculptor",referencedToolName:"FreehandRoi",supportedInteractionTypes:["Mouse","Touch","DoubleTap"],mixins:["activeOrDisabledBinaryTool"],configuration:{mouseLocation:{handles:{start:{highlight:!0,active:!0}}},minSpacing:1,currentTool:null,dragColor:zt.getActiveColor(),hoverColor:zt.getToolColor(),showCursorOnHover:!0,limitRadiusOutsideRegion:!0,hoverCursorFadeAlpha:.5,hoverCursorFadeDistance:1.2},svgCursor:Fa};return(e=u()(this,h()(t).call(this,n,a))).updateOnMouseMove=!0,e.isMultiPartTool=!0,e.referencedToolName=a.referencedToolName,e._active=!1,e.activeMouseUpCallback=e.activeMouseUpCallback.bind(na()(e)),e.activeTouchEndCallback=e.activeTouchEndCallback.bind(na()(e)),e.activeMouseDragCallback=e.activeMouseDragCallback.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"renderToolData",value:function(e){var t=e.detail;if(null===this.configuration.currentTool)return!1;var n=t.element,a=this.configuration;if(!_(n,this.referencedToolName).data[a.currentTool])return!1;if(this._active){var o=t.canvasContext.canvas.getContext("2d"),i={color:this.configuration.dragColor,fill:null,handleRadius:this._toolSizeCanvas};Wt(o,t,this.configuration.mouseLocation.handles,i)}else this.configuration.showCursorOnHover&&!this._recentTouchEnd&&this._renderHoverCursor(e)}},{key:"doubleClickCallback",value:function(e){var t=e.detail;this._selectFreehandTool(t),x.cornerstone.updateImage(t.element)}},{key:"doubleTapCallback",value:function(e){var t=e.detail;this._selectFreehandTool(t),x.cornerstone.updateImage(t.element)}},{key:"preTouchStartCallback",value:function(e){return this._initialiseSculpting(e),!0}},{key:"preMouseDownCallback",value:function(e){if(this.options.mouseButtonMask.includes(e.detail.buttons))return this._initialiseSculpting(e),!0}},{key:"activeMouseDragCallback",value:function(e){var t=this.configuration;if(this._active){var n=e.detail,a=_(n.element,this.referencedToolName);if(a){var o=a.data[t.currentTool].handles.points;this._getMouseLocation(n),this._sculpt(n,o),x.cornerstone.updateImage(n.element)}}}},{key:"activeMouseUpCallback",value:function(e){this._activeEnd(e)}},{key:"activeTouchEndCallback",value:function(e){this._activeEnd(e),this._deselectAllTools(e),this._recentTouchEnd=!0}},{key:"_activeEnd",value:function(e){var t=e.detail,n=t.element,a=this.configuration;this._active=!1,Je.isMultiPartToolActive=!1,this._getMouseLocation(t),this._invalidateToolData(t),a.mouseUpRender=!0,this._deactivateSculpt(n),x.cornerstone.updateImage(t.element),function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()}(e)}},{key:"_renderHoverCursor",value:function(e){var t,n=e.detail,a=n.element,o=n.canvasContext.canvas.getContext("2d"),i=_(a,this.referencedToolName).data[this.configuration.currentTool];this._recentTouchEnd=!1,this.configuration.mouseUpRender?(t=this.configuration.mouseLocation.handles.start,this.configuration.mouseUpRender=!1):t=Je.mousePositionImage;var r=at(a,this.referencedToolName).distanceFromPointCanvas(a,i,t);if(this.configuration.mouseLocation.handles.start.x=t.x,this.configuration.mouseLocation.handles.start.y=t.y,this.configuration.limitRadiusOutsideRegion){var s=r;r=this._limitCursorRadiusCanvas(n,r),s>this.configuration.hoverCursorFadeDistance*r&&(o.globalAlpha=this.configuration.hoverCursorFadeAlpha)}var l={fill:null,color:this.configuration.hoverColor,handleRadius:r};Wt(o,n,this.configuration.mouseLocation.handles,l),this.configuration.limitRadiusOutsideRegion&&(o.globalAlpha=1)}},{key:"newImageCallback",value:function(e){this._deselectAllTools(e)}},{key:"enabledCallback",value:function(e){this._deselectAllTools(e)}},{key:"passiveCallback",value:function(e){this._deselectAllTools(e)}},{key:"disabledCallback",value:function(e){this._deselectAllTools(e)}},{key:"_selectFreehandTool",value:function(e){var t=this.configuration,n=e.element,a=this._getClosestFreehandToolOnElement(n,e);void 0!==a&&(t.currentTool=a,rt(n))}},{key:"_activateFreehandTool",value:function(e,t){var n=_(e,this.referencedToolName).data;this.configuration.currentTool=t;for(var a=0;a<n.length;a++)n[a].active=a===t}},{key:"_initialiseSculpting",value:function(e){var t=e.detail,n=this.configuration,a=t.element;null===n.currentTool&&(this._selectFreehandTool(t),null===n.currentTool)||(this._active=!0,Je.isMultiPartToolActive=!0,this._configureToolSize(t),this._getMouseLocation(t),this._activateFreehandTool(a,n.currentTool),this._activateSculpt(a),x.cornerstone.updateImage(t.element))}},{key:"_sculpt",value:function(e,t){var n=this.configuration;this._sculptData={element:e.element,image:e.image,mousePoint:e.currentPoints.image,points:t,toolSize:this._toolSizeImage,minSpacing:n.minSpacing,maxSpacing:Math.max(this._toolSizeImage,2*n.minSpacing)};var a=this._pushHandles();void 0!==a.first&&(this._insertNewHandles(a),this._consolidateHandles())}},{key:"_pushHandles",value:function(){for(var e=this._sculptData,t=e.points,n=e.mousePoint,a=e.toolSize,o={},i=0;i<t.length;i++){var r=x.cornerstoneMath.point.distance(t[i],n);r>a||(this._pushOneHandle(i,r),void 0===o.first?(o.first=i,o.last=i):o.last=i)}return o}},{key:"_pushOneHandle",value:function(e,t){var n=this._sculptData,a=n.points,o=n.mousePoint,i=n.toolSize,r=n.image,s=a[e],l=(s.x-o.x)/t,c=(s.y-o.y)/t,u={x:o.x+i*l,y:o.y+i*c};Qn(u,r),s.x=u.x,s.y=u.y;var d=this.constructor._getPreviousHandleIndex(e,a.length);a[d].lines.pop(),a[d].lines.push(s)}},{key:"_insertNewHandles",value:function(e){for(var t=this._findNewHandleIndicies(e),n=0,a=0;a<t.length;a++){var o=t[a]+1+n;this._insertHandleRadially(o),n++}}},{key:"_findNewHandleIndicies",value:function(e){for(var t=this._sculptData,n=t.points,a=t.maxSpacing,o=[],i=e.first;i<=e.last;i++)this._checkSpacing(i,n,o,a);var r=this.constructor._getNextHandleIndex(e.last,n.length);if(r!==e.first){this._checkSpacing(r,n,o,a);var s=this.constructor._getPreviousHandleIndex(e.first,n.length);s!==r&&this._checkSpacing(s,n,o,a)}return o}},{key:"_checkSpacing",value:function(e,t,n,a){var o=this.constructor._getNextHandleIndex(e,t.length);x.cornerstoneMath.point.distance(t[e],t[o])>a&&n.push(e)}},{key:"_insertHandleRadially",value:function(e){var t=this._sculptData.points,n=e-1,a=this.constructor._getNextHandleIndexBeforeInsert(e,t.length),o=this._getInsertPosition(e,n,a),i=new ts(o);t.splice(e,0,i),t[n].lines.pop(),t[n].lines.push(t[e]),_i.addLine(t,e)}},{key:"_consolidateHandles",value:function(){if(!(this._sculptData.points.length<=3)){var e=this._findCloseHandlePairs();this._mergeCloseHandles(e)}}},{key:"_findCloseHandlePairs",value:function(){for(var e=this._sculptData,t=e.points,n=e.minSpacing,a=[],o=t.length,i=0;i<o;i++){var r=this.constructor._getNextHandleIndex(i,t.length);if(x.cornerstoneMath.point.distance(t[i],t[r])<n){var s=[i,r];a.push(s),0===i&&(o-=1),i++}}return a}},{key:"_mergeCloseHandles",value:function(e){for(var t=0,n=0;n<e.length;n++){var a=this.constructor._getCorrectedPair(e[n],t);this._combineHandles(a),t++}var o=this._findCloseHandlePairs();o.length&&this._mergeCloseHandles(o)}},{key:"_combineHandles",value:function(e){var t=this._sculptData,n=t.points,a=t.image,o={x:(n[e[0]].x+n[e[1]].x)/2,y:(n[e[0]].y+n[e[1]].y)/2};Qn(o,a),n[e[0]].x=o.x,n[e[0]].y=o.y;var i=this.constructor._getNextHandleIndex(e[1],n.length);n[e[0]].lines.pop(),n[e[0]].lines.push(n[i]),n.splice(e[1],1)}},{key:"_configureToolSize",value:function(e){var t=e.element,n=this.configuration,a=n.currentTool,o=e.currentPoints.image,i=_(t,this.referencedToolName).data[a],r=at(t,this.referencedToolName),s=r.distanceFromPoint(t,i,o),l=r.distanceFromPointCanvas(t,i,o);n.limitRadiusOutsideRegion&&(s=this._limitCursorRadiusImage(e,s),l=this._limitCursorRadiusCanvas(e,l)),this._toolSizeImage=s,this._toolSizeCanvas=l}},{key:"_getMouseLocation",value:function(e){var t=this.configuration;t.mouseLocation.handles.start.x=e.currentPoints.image.x,t.mouseLocation.handles.start.y=e.currentPoints.image.y,Qn(t.mouseLocation.handles.start,e.image)}},{key:"_activateSculpt",value:function(e){this._deactivateSculpt(e),e.addEventListener(b.MOUSE_UP,this.activeMouseUpCallback),e.addEventListener(b.MOUSE_CLICK,this.activeMouseUpCallback),e.addEventListener(b.MOUSE_DRAG,this.activeMouseDragCallback),e.addEventListener(b.TOUCH_END,this.activeTouchEndCallback),e.addEventListener(b.TOUCH_TAP,this.activeTouchEndCallback),e.addEventListener(b.TOUCH_DRAG,this.activeMouseDragCallback),x.cornerstone.updateImage(e)}},{key:"_deactivateSculpt",value:function(e){e.removeEventListener(b.MOUSE_UP,this.activeMouseUpCallback),e.removeEventListener(b.MOUSE_CLICK,this.activeMouseUpCallback),e.removeEventListener(b.MOUSE_DRAG,this.activeMouseDragCallback),e.removeEventListener(b.TOUCH_END,this.activeTouchEndCallback),e.removeEventListener(b.TOUCH_TAP,this.activeTouchEndCallback),e.removeEventListener(b.TOUCH_DRAG,this.activeMouseDragCallback),x.cornerstone.updateImage(e)}},{key:"_invalidateToolData",value:function(e){var t=this.configuration;_(e.element,this.referencedToolName).data[t.currentTool].invalidated=!0}},{key:"_deselectAllTools",value:function(e){var t=this.configuration,n=_(this.element,this.referencedToolName);if(t.currentTool=null,n)for(var a=0;a<n.data.length;a++)n.data[a].active=!1;it(this.element,this.svgCursor),x.cornerstone.updateImage(this.element)}},{key:"_limitCursorRadiusCanvas",value:function(e,t){return this._limitCursorRadius(e,t,!0)}},{key:"_limitCursorRadiusImage",value:function(e,t){return this._limitCursorRadius(e,t,!1)}},{key:"_limitCursorRadius",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=e.element,o=e.image,i=this.configuration,r=_(a,this.referencedToolName).data[i.currentTool],s=1;if(n){var l=x.cornerstone.pixelToCanvas(a,{x:0,y:0}),c=x.cornerstone.pixelToCanvas(a,{x:o.width,y:o.height});s=(c.x-l.x)*(c.y-l.y)/(o.width*o.height)}var u=r.area*s,d=Math.pow(u/Math.PI,.5);return Math.min(t,d)}},{key:"_getClosestFreehandToolOnElement",value:function(e,t){var n=at(e,this.referencedToolName),a=_(e,this.referencedToolName);if(a){for(var o=a.data,i=t.currentPoints.image,r={distance:1/0,toolIndex:null},s=0;s<o.length;s++){var l=n.distanceFromPoint(e,o[s],i);-1!==l&&(l<r.distance&&(r.distance=l,r.toolIndex=s))}return r.toolIndex}}},{key:"_getInsertPosition",value:function(e,t,n){var a,o=this._sculptData,i=o.points,r=o.toolSize,s=o.mousePoint,l=o.image,c={x:(i[t].x+i[n].x)/2,y:(i[t].y+i[n].y)/2},u=x.cornerstoneMath.point.distance(s,c);if(u<r){var d={x:(c.x-s.x)/u,y:(c.y-s.y)/u};a={x:s.x+r*d.x,y:s.y+r*d.y}}else a=c;return Qn(a,l),a}},{key:"minSpacing",get:function(){return this.configuration.minSpacing},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehandSculpter minSpacing to a value other than a number.");this.configuration.minSpacing=e}},{key:"maxSpacing",get:function(){return this.configuration.maxSpacing},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehandSculpter maxSpacing to a value other than a number.");this.configuration.maxSpacing=e}},{key:"showCursorOnHover",get:function(){return this.configuration.showCursorOnHover},set:function(e){if("boolean"!=typeof e)throw new Error("Attempting to set freehandSculpter showCursorOnHover to a value other than a boolean.");this.configuration.showCursorOnHover=e,x.cornerstone.updateImage(this.element)}},{key:"limitRadiusOutsideRegion",get:function(){return this.configuration.limitRadiusOutsideRegion},set:function(e){if("boolean"!=typeof e)throw new Error("Attempting to set freehandSculpter limitRadiusOutsideRegion to a value other than a boolean.");this.configuration.limitRadiusOutsideRegion=e,x.cornerstone.updateImage(this.element)}},{key:"hoverCursorFadeAlpha",get:function(){return this.configuration.hoverCursorFadeAlpha},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehandSculpter hoverCursorFadeAlpha to a value other than a number.");e=Math.max(Math.min(e,1),0),this.configuration.hoverCursorFadeAlpha=e,x.cornerstone.updateImage(this.element)}},{key:"hoverCursorFadeDistance",get:function(){return this.configuration.hoverCursorFadeDistance},set:function(e){if("number"!=typeof e)throw new Error("Attempting to set freehandSculpter hoverCursorFadeDistance to a value other than a number.");e=Math.max(e,1),this.configuration.hoverCursorFadeDistance=e,x.cornerstone.updateImage(this.element)}}],[{key:"_getCorrectedPair",value:function(e,t){var n=[e[0]-t,e[1]-t];return n[1]<0&&(n[1]=0),n}},{key:"_getNextHandleIndex",value:function(e,t){return e===t-1?0:e+1}},{key:"_getPreviousHandleIndex",value:function(e,t){return 0===e?t-1:e-1}},{key:"_getNextHandleIndexBeforeInsert",value:function(e,t){return e===t?0:e}}]),t}(Gn);var as=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Magnify",supportedInteractionTypes:["Mouse","Touch"],configuration:{magnifySize:300,magnificationLevel:2},svgCursor:Ya};return(e=u()(this,h()(t).call(this,n,a))).zoomCanvas=void 0,e.zoomElement=void 0,e.activeCallback=e._createMagnificationCanvas.bind(na()(e)),e.enabledCallback=e._createMagnificationCanvas.bind(na()(e)),e.disabledCallback=e._destroyMagnificationCanvas.bind(na()(e)),e.postTouchStartCallback=e._addMagnifyingGlass.bind(na()(e)),e.touchDragCallback=e._updateMagnifyingGlass.bind(na()(e)),e.touchEndCallback=e._removeMagnifyingGlass.bind(na()(e)),e.touchDragEndCallback=e._removeMagnifyingGlass.bind(na()(e)),e.postMouseDownCallback=e._addMagnifyingGlass.bind(na()(e)),e.mouseDragCallback=e._updateMagnifyingGlass.bind(na()(e)),e.mouseUpCallback=e._removeMagnifyingGlass.bind(na()(e)),e.mouseClickCallback=e._removeMagnifyingGlass.bind(na()(e)),e.newImageCallback=e._drawMagnificationTool.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_addMagnifyingGlass",value:function(e){var t=this;this._removeZoomElement(),this._drawZoomedElement(e),window.requestAnimationFrame(function(){return t._drawMagnificationTool(e)}),rt(e.detail.element),e.preventDefault(),e.stopPropagation()}},{key:"_updateMagnifyingGlass",value:function(e){this._drawMagnificationTool(e),e.preventDefault(),e.stopPropagation()}},{key:"_removeMagnifyingGlass",value:function(e){var t=e.detail.element;it(this.element,this.svgCursor),t.querySelector(".magnifyTool").style.display="none",this._removeZoomElement()}},{key:"_drawMagnificationTool",value:function(e){var t=e.detail.element,n=t.querySelector(".magnifyTool");if(n||this._createMagnificationCanvas(t),void 0!==this.zoomCanvas){var a=t.querySelector("canvas:not(.magnifyTool)"),o=on(n),i=x.cornerstone.pixelToCanvas(e.detail.element,e.detail.currentPoints.image),r=Math.min(this.configuration.magnifySize,a.width,a.height),s=this.configuration.magnificationLevel;n.width=r,n.height=r,i.x=Math.max(i.x,.5*r/s),i.x=Math.min(i.x,a.width-.5*r/s),i.y=Math.max(i.y,.5*r/s),i.y=Math.min(i.y,a.height-.5*r/s);var l={x:i.x*s-.5*r,y:i.y*s-.5*r};l.x=Math.max(l.x,0),l.y=Math.max(l.y,0),o.drawImage(this.zoomCanvas,l.x,l.y,r,r,0,0,r,r);var c=e.detail.isTouchEvent?120:0,u={top:Math.max(i.y-.5*r-c,0),left:Math.max(i.x-.5*r,0)},d=n.getBoundingClientRect();u.top=Math.min(u.top,a.height-d.height),u.left=Math.min(u.left,a.width-d.width),n.style.top="".concat(u.top,"px"),n.style.left="".concat(u.left,"px"),n.style.display="block"}}},{key:"_drawZoomedElement",value:function(e){var t=e.detail.element,n=e.detail.enabledElement;void 0===n&&(n=x.cornerstone.getEnabledElement(t));var a=this.configuration.magnificationLevel,o=n.canvas,i=n.image;this.zoomElement||(this.zoomElement=document.createElement("div"),this.zoomElement.width=o.width*a,this.zoomElement.height=o.height*a,x.cornerstone.enable(this.zoomElement,n.options));var r=x.cornerstone.getEnabledElement(this.zoomElement),s=x.cornerstone.getViewport(n.element);this.zoomCanvas=r.canvas,this.zoomCanvas.width=o.width*a,this.zoomCanvas.height=o.height*a,r.viewport=Object.assign({},s),s.scale*=a,x.cornerstone.displayImage(this.zoomElement,i),x.cornerstone.setViewport(this.zoomElement,s)}},{key:"_removeZoomElement",value:function(){void 0!==this.zoomElement&&(x.cornerstone.disable(this.zoomCanvas),this.zoomElement=void 0,this.zoomCanvas=void 0)}},{key:"_createMagnificationCanvas",value:function(e){if(null===e.querySelector(".magnifyTool")){var t=document.createElement("canvas");t.classList.add("magnifyTool"),t.width=this.configuration.magnifySize,t.height=this.configuration.magnifySize,t.style.position="absolute",t.style.display="none",e.appendChild(t)}}},{key:"_destroyMagnificationCanvas",value:function(e){var t=e.querySelector(".magnifyTool");t&&e.removeChild(t)}}]),t}(Gn),os=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return(e=u()(this,h()(t).call(this,n,{name:"PanMultiTouch",supportedInteractionTypes:["MultiTouch"],configuration:{touchPointers:2}}))).multiTouchDragCallback=e._dragCallback.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,a=t.viewport;if(t.numPointers===this.configuration.touchPointers){var o=this._getTranslation(t);this._applyTranslation(a,o),x.cornerstone.setViewport(n,a)}}},{key:"_getTranslation",value:function(e){var t=e.viewport,n=e.image,a=e.deltaPoints,o=t.scale,i=t.scale;return n.rowPixelSpacing<n.columnPixelSpacing?o*=n.columnPixelSpacing/n.rowPixelSpacing:n.columnPixelSpacing<n.rowPixelSpacing&&(i*=n.rowPixelSpacing/n.columnPixelSpacing),{x:a.page.x/o,y:a.page.y/i}}},{key:"_applyTranslation",value:function(e,t){e.translation.x+=t.x,e.translation.y+=t.y}}]),t}(Gn),is=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Pan",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Xa};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._dragCallback.bind(na()(e)),e.mouseDragCallback=e._dragCallback.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,a=t.viewport,o=this._getTranslation(t);this._applyTranslation(a,o),x.cornerstone.setViewport(n,a)}},{key:"_getTranslation",value:function(e){var t=e.viewport,n=e.image,a=e.deltaPoints,o=t.scale,i=t.scale;return n.rowPixelSpacing<n.columnPixelSpacing?o*=n.columnPixelSpacing/n.rowPixelSpacing:n.columnPixelSpacing<n.rowPixelSpacing&&(i*=n.rowPixelSpacing/n.columnPixelSpacing),{x:a.page.x/o,y:a.page.y/i}}},{key:"_applyTranslation",value:function(e,t){e.translation.x+=t.x,e.translation.y+=t.y}}]),t}(Gn),rs=n(10),ss=n.n(rs),ls=n(11),cs=n.n(ls),us=function(e,t,n,a){var o=x.cornerstone,i=o.getEnabledElement(n).image,r=o.getEnabledElement(a).image;if(i&&r){var s=o.metaData.get("imagePlaneModule",i.imageId),l=o.metaData.get("imagePlaneModule",r.imageId);if(s&&l&&s.rowCosines&&s.columnCosines&&s.imagePositionPatient&&l.rowCosines&&l.columnCosines&&l.imagePositionPatient&&s.frameOfReferenceUID===l.frameOfReferenceUID){s.rowCosines=Rt(s.rowCosines),s.columnCosines=Rt(s.columnCosines),s.imagePositionPatient=Rt(s.imagePositionPatient),l.rowCosines=Rt(l.rowCosines),l.columnCosines=Rt(l.columnCosines),l.imagePositionPatient=Rt(l.imagePositionPatient);var c=s.rowCosines.clone().cross(s.columnCosines),u=l.rowCosines.clone().cross(l.columnCosines),d=c.angleTo(u);if(!((d=Math.abs(d))<.5)){var h=function(e,t){var n=Nt(e,t);if(n)return{start:Ht(n.start,e),end:Ht(n.end,e)}}(s,l);if(h){var v=zt.getActiveColor();e.setTransform(1,0,0,1,0,0),wt(e,function(e){Dt(e,t.element,h.start,h.end,{color:v})})}}}}},ds=function(e){return new Promise(function(t){return setTimeout(t,e)})};function hs(e){try{var t=x.cornerstone.getEnabledElement(e);return t.image?t:ds(250).then(function(){return hs(e)})}catch(e){return null}}var vs,gs=H("tools:ReferenceLinesTool"),fs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"ReferenceLines",mixins:["enabledOrDisabledBinaryTool"],configuration:{renderer:us}};return(e=u()(this,h()(t).call(this,n,a))).renderer=null,e.synchronizationContext=null,e}return g()(t,e),l()(t,[{key:"enabledCallback",value:function(){var e=cs()(ss.a.mark(function e(t){var n,a,o,i=arguments;return ss.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>1&&void 0!==i[1]?i[1]:{},a=n.synchronizationContext,o=this.configuration.renderer,e.next=4,hs(t);case 4:if(e.sent&&o&&a){e.next=8;break}return gs.warn("Unable to enable ".concat(this.name,". Exiting enable callback. Tool will be enabled, but will not render.")),e.abrupt("return");case 8:this.renderer=o,this.synchronizationContext=a,this.forceImageUpdate(t);case 11:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"disabledCallback",value:function(e){this.forceImageUpdate(e)}},{key:"forceImageUpdate",value:function(e){x.cornerstone.getEnabledElement(e).image&&x.cornerstone.updateImage(e)}},{key:"renderToolData",value:function(e){var t=this,n=e.detail;if(this.renderer&&this.synchronizationContext){var a=this.synchronizationContext.getSourceElements(),o=on(n.canvasContext.canvas);x.cornerstone.setToPixelCoordinateSystem(n.enabledElement,o),a.forEach(function(a){a!==e.currentTarget&&t.renderer(o,n,e.currentTarget,a)})}}}]),t}(Gn),ms=function(e,t,n){var a=Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)),o=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2)),i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2));return{angle:180*Math.acos((Math.pow(a,2)+Math.pow(o,2)-Math.pow(i,2))/(2*a*o))/Math.PI,direction:(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x)}},ps=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Rotate",strategies:{default:xs,horizontal:ys,vertical:Ts},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Ka};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"touchDragCallback",value:function(e){this.dragCallback(e)}},{key:"mouseDragCallback",value:function(e){this.dragCallback(e)}},{key:"postMouseDownCallback",value:function(e){this.initialRotation=e.detail.viewport.rotation}},{key:"dragCallback",value:function(e){e.detail.viewport.initialRotation=this.initialRotation,this.applyActiveStrategy(e,this.configuration),x.cornerstone.setViewport(e.detail.element,e.detail.viewport)}}]),t}(Gn),xs=function(e){var t=e.detail,n=t.element,a=t.viewport,o=a.initialRotation,i=n.getBoundingClientRect(n),r=n.clientWidth,s=n.clientHeight,l={x:t.startPoints.client.x,y:t.startPoints.client.y},c=a.scale,u=a.translation,d={x:i.left+r/2+u.x*c,y:i.top+s/2+u.y*c},h={x:t.currentPoints.client.x,y:t.currentPoints.client.y},v=ms(d,l,h);v.direction<0&&(v.angle=-v.angle),a.rotation=o+v.angle},ys=function(e){var t=e.detail,n=t.viewport,a=t.deltaPoints;n.rotation+=a.page.x/n.scale},Ts=function(e){var t=e.detail,n=t.viewport,a=t.deltaPoints;n.rotation+=a.page.y/n.scale},bs=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"RotateTouch",supportedInteractionTypes:["TouchRotate"]}))}return g()(t,e),l()(t,[{key:"touchRotateCallback",value:function(e){var t=e.detail,n=t.element,a=t.viewport,o=t.rotation;a.rotation+=o,x.cornerstone.setViewport(n,a)}}]),t}(Gn),Cs=H("tools:ScaleOverlayTool"),Ms=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"ScaleOverlay",configuration:{minorTickLength:12.5,majorTickLength:25},mixins:["enabledOrDisabledBinaryTool"]}))}return g()(t,e),l()(t,[{key:"enabledCallback",value:function(e){this.forceImageUpdate(e)}},{key:"disabledCallback",value:function(e){this.forceImageUpdate(e)}},{key:"forceImageUpdate",value:function(e){x.cornerstone.getEnabledElement(e).image&&x.cornerstone.updateImage(e)}},{key:"renderToolData",value:function(e){var t=e.detail,n=on(t.canvasContext.canvas),a=t.image,o=t.viewport,i=t.element,r=a.rowPixelSpacing,s=a.columnPixelSpacing,l=x.cornerstone.metaData.get("imagePlaneModule",a.imageId);if(l&&(r=l.rowPixelSpacing||l.rowImagePixelSpacing,s=l.columnPixelSpacing||l.colImagePixelSpacing),r&&s){var c={width:n.canvas.width,height:n.canvas.height},u=10/r*o.scale,d=10/s*o.scale,h=Es(c,.25,.05),v=Es(c,.05,.15);if(c.width&&c.height&&h&&v){var g=zt.getToolColor(),f=_t.getToolWidth(),m=Object.assign({},{hscaleBounds:h,vscaleBounds:v,verticalMinorTick:u,horizontalMinorTick:d,verticalLine:{start:{x:v.bottomRight.x,y:v.topLeft.y},end:{x:v.bottomRight.x,y:v.bottomRight.y}},horizontalLine:{start:{x:h.topLeft.x,y:h.bottomRight.y},end:{x:h.bottomRight.x,y:h.bottomRight.y}},color:g,lineWidth:f},this.configuration);wt(n,function(e){sn(e,m),Dt(e,i,m.verticalLine.start,m.verticalLine.end,{color:g,lineWidth:f},"canvas"),Is(e,i,m),Dt(e,i,m.horizontalLine.start,m.horizontalLine.end,{color:g,lineWidth:f},"canvas"),ws(e,i,m)})}}else Cs.warn("unable to define rowPixelSpacing or colPixelSpacing from data on ".concat(this.name,"'s renderToolData"))}}]),t}(Gn),Es=function(e,t,n){var a=t*Math.min(1e3,e.width),o=n*Math.min(1e3,e.height),i={left:a,top:o,width:e.width-2*a,height:e.height-2*o};return{topLeft:{x:i.left,y:i.top},bottomRight:{x:i.left+i.width,y:i.top+i.height}}},Is=function(e,t,n){for(var a=0;n.verticalLine.start.y+a*n.verticalMinorTick<=n.vscaleBounds.bottomRight.y;){var o=n.color,i=n.lineWidth,r={x:n.verticalLine.start.x,y:n.verticalLine.start.y+a*n.verticalMinorTick},s={x:0,y:n.verticalLine.start.y+a*n.verticalMinorTick};s.x=a%5==0?n.verticalLine.start.x-n.majorTickLength:n.verticalLine.start.x-n.minorTickLength,Dt(e,t,r,s,{color:o,lineWidth:i},"canvas"),a++}},ws=function(e,t,n){for(var a=0;n.horizontalLine.start.x+a*n.horizontalMinorTick<=n.hscaleBounds.bottomRight.x;){var o=n.color,i=n.lineWidth,r={x:n.horizontalLine.start.x+a*n.horizontalMinorTick,y:n.horizontalLine.start.y},s={x:n.horizontalLine.start.x+a*n.horizontalMinorTick,y:0};s.y=a%5==0?n.horizontalLine.start.y-n.majorTickLength:n.horizontalLine.start.y-n.minorTickLength,Dt(e,t,r,s,{color:o,lineWidth:i},"canvas"),a++}},Ss={default:6,IE:{9:6,10:8,default:8},Firefox:{default:6},Opera:{10:8,11:6,12:6,default:6},Chrome:{default:6},Safari:{default:6}};function ks(){var e,t=navigator.userAgent,n=t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(n[1])?(e=/\brv[ :]+(\d+)/g.exec(t)||[],"IE ".concat(e[1]||"")):"Chrome"===n[1]&&null!==(e=t.match(/\b(OPR|Edge)\/(\d+)/))?e.slice(1).join(" ").replace("OPR","Opera"):(n=n[2]?[n[1],n[2]]:[navigator.appName,navigator.appVersion,"-?"],null!==(e=t.match(/version\/(\d+)/i))&&n.splice(1,1,e[1]),n.join(" "))}function _s(){return vs||Ps()}function Ps(){var e=ks().split(" "),t=e[0],n=e[1],a=Ss[t];return a?a[n]?a[n]:a.default:Ss.default}var Ds={interaction:[],thumbnail:[],prefetch:[]},Ls={interaction:0,thumbnail:0,prefetch:0},Os={interaction:6,thumbnail:6,prefetch:5},As=!1,Rs=20;function Hs(){As&&setTimeout(function(){Ns()},Rs)}function Us(e){var t=x.cornerstone,n=e.type;Ls[n]++,As=!0;var a=e.imageId,o=e.doneCallback,i=e.failCallback,r=t.imageCache.getImageLoadObject(a);if(r)r.promise.then(function(e){Ls[n]--,o(e),Hs()},function(e){Ls[n]--,i(e),Hs()});else{var s=function(e){return"prefetch"===e.type?-5:"interactive"===e.type?0:"thumbnail"===e.type?5:void 0}(e);(!0===e.preventCache?t.loadImage(a,{priority:s,type:e.type}):t.loadAndCacheImage(a,{priority:s,type:e.type})).then(function(e){Ls[n]--,o(e),Hs()},function(e){Ls[n]--,i(e),Hs()})}}function Ns(){var e=_s();Os={interaction:Math.max(e,1),thumbnail:Math.max(e-2,1),prefetch:Math.max(e-1,1)};for(var t=e-(Ls.interaction+Ls.thumbnail+Ls.prefetch),n=0;n<t;n++){var a=Bs();a&&Us(a)}}function Bs(){return Ds.interaction.length&&Ls.interaction<Os.interaction?Ds.interaction.shift():Ds.thumbnail.length&&Ls.thumbnail<Os.thumbnail?Ds.thumbnail.shift():Ds.prefetch.length&&Ls.prefetch<Os.prefetch?Ds.prefetch.shift():(Ds.interaction.length||Ds.thumbnail.length||Ds.prefetch.length||(As=!1),!1)}var Fs={addRequest:function(e,t,n,a,o,i,r){if(!Ds.hasOwnProperty(n))throw new Error("Request type must be one of interaction, thumbnail, or prefetch");if(e&&t){var s={type:n,imageId:t,preventCache:a,doneCallback:o,failCallback:i},l=x.cornerstone.imageCache.getImageLoadObject(t);l?l.promise.then(function(e){o(e)},function(e){i(e)}):(r?Ds[n].unshift(s):Ds[n].push(s),As=!0)}},clearRequestStack:function(e){if(!Ds.hasOwnProperty(e))throw new Error("Request type must be one of interaction, thumbnail, or prefetch");Ds[e]=[]},startGrabbing:Ns,getRequestPool:function(){return Ds}},Vs=function(e,t){var n=_(e,"stack");if(n&&n.data&&n.data.length){var a,o=x.cornerstone;if(n.data.length>1){var i=_(e,"stackRenderer");i&&i.data&&i.data.length&&(a=i.data[0])}var r=n.data[0];t<0&&(t+=r.imageIds.length);var s=Wr.getStartLoadHandler(e),l=Wr.getEndLoadHandler(e),c=Wr.getErrorLoadingHandler(e);if(t!==r.currentImageIdIndex){s&&s(e);var u={newImageIdIndex:t,direction:t-r.currentImageIdIndex};r.currentImageIdIndex=t;var d=r.imageIds[t];(Boolean(r.preventCache)?o.loadImage(d):o.loadAndCacheImage(d)).then(function(i){if(r.currentImageIdIndex===t){try{o.getEnabledElement(e)}catch(e){return}a?(a.currentImageIdIndex=t,a.render(e,n.data)):o.displayImage(e,i),l&&l(e,i)}},function(n){var a=r.imageIds[t];c&&c(e,a,n)}),Fs.startGrabbing(),C(e,b.STACK_SCROLL,u)}}},qs=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=_(e,"stack");if(o&&o.data&&o.data.length){var i=o.data[0];i.pending||(i.pending=[]);var r=i.currentImageIdIndex+t;if(n)r%=i.imageIds.length;else r=Jn(r,0,i.imageIds.length-1);if(a)Vs(e,r);else{var s={index:r};i.pending.push(s),function e(t,n,a){if(t.pending[0]===n){if(t.currentImageIdIndex===n.index)return t.pending.splice(t.pending.indexOf(n),1),void(t.pending.length>0&&e(t,t.pending[0],a));a.addEventListener(x.cornerstone.EVENTS.NEW_IMAGE,function e(o){t.imageIds.indexOf(o.detail.image.imageId)===n.index&&(t.pending.splice(t.pending.indexOf(n),1),a.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,e),t.pending.length>0&&function e(t,n,a){if(t.pending[0]===n){if(t.currentImageIdIndex===n.index)return t.pending.splice(t.pending.indexOf(n),1),void(t.pending.length>0&&e(t,t.pending[0],a));a.addEventListener(x.cornerstone.EVENTS.NEW_IMAGE,function o(i){t.imageIds.indexOf(i.detail.image.imageId)===n.index&&(t.pending.splice(t.pending.indexOf(n),1),a.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,o),t.pending.length>0&&e(t,t.pending[0],a))}),Vs(a,n.index)}}(t,t.pending[0],a))}),Vs(a,n.index)}}(i,s,e)}}};function js(e,t,n){if(e.pending[0]===t){if(e.currentImageIdIndex===t.index){e.pending.splice(e.pending.indexOf(t),1);if(e.pending.length>0){js(e,e.pending[0],n)}return}var a=function a(o){var i;if(e.imageIds.indexOf(o.detail.image.imageId)===t.index){e.pending.splice(e.pending.indexOf(t),1);n.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,a);if(e.pending.length>0){js(e,e.pending[0],n)}}};n.addEventListener(x.cornerstone.EVENTS.NEW_IMAGE,a);Vs(n,t.index)}}var zs=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"StackScrollMouseWheel",supportedInteractionTypes:["MouseWheel"],configuration:{loop:!1,allowSkipping:!0,invert:!1}}))}return g()(t,e),l()(t,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.direction,a=t.element,o=this.configuration,i=o.loop,r=o.allowSkipping,s=o.invert;qs(a,s?-n:n,i,r)}}]),t}(Gn),Ws=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return(e=u()(this,h()(t).call(this,n,{name:"StackScrollMultiTouch",supportedInteractionTypes:["MultiTouch"],configuration:{loop:!1,allowSkipping:!0,touchPointers:3}}))).multiTouchDragCallback=e._dragCallback.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_dragCallback",value:function(e){var t=e.detail;if(t.numPointers===this.configuration.touchPointers){var n=t.element,a=t.deltaPoints,o=this.configuration,i=o.loop,r=o.allowSkipping,s=Yr(this.name,n),l=this._getPixelPerImage(n),c=this._getDeltaY(n,a.page.y);if(!l)return;if(Math.abs(c)>=l){var u=Math.round(c/l);qs(n,u,i,r),s.deltaY=c%l}else s.deltaY=c;Xr(this.name,n,s)}}},{key:"_getDeltaY",value:function(e,t){return(Yr(this.name,e).deltaY||0)+t}},{key:"_getPixelPerImage",value:function(e){var t=_(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0];return this.configuration.stackScrollSpeed||Math.max(2,e.offsetHeight/Math.max(n.imageIds.length,8))}}}]),t}(Gn),Gs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"StackScroll",supportedInteractionTypes:["Mouse","Touch"],configuration:{loop:!1,allowSkipping:!0},svgCursor:Za};return(e=u()(this,h()(t).call(this,n,a))).mouseDragCallback=e._dragCallback.bind(na()(e)),e.touchDragCallback=e._dragCallback.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,a=t.deltaPoints,o=this.configuration,i=o.loop,r=o.allowSkipping,s=Yr(this.name,n),l=this._getPixelPerImage(n),c=this._getDeltaY(n,a.page.y);if(l){if(Math.abs(c)>=l){var u=Math.round(c/l);qs(n,u,i,r),s.deltaY=c%l}else s.deltaY=c;Xr(this.name,n,s)}}},{key:"_getDeltaY",value:function(e,t){return(Yr(this.name,e).deltaY||0)+t}},{key:"_getPixelPerImage",value:function(e){var t=_(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0];return this.configuration.stackScrollSpeed||Math.max(2,e.offsetHeight/Math.max(n.imageIds.length,8))}}}]),t}(Gn),Ys=function(e,t,n,a,o){if(!e)throw new Error("getLuminance: parameter element must not be undefined");t=Math.round(t),n=Math.round(n);var i,r,s,l=x.cornerstone.getEnabledElement(e).image,c=[],u=0,d=l.getPixelData();if(l.color)for(r=0;r<o;r++)for(s=0;s<a;s++){var h=d[i=4*((r+n)*l.columns+(s+t))],v=d[i+1],g=d[i+2];c[u++]=.2126*h+.7152*v+.0722*g}else for(r=0;r<o;r++)for(s=0;s<a;s++)i=(r+n)*l.columns+(s+t),c[u++]=d[i]*l.slope+l.intercept;return c},Xs=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"WwwcRegion",supportedInteractionTypes:["Mouse","Touch"],configuration:{minWindowWidth:10},svgCursor:$a};return(e=u()(this,h()(t).call(this,n,a)))._resetHandles(),e.postTouchStartCallback=e._startOutliningRegion.bind(na()(e)),e.touchDragCallback=e._setHandlesAndUpdate.bind(na()(e)),e.touchEndCallback=e._applyStrategy.bind(na()(e)),e.postMouseDownCallback=e._startOutliningRegion.bind(na()(e)),e.mouseClickCallback=e._startOutliningRegion.bind(na()(e)),e.mouseDragCallback=e._setHandlesAndUpdate.bind(na()(e)),e.mouseMoveCallback=e._setHandlesAndUpdate.bind(na()(e)),e.mouseUpCallback=e._applyStrategy.bind(na()(e)),e}return g()(t,e),l()(t,[{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=n.element,o=zt.getColorIfActive({active:!0}),i=on(n.canvasContext.canvas);wt(i,function(e){an(e,a,t.handles.start,t.handles.end,{color:o})})}},{key:"_startOutliningRegion",value:function(e){var t=e.detail.element,n=e.detail.currentPoints.image;return Ks(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),x.cornerstone.updateImage(t),!0}},{key:"_setHandlesAndUpdate",value:function(e){var t=e.detail.element,n=e.detail.currentPoints.image;this.handles.end=n,x.cornerstone.updateImage(t)}},{key:"_applyStrategy",value:function(e){Ks(this.handles.start)||Ks(this.handles.end)||(e.detail.handles=this.handles,Zs(e,this.configuration),this._resetHandles())}},{key:"_resetHandles",value:function(){this.handles={start:{},end:{}}}}]),t}(Gn),Ks=function(e){return 0===Object.keys(e).length&&e.constructor===Object},Zs=function(e,t){var n=e.detail,a=n.image,o=n.element,i=e.detail.handles,r=i.start,s=i.end,l=Math.min(r.x,s.x),c=Math.min(r.y,s.y),u=Math.abs(r.x-s.x),d=Math.abs(r.y-s.y);l=Jn(l,0,a.width),c=Jn(c,0,a.height),u=Math.floor(Math.min(u,Math.abs(a.width-l))),d=Math.floor(Math.min(d,Math.abs(a.height-c)));var h=Ys(o,l,c,u,d),v=$s(h,a.minPixelValue,a.maxPixelValue),g=n.viewport;void 0===t.minWindowWidth&&(t.minWindowWidth=10),g.voi.windowWidth=Math.max(Math.abs(v.max-v.min),t.minWindowWidth),g.voi.windowCenter=v.mean,x.cornerstone.setViewport(o,g),x.cornerstone.updateImage(o)},$s=function(e,t,n){var a=e.length,o=n,i=t,r=0;if(a<2)return{min:o,max:i,mean:(t+n)/2};for(var s=0;s<a;s++){var l=e[s];o=Math.min(o,l),i=Math.max(i,l),r+=l}return{min:o,max:i,mean:r/a}},Js=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Wwwc",strategies:{basicLevelingStrategy:Qs},supportedInteractionTypes:["Mouse","Touch"],configuration:{orientation:0},svgCursor:Ja};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"mouseDragCallback",value:function(e){this.applyActiveStrategy(e),x.cornerstone.setViewport(e.detail.element,e.detail.viewport)}},{key:"touchDragCallback",value:function(e){e.stopImmediatePropagation(),this.applyActiveStrategy(e),x.cornerstone.setViewport(e.detail.element,e.detail.viewport)}}]),t}(Gn);function Qs(e){var t=this.configuration.orientation,n=e.detail,a=(n.image.maxPixelValue*n.image.slope+n.image.intercept-(n.image.minPixelValue*n.image.slope+n.image.intercept))/1024,o=n.deltaPoints.page.x*a,i=n.deltaPoints.page.y*a;0===t?(n.viewport.voi.windowWidth+=o,n.viewport.voi.windowCenter+=i):(n.viewport.voi.windowWidth+=i,n.viewport.voi.windowCenter+=o)}var el=function(e,t,n){var a=n.maxScale,o=n.minScale,i=Math.log(e.scale)/Math.log(1.7)+t,r=Math.pow(1.7,i);return e.scale=a&&r>a?a:o&&r<o?o:r,e},tl={changeViewportScale:el,correctShift:function(e,t){var n=t.hflip,a=t.vflip,o=t.rotation;if(e.x*=n?-1:1,e.y*=a?-1:1,0!==o){var i=o*Math.PI/180,r=Math.cos(i),s=Math.sin(i),l=e.x*r-e.y*s,c=e.x*s+e.y*r;e.x=l,e.y=c}return e}},nl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"ZoomMouseWheel",supportedInteractionTypes:["MouseWheel"],configuration:{minScale:.25,maxScale:20,invert:!1}}))}return g()(t,e),l()(t,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,a=t.viewport,o=t.spinY,i=this.configuration,r=i.invert,s=i.maxScale,l=i.minScale,c=el(a,r?o/4:-o/4,{maxScale:s,minScale:l});x.cornerstone.setViewport(n,c)}}]),t}(Gn),al=tl.correctShift,ol=tl.changeViewportScale,il=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Zoom",strategies:{default:sl,translate:ll,zoomToCenter:cl},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,preventZoomOutsideImage:!1,minScale:.25,maxScale:20},svgCursor:Qa};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"touchDragCallback",value:function(e){rl.call(this,e)}},{key:"mouseDragCallback",value:function(e){rl.call(this,e)}}]),t}(Gn),rl=function(e){if(!e.detail.deltaPoints.page.y)return!1;this.applyActiveStrategy(e,this.configuration),x.cornerstone.setViewport(e.detail.element,e.detail.viewport)};function sl(e){var t=this.configuration,n=t.invert,a=t.maxScale,o=t.minScale,i=e.detail.deltaPoints.page.y,r=n?-i/100:i/100,s=e.detail,l=s.element,c=s.viewport,u=[e.detail.startPoints.page.x,e.detail.startPoints.page.y,e.detail.startPoints.image.x,e.detail.startPoints.image.y],d=u[0],h=u[1],v=u[2],g=u[3],f=ol(c,r,{maxScale:a,minScale:o});x.cornerstone.setViewport(l,f);var m=x.cornerstone.pageToPixel(l,d,h),p={x:v-m.x,y:g-m.y};p=al(p,f),c.translation.x-=p.x,c.translation.y-=p.y}function ll(e){var t=this.configuration,n=t.invert,a=t.preventZoomOutsideImage,o=t.maxScale,i=t.minScale,r=e.detail.deltaPoints.page.y,s=n?-r/100:r/100,l=e.detail.image,c=e.detail.viewport,u=[e.detail.startPoints.image.x,e.detail.startPoints.image.y],d=u[0],h=u[1],v=ol(c,s,{maxScale:o,minScale:i}),g={x:0,y:0};if(s<0)v.scale<3&&(Math.abs(v.translation.x)<.01?v.translation.x=0:g.x=v.translation.x/8,Math.abs(v.translation.y)<.01?v.translation.y=0:g.y=v.translation.y/8);else{a&&Qn(e.detail.startPoints.image,l);var f={x:l.width/2-d,y:l.height/2-h};f=al(f,v);var m={x:v.translation.x-f.x,y:v.translation.y-f.y};Math.abs(m.x)<.01?v.translation.x=f.x:g.x=m.x/8,Math.abs(m.y)<.01?v.translation.y=f.y:g.y=m.y/8}v.translation.x-=g.x,v.translation.y-=g.y}function cl(e){var t=this.configuration,n=t.invert,a=t.maxScale,o=t.minScale,i=e.detail.deltaPoints.page.y,r=n?-i/100:i/100,s=e.detail.viewport;ol(s,r,{maxScale:a,minScale:o})}var ul=tl.correctShift,dl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);return u()(this,h()(t).call(this,e,{name:"ZoomTouchPinch",supportedInteractionTypes:["TouchPinch"],configuration:{minScale:.25,maxScale:20}}))}return g()(t,e),l()(t,[{key:"touchPinchCallback",value:function(e){var t=e.detail,n=t.element,a=t.viewport,o=t.scaleChange,i=[e.detail.startPoints.page.x,e.detail.startPoints.page.y,e.detail.startPoints.image.x,e.detail.startPoints.image.y],r=i[0],s=i[1],l=i[2],c=i[3],u=this.configuration,d=u.maxScale,h=u.minScale;a.scale+=o*a.scale,d&&a.scale>d?a.scale=d:h&&a.scale<h&&(a.scale=h),x.cornerstone.setViewport(n,a);var v=x.cornerstone.pageToPixel(n,r,s),g={x:l-v.x,y:c-v.y};g=ul(g,a),a.translation.x-=g.x,a.translation.y-=g.y,x.cornerstone.setViewport(n,a)}}]),t}(Gn),hl=function(e){return{page:vl(e.page),image:vl(e.image),client:vl(e.client),canvas:vl(e.canvas)}};function vl(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{x:e.x,y:e.y}}var gl,fl=H("eventListeners:mouseEventListeners"),ml=!0,pl=200;function xl(e){if("number"==typeof e.buttons)return e.buttons;switch(e.which){case 0:return 0;case 1:return 1;case 2:return 4;case 3:return 2}return 0}function yl(){ml=!1}function Tl(e){var t=e.currentTarget,n=x.cornerstone.getEnabledElement(t);if(n.image){var a=b.MOUSE_DOUBLE_CLICK,o={page:x.cornerstoneMath.point.pageToPoint(e),image:x.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};o.canvas=x.cornerstone.pixelToCanvas(t,o.image);var i=hl(o);fl.log("double-click: %o",xl(e)),C(t,a,{event:e,buttons:xl(e),viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:o,lastPoints:i,currentPoints:o,deltaPoints:{x:0,y:0},type:a})}}function bl(e){var t=e.currentTarget,n=x.cornerstone.getEnabledElement(t);if(n.image){gl=setTimeout(yl,pl),t.removeEventListener("mousemove",Cl);var a={page:x.cornerstoneMath.point.pageToPoint(e),image:x.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};a.canvas=x.cornerstone.pixelToCanvas(t,a.image);var o=hl(a),i={event:e,buttons:xl(e),viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:a,lastPoints:o,currentPoints:a,deltaPoints:{x:0,y:0},type:b.MOUSE_DOWN};C(i.element,b.MOUSE_DOWN,i)&&(i.type=b.MOUSE_DOWN_ACTIVATE,C(i.element,b.MOUSE_DOWN_ACTIVATE,i)),document.addEventListener("mousemove",r),document.addEventListener("mouseup",function e(i){clearTimeout(gl);var s=b.MOUSE_UP;ml&&(s=b.MOUSE_CLICK);var l={page:x.cornerstoneMath.point.pageToPoint(i),image:x.cornerstone.pageToPixel(t,i.pageX,i.pageY),client:{x:i.clientX,y:i.clientY}};l.canvas=x.cornerstone.pixelToCanvas(t,l.image);var c={page:x.cornerstoneMath.point.subtract(l.page,o.page),image:x.cornerstoneMath.point.subtract(l.image,o.image),client:x.cornerstoneMath.point.subtract(l.client,o.client),canvas:x.cornerstoneMath.point.subtract(l.canvas,o.canvas)};fl.log("mouseup: %o",xl(i));var u={event:i,buttons:xl(i),viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:a,lastPoints:o,currentPoints:l,deltaPoints:c,type:s};C(u.element,s,u),document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",e),t.addEventListener("mousemove",Cl),ml=!0})}function r(e){var i=b.MOUSE_DRAG,r={page:x.cornerstoneMath.point.pageToPoint(e),image:x.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};r.canvas=x.cornerstone.pixelToCanvas(t,r.image);var s={page:x.cornerstoneMath.point.subtract(r.page,o.page),image:x.cornerstoneMath.point.subtract(r.image,o.image),client:x.cornerstoneMath.point.subtract(r.client,o.client),canvas:x.cornerstoneMath.point.subtract(r.canvas,o.canvas)};fl.log("mousemove: %o",xl(e));var l={buttons:xl(e),viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:a,lastPoints:o,currentPoints:r,deltaPoints:s,type:i,ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey};C(l.element,i,l),o=hl(r)}}function Cl(e){var t=e.currentTarget,n=x.cornerstone.getEnabledElement(t);if(n.image){var a=b.MOUSE_MOVE,o={page:x.cornerstoneMath.point.pageToPoint(e),image:x.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};o.canvas=x.cornerstone.pixelToCanvas(t,o.image);var i=hl(o),r={page:x.cornerstoneMath.point.pageToPoint(e),image:x.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};r.canvas=x.cornerstone.pixelToCanvas(t,r.image);var s={page:x.cornerstoneMath.point.subtract(r.page,i.page),image:x.cornerstoneMath.point.subtract(r.image,i.image),client:x.cornerstoneMath.point.subtract(r.client,i.client),canvas:x.cornerstoneMath.point.subtract(r.canvas,i.canvas)};C(t,a,{viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:o,lastPoints:i,currentPoints:r,deltaPoints:s,type:a}),i=hl(r)}}function Ml(e){e.removeEventListener("mousedown",bl),e.removeEventListener("mousemove",Cl),e.removeEventListener("dblclick",Tl)}var El={enable:function(e){Ml(e),e.addEventListener("mousedown",bl),e.addEventListener("mousemove",Cl),e.addEventListener("dblclick",Tl)},disable:Ml},Il=function(e){var t=0,n=0,a=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),a=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(a=e.deltaX),(a||o)&&e.deltaMode&&(1===e.deltaMode?(a*=40,o*=40):(a*=800,o*=800)),a&&!t&&(t=a<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:a,pixelY:o}};function wl(e){var t=e.currentTarget,n=x.cornerstone.getEnabledElement(t);if(n.image&&!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var a=e.pageX,o=e.pageY,i=x.cornerstone.pageToPixel(t,a,o),r=Il(e),s=r.spinX,l=r.spinY,c=r.pixelX,u=r.pixelY,d=l<0?-1:1,h={element:t,viewport:x.cornerstone.getViewport(t),detail:e,image:n.image,direction:d,spinX:s,spinY:l,pixelX:c,pixelY:u,pageX:a,pageY:o,imageX:i.x,imageY:i.y};C(t,b.MOUSE_WHEEL,h)}}function Sl(e){e.removeEventListener("wheel",wl,{passive:!1})}var kl,_l,Pl={enable:function(e){Sl(e),e.addEventListener("wheel",wl,{passive:!1})},disable:Sl},Dl=2e3,Ll={mouse:0,touch:1};function Ol(e,t){var n=Date.now();if(e!==kl){if(n-_l<=Dl)return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1;kl=e}_l=n}var Al=Ol.bind(null,Ll.mouse),Rl=Ol.bind(null,Ll.touch);function Hl(e,t,n){var a=n?Al:Rl;t.forEach(function(t){e.addEventListener(t,a,{passive:!1})})}function Ul(e,t,n){var a=n?Al:Rl;t.forEach(function(t){e.removeEventListener(t,a)})}var Nl=["mousedown","mouseup"],Bl=["touchstart","touchend"];function Fl(e){Ul(e,Nl,Ll.mouse),Ul(e,Bl,Ll.touch)}var Vl,ql,jl,zl,Wl,Gl,Yl,Xl,Kl,Zl={enable:function(e){Fl(e),Hl(e,Nl,Ll.mouse),Hl(e,Bl,Ll.touch)},disable:Fl},$l=1,Jl=0,Ql=!1,ec=!1,tc=700,nc=5,ac="touchInput";function oc(e){var t=e.currentTarget||e.srcEvent.currentTarget,n=x.cornerstone.getEnabledElement(t);if(n.image){var a,o,i,r;switch(e.preventDefault(),(e.pointers&&e.pointers.length>1||e.touches&&e.touches.length>1)&&(ec=!1,clearTimeout(Yl)),e.type){case"tap":ec=!1,clearTimeout(Yl),(ql={page:x.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:x.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,ql.image),a=b.TAP,Wl={event:e,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:ql,type:a,isTouchEvent:!0},C(t,a,Wl);break;case"doubletap":ec=!1,clearTimeout(Yl),(ql={page:x.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:x.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,ql.image),a=b.DOUBLE_TAP,Wl={event:e,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:ql,type:a,isTouchEvent:!0},C(t,a,Wl);break;case"pinchstart":ec=!1,clearTimeout(Yl),$l=1;break;case"pinchmove":if(ec=!1,clearTimeout(Yl),!0===Ql){$l=e.scale,Ql=!1;break}o=(e.scale-$l)/$l,(Vl={page:e.center,image:x.cornerstone.pageToPixel(t,e.center.x,e.center.y)}).canvas=x.cornerstone.pixelToCanvas(t,Vl.image),a=b.TOUCH_PINCH,Wl={event:e,startPoints:Vl,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,direction:e.scale<1?1:-1,scaleChange:o,type:a,isTouchEvent:!0},C(t,a,Wl),$l=e.scale;break;case"touchstart":$l=1,clearTimeout(Yl),clearTimeout(Gl),Gl=setTimeout(function(){(Vl={page:x.cornerstoneMath.point.pageToPoint(e.touches[0]),image:x.cornerstone.pageToPixel(t,e.touches[0].pageX,e.touches[0].pageY),client:{x:e.touches[0].clientX,y:e.touches[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,Vl.image),a=b.TOUCH_START,e.touches.length>1&&(a=b.MULTI_TOUCH_START),Wl={event:e,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Vl,currentPoints:Vl,type:a,isTouchEvent:!0},!0===C(t,a,Wl)&&(a=b.TOUCH_START_ACTIVE,e.touches.length>1&&(a=b.MULTI_TOUCH_START_ACTIVE),Wl.type=a,C(t,a,Wl)),jl=hl(Vl)},50),ec=!0,Xl=0,Yl=setTimeout(function(){ec&&((ql={page:x.cornerstoneMath.point.pageToPoint(e.touches[0]),image:x.cornerstone.pageToPixel(t,e.touches[0].pageX,e.touches[0].pageY),client:{x:e.touches[0].clientX,y:e.touches[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,Vl.image),a=b.TOUCH_PRESS,Wl={event:e,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:ql,type:a,isTouchEvent:!0},C(t,a,Wl))},tc);break;case"touchend":$l=1,ec=!1,clearTimeout(Yl),setTimeout(function(){(Vl={page:x.cornerstoneMath.point.pageToPoint(e.changedTouches[0]),image:x.cornerstone.pageToPixel(t,e.changedTouches[0].pageX,e.changedTouches[0].pageY),client:{x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,Vl.image),a=b.TOUCH_END,Wl={event:e,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Vl,currentPoints:Vl,type:a,isTouchEvent:!0},C(t,a,Wl)},50);break;case"panmove":i={x:e.deltaX-Kl.x,y:e.deltaY-Kl.y},Kl={x:e.deltaX,y:e.deltaY},(ql={page:{x:jl.page.x+i.x,y:jl.page.y+i.y},image:x.cornerstone.pageToPixel(t,jl.page.x+i.x,jl.page.y+i.y),client:{x:jl.client.x+i.x,y:jl.client.y+i.y}}).canvas=x.cornerstone.pixelToCanvas(t,ql.image),zl={page:x.cornerstoneMath.point.subtract(ql.page,jl.page),image:x.cornerstoneMath.point.subtract(ql.image,jl.image),client:x.cornerstoneMath.point.subtract(ql.client,jl.client),canvas:x.cornerstoneMath.point.subtract(ql.canvas,jl.canvas)},(Xl+=Math.sqrt(zl.page.x*zl.page.x+zl.page.y*zl.page.y))>nc&&(ec=!1,clearTimeout(Yl)),a=b.TOUCH_DRAG,e.pointers.length>1&&(a=b.MULTI_TOUCH_DRAG),Wl={viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Vl,lastPoints:jl,currentPoints:ql,deltaPoints:zl,numPointers:e.pointers.length,type:a,isTouchEvent:!0},C(t,a,Wl),jl=hl(ql);break;case"panstart":Kl={x:e.deltaX,y:e.deltaY},(ql={page:x.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:x.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,ql.image),jl=hl(ql);break;case"panend":if(ec=!1,clearTimeout(Yl),!jl)return!1;(ql={page:x.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:x.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=x.cornerstone.pixelToCanvas(t,ql.image),zl={page:x.cornerstoneMath.point.subtract(ql.page,jl.page),image:x.cornerstoneMath.point.subtract(ql.image,jl.image),client:x.cornerstoneMath.point.subtract(ql.client,jl.client),canvas:x.cornerstoneMath.point.subtract(ql.canvas,jl.canvas)},a=b.TOUCH_DRAG_END,Wl={event:e.srcEvent,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Vl,lastPoints:jl,currentPoints:ql,deltaPoints:zl,type:a,isTouchEvent:!0},C(t,a,Wl),2===e.pointers.length-e.changedPointers.length&&(Ql=!0);break;case"rotatemove":ec=!1,clearTimeout(Yl),r=e.rotation-Jl,Jl=e.rotation,a=b.TOUCH_ROTATE,Wl={event:e.srcEvent,viewport:x.cornerstone.getViewport(t),image:n.image,element:t,rotation:r,type:a},C(t,a,Wl)}return!1}}function ic(e){Zl.disable(e);["touchstart","touchend"].forEach(function(t){e.removeEventListener(t,oc)});var t=Yr(ac,e).hammer;t&&t.off("tap doubletap panstart panmove panend pinchstart pinchmove rotatemove",oc)}var rc={enable:function(e){ic(e);var t=x.Hammer,n={inputClass:t.SUPPORT_POINTER_EVENTS?t.PointerEventInput:t.TouchInput},a=new t.Manager(e,n),o={pointers:0,direction:t.DIRECTION_ALL,threshold:0},i=new t.Pan(o),r=new t.Pinch({threshold:0}),s=new t.Rotate({threshold:0});r.recognizeWith(i),r.recognizeWith(s),s.recognizeWith(i);var l=new t.Tap({event:"doubletap",taps:2,interval:1500,threshold:50,posThreshold:50});l.recognizeWith(i),a.add([l,i,s,r]),a.on("tap doubletap panstart panmove panend pinchstart pinchmove rotatemove",oc),Zl.enable(e),["touchstart","touchend"].forEach(function(t){e.addEventListener(t,oc,{passive:!1})});var c=Yr(ac,e);c.hammer=a,Xr(ac,e,c)},disable:ic},sc=tt("segmentation"),lc=sc.state,cc=sc.configuration;function uc(e,t,n,a,o){!function(e,t,n){var a=e.detail,o=on(a.canvasContext.canvas),i=x.cornerstone.pixelToCanvas(a.element,{x:0,y:0}),r=x.cornerstone.pixelToCanvas(a.element,{x:a.image.width,y:0}),s=x.cornerstone.pixelToCanvas(a.element,{x:a.image.width,y:a.image.height}),l=x.cornerstoneMath.point.distance(i,r),c=x.cornerstoneMath.point.distance(r,s),u=a.canvasContext.canvas,d=a.viewport,h=o.imageSmoothingEnabled,v=o.globalAlpha;o.imageSmoothingEnabled=!1,o.globalAlpha=n?cc.fillAlpha:cc.fillAlphaInactive,ln(o,u,d);var g={x:d.translation.x*d.scale,y:d.translation.y*d.scale};o.drawImage(t,u.width/2-l/2+g.x,u.height/2-c/2+g.y,l,c),o.globalAlpha=v,o.imageSmoothingEnabled=h,cn(o)}(e,function(e,t,n){var a=e.detail.image,o=a.width,i=a.height,r=t.segmentsHidden,s=n.pixelData,l=lc.colorLutTables[t.colorLUTIndex],c=document.createElement("canvas");c.width=o,c.height=i;for(var u=on(c),d=new ImageData(o,i),h=d.data,v=0;v<s.length;v++){var g=s[v];if(0!==g&&!r[g]){var f=l[s[v]];h[4*v]=f[0],h[4*v+1]=f[1],h[4*v+2]=f[2],h[4*v+3]=f[3]}}return u.putImageData(d,0,0),c}(e,t,n),o)}var dc=tt("segmentation"),hc=dc.state,vc=dc.configuration;function gc(e,t,n,a,o){!function(e,t,n){var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=e.detail,i=o.element,r=o.canvasContext,s=vc.outlineWidth||1,l=on(r.canvas),c=hc.colorLutTables[n],u=l.globalAlpha;l.globalAlpha=a?vc.outlineAlpha:vc.outlineAlphaInactive,wt(l,function(e){for(var n=1;n<t.length;n++)if(t[n]){var a=c[n];Gt(e,i,t[n],{color:"rgba(".concat(a[0],", ").concat(a[1],", ").concat(a[2],", 1.0 )"),lineWidth:s},"canvas")}}),l.globalAlpha=u}(e,function(e,t,n,a){var o=e.detail,i=o.element,r=o.image,s=o.viewport,l=r.width,c=r.height;a=a||1;var u=t.segmentsHidden,d=n.pixelData,h=t.activeSegmentIndex,v=[];n.segmentsOnLabelmap.forEach(function(e){!u[e]&&(v[e]=[])}),v[h]||(v[h]=[]);for(var g=function(e){return{x:e%l,y:Math.floor(e/l)}},f=function(e,t){var n=t/2,a=e.rotation;a*=Math.PI/180;var o=Math.cos(a),i=Math.sin(a),r=[o,i],s=[-i,o],l={x:n*r[0],y:n*r[1]},c={x:n*s[0],y:n*s[1]};e.hflip&&(l.x*=-1,l.y*=-1);e.vflip&&(c.x*=-1,c.y*=-1);return{i:l,j:c}}(s,a),m=0;m<d.length;m++){var p=d[m];if(0!==p){var x=!u[p];if(x){var y=g(m),T=fc(y,c,l);void 0!==T.top&&d[T.top]===p||Tc(v[p],i,y,f),void 0!==T.bottom&&d[T.bottom]===p||bc(v[p],i,y,f),void 0!==T.left&&d[T.left]===p||Cc(v[p],i,y,f),void 0!==T.right&&d[T.right]===p||Mc(v[p],i,y,f),void 0!==T.topLeft&&d[T.topLeft]!==p&&d[T.top]===p&&d[T.left]===p&&mc(v[p],i,y,f),void 0!==T.topRight&&d[T.topRight]!==p&&d[T.top]===p&&d[T.right]===p&&pc(v[p],i,y,f),void 0!==T.bottomLeft&&d[T.bottomLeft]!==p&&d[T.bottom]===p&&d[T.left]===p&&xc(v[p],i,y,f),void 0!==T.bottomRight&&d[T.bottomRight]!==p&&d[T.bottom]===p&&d[T.right]===p&&yc(v[p],i,y,f)}}}return v}(e,t,n,vc.outlineWidth),t.colorLUTIndex,o)}function fc(e,t,n){var a=e.y*n+e.x,o={},i=e.y-1>=0,r=e.y+1<t,s=e.x-1>=0,l=e.x+1<n;return i&&(o.top=a-n,l&&(o.topRight=o.top+1),s&&(o.topLeft=o.top-1)),r&&(o.bottom=a+n,l&&(o.bottomRight=o.bottom+1),s&&(o.bottomLeft=o.bottom-1)),s&&(o.left=a-1),l&&(o.right=a+1),o}function mc(e,t,n,a){var o=(0,x.cornerstone.pixelToCanvas)(t,n);o.x+=a.j.x,o.y+=a.j.y;var i={x:o.x,y:o.y};i.x+=2*a.i.x,i.y+=2*a.i.y,e.push({start:o,end:i})}function pc(e,t,n,a){var o=(0,x.cornerstone.pixelToCanvas)(t,{x:n.x+1,y:n.y});o.x+=a.j.x,o.y+=a.j.y;var i={x:o.x,y:o.y};i.x-=2*a.i.x,i.y-=2*a.i.y,e.push({start:o,end:i})}function xc(e,t,n,a){var o=(0,x.cornerstone.pixelToCanvas)(t,{x:n.x,y:n.y+1});o.x-=a.j.x,o.y-=a.j.y;var i={x:o.x,y:o.y};i.x+=2*a.i.x,i.y+=2*a.i.y,e.push({start:o,end:i})}function yc(e,t,n,a){var o=(0,x.cornerstone.pixelToCanvas)(t,{x:n.x+1,y:n.y+1});o.x-=a.j.x,o.y-=a.j.y;var i={x:o.x,y:o.y};i.x-=2*a.i.x,i.y-=2*a.i.y,e.push({start:o,end:i})}function Tc(e,t,n,a){var o=x.cornerstone.pixelToCanvas,i=o(t,n),r=o(t,{x:n.x+1,y:n.y});i.x+=a.j.x,i.y+=a.j.y,r.x+=a.j.x,r.y+=a.j.y,e.push({start:i,end:r})}function bc(e,t,n,a){var o=x.cornerstone.pixelToCanvas,i=o(t,{x:n.x,y:n.y+1}),r=o(t,{x:n.x+1,y:n.y+1});i.x-=a.j.x,i.y-=a.j.y,r.x-=a.j.x,r.y-=a.j.y,e.push({start:i,end:r})}function Cc(e,t,n,a){var o=x.cornerstone.pixelToCanvas,i=o(t,n),r=o(t,{x:n.x,y:n.y+1});i.x+=a.i.x,i.y+=a.i.y,r.x+=a.i.x,r.y+=a.i.y,e.push({start:i,end:r})}function Mc(e,t,n,a){var o=x.cornerstone.pixelToCanvas,i=o(t,{x:n.x+1,y:n.y}),r=o(t,{x:n.x+1,y:n.y+1});i.x-=a.i.x,i.y-=a.i.y,r.x-=a.i.x,r.y-=a.i.y,e.push({start:i,end:r})}var Ec=tt("segmentation").configuration;function Ic(e,t,n,a,o){(function(e){return Ec.renderFill&&(e&&0!==Ec.fillAlpha||!e&&0!==Ec.fillAlphaInactive)})(o)&&uc(e,t,a,0,o),function(e){return Ec.renderOutline&&(e&&0!==Ec.outlineAlpha||!e&&0!==Ec.outlineAlphaInactive)}(o)&&gc(e,t,a,0,o)}var wc=tt("segmentation"),Sc=wc.configuration,kc=wc.getters,_c=function(e){var t=e.detail.element,n=kc.labelmaps3D(t),a=n.activeLabelmapIndex,o=n.labelmaps3D,i=n.currentImageIdIndex;o&&(Sc.shouldRenderInactiveLabelmaps&&function(e,t,n,a){for(var o=0;o<t.length;o++){var i=t[o];if(o!==n&&i){var r=i.labelmaps2D[a];r&&Ic(e,i,0,r,!1)}}}(e,o,a,i),function(e,t,n,a){var o=t[n];if(!o)return;var i=o.labelmaps2D[a];i&&Ic(e,o,0,i,!0)}(e,o,a,i))};var Pc=tt("segmentation").configuration,Dc=function(e){var t=e.detail.element,n=Je.tools.filter(function(e){return e.element===t&&("active"===e.mode||"passive"===e.mode||"enabled"===e.mode)});(Pc.renderFill||Pc.renderOutline)&&_c(e),n.forEach(function(t){t.renderToolData&&t.renderToolData(e)})},Lc=function(e){e.addEventListener(x.cornerstone.EVENTS.IMAGE_RENDERED,Dc)},Oc=function(e){e.removeEventListener(x.cornerstone.EVENTS.IMAGE_RENDERED,Dc)},Ac=function(e,t,n){if(Je.isToolLocked)return!1;var a=n.detail.element,o=Je.tools.filter(function(t){return t.supportedInteractionTypes.includes(e)});if(o=(o=ea(a,o,e)).filter(function(e){return"function"==typeof e[t]}),Je.isMultiPartToolActive&&(o=la(o)),0===o.length)return!1;o[0][t](n)},Rc=function(e,t,n){var a="mouse"===(arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse")?Je.clickProximity:Je.touchProximity;return t.filter(function(t){for(var o=_(e,t.name),i=0;i<o.data.length;i++)if(void 0!==Kn(e,o.data[i].handles,n,a))return!0;return!1})},Hc=function(e,t){return t.filter(function(t){return t.element===e&&("active"===t.mode||"passive"===t.mode)})},Uc=function(e,t){return t.filter(function(t){var n=_(e,t.name);return n&&n.data.length>0})},Nc=function(e){if(!Je.isToolLocked){var t=e.detail,n=e.detail.element,a=e.detail.currentPoints.canvas,o=Hc(n,Qe.mouseTools()),i=o.filter(function(e){return"active"===e.mode&&Array.isArray(e.options.mouseButtonMask)&&e.options.mouseButtonMask.includes(t.buttons)&&e.options.isMouseActive});if(Je.isMultiPartToolActive&&(i=la(i)),i.length>0){var r=i.find(function(e){return"function"==typeof e.preMouseDownCallback});if(r)if(r.preMouseDownCallback(e))return}if(!Je.isMultiPartToolActive){var s=Uc(n,o),l=Rc(n,s,a,"mouse");if(l.length>0){var c=l[0],u=_(n,c.name),d=Ia(n,u,c.name,a),h=d.handle,v=d.data;c.handleSelectedCallback(e,v,h,"mouse")}else{var g=o.filter(function(e){var t=_(n,e.name);return t&&t.data&&e.pointNearTool&&t.data.some(function(t){return e.pointNearTool(n,t,a,"mouse")})});if(g.length>0){var f=g[0],m=_(n,f.name).data.find(function(e){return f.pointNearTool(n,e,a)});f.toolSelectedCallback(e,m,"mouse")}else if(i.length>0){var p=i.find(function(e){return"function"==typeof e.postMouseDownCallback});if(p)if(p.postMouseDownCallback(e))return}}}}},Bc=H("eventDispatchers:mouseEventHandlers"),Fc=function(e){if(!Je.isToolLocked){var t=e.detail,n=ca(t.element,t.buttons,"mouse");if(n){if("function"==typeof n.preMouseDownActivateCallback)if(n.preMouseDownActivateCallback(e))return;Je.isMultiPartToolActive||(n.addNewMeasurement?n.addNewMeasurement(e,"mouse"):n instanceof ka&&function(e,t){Bc.log("addNewMeasurement"),e.preventDefault(),e.stopPropagation();var n=e.detail,a=n.element,o=t.createNewMeasurement(n);o&&(k(a,t.name,o),x.cornerstone.updateImage(a),(1===Object.keys(o.handles).length?xa:Ca)(n,t.name,o,o.handles.end,t.options,"mouse",function(){var e=b.MEASUREMENT_COMPLETED,n={toolName:t.name,element:a,measurementData:o};C(a,e,n)}))}(e,n))}}},Vc=function(e){if(!Je.isToolLocked){var t,n=e.detail,a=n.element;if(t=(t=(t=ea(a,Qe.mouseTools())).filter(function(e){return Array.isArray(e.options.mouseButtonMask)&&e.options.mouseButtonMask.includes(n.buttons)&&e.options.isMouseActive})).filter(function(e){return"function"==typeof e.mouseDragCallback}),Je.isMultiPartToolActive&&(t=la(t)),0!==t.length)t[0].mouseDragCallback(e)}},qc=function(e){if(!Je.isToolLocked&&!Je.isMultiPartToolActive){var t,n=e.detail,a=n.element,o=n.currentPoints;Je.mousePositionImage=o.image;var i=(t=Hc(a,Qe.mouseTools())).filter(function(e){return"active"===e.mode&&e.options.isMouseActive}),r=!1;i.length>0&&(r=i.some(function(e){return e.updateOnMouseMove})),t=Uc(a,t);for(var s=0;s<t.length;s++){var l=t[s];"function"==typeof l.mouseMoveCallback&&(r=l.mouseMoveCallback(e)||r)}!0===r&&x.cornerstone.updateImage(a)}},jc=Ac.bind(null,"Mouse","mouseClickCallback"),zc=Ac.bind(null,"Mouse","doubleClickCallback"),Wc=Ac.bind(null,"Mouse","mouseUpCallback"),Gc=Ac.bind(null,"MouseWheel","mouseWheelCallback"),Yc=function(e){e.addEventListener(b.MOUSE_CLICK,jc),e.addEventListener(b.MOUSE_DOWN,Nc),e.addEventListener(b.MOUSE_DOWN_ACTIVATE,Fc),e.addEventListener(b.MOUSE_DOUBLE_CLICK,zc),e.addEventListener(b.MOUSE_DRAG,Vc),e.addEventListener(b.MOUSE_MOVE,qc),e.addEventListener(b.MOUSE_UP,Wc),e.addEventListener(b.MOUSE_WHEEL,Gc)},Xc=function(e){e.removeEventListener(b.MOUSE_CLICK,jc),e.removeEventListener(b.MOUSE_DOWN,Nc),e.removeEventListener(b.MOUSE_DOWN_ACTIVATE,Fc),e.removeEventListener(b.MOUSE_DOUBLE_CLICK,zc),e.removeEventListener(b.MOUSE_DRAG,Vc),e.removeEventListener(b.MOUSE_MOVE,qc),e.removeEventListener(b.MOUSE_UP,Wc),e.removeEventListener(b.MOUSE_WHEEL,Gc)},Kc=function(e){if(Je.isToolLocked)return!1;var t=e.detail.element,n=Je.tools.filter(function(e){return e.element===t&&("active"===e.mode||"passive"===e.mode||"enabled"===e.mode)});if(0===n.length)return!1;n.forEach(function(t){t.newImageCallback&&t.newImageCallback(e)})},Zc=function(e){e.addEventListener(x.cornerstone.EVENTS.NEW_IMAGE,Kc)},$c=function(e){e.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,Kc)},Jc=function(e){if(Je.isToolLocked)return!1;var t=e.detail,n=t.element,a=t.numPointers,o=Je.tools.filter(function(e){return e.supportedInteractionTypes.includes("MultiTouch")});if(o=(o=ea(n,o,"MultiTouch")).filter(function(e){return"function"==typeof e.multiTouchDragCallback&&a===e.configuration.touchPointers}),Je.isMultiPartToolActive&&(o=la(o)),0===o.length)return!1;o[0].multiTouchDragCallback(e)},Qc=H("eventDispatchers:touchEventHandlers"),eu=function(e){if(!Je.isToolLocked&&!Je.isMultiPartToolActive){var t=ca(e.detail.element,null,"touch");t&&t.addNewMeasurement?t.addNewMeasurement(e,"touch"):t instanceof ka&&function(e,t){Qc.log("addNewMeasurement"),e.preventDefault(),e.stopPropagation();var n=e.detail,a=n.element,o=t.createNewMeasurement(n);if(o){if(k(a,t.name,o),1===Object.keys(o.handles).length&&n.type===b.TAP)return o.active=!1,o.handles.end.active=!1,o.handles.end.highlight=!1,o.invalidated=!0,(Je.deleteIfHandleOutsideImage||t.options.deleteIfHandleOutsideImage)&&$n(n,o.handles)&&P(a,t.name,o),void x.cornerstone.updateImage(a);x.cornerstone.updateImage(a),Ca(n,t.name,o,o.handles.end,t.options,"touch",function(){var e=b.MEASUREMENT_COMPLETED,n={toolName:t.name,element:a,measurementData:o};C(a,e,n)})}}(e,t)}},tu=function(e){if(e)for(var t=0;t<e.data.length;t++){var n=e.data[t];n.active=!1,n.handles&&nu(n.handles)}};function nu(e){Object.keys(e).forEach(function(t){e[t].active=!1})}var au=function(e){if(!Je.isToolLocked&&!Je.isMultiPartToolActive){var t,n=e.detail.element,a=e.detail.currentPoints.canvas;t=ea(n,Qe.touchTools());var o=(t=Uc(n,t)).filter(function(e){for(var t=_(n,e.name),o=0;o<t.data.length;o++)if(void 0!==Kn(n,t.data[o].handles,a,28))return!0;return!1});if(o.length>0){var i=o[0],r=_(n,i.name),s=r.data.find(function(e){return void 0!==Kn(n,e.handles,a,28)});return r.data.active=!0,s.active=!0,x.cornerstone.updateImage(n),xa(e.detail,i.name,r.data,s,i.options,"touch",function(){return tu(r)}),e.stopImmediatePropagation(),void e.preventDefault()}var l=t.filter(function(e){var t=_(n,e.name);return t&&t.data&&e.pointNearTool&&t.data.some(function(t){return e.pointNearTool(n,t,a)})});if(l.length>0){var c=l[0],u=_(n,c.name),d=u.data.find(function(e){return c.pointNearTool(n,e,a)});return d.active=!0,x.cornerstone.updateImage(n),va(e.detail,c.name,d,null,c.options,"touch",function(){return tu(u)}),e.stopImmediatePropagation(),void e.preventDefault()}var h=ea(n,Qe.touchTools());return h.length>0&&h[0].touchStartActiveCallback?h[0].touchStartActiveCallback(e):eu(e),!1}},ou=function(e){if(!Je.isToolLocked){var t=e.detail,n=t.element,a=t.startPoints.canvas,o=Hc(n,Qe.touchTools()),i=o.filter(function(e){return"active"===e.mode&&e.options.isTouchActive});if(Je.isMultiPartToolActive&&(i=la(i)),i.length>0){var r=i.find(function(e){return"function"==typeof e.preTouchStartCallback});if(r)if(r.preTouchStartCallback(e))return}if(!Je.isMultiPartToolActive){var s=Uc(n,o),l=Rc(n,s,a,"touch");if(l.length>0){var c=l[0],u=_(n,c.name),d=Ia(n,u,c.name,a,"touch"),h=d.handle,v=d.data;c.handleSelectedCallback(e,v,h,"touch")}else{var g=s.filter(function(e){var t=_(n,e.name);return t&&t.data&&e.pointNearTool&&t.data.some(function(t){return e.pointNearTool(n,t,a,"touch")})});if(g.length>0){var f=g[0],m=_(n,f.name).data.find(function(e){return f.pointNearTool(n,e,a)});f.toolSelectedCallback(e,m,"touch")}else if(i.length>0){var p=i.find(function(e){return"function"==typeof e.postTouchStartCallback});if(p)if(p.postTouchStartCallback(e))return}}}}},iu=Ac.bind(null,"DoubleTap","doubleTapCallback"),ru=Ac.bind(null,"Touch","touchDragCallback"),su=Ac.bind(null,"Touch","touchEndCallback"),lu=Ac.bind(null,"TouchPinch","touchPinchCallback"),cu=Ac.bind(null,"Touch","touchPressCallback"),uu=Ac.bind(null,"TouchRotate","touchRotateCallback"),du=function(e){e.addEventListener(b.TAP,au),e.addEventListener(b.TOUCH_START,ou,{passive:!1}),e.addEventListener(b.TOUCH_DRAG,ru,{passive:!1}),e.addEventListener(b.TOUCH_END,su),e.addEventListener(b.TOUCH_START_ACTIVE,eu),e.addEventListener(b.TOUCH_PRESS,cu),e.addEventListener(b.DOUBLE_TAP,iu),e.addEventListener(b.TOUCH_PINCH,lu),e.addEventListener(b.TOUCH_ROTATE,uu),e.addEventListener(b.MULTI_TOUCH_DRAG,Jc)},hu=function(e){e.removeEventListener(b.TAP,au),e.removeEventListener(b.TOUCH_START,ou),e.removeEventListener(b.TOUCH_DRAG,ru),e.removeEventListener(b.TOUCH_END,su),e.removeEventListener(b.TOUCH_START_ACTIVE,eu),e.removeEventListener(b.TOUCH_PRESS,cu),e.removeEventListener(b.DOUBLE_TAP,iu),e.removeEventListener(b.TOUCH_PINCH,lu),e.removeEventListener(b.TOUCH_ROTATE,uu),e.removeEventListener(b.MULTI_TOUCH_DRAG,Jc)},vu=H("addTool"),gu=function(e,t,n){var a=new t(n);at(e,a.name)?vu.warn("%s has already been added to the target element",a.name):(a.element=e,nt.state.tools.push(a))},fu=function(e,t){mu(e,t),nt.state.enabledElements.forEach(function(n){gu(n,e,t)})},mu=function(e,t){if(tt("globalConfiguration").configuration.globalToolSyncEnabled){var n=new e(t);void 0!==nt.state.globalTools[n.name]?vu.warn("%s has already been added globally",n.name):nt.state.globalTools[n.name]={tool:e,props:t,activeBindings:[]}}},pu=H("internals:addEnabledElement"),xu=function(e){pu.log("EVENT:ELEMENT_ENABLED");var t=e.detail.element;Lc(t),Zc(t);var n=tt("globalConfiguration").configuration;n.mouseEnabled&&(El.enable(t),Pl.enable(t),Yc(t)),n.touchEnabled&&(rc.enable(t),du(t)),yu(t)},yu=function(e){nt.state.enabledElements.push(e),nt.modules&&function(e){var t=nt.modules;Object.keys(t).forEach(function(n){"function"==typeof t[n].enabledElementCallback&&t[n].enabledElementCallback(e)})}(e),function(e){if(!tt("globalConfiguration").configuration.globalToolSyncEnabled)return;Object.keys(nt.state.globalTools).forEach(function(t){var n=nt.state.globalTools[t],a=n.tool,o=n.props;gu(e,a,o)})}(e),function(e){if(!tt("globalConfiguration").configuration.globalToolSyncEnabled)return;var t={active:ut,passive:mt,enabled:gt,disabled:ht};nt.state.globalToolChangeHistory.forEach(function(n){var a=n.args.slice(0);a.unshift(e),t[n.mode].apply(null,a)})}(e)};var Tu=H("internals:removeEnabledElement"),bu=function(e){Tu.log("EVENT:ELEMENT_DISABLED");var t=e.detail.element,n=tt("globalConfiguration").configuration;Oc(t),$c(t),n.mouseEnabled&&(El.disable(t),Pl.disable(t),Xc(t)),n.touchEnabled&&(rc.disable(t),hu(t)),Cu(t),Mu(t),Eu(t)},Cu=function(e){nt.state.tools=nt.state.tools.filter(function(t){return t.element!==e})},Mu=function(e){nt.modules&&function(e){var t=nt.modules;Object.keys(t).forEach(function(n){"function"==typeof t[n].removeEnabledElementCallback&&t[n].removeEnabledElementCallback(e)})}(e);var t=nt.state.enabledElements.findIndex(function(t){return t===e});t>-1?nt.state.enabledElements.splice(t,1):Tu.warn("unable to remove element")},Eu=function(e){Wr.removeHandlers(e)};var Iu,wu=function(){window.removeEventListener("resize",Su,!1)};function Su(){Iu||(Iu=setTimeout(function(){Iu=null,ku()},66))}var ku=function(){Je.enabledElements.forEach(function(e){x.cornerstone.resize(e)})},_u=function(){wu(),window.addEventListener("resize",Su,!1)},Pu=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(){!function(){var e=x.cornerstone,t=e.EVENTS.ELEMENT_ENABLED,n=e.EVENTS.ELEMENT_DISABLED;e.events.removeEventListener(t,xu),e.events.removeEventListener(n,bu)}();var e=x.cornerstone,t=e.EVENTS.ELEMENT_ENABLED,n=e.EVENTS.ELEMENT_DISABLED;e.events.addEventListener(t,xu),e.events.addEventListener(n,bu)}(),e=nt.modules,Object.keys(e).forEach(function(t){"function"==typeof e[t].onRegisterCallback&&e[t].onRegisterCallback()}),_u();var n=tt("globalConfiguration");n.configuration=Object.assign({},n.configuration,t)};var Du,Lu=H("stackTools:stackPrefetch"),Ou="stackPrefetch",Au="prefetch",Ru={maxImagesToPrefetch:1/0},Hu=10;var Uu=function(e){return Math.max.apply(null,e)},Nu=function(e){return Math.min.apply(null,e)};function Bu(e){var t=_(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0],a=_(e,Ou);if(a){var o=a.data[0]||{};if(o.indicesToRequest&&o.indicesToRequest.length||(o.enabled=!1),!1!==o.enabled)if(a.data[0].indicesToRequest.sort(function(e,t){return e-t}),o.indicesToRequest.slice().forEach(function(e){var t=n.imageIds[e];t&&(x.cornerstone.imageCache.getImageLoadObject(t)&&M(e))}),o.indicesToRequest.length){Fs.clearRequestStack(Au);for(var i,r,s,l,c,u,d=(i=o.indicesToRequest,r=n.currentImageIdIndex,s=[],l=[],i.forEach(function(e){e<r?s.push(e):e>r&&l.push(e)}),{low:i.indexOf(Uu(s)),high:i.indexOf(Nu(l))}),h=Wr.getErrorLoadingHandler(e),v=d.low,g=d.high;v>=0||g<o.indicesToRequest.length;){var f=n.currentImageIdIndex,m=f-o.indicesToRequest[v]>Ru.maxImagesToPrefetch,p=o.indicesToRequest[g]-f>Ru.maxImagesToPrefetch,y=!m&&v>=0,T=!p&&g<o.indicesToRequest.length;if(!T&&!y)break;y&&(u=o.indicesToRequest[v--],c=n.imageIds[u],Fs.addRequest(e,c,Au,!1,E,I)),T&&(u=o.indicesToRequest[g++],c=n.imageIds[u],Fs.addRequest(e,c,Au,!1,E,I))}Fs.startGrabbing()}}}function M(e){var t=o.indicesToRequest.indexOf(e);t>-1&&o.indicesToRequest.splice(t,1)}function E(t){Lu.log("prefetch done: %s",t.imageId);var a=n.imageIds.indexOf(t.imageId);M(a),C(e,b.STACK_PREFETCH_IMAGE_LOADED,{element:e,imageId:t.imageId,imageIndex:a,stackPrefetch:o,stack:n}),o.indicesToRequest&&o.indicesToRequest.length>0||C(e,b.STACK_PREFETCH_DONE,{element:e,stackPrefetch:o,stack:n})}function I(t){Lu.log("prefetch errored: %o",t),h&&h(e,c,t,"stackPrefetch")}}function Fu(e){return function(t){var n,a=t.detail;try{n=_(e,"stack")}catch(e){return}if(n&&n.data&&n.data.length){var o=n.data[0].imageIds.indexOf(a.imageId);if(!(o<0)){var i=_(e,Ou);i&&i.data&&i.data.length&&i.data[0].indicesToRequest.push(o)}}}}function Vu(e){clearTimeout(Du),Du=setTimeout(function(){var t=e.target;try{Bu(t)}catch(e){return}},Hu)}var qu={enable:function(e){_(e,Ou).data=[];var t=_(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0];if(!0!==n.preventCache){var a={indicesToRequest:function(e,t){e=Math.round(e)||0;var n=[],a=(t=Math.round(t)||0)-e+1;if(a<=0)return n;for(;a--;)n[a]=t--;return n}(0,n.imageIds.length-1),enabled:!0,direction:1},o=a.indicesToRequest.indexOf(n.currentImageIdIndex);a.indicesToRequest.splice(o,1),k(e,Ou,a),Bu(e),e.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,Vu),e.addEventListener(x.cornerstone.EVENTS.NEW_IMAGE,Vu);var i=Fu(e);x.cornerstone.events.removeEventListener(x.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,i),x.cornerstone.events.addEventListener(x.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,i)}else Lu.warn("A stack that should not be cached was given the stackPrefetch")}},disable:function(e){clearTimeout(Du),e.removeEventListener(x.cornerstone.EVENTS.NEW_IMAGE,Vu);var t=Fu(e);x.cornerstone.events.removeEventListener(x.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,t);var n=_(e,Ou);n&&n.data.length&&(n.data[0].enabled=!1,Fs.clearRequestStack(Au))},getConfiguration:function(){return Ru},setConfiguration:function(e){var t;Ru=e,e.maxSimultaneousRequests&&(t=e.maxSimultaneousRequests,vs=t)}},ju=function(){function e(){r()(this,e),this.currentImageIdIndex=0,this.layerIds=[],this.findImageFn=void 0}return l()(e,[{key:"render",value:function(e,t){var n=this;if(!Number.isInteger(this.currentImageIdIndex))throw new Error("FusionRenderer: render - Image ID Index is not an integer");if(!this.findImageFn)throw new Error("No findImage function has been defined");t||(t=_(e,"stack").data);var a=x.cornerstone,o=t[0],i=o.imageIds[this.currentImageIdIndex],r=t.slice(1,t.length);a.loadAndCacheImage(i).then(function(t){var s=n.layerIds[0];s?a.setLayerImage(e,t,s):(s=a.addLayer(e,t,o.options),n.layerIds.push(s)),a.displayImage(e,t),r.forEach(function(t,o){var r=n.findImageFn(t.imageIds,i),l=o+1,c=n.layerIds[l];c||(c=a.addLayer(e,void 0,t.options),n.layerIds.push(c)),r?a.loadAndCacheImage(r).then(function(t){a.setLayerImage(e,t,c),a.updateImage(e)}):(a.setLayerImage(e,void 0,c),a.setActiveLayer(e,s),a.updateImage(e))})})}}]),e}(),zu={};zu.FusionRenderer=ju;var Wu=zu,Gu="playClip";function Yu(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function Xu(e,t){var n,a;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=_(e,"stack");if(o&&o.data&&o.data.length){var i,r=x.cornerstone;if(o.data.length>1){var s=_(e,"stackRenderer");s&&s.data&&s.data.length&&(i=s.data[0])}var l=o.data[0],c=_(e,Gu);c&&c.data&&c.data.length?Yu(n=c.data[0]):k(e,Gu,n={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,frameRate:0,frameTimeVector:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,speed:1,reverse:!1,loop:!0}),(t<0||t>0)&&(n.framesPerSecond=Number(t),n.reverse=n.framesPerSecond<0,n.ignoreFrameTimeVector=!0),!0!==n.ignoreFrameTimeVector&&n.frameTimeVector&&n.frameTimeVector.length===l.imageIds.length&&(a=function(e,t){var n,a,o,i=0,r=e.length,s=[];for(s.isTimeVarying=!1,("number"!=typeof t||t<=0)&&(t=1),n=1;n<r;n++)o=Number(e[n])/t|0,s.push(o),1===n?a=o:o!==a&&(s.isTimeVarying=!0),i+=o;return s.length>0&&(o=s.isTimeVarying?i/s.length|0:s[0],s.push(o)),s}(n.frameTimeVector,n.speed));var u=function(){var t,a,s,c=l.currentImageIdIndex,u=l.imageIds.length;if(n.reverse?c--:c++,!n.loop&&(c<0||c>=u))return Yu(n),void function(e){var t={element:e};C(e,b.CLIP_STOPPED,t)}(e);c>=u&&(c=0),c<0&&(c=u-1),c!==l.currentImageIdIndex&&(t=Wr.getStartLoadHandler(e),a=Wr.getEndLoadHandler(e),s=Wr.getErrorLoadingHandler(e),t&&t(e),(!0===l.preventCache?r.loadImage(l.imageIds[c]):r.loadAndCacheImage(l.imageIds[c])).then(function(t){try{l.currentImageIdIndex=c,i?(i.currentImageIdIndex=c,i.render(e,o.data)):r.displayImage(e,t),a&&a(e,t)}catch(e){return}},function(t){var n=l.imageIds[c];s&&s(e,n,t)}))};a&&a.length>0&&a.isTimeVarying?(n.usingFrameTimeVector=!0,n.intervalId=setTimeout(function e(){n.intervalId=setTimeout(e,a[l.currentImageIdIndex]),u()},0)):(n.usingFrameTimeVector=!1,n.intervalId=setInterval(u,1e3/Math.abs(n.framesPerSecond)))}}function Ku(e){var t=_(e,Gu);t&&t.data&&t.data.length&&Yu(t.data[0])}var Zu=function(e,t){var n=nt.state.tools.findIndex(function(n){return n.element===e&&n.name===t});n>=0&&nt.state.tools.splice(n,1)},$u=function(e){Ju(e),nt.state.enabledElements.forEach(function(t){Zu(t,e)})},Ju=function(e){tt("globalConfiguration").configuration.globalToolSyncEnabled&&nt.state.globalTools[e]&&delete nt.state.globalTools[e]},Qu=function(e,t,n){var a=at(e,t);a&&a.mergeOptions(n)},ed=function(e,t){Je.enabledElements.forEach(function(n){Qu(n,e,t)})};function td(e,t){var n={};return{get:function(a,o){return e.indexOf(o)>=0?(!1===n.hasOwnProperty(o)&&(n[o]={data:[]}),n[o]):t.get(a,o)},add:function(a,o,i){if(!(e.indexOf(o)>=0))return t.add(a,o,i);!1===n.hasOwnProperty(o)&&(n[o]={data:[]}),n[o].data.push(i)},saveToolState:function(){return n},restoreToolState:function(e){n=e},toolState:n}}var nd=[];function ad(e,t){var n=S(e);n||(n=w);var a=["stack","stackPrefetch","playClip","volume","slab","referenceLines","crosshairs","stackRenderer"];t&&(a=a.concat(t));var o=td(a,n);nd.push(o),L(e,o)}var od={newStackSpecificToolStateManager:td,addStackStateManager:ad};function id(){var e={};return{get:function(t,n){if(!1!==e.hasOwnProperty(t)){var a=e[t];if(!1!==a.hasOwnProperty(n))return a[n]}},add:function(t,n,a){!1===e.hasOwnProperty(t)&&(e[t]={});var o=e[t];!1===o.hasOwnProperty(n)&&(o[n]={data:[]}),o[n].data.push(a)},remove:function(t,n,a){if(!1!==e.hasOwnProperty(t)){var o=e[t];if(!1!==o.hasOwnProperty(n)){for(var i=o[n],r=-1,s=0;s<i.data.length;s++)i.data[s]===a&&(r=s);-1!==r&&i.data.splice(r,1)}}}}}var rd=id(),sd={getOrientationString:function(e){for(var t=Rt(e),n="",a=t.x<0?"R":"L",o=t.y<0?"A":"P",i=t.z<0?"F":"H",r=new x.cornerstoneMath.Vector3(Math.abs(t.x),Math.abs(t.y),Math.abs(t.z)),s=0;s<3;s++)if(r.x>1e-4&&r.x>r.y&&r.x>r.z)n+=a,r.x=0;else if(r.y>1e-4&&r.y>r.x&&r.y>r.z)n+=o,r.y=0;else{if(!(r.z>1e-4&&r.z>r.x&&r.z>r.y))break;n+=i,r.z=0}return n},invertOrientationString:function(e){var t=e.replace("H","f");return t=(t=(t=(t=(t=(t=t.replace("F","h")).replace("R","l")).replace("L","r")).replace("A","p")).replace("P","a")).toUpperCase()}},ld=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"image/png",a=e.querySelector("canvas");if(a.msToBlob){var o=a.msToBlob();return window.navigator.msSaveBlob(o,t)}var i=document.createElement("a");if(i.download=t,i.href=a.toDataURL(n,1),document.createEvent){var r=document.createEvent("MouseEvents");r.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),i.dispatchEvent(r)}else i.fireEvent&&i.fireEvent("onclick")},cd=H("thirdParty:registerModule"),ud=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=function(e){return void 0!==et[e]}(e);!a||n?(a&&cd.warn("Overwriting module %s",e),et[e]=t,"function"==typeof et[e].onRegisterCallback&&et[e].onRegisterCallback()):cd.warn("A module with the name %s is already registered",e)};var dd={"base/BaseTool":Gn,"base/BaseAnnotationTool":ka,"base/BaseBrushTool":sa,"tools/cursors/MouseCursor":La,"tools/cursors":o,"manipulators/anyHandlesOutsideImage":$n,"manipulators/getHandleNearImagePoint":Kn,"manipulators/handleActivator":Zn,"manipulators/moveAllHandles":va,"manipulators/moveHandle":xa,"manipulators/moveNewHandle":Ca,"manipulators/moveHandleNearImagePoint":Ea,"manipulators/findHandleDataNearImagePoint":Ia,"manipulators/moveAnnotation":wa,"mixins/activeOrDisabledBinaryTool":Un.activeOrDisabledBinaryTool,"mixins/enabledOrDisabledBinaryTool":Un.enabledOrDisabledBinaryTool,"drawing/getNewContext":on,"drawing/draw":wt,"drawing/path":Pt,"drawing/setShadow":sn,"drawing/drawLine":Dt,"drawing/drawLines":Gt,"drawing/drawJoinedLines":Lt,"drawing/drawCircle":At,"drawing/drawEllipse":Ft,"drawing/drawRect":an,"drawing/fillOutsideRect":function(e,t,n,a,o){if("pixel"===(arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel")){var i=x.cornerstone;n=i.pixelToCanvas(t,n),a=i.pixelToCanvas(t,a)}var r=Math.min(n.x,a.x),s=Math.min(n.y,a.y),l=Math.abs(n.x-a.x),c=Math.abs(n.y-a.y);Pt(e,o,function(e){e.rect(0,0,e.canvas.clientWidth,e.canvas.clientHeight),e.rect(r+l,s,-l,c)})},"drawing/drawTextBox":tn,"drawing/drawArrow":Ot,"drawing/fillBox":Qt,"drawing/fillTextLines":Jt,"drawing/drawLink":Yt,"drawing/drawLinkedTextBox":nn,"drawing/drawHandles":Wt,"drawing/textBoxWidth":en,"util/getLuminance":Ys,"util/copyPoints":hl,"util/calculateSUV":Qo,"util/setContextToDisplayFontSize":function(e,t,n){return x.cornerstone.setToPixelCoordinateSystem(e,t,.1),{fontSize:n/e.viewport.scale/.1,lineHeight:n/e.viewport.scale/.1,fontScale:.1}},"util/scrollToIndex":Vs,"util/scroll":qs,"util/roundToDecimal":Pa,"util/projectPatientPointToImagePlane":Ht,"util/imagePointToPatientPoint":Ut,"util/planePlaneIntersection":Nt,"util/pointInsideBoundingBox":Yn,"util/makeUnselectable":function(e,t){e.style.webkitUserSelect="none",e.style.webkitTouchCallout="none",e.style.mozUserSelect="none",e.style.msUserSelect="none",e.style.oUserSelect="none",e.style.khtmlUserSelect="none",e.style.userSelect="none",e.unselectable="on",e.oncontextmenu=function(){return!1},!0===t&&(e.style.pointerEvents="none")},"util/getRGBPixels":Fi,"util/getDefaultSimultaneousRequests":Ps,"util/getMaxSimultaneousRequests":_s,"util/getBrowserInfo":ks,"util/isMobileDevice":function(){return new RegExp("Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini").test(navigator.userAgent)},"util/angleBetweenPoints":ms,"util/numbersWithCommas":ii,"util/lineSegDistance":_a,"util/triggerEvent":C,"util/convertToVector3":Rt,"util/clip":void 0,"util/clipToBox":Qn,"util/debounce":bo,"util/deepmerge":jn,"util/getDefault":rn,"util/getPixelSpacing":yo,"util/isEmptyObject":un,"util/isObject":To,"util/isPointInImage":De,"util/isPointInPolygon":dr,"util/getLogger":H,"util/throttle":Co,"util/wait":ds,"util/waitForEnabledElementImageToLoad":hs,"util/ellipseUtils":ai,"util/freehandUtils":_i,"util/segmentationUtils":a,"util/zoomUtils":tl},hd=H("thirdParty:registerMixin"),vd=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=function(e){return void 0!==Un[e]}(e);!a||n?(a&&hd.warn("Overwriting mixins/%s",e),Un[e]=t,dd["mixins/".concat(e)]=Un[e]):hd.warn("mixins/%s is already registered",e)};var gd=H("thirdParty:registerType"),fd=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o="".concat(e,"/").concat(t),i=function(e){return void 0!==dd[e]}(o);!i||a?(i&&gd.warn("Overwriting %s",o),dd[o]=n):gd.warn("%s is already registered",o)};var md=H("thirdParty:register"),pd=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(function(e,t,n){if(!e)return md.warn("The type must be given in order to register."),!1;if(!t)return md.warn("The %s must have a name in order to register.",e),!1;if("object"!==T()(n)&&"function"!=typeof n)return md.warn("The %s is a %s, it should be an Object or a function.",n,T()(n)),!1;return!0}(e,t,n))switch(e){case"module":ud(t,n,a);break;case"mixin":vd(t,n,a);break;default:fd(e,t,n,a)}};var xd=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.forEach(function(e){var n=e.type,a=e.name,o=e.item;pd(n,a,o,t)})},yd=function(e,t,n){if(n!==t){var a=x.cornerstone,o=a.getViewport(t),i=a.getViewport(n);i.voi.windowWidth===o.voi.windowWidth&&i.voi.windowCenter===o.voi.windowCenter&&i.invert===o.invert||(i.voi.windowWidth=o.voi.windowWidth,i.voi.windowCenter=o.voi.windowCenter,i.invert=o.invert,e.setViewport(n,i))}},Td=function(e,t,n){n!==t&&x.cornerstone.updateImage(n)};function bd(e){return e.filter(function(e,t,n){return n.indexOf(e)===t})}var Cd=function(e,t){var n=x.cornerstone,a=this,o=[],i=[],r=!1,s={},l=t;function c(e,t){var n=!a.enabled,c=!o.length||!i.length;n||c||(r=!0,i.forEach(function(n){var r=i.indexOf(n);if(-1!==r){var c=s.imageIds.targetElements[r],u=o.indexOf(e);if(-1!==u){var d,h=s.imageIds.sourceElements[u];h===c?d=0:void 0!==s.distances[h]&&(d=s.distances[h][c]),l(a,e,n,t,d)}}}),r=!1)}function u(e){var t=e.detail;!0!==r&&c(e.currentTarget,t)}function d(e){var t=e.detail.element;a.remove(t),function(e){for(var t in Gr)Gr[t]=Gr[t].filter(function(t){return t.element!==e})}(t)}this.enabled=!0,this.setHandler=function(e){l=e},this.getHandler=function(){return l},this.getDistances=function(){o.length&&i.length&&(s.distances={},s.imageIds={sourceElements:[],targetElements:[]},o.forEach(function(e){var t=n.getEnabledElement(e);if(t&&t.image){var a=t.image.imageId,o=n.metaData.get("imagePlaneModule",a);if(o&&o.imagePositionPatient){var r=Rt(o.imagePositionPatient);s.hasOwnProperty(t)||(s.distances[a]={},s.imageIds.sourceElements.push(a),i.forEach(function(t){var o=n.getEnabledElement(t);if(o&&o.image){var i=o.image.imageId;if(s.imageIds.targetElements.push(i),e!==t&&a!==i&&!s.distances[a].hasOwnProperty(i)){var l=n.metaData.get("imagePlaneModule",i);if(l&&l.imagePositionPatient){var c=Rt(l.imagePositionPatient);s.distances[a][i]=c.clone().sub(r)}}}}),Object.keys(s.distances[a]).length||delete s.distances[a])}}}))},this.addSource=function(t){-1===o.indexOf(t)&&(o.push(t),e.split(" ").forEach(function(e){t.addEventListener(e,u)}),a.getDistances(),a.updateDisableHandlers())},this.addTarget=function(e){-1===i.indexOf(e)&&(i.push(e),a.getDistances(),l(a,e,e,0),a.updateDisableHandlers())},this.add=function(e){a.addSource(e),a.addTarget(e)},this.removeSource=function(t){var n=o.indexOf(t);-1!==n&&(o.splice(n,1),e.split(" ").forEach(function(e){t.removeEventListener(e,u)}),a.getDistances(),c(t),a.updateDisableHandlers())},this.removeTarget=function(e){var t=i.indexOf(e);-1!==t&&(i.splice(t,1),a.getDistances(),l(a,e,e,0),a.updateDisableHandlers())},this.remove=function(e){a.removeTarget(e),a.removeSource(e)},this.getSourceElements=function(){return o},this.getTargetElements=function(){return i},this.displayImage=function(e,t,a){r=!0,n.displayImage(e,t,a),r=!1},this.setViewport=function(e,t){r=!0,n.setViewport(e,t),r=!1},this.updateDisableHandlers=function(){bd(o.concat(i)).forEach(function(e){e.removeEventListener(x.cornerstone.EVENTS.ELEMENT_DISABLED,d),e.addEventListener(x.cornerstone.EVENTS.ELEMENT_DISABLED,d)})},this.destroy=function(){bd(o.concat(i)).forEach(function(e){a.remove(e)})}},Md=function(e,t,n,a){if(t!==n&&a&&a.direction){var o=x.cornerstone,i=_(n,"stack").data[0],r=i.currentImageIdIndex+a.direction;if(r=Jn(r,0,i.imageIds.length-1),i.currentImageIdIndex!==r){var s=Wr.getStartLoadHandler(n),l=Wr.getEndLoadHandler(n),c=Wr.getErrorLoadingHandler(n);i.currentImageIdIndex=r;var u=i.imageIds[r];s&&s(n),(!0===i.preventCache?o.loadImage(u):o.loadAndCacheImage(u)).then(function(t){var a=o.getViewport(n);i.currentImageIdIndex===r&&(e.displayImage(n,t,a),l&&l(n,t))},function(e){var t=i.imageIds[r];c&&c(n,t,e)})}}},Ed=function(e,t,n){if(n!==t){var a=x.cornerstone,o=_(t,"stack").data[0],i=o.imageIds[o.currentImageIdIndex],r=a.metaData.get("imagePlaneModule",i);if(void 0!==r&&void 0!==r.imagePositionPatient){var s=Rt(r.imagePositionPatient),l=_(n,"stack").data[0],c=Number.MAX_VALUE,u=-1;if(l.imageIds.forEach(function(e,t){var n=a.metaData.get("imagePlaneModule",e);if(void 0!==n&&void 0!==n.imagePositionPatient){var o=Rt(n.imagePositionPatient).distanceToSquared(s);o<c&&(c=o,u=t)}}),u!==l.currentImageIdIndex){var d=Wr.getStartLoadHandler(n),h=Wr.getEndLoadHandler(n),v=Wr.getErrorLoadingHandler(n);l.currentImageIdIndex=u;var g=l.imageIds[u];if(d&&d(n),-1!==u)(!0===l.preventCache?a.loadImage(g):a.loadAndCacheImage(g)).then(function(t){var o=a.getViewport(n);l.currentImageIdIndex===u&&(e.displayImage(n,t,o),h&&h(n,t))},function(e){var t=l.imageIds[u];v&&v(n,t,e)})}}}},Id=function(e,t,n,a,o){if(n!==t){var i=x.cornerstone,r=_(t,"stack").data[0],s=r.imageIds[r.currentImageIdIndex],l=i.metaData.get("imagePlaneModule",s);if(void 0!==l&&void 0!==l.imagePositionPatient){var c=Rt(l.imagePositionPatient),u=_(n,"stack").data[0],d=Number.MAX_VALUE,h=-1;if(o){var v=c.clone().add(o);if(u.imageIds.forEach(function(e,t){var n=i.metaData.get("imagePlaneModule",e);if(void 0!==n&&void 0!==n.imagePositionPatient){var a=Rt(n.imagePositionPatient),o=v.distanceToSquared(a);o<d&&(d=o,h=t)}}),h!==u.currentImageIdIndex&&-1!==h){var g=Wr.getStartLoadHandler(n),f=Wr.getEndLoadHandler(n),m=Wr.getErrorLoadingHandler(n);u.currentImageIdIndex=h;var p=u.imageIds[h];g&&g(n),(!0===u.preventCache?i.loadImage(p):i.loadAndCacheImage(p)).then(function(t){var a=i.getViewport(n);u.currentImageIdIndex===h&&(e.displayImage(n,t,a),f&&f(n,t))},function(e){var t=u.imageIds[h];m&&m(n,t,e)})}}}}},wd=function(e,t,n){if(n!==t){var a=x.cornerstone,o=_(t,"stack").data[0],i=_(n,"stack").data[0],r=o.currentImageIdIndex;if((r=Jn(r,0,i.imageIds.length-1))!==i.currentImageIdIndex){var s=Wr.getStartLoadHandler(n),l=Wr.getEndLoadHandler(n),c=Wr.getErrorLoadingHandler(n);s&&s(n),(!0===i.preventCache?a.loadImage(i.imageIds[r]):a.loadAndCacheImage(i.imageIds[r])).then(function(t){var o=a.getViewport(n);i.currentImageIdIndex=r,e.displayImage(n,t,o),l&&l(n,t)},function(e){var t=i.imageIds[r];c&&c(n,t,e)})}}},Sd=function(e,t,n){if(n!==t){var a=x.cornerstone,o=a.getViewport(t),i=a.getViewport(n);i.scale===o.scale&&i.translation.x===o.translation.x&&i.translation.y===o.translation.y||(i.scale=o.scale,i.translation.x=o.translation.x,i.translation.y=o.translation.y,e.setViewport(n,i))}},kd=function(e){return dd[e]};n.d(t,"AngleTool",function(){return Mo}),n.d(t,"ArrowAnnotateTool",function(){return Io}),n.d(t,"BidirectionalTool",function(){return Jo}),n.d(t,"CircleRoiTool",function(){return si}),n.d(t,"CobbAngleTool",function(){return ui}),n.d(t,"EllipticalRoiTool",function(){return hi}),n.d(t,"FreehandRoiTool",function(){return Hi}),n.d(t,"LengthTool",function(){return Bi}),n.d(t,"ProbeTool",function(){return qi}),n.d(t,"RectangleRoiTool",function(){return zi}),n.d(t,"TextMarkerTool",function(){return Xi}),n.d(t,"BrushTool",function(){return Qi}),n.d(t,"SphericalBrushTool",function(){return ir}),n.d(t,"RectangleScissorsTool",function(){return Ur}),n.d(t,"FreehandScissorsTool",function(){return Hr}),n.d(t,"CircleScissorsTool",function(){return Nr}),n.d(t,"CorrectionScissorsTool",function(){return Br}),n.d(t,"CrosshairsTool",function(){return Kr}),n.d(t,"DoubleTapFitToWindowTool",function(){return Zr}),n.d(t,"DragProbeTool",function(){return $r}),n.d(t,"EraserTool",function(){return es}),n.d(t,"FreehandRoiSculptorTool",function(){return ns}),n.d(t,"MagnifyTool",function(){return as}),n.d(t,"PanMultiTouchTool",function(){return os}),n.d(t,"PanTool",function(){return is}),n.d(t,"ReferenceLinesTool",function(){return fs}),n.d(t,"RotateTool",function(){return ps}),n.d(t,"RotateTouchTool",function(){return bs}),n.d(t,"ScaleOverlayTool",function(){return Ms}),n.d(t,"StackScrollMouseWheelTool",function(){return zs}),n.d(t,"StackScrollMultiTouchTool",function(){return Ws}),n.d(t,"StackScrollTool",function(){return Gs}),n.d(t,"WwwcRegionTool",function(){return Xs}),n.d(t,"WwwcTool",function(){return Js}),n.d(t,"ZoomMouseWheelTool",function(){return nl}),n.d(t,"ZoomTool",function(){return il}),n.d(t,"ZoomTouchPinchTool",function(){return dl}),n.d(t,"init",function(){return Pu}),n.d(t,"stackPrefetch",function(){return qu}),n.d(t,"stackRenderers",function(){return Wu}),n.d(t,"playClip",function(){return Xu}),n.d(t,"stopClip",function(){return Ku}),n.d(t,"store",function(){return nt}),n.d(t,"getModule",function(){return tt}),n.d(t,"getToolForElement",function(){return at}),n.d(t,"addTool",function(){return fu}),n.d(t,"addToolForElement",function(){return gu}),n.d(t,"removeTool",function(){return $u}),n.d(t,"removeToolForElement",function(){return Zu}),n.d(t,"setToolOptions",function(){return ed}),n.d(t,"setToolOptionsForElement",function(){return Qu}),n.d(t,"setToolActive",function(){return dt}),n.d(t,"setToolActiveForElement",function(){return ut}),n.d(t,"setToolEnabled",function(){return ft}),n.d(t,"setToolEnabledForElement",function(){return gt}),n.d(t,"setToolDisabled",function(){return vt}),n.d(t,"setToolDisabledForElement",function(){return ht}),n.d(t,"setToolPassive",function(){return pt}),n.d(t,"setToolPassiveForElement",function(){return mt}),n.d(t,"addToolState",function(){return k}),n.d(t,"getToolState",function(){return _}),n.d(t,"removeToolState",function(){return P}),n.d(t,"clearToolState",function(){return D}),n.d(t,"setElementToolStateManager",function(){return L}),n.d(t,"getElementToolStateManager",function(){return S}),n.d(t,"textStyle",function(){return $t}),n.d(t,"toolStyle",function(){return _t}),n.d(t,"toolColors",function(){return zt}),n.d(t,"toolCoordinates",function(){return Ho}),n.d(t,"stackSpecificStateManager",function(){return od}),n.d(t,"newStackSpecificToolStateManager",function(){return td}),n.d(t,"addStackStateManager",function(){return ad}),n.d(t,"loadHandlerManager",function(){return Wr}),n.d(t,"newImageIdSpecificToolStateManager",function(){return I}),n.d(t,"globalImageIdSpecificToolStateManager",function(){return w}),n.d(t,"newFrameOfReferenceSpecificToolStateManager",function(){return id}),n.d(t,"globalFrameOfReferenceSpecificToolStateManager",function(){return rd}),n.d(t,"forceEnabledElementResize",function(){return ku}),n.d(t,"orientation",function(){return sd}),n.d(t,"SaveAs",function(){return ld}),n.d(t,"enableLogger",function(){return U}),n.d(t,"disableLogger",function(){return N}),n.d(t,"register",function(){return pd}),n.d(t,"registerSome",function(){return xd}),n.d(t,"wwwcSynchronizer",function(){return yd}),n.d(t,"updateImageSynchronizer",function(){return Td}),n.d(t,"Synchronizer",function(){return Cd}),n.d(t,"stackScrollSynchronizer",function(){return Md}),n.d(t,"stackImagePositionSynchronizer",function(){return Ed}),n.d(t,"stackImagePositionOffsetSynchronizer",function(){return Id}),n.d(t,"stackImageIndexSynchronizer",function(){return wd}),n.d(t,"panZoomSynchronizer",function(){return Sd}),n.d(t,"requestPoolManager",function(){return Fs}),n.d(t,"importInternal",function(){return kd}),n.d(t,"external",function(){return x}),n.d(t,"EVENTS",function(){return b}),n.d(t,"version",function(){return"4.0.0-beta.4835"}),n.d(t,"import",function(){return kd});var _d={AngleTool:Mo,ArrowAnnotateTool:Io,BidirectionalTool:Jo,CircleRoiTool:si,CobbAngleTool:ui,EllipticalRoiTool:hi,FreehandRoiTool:Hi,LengthTool:Bi,ProbeTool:qi,RectangleRoiTool:zi,TextMarkerTool:Xi,BrushTool:Qi,SphericalBrushTool:ir,RectangleScissorsTool:Ur,FreehandScissorsTool:Hr,CircleScissorsTool:Nr,CorrectionScissorsTool:Br,CrosshairsTool:Kr,DoubleTapFitToWindowTool:Zr,DragProbeTool:$r,EraserTool:es,FreehandRoiSculptorTool:ns,MagnifyTool:as,PanMultiTouchTool:os,PanTool:is,ReferenceLinesTool:fs,RotateTool:ps,RotateTouchTool:bs,ScaleOverlayTool:Ms,StackScrollMouseWheelTool:zs,StackScrollMultiTouchTool:Ws,StackScrollTool:Gs,WwwcRegionTool:Xs,WwwcTool:Js,ZoomMouseWheelTool:nl,ZoomTool:il,ZoomTouchPinchTool:dl,init:Pu,stackPrefetch:qu,stackRenderers:Wu,playClip:Xu,stopClip:Ku,store:nt,getModule:tt,getToolForElement:at,addTool:fu,addToolForElement:gu,removeTool:$u,removeToolForElement:Zu,setToolOptions:ed,setToolOptionsForElement:Qu,setToolActive:dt,setToolActiveForElement:ut,setToolEnabled:ft,setToolEnabledForElement:gt,setToolDisabled:vt,setToolDisabledForElement:ht,setToolPassive:pt,setToolPassiveForElement:mt,addToolState:k,getToolState:_,removeToolState:P,clearToolState:D,setElementToolStateManager:L,getElementToolStateManager:S,textStyle:$t,toolStyle:_t,toolColors:zt,toolCoordinates:Ho,stackSpecificStateManager:od,newStackSpecificToolStateManager:td,addStackStateManager:ad,loadHandlerManager:Wr,newImageIdSpecificToolStateManager:I,globalImageIdSpecificToolStateManager:w,newFrameOfReferenceSpecificToolStateManager:id,globalFrameOfReferenceSpecificToolStateManager:rd,forceEnabledElementResize:ku,orientation:sd,SaveAs:ld,enableLogger:U,disableLogger:N,importInternal:kd,import:kd,register:pd,registerSome:xd,wwwcSynchronizer:yd,updateImageSynchronizer:Td,Synchronizer:Cd,stackScrollSynchronizer:Md,stackImagePositionSynchronizer:Ed,stackImagePositionOffsetSynchronizer:Id,stackImageIndexSynchronizer:wd,panZoomSynchronizer:Sd,requestPoolManager:Fs,external:x,EVENTS:b,version:"4.0.0-beta.4835"};t.default=_d},function(e,t){!function(t){"use strict";var n,a=Object.prototype,o=a.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},r=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag",c="object"==typeof e,u=t.regeneratorRuntime;if(u)c&&(e.exports=u);else{(u=t.regeneratorRuntime=c?e.exports:{}).wrap=T;var d="suspendedStart",h="suspendedYield",v="executing",g="completed",f={},m={};m[r]=function(){return this};var p=Object.getPrototypeOf,x=p&&p(p(D([])));x&&x!==a&&o.call(x,r)&&(m=x);var y=E.prototype=C.prototype=Object.create(m);M.prototype=y.constructor=E,E.constructor=M,E[l]=M.displayName="GeneratorFunction",u.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===M||"GeneratorFunction"===(t.displayName||t.name))},u.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,E):(e.__proto__=E,l in e||(e[l]="GeneratorFunction")),e.prototype=Object.create(y),e},u.awrap=function(e){return{__await:e}},I(w.prototype),w.prototype[s]=function(){return this},u.AsyncIterator=w,u.async=function(e,t,n,a){var o=new w(T(e,t,n,a));return u.isGeneratorFunction(t)?o:o.next().then(function(e){return e.done?e.value:o.next()})},I(y),y[l]="Generator",y[r]=function(){return this},y.toString=function(){return"[object Generator]"},u.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var a=t.pop();if(a in e)return n.value=a,n.done=!1,n}return n.done=!0,n}},u.values=D,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(_),!e)for(var t in this)"t"===t.charAt(0)&&o.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function a(a,o){return s.type="throw",s.arg=e,t.next=a,o&&(t.method="next",t.arg=n),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var r=this.tryEntries[i],s=r.completion;if("root"===r.tryLoc)return a("end");if(r.tryLoc<=this.prev){var l=o.call(r,"catchLoc"),c=o.call(r,"finallyLoc");if(l&&c){if(this.prev<r.catchLoc)return a(r.catchLoc,!0);if(this.prev<r.finallyLoc)return a(r.finallyLoc)}else if(l){if(this.prev<r.catchLoc)return a(r.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<r.finallyLoc)return a(r.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&o.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var r=i?i.completion:{};return r.type=e,r.arg=t,i?(this.method="next",this.next=i.finallyLoc,f):this.complete(r)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),_(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var o=a.arg;_(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,a){return this.delegate={iterator:D(e),resultName:t,nextLoc:a},"next"===this.method&&(this.arg=n),f}}}function T(e,t,n,a){var o=t&&t.prototype instanceof C?t:C,i=Object.create(o.prototype),r=new P(a||[]);return i._invoke=function(e,t,n){var a=d;return function(o,i){if(a===v)throw new Error("Generator is already running");if(a===g){if("throw"===o)throw i;return L()}for(n.method=o,n.arg=i;;){var r=n.delegate;if(r){var s=S(r,n);if(s){if(s===f)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(a===d)throw a=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a=v;var l=b(e,t,n);if("normal"===l.type){if(a=n.done?g:h,l.arg===f)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(a=g,n.method="throw",n.arg=l.arg)}}}(e,n,r),i}function b(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function C(){}function M(){}function E(){}function I(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function w(e){var t;this._invoke=function(n,a){function i(){return new Promise(function(t,i){!function t(n,a,i,r){var s=b(e[n],e,a);if("throw"!==s.type){var l=s.arg,c=l.value;return c&&"object"==typeof c&&o.call(c,"__await")?Promise.resolve(c.__await).then(function(e){t("next",e,i,r)},function(e){t("throw",e,i,r)}):Promise.resolve(c).then(function(e){l.value=e,i(l)},function(e){return t("throw",e,i,r)})}r(s.arg)}(n,a,t,i)})}return t=t?t.then(i,i):i()}}function S(e,t){var a=e.iterator[t.method];if(a===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,S(e,t),"throw"===t.method))return f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var o=b(a,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,f;var i=o.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,f):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function D(e){if(e){var t=e[r];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var a=-1,i=function t(){for(;++a<e.length;)if(o.call(e,a))return t.value=e[a],t.done=!1,t;return t.value=n,t.done=!0,t};return i.next=i}}return{next:L}}function L(){return{value:n,done:!0}}}(function(){return this||"object"==typeof self&&self}()||Function("return this")())},function(e,t,n){var a=function(){return this||"object"==typeof self&&self}()||Function("return this")(),o=a.regeneratorRuntime&&Object.getOwnPropertyNames(a).indexOf("regeneratorRuntime")>=0,i=o&&a.regeneratorRuntime;if(a.regeneratorRuntime=void 0,e.exports=n(13),o)a.regeneratorRuntime=i;else try{delete a.regeneratorRuntime}catch(e){a.regeneratorRuntime=void 0}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=function(e,t){var n=[],a=!0,o=!1,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(a=(r=s.next()).done)&&(n.push(r.value),!t||n.length!==t);a=!0);}catch(e){o=!0,i=e}finally{try{a||null==s.return||s.return()}finally{if(o)throw i}}return n}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t){var n=1e3,a=60*n,o=60*a,i=24*o,r=7*i,s=365.25*i;function l(e,t,n,a){var o=t>=1.5*n;return Math.round(e/n)+" "+a+(o?"s":"")}e.exports=function(e,t){t=t||{};var c=typeof e;if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var l=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*s;case"weeks":case"week":case"w":return l*r;case"days":case"day":case"d":return l*i;case"hours":case"hour":case"hrs":case"hr":case"h":return l*o;case"minutes":case"minute":case"mins":case"min":case"m":return l*a;case"seconds":case"second":case"secs":case"sec":case"s":return l*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:return}}(e);if("number"===c&&!1===isNaN(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return l(e,t,i,"day");if(t>=o)return l(e,t,o,"hour");if(t>=a)return l(e,t,a,"minute");if(t>=n)return l(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=i)return Math.round(e/i)+"d";if(t>=o)return Math.round(e/o)+"h";if(t>=a)return Math.round(e/a)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){e.exports=function(e){function t(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return a.colors[Math.abs(t)%a.colors.length]}function a(e){let n;function r(...e){if(!r.enabled)return;const t=r,o=Number(new Date),i=o-(n||o);t.diff=i,t.prev=n,t.curr=o,n=o,e[0]=a.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,o)=>{if("%%"===n)return n;s++;const i=a.formatters[o];if("function"==typeof i){const a=e[s];n=i.call(t,a),e.splice(s,1),s--}return n}),a.formatArgs.call(t,e),(t.log||a.log).apply(t,e)}return r.namespace=e,r.enabled=a.enabled(e),r.useColors=a.useColors(),r.color=t(e),r.destroy=o,r.extend=i,"function"==typeof a.init&&a.init(r),a.instances.push(r),r}function o(){const e=a.instances.indexOf(this);return-1!==e&&(a.instances.splice(e,1),!0)}function i(e,t){const n=a(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function r(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(e){return e instanceof Error?e.stack||e.message:e},a.disable=function(){const e=[...a.names.map(r),...a.skips.map(r).map(e=>"-"+e)].join(",");return a.enable(""),e},a.enable=function(e){let t;a.save(e),a.names=[],a.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),o=n.length;for(t=0;t<o;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?a.skips.push(new RegExp("^"+e.substr(1)+"$")):a.names.push(new RegExp("^"+e+"$")));for(t=0;t<a.instances.length;t++){const e=a.instances[t];e.enabled=a.enabled(e.namespace)}},a.enabled=function(e){if("*"===e[e.length-1])return!0;let t,n;for(t=0,n=a.skips.length;t<n;t++)if(a.skips[t].test(e))return!1;for(t=0,n=a.names.length;t<n;t++)if(a.names[t].test(e))return!0;return!1},a.humanize=n(21),Object.keys(e).forEach(t=>{a[t]=e[t]}),a.instances=[],a.names=[],a.skips=[],a.formatters={},a.selectColor=t,a.enable(a.load()),a}},function(e,t){var n,a,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{a="function"==typeof clearTimeout?clearTimeout:r}catch(e){a=r}}();var l,c=[],u=!1,d=-1;function h(){u&&l&&(u=!1,l.length?c=l.concat(c):d=-1,c.length&&v())}function v(){if(!u){var e=s(h);u=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,u=!1,function(e){if(a===clearTimeout)return clearTimeout(e);if((a===r||!a)&&clearTimeout)return a=clearTimeout,clearTimeout(e);try{a(e)}catch(t){try{return a.call(null,e)}catch(t){return a.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function f(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new g(e,t)),1!==c.length||u||s(v)},g.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=f,o.addListener=f,o.once=f,o.off=f,o.removeListener=f,o.removeAllListeners=f,o.emit=f,o.prependListener=f,o.prependOnceListener=f,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t){function n(t,a){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,a)}e.exports=n}])});
//# sourceMappingURL=cornerstoneTools.min.js.map