Files
penracourses/static/js/cornerstone/cornerstoneWADOImageLoader.js
T
Ross 39e93932b7 .
2021-12-04 16:09:12 +00:00

4 lines
304 KiB
JavaScript

/*! cornerstone-tools - 6.0.6 - 2021-11-09 | (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,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},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=25)}([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){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(8),o=n(5);e.exports=function(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?o(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(14);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){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(16),o=n(17),i=n(18);e.exports=function(e){return a(e)||o(e)||i()}},function(e,t,n){var a=n(20),o=n(21),i=n(22);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){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";(function(e){var a=n(12),o={formatArgs:function(e){if(e[0]="".concat((this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" "),"+").concat(i.humanize(this.diff)),!this.useColors)return;var t="color: ".concat(this.color);e.splice(1,0,t,"color: inherit");var n=0,a=0;e[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(n++,"%c"===e&&(a=n))})),e.splice(a,0,t)},save:function(e){try{e?o.storage.setItem("debug",e):o.storage.removeItem("debug")}catch(e){}},load:function(){var t;try{t=o.storage.getItem("debug")}catch(e){}!t&&void 0!==e&&"env"in e&&(t=e.env.DEBUG);return 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+)/)},storage:function(){try{return localStorage}catch(e){}}()};o.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"],o.log=console.debug||console.log||function(){};var i=Object(a.a)(o);i.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: ".concat(e.message)}},t.a=i}).call(this,n(15))},function(e,t,n){e.exports=n(23)},function(e,t,n){"use strict";var a=n(6),o=n.n(a);t.a=function(e){function t(e){for(var t=0,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){var n;function o(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if(o.enabled){var r=o,s=Number(new Date),l=s-(n||s);r.diff=l,r.prev=n,r.curr=s,n=s,t[0]=a.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var c=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;c++;var o=a.formatters[n];if("function"==typeof o){var i=t[c];e=o.call(r,i),t.splice(c,1),c--}return e})),a.formatArgs.call(r,t);var u=r.log||a.log;u.apply(r,t)}}return o.namespace=e,o.enabled=a.enabled(e),o.useColors=a.useColors(),o.color=t(e),o.destroy=i,o.extend=r,"function"==typeof a.init&&a.init(o),a.instances.push(o),o}function i(){var e=a.instances.indexOf(this);return-1!==e&&(a.instances.splice(e,1),!0)}function r(e,t){var n=a(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function s(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},a.disable=function(){var e=[].concat(o()(a.names.map(s)),o()(a.skips.map(s).map((function(e){return"-".concat(e)})))).join(",");return a.enable(""),e},a.enable=function(e){var t;a.save(e),a.names=[],a.skips=[];var 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("^".concat(e.substr(1),"$"))):a.names.push(new RegExp("^".concat(e,"$"))));for(t=0;t<a.instances.length;t++){var i=a.instances[t];i.enabled=a.enabled(i.namespace)}},a.enabled=function(e){if("*"===e[e.length-1])return!0;var 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(19),Object.keys(e).forEach((function(t){a[t]=e[t]})),a.instances=[],a.names=[],a.skips=[],a.formatters={},a.selectColor=t,a.enable(a.load()),a}},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){function n(t,a){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,a)}e.exports=n},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){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){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(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t){var n=1e3,a=6e4,o=60*a,i=24*o;function r(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 s=typeof e;if("string"===s&&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 r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*r;case"weeks":case"week":case"w":return 6048e5*r;case"days":case"day":case"d":return r*i;case"hours":case"hour":case"hrs":case"hr":case"h":return r*o;case"minutes":case"minute":case"mins":case"min":case"m":return r*a;case"seconds":case"second":case"secs":case"sec":case"s":return r*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}(e);if("number"===s&&!1===isNaN(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return r(e,t,i,"day");if(t>=o)return r(e,t,o,"hour");if(t>=a)return r(e,t,a,"minute");if(t>=n)return r(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){e.exports=function(e){if(Array.isArray(e))return e}},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(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},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(24),o)a.regeneratorRuntime=i;else try{delete a.regeneratorRuntime}catch(e){a.regeneratorRuntime=void 0}},function(e,t){!function(t){"use strict";var n=Object.prototype,a=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",r=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag",l="object"==typeof e,c=t.regeneratorRuntime;if(c)l&&(e.exports=c);else{(c=t.regeneratorRuntime=l?e.exports:{}).wrap=f;var u={},d={};d[i]=function(){return this};var h=Object.getPrototypeOf,v=h&&h(h(I([])));v&&v!==n&&a.call(v,i)&&(d=v);var g=x.prototype=p.prototype=Object.create(d);y.prototype=g.constructor=x,x.constructor=y,x[s]=y.displayName="GeneratorFunction",c.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,x):(e.__proto__=x,s in e||(e[s]="GeneratorFunction")),e.prototype=Object.create(g),e},c.awrap=function(e){return{__await:e}},T(b.prototype),b.prototype[r]=function(){return this},c.AsyncIterator=b,c.async=function(e,t,n,a){var o=new b(f(e,t,n,a));return c.isGeneratorFunction(t)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},T(g),g[s]="Generator",g[i]=function(){return this},g.toString=function(){return"[object Generator]"},c.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}},c.values=I,w.prototype={constructor:w,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},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 n(n,a){return r.type="throw",r.arg=e,t.next=n,a&&(t.method="next",t.arg=void 0),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],r=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),l=a.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&a.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var r=i?i.completion:{};return r.type=e,r.arg=t,i?(this.method="next",this.next=i.finallyLoc,u):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),u},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),E(n),u}},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;E(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:I(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}}}function f(e,t,n,a){var o=t&&t.prototype instanceof p?t:p,i=Object.create(o.prototype),r=new w(a||[]);return i._invoke=function(e,t,n){var a="suspendedStart";return function(o,i){if("executing"===a)throw new Error("Generator is already running");if("completed"===a){if("throw"===o)throw i;return S()}for(n.method=o,n.arg=i;;){var r=n.delegate;if(r){var s=C(r,n);if(s){if(s===u)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===a)throw a="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);a="executing";var l=m(e,t,n);if("normal"===l.type){if(a=n.done?"completed":"suspendedYield",l.arg===u)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(a="completed",n.method="throw",n.arg=l.arg)}}}(e,n,r),i}function m(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function p(){}function y(){}function x(){}function T(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function b(e){var t;this._invoke=function(n,o){function i(){return new Promise((function(t,i){!function t(n,o,i,r){var s=m(e[n],e,o);if("throw"!==s.type){var l=s.arg,c=l.value;return c&&"object"==typeof c&&a.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,o,t,i)}))}return t=t?t.then(i,i):i()}}function C(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,C(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var a=m(n,e.iterator,t.arg);if("throw"===a.type)return t.method="throw",t.arg=a.arg,t.delegate=null,u;var o=a.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function M(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(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function w(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(M,this),this.reset(!0)}function I(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(a.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}}(function(){return this||"object"==typeof self&&self}()||Function("return this")())},function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"drawBrushPixels",(function(){return te})),n.d(a,"eraseIfSegmentIndex",(function(){return ee})),n.d(a,"eraseOutsideBoundingBox",(function(){return ne})),n.d(a,"eraseInsideShape",(function(){return se})),n.d(a,"eraseOutsideShape",(function(){return le})),n.d(a,"fillOutsideBoundingBox",(function(){return ce})),n.d(a,"fillInsideShape",(function(){return he})),n.d(a,"fillOutsideShape",(function(){return ve})),n.d(a,"floodFill",(function(){return ge})),n.d(a,"getBoundingBoxAroundCircle",(function(){return xe})),n.d(a,"getBoundingBoxAroundPolygon",(function(){return Te})),n.d(a,"getCircle",(function(){return be})),n.d(a,"getPixelPathBetweenPixels",(function(){return Ee})),n.d(a,"isSameSegment",(function(){return ie})),n.d(a,"triggerLabelmapModifiedEvent",(function(){return Oe})),n.d(a,"getDiffBetweenPixelData",(function(){return Le}));var o={};n.r(o),n.d(o,"angleCursor",(function(){return To})),n.d(o,"arrowAnnotateCursor",(function(){return bo})),n.d(o,"bidirectionalCursor",(function(){return Co})),n.d(o,"cobbAngleCursor",(function(){return Mo})),n.d(o,"circleRoiCursor",(function(){return Eo})),n.d(o,"ellipticalRoiCursor",(function(){return wo})),n.d(o,"freehandRoiCursor",(function(){return Io})),n.d(o,"freehandRoiSculptorCursor",(function(){return So})),n.d(o,"lengthCursor",(function(){return ko})),n.d(o,"probeCursor",(function(){return _o})),n.d(o,"rectangleRoiCursor",(function(){return Po})),n.d(o,"textMarkerCursor",(function(){return Do})),n.d(o,"crosshairsCursor",(function(){return Oo})),n.d(o,"eraserCursor",(function(){return Lo})),n.d(o,"magnifyCursor",(function(){return Ao})),n.d(o,"panCursor",(function(){return Ho})),n.d(o,"rotateCursor",(function(){return Ro})),n.d(o,"stackScrollCursor",(function(){return Uo})),n.d(o,"wwwcRegionCursor",(function(){return No})),n.d(o,"wwwcCursor",(function(){return Fo})),n.d(o,"zoomCursor",(function(){return Bo})),n.d(o,"freehandEraseInsideCursor",(function(){return Yo})),n.d(o,"freehandFillInsideCursor",(function(){return Xo})),n.d(o,"freehandEraseOutsideCursor",(function(){return Ko})),n.d(o,"freehandFillOutsideCursor",(function(){return Zo})),n.d(o,"segRectangleEraseInsideCursor",(function(){return $o})),n.d(o,"segRectangleFillInsideCursor",(function(){return Jo})),n.d(o,"segRectangleEraseOutsideCursor",(function(){return Qo})),n.d(o,"segRectangleFillOutsideCursor",(function(){return ei})),n.d(o,"segCircleEraseInsideCursor",(function(){return ti})),n.d(o,"segCircleFillInsideCursor",(function(){return ni})),n.d(o,"segCircleEraseOutsideCursor",(function(){return ai})),n.d(o,"segCircleFillOutsideCursor",(function(){return oi}));var i=n(0),r=n.n(i),s=n(1),l=n.n(s),c=n(2),u=n.n(c),d=n(3),h=n.n(d),v=n(4),g=n.n(v),f=window.cornerstone,m=window.cornerstoneMath,p=window.Hammer,y={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}},x=n(8),T=n.n(x),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:yt.enabledElementByUID(e)}var E={UINT_16_ARRAY:0,FLOAT_32_ARRAY:1},w=E.UINT_16_ARRAY,I=E.FLOAT_32_ARRAY;function S(e,t,n){var a,o=Tt("segmentation").configuration;switch(o.arrayType){case w:a=2;break;case I:a=4;break;default:throw new Error("Unsupported Array Type ".concat(o.arrayType))}e.labelmaps3D[t]={buffer:new ArrayBuffer(n*a),labelmaps2D:[],metadata:[],activeSegmentIndex:1,colorLUTIndex:0,segmentsHidden:[],undo:[],redo:[]}}function k(){var e={};function t(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)}function n(t,n){if(!1!==e.hasOwnProperty(t)){var a=e[t];if(!1!==a.hasOwnProperty(n))return a[n]}}function a(t,n,a){e[t][n]=a}function o(t){!1!==e.hasOwnProperty(t)&&delete e[t]}return{get:function(e,t){var a=y.cornerstone.getEnabledElement(e);if(a.image)return n(a.image.imageId,t)},add:function(e,n,a){var o=y.cornerstone.getEnabledElement(e);o.image&&t(o.image.imageId,n,a)},set:function(e,t,n){var o=y.cornerstone.getEnabledElement(e);o.image&&a(o.image.imageId,t,n)},clear:function(e){var t=y.cornerstone.getEnabledElement(e);t.image&&o(t.image.imageId)},getImageIdToolState:n,addImageIdToolState:t,setImageIdToolState:a,clearImageIdToolState:o,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 _=k();function P(e){var t=y.cornerstone.getEnabledElement(e);return void 0===t.toolStateManager&&(t.toolStateManager=_),t.toolStateManager}function D(e,t,n){var a=P(e);n.uuid=n.uuid||"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})),a.add(e,t,n),C(e,b.MEASUREMENT_ADDED,{toolName:t,toolType:t,element:e,measurementData:n})}function O(e,t){return P(e).get(e,t)}function L(e,t,n){var a=P(e).get(e,t);if(a&&a.data&&a.data.length){for(var o=-1,i=0;i<a.data.length;i++)a.data[i]===n&&(o=i);if(-1!==o)a.data.splice(o,1),C(e,b.MEASUREMENT_REMOVED,{toolName:t,toolType:t,element:e,measurementData:n})}}function A(e,t){var n=P(e).get(e,t);void 0!==n&&(n.data=[])}function H(e,t){y.cornerstone.getEnabledElement(e).toolStateManager=t}var R=n(10),U=Object(R.a)("cornerstoneTools");var N=function(e){var t=U.extend(e);return{log:t,warn:t,error:void 0}},F=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"".concat("cornerstoneTools",":*");return R.a.enable(e)},B=function(){return R.a.disable()},V={series:{},colorLutTables:[]},q=N("store:modules:segmentationModule:metadata");function j(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"increase",n=Tt("segmentation"),a=n.configuration,o=O(e,"stack"),i=o.data[0],r=i.imageIds[0],s=V.series[r];if(s){var l=s.activeLabelmapIndex,c=s.labelmaps3D[l];switch(t){case"increase":c.activeSegmentIndex++,c.activeSegmentIndex>a.segmentsPerLabelmap&&(c.activeSegmentIndex=1);break;case"decrease":c.activeSegmentIndex--,c.activeSegmentIndex<=0&&(c.activeSegmentIndex=a.segmentsPerLabelmap)}}}var z=N("store:modules:segmentationModule:segmentVisibility");var W=N("store:modules:segmentationModule:getLabelmaps3D");function G(e){var t=M(e);if(t){var n=O(t,"stack");if(n){var a,o,i=n.data[0],r=i.imageIds[0],s=V.series[r];return s&&(a=s.labelmaps3D,o=s.activeLabelmapIndex),{labelmaps3D:a,activeLabelmapIndex:o,currentImageIdIndex:i.currentImageIdIndex}}W.error("Consumers must define stacks in their application if using segmentations in cornerstoneTools.")}}function Y(e,t){var n=G(e),a=n.labelmaps3D,o=n.activeLabelmapIndex;return a[t=void 0!==t?t:o]}var X=E.UINT_16_ARRAY,K=E.FLOAT_32_ARRAY;function Z(e,t){var n=M(e);if(n){var a=G(n).labelmaps3D;if(!a)return[];var o,i,r=Tt("segmentation").configuration;switch(r.arrayType){case X:o="Uint16Array",i="2";break;case K:o="Float32Array",i="4";break;default:throw new Error("Unsupported Array Type ".concat(r.arrayType))}var s=V.colorLutTables;if(void 0!==t){var l=a[t];return l?{labelmapIndex:t,bytesPerVoxel:i,type:o,buffer:l.buffer,colorLUT:s[l.colorLUTIndex]}:void 0}for(var c=[],u=0;u<a.length;u++){var d=a[u];d&&c.push({labelmapIndex:u,bytesPerVoxel:2,buffer:d.buffer,colorLUT:s[d.colorLUTIndex]})}return c}}var $=n(6),J=n.n($);function Q(e){return J()(new Set(e))}function ee(e,t,n){t[e]===n&&(t[e]=0)}function te(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=function(e,t){return t*a+e};e.forEach((function(e){var a=i.apply(void 0,J()(e));o?ee(a,t,n):t[a]=n}))}function ne(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++)ee(d*l+u,i,r);for(var h=0;h<n[0];h++)for(var v=n[1];v<a[1];v++)ee(v*l+h,i,r);for(var g=a[0];g<l;g++)for(var f=n[1];f<a[1];f++)ee(f*l+g,i,r);for(var m=0;m<l;m++)for(var p=a[1];p<c;p++)ee(p*l+m,i,r)}var ae=n(7),oe=n.n(ae);function ie(e,t,n){return t[e]===n}N("util:segmentation:operations:eraseOutsideCircle");function re(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=oe()(a,2),u=c[0],d=c[1],h=oe()(o,2),v=h[0],g=h[1];"outside"===i&&ne(e,t,a,o);for(var f=u;f<v;f++)for(var m=d;m<g;m++){var p=m*r+f;ie(p,s,l)&&n({x:f,y:m})&&(s[p]=0)}}function se(e,t,n,a,o){re(e,t,n,a,o,"inside")}function le(e,t,n,a,o){re(e,t,(function(e){return!n(e)}),a,o,"outside")}function ce(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 ue=N("util:segmentation:operations:helpers:fillShape");function de(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=oe()(a,2),u=c[0],d=c[1],h=oe()(o,2),v=h[0],g=h[1];"outside"===i&&ce(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 ue.error("fillInsideShape requires operationData to contain pixelData and segmentIndex")}function he(e,t,n,a,o){de(e,t,n,a,o,"inside")}function ve(e,t,n,a,o){de(e,t,(function(e){return!n(e)}),a,o,"outside")}var ge=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||fe,r=n.diagonals||!1,s=T(t),l=C(),c=[],u=[],d={},h={};for(c.push({currentArgs:t});c.length>0;)v(c.pop());return{flooded:u,boundaries:E()};function v(e){var t=e.currentArgs,n=e.previousArgs;g(t)||(f(t),m(t)?(p(t),x(t)):y(n))}function g(e){return!0===d[e]}function f(e){d[e]=!0}function m(e){var t=b(T,[e]);return b(i,[t,s])}function p(e){u.push(e),a.apply(void 0,J()(e))}function y(e){h[e]=e,o.apply(void 0,J()(e))}function x(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})}}function T(t){return e.apply(void 0,J()(t))}function b(e,t){try{return e.apply(void 0,J()(t))}catch(e){return}}function C(){return M(t.length).filter((function(e){var t=me(e);return 0!==t&&(1===t||r)}))}function M(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=pe(a.toString(3),"0",e);t.push(n(o))}return t}function E(){var e=[];for(var t in h)h.hasOwnProperty(t)&&e.unshift(h[t]);return e}};function fe(e,t){return e===t}function me(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}function pe(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}function ye(e,t){var n=(0,y.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 xe(e){var t=e.detail.handles,n=e.detail.image,a=n.width,o=n.height,i=ye(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 Te(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 be(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 Ce=1/Math.sqrt(2),Me={up:{x:0,y:1},upRight:{x:Ce,y:Ce},right:{x:1,y:0},downRight:{x:Ce,y:-Ce},down:{x:0,y:1},downLeft:{x:-Ce,y:-Ce},left:{x:-1,y:0},upLeft:{x:-Ce,y:Ce}},Ee=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?we(n,t):Ie(n,t):t.x>n.x?Se(n,t):ke(n,t),a.push({x:n.x,y:n.y});return a.pop(),a};function we(e,t){var n=_e(e,t);switch(De([Pe(n,Me.up),Pe(n,Me.right),Pe(n,Me.upRight)])){case 0:e.y++;break;case 1:e.x++;break;case 2:e.y++,e.x++}}function Ie(e,t){var n=_e(e,t);switch(De([Pe(n,Me.up),Pe(n,Me.left),Pe(n,Me.upLeft)])){case 0:e.y++;break;case 1:e.x--;break;case 2:e.y++,e.x--}}function Se(e,t){var n=_e(e,t);switch(De([Pe(n,Me.down),Pe(n,Me.right),Pe(n,Me.downRight)])){case 0:e.y--;break;case 1:e.x++;break;case 2:e.y--,e.x++}}function ke(e,t){var n=_e(e,t);switch(De([Pe(n,Me.down),Pe(n,Me.left),Pe(n,Me.downLeft)])){case 0:e.y--;break;case 1:e.x--;break;case 2:e.y--,e.x--}}function _e(e,t){var n=y.cornerstoneMath.point.distance(e,t);return{x:(t.x-e.x)/n,y:(t.y-e.y)/n}}function Pe(e,t){return e.x*t.x+e.y*t.y}function De(e){var t=e[0]>e[1]?0:1;return e[2]>e[t]&&(t=2),t}function Oe(e,t){var n=Tt("segmentation").getters;t=void 0===t?n.activeLabelmapIndex(e):t,y.cornerstone.triggerEvent(e,b.LABELMAP_MODIFIED,{labelmapIndex:t})}function Le(e,t){for(var n=[],a=0;a<e.length;a++)e[a]!==t[a]&&n.push([a,e[a],t[a]]);return n}var Ae=E.UINT_16_ARRAY,He=E.FLOAT_32_ARRAY;function Re(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]:0,s=Tt("segmentation"),l=s.configuration,c=V.series[e];c||(V.series[e]={activeLabelmapIndex:n,labelmaps3D:[]},c=V.series[e]),c.labelmaps3D[n]={buffer:t,labelmaps2D:[],metadata:a,activeSegmentIndex:1,colorLUTIndex:r,segmentsHidden:[],undo:[],redo:[]};for(var u=c.labelmaps3D[n].labelmaps2D,d=t.byteLength/o,h=0;h<o;h++){var v=void 0;switch(l.arrayType){case Ae:v=new Uint16Array(t,d*h,d/2);break;case He:v=new Float32Array(t,d*h,d/4);break;default:throw new Error("Unsupported Array Type ".concat(l.arrayType))}var g=i?i[h]:Q(v);g&&g.some((function(e){return e}))&&(u[h]={pixelData:v,segmentsOnLabelmap:g})}}var Ue=N("store:modules:segmentationModule:getLabelmapStats");function Ne(e,t,n){var a=e.length,o=t[n].imagePositionPatient;if(0===n)return Fe(o,t[n+1].imagePositionPatient);if(n===a-1)return Fe(o,t[n-1].imagePositionPatient);var i=t[n-1].imagePositionPatient,r=t[n+1].imagePositionPatient;return(Fe(o,i)+Fe(o,r))/2}function Fe(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2))}var Be=E.UINT_16_ARRAY,Ve=E.FLOAT_32_ARRAY;function qe(e,t,n,a,o){var i,r=Tt("segmentation").configuration,s=a*o,l=s*n;switch(r.arrayType){case Be:i=new Uint16Array(e.labelmaps3D[t].buffer,2*l,s);break;case Ve:i=new Float32Array(e.labelmaps3D[t].buffer,4*l,s);break;default:throw new Error("Unsupported Array Type ".concat(r.arrayType))}e.labelmaps3D[t].labelmaps2D[n]={pixelData:i,segmentsOnLabelmap:[]}}var je=E.UINT_16_ARRAY,ze=E.FLOAT_32_ARRAY,We=N("store:modules:segmentationModule:getLabelmap2D");function Ge(e,t,n){var a=e.x,o=e.y;return a<n&&a>=0&&o<t&&o>=0}var Ye=N("store:modules:segmentationModule:getSegmentOfActiveLabelmapAtEvent");var Xe=N("store:modules:segmentationModule:setColorLUT");function Ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Tt("segmentation"),a=n.configuration,o=a.segmentsPerLabelmap;t?($e(t,o),t.length<o&&(t=[].concat(J()(t),J()(Je(o-t.length))))):t=t||Je(o),t.unshift([0,0,0,0]),V.colorLutTables[e]=t}function Ze(e){return"number"==typeof e?V.colorLutTables[e]:V.colorLutTables[e.colorLUTIndex]}function $e(e,t){e.length<t?Xe.warn("The provided colorLUT only provides ".concat(e.length," labels, whereas segmentsPerLabelmap is set to ").concat(t,". Autogenerating the rest.")):e.length>t&&Xe.warn("segmentsPerLabelmap is set to ".concat(t,", and the provided colorLUT provides ").concat(e.length,". Using the first ").concat(t," colors from the LUT."))}function Je(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:255,t=[],n=0;n<e;n++)t.push(at(et(),nt()));return t}var Qe=222.5;function et(){return(Qe+=137.5)>=360&&(Qe-=360),Qe}var tt=.6;function nt(){(tt+=.07)>.82&&(tt=.3+(tt-.82));return tt}function at(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 ot=N("store:modules:segmentationModule:getBrushColor");var it={renderOutline:!0,renderFill:!0,shouldRenderInactiveLabelmaps:!0,radius:10,minRadius:1,maxRadius:50,fillAlpha:.2,fillAlphaInactive:.1,outlineAlpha:.7,outlineAlphaInactive:.35,outlineWidth:3,storeHistory:!0,segmentsPerLabelmap:65535,arrayType:E.UINT_16_ARRAY},rt=N("util:segmentation:labelmap3DHistory");function st(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 lt={state:V,configuration:it,onRegisterCallback:function(){Ke(0)},getters:{metadata:function(e,t,n){var a=M(e);if(a){var o=O(a,"stack").data[0].imageIds[0],i=V.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]}q.warn("No labelmap3D of labelmap index ".concat(t," on stack."))}else q.warn("brushStackState is undefined")}},labelmap3D:Y,labelmaps3D:G,activeLabelmapIndex:function(e){var t=M(e);if(t){var n=O(t,"stack").data[0].imageIds[0],a=V.series[n];if(a)return a.activeLabelmapIndex}},activeSegmentIndex:function(e,t){var n=M(e);if(n){var a=O(n,"stack").data[0].imageIds[0],o=V.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=O(a,"stack").data[0].imageIds[0],i=V.series[o];if(i){if(n=void 0===n?i.activeLabelmapIndex:n,i.labelmaps3D[n])return!i.labelmaps3D[n].segmentsHidden[t];z.warn("No labelmap3D of labelmap index ".concat(n," on stack."))}else z.warn("brushStackState is undefined")}}},labelmap2D:function(e){var t=M(e);if(t){var n=y.cornerstone,a=O(t,"stack");if(a){var o,i=a.data[0],r=n.getEnabledElement(t),s=i.currentImageIdIndex,l=r.image,c=l.rows,u=l.columns,d=i.imageIds.length,h=i.imageIds[0],v=V.series[h];if(v){if(o=v.activeLabelmapIndex,!v.labelmaps3D[o])S(v,o,c*u*d);v.labelmaps3D[o].labelmaps2D[s]||qe(v,o,s,c,u)}else{o=0,V.series[h]={activeLabelmapIndex:o,labelmaps3D:[]},S(v=V.series[h],o,c*u*d),qe(v,o,s,c,u)}var g=v.labelmaps3D[o];return{labelmap2D:g.labelmaps2D[s],labelmap3D:g,currentImageIdIndex:s,activeLabelmapIndex:o}}We.error("Consumers must define stacks in their application if using segmentations in cornerstoneTools.")}},labelmap2DByImageIdIndex:function(e,t,n,a){if(!e.labelmaps2D[t]){var o,i=Tt("segmentation").configuration,r=n*a,s=r*t;switch(i.arrayType){case je:o=new Uint16Array(e.buffer,2*s,r);break;case ze:o=new Float32Array(e.buffer,4*s,r);break;default:throw new Error("Unsupported Array Type ".concat(i.arrayType))}e.labelmaps2D[t]={pixelData:o,segmentsOnLabelmap:Q(o)}}return e.labelmaps2D[t]},labelmapStats:function(e,t,n){var a=y.cornerstone,o=M(e);if(!o)return null;var i=O(o,"stack").data[0].imageIds,r=i[0];return new Promise((function(e){var o=V.series[r];o||e(null);var s=function(e){for(var t=[],n=y.cornerstone.metaData,a=!0,o=0;o<e.length;o++){var i=n.get("imagePlaneModule",e[o]);if(!i){a=!1;break}t.push(i)}return{sufficientMetadata:a,imagePlanes:t}}(i),l=s.sufficientMetadata,c=s.imagePlanes;l||(Ue.warn("Insufficient imagePlaneModule information to calculate volume statistics."),e(null)),n=void 0===n?o.activeLabelmapIndex:n;for(var u=o.labelmaps3D[n],d=[],h=0;h<i.length;h++)d.push(a.loadAndCacheImage(i[h]));Promise.all(d).then((function(n){var a=function(e,t,n,a){for(var o=function(e,t,n,a){for(var o=t[0],i=o.rowPixelSpacing,r=o.columnPixelSpacing,s=e.labelmaps2D,l=[],c=0;c<s.length;c++){var u=s[c];if(u&&u.segmentsOnLabelmap.includes(a)){for(var d=Ne(t,n,c)*i*r,h=u.pixelData,v=t[c].getPixelData(),g=[],f=0;f<h.length;f++)h[f]===a&&g.push(v[f]);l.push({voxelInMM3:d,values:g})}}return l}(e,t,n,a),i=0,r=o[0].values[0],s=r,l=0,c=0;c<o.length;c++){var u=o[c],d=u.values,h=u.voxelInMM3;l+=h*d.length;var v=0;d.forEach((function(e){e>r?r=e:e<s&&(s=e),v+=e})),i+=v*h}i/=l;for(var g=0,f=0;f<o.length;f++){var m=o[f],p=(d=m.values,h=m.voxelInMM3,0);d.forEach((function(e){p+=Math.pow(e-i,2)})),g+=p*h}return g/=l,g=Math.sqrt(g),{volume:l,mean:i,stdDev:g,max:r,min:s}}(u,n,c,t);e(a)}))}))},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=O(n,"stack").data[0],l=s.currentImageIdIndex,c=s.imageIds[0],u=V.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(Ge({x:m=Math.floor(m),y:p=Math.floor(p)},r,i)){var y=g[p*i+m];if(0===y)return;return{segmentIndex:y,metadata:h.metadata[y]}}}}}}else Ye.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");if(a){var o,i=a.data[0],r=i.imageIds[0],s=V.series[r];if(s){var l=s.activeLabelmapIndex,c=s.labelmaps3D[l],u=c.activeSegmentIndex;o=V.colorLutTables[c.colorLUTIndex][u]}else o=V.colorLutTables[0][1];return t?"rgba(".concat(o[0],", ").concat(o[1],", ").concat(o[2],", 1.0 )"):"rgba(".concat(o[0],", ").concat(o[1],", ").concat(o[2],", 0.8 )")}ot.error("Consumers must define stacks in their application if using segmentations in cornerstoneTools.")}},labelmapBuffers:Z,activeLabelmapBuffer:function(e){var t=M(e);if(t){var n=O(t,"stack").data[0].imageIds[0],a=V.series[n];if(a)return Z(t,a.activeLabelmapIndex)}},colorLUT:Ze,colorForSegmentIndexColorLUT:function(e,t){return Ze(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=y.cornerstone,r=O(o,"stack"),s=r.data[0],l=s.imageIds[0],c=V.series[l];if(c||(V.series[l]={labelmapIndex:t,labelmaps3D:[]},c=V.series[l]),!c.labelmaps3D[t]){var u=i.getEnabledElement(o),d=u.image,h=d.rows,v=d.columns,g=s.imageIds.length,f=h*v*g;S(c,t,f)}var m=c.labelmaps3D[t];m.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=O(r,"stack"),l=s.data[0].imageIds.length,c=s.data[0].imageIds[0];Re(c,t,n,a,l,o,i),Oe(r,n)}},labelmap3DByFirstImageId:Re,incrementActiveSegmentIndex:function(e){var t=M(e);t&&j(t,"increase")},decrementActiveSegmentIndex:function(e){var t=M(e);t&&j(t,"decrease")},activeSegmentIndex:function(e,t){var n=M(e);if(n){var a=O(n,"stack").data[0].imageIds[0],o=V.series[a];if(o){var i=o.activeLabelmapIndex,r=o.labelmaps3D[i],s=Tt("segmentation").configuration;t<=0?t=1:t>s.segmentsPerLabelmap&&(t=s.segmentsPerLabelmap),r.activeSegmentIndex=t}}},toggleSegmentVisibility:function(e,t,n){if(t){var a=M(e);if(a){var o=O(a,"stack").data[0].imageIds[0],i=V.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]}z.warn("No labelmap3D of labelmap index ".concat(n," on stack."))}else z.warn("brushStackState is undefined")}}},updateSegmentsOnLabelmap2D:function(e){e.segmentsOnLabelmap=Q(e.pixelData)},deleteSegment:function(e,t,n){if(t){var a=M(e);if(a){var o=O(a,"stack").data[0].imageIds[0],i=V.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)}}y.cornerstone.updateImage(a)}}}}},colorLUT:Ke,colorLUTIndexForLabelmap3D:function(e,t){e.colorLUTIndex=t},colorForSegmentIndexOfColorLUT:function(e,t,n){Ze(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=y.cornerstone,o=O(n,"stack"),i=o.data[0],r=a.getEnabledElement(n),s=r.image,l=s.rows,c=s.columns,u=i.imageIds.length,d=l*c*u,h=i.imageIds[0],v=V.series[h];v?(v.activeLabelmapIndex=t,v.labelmaps3D[t]||S(v,t,d)):(V.series[h]={activeLabelmapIndex:t,labelmaps3D:[]},S(v=V.series[h],t,d)),a.updateImage(n)}},radius:function(e){var t=Tt("segmentation").configuration;t.radius=Math.min(Math.max(e,t.minRadius),t.maxRadius)},pushState:function(e,t,n){var a=Y(e,n);a.undo.push(t),a.redo=[]},undo:function(e,t){var n=Y(e,t),a=n.undo,o=n.redo;if(a.length){var i=a.pop();st(n,i,1),o.push(i),y.cornerstone.updateImage(e)}else rt.warn("No undos left.")},redo:function(e,t){var n=Y(e,t),a=n.undo,o=n.redo;if(o.length){var i=o.pop();st(n,i,2),a.push(i),y.cornerstone.updateImage(e)}else rt.warn("No redos left.")}}},ct={activeManipulators:{}};function ut(e){var t=y.cornerstone.getEnabledElement(e).uuid;delete ct.activeManipulators[t]}function dt(e){var t=ct.activeManipulators,n=t[e];"function"==typeof n&&n(),delete t[e]}function ht(e){ut(e.detail.element)}var vt={setters:{addActiveManipulatorForElement:function(e,t){var n=y.cornerstone.getEnabledElement(e).uuid;ct.activeManipulators[n]=t},removeActiveManipulatorForElement:ut,cancelActiveManipulatorsForElement:function(e){dt(y.cornerstone.getEnabledElement(e).uuid)},cancelActiveManipulators:function(){var e=ct.activeManipulators;Object.keys(e).forEach((function(e){return dt(e)}))}},state:ct,enabledElementCallback:function(e){var t=y.cornerstone.EVENTS.NEW_IMAGE;e.removeEventListener(t,ht),e.addEventListener(t,ht)},removeEnabledElementCallback:function(e){var t=y.cornerstone.EVENTS.NEW_IMAGE;e.removeEventListener(t,ht),ut(e)}},gt={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 '},ft={configuration:gt,getters:{defaultOptions:function(){return gt}},setters:{defaultOptions:function(e){Object.assign(gt,e)}}},mt={configuration:{mouseEnabled:!0,touchEnabled:!0,globalToolSyncEnabled:!1,showSVGCursors:!1,autoResizeViewports:!0,lineDash:[4,4]}},pt=(N("store:modules:storeLogger"),{globalTools:{},globalToolChangeHistory:[],enabledElements:[],tools:[],isToolLocked:!1,activeMultiPartTool:null,mousePositionImage:{},clickProximity:6,touchProximity:10,handleRadius:6,deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1,preventTextBoxOutsideDisplayedArea:!1,handleTouchOffset:{x:0,y:-57},svgCursorUrl:null}),yt={mouseTools:function(){return pt.tools.filter((function(e){return e.supportedInteractionTypes.includes("Mouse")}))},touchTools:function(){return pt.tools.filter((function(e){return e.supportedInteractionTypes.includes("Touch")}))},enabledElementByUID:function(e){return pt.enabledElements.find((function(t){return y.cornerstone.getEnabledElement(t).uuid===e}))}},xt={segmentation:lt,cursor:ft,globalConfiguration:mt,manipulatorState:vt};function Tt(e){return xt[e]}var bt={modules:xt,state:pt,getters:yt},Ct=function(e,t){return pt.tools.find((function(n){return n.element===e&&n.name===t}))},Mt=xt.globalConfiguration;function Et(e,t){if(Mt.configuration.showSVGCursors){var n=t.getIconWithPointerSVG(),a=t.mousePoint,o=window.URL.createObjectURL(n);e.style.cursor="url('".concat(o,"') ").concat(a,", auto"),pt.svgCursorUrl=o}}function wt(e){Mt.configuration.showSVGCursors&&It(e,"none")}function It(e,t){pt.svgCursorUrl&&window.URL.revokeObjectURL(pt.svgCursorUrl),pt.svgCursorUrl=null,e.style.cursor=t}var St=Tt("globalConfiguration"),kt=N("store:setToolMode"),_t=function(e,t,n,a){void 0===a&&Array.isArray(n)&&(a=n,n=null);var o=Ct(e,t);o&&(function(e,t,n,a){t.supportedInteractionTypes.forEach((function(o){if(void 0===a||a.includes(o)){var i=Vt[o];i?i(t,e,n):kt.warn("Unable to resolve input conflicts for type %s",o)}})),bt.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||(kt.log("Setting tool %s's to PASSIVE",t.name),Ht(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})),St.configuration.showSVGCursors&&o.supportedInteractionTypes.includes("Mouse")&&function(e,t,n){var a;a="number"==typeof t?[t]:t.mouseButtonMask;a.includes(1)&&(n.svgCursor?Et(n.element,n.svgCursor):n.hideDefaultCursor?wt(e):function(e){It(e,"initial")}(e))}(e,n,o)),Ut("active",null,e,t,n)};var Pt=function(e,t,n){Bt("active",e,t,n),bt.state.enabledElements.forEach((function(a){_t(a,e,t,n)}))},Dt=Ut.bind(null,"disabled",null),Ot=Nt.bind(null,"disabled",null),Lt=Ut.bind(null,"enabled",null),At=Nt.bind(null,"enabled",null),Ht=Ut.bind(null,"passive",b.TOOL_DEACTIVATED),Rt=Nt.bind(null,"passive",b.TOOL_DEACTIVATED);function Ut(e,t,n,a,o){var i,r,s=Ct(n,a);s?(o=qt(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,toolType:a,type:t})):kt.warn('Unable to find tool "%s" for enabledElement',a)}function Nt(e,t,n,a){Bt(e,n,a),bt.state.enabledElements.forEach((function(o){Ut(e,t,o,n,a)}))}function Ft(e,t,n){var a="is".concat(e,"Active"),o=bt.state.tools.find((function(e){return e.element===n&&"active"===e.mode&&!0===e.options[a]}));o&&(kt.log("Setting tool %s's %s to false",o.name,a),o.options[a]=!1)}function Bt(e,t,n,a){if(St.configuration.globalToolSyncEnabled){var o={mode:e,args:[t,n]};a&&o.push(a),bt.state.globalToolChangeHistory.push(o);bt.state.globalToolChangeHistory.length>50&&bt.state.globalToolChangeHistory.shift();var i=bt.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=bt.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=qt(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(bt.state.globalTools).forEach((function(e){var t=bt.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 kt.warn("setToolMode call for tool not available globally: ".concat(t))}}var Vt={Mouse:function(e,t,n){var a=qt(n).mouseButtonMask;if(Array.isArray(a)&&a.length>0){var o=bt.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:Ft.bind(void 0,"MouseWheel"),Touch:function(e,t){var n=bt.state.tools.find((function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isTouchActive})),a=bt.state.tools.find((function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isMultiTouchActive&&1===e.configuration.touchPointers}));n&&(kt.log("Setting tool %s's isTouchActive to false",n.name),n.options.isTouchActive=!1),a&&(kt.log("Setting tool %s's isTouchActive to false",a.name),a.options.isMultiTouchActive=!1)},TouchPinch:Ft.bind(void 0,"TouchPinch"),TouchRotate:Ft.bind(void 0,"TouchRotate"),DoubleTap:Ft.bind(void 0,"DoubleTap"),MultiTouch:function(e,t){var n,a=bt.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=bt.state.tools.find((function(e){return e.element===t&&"active"===e.mode&&!0===e.options.isTouchActive}))),a&&(kt.log("Setting tool %s's isMultiTouchActive to false",a.name),a.options.isMultiTouchActive=!1),n&&(kt.log("Setting tool %s's isTouchActive to false",n.name),n.options.isTouchActive=!1)}};function qt(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 jt={passiveCallback:function(e){Dt(e,this.name)},enabledCallback:function(e){_t(e,this.name)}};var zt={passiveCallback:function(e){Dt(e,this.name)},activeCallback:function(e){Lt(e,this.name)}},Wt=function(e,t){e.save(),t(e),e.restore()},Gt=1,Yt=2;var Xt={setToolWidth:function(e){Gt=e},getToolWidth:function(){return Gt},setActiveWidth:function(e){Yt=e},getActiveWidth:function(){return Yt}},Kt=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&&Xt.getToolWidth()||e.lineWidth,r&&e.setLineDash(r),n(e),i&&(e.fillStyle=i,e.fill()),l&&e.stroke(),r&&e.setLineDash([])};function Zt(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";Kt(e,o,(function(e){"pixel"===i&&(n=y.cornerstone.pixelToCanvas(t,n),a=y.cornerstone.pixelToCanvas(t,a)),e.moveTo(n.x,n.y),e.lineTo(a.x,a.y)}))}var $t=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";Kt(e,o,(function(e){"pixel"===i&&(n=y.cornerstone.pixelToCanvas(t,n),a=a.map((function(e){return y.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)}))}))},Jt=function(e,t,n,a,o,i){var r=Math.atan2(n.y-t.y,n.x-t.x),s={color:a,lineWidth:o};i&&(s.lineDash=i),Zt(e,void 0,t,n,s,"canvas"),s={color:a,lineWidth:o,fillStyle:a};var l=[{x:n.x-10*Math.cos(r-Math.PI/7),y:n.y-10*Math.sin(r-Math.PI/7)},{x:n.x-10*Math.cos(r+Math.PI/7),y:n.y-10*Math.sin(r+Math.PI/7)},n];$t(e,void 0,n,l,s,"canvas")},Qt=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";"pixel"===i&&(n=y.cornerstone.pixelToCanvas(t,n)),Kt(e,o,(function(e){e.arc(n.x,n.y,a,0,2*Math.PI)}))};function en(e){var t=y.cornerstoneMath;if(e instanceof t.Vector3)return e;var n=Object.keys(e);return n.includes("x")&&n.includes("y")&&n.includes("z")?new t.Vector3(e.x,e.y,e.z):new t.Vector3(e[0],e[1],e[2])}function tn(e,t){var n=en(t.rowCosines),a=en(t.columnCosines),o=en(t.imagePositionPatient),i=e.clone().sub(o);return{x:n.dot(i)/t.columnPixelSpacing,y:a.dot(i)/t.rowPixelSpacing}}function nn(e,t){var n=en(t.rowCosines),a=en(t.columnCosines),o=en(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 an(e,t){var n=en(e.rowCosines),a=en(e.columnCosines),o=en(e.imagePositionPatient),i=en(t.rowCosines),r=en(t.columnCosines),s=en(t.imagePositionPatient),l=n.clone().cross(a),c=new y.cornerstoneMath.Plane;c.setFromNormalAndCoplanarPoint(l,o);var u=i.clone().cross(r),d=new y.cornerstoneMath.Plane;d.setFromNormalAndCoplanarPoint(u,s);var h=d.clone().intersectPlane(c),v=h.origin,g=h.direction,f=nn({x:t.columns,y:t.rows},t),m=s.distanceTo(f),p=new y.cornerstoneMath.Line3;p.start=v,p.end=v.clone().add(g.multiplyScalar(m));var x=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=nn({x:0,y:0},e),n=nn({x:e.columns,y:0},e),a=nn({x:0,y:e.rows},e),o=nn({x:e.columns,y:e.rows},e);return{top:new y.cornerstoneMath.Line3(t,n),left:new y.cornerstoneMath.Line3(t,a),right:new y.cornerstoneMath.Line3(n,o),bottom:new y.cornerstoneMath.Line3(a,o)}}(t));if(2===x.length)return{start:x[0],end:x[1]}}function on(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 rn=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=y.cornerstone.pixelToCanvas(t,n),a=y.cornerstone.pixelToCanvas(t,a));var s=y.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=on(n,v,-h),a=on(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),x={x:m+g/2,y:p+f/2};Math.abs(h)>.05&&(x=on(x,v,h));var T=h*Math.PI/180;Kt(e,o,(function(e){e.ellipse(x.x,x.y,g/2,f/2,T,0,2*Math.PI),e.closePath()}))},sn="white",ln="greenyellow",cn="transparent";var un={setFillColor:function(e){cn=e},getFillColor:function(){return cn},setToolColor:function(e){sn=e},getToolColor:function(){return sn},setActiveColor:function(e){ln=e},getActiveColor:function(){return ln},getColorIfActive:function(e){return e.color?e.color:e.active?ln:sn}},dn=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.element,i=un.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";if(a.hideHandlesIfMoving&&s.moving)return"continue";var l={lineWidth:s.active?Xt.getActiveWidth():Xt.getToolWidth(),fillStyle:a.fill};a.lineDash&&(l.lineDash=a.lineDash),Kt(e,l,(function(e){var t=y.cornerstone.pixelToCanvas(o,s),n=s.radius||a.handleRadius||pt.handleRadius;e.arc(t.x,t.y,n,0,2*Math.PI)}))},l=0;l<r.length;l++)s(l)},hn=function(e,t,n,a){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"pixel";Kt(e,a,(function(e){n.forEach((function(n){var a=n.start,i=n.end;if("pixel"===o){var r=y.cornerstone;a=r.pixelToCanvas(t,a),i=r.pixelToCanvas(t,i)}e.moveTo(a.x,a.y),e.lineTo(i.x,i.y)}))}))},vn=function(e,t,n,a,o,i){var r=e.length>0?y.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}];Zt(a,void 0,r,y.cornerstoneMath.point.findClosestPoint(s,r),{color:o,lineWidth:i,lineDash:[2,3]},"canvas")},gn={fontSize:15,fontFamily:"Arial",backgroundColor:"transparent"};function fn(e){if("string"!=typeof e)throw new Error("Font family must be a valid string");gn.fontFamily=e}function mn(e){if("number"!=typeof e||isNaN(e)||!isFinite(e))throw new Error("Font size must be a valid number");gn.fontSize=parseFloat(e)}var pn={setFont:function(e){var t=e.split("px ");2===t.length&&(mn(parseFloat(t[0])),fn(t[1]))},getFont:function(){return"".concat(gn.fontSize,"px ").concat(gn.fontFamily)},setFontSize:mn,getFontSize:function(){return gn.fontSize},setFontFamily:fn,getFontFamily:function(){return gn.fontFamily},setBackgroundColor:function(e){gn.backgroundColor=e},getBackgroundColor:function(){return gn.backgroundColor}},yn=function(e,t,n,a,o){var i=pn.getFontSize();e.font=pn.getFont(),e.textBaseline="top",e.fillStyle=a,n.forEach((function(n,a){e.fillText(n,t.left+o,t.top+o+a*(i+o))}))},xn=function(e,t,n){e.fillStyle=n,e.fillRect(t.left,t.top,t.width,t.height)};function Tn(e,t,n){var a=pn.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 bn=function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]);var r=5,s=pn.getFontSize(),l=pn.getBackgroundColor(),c=0;t.forEach((function(t){var n=Tn(e,t,r);c=Math.max(c,n)}));var u={width:c,height:r+t.length*(s+r)};return Wt(e,(function(e){e.strokeStyle=o,i.centering&&(!0===i.centering.x&&(n-=u.width/2),!0===i.centering.y&&(a-=u.height/2)),u.left=n,u.top=a,"function"==typeof i.displacer&&i.displacer(u),xn(e,u,l),yn(e,u,t,o,r)})),u};function Cn(e,t,n){return Math.min(Math.max(t,e),n)}function Mn(e,t){var n=t.left||0,a=t.top||0;e.x=Cn(e.x,n,n+t.width),e.y=Cn(e.y,a,a+t.height)}var En=function(e,t,n,a,o,i){i-o<a-n?(e[t]+=o-n,e[t]+=(i-o)/2,e[t]-=(a-n)/2):n<o?e[t]+=o-n:a>i&&(e[t]-=a-i)};function wn(e,t){var n=y.cornerstone,a=n.pixelToCanvas,o=n.canvasToPixel,i=n.getViewport,r=n.getEnabledElement,s=n.getDisplayedArea,l=o(e,{x:t.left,y:t.top}),c=function(e,t){var n=function(t){return y.cornerstone.canvasToPixel(e,t)},a=t.top,o=t.left,i=t.width,r=t.height,s=[n({x:o,y:a}),n({x:o+i,y:a}),n({x:o,y:a+r}),n({x:o+i,y:a+r})],l=s.map((function(e){return e.x})),c=s.map((function(e){return e.y}));return{minX:Math.min.apply(Math,J()(l)),minY:Math.min.apply(Math,J()(c)),maxX:Math.max.apply(Math,J()(l)),maxY:Math.max.apply(Math,J()(c))}}(e,t),u=c.minX,d=c.minY,h=c.maxX,v=c.maxY,g=i(e),f=s(r(e).image,g),m=g.displayedArea?g.displayedArea:f,p=m.tlhc,x=m.brhc,T=p.y-1,b=p.x-1,C=x.y,M=x.x;En(l,"y",d,v,T,C),En(l,"x",u,h,b,M);var E=a(e,l);t.top=E.y,t.left=E.x}var In=Cn,Sn=function(e,t,n,a,o,i,r,s,l,c){var u=y.cornerstone.pixelToCanvas,d=u(t,n);l&&(d.x+=l);var h={centering:{x:!1,y:c}};if(pt.preventTextBoxOutsideDisplayedArea&&(h.displacer=function(e){return wn(t,e)}),n.boundingBox=bn(e,a,d.x,d.y,r,h),n.hasMoved){var v=i(o).map((function(e){return u(t,e)}));vn(v,d,n.boundingBox,e,r,s)}},kn=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=y.cornerstone;n=s.pixelToCanvas(t,n),a=s.pixelToCanvas(t,a)}var l=y.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=on(n,g,-v),a=on(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},x={x:n.x,y:n.y+m};Math.abs(v)>.05&&(n=on(n,g,v),a=on(a,g,v),p=on(p,g,v),x=on(x,g,v)),Kt(e,o,(function(e){e.moveTo(n.x,n.y),e.lineTo(p.x,p.y),e.lineTo(a.x,a.y),e.lineTo(x.x,x.y),e.lineTo(n.x,n.y)}))},_n=function(e){var t=e.getContext("2d");return t.setTransform(1,0,0,1,0,0),t},Pn=function(e,t){return void 0===e?t:e},Dn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.shadow&&(e.shadowColor=Pn(t.shadowColor,"#000000"),e.shadowBlur=Pn(t.shadowBlur,0),e.shadowOffsetX=Pn(t.shadowOffsetX,1),e.shadowOffsetY=Pn(t.shadowOffsetY,1))},On=function(e){return 0===Object.keys(e).length&&e.constructor===Object},Ln=Tt("segmentation"),An=Ln.getters,Hn=Ln.setters;function Rn(){this.handles={start:{},end:{}}}function Un(e){var t=e.detail.element,n=e.detail.currentPoints.image;return On(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),y.cornerstone.updateImage(t),!0}function Nn(e){var t=e.detail,n=t.element,a=t.currentPoints.image;this.handles.end=a,y.cornerstone.updateImage(n)}function Fn(e){e.detail.handles=this.handles;var t=e.detail.element,n=An.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:Le(s,r)};Hn.pushState(this.element,[c]),Hn.updateSegmentsOnLabelmap2D(a),y.cornerstone.updateImage(t),this._resetHandles()}var Bn={postTouchStartCallback:Un,postMouseDownCallback:Un,mouseClickCallback:Un,touchDragCallback:Nn,mouseDragCallback:Nn,mouseMoveCallback:Nn,touchEndCallback:Fn,mouseUpCallback:Fn,initializeMixin:Rn,renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=An.brushColor(a,!0),i=_n(n.canvasContext.canvas),r=y.cornerstoneMath.point.distance;Wt(i,(function(e){if(!t.handles)return null;var n=y.cornerstone.pixelToCanvas(a,t.handles.start),i=y.cornerstone.pixelToCanvas(a,t.handles.end),s=r(n,i);Qt(e,a,t.handles.start,s,{color:o})}))},_resetHandles:Rn,_applyStrategy:Fn},Vn=N("tools:ScissorsTool"),qn=Tt("segmentation"),jn=qn.getters,zn=qn.setters;function Wn(e){var t=e.detail.element,n=e.detail.currentPoints.image,a=this.handles.points;if(!a.length)return Vn.warn("Something went wrong, empty handles detected."),null;a.push({x:n.x,y:n.y,lines:[]}),this.currentHandle+=1,y.cornerstone.updateImage(t)}function Gn(e){var t=e.detail,n=e.detail.element;this._addPoint(t),y.cornerstone.updateImage(n)}function Yn(e){var t=this.handles.points,n=e.detail.element,a=jn.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:Le(l,s)};zn.pushState(this.element,[u]),zn.updateSegmentsOnLabelmap2D(o),y.cornerstone.updateImage(n),this._resetHandles()}function Xn(){this.handles={points:[]},this.currentHandle=0}var Kn={postTouchStartCallback:Wn,postMouseDownCallback:Wn,mouseClickCallback:Wn,touchDragCallback:Gn,mouseDragCallback:Gn,mouseMoveCallback:Gn,touchEndCallback:Yn,mouseUpCallback:Yn,initializeMixin:Xn,renderToolData:function(e){var t=e.detail,n=t.element,a=jn.brushColor(n,!0),o=_n(t.canvasContext.canvas),i=this.handles.points;i.length<2||Wt(o,(function(e){for(var t=0;t<i.length;t++){var o=J()(i[t].lines);t===i.length-1&&o.push(i[0]),$t(e,n,i[t],o,{color:a})}}))},_resetHandles:Xn,_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,y.cornerstone.updateImage(e.element)},_applyStrategy:Yn},Zn=Tt("segmentation").getters;var $n=Object.assign({},Kn,{renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=Zn.brushColor(a,!0),i=_n(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=J()(r.points[n].lines);$t(e,a,t.handles.points[n],i,{color:o})}}))}}),Jn=Tt("segmentation"),Qn=Jn.getters,ea=Jn.setters;function ta(e){var t=e.detail.element,n=e.detail.currentPoints.image;return On(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),y.cornerstone.updateImage(t),!0}function na(e){var t=e.detail,n=t.element,a=t.currentPoints.image;this.handles.end=a,y.cornerstone.updateImage(n)}function aa(e){e.detail.handles=this.handles;var t=e.detail.element,n=Qn.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:Le(s,r)};ea.pushState(this.element,[c]),ea.updateSegmentsOnLabelmap2D(a),y.cornerstone.updateImage(t),this._resetHandles()}function oa(){this.handles={start:{},end:{}}}var ia={activeOrDisabledBinaryTool:jt,enabledOrDisabledBinaryTool:zt,circleSegmentationMixin:Bn,polylineSegmentationMixin:$n,freehandSegmentationMixin:Kn,rectangleSegmentationMixin:{postTouchStartCallback:ta,postMouseDownCallback:ta,mouseClickCallback:ta,touchDragCallback:na,mouseDragCallback:na,mouseMoveCallback:na,touchEndCallback:aa,mouseUpCallback:aa,initializeMixin:oa,renderToolData:function(e){var t=this,n=e.detail,a=n.element,o=Qn.brushColor(a,!0),i=_n(n.canvasContext.canvas);Wt(i,(function(e){kn(e,a,t.handles.start,t.handles.end,{color:o})}))},_resetHandles:oa,_applyStrategy:aa},renderBrushMixin:{renderBrush:function(e){var t,n=y.cornerstone,a=Tt("segmentation"),o=a.getters,i=a.configuration,r=e.detail,s=r.viewport;if(this._drawing?t=this._lastImageCoords:this._mouseUpRender?(t=this._lastImageCoords,this._mouseUpRender=!1):t=bt.state.mousePositionImage,t){var l=r.image,c=l.rows,u=l.columns,d=t,h=d.x,v=d.y;if(!(h<0||h>u||v<0||v>c)){var g=i.radius,f=r.canvasContext,m=r.element,p=o.brushColor(m,this._drawing);f.setTransform(1,0,0,1,0,0);var x=g*s.scale,T=n.pixelToCanvas(m,t);f.beginPath(),f.strokeStyle=p,f.ellipse(T.x,T.y,x,x,0,0,2*Math.PI),f.stroke()}}}}},ra=function(e){return e&&"object"===T()(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},sa=function(e,t){var n;return t&&!0===t.clone&&ra(e)?ua((n=e,Array.isArray(n)?[]:{}),e,t):e},la=function(e,t,n){var a=e.slice();return t.forEach((function(t,o){void 0===a[o]?a[o]=sa(t,n):ra(t)?a[o]=ua(e[o],t,n):-1===e.indexOf(t)&&a.push(sa(t,n))})),a},ca=function(e,t,n){var a={};return ra(e)&&Object.keys(e).forEach((function(t){a[t]=sa(e[t],n)})),Object.keys(t).forEach((function(o){ra(t[o])&&e[o]?a[o]=ua(e[o],t[o],n):a[o]=sa(t[o],n)})),a},ua=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:la},i=o.arrayMerge||la;if(a)return Array.isArray(e)?i(e,t,n):sa(t,n);var r=ca(e,t,n);return Object.getPrototypeOf(e)!==Object.prototype&&Object.setPrototypeOf(r,Object.getPrototypeOf(e)),r},da=ua,ha=N("tools:base:BaseTool"),va=Tt("globalConfiguration"),ga=function(){function e(t,n){r()(this,e),this.initialConfiguration=da(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=ia["".concat(e[t])];"object"===T()(n)?(Object.assign(this,n),"function"==typeof this.initializeMixin&&this.initializeMixin()):ha.warn("".concat(this.name,": mixin ").concat(ia[t]," does not exist."))}"function"===this.initializeMixin&&delete this.initializeMixin}},{key:"setActiveStrategy",value:function(e){this.activeStrategy=e,va.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&&Et(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}(),fa=function(e,t){if(e.boundingBox)return y.cornerstoneMath.point.insideRect(t,e.boundingBox)},ma=function(e,t,n,a){if(e.hasOwnProperty("pointNearHandle")){if(e.pointNearHandle(t,e,n))return!0}else if(!0===e.hasBoundingBox){if(fa(e,n))return!0}else{var o=y.cornerstone.pixelToCanvas(t,e);if(y.cornerstoneMath.point.distance(o,n)<=a)return!0}return!1},pa=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")&&ma(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(ma(h,t,a,o)){i=h;break}}}return i}},ya=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=pa(e,t,n,a);return o!==i&&(void 0!==i&&(i.active=!0),void 0!==o&&(o.active=!1),!0)};var xa=n(9),Ta=n.n(xa),ba=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===y.cornerstoneMath.point.insideRect(n,a)&&(o=!0)})),o},Ca=function(e,t){var n=e.currentPoints,a=e.element,o=n.page,i=pt.handleTouchOffset,r=0,s=0;return"touch"===t&&(r=i.x,s=i.y),y.cornerstone.pageToPixel(a,o.x+r,o.y+s)},Ma=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")])}))},Ea=n(5),wa=n.n(Ea),Ia=function(e,t){return"active"===Ct(e,t).mode},Sa=Tt("segmentation"),ka=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(wa()(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=Sa.configuration,o=Sa.getters.labelmap2D(n),i=o.labelmap2D,r=o.labelmap3D,s=o.currentImageIdIndex,l=o.activeLabelmapIndex,c=this._isCtrlDown(t)||this.configuration.alwaysEraseOnClick;if(this.paintEventData={labelmap2D:i,labelmap3D:r,currentImageIdIndex:s,activeLabelmapIndex:l,shouldErase:c},a.storeHistory){var u=i.pixelData.slice();this.paintEventData.previousPixelData=u}}},{key:"_endPainting",value:function(e){for(var t=Sa.configuration,n=Sa.setters,a=this.paintEventData,o=a.labelmap2D,i=a.currentImageIdIndex,r=new Set(o.pixelData).values(),s=[],l=!1;!l;){var c=r.next();(l=c.done)||s.push(c.value)}if(o.segmentsOnLabelmap=s,t.storeHistory){var u={imageIdIndex:i,diff:Le(this.paintEventData.previousPixelData,o.pixelData)};n.pushState(this.element,[u])}Oe(this.element)}},{key:"mouseMoveCallback",value:function(e){var t=e.detail.currentPoints;this._lastImageCoords=t.image}},{key:"renderToolData",value:function(e){var t=e.detail.element;Ia(t,this.name)&&this.renderBrush(e)}},{key:"passiveCallback",value:function(e){try{y.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),y.cornerstone.updateImage(e)}},{key:"_stopListeningForMouseUp",value:function(e){e.removeEventListener(b.MOUSE_UP,this._drawingMouseUpCallback),e.removeEventListener(b.MOUSE_CLICK,this._drawingMouseUpCallback),y.cornerstone.updateImage(e)}},{key:"increaseBrushSize",value:function(){var e=Sa.configuration,t=Sa.setters,n=e.radius,a=Math.floor(1.2*n);a===n&&(a+=1),t.radius(a)}},{key:"decreaseBrushSize",value:function(){var e=Sa.configuration,t=Sa.setters,n=e.radius,a=Math.floor(.8*n);t.radius(a)}},{key:"_isCtrlDown",value:function(e){return e.event&&e.event.ctrlKey||e.ctrlKey}}]),t}(ga),_a=function(e){return e.filter((function(e){return!(e.isMultiPartTool||e instanceof fo||e instanceof ka)}))};function Pa(e,t){var n,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mouse";if("touch"===a?n=(n=Ma(e,yt.touchTools())).filter((function(e){return e.options.isTouchActive})):(n=(n=Ma(e,yt.mouseTools())).filter((function(e){return Array.isArray(e.options.mouseButtonMask)&&t&&e.options.mouseButtonMask.includes(t)&&e.options.isMouseActive})),pt.isMultiPartToolActive&&(n=_a(n))),0!==n.length)return n[0]}var Da=N("manipulators:moveAllHandles"),Oa=Tt("manipulatorState"),La={mouse:[b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},Aa={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP]},Ha=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:pt.deleteIfHandleOutsideImage,preventHandleOutsideImage:pt.preventHandleOutsideImage},i);var l=Ra.bind(this,t,n,i,r),c=function e(a){Na(t,n,i,r,{dragHandler:l,upOrEndHandler:e},a,s)};Oa.setters.addActiveManipulatorForElement(o,Ua.bind(null,n,i,r,{dragHandler:l,upOrEndHandler:c},o,s)),n.active=!0,pt.isToolLocked=!0,La[r].forEach((function(e){o.addEventListener(e,l)})),Aa[r].forEach((function(e){o.addEventListener(e,c)}))};function Ra(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&&Mn(f,s))}y.cornerstone.updateImage(r);var m=Pa(r,l,a);m instanceof fo&&m.updateCachedStats(s,r,t);var p=b.MEASUREMENT_MODIFIED,x={toolName:e,toolType:e,element:r,measurementData:t};C(r,p,x),o.preventDefault(),o.stopPropagation()}function Ua(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=a.dragHandler,i=a.upOrEndHandler,r=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0;Fa(e,t,n,{dragHandler:o,upOrEndHandler:i},r,s,!1)}function Na(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=c.element;Oa.setters.removeActiveManipulatorForElement(u),n.deleteIfHandleOutsideImage&&ba(c,t.handles)&&L(u,e,t),Fa(t,n,a,{dragHandler:i,upOrEndHandler:r},u,l,!0)}function Fa(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=a.dragHandler,i=a.upOrEndHandler,r=arguments.length>4?arguments[4]:void 0,s=arguments.length>5?arguments[5]:void 0,l=!(arguments.length>6&&void 0!==arguments[6])||arguments[6];e.active=!1,e.invalidated=!0,pt.isToolLocked=!1,La[n].forEach((function(e){r.removeEventListener(e,o)})),Aa[n].forEach((function(e){r.removeEventListener(e,i)})),"function"==typeof t.doneMovingCallback&&(Da.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),t.doneMovingCallback(l)),"function"==typeof s&&s(l),y.cornerstone.updateImage(r)}var Ba=N("manipulators:moveHandle"),Va=Tt("manipulatorState"),qa={value:!1},ja={mouse:[b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},za={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP]},Wa=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:pt.deleteIfHandleOutsideImage,preventHandleOutsideImage:pt.preventHandleOutsideImage},o);var s=e.element,l=Ga.bind(this,t,n,a,o,i),c=function s(){Xa(t,e,n,a,o,i,{dragHandler:l,upOrEndHandler:s},r)};if(Va.setters.addActiveManipulatorForElement(s,Ya.bind(null,t,e,n,a,o,i,{dragHandler:l,upOrEndHandler:c},r)),a.active=!0,a.moving=!0,n.active=!0,pt.isToolLocked=!0,ja[i].forEach((function(e){s.addEventListener(e,l)})),za[i].forEach((function(e){s.addEventListener(e,c)})),"touch"===i){qa.value=!0;var u=y.cornerstone.getEnabledElement(s),d=Ca(e,i);Za(a,qa,u,d)}};function Ga(e,t,n,a,o,i){var r=i.detail,s=r.image,l=r.element,c=r.buttons,u=Ca(i.detail,o);qa.value=!1,n.active=!0,n.hasMoved=!0,n.x=u.x,n.y=u.y,t.invalidated=!0,a.preventHandleOutsideImage&&Mn(n,s),y.cornerstone.updateImage(l);var d=Pa(l,c,o);d instanceof fo&&d.updateCachedStats(s,l,t),C(l,b.MEASUREMENT_MODIFIED,{toolName:e,toolType:e,element:l,measurementData:t})}function Ya(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;Ka(e,t,n,a,o,i,{dragHandler:s,upOrEndHandler:l},c,!1)}function Xa(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=t.element;Va.setters.removeActiveManipulatorForElement(u),Ka(e,t,n,a,o,i,{dragHandler:s,upOrEndHandler:l},c,!0)}function Ka(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&&void 0!==arguments[8])||arguments[8],d=t.element;a.active=!1,a.moving=!1,n.active=!1,n.invalidated=!0,qa.value=!1,pt.isToolLocked=!1,ja[i].forEach((function(e){d.removeEventListener(e,s)})),za[i].forEach((function(e){d.removeEventListener(e,l)})),o.deleteIfHandleOutsideImage&&ba(t,n.handles)&&L(d,e,n),"function"==typeof o.doneMovingCallback&&(Ba.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),o.doneMovingCallback(u)),"function"==typeof c&&c(u),y.cornerstone.updateImage(d)}function Za(e,t,n,a){if(t.value){var o=Math.abs(e.y-a.y),i=o/10;if(o<1)return e.y=a.y,void(t.value=!1);e.y>a.y?e.y-=i:e.y<a.y&&(e.y+=i),y.cornerstone.updateImage(n.element),y.cornerstone.requestAnimationFrame((function(){Za(e,t,n,a)}))}}var $a=N("manipulators:moveNewHandle"),Ja=Tt("manipulatorState"),Qa={mouse:[b.MOUSE_MOVE,b.MOUSE_DRAG],touch:[b.TOUCH_DRAG]},eo={mouse:[b.MOUSE_UP,b.MOUSE_CLICK],touch:[b.TOUCH_END,b.TOUCH_PINCH,b.TAP]},to=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:pt.deleteIfHandleOutsideImage,preventHandleOutsideImage:pt.preventHandleOutsideImage},o)).hasMoved=!1;var s=e.element;function l(e){no(t,n,a,o,i,e)}function c(e){oo(t,n,a,o,i,{moveHandler:l,moveEndHandler:c},e,r)}n.active=!0,a.moving=!0,a.active=!0,pt.isToolLocked=!0,Qa[i].forEach((function(e){s.addEventListener(e,l)})),s.addEventListener(b.TOUCH_START,ro),eo[i].forEach((function(e){s.addEventListener(e,c)})),Ja.setters.addActiveManipulatorForElement(s,io.bind(null,n,a,o,i,{moveHandler:l,moveEndHandler:c},s,r))};function no(e,t,n,a,o,i){var r=i.detail,s=r.image,l=r.element,c=r.buttons,u=Ca(i.detail,o);a.hasMoved=!0,t.invalidated=!0,n.active=!0,n.x=u.x,n.y=u.y,a&&a.preventHandleOutsideImage&&Mn(n,s),y.cornerstone.updateImage(l);var d=Pa(l,c,o);d instanceof fo&&d.updateCachedStats(s,l,t),C(l,b.MEASUREMENT_MODIFIED,{toolName:e,toolType:e,element:l,measurementData:t})}function ao(e,t,n,a,o){var i=a.moveHandler,r=a.moveEndHandler,s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];Qa[e].forEach((function(e){n.removeEventListener(e,i)})),eo[e].forEach((function(e){n.removeEventListener(e,r)})),n.removeEventListener(b.TOUCH_START,ro),pt.isToolLocked=!1,"function"==typeof o&&o(s),"function"==typeof t.doneMovingCallback&&($a.warn("`options.doneMovingCallback` has been depricated. See https://github.com/cornerstonejs/cornerstoneTools/pull/915 for details."),t.doneMovingCallback(s)),y.cornerstone.updateImage(n)}function oo(e,t,n,a,o,i,r,s){var l=i.moveHandler,c=i.moveEndHandler,u=r.detail,d=u.element,h=!0;if(!1!==a.hasMoved){var v=Ca(u,o);t.active=!1,t.invalidated=!0,n.active=!1,n.moving=!1,n.x=v.x,n.y=v.y,Ja.setters.removeActiveManipulatorForElement(d),a.preventHandleOutsideImage&&Mn(n,r.detail.image),a.deleteIfHandleOutsideImage&&ba(r.detail,t.handles)&&(t.cancelled=!0,h=!1,L(d,e,t)),ao(o,a,d,{moveHandler:l,moveEndHandler:c},s,h)}}function io(e,t,n,a,o,i,r){var s=o.moveHandler,l=o.moveEndHandler;e.active=!1,e.invalidated=!0,t.active=!1,ao(a,n,i,{moveHandler:s,moveEndHandler:l},r,!1)}function ro(e){return e.stopImmediatePropagation(),!1}function so(e,t){var n=pt.clickProximity,a=pt.touchProximity,o=pt.tools.find((function(e){return e.name===t}));return o&&o.configuration&&(n=o.configuration.clickProximity||n,a=o.configuration.touchProximity||a),"mouse"===e?n:a}function lo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function co(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lo(n,!0).forEach((function(t){Ta()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lo(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var uo=function(e,t,n,a,o){n.active=!0,pt.isToolLocked=!0;Wa(e.detail,t.name,n,a,t.options,o,(function(t){var a=e.detail.element,o=n.toolType||n.toolName,i={toolName:o,toolType:o,element:a,measurementData:co({},n,{active:!1})};C(a,b.MEASUREMENT_COMPLETED,i)})),e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},ho=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=pa(e,r.handles,a,so(o,n));if(s)return{handle:s,data:r}}},vo=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse";n.active=!0,pt.isToolLocked=!0,Ha(e.detail,t.name,n,null,t.options,a,(function(){n.active=!1,pt.isToolLocked=!1})),e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},go=N("baseAnnotationTool"),fo=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=O(n,this.name),i=!1,r=0;r<o.data.length;r++){var s=o.data[r];!0===ya(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";uo(e,this,t,n,a)}},{key:"toolSelectedCallback",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mouse";vo(e,this,t,n)}},{key:"updateCachedStats",value:function(e,t,n){go.warn("updateCachedStats not implemented for ".concat(this.name,"."))}}]),t}(ga),mo=function(e,t,n,a){var o=y.cornerstone,i={start:o.pixelToCanvas(e,t),end:o.pixelToCanvas(e,n)};return y.cornerstoneMath.lineSegment.distanceToPoint(i,a)},po=function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n},yo=xt.cursor,xo=function(){function e(t,n){r()(this,e),this.iconGroupString=t,this.options=Object.assign({},yo.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||un.getActiveColor(),a=t.toolColor||un.getToolColor(),o=t.fillColor||un.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}(),To=new xo('<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}}),bo=new xo('<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}}),Co=new xo('<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}}),Mo=new xo('<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}}),Eo=new xo('<circle stroke="ACTIVE_COLOR" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',{viewBox:{x:32,y:32}}),wo=new xo('<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}}),Io=new xo('\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}}),So=new xo('<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}}),ko=new xo('<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}}),_o=new xo('<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}}),Po=new xo('<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}}),Do=new xo('<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}}),Oo=new xo('<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}}),Lo=new xo('<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}}),Ao=new xo('<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}}),Ho=new xo('<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}}),Ro=new xo('<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}}),Uo=new xo('<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}}),No=new xo('<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}}),Fo=new xo('<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}}),Bo=new xo('<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}}),Vo={x:127,y:60},qo=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"/>')},jo=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"/>')},zo='<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)"/>',Wo='<path fill="ACTIVE_COLOR" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',Go='<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)"/>',Yo=new xo("".concat(zo," ").concat(qo()),{viewBox:Vo}),Xo=new xo("".concat(zo," ").concat(jo()),{viewBox:Vo}),Ko=new xo("".concat(zo," ").concat(qo()),{viewBox:Vo}),Zo=new xo("".concat(zo," ").concat(jo()),{viewBox:Vo}),$o=new xo("".concat(Wo," ").concat(qo()),{viewBox:Vo}),Jo=new xo("".concat(Wo," ").concat(jo()),{viewBox:Vo}),Qo=new xo("".concat(Wo," ").concat(qo()),{viewBox:Vo}),ei=new xo("".concat(Wo," ").concat(jo()),{viewBox:Vo}),ti=new xo("".concat(Go," ").concat(qo()),{viewBox:Vo}),ni=new xo("".concat(Go," ").concat(jo()),{viewBox:Vo}),ai=new xo("".concat(Go," ").concat(qo()),{viewBox:Vo}),oi=new xo("".concat(Go," ").concat(jo()),{viewBox:Vo});function ii(e){var t=y.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 ri=function(e){var t=T()(e);return null!==e&&("object"===t||"function"===t)};var si=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){return c=e,s=f(y,t),u?g(e):r}function p(e){var n=e-l;return void 0===l||n>=t||n<0||d&&e-c>=i}function y(){var e=Date.now();if(p(e))return x(e);s=f(y,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 T(){for(var e=Date.now(),n=p(e),i=arguments.length,c=new Array(i),u=0;u<i;u++)c[u]=arguments[u];if(a=c,o=this,l=e,n){if(void 0===s)return m(l);if(d)return s=f(y,t),g(l)}return void 0===s&&(s=f(y,t)),r}return t=Number(t)||0,ri(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),T.cancel=function(){void 0!==s&&function(e){if(v)return window.cancelAnimationFrame(e);clearTimeout(e)}(s),c=0,a=l=o=s=void 0},T.flush=function(){return void 0===s?r:x(Date.now())},T.pending=function(){return void 0!==s},T};var li=function(e,t,n){var a=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return ri(n)&&(a="leading"in n?Boolean(n.leading):a,o="trailing"in n?Boolean(n.trailing):o),si(e,t,{leading:a,trailing:o,maxWait:t})},ci=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:To,configuration:{drawHandles:!0,drawHandlesOnHover:!1,hideHandlesIfMoving:!1,renderDashed:!1}};return(e=u()(this,h()(t).call(this,n,a))).preventNewMeasurement=!1,e.throttledUpdateCachedStats=li(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&&(mo(e,t.handles.start,t.handles.middle,n)<25||mo(e,t.handles.middle,t.handles.end,n)<25)}},{key:"updateCachedStats",value:function(e,t,n){var a=di(e,n.handles.middle,n.handles.start),o=di(e,n.handles.end,n.handles.middle),i=di(e,n.handles.end,n.handles.start),r=ui(a),s=ui(o),l=ui(i),c=Math.acos((Math.pow(r,2)+Math.pow(s,2)-Math.pow(l,2))/(2*r*s));c*=180/Math.PI,n.rAngle=po(c,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=o.hideHandlesIfMoving,l=o.renderDashed,c=O(e.currentTarget,this.name),u=Tt("globalConfiguration").configuration.lineDash;if(c)for(var d=_n(n.canvasContext.canvas),h=n.image,v=n.element,g=ii(h),f=g.rowPixelSpacing,m=g.colPixelSpacing,p=Xt.getToolWidth(),x=function(e){var o=c.data[e];if(!1===o.visible)return"continue";Wt(d,(function(e){Dn(e,t.configuration);var c=un.getColorIfActive(o),d=y.cornerstone.pixelToCanvas(n.element,o.handles.start),g=y.cornerstone.pixelToCanvas(n.element,o.handles.middle),x={color:c};l&&(x.lineDash=u),$t(e,n.element,o.handles.start,[o.handles.middle,o.handles.end],x);var T={color:c,handleRadius:i,drawHandlesIfActive:r,hideHandlesIfMoving:s};if(t.configuration.drawHandles&&dn(e,n,o.handles,T),!0===o.invalidated&&(o.rAngle?t.throttledUpdateCachedStats(h,v,o):t.updateCachedStats(h,v,o)),o.rAngle){var C,M=function(e,t,n){var a=t&&n?"":" (isotropic)";return e.rAngle.toString()+String.fromCharCode(parseInt("00B0",16))+a}(o,f,m);if(!o.handles.textBox.hasMoved){C={x:g.x,y:g.y};var E=Tn(e,M,5);g.x<d.x?C.x-=15+E+10:C.x+=15;var w=y.cornerstone.internal.getTransform(a);w.invert();var I=w.transformPoint(C.x,C.y);o.handles.textBox.x=I.x,o.handles.textBox.y=I.y}Sn(e,n.element,o.handles.textBox,M,o.handles,b,c,p,0,!0)}}))},T=0;T<c.data.length;T++)x(T);function b(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;D(i,this.name,o),y.cornerstone.updateImage(i),to(a,this.name,o,o.handles.middle,this.options,t,(function(e){if(o.active=!1,!e)return L(i,n.name,o),void(n.preventNewMeasurement=!1);o.handles.end.active=!0,y.cornerstone.updateImage(i),to(a,n.name,o,o.handles.end,n.options,t,(function(e){e?(o.active=!1,y.cornerstone.updateImage(i)):L(i,n.name,o),n.preventNewMeasurement=!1,y.cornerstone.updateImage(i);var t={toolName:n.name,toolType:n.name,element:i,measurementData:o};C(i,b.MEASUREMENT_COMPLETED,t)}))}))}}}]),t}(fo);function ui(e){return Math.sqrt(Math.pow(e.x,2)+Math.pow(e.y,2))}function di(e,t,n){var a=ii(e),o=a.rowPixelSpacing,i=a.colPixelSpacing;return{x:(t.x-n.x)*(i||1),y:(t.y-n.y)*(o||1)}}var hi=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:vi,changeTextCallback:gi,drawHandles:!0,drawHandlesOnHover:!1,hideHandlesIfMoving:!1,arrowFirst:!0,renderDashed:!1,allowEmptyLabel:!1},svgCursor:bo};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&&mo(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=i.hideHandlesIfMoving,c=i.renderDashed,u=O(a,this.name);if(u){var d,h=e.detail.canvasContext.canvas,v=_n(h),g=Xt.getToolWidth();c&&(d=Tt("globalConfiguration").configuration.lineDash);for(var f=function(n){var i=u.data[n];if(!1===i.visible)return"continue";Wt(v,(function(n){Dn(n,t.configuration);var c=un.getColorIfActive(i),u=y.cornerstone.pixelToCanvas(a,i.handles.start),h=y.cornerstone.pixelToCanvas(a,i.handles.end);t.configuration.arrowFirst?Jt(n,h,u,c,g,d):Jt(n,u,h,c,g,d);var v={color:c,handleRadius:r,drawHandlesIfActive:s,hideHandlesIfMoving:l};t.configuration.drawHandles&&dn(n,e.detail,i.handles,v);var f=function(e){return e.text}(i);if(f&&""!==f){var m=Tn(n,f,5),x=pn.getFontSize()+10,T=Math.max(m,x)/2+5;if(h.x<u.x&&(T=-T),!i.handles.textBox.hasMoved){var b;b=t.configuration.arrowFirst?{x:h.x-m/2+T,y:h.y-x/2}:{x:u.x-m/2-T,y:u.y-x/2};var C=y.cornerstone.internal.getTransform(o);C.invert();var M=C.transformPoint(b.x,b.y);i.handles.textBox.x=M.x,i.handles.textBox.y=M.y}Sn(n,a,i.handles.textBox,f,i.handles,p,c,g,0,!1)}}))},m=0;m<u.data.length;m++)f(m)}function p(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),i=this.configuration.allowEmptyLabel;D(a,this.name,o),y.cornerstone.updateImage(a),to(e.detail,this.name,o,o.handles.end,this.options,t,(function(t){t?void 0===o.text&&n.configuration.getTextCallback((function(e){if(e||i){o.text=e,o.active=!1;var t={toolName:n.name,toolType:n.name,element:a,measurementData:o};y.cornerstone.updateImage(a),C(a,b.MEASUREMENT_COMPLETED,t)}else L(a,n.name,o)}),e.detail):L(a,n.name,o),y.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=O(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)||fa(i.handles.textBox,n))return i.active=!0,y.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?L(e,this.name,t):t.text=n,t.active=!1,y.cornerstone.updateImage(e),C(e,b.MEASUREMENT_MODIFIED,{toolName:this.name,toolType:this.name,element:e,measurementData:t})}}]),t}(fo);function vi(e){e(prompt("Enter your annotation:"))}function gi(e,t,n){n(prompt("Change your annotation:"))}var fi=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)},mi=function(e){var t=e.currentPoints.image,n=t.x,a=t.y;return{toolName:this.name,toolType:this.name,isCreating:!0,visible:!0,active:!0,invalidated:!0,handles:{start:fi(n,a,0),end:fi(n,a,1,{active:!0}),perpendicularStart:fi(n,a,2,{locked:!0}),perpendicularEnd:fi(n,a,3),textBox:fi(n-50,a-70,null,{highlight:!1,hasMoved:!0,active:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0})},longestDiameter:0,shortestDiameter:0}},pi=function(e,t,n,a){var o=y.cornerstone,i=y.cornerstoneMath,r={start:o.pixelToCanvas(e,t.perpendicularStart),end:o.pixelToCanvas(e,t.perpendicularEnd)};return i.lineSegment.distanceToPoint(r,n)<a},yi=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=y.cornerstone,i=y.cornerstoneMath,r=t.handles,s={start:o.pixelToCanvas(e,r.start),end:o.pixelToCanvas(e,r.end)},l=i.lineSegment.distanceToPoint(s,n);if(fa(r.textBox,n))return!0;var c=so(a,"Bidirectional");return!!pi(e,r,n,c)||l<c};function xi(e,t,n,a){var o=(n.x-a.x)*e,i=(n.y-a.y)*t,r=Math.sqrt(o*o+i*i);return{x:o/r,y:i/r,length:r}}function Ti(e,t){if(!t.handles.perpendicularStart.locked)return!1;var n,a,o,i,r=t.handles,s=r.start,l=r.end,c=e.image,u=c.columnPixelSpacing,d=void 0===u?1:u,h=c.rowPixelSpacing,v=void 0===h?1:h;if(s.x===l.x&&s.y===l.y)n=s.x,a=s.y,o=l.x,i=l.y;else{var g={x:(s.x+l.x)/2,y:(s.y+l.y)/2},f=xi(d,v,s,l),m=f.length/2,p=m/(2*v),y=m/(2*d);n=g.x+y*f.y,a=g.y-p*f.x,o=g.x-y*f.y,i=g.y+p*f.x}return t.handles.perpendicularStart.x=n,t.handles.perpendicularStart.y=a,t.handles.perpendicularEnd.x=o,t.handles.perpendicularEnd.y=i,!0}var bi,Ci=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=r.hideHandlesIfMoving,u=r.renderDashed,d=Tt("globalConfiguration").configuration.lineDash,h=O(a,this.name);if(h){var v=ii(i),g=v.rowPixelSpacing,f=v.colPixelSpacing;if(g&&f)for(var m,p=_n(o.canvas),y=un.getActiveColor(),x=Xt.getToolWidth(),T=function(e){var o=h.data[e];if(!1===o.visible)return"continue";m=o.active?y:un.getToolColor(),!0===o.invalidated&&(o.longestDiameter&&o.shortestDiameter?t.throttledUpdateCachedStats(i,a,o):t.updateCachedStats(i,a,o)),Wt(p,(function(e){Dn(e,t.configuration);var i=o.handles,r=i.start,h=i.end,v=i.perpendicularStart,p=i.perpendicularEnd,y=i.textBox,T={color:m},b={color:m,strokeWidth:C};u&&(T.lineDash=d,b.lineDash=d),Zt(e,a,r,h,T);var C=x;Ti(n,o),Zt(e,a,v,p,b);var M={color:m,handleRadius:s,drawHandlesIfActive:l,hideHandlesIfMoving:c};t.configuration.drawHandles&&dn(e,n,o.handles,M);var E=Mi(o,g,f);Sn(e,a,y,E,o.handles,(function(e){return[e.start,e.end,e.perpendicularStart,e.perpendicularEnd]}),m,x,10,!0)}))},b=0;b<h.data.length;b++)T(b)}},Mi=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(J()(r),[o,i]):[o,i]},Ei=function(e,t){var n=this,a=e.detail,o=a.element,i=a.image,r=a.buttons,s=this.configuration;if(!wi(i)){var l=this.createNewMeasurement(a),c=function(){l.active=!1,y.cornerstone.updateImage(o)};D(o,this.name,l),y.cornerstone.updateImage(o);var u=(new Date).getTime(),d=l.handles,h=d.end,v=d.perpendicularStart;to(a,this.name,l,h,{},t,(function(e){if(e){var d=l.handles,h=l.longestDiameter,g=l.shortestDiameter,f=ba(a,d),m=parseFloat(h)||0,p=parseFloat(g)||0,x=m<1||p<1,T=(new Date).getTime()-u<150;f||x||T?(l.cancelled=!0,L(o,n.name,l)):s.getMeasurementLocationCallback(l,a,c),Ti(a,l),v.locked=!1,l.invalidated=!0,y.cornerstone.updateImage(o);var M=Pa(o,r,t);M instanceof Zi&&M.updateCachedStats(i,o,l);var E={toolName:n.name,toolType:n.name,element:o,measurementData:l};C(o,b.MEASUREMENT_MODIFIED,E),C(o,b.MEASUREMENT_COMPLETED,E)}else L(o,n.name,l)}))}},wi=function(e){var t=y.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 Ii={setCoords:function(e){bi=e.currentPoints.canvas},getCoords:function(){return bi}},Si=function(e){var t=this,n=e.detail,a=n.element;Ii.setCoords(n);var o=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=pa(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&&y.cornerstone.updateImage(a)}},ki=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse";"touch"===a?this.handleSelectedTouchCallback(e):this.handleSelectedMouseCallback(e)};function _i(e,t,n,a){var o=(n.x-a.x)/t,i=(n.y-a.y)/e;return Math.sqrt(o*o+i*i)}function Pi(e,t){return{start:e,end:t}}function Di(e,t,n){var a=y.cornerstoneMath.lineSegment,o=e.handles,i=o.start,r=o.end,s=o.perpendicularStart,l=o.perpendicularEnd,c=t.image,u=c.columnPixelSpacing,d=void 0===u?1:u,h=c.rowPixelSpacing,v=void 0===h?1:h,g=Pi(i,r),f=Pi(s,l),m=a.intersectLine(g,f);return{columnPixelSpacing:d,rowPixelSpacing:v,start:i,end:r,perpendicularStart:s,perpendicularEnd:l,longLine:g,intersection:m,distanceToFixed:_i(d,v,n,m),fixedPoint:n}}function Oi(e,t,n,a){var o=Di(t,n,a),i=o.columnPixelSpacing,r=o.rowPixelSpacing,s=o.distanceToFixed,l=_i(i,r,a,e);if(l<=s)return!1;var c=s/l,u=function(e,t){var n=e.columnPixelSpacing,a=e.rowPixelSpacing,o=e.start,i=e.perpendicularStart,r=e.perpendicularEnd,s=e.intersection,l=e.fixedPoint,c=_i(n,a,i,s),u=_i(n,a,r,s),d=xi(n,a,l,t),h=l===o?1:-1,v=h*a,g=h*n;return{start:{x:t.x+d.y*c*v,y:t.y+d.x*c*g*-1},end:{x:t.x+d.y*u*v*-1,y:t.y+d.x*u*g}}}(o,{x:a.x+(e.x-a.x)*c,y:a.y+(e.y-a.y)*c});return t.handles.perpendicularStart.x=u.start.x,t.handles.perpendicularStart.y=u.start.y,t.handles.perpendicularEnd.x=u.end.x,t.handles.perpendicularEnd.y=u.end.y,!0}function Li(e,t){return e===t}function Ai(e,t){return Li(e,t)?-1:1}function Hi(e,t,n,a){var o,i=e.columnPixelSpacing,r=e.rowPixelSpacing,s=e.fixedPoint,l=e.perpendicularStart,c=e.perpendicularEnd,u=e.distanceToFixed,d=Ai(s,c)*u,h=function(e,t,n){return Li(e,n)?t:n}(s,l,c)===l,v=h?"start":"end",g=h?"end":"start";return o={},Ta()(o,v,{x:n.start.x,y:n.start.y}),Ta()(o,g,{x:t.x+a.y*r*d,y:t.y+a.x*i*d*-1}),o}function Ri(e,t,n,a){var o=y.cornerstoneMath.lineSegment,i=Di(t,n,a),r=i.columnPixelSpacing,s=i.rowPixelSpacing,l=i.start,c=i.longLine,u=i.intersection;if(!function(e,t,n){return 0!==_i(e,t,n.start,n.end)}(r,s,c))return!1;var d=xi(r,s,l,u),h=function(e,t,n){var a=e.columnPixelSpacing,o=e.rowPixelSpacing,i=e.perpendicularEnd,r=e.fixedPoint,s=Number.MAX_SAFE_INTEGER,l=Ai(r,i)*s;return{start:t,end:{x:t.x+n.y*o*l,y:t.y+n.x*a*l*-1}}}(i,e,d),v=o.intersectLine(c,h);if(!v)return!1;var g=Hi(i,v,h,d);return t.handles.perpendicularStart.x=g.start.x,t.handles.perpendicularStart.y=g.start.y,t.handles.perpendicularEnd.x=g.end.x,t.handles.perpendicularEnd.y=g.end.y,!0}var Ui=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?Oi(u,n,t,n.handles.end)?(e.x=u.x,e.y=u.y):(t.currentPoints.image.x=e.x,t.currentPoints.image.y=e.y):1===e.index?Oi(u,n,t,n.handles.start)?(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=y.cornerstoneMath.lineSegment.intersectLine(l,c))||(c.end={x:n.handles.perpendicularStart.x,y:n.handles.perpendicularStart.y},i=y.cornerstoneMath.lineSegment.intersectLine(l,c),r=y.cornerstoneMath.point.distance(i,n.handles.start),s=y.cornerstoneMath.point.distance(i,n.handles.end),(!i||r<3||s<3)&&(o=!0)),!1,o||Ri(u,n,t,n.handles.perpendicularEnd)||(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=y.cornerstoneMath.lineSegment.intersectLine(l,c))||(c.end={x:n.handles.perpendicularEnd.x,y:n.handles.perpendicularEnd.y},i=y.cornerstoneMath.lineSegment.intersectLine(l,c),r=y.cornerstoneMath.point.distance(i,n.handles.start),s=y.cornerstoneMath.point.distance(i,n.handles.end),(!i||r<3||s<3)&&(o=!0)),!1,o||Ri(u,n,t,n.handles.perpendicularStart)||(t.currentPoints.image.x=n.handles.perpendicularEnd.x,t.currentPoints.image.y=n.handles.perpendicularEnd.y))},Ni=function(e,t,n){var a=e[n],o=t[n];e[n]=o,t[n]=a},Fi=function(e,t){Ni(e,t,"x"),Ni(e,t,"y"),Ni(e,t,"moving"),Ni(e,t,"hover"),Ni(e,t,"active"),Ni(e,t,"selected")};var Bi=function(e){var t,n=this,a=e.detail,o=a.element,i=so("mouse",this.name),r=function(e){t.invalidated=!0,ba(a,t.handles)&&L(o,n.name,t),e&&(e.moving=!1,e.selected=!0),Et(n.element,n.svgCursor),y.cornerstone.updateImage(o),o.addEventListener(b.MOUSE_MOVE,n._moveCallback),o.addEventListener(b.TOUCH_START,n._moveCallback)},s=a.startPoints.canvas,l=O(e.currentTarget,this.name);if(l){for(var c=function(c){t=l.data[c];var u=[o,t.handles,s,i],d=pa.apply(void 0,u);if(d)return o.removeEventListener(b.MOUSE_MOVE,n._moveCallback),o.removeEventListener(b.TOUCH_START,n._moveCallback),t.active=!0,Vi(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?(Fi(s,l),Fi(s,c),Fi(l,u),Object.values(r).find((function(e){return!0===e.moving}))):n}(a,t,d)).hasBoundingBox||wt(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):Ui(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,y.cornerstone.updateImage(r);var u=Pa(r,l,"mouse");u instanceof fo&&u.updateCachedStats(s,r,n);var d={toolName:t,toolType:t,element:r,measurementData:n};y.cornerstone.triggerEvent(r,b.MEASUREMENT_MODIFIED,d)};a.active=!0,a.moving=!0,pt.isToolLocked=!0,r.addEventListener(b.MOUSE_DRAG,u),r.addEventListener(b.TOUCH_DRAG,u);var d=y.cornerstone.getImage(r),h=function(){y.cornerstone.getImage(r).imageId!==d.imageId&&v()};r.addEventListener(y.cornerstone.EVENTS.IMAGE_RENDERED,h);var v=function e(){a.active=!1,pt.isToolLocked=!1,r.removeEventListener(y.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),y.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)})),ji(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(){qi(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,Vi(t.handles),qi(t.handles,!0);var v=h(t.handles);return Ha(a,this.name,t,null,{deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1},"mouse",v),ji(e),!0}}},Vi=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},qi=function(e,t){Object.keys(e).forEach((function(n){"textBox"!==n&&(e[n].moving=t)}))},ji=function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()},zi=[b.TOUCH_END,b.TOUCH_DRAG_END,b.TOUCH_PINCH,b.TOUCH_PRESS,b.TAP],Wi=function(e){var t,n=this,a=e.detail,o=a.element,i=pt.touchProximity,r=function(e){t.invalidated=!0,ba(a,t.handles)&&L(o,n.name,t),e&&(e.moving=!1,e.selected=!0),y.cornerstone.updateImage(o),o.addEventListener(b.TOUCH_DRAG,n._moveCallback)},s=a.startPoints.canvas,l=O(e.currentTarget,this.name);if(l){for(var c=function(c){t=l.data[c];var u=[o,t.handles,s,i],d=pa.apply(void 0,u);if(d)return o.removeEventListener(b.TOUCH_DRAG,n._moveCallback),t.active=!0,Gi(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):Ui(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,y.cornerstone.updateImage(r);var u=Pa(r,l,"touch");u instanceof fo&&u.updateCachedStats(s,r,n);var d={toolName:t,toolType:t,element:r,measurementData:n};y.cornerstone.triggerEvent(r,b.MEASUREMENT_MODIFIED,d)};a.active=!0,pt.isToolLocked=!0,r.addEventListener(b.TOUCH_DRAG,u);var d=function e(){a.active=!1,pt.isToolLocked=!1,r.removeEventListener(b.TOUCH_DRAG,u),zi.forEach((function(t){r.removeEventListener(t,e)})),y.cornerstone.updateImage(r),"function"==typeof o&&o()};zi.forEach((function(e){r.addEventListener(e,d)}))}(a,n.name,t,d,(function(){return r(d)})),Xi(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(){Yi(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,Gi(t.handles),Yi(t.handles,!0);var v=h(t.handles);return Ha(a,this.name,t,null,{deleteIfHandleOutsideImage:!0,preventHandleOutsideImage:!1},"touch",v),Xi(e),!0}}},Gi=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},Yi=function(e,t){Object.keys(e).forEach((function(n){"textBox"!==n&&(e[n].moving=t)}))},Xi=function(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()};var Ki=function(e,t,n){return n()},Zi=function(e){function t(e){var n;r()(this,t);var a={name:"Bidirectional",supportedInteractionTypes:["Mouse","Touch"],configuration:{changeMeasurementLocationCallback:Ki,getMeasurementLocationCallback:Ki,textBox:"",shadow:"",drawHandles:!0,drawHandlesOnHover:!0,hideHandlesIfMoving:!1,renderDashed:!1,additionalData:[]},svgCursor:Co};return(n=u()(this,h()(t).call(this,e,a))).throttledUpdateCachedStats=li(n.updateCachedStats,110),n.createNewMeasurement=mi.bind(wa()(n)),n.pointNearTool=yi.bind(wa()(n)),n.renderToolData=Ci.bind(wa()(n)),n.addNewMeasurement=Ei.bind(wa()(n)),n._moveCallback=Si.bind(wa()(n)),n.handleSelectedCallback=ki.bind(wa()(n)),n.handleSelectedMouseCallback=Bi.bind(wa()(n)),n.handleSelectedTouchCallback=Wi.bind(wa()(n)),n}return g()(t,e),l()(t,[{key:"updateCachedStats",value:function(e,t,n){if(n.toolName===this.name){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,ii(e)),o=a.longestDiameter,i=a.shortestDiameter;n.longestDiameter=o,n.shortestDiameter=i,n.invalidated=!1}}}]),t}(fo),$i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=y.cornerstone,o=a.metaData.get("patientStudyModule",e.imageId),i=a.metaData.get("generalSeriesModule",e.imageId);if(o&&i){var r=i.modality;if("PT"===r){var s=n?t:t*e.slope+e.intercept,l=o.patientWeight;if(l){var c=a.metaData.get("petIsotopeModule",e.imageId);if(c){var u=c.radiopharmaceuticalInfo,d=u.radiopharmaceuticalStartTime,h=u.radionuclideTotalDose,v=u.radionuclideHalfLife,g=i.seriesTime;if(d&&h&&v&&g){var f=Ji(g.fractionalSeconds||0)+g.seconds+60*g.minutes+60*g.hours*60,m=Ji(d.fractionalSeconds||0)+d.seconds+60*d.minutes+60*d.hours*60,p=f-m,x=h*Math.exp(-p*Math.log(2)/v),T=s*l/x*1e3;return T}}}}}};function Ji(e){return parseFloat(".".concat(e))}var Qi=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},er=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++){Qi(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}},tr={calculateEllipseStatistics:er,pointInEllipse:Qi};function nr(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 ar=function(e){var t=e.toString().split(".");return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),t.join(".")},or=N("tools:annotation:CircleRoiTool"),ir=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:Eo,configuration:{renderDashed:!1,hideHandlesIfMoving:!1}};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=li(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}}};or.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=y.cornerstoneMath.point.distance;if(o||or.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;var r="mouse"===a?15:25,s=y.cornerstone.pixelToCanvas(e,t.handles.start),l=y.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=(y.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=ii(e),i=function(e,t,n,a,o){var i,r=ye(n.start,n.end),s=y.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),l=er(s,r);"PT"===a&&(i={mean:$i(e,l.mean,!0)||0,stdDev:$i(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=O(e.currentTarget,this.name);if(n){var a=y.cornerstoneMath.point.distance,o=e.detail,i=o.image,r=o.element,s=o.canvasContext,l=Xt.getToolWidth(),c=this.configuration,u=c.handleRadius,d=c.drawHandlesOnHover,h=c.hideHandlesIfMoving,v=c.renderDashed,g=_n(s.canvas),f=ii(i),m=f.rowPixelSpacing,p=f.colPixelSpacing,x=Tt("globalConfiguration").configuration.lineDash,T=(y.cornerstone.metaData.get("generalSeriesModule",i.imageId)||{}).modality,b=m&&p;Wt(g,(function(e){for(var s=0;s<n.data.length;s++){var c=n.data[s];if(!1!==c.visible){var g=un.getColorIfActive(c),f={color:g,handleRadius:u,drawHandlesIfActive:d,hideHandlesIfMoving:h};Dn(e,t.configuration);var m=y.cornerstone.pixelToCanvas(r,c.handles.start),p=y.cornerstone.pixelToCanvas(r,c.handles.end),C=a(m,p),M={color:g};if(v&&(M.lineDash=x),Qt(e,r,c.handles.start,C,M,"pixel"),dn(e,o,c.handles,f),!0===c.invalidated&&(c.cachedStats?t.throttledUpdateCachedStats(i,r,c):t.updateCachedStats(i,r,c)),!c.handles.textBox.hasMoved){var E=nr(o.viewport,c.handles);Object.assign(c.handles.textBox,E)}var w=sr(e,i.color,c.cachedStats,T,b,t.configuration);c.unit=rr(T,t.configuration.showHounsfieldUnits),Sn(e,r,c.handles.textBox,w,c.handles,(function(e){return t=e.start,n=e.end,a=ye(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}),g,l,10,!0)}}}))}}}]),t}(fo);function rr(e,t){return"CT"===e&&!1!==t?"HU":""}function sr(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=rr(c,d.showHounsfieldUnits),p="Mean: ".concat(ar(o.toFixed(2))," ").concat(m),y="Std Dev: ".concat(ar(i.toFixed(2))," ").concat(m);if(f){for(var x=" SUV: ",T="".concat(x).concat(ar(l.mean.toFixed(2))),b="".concat(x).concat(ar(l.stdDev.toFixed(2))),C=Math.floor(e.measureText("".concat(y," ")).width);e.measureText(p).width<C;)p+=" ";g.push("".concat(p).concat(T)),g.push("".concat(y," ").concat(b))}else g.push("".concat(p," ").concat(y));if(h){for(var M="Min: ".concat(r," ").concat(m),E="Max: ".concat(s," ").concat(m),w=f?Math.floor(e.measureText("".concat(y," ")).width):Math.floor(e.measureText("".concat(p," ")).width);e.measureText(M).width<w;)M+=" ";g.push("".concat(M).concat(E))}}return v.push(lr(a,u)),g.forEach((function(e){return v.push(e)})),v}function lr(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ar(e.toFixed(2))).concat(n)}var cr=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:Mo,configuration:{drawHandles:!0,drawHandlesOnHover:!1,hideHandlesIfMoving:!1,renderDashed:!1}};return(e=u()(this,h()(t).call(this,n,a))).hasIncomplete=!1,e.throttledUpdateCachedStats=li(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){if(!1===t.visible)return!1;if(this.hasIncomplete)return!1;var a=mo(e,t.handles.start,t.handles.end,n)<25,o=mo(e,t.handles.start2,t.handles.end2,n)<25;return a||o}},{key:"updateCachedStats",value:function(e,t,n){var a=ii(e),o=a.rowPixelSpacing,i=a.colPixelSpacing,r=(Math.ceil(n.handles.start.x)-Math.ceil(n.handles.end.x))*(i||1),s=(Math.ceil(n.handles.start.y)-Math.ceil(n.handles.end.y))*(o||1),l=(Math.ceil(n.handles.start2.x)-Math.ceil(n.handles.end2.x))*(i||1),c=(Math.ceil(n.handles.start2.y)-Math.ceil(n.handles.end2.y))*(o||1),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=po(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=a.hideHandlesIfMoving,s=a.renderDashed,l=O(e.currentTarget,this.name);if(l)for(var c=_n(n.canvasContext.canvas),u=Xt.getToolWidth(),d=Tt("globalConfiguration").configuration.lineDash,h=pn.getFont(),v=e.detail.element,g=ii(y.cornerstone.getEnabledElement(v).image),f=g.rowPixelSpacing,m=g.colPixelSpacing,p=function(e){var a=l.data[e];if(!1===a.visible)return"continue";a.value||(a.value=t.textBoxText(a,f,m)),Wt(c,(function(e){Dn(e,t.configuration);var l=un.getColorIfActive(a),c={color:l};s&&(c.lineDash=d),Zt(e,n.element,a.handles.start,a.handles.end,c),a.complete&&Zt(e,n.element,a.handles.start2,a.handles.end2,c);var v={color:l,handleRadius:o,drawHandlesIfActive:i,hideHandlesIfMoving:r};t.configuration.drawHandles&&dn(e,n,a.handles,v),e.fillStyle=l;var g=a.value;if(!a.handles.textBox.hasMoved){var f={x:(a.handles.start.x+a.handles.end.x)/2,y:(a.handles.start.y+a.handles.end.y)/2-10};e.font=h,a.handles.textBox.x=f.x,a.handles.textBox.y=f.y}Sn(e,n.element,a.handles.textBox,g,a.handles,T,l,u,0,!0)}))},x=0;x<l.data.length;x++)p(x);function T(e){return[e.start,e.start2,e.end,e.end2]}}},{key:"getIncomplete",value:function(e){var t=O(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=e.detail,r=function(e){if(e){var t=b.MEASUREMENT_COMPLETED,o={toolName:n.name,toolType:n.name,element:s,measurementData:a};C(s,t,o)}else L(s,n.name,a)},s=e.detail.element,l=this.getIncomplete(s);l?((a=l).complete=!0,a.handles.start2={x:i.currentPoints.image.x,y:i.currentPoints.image.y,drawnIndependently:!1,highlight:!0,active:!1},a.handles.end2={x:i.currentPoints.image.x,y:i.currentPoints.image.y,drawnIndependently:!1,highlight:!0,active:!0},o=a.handles.end2,this.hasIncomplete=!1,r=function(e){if(e){var t=b.MEASUREMENT_COMPLETED,o={toolName:n.name,toolType:n.name,element:s,measurementData:a};C(s,t,o)}else L(s,n.name,a)}):(a=this.createNewMeasurement(i),D(s,this.name,a),o=a.handles.end),y.cornerstone.updateImage(s),to(i,this.name,a,o,this.options,t,r)}},{key:"onMeasureModified",value:function(e){var t=e.detail.element,n=y.cornerstone.getEnabledElement(t).image,a=ii(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)),r.value=this.textBoxText(r,o,i)}}},{key:"textBoxText",value:function(e,t,n){var a=e.rAngle;if(void 0===a)return"";if(Number.isNaN(a))return"";var o=t&&n?"":" (isotropic)";return"".concat(a,"°").concat(o)}},{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}(fo),ur=N("tools:annotation:EllipticalRoiTool"),dr=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:{drawHandlesOnHover:!1,hideHandlesIfMoving:!1,renderDashed:!1},svgCursor:wo};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=li(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}}};ur.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||ur.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;if(pa(e,t.handles,n,6))return!0;var i="mouse"===a?15:25,r=y.cornerstone.pixelToCanvas(e,t.handles.start),s=y.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=Qi(l,n);return!(!Qi(c,n)||u)}},{key:"updateCachedStats",value:function(e,t,n){var a=(y.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=ii(e),i=function(e,t,n,a,o){var i,r=fr(n.start,n.end),s=y.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),l=er(s,r);"PT"===a&&(i={mean:$i(e,l.mean,!0)||0,stdDev:$i(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=O(e.currentTarget,this.name);if(n){var a=e.detail,o=a.image,i=a.element,r=Xt.getToolWidth(),s=Tt("globalConfiguration").configuration.lineDash,l=this.configuration,c=l.handleRadius,u=l.drawHandlesOnHover,d=l.hideHandlesIfMoving,h=l.renderDashed,v=_n(a.canvasContext.canvas),g=ii(o),f=g.rowPixelSpacing,m=g.colPixelSpacing,p=(y.cornerstone.metaData.get("generalSeriesModule",o.imageId)||{}).modality,x=f&&m;Wt(v,(function(e){for(var l=0;l<n.data.length;l++){var v=n.data[l];if(!1!==v.visible){var g=un.getColorIfActive(v),f={color:g,handleRadius:c,drawHandlesIfActive:u,hideHandlesIfMoving:d};Dn(e,t.configuration);var m={color:g};if(h&&(m.lineDash=s),rn(e,i,v.handles.start,v.handles.end,m,"pixel",v.handles.initialRotation),dn(e,a,v.handles,f),!0===v.invalidated&&(v.cachedStats?t.throttledUpdateCachedStats(o,i,v):t.updateCachedStats(o,i,v)),!v.handles.textBox.hasMoved){var y=nr(a.viewport,v.handles);Object.assign(v.handles.textBox,y)}var T=vr(e,o.color,v.cachedStats,p,x,t.configuration);v.unit=hr(p,t.configuration.showHounsfieldUnits),Sn(e,i,v.handles.textBox,T,v.handles,(function(e){return t=e.start,n=e.end,a=fr(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}),g,r,10,!0)}}}))}}}]),t}(fo);function hr(e,t){return"CT"===e&&!1!==t?"HU":""}function vr(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=hr(c,d.showHounsfieldUnits),p="Mean: ".concat(ar(o.toFixed(2))," ").concat(m),y="Std Dev: ".concat(ar(i.toFixed(2))," ").concat(m);if(f){for(var x=" SUV: ",T="".concat(x).concat(ar(l.mean.toFixed(2))),b="".concat(x).concat(ar(l.stdDev.toFixed(2))),C=Math.floor(e.measureText("".concat(y," ")).width);e.measureText(p).width<C;)p+=" ";g.push("".concat(p).concat(T)),g.push("".concat(y," ").concat(b))}else g.push("".concat(p)),g.push("".concat(y));if(h){for(var M="Min: ".concat(r," ").concat(m),E="Max: ".concat(s," ").concat(m),w=f?Math.floor(e.measureText("".concat(y," ")).width):Math.floor(e.measureText("".concat(p," ")).width);e.measureText(M).width<w;)M+=" ";g.push("".concat(M).concat(E))}}return v.push(gr(a,u)),g.forEach((function(e){return v.push(e)})),v}function gr(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ar(e.toFixed(2))).concat(n)}function fr(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 mr=function(e,t){for(var n=!1,a=e.length-1,o=0;o<e.length;o++)pr(t,e[o],e[a])&&(n=!n),a=o;return n};function pr(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.y+a*(e.x-t.x),gradient:a}}(e,t,n);return Math.sign(o.gradient)*e.y>Math.sign(o.gradient)*o.value}(e,t,n));var a,o,i}function yr(e,t,n,a){mr(e,t)&&(n.value+=a,n.squared+=a*a,n.count++)}var xr=function e(t,n){r()(this,e),this.toolIndex=t,this.handleIndexArray=n},Tr=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 br(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(Cr(t,n,Mr(e[o]),Mr(e[i])))return!0;o=i}else o=i;return!1}function Cr(e,t,n,a){var o=!1,i=[Er(e,t,n),Er(e,t,a),Er(n,a,e),Er(n,a,t)];return i[0]!==i[1]&&i[2]!==i[3]||((0===i[0]&&wr(e,n,t)||0===i[1]&&wr(e,a,t)||0===i[2]&&wr(n,e,a)||0===i[3]&&wr(n,t,a))&&(o=!0),o)}function Mr(e){return{x:e.x,y:e.y}}function Er(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 wr(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 Ir={newHandle:function(e,t){var n=t.length-1;return br(t,Mr(t[n]),Mr(e),[n])},end:function(e){var t=e.length-1;return br(e,Mr(e[t]),Mr(e[0]),[t,0])},modify:function(e,t){var n=Mr(e[t]),a=t-1;0===t&&(a=e.length-1);var o=Mr(e[a]);return!!br(e,n,o,[t,a])||br(e,n,o=Mr(e[a=t===e.length-1?0:t+1]),[t,a])}},Sr=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=O(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=y.cornerstone.pixelToCanvas(t.element,a[i]),s=y.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 xr(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=y.cornerstone.pixelToCanvas(n.element,e),o=y.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)/y.cornerstoneMath.point.distance(a,o)}}],[{key:"getCanvasPointsFromHandles",value:function(e,t,n){var a=[];return e.x<t.x?(a.push(y.cornerstone.pixelToCanvas(n,e)),a.push(y.cornerstone.pixelToCanvas(n,t))):(a.push(y.cornerstone.pixelToCanvas(n,t)),a.push(y.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=y.cornerstoneMath.point.distance(e[0],e[1]),t}},{key:"getNextHandleIndex",value:function(e,t){return e<t-1?e+1:0}}]),e}(),kr=function(e,t){t===e.length-1?e[t].lines.push(e[0]):e[t].lines.push(e[t+1])};function _r(e,t){var n=O(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,y.cornerstone.updateImage(e.element))}}function Pr(e,t){var n=O(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)}a&&1===n&&(n=0);return++n}(t);if(o!==1/0){var i=new Tr(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),kr(r,o),a.active=!0,a.highlight=!0,a.invalidated=!0,y.cornerstone.updateImage(e.element)}}}var Dr={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++){yr(n,{x:r,y:i},a,e[o]),o++}return a}(e,t,n);return 0===o.count||(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:xr,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:Tr,freehandIntersect:Ir,FreehandLineFinder:Sr,insertOrDelete:function(e,t){var n=e.detail;if(t&&null!==t.handleNearby){var a={toolIndex:t.toolIndex,handleIndex:t.handleNearby};_r.call(this,n,a)}else{var o=new Sr(n,this.name).findLine();o&&Pr.call(this,n,o)}},pointInFreehand:mr,addLine:kr},Or=N("tools:annotation:FreehandRoiTool"),Lr=Dr.insertOrDelete,Ar=Dr.freehandArea,Hr=Dr.calculateFreehandStatistics,Rr=Dr.freehandIntersect,Ur=Dr.FreehandHandleData,Nr=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,drawHandles:!0,renderDashed:!1},svgCursor:Io};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(wa()(e)),e._drawingMouseMoveCallback=e._drawingMouseMoveCallback.bind(wa()(e)),e._drawingMouseDragCallback=e._drawingMouseDragCallback.bind(wa()(e)),e._drawingMouseUpCallback=e._drawingMouseUpCallback.bind(wa()(e)),e._drawingMouseDoubleClickCallback=e._drawingMouseDoubleClickCallback.bind(wa()(e)),e._editMouseUpCallback=e._editMouseUpCallback.bind(wa()(e)),e._editMouseDragCallback=e._editMouseDragCallback.bind(wa()(e)),e._drawingTouchStartCallback=e._drawingTouchStartCallback.bind(wa()(e)),e._drawingTouchDragCallback=e._drawingTouchDragCallback.bind(wa()(e)),e._drawingDoubleTapClickCallback=e._drawingDoubleTapClickCallback.bind(wa()(e)),e._editTouchDragCallback=e._editTouchDragCallback.bind(wa()(e)),e.throttledUpdateCachedStats=li(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}Or.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=y.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=y.cornerstone.pixelToCanvas(e,n),i=t.handles.points,r=0;r<i.length;r++){var s=y.cornerstone.pixelToCanvas(e,i[r]),l=y.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=y.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=y.cornerstone.getPixels(t,u.left,u.top,u.width,u.height);a=Hr.call(this,d,u,n.handles.points),"PT"===r&&(o={mean:$i(e,(a.mean-e.intercept)/e.slope),stdDev:$i(e,(a.stdDev-e.intercept)/e.slope)}),a&&!isNaN(a.mean)&&(n.meanStdDev=a,n.meanStdDevSUV=o)}var h=ii(e),v=(h.colPixelSpacing||1)*(h.rowPixelSpacing||1),g=Ar(n.handles.points,v);isNaN(g)||(n.area=g),n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=O(e.currentTarget,this.name);if(a)for(var o=n.image,i=n.element,r=this.configuration,s=y.cornerstone.metaData.get("generalSeriesModule",o.imageId),l=s?s.modality:null,c=_n(n.canvasContext.canvas),u=Xt.getToolWidth(),d=r.renderDashed,h=Tt("globalConfiguration").configuration.lineDash,v=function(e){var s=a.data[e];if(!1===s.visible)return"continue";Wt(c,(function(e){var a,l=un.getColorIfActive(s);s.active?s.handles.invalidHandlePlacement?(l=r.invalidColor,a=r.invalidColor):(l=un.getColorIfActive(s),a=un.getFillColor()):a=un.getToolColor();var c={color:l};if(d&&(c.lineDash=h),s.handles.points.length){var v=s.handles.points;$t(e,i,v[0],v,c),s.polyBoundingBox?$t(e,i,v[v.length-1],[v[0]],c):$t(e,i,v[v.length-1],[r.mouseLocation.handles.start],c)}if(c={color:l,fill:a},(r.alwaysShowHandles||s.active&&s.polyBoundingBox)&&(c.handleRadius=r.activeHandleRadius,t.configuration.drawHandles&&dn(e,n,s.handles.points,c)),s.canComplete){c.handleRadius=r.completeHandleRadius;var g=s.handles.points[0];t.configuration.drawHandles&&dn(e,n,[g],c)}if(s.active&&!s.polyBoundingBox){c.handleRadius=r.activeHandleRadius,t.configuration.drawHandles&&dn(e,n,r.mouseLocation.handles,c);var p=s.handles.points[0];t.configuration.drawHandles&&dn(e,n,[p],c)}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 y=f.call(t,s);Sn(e,i,s.handles.textBox,y,s.handles.points,m,l,u,0,!0)}}))},g=0;g<a.data.length;g++)v(g);function f(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(ar(t.mean.toFixed(2))," ").concat(r),c="StdDev: ".concat(ar(t.stdDev.toFixed(2))," ").concat(r);if(n&&void 0!==n.mean){s+=" SUV: "+ar(n.mean.toFixed(2)),c+=" SUV: "+ar(n.stdDev.toFixed(2))}i.push(s),i.push(c)}if(a){var u=" mm".concat(String.fromCharCode(178)),d=ii(o),h=d.rowPixelSpacing,v=d.colPixelSpacing;h&&v||(u=" pixels".concat(String.fromCharCode(178)));var g="Area: ".concat(ar(a.toFixed(2))).concat(u);i.push(g)}return i}function m(e){return e}}},{key:"addNewMeasurement",value:function(e){var t=e.detail;this._startDrawing(e),this._addPoint(t),Fr(e)}},{key:"preMouseDownCallback",value:function(e){var t=e.detail,n=this._pointNearHandleAllTools(t);return!!t.event.ctrlKey&&(void 0!==n&&n.handleNearby.hasBoundingBox||Lr.call(this,e,n),Fr(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(o,this.name);if(n.hasBoundingBox)uo(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),Fr(e)}}},{key:"_drawingMouseMoveCallback",value:function(e){var t=e.detail,n=t.currentPoints,a=t.element,o=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),y.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=O(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,y.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=O(t,this.name).data[a];if(!Rr.end(o.handles.points)&&o.canComplete){var i=n.currentHandle;this._endDrawing(t,i)}Fr(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(o,this.name).data[s],c=this._pointNearHandle(o,l,i);if(!Rr.end(l.handles.points)&&l.canComplete){var u=r.currentHandle;this._endDrawing(o,u)}else void 0===c&&this._addPoint(t);Fr(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=O(a,this.name).data[r],l=this._pointNearHandle(a,s,o);if(!Rr.end(s.handles.points)&&s.canComplete){var c=i.currentHandle;this._endDrawing(a,c)}else void 0===l&&this._addPoint(t);Fr(e)}},{key:"completeDrawing",value:function(e){if(this._drawing){var t=O(e,this.name),n=this.configuration,a=t.data[n.currentTool];if(!Rr.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),Fr(e)}},{key:"_drawingDoubleTapClickCallback",value:function(e){var t=e.detail.element;this.completeDrawing(t),Fr(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=O(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=Rr.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}y.cornerstone.updateImage(n)}}},{key:"_editTouchDragCallback",value:function(e){var t,n=e.detail,a=n.element,o=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=Rr.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}y.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=O(n,this.name);this._deactivateModify(n),this._dropHandle(t,a),this._endDrawing(n),y.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),D(o,this.name,a);var r=O(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=O(n,this.name),o=this.configuration,i=a.data[o.currentTool];if(!i.handles.invalidHandlePlacement){var r=new Ur(t.image);i.handles.points.length&&i.handles.points[o.currentHandle-1].lines.push(t.image),i.handles.points.push(r),o.currentHandle+=1,y.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=O(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),y.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=y.cornerstone.pixelToCanvas(e,t.handles.points[a]);if(y.cornerstoneMath.point.distance(o,n)<6)return a}return t.handles.textBox&&fa(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=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,Mn(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)&&!Rr.end(i)&&i.length>2?(e.canComplete=!0,r=!1):r=Rr.newHandle(o,i),r}},{key:"_checkHandlesPencilMode",value:function(e,t){var n=this.configuration.mouseLocation.handles.start,a=e.handles.points,o=Rr.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=y.cornerstone.pixelToCanvas(e,t),i=y.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?y.cornerstoneMath.point.distance(t,n)>o:y.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,pt.isMultiPartToolActive=!0,wt(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),y.cornerstone.updateImage(e)}},{key:"_deactivateDraw",value:function(e){this._drawing=!1,pt.isMultiPartToolActive=!1,this._activeDrawingToolReference=null,this._drawingInteractionType=null,Et(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),y.cornerstone.updateImage(e)}},{key:"_activateModify",value:function(e){pt.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),y.cornerstone.updateImage(e)}},{key:"_deactivateModify",value:function(e){pt.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),y.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),y.cornerstone.updateImage(e)}}},{key:"fireModifiedEvent",value:function(e,t){C(e,b.MEASUREMENT_MODIFIED,{toolName:this.name,toolType:this.name,element:e,measurementData:t})}},{key:"fireCompletedEvent",value:function(e,t){C(e,b.MEASUREMENT_COMPLETED,{toolName:this.name,toolType:this.name,element:e,measurementData:t})}},{key:"cancelDrawing",value:function(e){if(this._drawing){var t=O(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,L(e,this.name,a),this._deactivateDraw(e),y.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),y.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,y.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,y.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,y.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,y.cornerstone.updateImage(this.element)}},{key:"invalidColor",get:function(){return this.configuration.invalidColor},set:function(e){this.configuration.invalidColor=e,y.cornerstone.updateImage(this.element)}}]),t}(fo);function Fr(e){e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()}var Br=N("tools:annotation:LengthTool"),Vr=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:ko,configuration:{drawHandles:!0,drawHandlesOnHover:!1,hideHandlesIfMoving:!1,renderDashed:!1,digits:2}};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=li(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}}}}Br.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&&mo(e,t.handles.start,t.handles.end,n)<25:(Br.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!1)}},{key:"updateCachedStats",value:function(e,t,n){var a=ii(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=a.hideHandlesIfMoving,s=a.renderDashed,l=a.digits,c=O(e.currentTarget,this.name);if(c)for(var u=_n(n.canvasContext.canvas),d=n.image,h=n.element,v=ii(d),g=v.rowPixelSpacing,f=v.colPixelSpacing,m=Xt.getToolWidth(),p=Tt("globalConfiguration").configuration.lineDash,y=function(e){var a=c.data[e];if(!1===a.visible)return"continue";Wt(u,(function(e){Dn(e,t.configuration);var c=un.getColorIfActive(a),u={color:c};s&&(u.lineDash=p),Zt(e,h,a.handles.start,a.handles.end,u);var v={color:c,handleRadius:o,drawHandlesIfActive:i,hideHandlesIfMoving:r};if(t.configuration.drawHandles&&dn(e,n,a.handles,v),!a.handles.textBox.hasMoved){var y={x:Math.max(a.handles.start.x,a.handles.end.x)};y.x===a.handles.start.x?y.y=a.handles.start.y:y.y=a.handles.end.y,a.handles.textBox.x=y.x,a.handles.textBox.y=y.y}!0===a.invalidated&&(a.length?t.throttledUpdateCachedStats(d,h,a):t.updateCachedStats(d,h,a));var x=function(e,t,n){var a=(o=e.length,i=Number(o),isNaN(i)?void 0:i);var o,i;if(!a)return"";var r="mm";t&&n||(r="pixels");return e.unit=r,"".concat(a.toFixed(l)," ").concat(r)}(a,g,f);Sn(e,h,a.handles.textBox,x,a.handles,T,c,m,10,!0)}))},x=0;x<c.data.length;x++)y(x);function T(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}(fo);var qr=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=y.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},jr=N("tools:annotation:ProbeTool"),zr=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:_o,configuration:{drawHandles:!0,renderDashed:!1}};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=li(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}}};jr.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||jr.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!a||!1===t.visible)return!1;var o=y.cornerstone.pixelToCanvas(e,t.handles.end);return y.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=qr(t,a,o,1,1):(i.storedPixels=y.cornerstone.getStoredPixels(t,a,o,1,1),i.sp=i.storedPixels[0],i.mo=i.sp*e.slope+e.intercept,i.suv=$i(e,i.sp))),n.cachedStats=i,n.invalidated=!1}},{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=this.configuration,o=a.handleRadius,i=a.renderDashed,r=O(e.currentTarget,this.name);if(r)for(var s=_n(n.canvasContext.canvas),l=n.image,c=n.element,u=pn.getFontSize(),d=Tt("globalConfiguration").configuration.lineDash,h=function(e){var a=r.data[e];if(!1===a.visible)return"continue";Wt(s,(function(e){var r,s,h=un.getColorIfActive(a);if(t.configuration.drawHandles){var v={handleRadius:o,color:h};i&&(v.lineDash=d),dn(e,n,a.handles,v)}!0===a.invalidated&&(a.cachedStats?t.throttledUpdateCachedStats(l,c,a):t.updateCachedStats(l,c,a));var g=a.cachedStats,f=g.x,m=g.y,p=g.storedPixels,x=g.sp,T=g.mo,b=g.suv;if(f>=0&&m>=0&&f<l.columns&&m<l.rows){r="".concat(f,", ").concat(m),l.color?s="R: ".concat(p[0]," G: ").concat(p[1]," B: ").concat(p[2]):(s="SP: ".concat(x," MO: ").concat(parseFloat(T.toFixed(3))),b&&(s+=" SUV: ".concat(parseFloat(b.toFixed(3)))));var C={x:a.handles.end.x+3,y:a.handles.end.y-3},M=y.cornerstone.pixelToCanvas(n.element,C);bn(e,s,M.x,M.y+u+5,h),bn(e,r,M.x,M.y,h)}}))},v=0;v<r.data.length;v++)h(v)}}]),t}(fo),Wr=N("tools:annotation:RectangleRoiTool"),Gr=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:{drawHandles:!0,drawHandlesOnHover:!1,hideHandlesIfMoving:!1,renderDashed:!1},svgCursor:Po};return(e=u()(this,h()(t).call(this,n,a))).throttledUpdateCachedStats=li(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}}};Wr.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||Wr.warn("invalid parameters supplied to tool ".concat(this.name,"'s pointNearTool")),!o||!1===t.visible)return!1;var i="mouse"===a?15:25,r=y.cornerstone.pixelToCanvas(e,t.handles.start),s=y.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 y.cornerstoneMath.rect.distanceToPoint(l,n)<i}},{key:"updateCachedStats",value:function(e,t,n){var a=(y.cornerstone.metaData.get("generalSeriesModule",e.imageId)||{}).modality,o=ii(e),i=function(e,t,n,a,o){var i,r=Yr(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}}(y.cornerstone.getPixels(t,r.left,r.top,r.width,r.height),r);"PT"===a&&(i={mean:$i(e,s.mean,!0)||0,stdDev:$i(e,s.stdDev,!0)||0});var l=r.width*(o.colPixelSpacing||1)*(r.height*(o.rowPixelSpacing||1)),c=2*r.width*(o.colPixelSpacing||1)+2*r.height*(o.rowPixelSpacing||1);return{area:l||0,perimeter:c,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=O(e.currentTarget,this.name);if(n){var a=e.detail,o=a.image,i=a.element,r=Xt.getToolWidth(),s=Tt("globalConfiguration").configuration.lineDash,l=this.configuration,c=l.handleRadius,u=l.drawHandlesOnHover,d=l.hideHandlesIfMoving,h=l.renderDashed,v=_n(a.canvasContext.canvas),g=ii(o),f=g.rowPixelSpacing,m=g.colPixelSpacing,p=(y.cornerstone.metaData.get("generalSeriesModule",o.imageId)||{}).modality,x=f&&m;Wt(v,(function(e){for(var l=0;l<n.data.length;l++){var v=n.data[l];if(!1!==v.visible){var g=un.getColorIfActive(v),f={color:g,handleRadius:c,drawHandlesIfActive:u,hideHandlesIfMoving:d};Dn(e,t.configuration);var m={color:g};if(h&&(m.lineDash=s),kn(e,i,v.handles.start,v.handles.end,m,"pixel",v.handles.initialRotation),t.configuration.drawHandles&&dn(e,a,v.handles,f),!0===v.invalidated&&(v.cachedStats?t.throttledUpdateCachedStats(o,i,v):t.updateCachedStats(o,i,v)),!v.handles.textBox.hasMoved){var y=nr(a.viewport,v.handles);Object.assign(v.handles.textBox,y)}var T=Zr(e,o.color,v.cachedStats,p,x,t.configuration);v.unit=Kr(p,t.configuration.showHounsfieldUnits),Sn(e,i,v.handles.textBox,T,v.handles,(function(e){return t=e.start,n=e.end,a=Yr(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}),g,r,10,!0)}}}))}}}]),t}(fo);function Yr(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 Xr(e,t){var n=t?" mm".concat(String.fromCharCode(178)):" px".concat(String.fromCharCode(178));return"Area: ".concat(ar(e.toFixed(2))).concat(n)}function Kr(e,t){return"CT"===e&&!1!==t?"HU":""}function Zr(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=Kr(a,d.showHounsfieldUnits),p="Mean: ".concat(ar(r.toFixed(2))," ").concat(m),y="Std Dev: ".concat(ar(s.toFixed(2))," ").concat(m);if(f){for(var x=" SUV: ",T="".concat(x).concat(ar(u.mean.toFixed(2))),b="".concat(x).concat(ar(u.stdDev.toFixed(2))),C=Math.floor(e.measureText("".concat(y," ")).width);e.measureText(p).width<C;)p+=" ";g.push("".concat(p).concat(T)),g.push("".concat(y," ").concat(b))}else g.push("".concat(p)),g.push("".concat(y));if(h){for(var M="Min: ".concat(l," ").concat(m),E="Max: ".concat(c," ").concat(m),w=f?Math.floor(e.measureText("".concat(y," ")).width):Math.floor(e.measureText("".concat(p," ")).width);e.measureText(M).width<w;)M+=" ";g.push("".concat(M).concat(E))}}return v.push(Xr(i,o)),g.forEach((function(e){return v.push(e)})),v}var $r=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:Jr},svgCursor:Do};return(e=u()(this,h()(t).call(this,n,a))).touchPressCallback=e._changeText.bind(wa()(e)),e.doubleClickCallback=e._changeText.bind(wa()(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(y.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=y.cornerstoneMath.rect.distanceToPoint(t.handles.end.boundingBox,n),o=fa(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=O(t.element,this.name);if(a)for(var o=_n(t.canvasContext.canvas),i=function(e){var i=a.data[e];if(!1===i.visible)return"continue";var r=un.getColorIfActive(i);Wt(o,(function(e){Dn(e,n);var a=y.cornerstone.pixelToCanvas(t.element,i.handles.end);i.handles.end.boundingBox=bn(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?L(a,this.name,e):e.text=t,e.active=!1,y.cornerstone.updateImage(a)}var r=this.configuration,s=o.canvas,l=O(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,y.cornerstone.updateImage(a),r.changeTextCallback(t,n,i),e.stopImmediatePropagation(),e.preventDefault(),void e.stopPropagation()}}]),t}(fo),Jr=function(e,t,n){n(e,prompt("Change your annotation:"))},Qr=(N("tools:BrushTool"),Tt("segmentation")),es=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Brush",supportedInteractionTypes:["Mouse","Touch"],configuration:{},mixins:["renderBrushMixin"]};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._paint.bind(wa()(e)),e}return g()(t,e),l()(t,[{key:"_paint",value:function(e){var t=Qr.configuration,n=e.detail,a=(n.element,n.image),o=a.rows,i=a.columns,r=n.currentPoints.image,s=r.x,l=r.y;if(!(s<0||s>i||l<0||l>o)){var c=be(t.radius,o,i,s,l),u=this.paintEventData,d=u.labelmap2D,h=u.labelmap3D,v=u.shouldErase;te(c,d.pixelData,h.activeSegmentIndex,i,v),y.cornerstone.updateImage(e.detail.element)}}}]),t}(ka),ts=N("tools:SphericalBrushTool"),ns=Tt("segmentation"),as=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"SphericalBrush",supportedInteractionTypes:["Mouse","Touch"],configuration:{alwaysEraseOnClick:!1},mixins:["renderBrushMixin"]};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._paint.bind(wa()(e)),e}return g()(t,e),l()(t,[{key:"_startPainting",value:function(e){var t,n=ns.configuration,a=ns.getters,o=e.detail,i=o.element,r=o.image,s=y.cornerstone,l=n.radius,c=r.rows,u=r.columns,d=Math.max(r.rowPixelSpacing,r.columnPixelSpacing),h=O(i,"stack").data[0].imageIds,v=a.labelmap2D(i),g=v.labelmap2D,f=v.labelmap3D,m=v.currentImageIdIndex,p=v.activeLabelmapIndex,x=this._isCtrlDown(o)||this.configuration.alwaysEraseOnClick,T=s.metaData.get("imagePlaneModule",r.imageId);if(T){var b=T.imagePositionPatient;t=this._getImagesInRange(m,b,h,l,d)}else ts.warn("No imagePlane metadata found for image, defaulting to circle brush application."),t=[{imageIdIndex:m,radiusOnImage:l}];if(this.paintEventData={labelmap2D:g,labelmap3D:f,currentImageIdIndex:m,activeLabelmapIndex:p,shouldErase:x,imagesInRange:t},n.storeHistory){for(var C=[],M=0;M<t.length;M++){var E=t[M].imageIdIndex,w=a.labelmap2DByImageIdIndex(f,E,c,u).pixelData.slice();C.push(w)}this.paintEventData.previousPixeldataForImagesInRange=C}}},{key:"_paint",value:function(e){var t=ns.getters,n=e.detail,a=(n.element,n.image),o=a.rows,i=a.columns,r=n.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;te(be(g.radiusOnImage,o,i,s,l),t.labelmap2DByImageIdIndex(u,f,o,i).pixelData,u.activeSegmentIndex,i,h)}y.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=y.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 ts.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=ns.configuration,r=ns.setters,s=0;s<a.length;s++){for(var l=a[s].imageIdIndex,c=n.labelmaps2D[l],u=new Set(c.pixelData).values(),d=[],h=!1;!h;){var v=u.next();(h=v.done)||d.push(v.value)}if(c.segmentsOnLabelmap=d,i.storeHistory){var g=this.paintEventData.previousPixeldataForImagesInRange[s],f=n.labelmaps2D[l].pixelData;o.push({imageIdIndex:l,diff:Le(g,f)})}}i.storeHistory&&r.pushState(this.element,o),Oe(this.element)}}]),t}(ka),os=N("util:segmentation:operations:correction");function is(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=In(u,0,i-1),d=In(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++){if(e[o].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?(os.warn("The line never intersects a segment."),Ts(e,t)):"eraseInsideFreehand"===r.operation&&(os.warn("The line is only ever inside the segment."),hs(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?os.warn("additive operation..."):os.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,J()(Ee(e[n],e[n+1])));t.push[e[e.length-1]];for(var a=[],o=[],i=0;i<t.length-1;i++){var r=ls(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],y={xMin:p.x,xMax:p.x,yMin:p.y,yMax:p.y},x=0;x<n.length;x++)if(t[x]===a){var T=h(x);rs(y,T),n[x]=1}else n[x]=0;for(var b=0;b<g.length;b++){var C=g[b];n[d(C)]=2,rs(y,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)}(y,s,r);var M=y.xMin,E=y.xMax,w=y.yMin,I=y.yMax;function S(e,t){if(!(e>=E||e<M||t>=I||t<w))return n[t*r+e]}for(var k=0,_=0,P=0;P<f.length;P++){var D=f[P];n[d(D)]===u&&Ge(D,s,r)&&(k+=ss(D,3,n,S,r));var O=m[P];n[d(O)]===u&&Ge(O,s,r)&&(_+=ss(O,4,n,S,r))}if(0===k||0===_)return;for(var L=c?a:0,A=k<_?3:4,H=0;H<n.length;H++)n[H]===A&&(t[H]=L);if(L===a)for(var R=0;R<g.length;R++)t[d(g[R])]=a;else for(var U=0;U<g.length;U++){var N=d(g[U]);t[N]===a&&(t[N]=0)}}(t,n,s,a,e)}))}}else os.error("correction operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function rs(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 ss(e,t,n,a,o){for(var i=ge(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 ls(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 os.error("Unable to find left and right paths for flood fill ",e,t,n)}function cs(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 us=N("util:segmentation:operations:eraseInsideFreehand");function ds(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=Te(r,i),l=oe()(s,2),c=l[0],u=l[1];n?se(e,t,(function(e){return cs([e.x,e.y],r)}),c,u):le(e,t,(function(e){return cs([e.x,e.y],r)}),c,u)}else us.error("eraseInsideFreehand operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function hs(e,t){ds(e,t,!0)}function vs(e,t){ds(e,t,!1)}var gs=N("util:segmentation:operations:eraseInsideRectangle");function fs(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,r=i.image,s=a.map((function(e){return[e.x,e.y]})),l=Te(s,r),c=oe()(l,2),u=c[0],d=c[1];n?se(e,t,(function(){return!0}),u,d):ne(e,t,u,d)}else gs.error("eraseInsideRectangle operation requires rectangleSegmentationMixin operationData, recieved ".concat(o))}function ms(e,t){fs(e,t,!0)}function ps(e,t){fs(e,t,!1)}var ys=N("util:segmentation:operations:fillInsideFreehand");function xs(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=Te(r,i),l=oe()(s,2),c=l[0],u=l[1];n?he(e,t,(function(e){return cs([e.x,e.y],r)}),c,u):ve(e,t,(function(e){return cs([e.x,e.y],r)}),c,u)}else ys.error("eraseInsideFreehand operation requires freehandSegmentationMixin operationData, recieved ".concat(o))}function Ts(e,t){xs(e,t,!0)}function bs(e,t){xs(e,t,!1)}var Cs=N("util:segmentation:operations:fillInsideRectangle");function Ms(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=a.map((function(e){return[e.x,e.y]})),s=Te(r,i),l=oe()(s,2),c=l[0],u=l[1];n?he(e,t,(function(){return!0}),c,u):ce(e,t,c,u)}else Cs.error("eraseInsideRectangle operation requires rectangleSegmentationMixin operationData, recieved ".concat(o))}function Es(e,t){Ms(e,t,!0)}function ws(e,t){Ms(e,t,!1)}var Is=N("util:segmentation:operations:fillCircle");function Ss(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.segmentationMixinType;if("circleSegmentationMixin"===a){var o=e.detail,i=xe(e),r=oe()(i,2),s=r[0],l=r[1],c=ye(o.handles.start,o.handles.end);n?he(e,t,(function(e){return Qi(c,e)}),s,l):ve(e,t,(function(e){return Qi(c,e)}),s,l)}else Is.error("fillInsideCircle operation requires circleSegmentationMixin operationData, recieved ".concat(a))}function ks(e,t){Ss(e,t,!0)}function _s(e,t){Ss(e,t,!1)}var Ps=N("util:segmentation:operations:eraseInsideCircle");function Ds(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=t.segmentationMixinType;if("circleSegmentationMixin"===a){var o=e.detail,i=xe(e),r=oe()(i,2),s=r[0],l=r[1],c=ye(o.handles.start,o.handles.end);n?se(e,t,(function(e){return Qi(c,e)}),s,l):le(e,t,(function(e){return Qi(c,e)}),s,l)}else Ps.error("eraseInsideCircle operation requires circleSegmentationMixin operationData, recieved ".concat(a))}function Os(e,t){Ds(e,t,!0)}function Ls(e,t){Ds(e,t,!1)}var As=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:Ts,FILL_OUTSIDE:bs,ERASE_OUTSIDE:vs,ERASE_INSIDE:hs},cursors:{FILL_INSIDE:Xo,FILL_OUTSIDE:Zo,ERASE_OUTSIDE:Ko,ERASE_INSIDE:Yo},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Xo,mixins:["freehandSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(ga),Hs=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:Es,FILL_OUTSIDE:ws,ERASE_OUTSIDE:ps,ERASE_INSIDE:ms},cursors:{FILL_INSIDE:Jo,FILL_OUTSIDE:ei,ERASE_OUTSIDE:Qo,ERASE_INSIDE:$o},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],mixins:["rectangleSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(ga),Rs=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:ks,FILL_OUTSIDE:_s,ERASE_OUTSIDE:Ls,ERASE_INSIDE:Os},cursors:{FILL_INSIDE:ni,FILL_OUTSIDE:oi,ERASE_OUTSIDE:ai,ERASE_INSIDE:ti},defaultStrategy:"FILL_INSIDE",supportedInteractionTypes:["Mouse","Touch"],svgCursor:ni,mixins:["circleSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(ga),Us=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"CorrectionScissors",strategies:{CORRECTION:is},cursors:{CORRECTION:Xo},defaultStrategy:"CORRECTION",supportedInteractionTypes:["Mouse","Touch"],svgCursor:Xo,mixins:["polylineSegmentationMixin"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),t}(ga),Ns={},Fs={},Bs={};function Vs(e){if(!e)return"DEFAULT";var t=y.cornerstone.getEnabledElement(e).uuid;if(!t)throw new Error("Something went wrong when getting uuid from element");return t}var qs={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=Vs(t);Ns[n]=e},getStartLoadHandler:function(e){var t=Vs(e);return Ns[t]||Ns.DEFAULT},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=Vs(t);Fs[n]=e},getEndLoadHandler:function(e){var t=Vs(e);return Fs[t]||Fs.DEFAULT},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=Vs(t);Bs[n]=e},getErrorLoadingHandler:function(e){var t=Vs(e);return Bs[t]||Bs.DEFAULT},removeHandlers:function(e){var t=Vs(e);delete Ns[t],delete Fs[t],delete Bs[t]}},js={};function zs(e,t){if(!js[e])return{};var n=js[e].find((function(e){return e.element===t}));return n?n.options:{}}function Ws(e,t,n){if(js[e]){var a=js[e].findIndex((function(e){return e.element===t}));if(-1===a)js[e].push({element:t,options:n});else{var o=js[e][a].options||{};js[e][a].options=Object.assign(o,n)}}else js[e]=[{element:t,options:n}]}var Gs=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:Oo};return(e=u()(this,h()(t).call(this,n,a))).preMouseDownCallback=e._chooseLocation.bind(wa()(e)),e.mouseDragCallback=e._chooseLocation.bind(wa()(e)),e.touchDragCallback=e._chooseLocation.bind(wa()(e)),e}return g()(t,e),l()(t,[{key:"_chooseLocation",value:function(e){var t=e.detail,n=t.element;e.stopImmediatePropagation();var a=O(n,this.name);if(a){var o=n,i=y.cornerstone.getEnabledElement(o).image.imageId,r=y.cornerstone.metaData.get("imagePlaneModule",i);if(r){var s=nn(t.currentPoints.image,r);a.data[0].synchronizationContext.getSourceElements().forEach((function(e){if(e!==o){var t=Number.MAX_VALUE,n=-1,a=O(e,"stack");if(void 0!==a){var i=a.data[0];if(i.imageIds.forEach((function(e,a){var o=y.cornerstone.metaData.get("imagePlaneModule",e);if(o&&o.imagePositionPatient&&o.rowCosines&&o.columnCosines){var i=en(o.imagePositionPatient),r=en(o.rowCosines),l=en(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=qs.getStartLoadHandler(e),l=qs.getEndLoadHandler(e),c=qs.getErrorLoadingHandler(e);r&&r(e),(!0===i.preventCache?y.cornerstone.loadImage(i.imageIds[n]):y.cornerstone.loadAndCacheImage(i.imageIds[n])).then((function(t){var a=y.cornerstone.getViewport(e);i.currentImageIdIndex=n,y.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;Ws(this.name,e,{mouseButtonMask:n}),A(e,this.name),D(e,this.name,{synchronizationContext:a})}}]),t}(ga),Ys=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"DoubleTapFitToWindow",supportedInteractionTypes:["DoubleTap"]};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"doubleTapCallback",value:function(e){var t=e.detail;y.cornerstone.fitToWindow(t.element)}}]),t}(ga),Xs=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:Ks,minimal:Zs},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],svgCursor:_o};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._movingEventCallback.bind(wa()(e)),e.touchEndCallback=e._endMovingEventCallback.bind(wa()(e)),e.mouseDragCallback=e._movingEventCallback.bind(wa()(e)),e.mouseUpCallback=e._endMovingEventCallback.bind(wa()(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,y.cornerstone.updateImage(n)}},{key:"_endMovingEventCallback",value:function(e){var t=e.detail.element;this.dragEventData={},y.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}(ga);function Ks(e){var t=this.configuration,n=y.cornerstone,a=e.detail,o=a.element,i=a.image,r=a.currentPoints,s=a.canvasContext,l=_n(s.canvas),c=un.getActiveColor(),u=pn.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){Dn(e,t);var a,s,l="".concat(d,", ").concat(h);if(i.color)a=qr(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=$i(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};bn(e,s,m.x,m.y+u+5,c),bn(e,l,m.x,m.y,c)}))}function Zs(e){var t=this.configuration,n=y.cornerstone,a=e.detail,o=a.element,i=a.image,r=a.currentPoints,s=a.canvasContext,l=a.isTouchEvent,c=_n(s.canvas),u=un.getActiveColor(),d=r.page.y-pn.getFontSize()/2;l&&(d=r.page.y-4*pn.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){Dn(e,t);var a,r=n.metaData.get("generalSeriesModule",i.imageId),s=r&&r.modality,c="";if(i.color)a=qr(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=$i(i,d);f&&(c+=" SUV: ".concat(parseFloat(f.toFixed(2))))}else c+=g}var m=n.pixelToCanvas(o,h),p={x:12,y:-(pn.getFontSize()+10)/2},y=Tn(e,c,5);l&&(p={x:-y/2,y:-pn.getFontSize()-10-12}),Qt(e,o,m,6,{color:u},"canvas"),bn(e,c,m.x+p.x,m.y+p.y,u)}))}var $s=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:Lo};return(e=u()(this,h()(t).call(this,n,a))).preMouseDownCallback=e._deleteAllNearbyTools.bind(wa()(e)),e.preTouchStartCallback=e._deleteAllNearbyTools.bind(wa()(e)),e}return g()(t,e),l()(t,[{key:"_deleteAllNearbyTools",value:function(e){var t=e.detail.currentPoints.canvas,n=e.detail.element;pt.tools.forEach((function(e){var a=O(n,e.name);a&&a.data.forEach((function(a){"function"==typeof e.pointNearTool&&e.pointNearTool(n,a,t)&&(L(n,e.name,a),y.cornerstone.updateImage(n))}))}));return!0}}]),t}(ga),Js=Dr.FreehandHandleData,Qs=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:el(),svgCursor:So};return(e=u()(this,h()(t).call(this,n,a))).updateOnMouseMove=!0,e.isMultiPartTool=!0,e.referencedToolName=e.initialConfiguration.referencedToolName,e._active=!1,e.activeMouseUpCallback=e.activeMouseUpCallback.bind(wa()(e)),e.activeTouchEndCallback=e.activeTouchEndCallback.bind(wa()(e)),e.activeMouseDragCallback=e.activeMouseDragCallback.bind(wa()(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(!O(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};dn(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),y.cornerstone.updateImage(t.element)}},{key:"doubleTapCallback",value:function(e){var t=e.detail;this._selectFreehandTool(t),y.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=O(n.element,this.referencedToolName);if(a){var o=a.data[t.currentTool].handles.points;this._getMouseLocation(n),this._sculpt(n,o),y.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,pt.isMultiPartToolActive=!1,this._getMouseLocation(t),this._invalidateToolData(t),a.mouseUpRender=!0,this._deactivateSculpt(n),y.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=O(a,this.referencedToolName).data[this.configuration.currentTool];this._recentTouchEnd=!1,this.configuration.mouseUpRender?(t=this.configuration.mouseLocation.handles.start,this.configuration.mouseUpRender=!1):t=pt.mousePositionImage;var r=Ct(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};dn(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,wt(n))}},{key:"_activateFreehandTool",value:function(e,t){var n=O(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,pt.isMultiPartToolActive=!0,this._configureToolSize(t),this._getMouseLocation(t),this._activateFreehandTool(a,n.currentTool),this._activateSculpt(a),y.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=y.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};Mn(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);y.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 Js(o);t.splice(e,0,i),t[n].lines.pop(),t[n].lines.push(t[e]),Dr.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(y.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};Mn(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=O(t,this.referencedToolName).data[a],r=Ct(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,Mn(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),y.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),y.cornerstone.updateImage(e)}},{key:"_invalidateToolData",value:function(e){var t=this.configuration;O(e.element,this.referencedToolName).data[t.currentTool].invalidated=!0}},{key:"_deselectAllTools",value:function(e){var t=this.configuration,n=O(this.element,this.referencedToolName);if(t.currentTool=null,n)for(var a=0;a<n.data.length;a++)n.data[a].active=!1;Et(this.element,this.svgCursor),y.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=O(a,this.referencedToolName),s=r.data[i.currentTool],l=1;if(n){var c=y.cornerstone.pixelToCanvas(a,{x:0,y:0}),u=y.cornerstone.pixelToCanvas(a,{x:o.width,y:o.height}),d=(u.x-c.x)*(u.y-c.y);l=d/(o.width*o.height)}var h=s.area*l,v=Math.pow(h/Math.PI,.5);return Math.min(t,v)}},{key:"_getClosestFreehandToolOnElement",value:function(e,t){var n=Ct(e,this.referencedToolName),a=O(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=y.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 Mn(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,y.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,y.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,y.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,y.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}(ga);function el(){return{mouseLocation:{handles:{start:{highlight:!0,active:!0}}},minSpacing:1,currentTool:null,dragColor:un.getActiveColor(),hoverColor:un.getToolColor(),showCursorOnHover:!0,limitRadiusOutsideRegion:!0,hoverCursorFadeAlpha:.5,hoverCursorFadeDistance:1.2}}var tl=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:Ao};return(e=u()(this,h()(t).call(this,n,a))).zoomCanvas=void 0,e.zoomElement=void 0,e.activeCallback=e._createMagnificationCanvas.bind(wa()(e)),e.enabledCallback=e._createMagnificationCanvas.bind(wa()(e)),e.disabledCallback=e._destroyMagnificationCanvas.bind(wa()(e)),e.postTouchStartCallback=e._addMagnifyingGlass.bind(wa()(e)),e.touchDragCallback=e._updateMagnifyingGlass.bind(wa()(e)),e.touchEndCallback=e._removeMagnifyingGlass.bind(wa()(e)),e.touchDragEndCallback=e._removeMagnifyingGlass.bind(wa()(e)),e.postMouseDownCallback=e._addMagnifyingGlass.bind(wa()(e)),e.mouseDragCallback=e._updateMagnifyingGlass.bind(wa()(e)),e.mouseUpCallback=e._removeMagnifyingGlass.bind(wa()(e)),e.mouseClickCallback=e._removeMagnifyingGlass.bind(wa()(e)),e.newImageCallback=e._drawMagnificationTool.bind(wa()(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)})),wt(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;Et(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=_n(n),i=y.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=y.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,y.cornerstone.enable(this.zoomElement,n.options));var r=y.cornerstone.getEnabledElement(this.zoomElement),s=y.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,y.cornerstone.displayImage(this.zoomElement,i),y.cornerstone.setViewport(this.zoomElement,s)}},{key:"_removeZoomElement",value:function(){void 0!==this.zoomElement&&(y.cornerstone.disable(this.zoomElement),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}(ga),nl=xt.globalConfiguration,al=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"Overlay",configuration:{},mixins:["enabledOrDisabledBinaryTool"]},o=Object.assign(a,n);return(e=u()(this,h()(t).call(this,o))).initialConfiguration=o,e}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){y.cornerstone.getEnabledElement(e).image&&y.cornerstone.updateImage(e)}},{key:"setupRender",value:function(e){if(e){var t=y.cornerstone.metaData.get("overlayPlaneModule",e.imageId);if(t&&t.overlays&&t.overlays.length)return t}}},{key:"setupViewport",value:function(e){if(void 0===e.overlayColor&&(e.overlayColor=nl.configuration.overlayColor||"white"),!1!==e.overlayColor)return!0}},{key:"renderToolData",value:function(e){var t=e.detail,n=t.enabledElement,a=t.image,o=t.viewport,i=t.canvasContext,r=this.setupRender(a);if(t&&n&&r&&this.setupViewport(o)){var s=a.columns,l=a.rows;r.overlays.forEach((function(e){if(!1!==e.visible){var t=document.createElement("canvas");t.width=s,t.height=l;var n=t.getContext("2d");n.fillStyle=e.fillStyle||o.overlayColor,"R"===e.type&&(n.fillRect(0,0,t.width,t.height),n.globalCompositeOperation="xor");for(var a=0,r=0;r<e.rows;r++)for(var c=0;c<e.columns;c++)e.pixelData[a++]>0&&n.fillRect(c,r,1,1);var u=!isNaN(parseFloat(e.x))&&isFinite(e.x)?e.x:0,d=!isNaN(parseFloat(e.y))&&isFinite(e.y)?e.y:0;i.drawImage(t,u,d)}}))}}}]),t}(ga),ol={getOrientationString:function(e){for(var t=en(e),n="",a=t.x<0?"R":"L",o=t.y<0?"A":"P",i=t.z<0?"F":"H",r=new y.cornerstoneMath.Vector3(Math.abs(t.x),Math.abs(t.y),Math.abs(t.z)),s=1e-4,l=0;l<3;l++)if(r.x>s&&r.x>r.y&&r.x>r.z)n+=a,r.x=0;else if(r.y>s&&r.y>r.x&&r.y>r.z)n+=o,r.y=0;else if(r.z>s&&r.z>r.x&&r.z>r.y)n+=i,r.z=0;else if(r.x>s&&r.y>s&&r.x===r.y)n+=a+o,r.x=0,r.y=0;else if(r.x>s&&r.z>s&&r.x===r.z)n+=a+i,r.x=0,r.z=0;else{if(!(r.y>s&&r.z>s&&r.y===r.z))break;n+=o+i,r.y=0,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()}},il=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"OrientationMarkers",configuration:{drawAllMarkers:!0},mixins:["enabledOrDisabledBinaryTool"]};return u()(this,h()(t).call(this,e,n))}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){var t=y.cornerstone;t.getEnabledElement(e).image&&t.updateImage(e)}},{key:"renderToolData",value:function(e){var t=e.detail,n=_n(t.canvasContext.canvas),a=t.element,o=ll(a);if(o){var i=cl(a,o),r=un.getToolColor(),s={top:Tn(n,o.top,0),left:Tn(n,o.left,0),right:Tn(n,o.right,0),bottom:Tn(n,o.bottom,0),height:Tn(n,"M",0)};rl(n,o,i,s,r),this.configuration.drawAllMarkers&&sl(n,o,i,s,r)}}}]),t}(ga),rl=function(e,t,n,a,o){bn(e,t.top,n.top.x-a.top/2,n.top.y,o),bn(e,t.left,n.left.x-a.left/2,n.left.y,o)},sl=function(e,t,n,a,o){bn(e,t.right,n.right.x-a.right,n.right.y,o),bn(e,t.bottom,n.bottom.x-a.bottom/2,n.bottom.y-a.height,o)},ll=function(e){var t=y.cornerstone,n=t.getEnabledElement(e),a=t.metaData.get("imagePlaneModule",n.image.imageId);if(a&&a.rowCosines&&a.columnCosines){var o=ol.getOrientationString(a.rowCosines),i=ol.getOrientationString(a.columnCosines),r=ol.invertOrientationString(o);return{top:ol.invertOrientationString(i),bottom:i,left:r,right:o}}},cl=function(e){var t=y.cornerstone.getEnabledElement(e);return{top:y.cornerstone.pixelToCanvas(e,{x:t.image.width/2,y:5}),bottom:y.cornerstone.pixelToCanvas(e,{x:t.image.width/2,y:t.image.height-15}),left:y.cornerstone.pixelToCanvas(e,{x:5,y:t.image.height/2}),right:y.cornerstone.pixelToCanvas(e,{x:t.image.width-10,y:t.image.height/2})}},ul=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"PanMultiTouch",supportedInteractionTypes:["MultiTouch"],configuration:{touchPointers:2}};return(e=u()(this,h()(t).call(this,n,a))).multiTouchDragCallback=e._dragCallback.bind(wa()(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),y.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}(ga),dl=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:Ho};return(e=u()(this,h()(t).call(this,n,a))).touchDragCallback=e._dragCallback.bind(wa()(e)),e.mouseDragCallback=e._dragCallback.bind(wa()(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),y.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}(ga),hl=n(11),vl=n.n(hl),gl=n(13),fl=n.n(gl),ml=function(e,t,n,a){var o=y.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=en(s.rowCosines),s.columnCosines=en(s.columnCosines),s.imagePositionPatient=en(s.imagePositionPatient),l.rowCosines=en(l.rowCosines),l.columnCosines=en(l.columnCosines),l.imagePositionPatient=en(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=an(e,t);if(n)return{start:tn(n.start,e),end:tn(n.end,e)}}(s,l);if(h){var v=un.getActiveColor();e.setTransform(1,0,0,1,0,0),Wt(e,(function(e){Zt(e,t.element,h.start,h.end,{color:v})}))}}}}},pl=function(e){return new Promise((function(t){return setTimeout(t,e)}))};function yl(e){try{var t=y.cornerstone.getEnabledElement(e);return t.image?t:pl(250).then((function(){return yl(e)}))}catch(e){return null}}var xl=N("tools:ReferenceLinesTool"),Tl=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:ml}};return(e=u()(this,h()(t).call(this,n,a))).renderer=null,e.synchronizationContext=null,e}var n;return g()(t,e),l()(t,[{key:"enabledCallback",value:(n=fl()(vl.a.mark((function e(t){var n,a,o,i=arguments;return vl.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,yl(t);case 4:if(e.sent&&o&&a){e.next=8;break}return xl.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)}))),function(e){return n.apply(this,arguments)})},{key:"disabledCallback",value:function(e){this.forceImageUpdate(e)}},{key:"forceImageUpdate",value:function(e){y.cornerstone.getEnabledElement(e).image&&y.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=_n(n.canvasContext.canvas);y.cornerstone.setToPixelCoordinateSystem(n.enabledElement,o),a.forEach((function(a){a!==e.currentTarget&&t.renderer(o,n,e.currentTarget,a)}))}}}]),t}(ga),bl=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)}},Cl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Rotate",strategies:{default:Ml,horizontal:El,vertical:wl},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],configuration:{roundAngles:!1,flipHorizontal:!1,flipVertical:!1,rotateScale:1},svgCursor:Ro};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),y.cornerstone.setViewport(e.detail.element,e.detail.viewport)}}]),t}(ga);function Ml(e){var t=this.configuration,n=t.roundAngles,a=t.rotateScale,o=e.detail,i=o.element,r=o.viewport,s=o.startPoints,l=o.currentPoints,c=r.initialRotation?r.initialRotation:r.rotation,u=i.getBoundingClientRect(i),d=i.clientWidth,h=i.clientHeight,v=r.scale,g=r.translation,f={x:u.left+d/2+g.x*v,y:u.top+h/2+g.y*v},m=bl(f,s.client,l.client);m.angle*=a,n&&(m.angle=Math.ceil(m.angle)),m.direction<0&&(m.angle=-m.angle),r.rotation=c+m.angle}function El(e){var t=this.configuration,n=t.roundAngles,a=t.flipHorizontal,o=t.rotateScale,i=e.detail,r=i.viewport,s=i.startPoints,l=i.currentPoints,c=r.initialRotation,u=s.client.x,d=(l.client.x-u)*o;n&&(d=Math.round(Math.abs(d))*(d>0?1:-1)),a&&(d=-d),r.rotation=c+d}function wl(e){var t=this.configuration,n=t.roundAngles,a=t.flipVertical,o=t.rotateScale,i=e.detail,r=i.viewport,s=i.startPoints,l=i.currentPoints,c=r.initialRotation,u=s.client.y,d=(l.client.y-u)*o;n&&(d=Math.round(Math.abs(d))*(d>0?1:-1)),a&&(d=-d),r.rotation=c+d}var Il=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"RotateTouch",supportedInteractionTypes:["TouchRotate"]};return u()(this,h()(t).call(this,e,n))}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,y.cornerstone.setViewport(n,a)}}]),t}(ga),Sl=N("tools:ScaleOverlayTool"),kl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"ScaleOverlay",configuration:{minorTickLength:12.5,majorTickLength:25},mixins:["enabledOrDisabledBinaryTool"]};return u()(this,h()(t).call(this,e,n))}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){y.cornerstone.getEnabledElement(e).image&&y.cornerstone.updateImage(e)}},{key:"renderToolData",value:function(e){var t=e.detail,n=_n(t.canvasContext.canvas),a=t.image,o=t.viewport,i=t.element,r=a.rowPixelSpacing,s=a.columnPixelSpacing,l=y.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=_l(c,.25,.05),v=_l(c,.05,.15);if(c.width&&c.height&&h&&v){var g=un.getToolColor(),f=Xt.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){Dn(e,m),Zt(e,i,m.verticalLine.start,m.verticalLine.end,{color:m.color,lineWidth:m.lineWidth},"canvas"),Pl(e,i,m),Zt(e,i,m.horizontalLine.start,m.horizontalLine.end,{color:m.color,lineWidth:m.lineWidth},"canvas"),Dl(e,i,m)}))}}else Sl.warn("unable to define rowPixelSpacing or colPixelSpacing from data on ".concat(this.name,"'s renderToolData"))}}]),t}(ga),_l=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}}},Pl=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,Zt(e,t,r,s,{color:o,lineWidth:i},"canvas"),a++}},Dl=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,Zt(e,t,r,s,{color:o,lineWidth:i},"canvas"),a++}},Ol=function(e,t){var n=O(e,"stack");if(n&&n.data&&n.data.length){var a,o=y.cornerstone;if(n.data.length>1){var i=O(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=qs.getStartLoadHandler(e),l=qs.getEndLoadHandler(e),c=qs.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)})),C(e,b.STACK_SCROLL,u)}}},Ll=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=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){var s=i.imageIds.length;r%=s}else r=In(r,0,i.imageIds.length-1);if(a)Ol(e,r);else{var l={index:r};i.pending.push(l),Al(i,l,e)}}};function Al(e,t,n){if(e.pending[0]===t){if(e.currentImageIdIndex===t.index)return e.pending.splice(e.pending.indexOf(t),1),void(e.pending.length>0&&Al(e,e.pending[0],n));n.addEventListener(y.cornerstone.EVENTS.NEW_IMAGE,(function a(o){e.imageIds.indexOf(o.detail.image.imageId)===t.index&&(e.pending.splice(e.pending.indexOf(t),1),n.removeEventListener(y.cornerstone.EVENTS.NEW_IMAGE,a),e.pending.length>0&&Al(e,e.pending[0],n))})),Ol(n,t.index)}}var Hl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"StackScrollMouseWheel",supportedInteractionTypes:["MouseWheel"],configuration:{loop:!1,allowSkipping:!0,invert:!1}};return u()(this,h()(t).call(this,e,n))}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;Ll(a,s?-n:n,i,r)}}]),t}(ga),Rl=function(e){function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var a={name:"StackScrollMultiTouch",supportedInteractionTypes:["MultiTouch"],configuration:{loop:!1,allowSkipping:!0,touchPointers:3}};return(e=u()(this,h()(t).call(this,n,a))).multiTouchDragCallback=e._dragCallback.bind(wa()(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=zs(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);Ll(n,u,i,r),s.deltaY=c%l}else s.deltaY=c;Ws(this.name,n,s)}}},{key:"_getDeltaY",value:function(e,t){return(zs(this.name,e).deltaY||0)+t}},{key:"_getPixelPerImage",value:function(e){var t=O(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}(ga),Ul=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:Uo};return(e=u()(this,h()(t).call(this,n,a))).mouseDragCallback=e._dragCallback.bind(wa()(e)),e.touchDragCallback=e._dragCallback.bind(wa()(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=zs(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);Ll(n,u,i,r),s.deltaY=c%l}else s.deltaY=c;Ws(this.name,n,s)}}},{key:"_getDeltaY",value:function(e,t){return(zs(this.name,e).deltaY||0)+t}},{key:"_getPixelPerImage",value:function(e){var t=O(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}(ga),Nl=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=y.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},Fl=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:No};return(e=u()(this,h()(t).call(this,n,a)))._resetHandles(),e.postTouchStartCallback=e._startOutliningRegion.bind(wa()(e)),e.touchDragCallback=e._setHandlesAndUpdate.bind(wa()(e)),e.touchEndCallback=e._applyStrategy.bind(wa()(e)),e.postMouseDownCallback=e._startOutliningRegion.bind(wa()(e)),e.mouseClickCallback=e._startOutliningRegion.bind(wa()(e)),e.mouseDragCallback=e._setHandlesAndUpdate.bind(wa()(e)),e.mouseMoveCallback=e._setHandlesAndUpdate.bind(wa()(e)),e.mouseUpCallback=e._applyStrategy.bind(wa()(e)),e}return g()(t,e),l()(t,[{key:"renderToolData",value:function(e){var t=this,n=e.detail,a=n.element,o=un.getColorIfActive({active:!0}),i=_n(n.canvasContext.canvas);Wt(i,(function(e){kn(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 Bl(this.handles.start)?this.handles.start=n:(this.handles.end=n,this._applyStrategy(e)),y.cornerstone.updateImage(t),!0}},{key:"_setHandlesAndUpdate",value:function(e){var t=e.detail.element,n=e.detail.currentPoints.image;this.handles.end=n,y.cornerstone.updateImage(t)}},{key:"_applyStrategy",value:function(e){Bl(this.handles.start)||Bl(this.handles.end)||(e.detail.handles=this.handles,Vl(e,this.configuration),this._resetHandles())}},{key:"_resetHandles",value:function(){this.handles={start:{},end:{}}}}]),t}(ga),Bl=function(e){return 0===Object.keys(e).length&&e.constructor===Object},Vl=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=In(l,0,a.width),c=In(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=Nl(o,l,c,u,d),v=ql(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,g.voiLUT=void 0,y.cornerstone.setViewport(o,g),y.cornerstone.updateImage(o)},ql=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}},jl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Wwwc",strategies:{basicLevelingStrategy:zl},supportedInteractionTypes:["Mouse","Touch"],configuration:{orientation:0},svgCursor:Fo};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"mouseDragCallback",value:function(e){this.applyActiveStrategy(e),y.cornerstone.setViewport(e.detail.element,e.detail.viewport)}},{key:"touchDragCallback",value:function(e){e.stopImmediatePropagation(),this.applyActiveStrategy(e),y.cornerstone.setViewport(e.detail.element,e.detail.viewport)}}]),t}(ga);function zl(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),n.viewport.voiLUT=void 0}var Wl=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},Gl={changeViewportScale:Wl,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}},Yl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"ZoomMouseWheel",supportedInteractionTypes:["MouseWheel"],configuration:{minScale:.25,maxScale:20,invert:!1}};return u()(this,h()(t).call(this,e,n))}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=Wl(a,r?o/4:-o/4,{maxScale:s,minScale:l});y.cornerstone.setViewport(n,c)}}]),t}(ga),Xl=Gl.correctShift,Kl=Gl.changeViewportScale,Zl=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"Zoom",strategies:{default:Jl,translate:Ql,zoomToCenter:ec},defaultStrategy:"default",supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,preventZoomOutsideImage:!1,minScale:.25,maxScale:20},svgCursor:Bo};return u()(this,h()(t).call(this,e,n))}return g()(t,e),l()(t,[{key:"touchDragCallback",value:function(e){$l.call(this,e)}},{key:"mouseDragCallback",value:function(e){$l.call(this,e)}}]),t}(ga),$l=function(e){if(!e.detail.deltaPoints.page.y)return!1;this.applyActiveStrategy(e,this.configuration),y.cornerstone.setViewport(e.detail.element,e.detail.viewport)};function Jl(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=Kl(c,r,{maxScale:a,minScale:o});y.cornerstone.setViewport(l,f);var m=y.cornerstone.pageToPixel(l,d,h),p={x:v-m.x,y:g-m.y};p=Xl(p,f),c.translation.x-=p.x,c.translation.y-=p.y}function Ql(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=Kl(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&&Mn(e.detail.startPoints.image,l);var f={x:l.width/2-d,y:l.height/2-h};f=Xl(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 ec(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;Kl(s,r,{maxScale:a,minScale:o})}var tc=Gl.correctShift,nc=function(e){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r()(this,t);var n={name:"ZoomTouchPinch",supportedInteractionTypes:["TouchPinch"],configuration:{minScale:.25,maxScale:20}};return u()(this,h()(t).call(this,e,n))}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),y.cornerstone.setViewport(n,a);var v=y.cornerstone.pageToPixel(n,r,s),g={x:l-v.x,y:c-v.y};g=tc(g,a),a.translation.x-=g.x,a.translation.y-=g.y,y.cornerstone.setViewport(n,a)}}]),t}(ga),ac=function(e){return{page:oc(e.page),image:oc(e.image),client:oc(e.client),canvas:oc(e.canvas)}};function oc(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.x,n=e.y;return{x:t,y:n}}var ic,rc=N("eventListeners:mouseEventListeners"),sc=!0,lc=new Map;function cc(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 uc(){sc=!1}function dc(e){var t=e.currentTarget,n=y.cornerstone.getEnabledElement(t);if(n.image){var a=b.MOUSE_DOUBLE_CLICK,o={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};o.canvas=y.cornerstone.pixelToCanvas(t,o.image);var i=ac(o);rc.log("double-click: %o",cc(e)),C(t,a,{event:e,buttons:cc(e),viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:o,lastPoints:i,currentPoints:o,deltaPoints:{x:0,y:0},type:a})}}function hc(e){var t=e.currentTarget,n=y.cornerstone.getEnabledElement(t);if(n.image){ic=setTimeout(uc,200),t.removeEventListener("mousemove",vc);var a={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};a.canvas=y.cornerstone.pixelToCanvas(t,a.image);var o=ac(a),i={event:e,buttons:cc(e),viewport:y.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",s),lc.set(r,"mousemove"),lc.set(s,"mouseup")}function r(e){var i=b.MOUSE_DRAG,r={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};r.canvas=y.cornerstone.pixelToCanvas(t,r.image);var s={page:y.cornerstoneMath.point.subtract(r.page,o.page),image:y.cornerstoneMath.point.subtract(r.image,o.image),client:y.cornerstoneMath.point.subtract(r.client,o.client),canvas:y.cornerstoneMath.point.subtract(r.canvas,o.canvas)};rc.log("mousemove: %o",cc(e));var l={buttons:cc(e),viewport:y.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=ac(r)}function s(e){clearTimeout(ic);var i=b.MOUSE_UP;sc&&(i=b.MOUSE_CLICK);var l={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};l.canvas=y.cornerstone.pixelToCanvas(t,l.image);var c={page:y.cornerstoneMath.point.subtract(l.page,o.page),image:y.cornerstoneMath.point.subtract(l.image,o.image),client:y.cornerstoneMath.point.subtract(l.client,o.client),canvas:y.cornerstoneMath.point.subtract(l.canvas,o.canvas)};rc.log("mouseup: %o",cc(e));var u={event:e,buttons:cc(e),viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:a,lastPoints:o,currentPoints:l,deltaPoints:c,type:i};C(u.element,i,u),document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",s),lc.delete(r),lc.delete(s),t.addEventListener("mousemove",vc),sc=!0}}function vc(e){var t=e.currentTarget,n=y.cornerstone.getEnabledElement(t);if(n.image){var a=b.MOUSE_MOVE,o={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};o.canvas=y.cornerstone.pixelToCanvas(t,o.image);var i=ac(o),r={page:y.cornerstoneMath.point.pageToPoint(e),image:y.cornerstone.pageToPixel(t,e.pageX,e.pageY),client:{x:e.clientX,y:e.clientY}};r.canvas=y.cornerstone.pixelToCanvas(t,r.image);var s={page:y.cornerstoneMath.point.subtract(r.page,i.page),image:y.cornerstoneMath.point.subtract(r.image,i.image),client:y.cornerstoneMath.point.subtract(r.client,i.client),canvas:y.cornerstoneMath.point.subtract(r.canvas,i.canvas)};C(t,a,{viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:o,lastPoints:i,currentPoints:r,deltaPoints:s,type:a}),i=ac(r)}}function gc(e){e.removeEventListener("mousedown",hc),e.removeEventListener("mousemove",vc),e.removeEventListener("dblclick",dc),lc.forEach((function(e,t){document.removeEventListener(e,t)})),lc.clear()}var fc={enable:function(e){gc(e),e.addEventListener("mousedown",hc),e.addEventListener("mousemove",vc),e.addEventListener("dblclick",dc)},disable:gc};function mc(e){var t=e.currentTarget,n=y.cornerstone.getEnabledElement(t);if(n.image&&!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var a=e.pageX,o=e.pageY,i=y.cornerstone.pageToPixel(t,a,o),r=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}}(e),s=r.spinX,l=r.spinY,c=r.pixelX,u=r.pixelY,d=l<0?-1:1,h={element:t,viewport:y.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 pc(e){e.removeEventListener("wheel",mc,{passive:!1})}var yc,xc,Tc={enable:function(e){pc(e),e.addEventListener("wheel",mc,{passive:!1})},disable:pc},bc=0,Cc=1;function Mc(e,t){var n=Date.now();if(e!==yc){if(n-xc<=2e3)return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1;yc=e}xc=n}var Ec=Mc.bind(null,bc),wc=Mc.bind(null,Cc);function Ic(e,t,n){var a=n?Ec:wc;t.forEach((function(t){e.addEventListener(t,a,{passive:!1})}))}function Sc(e,t,n){var a=n?Ec:wc;t.forEach((function(t){e.removeEventListener(t,a)}))}var kc=["mousedown","mouseup"],_c=["touchstart","touchend"];function Pc(e){Sc(e,kc,bc),Sc(e,_c,Cc)}var Dc,Oc,Lc,Ac,Hc,Rc,Uc,Nc,Fc,Bc={enable:function(e){Pc(e),Ic(e,kc,bc),Ic(e,_c,Cc)},disable:Pc},Vc=1,qc=0,jc=!1,zc=!1;function Wc(e){var t=e.currentTarget||e.srcEvent.currentTarget,n=y.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)&&(zc=!1,clearTimeout(Uc)),e.type){case"tap":zc=!1,clearTimeout(Uc),(Oc={page:y.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:y.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Oc.image),a=b.TAP,Hc={event:e,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:Oc,type:a,isTouchEvent:!0},C(t,a,Hc);break;case"doubletap":zc=!1,clearTimeout(Uc),(Oc={page:y.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:y.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Oc.image),a=b.DOUBLE_TAP,Hc={event:e,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:Oc,type:a,isTouchEvent:!0},C(t,a,Hc);break;case"pinchstart":zc=!1,clearTimeout(Uc),Vc=1;break;case"pinchmove":if(zc=!1,clearTimeout(Uc),!0===jc){Vc=e.scale,jc=!1;break}o=(e.scale-Vc)/Vc,(Dc={page:e.center,image:y.cornerstone.pageToPixel(t,e.center.x,e.center.y)}).canvas=y.cornerstone.pixelToCanvas(t,Dc.image),a=b.TOUCH_PINCH,Hc={event:e,startPoints:Dc,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,direction:e.scale<1?1:-1,scaleChange:o,type:a,isTouchEvent:!0},C(t,a,Hc),Vc=e.scale;break;case"touchstart":Vc=1,clearTimeout(Uc),clearTimeout(Rc),Rc=setTimeout((function(){(Dc={page:y.cornerstoneMath.point.pageToPoint(e.touches[0]),image:y.cornerstone.pageToPixel(t,e.touches[0].pageX,e.touches[0].pageY),client:{x:e.touches[0].clientX,y:e.touches[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Dc.image),a=b.TOUCH_START,e.touches.length>1&&(a=b.MULTI_TOUCH_START),Hc={event:e,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Dc,currentPoints:Dc,type:a,isTouchEvent:!0},!0===C(t,a,Hc)&&(a=b.TOUCH_START_ACTIVE,e.touches.length>1&&(a=b.MULTI_TOUCH_START_ACTIVE),Hc.type=a,C(t,a,Hc)),Lc=ac(Dc)}),50),zc=!0,Nc=0,Uc=setTimeout((function(){zc&&((Oc={page:y.cornerstoneMath.point.pageToPoint(e.touches[0]),image:y.cornerstone.pageToPixel(t,e.touches[0].pageX,e.touches[0].pageY),client:{x:e.touches[0].clientX,y:e.touches[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Dc.image),a=b.TOUCH_PRESS,Hc={event:e,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,currentPoints:Oc,type:a,isTouchEvent:!0},C(t,a,Hc))}),700);break;case"touchend":Vc=1,zc=!1,clearTimeout(Uc),setTimeout((function(){(Dc={page:y.cornerstoneMath.point.pageToPoint(e.changedTouches[0]),image:y.cornerstone.pageToPixel(t,e.changedTouches[0].pageX,e.changedTouches[0].pageY),client:{x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Dc.image),a=b.TOUCH_END,Hc={event:e,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Dc,currentPoints:Dc,type:a,isTouchEvent:!0},C(t,a,Hc)}),50);break;case"panmove":i={x:e.deltaX-Fc.x,y:e.deltaY-Fc.y},Fc={x:e.deltaX,y:e.deltaY},(Oc={page:{x:Lc.page.x+i.x,y:Lc.page.y+i.y},image:y.cornerstone.pageToPixel(t,Lc.page.x+i.x,Lc.page.y+i.y),client:{x:Lc.client.x+i.x,y:Lc.client.y+i.y}}).canvas=y.cornerstone.pixelToCanvas(t,Oc.image),Ac={page:y.cornerstoneMath.point.subtract(Oc.page,Lc.page),image:y.cornerstoneMath.point.subtract(Oc.image,Lc.image),client:y.cornerstoneMath.point.subtract(Oc.client,Lc.client),canvas:y.cornerstoneMath.point.subtract(Oc.canvas,Lc.canvas)},(Nc+=Math.sqrt(Ac.page.x*Ac.page.x+Ac.page.y*Ac.page.y))>5&&(zc=!1,clearTimeout(Uc)),a=b.TOUCH_DRAG,e.pointers.length>1&&(a=b.MULTI_TOUCH_DRAG),Hc={viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Dc,lastPoints:Lc,currentPoints:Oc,deltaPoints:Ac,numPointers:e.pointers.length,type:a,isTouchEvent:!0},C(t,a,Hc),Lc=ac(Oc);break;case"panstart":Fc={x:e.deltaX,y:e.deltaY},(Oc={page:y.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:y.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Oc.image),Lc=ac(Oc);break;case"panend":if(zc=!1,clearTimeout(Uc),!Lc)return!1;(Oc={page:y.cornerstoneMath.point.pageToPoint(e.pointers[0]),image:y.cornerstone.pageToPixel(t,e.pointers[0].pageX,e.pointers[0].pageY),client:{x:e.pointers[0].clientX,y:e.pointers[0].clientY}}).canvas=y.cornerstone.pixelToCanvas(t,Oc.image),Ac={page:y.cornerstoneMath.point.subtract(Oc.page,Lc.page),image:y.cornerstoneMath.point.subtract(Oc.image,Lc.image),client:y.cornerstoneMath.point.subtract(Oc.client,Lc.client),canvas:y.cornerstoneMath.point.subtract(Oc.canvas,Lc.canvas)},a=b.TOUCH_DRAG_END,Hc={event:e.srcEvent,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,startPoints:Dc,lastPoints:Lc,currentPoints:Oc,deltaPoints:Ac,type:a,isTouchEvent:!0},C(t,a,Hc),2===e.pointers.length-e.changedPointers.length&&(jc=!0);break;case"rotatemove":zc=!1,clearTimeout(Uc),r=e.rotation-qc,qc=e.rotation,a=b.TOUCH_ROTATE,Hc={event:e.srcEvent,viewport:y.cornerstone.getViewport(t),image:n.image,element:t,rotation:r,type:a},C(t,a,Hc)}return!1}}function Gc(e){Bc.disable(e);["touchstart","touchend"].forEach((function(t){e.removeEventListener(t,Wc)}));var t=zs("touchInput",e),n=t.hammer;n&&(n.off("tap doubletap panstart panmove panend pinchstart pinchmove rotatemove",Wc),n.input.destroy()),t.hammer=null,function(e,t){var n=js[e];n&&(js[e]=n.filter((function(e){return e.element!==t})))}("touchInput",e)}var Yc={enable:function(e){Gc(e);var t=y.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",Wc),Bc.enable(e),["touchstart","touchend"].forEach((function(t){e.addEventListener(t,Wc,{passive:!1})}));var c=zs("touchInput",e);c.hammer=a,Ws("touchInput",e,c)},disable:Gc},Xc=Tt("segmentation");function Kc(e,t,n,a,o){!function(e,t,n){var a=Xc.configuration,o=e.detail,i=_n(o.canvasContext.canvas),r=y.cornerstone.pixelToCanvas(o.element,{x:0,y:0}),s=y.cornerstone.pixelToCanvas(o.element,{x:o.image.width,y:0}),l=y.cornerstone.pixelToCanvas(o.element,{x:o.image.width,y:o.image.height}),c=y.cornerstoneMath.point.distance(r,s),u=y.cornerstoneMath.point.distance(s,l),d=o.canvasContext.canvas,h=o.viewport,v=i.imageSmoothingEnabled,g=i.globalAlpha;i.imageSmoothingEnabled=!1,i.globalAlpha=n?a.fillAlpha:a.fillAlphaInactive,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)}}(i,d,h);var f=function(e){var t=e.viewport,n=e.image,a=t.scale,o=t.scale;n.rowPixelSpacing<n.columnPixelSpacing?a*=n.columnPixelSpacing/n.rowPixelSpacing:n.columnPixelSpacing<n.rowPixelSpacing&&(o*=n.rowPixelSpacing/n.columnPixelSpacing);return{x:t.translation.x*a,y:t.translation.y*o}}(o);i.drawImage(t,d.width/2-c/2+f.x,d.height/2-u/2+f.y,c,u),i.globalAlpha=g,i.imageSmoothingEnabled=v,function(e){e.setTransform(1,0,0,1,0,0)}(i)}(e,function(e,t,n){var a=Xc.state,o=e.detail.image,i=o.width,r=o.height,s=t.segmentsHidden,l=n.pixelData,c=a.colorLutTables[t.colorLUTIndex],u=document.createElement("canvas");u.width=i,u.height=r;for(var d=_n(u),h=new ImageData(i,r),v=h.data,g=0;g<l.length;g++){var f=l[g];if(0!==f&&!s[f]){var m=c[l[g]];v[4*g]=m[0],v[4*g+1]=m[1],v[4*g+2]=m[2],v[4*g+3]=m[3]}}return d.putImageData(h,0,0),u}(e,t,n),o)}var Zc=Tt("segmentation");function $c(e,t,n,a,o){!function(e,t,n){var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=Zc.configuration,i=Zc.state,r=e.detail,s=r.element,l=r.canvasContext,c=o.outlineWidth||1,u=_n(l.canvas),d=i.colorLutTables[n],h=u.globalAlpha;u.globalAlpha=a?o.outlineAlpha:o.outlineAlphaInactive,Wt(u,(function(e){for(var n=1;n<t.length;n++)if(t[n]){var a=d[n];hn(e,s,t[n],{color:"rgba(".concat(a[0],", ").concat(a[1],", ").concat(a[2],", 1.0 )"),lineWidth:c},"canvas")}})),u.globalAlpha=h}(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,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),f=0;f<d.length;f++){var m=d[f];if(0!==m)if(!u[m]){var p={x:(x=f)%l,y:Math.floor(x/l)},y=Jc(p,c,l);void 0!==y.top&&d[y.top]===m||au(v[m],i,p,g),void 0!==y.bottom&&d[y.bottom]===m||ou(v[m],i,p,g),void 0!==y.left&&d[y.left]===m||iu(v[m],i,p,g),void 0!==y.right&&d[y.right]===m||ru(v[m],i,p,g),void 0!==y.topLeft&&d[y.topLeft]!==m&&d[y.top]===m&&d[y.left]===m&&Qc(v[m],i,p,g),void 0!==y.topRight&&d[y.topRight]!==m&&d[y.top]===m&&d[y.right]===m&&eu(v[m],i,p,g),void 0!==y.bottomLeft&&d[y.bottomLeft]!==m&&d[y.bottom]===m&&d[y.left]===m&&tu(v[m],i,p,g),void 0!==y.bottomRight&&d[y.bottomRight]!==m&&d[y.bottom]===m&&d[y.right]===m&&nu(v[m],i,p,g)}}var x;return v}(e,t,n,Zc.configuration.outlineWidth),t.colorLUTIndex,o)}function Jc(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 Qc(e,t,n,a){var o=(0,y.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 eu(e,t,n,a){var o=(0,y.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 tu(e,t,n,a){var o=(0,y.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 nu(e,t,n,a){var o=(0,y.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 au(e,t,n,a){var o=y.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 ou(e,t,n,a){var o=y.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 iu(e,t,n,a){var o=y.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 ru(e,t,n,a){var o=y.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 su=Tt("segmentation");function lu(e,t,n,a,o){(function(e){var t=su.configuration;return t.renderFill&&(e&&0!==t.fillAlpha||!e&&0!==t.fillAlphaInactive)})(o)&&Kc(e,t,a,0,o),function(e){var t=su.configuration;return t.renderOutline&&(e&&0!==t.outlineAlpha||!e&&0!==t.outlineAlphaInactive)}(o)&&$c(e,t,a,0,o)}var cu=Tt("segmentation"),uu=function(e){var t=e.detail.element,n=cu.configuration,a=cu.getters.labelmaps3D(t),o=a.activeLabelmapIndex,i=a.labelmaps3D,r=a.currentImageIdIndex;i&&(n.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&&lu(e,i,0,r,!1)}}}(e,i,o,r),function(e,t,n,a){var o=t[n];if(!o)return;var i=o.labelmaps2D[a];i&&lu(e,o,0,i,!0)}(e,i,o,r))};var du=Tt("segmentation"),hu=function(e){var t=e.detail,n=t.element,a=pt.tools.filter((function(e){return e.element===n&&("active"===e.mode||"passive"===e.mode||"enabled"===e.mode)})),o=O(n,"stack"),i=du.configuration;o&&(i.renderFill||i.renderOutline)&&uu(e);var r=t.canvasContext.canvas.getContext("2d");a.forEach((function(t){t.renderToolData&&(r.save(),t.renderToolData(e),r.restore())}))},vu=function(e){e.addEventListener(y.cornerstone.EVENTS.IMAGE_RENDERED,hu)},gu=function(e){e.removeEventListener(y.cornerstone.EVENTS.IMAGE_RENDERED,hu)},fu=function(e,t,n){if(pt.isToolLocked)return!1;var a=n.detail.element,o=pt.tools.filter((function(t){return t.supportedInteractionTypes.includes(e)}));if(o=(o=Ma(a,o,e)).filter((function(e){return"function"==typeof e[t]})),pt.isMultiPartToolActive&&(o=_a(o)),0===o.length)return!1;o[0][t](n)},mu=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse";return t.filter((function(t){for(var o=so(a,t.name),i=O(e,t.name),r=0;r<i.data.length;r++)if(void 0!==pa(e,i.data[r].handles,n,o))return!0;return!1}))},pu=function(e,t){return t.filter((function(t){return t.element===e&&("active"===t.mode||"passive"===t.mode)}))},yu=function(e,t){return t.filter((function(t){var n=O(e,t.name);return n&&n.data.length>0}))},xu=function(e){if(!pt.isToolLocked){var t=e.detail,n=e.detail.element,a=e.detail.currentPoints.canvas,o=pu(n,yt.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(pt.isMultiPartToolActive&&(i=_a(i)),i.length>0){var r=i.find((function(e){return"function"==typeof e.preMouseDownCallback}));if(r)if(r.preMouseDownCallback(e))return}if(!pt.isMultiPartToolActive){var s=yu(n,o),l=mu(n,s,a,"mouse");if(l.length>0){var c=l[0],u=O(n,c.name),d=ho(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=O(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=O(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}}}}},Tu=N("eventDispatchers:mouseEventHandlers"),bu=function(e){if(!pt.isToolLocked){var t=e.detail,n=Pa(t.element,t.buttons,"mouse");if(n){if("function"==typeof n.preMouseDownActivateCallback)if(n.preMouseDownActivateCallback(e))return;pt.isMultiPartToolActive||(n.addNewMeasurement?n.addNewMeasurement(e,"mouse"):n instanceof fo&&function(e,t){Tu.log("addNewMeasurement"),e.preventDefault(),e.stopPropagation();var n=e.detail,a=n.element,o=t.createNewMeasurement(n);o&&(D(a,t.name,o),y.cornerstone.updateImage(a),(1===Object.keys(o.handles).length?Wa:to)(n,t.name,o,o.handles.end,t.options,"mouse",(function(e){if(!o.cancelled)if(e){var n=b.MEASUREMENT_COMPLETED,i={toolName:t.name,toolType:t.name,element:a,measurementData:o};C(a,n,i)}else L(a,t.name,o)})))}(e,n))}}},Cu=function(e){if(!pt.isToolLocked){var t,n=e.detail,a=n.element;if(t=(t=(t=Ma(a,yt.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})),pt.isMultiPartToolActive&&(t=_a(t)),0!==t.length)t[0].mouseDragCallback(e)}},Mu=function(e){if(!pt.isToolLocked&&!pt.isMultiPartToolActive){var t,n=e.detail,a=n.element,o=n.currentPoints;pt.mousePositionImage=o.image;var i=(t=pu(a,yt.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=yu(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&&y.cornerstone.updateImage(a)}},Eu=fu.bind(null,"Mouse","mouseClickCallback"),wu=fu.bind(null,"Mouse","doubleClickCallback"),Iu=fu.bind(null,"Mouse","mouseUpCallback"),Su=fu.bind(null,"MouseWheel","mouseWheelCallback"),ku=function(e){e.addEventListener(b.MOUSE_CLICK,Eu),e.addEventListener(b.MOUSE_DOWN,xu),e.addEventListener(b.MOUSE_DOWN_ACTIVATE,bu),e.addEventListener(b.MOUSE_DOUBLE_CLICK,wu),e.addEventListener(b.MOUSE_DRAG,Cu),e.addEventListener(b.MOUSE_MOVE,Mu),e.addEventListener(b.MOUSE_UP,Iu),e.addEventListener(b.MOUSE_WHEEL,Su)},_u=function(e){e.removeEventListener(b.MOUSE_CLICK,Eu),e.removeEventListener(b.MOUSE_DOWN,xu),e.removeEventListener(b.MOUSE_DOWN_ACTIVATE,bu),e.removeEventListener(b.MOUSE_DOUBLE_CLICK,wu),e.removeEventListener(b.MOUSE_DRAG,Cu),e.removeEventListener(b.MOUSE_MOVE,Mu),e.removeEventListener(b.MOUSE_UP,Iu),e.removeEventListener(b.MOUSE_WHEEL,Su)},Pu=function(e){if(pt.isToolLocked)return!1;var t=e.detail.element,n=pt.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)}))},Du=function(e){e.addEventListener(y.cornerstone.EVENTS.NEW_IMAGE,Pu)},Ou=function(e){e.removeEventListener(y.cornerstone.EVENTS.NEW_IMAGE,Pu)},Lu=function(e){if(pt.isToolLocked)return!1;var t=e.detail,n=t.element,a=t.numPointers,o=pt.tools.filter((function(e){return e.supportedInteractionTypes.includes("MultiTouch")}));if(o=(o=Ma(n,o,"MultiTouch")).filter((function(e){return"function"==typeof e.multiTouchDragCallback&&a===e.configuration.touchPointers})),pt.isMultiPartToolActive&&(o=_a(o)),0===o.length)return!1;o[0].multiTouchDragCallback(e)},Au=N("eventDispatchers:touchEventHandlers"),Hu=function(e){if(!pt.isToolLocked&&!pt.isMultiPartToolActive){var t=Pa(e.detail.element,null,"touch");t&&t.addNewMeasurement?t.addNewMeasurement(e,"touch"):t instanceof fo&&function(e,t){Au.log("addNewMeasurement"),e.preventDefault(),e.stopPropagation();var n=e.detail,a=n.element,o=t.createNewMeasurement(n);if(o){if(D(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,(pt.deleteIfHandleOutsideImage||t.options.deleteIfHandleOutsideImage)&&ba(n,o.handles)&&L(a,t.name,o),void y.cornerstone.updateImage(a);y.cornerstone.updateImage(a),to(n,t.name,o,o.handles.end,t.options,"touch",(function(){var e=b.MEASUREMENT_COMPLETED,n={toolName:t.name,toolType:t.name,element:a,measurementData:o};C(a,e,n)}))}}(e,t)}},Ru=function(e){if(e)for(var t=0;t<e.data.length;t++){var n=e.data[t];n.active=!1,n.handles&&Uu(n.handles)}};function Uu(e){Object.keys(e).forEach((function(t){e[t].active=!1}))}var Nu=function(e){if(!pt.isToolLocked&&!pt.isMultiPartToolActive){var t,n=e.detail.element,a=e.detail.currentPoints.canvas;t=Ma(n,yt.touchTools());var o=(t=yu(n,t)).filter((function(e){for(var t=O(n,e.name),o=0;o<t.data.length;o++)if(void 0!==pa(n,t.data[o].handles,a,28))return!0;return!1}));if(o.length>0){var i=o[0],r=O(n,i.name),s=r.data.find((function(e){return void 0!==pa(n,e.handles,a,28)}));return r.data.active=!0,s.active=!0,y.cornerstone.updateImage(n),Wa(e.detail,i.name,r.data,s,i.options,"touch",(function(){return Ru(r)})),e.stopImmediatePropagation(),void e.preventDefault()}var l=t.filter((function(e){var t=O(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=O(n,c.name),d=u.data.find((function(e){return c.pointNearTool(n,e,a)}));return d.active=!0,y.cornerstone.updateImage(n),Ha(e.detail,c.name,d,null,c.options,"touch",(function(){return Ru(u)})),e.stopImmediatePropagation(),void e.preventDefault()}var h=Ma(n,yt.touchTools());return h.length>0&&h[0].touchStartActiveCallback?h[0].touchStartActiveCallback(e):Hu(e),!1}},Fu=function(e){if(!pt.isToolLocked){var t=e.detail,n=t.element,a=t.startPoints.canvas,o=pu(n,yt.touchTools()),i=o.filter((function(e){return"active"===e.mode&&e.options.isTouchActive}));if(pt.isMultiPartToolActive&&(i=_a(i)),i.length>0){var r=i.find((function(e){return"function"==typeof e.preTouchStartCallback}));if(r)if(r.preTouchStartCallback(e))return}if(!pt.isMultiPartToolActive){var s=yu(n,o),l=mu(n,s,a,"touch");if(l.length>0){var c=l[0],u=O(n,c.name),d=ho(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=O(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=O(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}}}}},Bu=fu.bind(null,"DoubleTap","doubleTapCallback"),Vu=fu.bind(null,"Touch","touchDragCallback"),qu=fu.bind(null,"Touch","touchEndCallback"),ju=fu.bind(null,"TouchPinch","touchPinchCallback"),zu=fu.bind(null,"Touch","touchPressCallback"),Wu=fu.bind(null,"TouchRotate","touchRotateCallback"),Gu=function(e){e.addEventListener(b.TAP,Nu),e.addEventListener(b.TOUCH_START,Fu,{passive:!1}),e.addEventListener(b.TOUCH_DRAG,Vu,{passive:!1}),e.addEventListener(b.TOUCH_END,qu),e.addEventListener(b.TOUCH_START_ACTIVE,Hu),e.addEventListener(b.TOUCH_PRESS,zu),e.addEventListener(b.DOUBLE_TAP,Bu),e.addEventListener(b.TOUCH_PINCH,ju),e.addEventListener(b.TOUCH_ROTATE,Wu),e.addEventListener(b.MULTI_TOUCH_DRAG,Lu)},Yu=function(e){e.removeEventListener(b.TAP,Nu),e.removeEventListener(b.TOUCH_START,Fu),e.removeEventListener(b.TOUCH_DRAG,Vu),e.removeEventListener(b.TOUCH_END,qu),e.removeEventListener(b.TOUCH_START_ACTIVE,Hu),e.removeEventListener(b.TOUCH_PRESS,zu),e.removeEventListener(b.DOUBLE_TAP,Bu),e.removeEventListener(b.TOUCH_PINCH,ju),e.removeEventListener(b.TOUCH_ROTATE,Wu),e.removeEventListener(b.MULTI_TOUCH_DRAG,Lu)},Xu=N("addTool"),Ku=function(e,t,n){var a=new t(n);Ct(e,a.name)?Xu.warn("%s has already been added to the target element",a.name):(a.element=e,bt.state.tools.push(a))},Zu=function(e,t){$u(e,t),bt.state.enabledElements.forEach((function(n){Ku(n,e,t)}))},$u=function(e,t){if(Tt("globalConfiguration").configuration.globalToolSyncEnabled){var n=new e(t);void 0!==bt.state.globalTools[n.name]?Xu.warn("%s has already been added globally",n.name):bt.state.globalTools[n.name]={tool:e,props:t,activeBindings:[]}}},Ju=N("internals:addEnabledElement"),Qu=function(e){Ju.log("EVENT:ELEMENT_ENABLED");var t=e.detail.element;vu(t),Du(t);var n=Tt("globalConfiguration").configuration;n.mouseEnabled&&(fc.enable(t),Tc.enable(t),ku(t)),n.touchEnabled&&(Yc.enable(t),Gu(t)),ed(t)},ed=function(e){bt.state.enabledElements.push(e),bt.modules&&function(e){var t=bt.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(bt.state.globalTools).forEach((function(t){var n=bt.state.globalTools[t],a=n.tool,o=n.props;Ku(e,a,o)}))}(e),function(e){if(!Tt("globalConfiguration").configuration.globalToolSyncEnabled)return;var t={active:_t,passive:Ht,enabled:Lt,disabled:Dt};bt.state.globalToolChangeHistory.forEach((function(n){var a=n.args.slice(0);a.unshift(e),t[n.mode].apply(null,a)}))}(e)};var td=N("internals:removeEnabledElement"),nd=function(e){td.log("EVENT:ELEMENT_DISABLED");var t=e.detail.element,n=Tt("globalConfiguration").configuration;gu(t),Ou(t),n.mouseEnabled&&(fc.disable(t),Tc.disable(t),_u(t)),n.touchEnabled&&(Yc.disable(t),Yu(t)),ad(t),od(t),id(t)},ad=function(e){bt.state.tools.forEach((function(t){t.element===e&&Dt(t.element,t.name)})),bt.state.tools=bt.state.tools.filter((function(t){return t.element!==e}))},od=function(e){bt.modules&&function(e){var t=bt.modules;Object.keys(t).forEach((function(n){"function"==typeof t[n].removeEnabledElementCallback&&t[n].removeEnabledElementCallback(e)}))}(e);var t=bt.state.enabledElements.findIndex((function(t){return t===e}));t>-1?bt.state.enabledElements.splice(t,1):td.warn("unable to remove element")},id=function(e){qs.removeHandlers(e)};var rd,sd=function(){window.removeEventListener("resize",ld,!1)};function ld(){rd||(rd=setTimeout((function(){rd=null,cd()}),66))}var cd=function(){pt.enabledElements.forEach((function(e){y.cornerstone.resize(e)}))},ud=function(){sd(),window.addEventListener("resize",ld,!1)},dd=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};hd(),vd();var t=Tt("globalConfiguration");Array.isArray(e)?e.forEach((function(e){var t=e.moduleName,n=e.configuration,a=Tt(t);a&&(a.configuration=Object.assign({},a.configuration,n))})):t.configuration=Object.assign({},t.configuration,e),t.configuration.autoResizeViewports&&ud()};function hd(){!function(){var e=y.cornerstone,t=e.EVENTS.ELEMENT_ENABLED,n=e.EVENTS.ELEMENT_DISABLED;e.events.removeEventListener(t,Qu),e.events.removeEventListener(n,nd)}();var e=y.cornerstone,t=e.EVENTS.ELEMENT_ENABLED,n=e.EVENTS.ELEMENT_DISABLED;e.events.addEventListener(t,Qu),e.events.addEventListener(n,nd)}function vd(){var e=bt.modules;Object.keys(e).forEach((function(t){"function"==typeof e[t].onRegisterCallback&&e[t].onRegisterCallback()}))}var gd,fd=N("stackTools:stackPrefetch"),md={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function pd(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}function yd(e){var t=O(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0],a=O(e,"stackPrefetch");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&&(y.cornerstone.imageCache.getImageLoadObject(t)&&b(e))})),o.indicesToRequest.length){md.preserveExistingPool||y.cornerstone.imageLoadPoolManager.clearRequestStack("prefetch");for(var i,r,s,l,c,u,d,h=(i=o.indicesToRequest,r=n.currentImageIdIndex,s=0,l=i.length-1,i.forEach((function(e,t){e<r?s=Math.max(t,s):e>r&&(l=Math.min(t,l))})),{low:s,high:l}),v=(qs.getErrorLoadingHandler(e),h.low),g=h.high,f=[];v>=0||g<o.indicesToRequest.length;){var m=n.currentImageIdIndex,p=!(m-o.indicesToRequest[v]>md.maxImagesToPrefetch)&&v>=0,x=!(o.indicesToRequest[g]-m>md.maxImagesToPrefetch)&&g<o.indicesToRequest.length;if(!x&&!p)break;p&&(u=o.indicesToRequest[v--],c=n.imageIds[u],f.push(c)),x&&(u=o.indicesToRequest[g++],c=n.imageIds[u],f.push(c))}var T={addToBeginning:!0,priority:0,requestType:"prefetch"};d=function(e){return y.cornerstone.loadAndCacheImage(e,T)},f.reverse().forEach((function(e){y.cornerstone.imageLoadPoolManager.addRequest(d.bind(null,e),"prefetch",{imageId:e},0,!0)}))}}}function b(e){var t=o.indicesToRequest.indexOf(e);t>-1&&o.indicesToRequest.splice(t,1)}}function xd(e){return function(t){var n,a=t.detail;try{n=O(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=O(e,"stackPrefetch");i&&i.data&&i.data.length&&i.data[0].indicesToRequest.push(o)}}}}function Td(e){clearTimeout(gd),gd=setTimeout((function(){var t=e.target;try{yd(t)}catch(e){return}}),10)}var bd={enable:function(e){O(e,"stackPrefetch").data=[];var t=O(e,"stack");if(t&&t.data&&t.data.length){var n=t.data[0];if(!0!==n.preventCache){var a={indicesToRequest:pd(0,n.imageIds.length-1),enabled:!0,direction:1},o=a.indicesToRequest.indexOf(n.currentImageIdIndex);a.indicesToRequest.splice(o,1),D(e,"stackPrefetch",a),yd(e),e.removeEventListener(y.cornerstone.EVENTS.NEW_IMAGE,Td),e.addEventListener(y.cornerstone.EVENTS.NEW_IMAGE,Td);var i=xd(e);y.cornerstone.events.removeEventListener(y.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,i),y.cornerstone.events.addEventListener(y.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,i)}else fd.warn("A stack that should not be cached was given the stackPrefetch")}},disable:function(e){clearTimeout(gd),e.removeEventListener(y.cornerstone.EVENTS.NEW_IMAGE,Td);var t=xd(e);y.cornerstone.events.removeEventListener(y.cornerstone.EVENTS.IMAGE_CACHE_PROMISE_REMOVED,t);var n=O(e,"stackPrefetch");n&&n.data.length&&(n.data[0].enabled=!1,y.cornerstone.imageLoadPoolManager.clearRequestStack("prefetch"))},getConfiguration:function(){return md},setConfiguration:function(e){md=e}},Cd=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=O(e,"stack").data);var a=y.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}(),Md={};Md.FusionRenderer=Cd;var Ed=Md;function wd(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function Id(e,t){var n,a;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=O(e,"stack");if(o&&o.data&&o.data.length){var i,r=y.cornerstone;if(o.data.length>1){var s=O(e,"stackRenderer");s&&s.data&&s.data.length&&(i=s.data[0])}var l=o.data[0],c=O(e,"playClip");c&&c.data&&c.data.length?wd(n=c.data[0]):D(e,"playClip",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 wd(n),void function(e){C(e,b.CLIP_STOPPED,{element:e})}(e);c>=u&&(c=0),c<0&&(c=u-1),c!==l.currentImageIdIndex&&(t=qs.getStartLoadHandler(e),a=qs.getEndLoadHandler(e),s=qs.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 Sd(e){var t=O(e,"playClip");t&&t.data&&t.data.length&&wd(t.data[0])}var kd=function(e,t){var n=bt.state.tools.findIndex((function(n){return n.element===e&&n.name===t}));n>=0&&bt.state.tools.splice(n,1)},_d=function(e){Pd(e),bt.state.enabledElements.forEach((function(t){kd(t,e)}))},Pd=function(e){Tt("globalConfiguration").configuration.globalToolSyncEnabled&&bt.state.globalTools[e]&&delete bt.state.globalTools[e]},Dd=function(e,t,n){var a=Ct(e,t);a&&a.mergeOptions(n)},Od=function(e,t){pt.enabledElements.forEach((function(n){Dd(n,e,t)}))};function Ld(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 Ad=[];function Hd(e,t){var n=P(e);n||(n=_);var a=["stack","stackPrefetch","playClip","volume","slab","referenceLines","crosshairs","stackRenderer"];t&&(a=a.concat(t));var o=Ld(a,n);Ad.push(o),H(e,o)}var Rd={newStackSpecificToolStateManager:Ld,addStackStateManager:Hd};function Ud(){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 Nd=Ud(),Fd=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")},Bd=N("thirdParty:registerModule"),Vd=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=qd(e);!a||n?(a&&Bd.warn("Overwriting module %s",e),xt[e]=t,"function"==typeof xt[e].onRegisterCallback&&xt[e].onRegisterCallback()):Bd.warn("A module with the name %s is already registered",e)};function qd(e){return void 0!==xt[e]}function jd(){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(" "))}var zd={"base/BaseTool":ga,"base/BaseAnnotationTool":fo,"base/BaseBrushTool":ka,"tools/cursors/MouseCursor":xo,"tools/cursors":o,"manipulators/anyHandlesOutsideImage":ba,"manipulators/getHandleNearImagePoint":pa,"manipulators/getHandlePixelPosition":Ca,"manipulators/handleActivator":ya,"manipulators/moveAllHandles":Ha,"manipulators/moveHandle":Wa,"manipulators/moveNewHandle":to,"manipulators/moveHandleNearImagePoint":uo,"manipulators/findHandleDataNearImagePoint":ho,"manipulators/moveAnnotation":vo,"mixins/activeOrDisabledBinaryTool":ia.activeOrDisabledBinaryTool,"mixins/enabledOrDisabledBinaryTool":ia.enabledOrDisabledBinaryTool,"drawing/getNewContext":_n,"drawing/draw":Wt,"drawing/path":Kt,"drawing/setShadow":Dn,"drawing/drawLine":Zt,"drawing/drawLines":hn,"drawing/drawJoinedLines":$t,"drawing/drawCircle":Qt,"drawing/drawEllipse":rn,"drawing/drawRect":kn,"drawing/fillOutsideRect":function(e,t,n,a,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"pixel";if("pixel"===i){var r=y.cornerstone;n=r.pixelToCanvas(t,n),a=r.pixelToCanvas(t,a)}var s=Math.min(n.x,a.x),l=Math.min(n.y,a.y),c=Math.abs(n.x-a.x),u=Math.abs(n.y-a.y);Kt(e,o,(function(e){e.rect(0,0,e.canvas.clientWidth,e.canvas.clientHeight),e.rect(s+c,l,-c,u)}))},"drawing/drawTextBox":bn,"drawing/drawArrow":Jt,"drawing/fillBox":xn,"drawing/fillTextLines":yn,"drawing/drawLink":vn,"drawing/drawLinkedTextBox":Sn,"drawing/drawHandles":dn,"drawing/textBoxWidth":Tn,"util/getActiveTool":Pa,"util/getLuminance":Nl,"util/getROITextBoxCoords":nr,"util/copyPoints":ac,"util/calculateSUV":$i,"util/setContextToDisplayFontSize":function(e,t,n){return y.cornerstone.setToPixelCoordinateSystem(e,t,.1),{fontSize:n/e.viewport.scale/.1,lineHeight:n/e.viewport.scale/.1,fontScale:.1}},"util/scrollToIndex":Ol,"util/scroll":Ll,"util/roundToDecimal":po,"util/projectPatientPointToImagePlane":tn,"util/imagePointToPatientPoint":nn,"util/planePlaneIntersection":an,"util/pointInsideBoundingBox":fa,"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":qr,"util/getBrowserInfo":jd,"util/isMobileDevice":function(){return new RegExp("Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini").test(navigator.userAgent)},"util/angleBetweenPoints":bl,"util/numbersWithCommas":ar,"util/lineSegDistance":mo,"util/triggerEvent":C,"util/convertToVector3":en,"util/clip":Cn,"util/clipToBox":Mn,"util/clipBoxToDisplayedArea":wn,"util/debounce":si,"util/deepmerge":da,"util/getDefault":Pn,"util/getProximityThreshold":so,"util/getPixelSpacing":ii,"util/isEmptyObject":On,"util/isObject":ri,"util/isPointInImage":Ge,"util/isPointInPolygon":cs,"util/getLogger":N,"util/throttle":li,"util/wait":pl,"util/waitForEnabledElementImageToLoad":yl,"util/getKeyPressData":function(e){var t=y.cornerstone,n=e.currentTarget,a=t.getEnabledElement(n);if(a&&a.image){var o=bt.state.mousePositionImage;return{event:window.event||e,element:n,viewport:t.getViewport(n),image:a.image,currentPoints:{image:o,canvas:t.pixelToCanvas(n,o)},keyCode:e.keyCode,which:e.which}}},"util/ellipseUtils":tr,"util/freehandUtils":Dr,"util/segmentationUtils":a,"util/zoomUtils":Gl},Wd=N("thirdParty:registerMixin"),Gd=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=Yd(e);!a||n?(a&&Wd.warn("Overwriting mixins/%s",e),ia[e]=t,zd["mixins/".concat(e)]=ia[e]):Wd.warn("mixins/%s is already registered",e)};function Yd(e){return void 0!==ia[e]}var Xd=N("thirdParty:registerType"),Kd=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o="".concat(e,"/").concat(t),i=Zd(o);!i||a?(i&&Xd.warn("Overwriting %s",o),zd[o]=n):Xd.warn("%s is already registered",o)};function Zd(e){return void 0!==zd[e]}var $d=N("thirdParty:register"),Jd=function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(Qd(e,t,n))switch(e){case"module":Vd(t,n,a);break;case"mixin":Gd(t,n,a);break;default:Kd(e,t,n,a)}};function Qd(e,t,n){return e?t?"object"===T()(n)||"function"==typeof n||($d.warn("The %s is a %s, it should be an Object or a function.",n,T()(n)),!1):($d.warn("The %s must have a name in order to register.",e),!1):($d.warn("The type must be given in order to register."),!1)}var eh=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;Jd(n,a,o,t)}))},th=function(e,t,n){if(n!==t){var a=y.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))}},nh=function(e,t,n){n!==t&&y.cornerstone.updateImage(n)};function ah(e){return e.filter((function(e,t,n){return n.indexOf(e)===t}))}var oh=function(e,t){y.cornerstone;var n=this,a=[],o=[],i=!1,r={},s=t;function l(e){var t=e.detail.element;n.remove(t),function(e){for(var t in js)js[t]=js[t].filter((function(t){return t.element!==e}))}(t)}this.enabled=!0,this.setHandler=function(e){s=e},this.getHandler=function(){return s},this.getDistances=function(){if(a.length&&o.length){var e=y.cornerstone;r.distances={},r.imageIds={sourceElements:[],targetElements:[]},a.forEach((function(t){var n=e.getEnabledElement(t);if(n&&n.image){var a=n.image.imageId,i=e.metaData.get("imagePlaneModule",a);if(i&&i.imagePositionPatient){var s=en(i.imagePositionPatient);r.hasOwnProperty(n)||(r.distances[a]={},r.imageIds.sourceElements.push(a),o.forEach((function(n){var o=e.getEnabledElement(n);if(o&&o.image){var i=o.image.imageId;if(r.imageIds.targetElements.push(i),t!==n&&a!==i&&!r.distances[a].hasOwnProperty(i)){var l=e.metaData.get("imagePlaneModule",i);if(l&&l.imagePositionPatient){var c=en(l.imagePositionPatient);r.distances[a][i]=c.clone().sub(s)}}}})),Object.keys(r.distances[a]).length||delete r.distances[a])}}}))}},this.fireEvent=function(e,t){var l=!n.enabled,c=!a.length||!o.length;l||c||(i=!0,o.forEach((function(i){var l=o.indexOf(i);if(-1!==l){var c=r.imageIds.targetElements[l],u=a.indexOf(e);if(-1!==u){var d,h=r.imageIds.sourceElements[u];h===c?d=0:void 0!==r.distances[h]&&(d=r.distances[h][c]),s(n,e,i,t,d)}}})),i=!1)},this.onEvent=function(e){var t=e.detail;!0!==i&&n.fireEvent(e.currentTarget,t)},this.addSource=function(t){-1===a.indexOf(t)&&(a.push(t),e.split(" ").forEach((function(e){t.addEventListener(e,n.onEvent)})),n.getDistances(),n.updateDisableHandlers())},this.addTarget=function(e){-1===o.indexOf(e)&&(o.push(e),n.getDistances(),s(n,e,e,0),n.updateDisableHandlers())},this.add=function(e){n.addSource(e),n.addTarget(e)},this.removeSource=function(t){var o=a.indexOf(t);-1!==o&&(a.splice(o,1),e.split(" ").forEach((function(e){t.removeEventListener(e,n.onEvent)})),n.getDistances(),n.fireEvent(t),n.updateDisableHandlers())},this.removeTarget=function(e){var t=o.indexOf(e);-1!==t&&(o.splice(t,1),n.getDistances(),s(n,e,e,0),n.updateDisableHandlers())},this.remove=function(e){n.removeTarget(e),n.removeSource(e)},this.getSourceElements=function(){return a},this.getTargetElements=function(){return o},this.displayImage=function(e,t,n){i=!0,y.cornerstone.displayImage(e,t,n),i=!1},this.setViewport=function(e,t){i=!0,y.cornerstone.setViewport(e,t),i=!1},this.updateDisableHandlers=function(){ah(a.concat(o)).forEach((function(e){e.removeEventListener(y.cornerstone.EVENTS.ELEMENT_DISABLED,l),e.addEventListener(y.cornerstone.EVENTS.ELEMENT_DISABLED,l)}))},this.destroy=function(){ah(a.concat(o)).forEach((function(e){n.remove(e)}))}},ih=function(e,t,n,a){if(t!==n&&a&&a.direction){var o=y.cornerstone,i=O(n,"stack").data[0],r=i.currentImageIdIndex+a.direction;if(r=In(r,0,i.imageIds.length-1),i.currentImageIdIndex!==r){var s=qs.getStartLoadHandler(n),l=qs.getEndLoadHandler(n),c=qs.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)}))}}},rh=function(e,t,n){if(n!==t){var a=y.cornerstone,o=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=en(r.imagePositionPatient),l=O(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=en(n.imagePositionPatient).distanceToSquared(s);o<c&&(c=o,u=t)}})),u!==l.currentImageIdIndex){var d=qs.getStartLoadHandler(n),h=qs.getEndLoadHandler(n),v=qs.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)}))}}}},sh=function(e,t,n,a,o){if(n!==t){var i=y.cornerstone,r=O(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=en(l.imagePositionPatient),u=O(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=en(n.imagePositionPatient),o=v.distanceToSquared(a);o<d&&(d=o,h=t)}})),h!==u.currentImageIdIndex&&-1!==h){var g=qs.getStartLoadHandler(n),f=qs.getEndLoadHandler(n),m=qs.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)}))}}}}},lh=function(e,t,n){if(n!==t){var a=y.cornerstone,o=O(t,"stack").data[0],i=O(n,"stack").data[0],r=o.currentImageIdIndex;if((r=In(r,0,i.imageIds.length-1))!==i.currentImageIdIndex){var s=qs.getStartLoadHandler(n),l=qs.getEndLoadHandler(n),c=qs.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)}))}}},ch=function(e,t,n){if(n!==t){var a=y.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))}},uh=function(e){return zd[e]};n.d(t,"AngleTool",(function(){return ci})),n.d(t,"ArrowAnnotateTool",(function(){return hi})),n.d(t,"BidirectionalTool",(function(){return Zi})),n.d(t,"CircleRoiTool",(function(){return ir})),n.d(t,"CobbAngleTool",(function(){return cr})),n.d(t,"EllipticalRoiTool",(function(){return dr})),n.d(t,"FreehandRoiTool",(function(){return Nr})),n.d(t,"LengthTool",(function(){return Vr})),n.d(t,"ProbeTool",(function(){return zr})),n.d(t,"RectangleRoiTool",(function(){return Gr})),n.d(t,"TextMarkerTool",(function(){return $r})),n.d(t,"BrushTool",(function(){return es})),n.d(t,"SphericalBrushTool",(function(){return as})),n.d(t,"RectangleScissorsTool",(function(){return Hs})),n.d(t,"FreehandScissorsTool",(function(){return As})),n.d(t,"CircleScissorsTool",(function(){return Rs})),n.d(t,"CorrectionScissorsTool",(function(){return Us})),n.d(t,"CrosshairsTool",(function(){return Gs})),n.d(t,"DoubleTapFitToWindowTool",(function(){return Ys})),n.d(t,"DragProbeTool",(function(){return Xs})),n.d(t,"EraserTool",(function(){return $s})),n.d(t,"FreehandRoiSculptorTool",(function(){return Qs})),n.d(t,"MagnifyTool",(function(){return tl})),n.d(t,"OverlayTool",(function(){return al})),n.d(t,"OrientationMarkersTool",(function(){return il})),n.d(t,"PanMultiTouchTool",(function(){return ul})),n.d(t,"PanTool",(function(){return dl})),n.d(t,"ReferenceLinesTool",(function(){return Tl})),n.d(t,"RotateTool",(function(){return Cl})),n.d(t,"RotateTouchTool",(function(){return Il})),n.d(t,"ScaleOverlayTool",(function(){return kl})),n.d(t,"StackScrollMouseWheelTool",(function(){return Hl})),n.d(t,"StackScrollMultiTouchTool",(function(){return Rl})),n.d(t,"StackScrollTool",(function(){return Ul})),n.d(t,"WwwcRegionTool",(function(){return Fl})),n.d(t,"WwwcTool",(function(){return jl})),n.d(t,"ZoomMouseWheelTool",(function(){return Yl})),n.d(t,"ZoomTool",(function(){return Zl})),n.d(t,"ZoomTouchPinchTool",(function(){return nc})),n.d(t,"init",(function(){return dd})),n.d(t,"stackPrefetch",(function(){return bd})),n.d(t,"stackRenderers",(function(){return Ed})),n.d(t,"playClip",(function(){return Id})),n.d(t,"stopClip",(function(){return Sd})),n.d(t,"store",(function(){return bt})),n.d(t,"getModule",(function(){return Tt})),n.d(t,"getToolForElement",(function(){return Ct})),n.d(t,"addTool",(function(){return Zu})),n.d(t,"addToolForElement",(function(){return Ku})),n.d(t,"removeTool",(function(){return _d})),n.d(t,"removeToolForElement",(function(){return kd})),n.d(t,"setToolOptions",(function(){return Od})),n.d(t,"setToolOptionsForElement",(function(){return Dd})),n.d(t,"isToolActiveForElement",(function(){return Ia})),n.d(t,"setToolActive",(function(){return Pt})),n.d(t,"setToolActiveForElement",(function(){return _t})),n.d(t,"setToolEnabled",(function(){return At})),n.d(t,"setToolEnabledForElement",(function(){return Lt})),n.d(t,"setToolDisabled",(function(){return Ot})),n.d(t,"setToolDisabledForElement",(function(){return Dt})),n.d(t,"setToolPassive",(function(){return Rt})),n.d(t,"setToolPassiveForElement",(function(){return Ht})),n.d(t,"addToolState",(function(){return D})),n.d(t,"getToolState",(function(){return O})),n.d(t,"removeToolState",(function(){return L})),n.d(t,"clearToolState",(function(){return A})),n.d(t,"setElementToolStateManager",(function(){return H})),n.d(t,"getElementToolStateManager",(function(){return P})),n.d(t,"textStyle",(function(){return pn})),n.d(t,"toolStyle",(function(){return Xt})),n.d(t,"toolColors",(function(){return un})),n.d(t,"toolCoordinates",(function(){return Ii})),n.d(t,"stackSpecificStateManager",(function(){return Rd})),n.d(t,"newStackSpecificToolStateManager",(function(){return Ld})),n.d(t,"addStackStateManager",(function(){return Hd})),n.d(t,"loadHandlerManager",(function(){return qs})),n.d(t,"newImageIdSpecificToolStateManager",(function(){return k})),n.d(t,"globalImageIdSpecificToolStateManager",(function(){return _})),n.d(t,"newFrameOfReferenceSpecificToolStateManager",(function(){return Ud})),n.d(t,"globalFrameOfReferenceSpecificToolStateManager",(function(){return Nd})),n.d(t,"forceEnabledElementResize",(function(){return cd})),n.d(t,"orientation",(function(){return ol})),n.d(t,"SaveAs",(function(){return Fd})),n.d(t,"enableLogger",(function(){return F})),n.d(t,"disableLogger",(function(){return B})),n.d(t,"register",(function(){return Jd})),n.d(t,"registerSome",(function(){return eh})),n.d(t,"wwwcSynchronizer",(function(){return th})),n.d(t,"updateImageSynchronizer",(function(){return nh})),n.d(t,"Synchronizer",(function(){return oh})),n.d(t,"stackScrollSynchronizer",(function(){return ih})),n.d(t,"stackImagePositionSynchronizer",(function(){return rh})),n.d(t,"stackImagePositionOffsetSynchronizer",(function(){return sh})),n.d(t,"stackImageIndexSynchronizer",(function(){return lh})),n.d(t,"panZoomSynchronizer",(function(){return ch})),n.d(t,"importInternal",(function(){return uh})),n.d(t,"external",(function(){return y})),n.d(t,"EVENTS",(function(){return b})),n.d(t,"version",(function(){return"6.0.6"})),n.d(t,"import",(function(){return uh}));var dh={AngleTool:ci,ArrowAnnotateTool:hi,BidirectionalTool:Zi,CircleRoiTool:ir,CobbAngleTool:cr,EllipticalRoiTool:dr,FreehandRoiTool:Nr,LengthTool:Vr,ProbeTool:zr,RectangleRoiTool:Gr,TextMarkerTool:$r,BrushTool:es,SphericalBrushTool:as,RectangleScissorsTool:Hs,FreehandScissorsTool:As,CircleScissorsTool:Rs,CorrectionScissorsTool:Us,CrosshairsTool:Gs,DoubleTapFitToWindowTool:Ys,DragProbeTool:Xs,EraserTool:$s,FreehandRoiSculptorTool:Qs,MagnifyTool:tl,OverlayTool:al,OrientationMarkersTool:il,PanMultiTouchTool:ul,PanTool:dl,ReferenceLinesTool:Tl,RotateTool:Cl,RotateTouchTool:Il,ScaleOverlayTool:kl,StackScrollMouseWheelTool:Hl,StackScrollMultiTouchTool:Rl,StackScrollTool:Ul,WwwcRegionTool:Fl,WwwcTool:jl,ZoomMouseWheelTool:Yl,ZoomTool:Zl,ZoomTouchPinchTool:nc,init:dd,stackPrefetch:bd,stackRenderers:Ed,playClip:Id,stopClip:Sd,store:bt,getModule:Tt,getToolForElement:Ct,addTool:Zu,addToolForElement:Ku,removeTool:_d,removeToolForElement:kd,setToolOptions:Od,setToolOptionsForElement:Dd,isToolActiveForElement:Ia,setToolActive:Pt,setToolActiveForElement:_t,setToolEnabled:At,setToolEnabledForElement:Lt,setToolDisabled:Ot,setToolDisabledForElement:Dt,setToolPassive:Rt,setToolPassiveForElement:Ht,addToolState:D,getToolState:O,removeToolState:L,clearToolState:A,setElementToolStateManager:H,getElementToolStateManager:P,textStyle:pn,toolStyle:Xt,toolColors:un,toolCoordinates:Ii,stackSpecificStateManager:Rd,newStackSpecificToolStateManager:Ld,addStackStateManager:Hd,loadHandlerManager:qs,newImageIdSpecificToolStateManager:k,globalImageIdSpecificToolStateManager:_,newFrameOfReferenceSpecificToolStateManager:Ud,globalFrameOfReferenceSpecificToolStateManager:Nd,forceEnabledElementResize:cd,orientation:ol,SaveAs:Fd,enableLogger:F,disableLogger:B,importInternal:uh,import:uh,register:Jd,registerSome:eh,wwwcSynchronizer:th,updateImageSynchronizer:nh,Synchronizer:oh,stackScrollSynchronizer:ih,stackImagePositionSynchronizer:rh,stackImagePositionOffsetSynchronizer:sh,stackImageIndexSynchronizer:lh,panZoomSynchronizer:ch,external:y,EVENTS:b,version:"6.0.6"};t.default=dh}])}));
//# sourceMappingURL=cornerstoneTools.min.js.map