@cornerstonejs/tools 0.36.3 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/eventListeners/mouse/mouseDoubleClickListener.js +5 -1
- package/dist/cjs/eventListeners/mouse/mouseDoubleClickListener.js.map +1 -1
- package/dist/cjs/eventListeners/mouse/mouseDownListener.d.ts +2 -0
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js +122 -31
- package/dist/cjs/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/cjs/init.js +3 -0
- package/dist/cjs/init.js.map +1 -1
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js +5 -0
- package/dist/cjs/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseDoubleClickListener.js +5 -1
- package/dist/esm/eventListeners/mouse/mouseDoubleClickListener.js.map +1 -1
- package/dist/esm/eventListeners/mouse/mouseDownListener.d.ts +2 -0
- package/dist/esm/eventListeners/mouse/mouseDownListener.js +119 -30
- package/dist/esm/eventListeners/mouse/mouseDownListener.js.map +1 -1
- package/dist/esm/init.js +3 -0
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js +5 -0
- package/dist/esm/tools/annotation/ArrowAnnotateTool.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
package/dist/umd/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/Math"),require("@kitware/vtk.js/Common/Core/MatrixBuilder")):"function"==typeof define&&define.amd?define(["@cornerstonejs/core","@kitware/vtk.js/Rendering/Core/ColorTransferFunction","@kitware/vtk.js/Common/DataModel/PiecewiseFunction","gl-matrix","@kitware/vtk.js/Common/Core/Math","@kitware/vtk.js/Common/Core/MatrixBuilder"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/Math"),require("@kitware/vtk.js/Common/Core/MatrixBuilder")):e.cornerstoneTools3D=t(e.cornerstone3D,e["@kitware/vtk.js/Rendering/Core/ColorTransferFunction"],e["@kitware/vtk.js/Common/DataModel/PiecewiseFunction"],e.window,e["@kitware/vtk.js/Common/Core/Math"],e["@kitware/vtk.js/Common/Core/MatrixBuilder"])}(self,(function(e,t,n,r,o,i){return function(){var a={132:function(e,t,n){var r=n(921).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,i=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},l=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),a=new D(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=C(a,n);if(l){if(l===f)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=v(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,a),i}function v(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var f={};function g(){}function h(){}function p(){}var m={};d(m,l,(function(){return this}));var w=Object.getPrototypeOf,y=w&&w(w(S([])));y&&y!==n&&i.call(y,l)&&(m=y);var E=p.prototype=g.prototype=Object.create(m);function I(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function n(o,a,l,c){var s=v(e[o],e,a);if("throw"!==s.type){var d=s.arg,u=d.value;return u&&"object"==r(u)&&i.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(u).then((function(e){d.value=e,l(d)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function 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 f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=v(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,f;var o=r.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,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function S(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(i.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:O}}function O(){return{value:void 0,done:!0}}return h.prototype=p,d(E,"constructor",p),d(p,"constructor",h),h.displayName=d(p,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,d(e,s,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},I(b.prototype),d(b.prototype,c,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(u(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},I(E),d(E,s,"Generator"),d(E,l,(function(){return this})),d(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=S,D.prototype={constructor:D,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(T),!e)for(var t in this)"t"===t.charAt(0)&&i.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,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;T(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},921:function(e){function t(n){return e.exports=t="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.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},162:function(e,t,n){var r=n(132)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},907:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",a="[object Boolean]",l="[object Date]",c="[object Function]",s="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",y="[object ArrayBuffer]",E="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",T="[object Int32Array]",D="[object Uint8Array]",S="[object Uint8ClampedArray]",O="[object Uint16Array]",x="[object Uint32Array]",M=/\w*$/,R=/^\[object .+?Constructor\]$/,N=/^(?:0|[1-9]\d*)$/,P={};P[i]=P["[object Array]"]=P[y]=P[E]=P[a]=P[l]=P[I]=P[b]=P[C]=P[_]=P[T]=P[d]=P[u]=P[v]=P[g]=P[h]=P[p]=P[m]=P[D]=P[S]=P[O]=P[x]=!0,P["[object Error]"]=P[c]=P[w]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=k||A||Function("return this")(),U=t&&!t.nodeType&&t,V=U&&e&&!e.nodeType&&e,B=V&&V.exports===U;function F(e,t){return e.set(t[0],t[1]),e}function j(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,i=e?e.length:0;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function H(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=Function.prototype,Z=Object.prototype,J=L["__core-js_shared__"],X=(K=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=$.toString,ee=Z.hasOwnProperty,te=Z.toString,ne=RegExp("^"+Q.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=B?L.Buffer:void 0,oe=L.Symbol,ie=L.Uint8Array,ae=q(Object.getPrototypeOf,Object),le=Object.create,ce=Z.propertyIsEnumerable,se=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=q(Object.keys,Object),fe=Le(L,"DataView"),ge=Le(L,"Map"),he=Le(L,"Promise"),pe=Le(L,"Set"),me=Le(L,"WeakMap"),we=Le(Object,"create"),ye=je(fe),Ee=je(ge),Ie=je(he),be=je(pe),Ce=je(me),_e=oe?oe.prototype:void 0,Te=_e?_e.valueOf:void 0;function De(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Oe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Se(e)}function Me(e,t,n){var r=e[t];ee.call(e,t)&&We(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Re(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}function Ne(e,t,n,r,o,f,w){var R;if(r&&(R=f?r(e,o,f,w):r(e)),void 0!==R)return R;if(!Ke(e))return e;var N=Ge(e);if(N){if(R=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,R)}else{var k=Ve(e),A=k==c||k==s;if(qe(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(k==v||k==i||A&&!f){if(G(e))return f?e:{};if(R=function(e){return"function"!=typeof e.constructor||Fe(e)?{}:Ke(t=ae(e))?le(t):{};var t}(A?{}:e),!t)return function(e,t){return ke(e,Ue(e),t)}(e,function(e,t){return e&&ke(t,Ye(t),e)}(R,e))}else{if(!P[k])return f?e:{};R=function(e,t,n,r){var o,i=e.constructor;switch(t){case y:return Pe(e);case a:case l:return new i(+e);case E:return function(e,t){var n=t?Pe(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case _:case T:case D:case S:case O:case x:return function(e,t){var n=t?Pe(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return W(t?n(H(e),!0):H(e),F,new e.constructor)}(e,r,n);case u:case p:return new i(e);case g:return function(e){var t=new e.constructor(e.source,M.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),j,new e.constructor)}(e,r,n);case m:return o=e,Te?Object(Te.call(o)):{}}}(e,k,Ne,t)}}w||(w=new xe);var L=w.get(e);if(L)return L;if(w.set(e,R),!N)var U=n?function(e){return function(e,t,n){var r=t(e);return Ge(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Ye,Ue)}(e):Ye(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(U||e,(function(o,i){U&&(o=e[i=o]),Me(R,i,Ne(o,t,n,r,i,e,w))})),R}function Pe(e){var t=new e.constructor(e.byteLength);return new ie(t).set(new ie(e)),t}function ke(e,t,n,r){n||(n={});for(var o=-1,i=t.length;++o<i;){var a=t[o],l=r?r(n[a],e[a],a,n,e):void 0;Me(n,a,void 0===l?e[a]:l)}return n}function Ae(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function Le(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ke(e)||(t=e,X&&X in t))&&(ze(e)||G(e)?ne:R).test(je(e));var t}(n)?n:void 0}De.prototype.clear=function(){this.__data__=we?we(null):{}},De.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},De.prototype.get=function(e){var t=this.__data__;if(we){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},De.prototype.has=function(e){var t=this.__data__;return we?void 0!==t[e]:ee.call(t,e)},De.prototype.set=function(e,t){return this.__data__[e]=we&&void 0===t?r:t,this},Se.prototype.clear=function(){this.__data__=[]},Se.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():se.call(t,n,1),0))},Se.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Se.prototype.has=function(e){return Re(this.__data__,e)>-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Oe.prototype.clear=function(){this.__data__={hash:new De,map:new(ge||Se),string:new De}},Oe.prototype.delete=function(e){return Ae(this,e).delete(e)},Oe.prototype.get=function(e){return Ae(this,e).get(e)},Oe.prototype.has=function(e){return Ae(this,e).has(e)},Oe.prototype.set=function(e,t){return Ae(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Se},xe.prototype.delete=function(e){return this.__data__.delete(e)},xe.prototype.get=function(e){return this.__data__.get(e)},xe.prototype.has=function(e){return this.__data__.has(e)},xe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new Oe(r)}return n.set(e,t),this};var Ue=de?q(de,Object):function(){return[]},Ve=function(e){return te.call(e)};function Be(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||N.test(e))&&e>-1&&e%1==0&&e<t}function Fe(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Z)}function je(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&Ve(new fe(new ArrayBuffer(1)))!=E||ge&&Ve(new ge)!=d||he&&Ve(he.resolve())!=f||pe&&Ve(new pe)!=h||me&&Ve(new me)!=w)&&(Ve=function(e){var t=te.call(e),n=t==v?e.constructor:void 0,r=n?je(n):void 0;if(r)switch(r){case ye:return E;case Ee:return d;case Ie:return f;case be:return h;case Ce:return w}return t});var Ge=Array.isArray;function He(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var qe=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==c||t==s}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return He(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&He(e)}(e)&&ee.call(e,"callee")&&(!ce.call(e,"callee")||te.call(e)==i)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var a in e)!t&&!ee.call(e,a)||o&&("length"==a||Be(a,r))||n.push(a);return n}(e):function(e){if(!Fe(e))return ve(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Ne(e,!0,!0)}},485:function(e,t,n){var r,o="__lodash_hash_undefined__",i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/,l=/^\./,c=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,d=/^\[object .+?Constructor\]$/,u="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,v="object"==typeof self&&self&&self.Object===Object&&self,f=u||v||Function("return this")(),g=Array.prototype,h=Function.prototype,p=Object.prototype,m=f["__core-js_shared__"],w=(r=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",y=h.toString,E=p.hasOwnProperty,I=p.toString,b=RegExp("^"+y.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),C=f.Symbol,_=g.splice,T=k(f,"Map"),D=k(Object,"create"),S=C?C.prototype:void 0,O=S?S.toString:void 0;function x(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function M(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function R(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function N(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function P(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function k(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){if(!B(e)||w&&w in e)return!1;var t=function(e){var t=B(e)?I.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?b:d;return t.test(function(e){if(null!=e){try{return y.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}x.prototype.clear=function(){this.__data__=D?D(null):{}},x.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},x.prototype.get=function(e){var t=this.__data__;if(D){var n=t[e];return n===o?void 0:n}return E.call(t,e)?t[e]:void 0},x.prototype.has=function(e){var t=this.__data__;return D?void 0!==t[e]:E.call(t,e)},x.prototype.set=function(e,t){return this.__data__[e]=D&&void 0===t?o:t,this},M.prototype.clear=function(){this.__data__=[]},M.prototype.delete=function(e){var t=this.__data__,n=N(t,e);return!(n<0||(n==t.length-1?t.pop():_.call(t,n,1),0))},M.prototype.get=function(e){var t=this.__data__,n=N(t,e);return n<0?void 0:t[n][1]},M.prototype.has=function(e){return N(this.__data__,e)>-1},M.prototype.set=function(e,t){var n=this.__data__,r=N(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new x,map:new(T||M),string:new x}},R.prototype.delete=function(e){return P(this,e).delete(e)},R.prototype.get=function(e){return P(this,e).get(e)},R.prototype.has=function(e){return P(this,e).has(e)},R.prototype.set=function(e,t){return P(this,e).set(e,t),this};var A=U((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(F(e))return O?O.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return l.test(e)&&n.push(""),e.replace(c,(function(e,t,r,o){n.push(r?o.replace(s,"$1"):t||e)})),n}));function L(e){if("string"==typeof e||F(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function U(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a),a};return n.cache=new(U.Cache||R),n}U.Cache=R;var V=Array.isArray;function B(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function F(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==I.call(e)}e.exports=function(e,t,n){var r=null==e?void 0:function(e,t){var n;t=function(e,t){if(V(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!F(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:V(n=t)?n:A(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[L(t[r++])];return r&&r==o?e:void 0}(e,t);return void 0===r?n:r}},807:function(e){"use strict";e.exports=o},847:function(e){"use strict";e.exports=i},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return a[e](n,n.exports,c),n.loaded=!0,n.exports}c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},c.d=function(e,t){for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var s={};return function(){"use strict";c.r(s),c.d(s,{AngleTool:function(){return dv},AnnotationTool:function(){return _l},ArrowAnnotateTool:function(){return cv},BaseTool:function(){return Fr},BidirectionalTool:function(){return ov},BrushTool:function(){return Dc},CONSTANTS:function(){return u},CircleScissorsTool:function(){return Cv},CrosshairsTool:function(){return Yu},DragProbeTool:function(){return bu},EllipticalROITool:function(){return tv},Enums:function(){return H},LengthTool:function(){return Vu},MIPJumpToClickTool:function(){return Au},MagnifyTool:function(){return fv},PaintFillTool:function(){return xv},PanTool:function(){return fu},PlanarFreehandROITool:function(){return Ld},ProbeTool:function(){return Eu},RectangleROIStartEndThresholdTool:function(){return Fl},RectangleROIThresholdTool:function(){return Ul},RectangleROITool:function(){return Al},RectangleScissorsTool:function(){return Iv},ReferenceCursors:function(){return hv},ReferenceLines:function(){return Ju},ReferenceLinesTool:function(){return Ju},SegmentationDisplayTool:function(){return Oo},SphereScissorsTool:function(){return Tv},StackScrollMouseWheelTool:function(){return Mu},StackScrollTool:function(){return Ou},Synchronizer:function(){return Qo},SynchronizerManager:function(){return a},ToolGroupManager:function(){return d},TrackballRotateTool:function(){return hu},Types:function(){return V},VolumeRotateMouseWheelTool:function(){return Pu},WindowLevelTool:function(){return _u},ZoomTool:function(){return Du},addTool:function(){return zo},annotation:function(){return F},cancelActiveManipulations:function(){return $o},cursors:function(){return U},destroy:function(){return Go},drawing:function(){return f},init:function(){return Wo},removeTool:function(){return Ko},segmentation:function(){return G},state:function(){return hn},synchronizers:function(){return v},utilities:function(){return L}});var e={};c.r(e),c.d(e,{checkAndDefineIsLockedProperty:function(){return ae},getAnnotationsLocked:function(){return re},getAnnotationsLockedCount:function(){return ie},isAnnotationLocked:function(){return oe},setAnnotationLocked:function(){return te},unlockAllAnnotations:function(){return ne}});var t={};c.r(t),c.d(t,{deselectAnnotation:function(){return pe},getAnnotationsSelected:function(){return me},getAnnotationsSelectedByToolName:function(){return we},getAnnotationsSelectedCount:function(){return Ee},isAnnotationSelected:function(){return ye},setAnnotationSelected:function(){return ge}});var n={};c.r(n),c.d(n,{checkAndDefineIsVisibleProperty:function(){return Oe},isAnnotationVisible:function(){return Se},setAnnotationVisibility:function(){return Te},showAllAnnotations:function(){return De}});var r={};c.r(r),c.d(r,{addAnnotation:function(){return Fe},getAnnotation:function(){return Ge},getAnnotations:function(){return Be},getDefaultAnnotationManager:function(){return Ue},getNumberOfAnnotations:function(){return je},getViewportSpecificAnnotationManager:function(){return Ve},removeAllAnnotations:function(){return He},removeAnnotation:function(){return We}});var o={};c.r(o),c.d(o,{triggerSegmentationDataModified:function(){return it},triggerSegmentationModified:function(){return ot},triggerSegmentationRemoved:function(){return tt},triggerSegmentationRepresentationModified:function(){return rt},triggerSegmentationRepresentationRemoved:function(){return nt}});var i={};c.r(i),c.d(i,{addColorLUT:function(){return Ot},addSegmentation:function(){return ut},addSegmentationRepresentation:function(){return Et},getColorLUT:function(){return St},getDefaultSegmentationStateManager:function(){return ct},getGlobalConfig:function(){return It},getSegmentSpecificRepresentationConfig:function(){return wt},getSegmentation:function(){return st},getSegmentationRepresentationByUID:function(){return Ct},getSegmentationRepresentationSpecificConfig:function(){return mt},getSegmentationRepresentations:function(){return vt},getSegmentations:function(){return dt},getToolGroupIdsWithSegmentation:function(){return ft},getToolGroupSpecificConfig:function(){return gt},removeColorLUT:function(){return Dt},removeSegmentation:function(){return _t},removeSegmentationRepresentation:function(){return Tt},setGlobalConfig:function(){return bt},setSegmentSpecificRepresentationConfig:function(){return yt},setSegmentationRepresentationSpecificConfig:function(){return pt},setToolGroupSpecificConfig:function(){return ht}});var a={};c.r(a),c.d(a,{createSynchronizer:function(){return ei},destroy:function(){return ti},destroySynchronizer:function(){return oi},getAllSynchronizers:function(){return ri},getSynchronizer:function(){return ni},getSynchronizersForViewport:function(){return Er}});var l={};c.r(l),c.d(l,{hideElementCursor:function(){return zi},initElementCursor:function(){return Gi},resetElementCursor:function(){return qi},setElementCursor:function(){return Hi}});var d={};c.r(d),c.d(d,{createToolGroup:function(){return ta},destroy:function(){return Fo},destroyToolGroup:function(){return Vo},getAllToolGroups:function(){return na},getToolGroup:function(){return Dr},getToolGroupForViewport:function(){return In}});var u={};c.r(u),c.d(u,{COLOR_LUT:function(){return ze}});var v={};c.r(v),c.d(v,{createCameraPositionSynchronizer:function(){return ia},createStackImageSynchronizer:function(){return _a},createVOISynchronizer:function(){return la},createZoomPanSynchronizer:function(){return da}});var f={};c.r(f),c.d(f,{draw:function(){return En},drawArrow:function(){return qa},drawCircle:function(){return Oa},drawEllipse:function(){return xa},drawHandles:function(){return Ma},drawLine:function(){return Ra},drawLinkedTextBox:function(){return Ga},drawPolyline:function(){return Pa},drawRect:function(){return Ha},drawTextBox:function(){return Va}});var g={};c.r(g),c.d(g,{getActiveSegmentationRepresentation:function(){return gc},setActiveSegmentationRepresentation:function(){return hc}});var h={};c.r(h),c.d(h,{getLockedSegments:function(){return wc},isSegmentIndexLocked:function(){return pc},setSegmentIndexLocked:function(){return mc}});var p={};c.r(p),c.d(p,{getActiveSegmentIndex:function(){return Ec},setActiveSegmentIndex:function(){return yc}});var m={};c.r(m),c.d(m,{addColorLUT:function(){return Ic},getColorForSegmentIndex:function(){return Cc},setColorForSegmentIndex:function(){return _c},setColorLUT:function(){return bc}});var w={};c.r(w),c.d(w,{createLabelmapVolumeForViewport:function(){return Zl},createMergedLabelmapForIndex:function(){return Kl},floodFill:function(){return tc},getBrushSizeForToolGroup:function(){return xc},getBrushThresholdForToolGroup:function(){return Rc},getDefaultRepresentationConfig:function(){return $l},isValidRepresentationConfig:function(){return Yl},rectangleROIThresholdVolumeByRange:function(){return zl},setBrushSizeForToolGroup:function(){return Oc},setBrushThresholdForToolGroup:function(){return Mc},thresholdVolumeByRange:function(){return il},triggerSegmentationRender:function(){return No}});var y={};c.r(y),c.d(y,{getTextBoxCoordsCanvas:function(){return xl}});var E={};c.r(E),c.d(E,{findClosestPoint:function(){return Fa},liangBarksyClip:function(){return kc}});var I={};c.r(I),c.d(I,{getCanvasEllipseCorners:function(){return oc},pointInEllipse:function(){return ic}});var b={};c.r(b),c.d(b,{distanceToPoint:function(){return Sl},distanceToPointSquared:function(){return Dl},intersectLine:function(){return Lc}});var C={};c.r(C),c.d(C,{distanceToPoint:function(){return Ol}});var _={};c.r(_),c.d(_,{addCanvasPointsToArray:function(){return qc},calculateAreaOfPoints:function(){return Kc},getClosestIntersectionWithPolyline:function(){return Vc},getFirstIntersectionWithPolyline:function(){return Uc},getSubPixelSpacingAndXYDirections:function(){return Gc},pointCanProjectOnLine:function(){return zc},pointsAreWithinCloseContourProximity:function(){return Hc}});var T={};c.r(T),c.d(T,{distanceToPoint:function(){return Yc}});var D={};c.r(D),c.d(D,{ellipse:function(){return I},lineSegment:function(){return b},point:function(){return T},polyline:function(){return _},rectangle:function(){return C},vec2:function(){return E}});var S={};c.r(S),c.d(S,{default:function(){return es},filterAnnotationsForDisplay:function(){return ml},filterAnnotationsWithinSlice:function(){return pl},getPointInLineOfSightWithCriteria:function(){return Jc},getWorldWidthAndHeightFromCorners:function(){return Ml}});var O={};c.r(O),c.d(O,{filterViewportsWithFrameOfReferenceUID:function(){return al},filterViewportsWithParallelNormals:function(){return vl},filterViewportsWithToolEnabled:function(){return dl},getViewportIdsWithToolToRender:function(){return fl}});var x={};c.r(x),c.d(x,{getOrientationStringLPS:function(){return ts},invertOrientationStringLPS:function(){return ns}});var M={};c.r(M),c.d(M,{Events:function(){return rs},addToolState:function(){return is},getToolState:function(){return as},playClip:function(){return cs},stopClip:function(){return ss}});var R={};c.r(R),c.d(R,{extend2DBoundingBoxInViewAxis:function(){return jl},getBoundingBoxAroundShape:function(){return nl}});var N={};c.r(N),c.d(N,{default:function(){return Vd},interpolateAnnotation:function(){return Ud}});var P={};c.r(P),c.d(P,{getBoundsIJKFromRectangleAnnotations:function(){return Wl}});var k={};c.r(k),c.d(k,{disable:function(){return Zd},enable:function(){return $d},getConfiguration:function(){return Jd},setConfiguration:function(){return Xd}});var A={};c.r(A),c.d(A,{isViewportPreScaled:function(){return Nl},jumpToSlice:function(){return wa},jumpToWorld:function(){return Qd}});var L={};c.r(L),c.d(L,{boundingBox:function(){return R},calibrateImageSpacing:function(){return el},cine:function(){return M},clip:function(){return va},debounce:function(){return Ja},deepMerge:function(){return Vr},drawing:function(){return y},getAnnotationNearPoint:function(){return Ka},getAnnotationNearPointOnEnabledElement:function(){return Ya},isObject:function(){return Za},jumpToSlice:function(){return wa},math:function(){return D},orientation:function(){return x},planar:function(){return S},planarFreehandROITool:function(){return N},pointInShapeCallback:function(){return tl},pointInSurroundingSphereCallback:function(){return ol},rectangleROITool:function(){return P},scroll:function(){return fa},segmentation:function(){return w},stackPrefetch:function(){return k},throttle:function(){return Xa},triggerAnnotationRender:function(){return xn},triggerAnnotationRenderForViewportIds:function(){return br},triggerEvent:function(){return z.triggerEvent},viewport:function(){return A},viewportFilters:function(){return O}});var U={};c.r(U),c.d(U,{CursorNames:function(){return tu},CursorSVG:function(){return _i},ImageMouseCursor:function(){return pi},MouseCursor:function(){return si},SVGMouseCursor:function(){return Li},elementCursor:function(){return l},registerCursor:function(){return Di},setCursorForElement:function(){return eu}});var V={};c.r(V);var B={};c.r(B),c.d(B,{getFont:function(){return nu},getState:function(){return wl},style:function(){return Ri}});var F={};c.r(F),c.d(F,{FrameOfReferenceSpecificAnnotationManager:function(){return Ae},config:function(){return B},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var j={};c.r(j),c.d(j,{getSegmentationVisibility:function(){return du},setSegmentationVisibility:function(){return su},setVisibilityForSegmentIndex:function(){return uu}});var W={};c.r(W),c.d(W,{color:function(){return m},getGlobalConfig:function(){return Jr},getGlobalRepresentationConfig:function(){return Qr},getSegmentSpecificConfig:function(){return io},getSegmentationRepresentationSpecificConfig:function(){return ro},getToolGroupSpecificConfig:function(){return to},setGlobalConfig:function(){return Xr},setGlobalRepresentationConfig:function(){return eo},setSegmentSpecificConfig:function(){return ao},setSegmentationRepresentationSpecificConfig:function(){return oo},setToolGroupSpecificConfig:function(){return no},visibility:function(){return j}});var G={};c.r(G),c.d(G,{activeSegmentation:function(){return g},addSegmentationRepresentations:function(){return cu},addSegmentations:function(){return ou},config:function(){return W},removeSegmentationsFromToolGroup:function(){return Uo},segmentIndex:function(){return p},segmentLocking:function(){return h},state:function(){return i},triggerSegmentationEvents:function(){return o}});var H={};c.r(H),c.d(H,{AnnotationStyleStates:function(){return hi},Events:function(){return K},KeyboardBindings:function(){return Gn},MouseBindings:function(){return Wn},SegmentationRepresentations:function(){return $e},ToolModes:function(){return vn}});var q,z=c(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_VISIBILITY_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_VISIBILITY_CHANGE",e.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",e.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",e.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",e.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",e.SEGMENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",e.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",e.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",e.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",e.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",e.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",e.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",e.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",e.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",e.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",e.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",e.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",e.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL"}(q||(q={}));var K=q;function Y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z(e,t,n){return t&&$(e.prototype,t),n&&$(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var X=c(907),Q=c.n(X),ee=new Set;function te(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=le();e&&(t?ce(e,ee,n):se(e,ee,n)),de(n,ee)}function ne(){var e=le();!function(e,t){e.forEach((function(n){se(n,e,t)}))}(ee,e),de(e,ee)}function re(){return Array.from(ee)}function oe(e){return ee.has(e)}function ie(){return ee.size}function ae(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==ue||t.get!==ve):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:ue,get:ve}),te(e,t)}}function le(){return Object.freeze({added:[],removed:[],locked:[]})}function ce(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function se(e,t,n){t.delete(e)&&n.removed.push(e)}function de(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_LOCK_CHANGE,e))}function ue(e){te(this,e)}function ve(){return oe(this)}var fe=new Set;function ge(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?he(e,n):pe(e)}function he(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ie();t||be(fe,n),e&&!fe.has(e)&&(fe.add(e),n.added.push(e)),Ce(n,fe)}function pe(e){var t=Ie();e?fe.delete(e)&&t.removed.push(e):be(fe,t),Ce(t,fe)}function me(){return Array.from(fe)}function we(e){return me().filter((function(t){return Ge(t).metadata.toolName===e}))}function ye(e){return fe.has(e)}function Ee(){return fe.size}function Ie(){return Object.freeze({added:[],removed:[],selection:[]})}function be(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function Ce(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_SELECTION_CHANGE,e))}var _e=new Set;function Te(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=xe();e&&(t?Me(e,_e,n):Re(e,_e,n)),Ne(n)}function De(){var e=xe();_e.forEach((function(t){Me(t,_e,e)})),Ne(e)}function Se(e){if(Ge(e))return!_e.has(e)}function Oe(e){if(e){var t,n=null===(t=e.isVisible)||void 0===t||t;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isVisible");return t?t.configurable&&(t.set!==Pe||t.get!==ke):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Pe,get:ke}),Te(e.annotationUID,n)}}function xe(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Me(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function Re(e,t,n){t.has(e)||(t.add(e),ye(e)&&pe(e),n.lastHidden.push(e))}function Ne(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(_e.forEach((function(t){e.hidden.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_VISIBILITY_CHANGE,e))}function Pe(e){Te(this.annotationUID,e)}function ke(){return Se(this.annotationUID)}var Ae=function(){function e(t){var n=this;Y(this,e),J(this,"annotations",void 0),J(this,"uid",void 0),J(this,"_imageVolumeModifiedHandler",(function(e){var t=e.detail.FrameOfReferenceUID,r=n.annotations[t];r&&Object.keys(r).forEach((function(e){r[e].forEach((function(e){void 0!==e.invalidated&&(e.invalidated=!0)}))}))})),J(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),J(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),J(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),J(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index;return o[i]}})),J(this,"getNumberOfAnnotationsInFrameOfReference",(function(e,t){var r=n.getFrameOfReferenceAnnotations(t);if(!r)return 0;var o=r[e];return o?o.length:0})),J(this,"getNumberOfAnnotations",(function(e,t){return t?n.getNumberOfAnnotationsInFrameOfReference(e,t):n.getFramesOfReference().reduce((function(t,r){return t+n.getNumberOfAnnotationsInFrameOfReference(e,r)}),0)})),J(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,i=n.annotations,a=i[r];a||(i[r]={},a=i[r]);var l=a[o];l||(a[o]=[],l=a[o]),l.push(e),ae(e),Oe(e)})),J(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index,a=o[0].metadata;if(o.splice(i,1),!o.length){var l=a.toolName;delete n.annotations[a.FrameOfReferenceUID][l]}}})),J(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var i=o[t];return Q()(i)}if(e){var a=r[e];return Q()(a)}return Q()(r)})),J(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var i=o[t];i||(o[t]={},i=o[t]),i[r]=e}else t?o[t]=e:n.annotations=Q()(e)})),J(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=z.utilities.uuidv4()),this.annotations={},this.uid=t,z.eventTarget.addEventListener(z.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return Z(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,i=this.annotations,a=(n=o?[o]:Object.keys(i)).length,l=0;l<a;l++)for(var c,s=i[n[l]],d=(c=r?[r]:Object.keys(s)).length,u=0;u<d;u++){var v=s[c[u]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),Le=new Ae("DEFAULT");function Ue(){return Le}function Ve(e){return Le}function Be(e,t){var n=(0,z.getEnabledElement)(e),r=Ve(),o=n.FrameOfReferenceUID;return r.get(o,t)}function Fe(e,t){var n=Ve();void 0===t.annotationUID&&(t.annotationUID=z.utilities.uuidv4()),n.addAnnotation(t);var r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.viewportId,a=K.ANNOTATION_ADDED,l={annotation:t,viewportId:i,renderingEngineId:o.id};return(0,z.triggerEvent)(z.eventTarget,a,l),t.annotationUID}function je(e,t){return Ue().getNumberOfAnnotations(e,t)}function We(e,t){var n=Ue();t&&(n=Ve());var r=n.getAnnotation(e);if(r){n.removeAnnotation(e);var o=K.ANNOTATION_REMOVED,i={annotation:r,annotationManagerUID:n.uid};(0,z.triggerEvent)(z.eventTarget,o,i)}}function Ge(e,t){return Ve().getAnnotation(e)}function He(e){var t=Ue();e&&(t=Ve()),t.removeAllAnnotations()}var qe,ze=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]],Ke={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.7,fillAlphaInactive:.65,outlineOpacity:1,outlineOpacityInactive:.85},Ye=function(){return Ke};!function(e){e.Labelmap="LABELMAP"}(qe||(qe={}));var $e=qe;function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Xe=Ye(),Qe={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:J({},$e.Labelmap,Xe)},toolGroups:{}},et=new(function(){function e(t){Y(this,e),J(this,"state",void 0),J(this,"uid",void 0),t||(t=z.utilities.uuidv4()),this.state=Q()(Qe),this.uid=t}return Z(e,[{key:"getState",value:function(){return this.state}},{key:"getToolGroups",value:function(){return Object.keys(this.state.toolGroups)}},{key:"getColorLUT",value:function(e){return this.state.colorLUT[e]}},{key:"resetState",value:function(){this.state=Q()(Qe)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentation",value:function(e){this.state.segmentations=this.state.segmentations.filter((function(t){return t.segmentationId!==e}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"getSegmentationRepresentationSpecificConfig",value:function(e,t){var n=this.getSegmentationRepresentationByUID(e,t);if(n)return n.segmentationRepresentationSpecificConfig}},{key:"setSegmentationRepresentationSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentationRepresentationSpecificConfig=n)}},{key:"getSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);if(r)return r.segmentSpecificConfig[n]}},{key:"setSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentSpecificConfig=n)}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=Je(Je({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"removeColorLUT",value:function(e){delete this.state.colorLUT[e]}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(ze,0)}}]),e}())("DEFAULT");function tt(e){var t={segmentationId:e};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REMOVED,t)}function nt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_REMOVED,n)}function rt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_MODIFIED,n):(vt(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function ot(e){(e?[e]:dt().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_MODIFIED,t)}))}function it(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_DATA_MODIFIED,n)}function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ct(){return et}function st(e){return ct().getSegmentation(e)}function dt(){return ct().getState().segmentations}function ut(e,t){var n=ct(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},label:null,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:J({},n.type,lt({},n.data))}}(e);n.addSegmentation(r),t||ot(r.segmentationId)}function vt(e){return ct().getSegmentationRepresentations(e)}function ft(e){var t=ct(),n=t.getState(),r=Object.keys(n.toolGroups),o=[];return r.forEach((function(n){t.getSegmentationRepresentations(n).forEach((function(t){t.segmentationId===e&&o.push(n)}))})),o}function gt(e){return ct().getToolGroupSpecificConfig(e)}function ht(e,t,n){ct().setSegmentationRepresentationConfig(e,t),n||rt(e)}function pt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ct();o.setSegmentationRepresentationSpecificConfig(e,t,n),r||rt(e,t)}function mt(e,t){return ct().getSegmentationRepresentationSpecificConfig(e,t)}function wt(e,t,n){return ct().getSegmentSpecificConfig(e,t,n)}function yt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ct();o.setSegmentSpecificConfig(e,t,n),r||rt(e,t)}function Et(e,t,n){ct().addSegmentationRepresentation(e,t),n||rt(e,t.segmentationRepresentationUID)}function It(){return ct().getGlobalConfig()}function bt(e,t){ct().setGlobalConfig(e),t||ot()}function Ct(e,t){return ct().getSegmentationRepresentationByUID(e,t)}function _t(e){ct().removeSegmentation(e),tt(e)}function Tt(e,t){ct().removeSegmentationRepresentation(e,t),nt(e,t)}function Dt(e){ct().removeColorLUT(e)}function St(e){return ct().getColorLUT(e)}function Ot(e,t){ct().addColorLUT(e,t)}var xt=Ye();function Mt(e,t){var n=t||e.currentTarget,r=(0,z.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),i=function(e){return[e.pageX,e.pageY]}(e),a=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,i);return{page:i,client:o,canvas:a,world:r.canvasToWorld(a)}}bt({renderInactiveSegmentations:!0,representations:J({},$e.Labelmap,xt)},!0);var Rt=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,i=Mt(e,t),a={event:e,eventName:K.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:i,lastPoints:i,currentPoints:i,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};(0,z.triggerEvent)(t,K.MOUSE_DOUBLE_CLICK,a)},Nt=K.MOUSE_MOVE,Pt=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Mt(e),eventName:Nt,event:e};(0,z.triggerEvent)(t,Nt,r)},kt=K.MOUSE_DOWN,At=K.MOUSE_DOWN_ACTIVATE,Lt=K.MOUSE_CLICK,Ut=K.MOUSE_UP,Vt=K.MOUSE_DRAG,Bt={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}},Ft={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};function jt(e){var t=Mt(e,Ft.element),n=function(e,t){var n=(0,z.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}(Ft.element,Ft.lastPoints),r=qt(t,n),o={event:e,eventName:Vt,mouseButton:Ft.mouseButton,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},element:Ft.element,startPoints:Ht(Ft.startPoints),lastPoints:Ht(n),currentPoints:t,deltaPoints:r};(0,z.triggerEvent)(Ft.element,Vt,o),Ft.lastPoints=Ht(t)}function Wt(e){clearTimeout(Ft.preventClickTimeout);var t=Ft.isClickEvent?Lt:Ut,n=Mt(e,Ft.element),r=qt(n,Ft.lastPoints),o={event:e,eventName:t,mouseButton:Ft.mouseButton,element:Ft.element,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},startPoints:Ht(Ft.startPoints),lastPoints:Ht(Ft.lastPoints),currentPoints:n,deltaPoints:r};(0,z.triggerEvent)(o.element,t,o),document.removeEventListener("mousemove",jt),document.removeEventListener("mouseup",Wt),Ft.element.addEventListener("mousemove",Pt),Ft=JSON.parse(JSON.stringify(Bt))}function Gt(){Ft.isClickEvent=!1}function Ht(e){return JSON.parse(JSON.stringify(e))}function qt(e,t){return{page:zt(e.page,t.page),client:zt(e.client,t.client),canvas:zt(e.canvas,t.canvas),world:(n=e.world,r=t.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])};var n,r}function zt(e,t){return[e[0]-t[0],e[1]-t[1]]}var Kt=function(e){Ft.element=e.currentTarget,Ft.mouseButton=e.button;var t=(0,z.getEnabledElement)(Ft.element),n=t.renderingEngineId,r=t.viewportId;Ft.renderingEngineId=n,Ft.viewportId=r,Ft.preventClickTimeout=setTimeout(Gt,Ft.clickDelay),Ft.element.removeEventListener("mousemove",Pt);var o=Mt(e,Ft.element),i=qt(o,o),a={event:e,eventName:kt,element:Ft.element,mouseButton:Ft.mouseButton,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},startPoints:o,lastPoints:o,currentPoints:o,deltaPoints:i};Ft.startPoints=Ht(a.startPoints),Ft.lastPoints=Ht(a.lastPoints),(0,z.triggerEvent)(a.element,kt,a)&&(0,z.triggerEvent)(a.element,At,a),document.addEventListener("mousemove",jt),document.addEventListener("mouseup",Wt)};function Yt(e){e.removeEventListener("dblclick",Rt),e.removeEventListener("mousedown",Kt),e.removeEventListener("mousemove",Pt)}var $t={enable:function(e){Yt(e),e.addEventListener("dblclick",Rt),e.addEventListener("mousedown",Kt),e.addEventListener("mousemove",Pt)},disable:Yt},Zt=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var i=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),a=i.spinX,l=i.spinY,c=i.pixelX,s=i.pixelY,d=l<0?-1:1,u={event:e,eventName:K.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:a,spinY:l,pixelX:c,pixelY:s,direction:d},points:Mt(e)};(0,z.triggerEvent)(t,K.MOUSE_WHEEL,u)}};function Jt(e){e.removeEventListener("wheel",Zt)}var Xt={enable:function(e){Jt(e),e.addEventListener("wheel",Zt,{passive:!1})},disable:Jt},Qt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},en={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function tn(e){en.element=e.currentTarget;var t=(0,z.getEnabledElement)(en.element),n=t.renderingEngineId,r=t.viewportId;en.renderingEngineId=n,en.viewportId=r,en.key=e.key,en.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:en.renderingEngineId,viewportId:en.viewportId,element:en.element,key:en.key,keyCode:en.keyCode};(0,z.triggerEvent)(o.element,K.KEY_DOWN,o),document.addEventListener("keyup",nn),en.element.removeEventListener("keydown",tn)}function nn(e){var t={renderingEngineId:en.renderingEngineId,viewportId:en.viewportId,element:en.element,key:en.key,keyCode:en.keyCode};document.removeEventListener("keyup",nn),en.element.addEventListener("keydown",tn),en=Q()(Qt),(0,z.triggerEvent)(t.element,K.KEY_UP,t)}var rn=tn;function on(e){e.removeEventListener("keydown",rn)}var an,ln,cn={enable:function(e){on(e),e.addEventListener("keydown",rn)},disable:on,getModifierKey:function(){return en.keyCode}};function sn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function dn(e,t){if(e){if("string"==typeof e)return sn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?sn(e,t):void 0}}function un(e){return function(e){if(Array.isArray(e))return sn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||dn(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(ln=an||(an={})).Active="Active",ln.Passive="Passive",ln.Enabled="Enabled",ln.Disabled="Disabled";var vn=an,fn={},gn={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:fn,enabledElements:[],handleRadius:6},hn={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:fn,enabledElements:[],handleRadius:6};function pn(e,t){if(hn.svgNodeCache[e])return hn.svgNodeCache[e][t]?hn.svgNodeCache[e][t].domRef:void 0}function mn(e,t,n,r){if(!hn.svgNodeCache[t])return null;hn.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function wn(e,t){hn.svgNodeCache[e]&&hn.svgNodeCache[e][t]&&(hn.svgNodeCache[e][t].touched=!0)}function yn(e,t){hn.svgNodeCache[t]&&Object.keys(hn.svgNodeCache[t]).forEach((function(n){var r=hn.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete hn.svgNodeCache[t][n])}))}var En=function(e,t){var n=function(e){var t=(0,z.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),i=function(e){var t=".".concat("viewport-element");return e.querySelector(t).querySelector(".svg-layer")}(e);return Object.keys(hn.svgNodeCache[o]).forEach((function(e){hn.svgNodeCache[o][e].touched=!1})),{svgLayerElement:i,svgNodeCacheForCanvas:hn.svgNodeCache,getSvgNode:pn.bind(this,o),appendNode:mn.bind(this,i,o),setNodeTouched:wn.bind(this,o),clearUntouched:yn.bind(this,i,o)}}(e);t(n),n.clearUntouched()},In=function(e,t){var n=hn.toolGroups.filter((function(n){return n.viewportsInfo.some((function(n){return n.renderingEngineId===t&&(!n.viewportId||n.viewportId===e)}))}));if(n.length){if(n.length>1)throw new Error("Multiple tool groups found for renderingEngineId: ".concat(t," and viewportId: ").concat(e,". You should only\n have one tool group per viewport in a renderingEngine."));return n[0]}};function bn(e,t){var n=(0,z.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,i=In(o,r);if(!i)return[];for(var a=[],l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],d=i.toolOptions[s];if(d&&t.includes(d.mode)){var u=i.getToolInstance(s);a.push(u)}}return a}function Cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var _n=vn.Active,Tn=vn.Passive,Dn=vn.Enabled,Sn=function(){function e(){var t=this;Y(this,e),J(this,"hasBeenDestroyed",void 0),J(this,"_needsRender",new Set),J(this,"_animationFrameSet",!1),J(this,"_animationFrameHandle",null),J(this,"_viewportElements",void 0),J(this,"_renderFlaggedViewports",(function(){t._throwIfDestroyed();for(var e=Array.from(t._viewportElements.values()),n=0;n<e.length;n++){var r=e[n];if(t._needsRender.has(r)&&(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size))return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}})),this._viewportElements=new Map}return Z(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e,t){this._viewportElements.delete(e),this._needsRender.delete(t),this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setAllViewportsToBeRenderedNextFrame",value:function(){var e=this;un(this._viewportElements.values()).forEach((function(t){e._needsRender.add(t)})),this._renderFlaggedViewports()}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this,n=un(this._viewportElements.values());e.forEach((function(e){-1!==n.indexOf(e)&&t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,z.getEnabledElement)(e);if(t)if((0,z.getRenderingEngine)(t.renderingEngineId)){var n=bn(e,[_n,Tn,Dn]),r=t.renderingEngineId,o=t.viewportId,i={element:e,renderingEngineId:r,viewportId:o};En(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,z.triggerEvent)(e,K.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cn(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null,this._setAllViewportsToBeRenderedNextFrame()}}]),e}(),On=new Sn,xn=function(e){On.renderViewport(e)},Mn=function(e){xn(e.detail.element)};function Rn(e,t,n){var r=e.detail,o=r.renderingEngineId,i=r.viewportId,a=In(i,o);if(!a)return[];for(var l=[],c=Object.keys(a.toolOptions),s=0;s<c.length;s++){var d=c[s],u=a.toolOptions[d],v=null!=n&&u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===n}));if(t.includes(u.mode)&&(!n||v)){var f=a.getToolInstance(d);l.push(f)}}return l}var Nn=vn.Active,Pn=vn.Passive,kn=vn.Enabled,An=function(e){Rn(e,[Nn,Pn,kn]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Ln=vn.Active,Un=vn.Passive,Vn=vn.Enabled,Bn=function(e){Rn(e,[Ln,Un,Vn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},Fn=vn.Active;function jn(e,t,n){if(hn.isInteractingWithTool)return!1;var r,o=n.detail,i=o.renderingEngineId,a=o.viewportId,l=In(a,i);if(!l)return!1;for(var c=Object.keys(l.toolOptions),s=0;s<c.length;s++){var d=c[s],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===Fn&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var Wn,Gn,Hn=jn.bind(null,"Mouse","mouseClickCallback");function qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function zn(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var i=Be(e,o.constructor.toolName);i&&("function"==typeof o.filterInteractableAnnotationsForElement&&(i=o.filterInteractableAnnotationsForElement(e,i)),i.length>0&&n.push({tool:o,annotations:i}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function Kn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Yn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Yn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function Yn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}(Wn||(Wn={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=17]="Ctrl",e[e.Alt=18]="Alt",e[e.Meta=91]="Meta",e[e.ShiftCtrl=1617]="ShiftCtrl",e[e.ShiftAlt=1618]="ShiftAlt",e[e.ShiftMeta=1691]="ShiftMeta",e[e.CtrlAlt=1718]="CtrlAlt",e[e.CtrlMeta=1791]="CtrlMeta",e[e.AltMeta=1891]="AltMeta"}(Gn||(Gn={}));var $n=vn.Active;function Zn(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,i=cn.getModifierKey()||function(e){return e.shiftKey?e.ctrlKey?Gn.ShiftCtrl:e.altKey?Gn.ShiftAlt:e.metaKey?Gn.ShiftMeta:Gn.Shift:e.ctrlKey?e.altKey?Gn.CtrlAlt:e.metaKey?Gn.CtrlMeta:Gn.Ctrl:e.altKey?e.metaKey&&Gn.AltMeta||Gn.Alt:void(e.metaKey&&Gn.Meta)}(o),a=In(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],d=a.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:Wn.Primary)&&e.modifierKey===i}));if(d.mode===$n&&u)return a.getToolInstance(s)}}var Jn=vn.Active,Xn=vn.Passive;function Qn(e){if(!hn.isInteractingWithTool){var t=Zn(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Rn(e,[Jn],e.detail.event.buttons),o=n?Rn(e,[Xn]):void 0,i=[].concat(un(r||[]),un(o||[])),a=e.detail,l=a.element,c=zn(l,i),s=a.currentPoints.canvas,d=function(e,t,n){var r=[];return t.forEach((function(t){var o,i=t.tool,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return qn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(t.annotations);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!l.isLocked&&l.isVisible){var c=i.getHandleNearImagePoint(e,l,n,6);if(c){r.push({tool:i,annotation:l,handle:c});break}}}}catch(e){a.e(e)}finally{a.f()}})),r}(l,c,s),u=!!e.detail.event.shiftKey;if(d.length>0){var v=er(d),f=v.tool,g=v.annotation,h=v.handle;return tr(g.annotationUID,u),void f.handleSelectedCallback(e,g,h,"Mouse")}var p=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=6,i=[];return t.forEach((function(t){var a,l=t.tool,c=Kn(t.annotations);try{for(c.s();!(a=c.n()).done;){var s=a.value;if(!s.isLocked&&s.isVisible&&l.isPointNearTool(e,s,n,o,r)){i.push({tool:l,annotation:s});break}}}catch(e){c.e(e)}finally{c.f()}})),i}(l,c,s,"mouse");if(p.length>0){var m=er(p),w=m.tool,y=m.annotation;return tr(y.annotationUID,u),void w.toolSelectedCallback(e,y,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function er(e){return e.length>1&&e.find((function(e){return!oe(e.annotation)&&Se(e.annotation.annotationUID)}))||e[0]}function tr(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(ye(e))ge(e,!1);else{var n=!0;ge(e,!0,n)}else{var r=!1;ge(e,!0,r)}}function nr(e){if(!hn.isInteractingWithTool){var t=Zn(e);t&&(hn.isMultiPartToolActive||t.addNewAnnotation&&ge(t.addNewAnnotation(e,"mouse").annotationUID))}}var rr=jn.bind(null,"Mouse","doubleClickCallback");function or(e){if(!hn.isInteractingWithTool){var t=Zn(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function ir(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ar=vn.Active,lr=vn.Passive;function cr(e){if(!hn.isInteractingWithTool&&!hn.isMultiPartToolActive){var t,n=Rn(e,[ar,lr]),r=e.detail.element,o=zn(r,n),i=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),a=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ir(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ir(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(l.s();!(t=l.n()).done;){var c=t.value,s=c.tool,d=c.annotations;"function"==typeof s.mouseMoveCallback&&(a=s.mouseMoveCallback(e,d)||a)}}catch(e){l.e(e)}finally{l.f()}i.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===a&&xn(r)}}var sr=jn.bind(null,"Mouse","mouseUpCallback"),dr=jn.bind(null,"MouseWheel","mouseWheelCallback"),ur=function(e){e.addEventListener(K.MOUSE_CLICK,Hn),e.addEventListener(K.MOUSE_DOWN,Qn),e.addEventListener(K.MOUSE_DOWN_ACTIVATE,nr),e.addEventListener(K.MOUSE_DOUBLE_CLICK,rr),e.addEventListener(K.MOUSE_DRAG,or),e.addEventListener(K.MOUSE_MOVE,cr),e.addEventListener(K.MOUSE_UP,sr),e.addEventListener(K.MOUSE_WHEEL,dr)},vr=function(e){e.removeEventListener(K.MOUSE_CLICK,Hn),e.removeEventListener(K.MOUSE_DOWN,Qn),e.removeEventListener(K.MOUSE_DOWN_ACTIVATE,nr),e.removeEventListener(K.MOUSE_DOUBLE_CLICK,rr),e.removeEventListener(K.MOUSE_DRAG,or),e.removeEventListener(K.MOUSE_MOVE,cr),e.removeEventListener(K.MOUSE_UP,sr),e.removeEventListener(K.MOUSE_WHEEL,dr)},fr=vn.Active;function gr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=Ft.mouseButton,i=cn.getModifierKey(),a=In(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],d=a.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:Wn.Primary)&&e.modifierKey===i}));if(d.mode===fr&&u)return a.getToolInstance(s)}}function hr(e){var t=gr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=In(o,r),a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}function pr(e){var t=gr(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=In(o,r);en.keyCode=void 0;var a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}var mr=function(e){e.addEventListener(K.KEY_DOWN,hr),e.addEventListener(K.KEY_UP,pr)},wr=function(e){e.removeEventListener(K.KEY_DOWN,hr),e.removeEventListener(K.KEY_UP,pr)};function yr(e){var t,n=e.detail,r=n.element,o=n.viewportId,i=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),i=document.createElementNS(e,"feColorMatrix"),a=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("filterUnits","userSpaceOnUse"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),i.setAttribute("result","matrixOut"),i.setAttribute("in","offOut"),i.setAttribute("in2","matrix"),i.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),a.setAttribute("in","SourceGraphic"),a.setAttribute("in2","matrixOut"),a.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(i),r.appendChild(a),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);hn.svgNodeCache[o]={}}(r),t=i,r.querySelector("div.viewport-element").appendChild(t),On.addViewportElement(o,r),$t.enable(r),Xt.enable(r),cn.enable(r),function(e){e.addEventListener(z.Enums.Events.IMAGE_RENDERED,Mn)}(r),function(e){e.addEventListener(z.Enums.Events.CAMERA_MODIFIED,An)}(r),function(e){e.addEventListener(z.Enums.Events.IMAGE_SPACING_CALIBRATED,Bn)}(r),ur(r),mr(r),hn.enabledElements.push(r)}var Er=function(e,t){var n=[];if(!t&&!e)throw new Error("At least one of renderingEngineId or viewportId should be given");for(var r=0;r<hn.synchronizers.length;r++){var o=hn.synchronizers[r],i=!o.isDisabled(),a=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);i&&(a||l)&&n.push(o)}return n},Ir=function(e){var t=e.detail,n=t.element,r=t.viewportId;!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);delete hn.svgNodeCache[o]}(n);var o=n.querySelector("svg"),i=n.querySelector("div.".concat("viewport-element"));o&&i.removeChild(o),On.removeViewportElement(r,n),$t.disable(n),Xt.disable(n),cn.disable(n),function(e){e.removeEventListener(z.Enums.Events.IMAGE_RENDERED,Mn)}(n),function(e){e.removeEventListener(z.Enums.Events.CAMERA_MODIFIED,An)}(n),function(e){e.removeEventListener(z.Enums.Events.IMAGE_SPACING_CALIBRATED,Bn)}(n),vr(n),wr(n),function(e){var t=(0,z.getEnabledElement)(e);Er(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,z.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=In(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=hn.enabledElements.findIndex((function(t){return t===e}));t>-1&&hn.enabledElements.splice(t,1)}(n)},br=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;xn(n)}))},Cr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,z.getRenderingEngine)(r);br(o,[n])},_r=function(e){e.detail.removed.length&&(0,z.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));br(e,t)}))},Tr=function(e){var t=e.detail.segmentationId;ft(t).forEach((function(e){vt(e).forEach((function(n){n.segmentationId===t&&rt(e,n.segmentationRepresentationUID)}))}))},Dr=function(e){return hn.toolGroups.find((function(t){return t.id===e}))};function Sr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Or(e,t){return Or=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Or(e,t)}function xr(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Or(e,t)}function Mr(e){return Mr="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},Mr(e)}function Rr(e,t){if(t&&("object"===Mr(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Sr(e)}function Nr(e){return Nr=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Nr(e)}var Pr=function(e){return e&&"object"===Mr(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},kr=function(e,t){var n;return t&&!0===t.clone&&Pr(e)?Ur((n=e,Array.isArray(n)?[]:{}),e,t):e},Ar=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=kr(t,n):Pr(t)?r[o]=Ur(e[o],t,n):-1===e.indexOf(t)&&r.push(kr(t,n))})),r},Lr=function(e,t,n){var r={};return Pr(e)&&Object.keys(e).forEach((function(t){r[t]=kr(e[t],n)})),Object.keys(t).forEach((function(o){Pr(t[o])&&e[o]?r[o]=Ur(e[o],t[o],n):r[o]=kr(t[o],n)})),r},Ur=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=Array.isArray(t),o=n||{arrayMerge:Ar},i=o.arrayMerge||Ar;return r?Array.isArray(e)?i(e,t,n):kr(t,n):Lr(e,t,n)},Vr=Ur,Br=function(){function e(t,n){Y(this,e),J(this,"supportedInteractionTypes",void 0),J(this,"configuration",void 0),J(this,"toolGroupId",void 0),J(this,"mode",void 0);var r=Vr(n,t),o=r.configuration,i=void 0===o?{}:o,a=r.supportedInteractionTypes,l=r.toolGroupId;i.strategies||(i.strategies={},i.defaultStrategy=void 0,i.activeStrategy=void 0,i.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=a||[],this.configuration=Object.assign({},i),this.mode=vn.Disabled}return Z(e,[{key:"getToolName",value:function(){return this.constructor.toolName}},{key:"applyActiveStrategy",value:function(e,t){var n=this.configuration;return n.strategies[n.activeStrategy].call(this,e,t)}},{key:"setConfiguration",value:function(e){this.configuration=Vr(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1],r=z.utilities.imageIdToURI(n),o=z.utilities.getViewportsWithImageURI(r,t.id);if(!o||!o.length)return;if(!(o=o.filter((function(e){return e.getCurrentImageId()===n})))||!o.length)return;return o[0].getImageData()}if(e.startsWith("volumeId:")){var i=e.split("volumeId:")[1],a=z.utilities.getViewportsWithVolumeId(i,t.id);if(!a||!a.length)return;return a[0].getImageData()}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof z.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof z.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();J(Br,"toolName",void 0),Br.toolName="BaseTool";var Fr=Br;function jr(e,t,n,r,o,i,a){try{var l=e[i](a),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function Wr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){jr(i,r,o,a,l,"next",e)}function l(e){jr(i,r,o,a,l,"throw",e)}a(void 0)}))}}var Gr=c(162),Hr=c.n(Gr),qr=c(795),zr=c.n(qr),Kr=c(441),Yr=c.n(Kr);function $r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Zr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$r(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Jr(){return It()}function Xr(e){bt(e)}function Qr(e){return Jr().representations[e]}function eo(e,t){var n=Jr();Xr(Zr(Zr({},n),{},{representations:Zr(Zr({},n.representations),{},J({},e,Zr(Zr({},n.representations[e]),t)))}))}function to(e){return gt(e)}function no(e,t){ht(e,t)}function ro(e,t){return mt(e,t)}function oo(e,t,n){pt(e,t,n)}function io(e,t,n){return wt(e,t,n)}function ao(e,t,n){yt(e,t,n)}function lo(){return(lo=Wr(Hr().mark((function e(t,n,r){var o,i,a,l,c;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,z.getEnabledElement)(t),i=o.renderingEngine,a=o.viewport,l=a.id,c=[{volumeId:n,actorUID:r,visibility:!0,blendMode:z.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}],e.next=9,(0,z.addVolumesToViewports)(i,c,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var co=function(e,t,n){return lo.apply(this,arguments)},so=function(e,t){(0,z.getEnabledElement)(e).viewport.removeVolumeActors([t])};function uo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function vo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vo(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var go=255,ho=new Map;function po(){return(po=Wr(Hr().mark((function e(t,n,r){var o,i,a,l,c,s,d,u;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,i=z.utilities.uuidv4(),a=new Set,l=zr().newInstance(),(c=Yr().newInstance()).addPoint(0,0),s={segmentationId:o,segmentationRepresentationUID:i,type:$e.Labelmap,segmentsHidden:a,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{cfun:l,ofun:c}},r&&(d=to(t),u=Vr(d,r),no(t,{renderInactiveSegmentations:u.renderInactiveSegmentations||!0,representations:fo({},u.representations)})),Et(t,s),e.abrupt("return",i);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function mo(){return(mo=Wr(Hr().mark((function e(t,n,r){var o,i,a,l,c,s,d,u,v,f,g,h,p,m,w,y;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.colorLUTIndex,i=n.active,a=n.segmentationId,l=n.segmentationRepresentationUID,c=n.visibility,s=n.segmentsHidden,d=n.config,u=st(a),v=u.representationData[$e.Labelmap],f=v.volumeId,z.cache.getVolume(f)){e.next=7;break}throw new Error("No Labelmap found for volumeId: ".concat(f));case 7:if(g=t.getActor(l)){e.next=14;break}return h=st(a),p=h.representationData[$e.Labelmap].volumeId,e.next=13,bo(t,p,l);case 13:g=t.getActor(l);case 14:m=d.cfun,w=d.ofun,y=r.renderInactiveSegmentations,wo(t.id,g,m,w,o,r.representations[$e.Labelmap],n,i,y,s,c);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function wo(e,t,n,r,o,i,a,l,c,s){for(var d=!(arguments.length>10&&void 0!==arguments[10])||arguments[10],u=a.segmentSpecificConfig,v=a.segmentationRepresentationSpecificConfig,f=v[$e.Labelmap],g=St(o),h=Math.min(256,g.length),p=t.actor,m=t.uid,w=yo(i,f,l),y=w.outlineWidth,E=w.renderOutline,I=w.outlineOpacity,b=0;b<h;b++){var C,_=b,T=g[_],D=null===(C=u[_])||void 0===C?void 0:C[$e.Labelmap],S=yo(i,f,l,D),O=S.fillAlpha,x=S.outlineWidth,M=S.renderFill,R=S.renderOutline,N=Eo(e,m,_,{fillAlpha:O,renderFill:M,renderOutline:R,segmentColor:T,outlineWidth:x,segmentsHidden:s}),P=N.forceOpacityUpdate,k=N.forceColorUpdate;if(k&&n.addRGBPoint(_,T[0]/go,T[1]/go,T[2]/go),P)if(M){var A=s.has(_)?0:T[3]/255*O;r.removePoint(_),r.addPointLong(_,A,.5,1)}else r.addPointLong(_,.01,.5,1)}p.getProperty().setRGBTransferFunction(0,n),r.setClamping(!1),p.getProperty().setScalarOpacity(0,r),p.getProperty().setInterpolationTypeToNearest(),p.getProperty().setUseLabelOutline(E),p.getProperty().setLabelOutlineOpacity(I),p.getProperty().setLabelOutlineThickness(y);var L=d&&(l||c);p.setVisibility(L)}function yo(e,t,n,r){var o=r||{},i=fo(fo(fo({},e),t),o);return{fillAlpha:n?i.fillAlpha:i.fillAlphaInactive,outlineWidth:n?i.outlineWidthActive:i.outlineWidthInactive,renderFill:n?i.renderFill:i.renderFillInactive,renderOutline:i.renderOutline,outlineOpacity:n?i.outlineOpacity:i.outlineOpacityInactive}}function Eo(e,t,n,r){var o=r.fillAlpha,i=r.renderFill,a=r.renderOutline,l=r.segmentColor,c=r.outlineWidth,s=r.segmentsHidden,d="".concat(e,"-").concat(t,"-").concat(n),u=ho.get(d);if(!u)return ho.set(d,{fillAlpha:o,renderFill:i,renderOutline:a,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:!0,forceColorUpdate:!0};var v=u.fillAlpha,f=u.renderFill,g=u.renderOutline,h=u.outlineWidth,p=u.segmentColor,m=u.segmentsHidden,w=p[0]!==l[0]||p[1]!==l[1]||p[2]!==l[2],y=p[3]!==l[3]||v!==o||f!==i||g!==a||h!==c||m.has(n)!==s.has(n);return ho.set(d,{fillAlpha:o,renderFill:i,renderOutline:a,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:y,forceColorUpdate:w}}function Io(e,t){var n=Dr(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return uo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?uo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var i=r.value,a=i.viewportId,l=i.renderingEngineId,c=(0,z.getEnabledElementByIds)(a,l);so(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}function bo(e,t,n){return Co.apply(this,arguments)}function Co(){return(Co=Wr(Hr().mark((function e(t,n,r){return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,co(t.element,n,r);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var _o={render:function(e,t,n){return mo.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return po.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(Io(e,t),Tt(e,t),n){var r=Dr(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,z.getEnabledElementByIds)(t,n).viewport.render()}))}}};function To(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Do(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Do(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function Do(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var So=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=Dr(t);if(n){var r=vt(t);if(r&&0!==r.length){var o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,z.getEnabledElementByIds)(n,t);if(r)return r.viewport})),i=r.map((function(n){var r,i=e._getMergedRepresentationsConfig(t),a=[],l=To(o);try{for(l.s();!(r=l.n()).done;){var c=r.value;n.type==$e.Labelmap&&a.push(_o.render(c,n,i))}}catch(e){l.e(e)}finally{l.f()}return a}));Promise.allSettled(i).then((function(){o.forEach((function(e){e.render()}))}))}}})),e}return Z(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=vt(e);if(t&&0!==t.length){var n,r=To(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,rt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=vt(e);if(t&&0!==t.length){var n,r=To(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,rt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=to(e),n=Jr();return Vr(n,t)}}]),o}(Fr);J(So,"toolName",void 0),So.toolName="SegmentationDisplay";var Oo=So;function xo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Mo=function(){function e(){var t=this;Y(this,e),J(this,"_needsRender",new Set),J(this,"_animationFrameSet",!1),J(this,"_animationFrameHandle",null),J(this,"hasBeenDestroyed",void 0),J(this,"_renderFlaggedToolGroups",(function(){t._throwIfDestroyed();for(var e=0,n=Array.from(t._needsRender.values());e<n.length;e++){var r=n[e];if(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size)return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}}))}return Z(e,[{key:"removeToolGroup",value:function(e){this._needsRender.delete(e),0===this._needsRender.size&&this._reset()}},{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=Dr(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,z.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(Oo.toolName);o?(r.forEach((function(e){e.element.addEventListener(z.Enums.Events.IMAGE_RENDERED,i)})),o.renderSegmentation(e)):console.warn("No segmentation tool found inside",e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function i(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(z.Enums.Events.IMAGE_RENDERED,i);var a=In(r,o);if(a){var l={toolGroupId:a.id,viewportId:r};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xo(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},l))}else console.warn("toolGroup has been destroyed")}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),Ro=new Mo;function No(e){Ro.renderToolGroupSegmentations(e)}var Po=No,ko=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=st(n),i=o.representationData,a=o.type;if(a!==$e.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(a," not supported yet"));var l=z.cache.getVolume(i[a].volumeId);if(l){var c,s=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))c=r;else{var u=s.getDimensions()[2];c=un(Array(u).keys())}c.forEach((function(e){d.setUpdatedFrame(e)})),s.modified(),ft(n).forEach((function(e){Po(e)}))}else console.warn("segmentation not found in cache")},Ao=function(e){var t=e.detail.toolGroupId;Po(t)},Lo=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,Po(n)},Uo=function(e,t,n){var r=vt(e);if(r&&0!==r.length){var o=r.map((function(e){return e.segmentationRepresentationUID})),i=t;if(i){var a=t.filter((function(e){return!o.includes(e)}));if(a.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(a)))}else i=o;i.forEach((function(t){!function(e,t,n){var r=Ct(e,t).type;if(r!==$e.Labelmap)throw new Error("The representation ".concat(r," is not supported yet"));_o.removeSegmentationRepresentation(e,t,n)}(e,t,n)}))}},Vo=function(e){var t=hn.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Ro.removeToolGroup(e),Uo(e),hn.toolGroups.splice(t,1))};function Bo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Fo=function(){var e,t=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Bo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(un(hn.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;Vo(n.id)}}catch(e){t.e(e)}finally{t.f()}hn.toolGroups=[]},jo=!1;function Wo(){jo||(function(){Ho();var e=z.Enums.Events.ELEMENT_ENABLED,t=z.Enums.Events.ELEMENT_DISABLED;z.eventTarget.addEventListener(e,yr),z.eventTarget.addEventListener(t,Ir)}(),qo(),z.eventTarget.addEventListener(K.ANNOTATION_MODIFIED,Cr),z.eventTarget.addEventListener(K.ANNOTATION_SELECTION_CHANGE,_r),z.eventTarget.addEventListener(K.ANNOTATION_SELECTION_CHANGE,_r),z.eventTarget.addEventListener(K.SEGMENTATION_MODIFIED,Tr),z.eventTarget.addEventListener(K.SEGMENTATION_DATA_MODIFIED,ko),z.eventTarget.addEventListener(K.SEGMENTATION_REPRESENTATION_MODIFIED,Ao),z.eventTarget.addEventListener(K.SEGMENTATION_REPRESENTATION_REMOVED,Lo),jo=!0)}function Go(){Ho(),qo(),Fo(),fn={},hn=Q()(gn);var e=Ue(),t=ct();e.restoreAnnotations({}),t.resetState(),jo=!1}function Ho(){var e=z.Enums.Events.ELEMENT_ENABLED,t=z.Enums.Events.ELEMENT_DISABLED;z.eventTarget.removeEventListener(e,yr),z.eventTarget.removeEventListener(t,Ir)}function qo(){z.eventTarget.removeEventListener(K.ANNOTATION_MODIFIED,Cr),z.eventTarget.removeEventListener(K.ANNOTATION_SELECTION_CHANGE,_r),z.eventTarget.removeEventListener(K.ANNOTATION_SELECTION_CHANGE,_r),z.eventTarget.removeEventListener(K.SEGMENTATION_MODIFIED,Tr),z.eventTarget.removeEventListener(K.SEGMENTATION_DATA_MODIFIED,ko),z.eventTarget.removeEventListener(K.SEGMENTATION_REPRESENTATION_MODIFIED,Ao),z.eventTarget.removeEventListener(K.SEGMENTATION_REPRESENTATION_REMOVED,Lo)}function zo(e){var t=e.toolName,n=void 0!==hn.tools[t];if(!t)throw new Error("No Tool Found for the ToolClass ".concat(e.name));if(n)throw new Error("".concat(t," has already been added globally"));hn.tools[t]={toolClass:e}}function Ko(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!hn.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete hn.tools[t]}function Yo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $o(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Yo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Yo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(zn(e,bn(e,[vn.Active,vn.Passive])));try{for(n.s();!(t=n.n()).done;){var r=t.value.tool.cancel(e);if(r)return r}}catch(e){n.e(e)}finally{n.f()}}var Zo=function(){function e(t,n,r){var o=this;Y(this,e),J(this,"_enabled",void 0),J(this,"_eventName",void 0),J(this,"_eventHandler",void 0),J(this,"_ignoreFiredEvents",void 0),J(this,"_sourceViewports",void 0),J(this,"_targetViewports",void 0),J(this,"_viewportOptions",{}),J(this,"id",void 0),J(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,z.getEnabledElement)(e.currentTarget);if(t){var n=t.renderingEngineId,r=t.viewportId;o._sourceViewports.find((function(e){return e.viewportId===r}))&&o.fireEvent({renderingEngineId:n,viewportId:r},e)}}})),this._enabled=!0,this._eventName=n,this._eventHandler=r,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this.id=t}return Z(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"setOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._viewportOptions[e]=t}},{key:"getOptions",value:function(e){return this._viewportOptions[e]}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!Xo(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,z.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){Xo(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}},{key:"getSourceViewports",value:function(){return this._sourceViewports}},{key:"getTargetViewports",value:function(){return this._targetViewports}},{key:"destroy",value:function(){var e=this;this._sourceViewports.forEach((function(t){return e.removeSource(t)})),this._targetViewports.forEach((function(t){return e.removeTarget(t)}))}},{key:"remove",value:function(e){this.removeTarget(e),this.removeSource(e)}},{key:"removeSource",value:function(e){var t=Jo(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,z.getRenderingEngine)(e.renderingEngineId);if(!t)throw new Error("No RenderingEngine for Id: ".concat(e.renderingEngineId));return t.getViewport(e.viewportId).element}(e);this._sourceViewports.splice(t,1),n.removeEventListener(this._eventName,this._eventHandler),this._updateDisableHandlers()}}},{key:"removeTarget",value:function(e){var t=Jo(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return Xo(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return Xo(this._targetViewports,{renderingEngineId:e,viewportId:t})}},{key:"fireEvent",value:function(e,t){if(!this.isDisabled()&&!this._ignoreFiredEvents){this._ignoreFiredEvents=!0;try{for(var n=0;n<this._targetViewports.length;n++){var r=this._targetViewports[n];e.viewportId===r.viewportId||this._eventHandler(this,e,r,t)}}catch(e){console.warn("Synchronizer, for: ".concat(this._eventName),e)}finally{this._ignoreFiredEvents=!1}}}},{key:"_hasSourceElements",value:function(){return 0!==this._sourceViewports.length}},{key:"_updateDisableHandlers",value:function(){var e=function(e,t){for(var n=[],r=e.concat(t),o=function(e){var t=r[e];n.some((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))||n.push(t)},i=0;i<r.length;i++)o(i);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,z.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(z.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(z.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function Jo(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function Xo(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var Qo=Zo,ei=function(e,t,n){if(hn.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new Qo(e,t,n);return hn.synchronizers.push(r),r},ti=function(){for(;hn.synchronizers.length>0;)hn.synchronizers.pop().destroy()},ni=function(e){return hn.synchronizers.find((function(t){return t.id===e}))},ri=function(){return hn.synchronizers},oi=function(e){var t=hn.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(hn.synchronizers[t].destroy(),hn.synchronizers.splice(t,1))},ii=c(485),ai=c.n(ii),li=Symbol("DefinedCursors"),ci=new Set(["alias","all-scroll","auto","cell","col-resize","context-menu","copy","crosshair","default","e-resize","ew-resize","grab","grabbing","help","move","ne-resize","nesw-resize","no-drop","none","not-allowed","n-resize","ns-resize","nw-resize","nwse-resize","pointer","progress","row-resize","se-resize","s-resize","sw-resize","text","vertical-text","wait","w-resize","zoom-in","zoom-out"]),si=function(){function e(t,n){Y(this,e),J(this,"name",void 0),J(this,"fallback",void 0),this.name=t+"",this.fallback=n}return Z(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=di(e,li),r=n.get(t);return r instanceof e?r:ci.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(di(e,li).set(t,n),!0)}}]),e}();function di(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var ui,vi=ci.values();function fi(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Nr(e)););return e}function gi(){return gi="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=fi(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},gi.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(ui||(ui={}));var hi=ui;var pi=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(e,t,n,i,a){var l;return Y(this,o),J(Sr(l=r.call(this,i||o.getUniqueInstanceName("image-cursor"),a)),"url",void 0),J(Sr(l),"x",void 0),J(Sr(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return Z(o,[{key:"getStyleProperty",value:function(){var e=this.url,t=this.x,n=this.y,r="url('".concat(e,"')");return t>=0&&n>=0&&(t>0||n>0)&&(r+=" ".concat(t," ").concat(n)),this.addFallbackStyleProperty(r)}}],[{key:"getUniqueInstanceName",value:function(e){return"".concat(e,"-").concat(z.utilities.getRuntimeId(o))}}]),o}(si),mi={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:'\n <path stroke="{{color}}" d="M8 16L8 0"></path>\n <path stroke="{{color}}" d="M16 8L0 8"></path>\n '},wi={x:127,y:60},yi='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',Ei='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n<rect fill="{{color}}" x="95.84" y="9.38" width="15.85" height="47.14"/>\n',Ii='<path fill="{{color}}" d="M82.89,10a12.09,12.09,0,0,0-16.8-2.5l-27.5,20.4-8.5-6.3a2.93,2.93,0,0,1-1.1-3,14.66,14.66,0,0,0,.1-6.6,14.08,14.08,0,1,0-6.5,15.2,2.87,2.87,0,0,1,3.2.2l8.2,6.1-8.2,6.1a2.87,2.87,0,0,1-3.2.2,14.16,14.16,0,1,0,6.7,14.4,14,14,0,0,0-.3-5.8,2.93,2.93,0,0,1,1.1-3l8.5-6.3,27.5,20.4A11.91,11.91,0,0,0,82.89,57l-31.7-23.5ZM15.29,21a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,21Zm0,36.8a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,57.77Zm28.3-21.5a2.8,2.8,0,1,1,2.8-2.8A2.8,2.8,0,0,1,43.59,36.27Z" transform="translate(-1.17 -0.96)"/>',bi='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',Ci='<path fill="{{color}}" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>',_i={Angle:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50\n 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23\n 10l50 50q10 10 10 23z" />',viewBox:{x:1792,y:1792}}),ArrowAnnotate:Ti(mi,{iconContent:'<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />\n </g>',viewBox:{x:24,y:24}}),Bidirectional:Ti(mi,{iconContent:'<g fill="{{color}}" stroke-width="3" stroke="{{color}}">\n <path d="M27.63 3.21L3.12 28.81"></path>\n <path d="M27.63 15.75L15.27 4.43"></path>\n <path d="M16.5 4.28C16.5 4.96 15.95 5.51 15.27 5.51C14.59 5.51 14.03 4.96 14.03 4.28C14.03 3.59 14.59 3.04 15.27 3.04C15.95 3.04 16.5 3.59 16.5 4.28Z" ></path>\n <path d="M28.87 3.19C28.87 3.87 28.31 4.43 27.63 4.43C26.95 4.43 26.4 3.87 26.4 3.19C26.4 2.51 26.95 1.95 27.63 1.95C28.31 1.95 28.87 2.51 28.87 3.19Z"></path>\n <path d="M28.87 15.75C28.87 16.43 28.31 16.99 27.63 16.99C26.95 16.99 26.4 16.43 26.4 15.75C26.4 15.07 26.95 14.51 27.63 14.51C28.31 14.51 28.87 15.07 28.87 15.75Z"></path>\n <path d="M4.73 28.44C4.73 29.12 4.17 29.68 3.49 29.68C2.81 29.68 2.25 29.12 2.25 28.44C2.25 27.76 2.81 27.2 3.49 27.2C4.17 27.2 4.73 27.76 4.73 28.44Z"></path>\n </g>',viewBox:{x:48,y:48}}),CobbAngle:Ti(mi,{iconContent:'<g stroke="{{color}}" stroke-width="3">\n <path d="M28.59 2.34L3.82 12.32"></path>\n <path d="M28.59 29.66L3.82 19.68"></path>\n <path stroke-dasharray="2" fill-opacity="0" d="M12.37\n 23.06C12.67 22.36 12.85 21.93 12.92 21.76C14.6 17.8 14.68 13.35 13.15\n 9.33C13.11 9.24 13.02 9 12.88 8.63">\n </path>\n </g>',viewBox:{x:32,y:32}}),CircleROI:Ti(mi,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:Ti(mi,{iconContent:'<path stroke="{{color}}" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16\n 25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14\n 6.3 30.74 10.54 30.74 15.76Z" />',viewBox:{x:32,y:32}}),FreehandROI:Ti(mi,{iconContent:'<g fill="{{color}}" stroke="{{color}}" stroke-width="2">\n <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>\n <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>\n <line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902"/>\n <line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026"/>\n <line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585"/>\n <line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848"/>\n <line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688"/>\n <line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959"/>\n <line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945"/>\n <line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655"/>\n <line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648"/>\n <line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785"/>\n <line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779"/>\n <line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204"/>\n <line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488"/>\n <line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774"/>\n <line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349"/>\n <line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351"/>\n <line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213"/>\n <line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065"/>\n <line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528"/>\n <line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926"/>\n <line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855"/>\n <line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024"/>\n <line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895"/>\n <line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909"/>\n <line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348"/>\n <line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359"/>\n <line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651"/>\n <ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801"/>\n </g>',viewBox:{x:18,y:18}}),FreehandROISculptor:Ti(mi,{iconContent:'<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>\n <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>\n <line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759"/>\n <line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707"/>\n <line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828"/>\n <line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842"/>\n <line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918"/>\n <line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153"/>\n <line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898"/>\n <line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829"/>\n <line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918"/>\n <line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145"/>\n <line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621"/>\n <line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352"/>\n <line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407"/>\n <line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807"/>\n <line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758"/>\n <line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096"/>\n <line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792"/>\n <line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171"/>\n <line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813"/>\n <line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427"/>\n <line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013"/>\n <line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271"/>\n <line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475"/>\n <line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758"/>\n <line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048"/>\n <line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166"/>\n <line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794"/>\n <line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614"/>\n <line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925"/>\n <ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918"/>\n </g>',viewBox:{x:18,y:18}}),Length:Ti(mi,{iconContent:'<g id="length-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />\n </g>',viewBox:{x:24,y:24}}),Probe:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75\n 75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73\n 198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5\n 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5\n 385.5-103 385.5 103 279.5 279.5 103 385.5z" />',viewBox:{x:1792,y:1792}}),RectangleROI:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47\n 113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0\n 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119\n 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),TextMarker:Ti(mi,{iconContent:'<path fill="{{color}}" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0\n 57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29\n 31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15\n 34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 5-.5\n 13.5t-.5 12.5q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0\n 12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11\n 2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0\n 22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58\n 0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z" />',viewBox:{x:1792,y:1792}}),Crosshairs:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26\n 19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45\n 19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26\n 0 45 19t19 45v128q0 26-19 45t-45 19h-109q32 108 112.5 188.5t188.5\n 112.5v-109q0-26 19-45t45-19h128q26 0 45 19t19 45v109q108-32\n 188.5-112.5t112.5-188.5zm339-192v128q0 26-19 45t-45 19h-143q-37 161-154.5\n 278.5t-278.5 154.5v143q0 26-19 45t-45 19h-128q-26\n 0-45-19t-19-45v-143q-161-37-278.5-154.5t-154.5-278.5h-143q-26\n 0-45-19t-19-45v-128q0-26 19-45t45-19h143q37-161\n 154.5-278.5t278.5-154.5v-143q0-26 19-45t45-19h128q26 0 45 19t19 45v143q161\n 37 278.5 154.5t154.5 278.5h143q26 0 45 19t19 45z" />',viewBox:{x:1792,y:1792}}),Eraser:Ti(mi,{iconContent:'<path transform="translate(0,1792) scale(1,-1)" fill="{{color}}" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15\n 34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38\n 0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38\n 0 69.5 20.5t47.5 54.5z" />',viewBox:{x:2048,y:1792}}),Magnify:Ti(mi,{iconContent:'<path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />',viewBox:{x:512,y:512}}),Pan:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17\n 39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355\n 355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59\n 39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12\n 0-24-5-40-17-40-59v-448q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69l-144\n 144 355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19\n 45v448q0 42-39 59-13 5-25 5-26 0-45-19z" />',viewBox:{x:1792,y:1792}}),Rotate:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39\n 14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5\n 163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0\n 225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109\n 132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298\n 164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14\n 39 17 39 59z" />',viewBox:{x:1792,y:1792}}),StackScroll:Ti(mi,{iconContent:'<path fill="{{color}}" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0\n 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547\n 0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z" />',viewBox:{x:24,y:28}}),WindowLevelRegion:Ti(mi,{iconContent:'<path fill="{{color}}" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119\n 0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5\n 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),WindowLevel:Ti(mi,{iconContent:'\n <path fill="{{color}}" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />\n <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="{{color}}" />',viewBox:{x:18,y:18}}),Zoom:Ti(mi,{iconContent:'\n <path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />\n <path fill="{{color}}" transform="scale(0.22,0.22) translate(1400,0)" d="M1216\n 320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19\n 19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26\n 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z" />',viewBox:{x:640,y:512}}),SegmentationFreeHandEraseInside:Ti(mi,{iconContent:"".concat(Ii," ").concat(yi),viewBox:wi}),SegmentationFreeHandFillInside:Ti(mi,{iconContent:"".concat(Ii," ").concat(Ei),viewBox:wi}),SegmentationFreeHandEraseOutside:Ti(mi,{iconContent:"".concat(Ii," ").concat(yi),viewBox:wi}),SegmentationFreeHandFillOutside:Ti(mi,{iconContent:"".concat(Ii," ").concat(Ei),viewBox:wi}),SegmentationRectangleEraseInside:Ti(mi,{iconContent:"".concat(bi," ").concat(yi),viewBox:wi}),RectangleScissor:Ti(mi,{iconContent:"".concat(bi," ").concat(Ei),viewBox:wi}),"RectangleScissor.FILL_INSIDE":Ti(mi,{iconContent:"".concat(bi," ").concat(Ei),viewBox:wi}),"RectangleScissor.FILL_OUTSIDE":Ti(mi,{iconContent:"".concat(bi," ").concat(Ei),viewBox:wi}),"RectangleScissor.ERASE_OUTSIDE":Ti(mi,{iconContent:"".concat(bi," ").concat(yi),viewBox:wi}),"RectangleScissor.ERASE_INSIDE":Ti(mi,{iconContent:"".concat(bi," ").concat(yi),viewBox:wi}),CircleScissor:Ti(mi,{iconContent:"".concat(Ci," ").concat(Ei),viewBox:wi}),"CircleScissor.FILL_INSIDE":Ti(mi,{iconContent:"".concat(Ci," ").concat(Ei),viewBox:wi}),"CircleScissor.ERASE_OUTSIDE":Ti(mi,{iconContent:"".concat(Ci," ").concat(yi),viewBox:wi}),"CircleScissor.FILL_OUTSIDE":Ti(mi,{iconContent:"".concat(Ci," ").concat(Ei),viewBox:wi})};function Ti(e,t){return Object.assign(Object.create(e),t)}function Di(e,t,n){_i[e]=Ti(mi,{iconContent:t,viewBox:n})}function Si(e){if(Object.prototype.hasOwnProperty.call(_i,e))return _i[e]}var Oi=Object.keys(_i);function xi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Mi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xi(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ri=new(function(){function e(){Y(this,e),J(this,"config",void 0),this._initializeConfig({color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",shadow:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(255, 255, 0)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0})}return Z(e,[{key:"getAnnotationToolStyles",value:function(e){return this.config.annotations&&this.config.annotations[e]}},{key:"getViewportToolStyles",value:function(e){return this.config.viewports&&this.config.viewports[e]}},{key:"getToolGroupToolStyles",value:function(e){return this.config.toolGroups&&this.config.toolGroups[e]}},{key:"getDefaultToolStyles",value:function(){return this.config.default}},{key:"setAnnotationStyles",value:function(e,t){var n=this.config.annotations;n||(this.config=Mi(Mi({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=Mi(Mi({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=Mi(Mi({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]=t}},{key:"setDefaultToolStyles",value:function(e){this.config.default=e}},{key:"getStyleProperty",value:function(e,t){var n=t.annotationUID,r=t.viewportId,o=t.toolGroupId,i=t.toolName;return this._getToolStyle(e,n,r,o,i)}},{key:"_getToolStyle",value:function(e,t,n,r,o){if(t){var i=this.getAnnotationToolStyles(t);if(i&&i[e])return i[e]}if(n){var a=this.getViewportToolStyles(n);if(a){if(a[o]&&a[o][e])return a[o][e];if(a.global&&a.global[e])return a.global[e]}}if(r){var l=this.getToolGroupToolStyles(r);if(l){if(l[o]&&l[o][e])return l[o][e];if(l.global&&l.global[e])return l.global[e]}}var c=this.getDefaultToolStyles();return c[o]&&c[o][e]?c[o][e]:c.global&&c.global[e]?c.global[e]:void 0}},{key:"_initializeConfig",value:function(e){var t={};for(var n in e)t[n]=e[n];this.config={default:{global:t}}}}]),e}());function Ni(e,t,n,r){for(var o=function(e,t,n){var r=["".concat(e)];return t&&r.push("".concat(r[0]).concat(t)),n&&r.push("".concat(r[r.length-1]).concat(n)),r}(e,n,r),i=o.length-1;i>=0;--i){var a=Ri.getStyleProperty(o[i],t);if(void 0!==a)return a}}var Pi="color",ki=hi.Highlighted,Ai=vn.Active,Li=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(e,t,n,i,a){return Y(this,o),r.call(this,e,t,n,i,a)}return Z(o,null,[{key:"getDefinedCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;n||(n=Ni(Pi,{},ki,Ai));var r=Vi(e,t,n),i=gi(Nr(o),"getDefinedCursor",this).call(this,r);if(!i){var a=Si(e);a&&(i=Bi(a,r,t,n,gi(Nr(o),"getDefinedCursor",this).call(this,"default")),gi(Nr(o),"setDefinedCursor",this).call(this,r,i))}return i}}]),o}(pi);function Ui(e,t){var n=Object(t),r=Object.prototype.hasOwnProperty.bind(n);return(e+"").replace(/\{\{(\w+)\}\}/g,(function(e,t){return r(t)?n[t]+"":""}))}function Vi(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function Bi(e,t,n,r,o){var i=e.mousePoint,a=i.x,l=i.y;return new Li(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?ji:Fi)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),a,l,t,o)}function Fi(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Ui('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(r,'" height="').concat(r,'" viewBox="0 0\n ').concat(o.x," ").concat(o.y,'">\n ').concat(n,"\n </svg>"),t)}function ji(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,i=e.mousePointerGroupString,a=r/Math.max(o.x,o.y,1),l=16+r;return Ui('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(i,'</g>\n <g transform="translate(16, 16) scale(').concat(a,')">').concat(n,"</g>\n </svg>"),t)}var Wi=Symbol("ElementCursorsMap");function Gi(e,t){Ki(e)[0]=t,Hi(e,t)}function Hi(e,t){var n=Ki(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof si?t:si.getDefinedCursor("auto")).getStyleProperty()}function qi(e){Hi(e,Ki(e)[1])}function zi(e){Hi(e,si.getDefinedCursor("none"))}function Ki(e){var t=Ki[Wi];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(Ki,Wi,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}function Yi(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Nr(e);if(t){var o=Nr(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Rr(this,n)}}var $i=vn.Active,Zi=vn.Passive,Ji=vn.Enabled,Xi=vn.Disabled,Qi=function(){function e(t){Y(this,e),J(this,"id",void 0),J(this,"viewportsInfo",[]),J(this,"toolOptions",{}),J(this,"_toolInstances",{}),this.id=t}return Z(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return this.viewportsInfo.slice()}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=hn.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var i=n.toolClass,a={name:e,toolGroupId:this.id,configuration:t},l=new i(a);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addToolInstance",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null===(n=hn.tools[e])||void 0===n?void 0:n.toolClass;if(!o){var i=hn.tools[t].toolClass,a=function(e){xr(n,e);var t=Yi(n);function n(){return Y(this,n),t.apply(this,arguments)}return Z(n)}(i);a.toolName=e,o=a,hn.tools[e]={toolClass:a}}this.addTool(o.toolName,r)}},{key:"addViewport",value:function(e,t){var n=(0,z.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.some((function(t){return t.viewportId===e}))||this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();z.Settings.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var i=!1;r.renderingEngineId===e&&(i=!0,t&&r.viewportId!==t&&(i=!1)),i&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setActiveStrategy",value:function(e,t){var n=this._toolInstances[e];void 0!==n?n.setActiveStrategy(t):console.warn("Tool ".concat(e," not added to toolGroup, can't set tool configuration."))}},{key:"setToolMode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e?t!==vn.Active?t!==vn.Passive?t!==vn.Enabled?t!==vn.Disabled?console.warn("setToolMode: mode must be defined"):this.setToolDisabled(e):this.setToolEnabled(e):this.setToolPassive(e):this.setToolActive(e,n):console.warn("setToolMode: toolName must be defined")}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._toolInstances[e];if(void 0!==n)if(n){var r=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=t.bindings?t.bindings:[],i=[].concat(un(r),un(o)).reduce((function(e,t){return e.some((function(e){return ea(e,t)}))||void 0===t.mouseButton||e.push(t),e}),[]),a={bindings:i,mode:$i};this.toolOptions[e]=a,this._toolInstances[e].mode=$i;var l=z.Settings.getRuntimeSettings(),c=l.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&c)this.setViewportsCursorByToolName(e);else{var s=this.getActivePrimaryMouseButtonTool();if(!s&&c){var d=si.getDefinedCursor("default");this._setCursorForViewports(d)}}"function"==typeof n.onSetToolActive&&n.onSetToolActive(),this._renderViewports()}else console.warn("'".concat(e,"' instance ").concat(n," is not registered with this toolGroup, can't set tool mode."));else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n=this.getToolOptions(e),r=Object.assign({bindings:n?n.bindings:[]},n,{mode:Zi});r.bindings=r.bindings.filter((function(e){return e.mouseButton!==Wn.Primary}));var o=Zi;0!==r.bindings.length&&(o=$i,r.mode=o),this.toolOptions[e]=r,t.mode=o,"function"==typeof t.onSetToolPassive&&t.onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Ji};this.toolOptions[e]=n,t.mode=Ji,"function"==typeof t.onSetToolEnabled&&t.onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Xi};this.toolOptions[e]=n,t.mode=Xi,"function"==typeof t.onSetToolDisabled&&t.onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){var t=this.toolOptions[e];if(void 0!==t)return t}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===$i&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=this._getCursor(e,t);this._setCursorForViewports(n)}},{key:"_getCursor",value:function(e,t){var n,r;return t&&(n="".concat(e,".").concat(t),r=Li.getDefinedCursor(n,!0))?r:(n="".concat(e),(r=Li.getDefinedCursor(n,!0))?r:(n=e,(r=Li.getDefinedCursor(n,!0))||si.getDefinedCursor("default")))}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,z.getEnabledElementByIds)(r,n);o&&Gi(o.viewport.element,e)}))}},{key:"setToolConfiguration",value:function(e,t,n){return void 0===this._toolInstances[e]?(console.warn("Tool ".concat(e," not present, can't set tool configuration.")),!1):(r=n?t:Vr(this._toolInstances[e].configuration,t),this._toolInstances[e].configuration=r,this._renderViewports(),!0);var r}},{key:"getToolConfiguration",value:function(e,t){if(void 0!==this._toolInstances[e]){var n=ai()(this._toolInstances[e].configuration,t);return Q()(n)}console.warn("Tool ".concat(e," not present, can't set tool configuration."))}},{key:"_hasMousePrimaryButtonBinding",value:function(e){var t;return null==e||null===(t=e.bindings)||void 0===t?void 0:t.some((function(e){return e.mouseButton===Wn.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,z.getRenderingEngine)(t).renderViewport(n)}))}}]),e}();function ea(e,t){return e.mouseButton===t.mouseButton&&e.modifierKey===t.modifierKey}var ta=function(e){if(!hn.toolGroups.some((function(t){return t.id===e}))){var t=new Qi(e);return hn.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},na=function(){return hn.toolGroups};function ra(e,t,n,r){var o=r.detail.camera,i=(0,z.getRenderingEngine)(n.renderingEngineId);if(!i)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var a=i.getViewport(n.viewportId);a.setCamera(o),a.render()}var oa=z.Enums.Events.CAMERA_MODIFIED;function ia(e){return ei(e,oa,ra)}function aa(e,t,n,r){var o=r.detail,i=o.volumeId,a=o.range,l=(0,z.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var c=l.getViewport(n.viewportId);if(c instanceof z.VolumeViewport)c.setProperties({voiRange:a},i);else{if(!(c instanceof z.StackViewport))throw new Error("Viewport type not supported.");c.setProperties({voiRange:a})}c.render()}function la(e){return ei(e,z.Enums.Events.VOI_MODIFIED,aa)}function ca(e,t,n){var r=(0,z.getRenderingEngine)(n.renderingEngineId);if(!r)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var o=e.getOptions(n.viewportId),i=r.getViewport(n.viewportId),a=r.getViewport(t.viewportId);if(!1!==(null==o?void 0:o.syncZoom)){var l=a.getZoom();i.setZoom(l)}if(!1!==(null==o?void 0:o.syncPan)){var c=a.getPan();i.setPan(c)}i.render()}var sa=z.Enums.Events.CAMERA_MODIFIED;function da(e){return ei(e,sa,ca)}var ua=c(976);var va=function(e,t,n){return Math.min(Math.max(t,e),n)};function fa(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof z.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof z.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));ga(e,r,o)}}function ga(e,t,n){var r=e.getCamera(),o=r.focalPoint,i=r.viewPlaneNormal,a=r.position,l=z.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),c=l.spacingInNormalDirection,s=l.imageVolume;if(!s)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var d=e.getActor(s.volumeId);d||console.warn("No actor found for with actorUID of",s.volumeId);var u=d.actor,v=z.utilities.getSliceRange(u,i,o),f=z.utilities.snapFocalPointToSlice(o,a,v,i,c,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function ha(){return ha=Wr(Hr().mark((function e(t){var n,r,o,i,a,l,c,s,d,u=arguments;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=u.length>1&&void 0!==u[1]?u[1]:{},r=n.imageIndex,o=n.debounceLoading,i=(0,z.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:a=i.viewport,l=pa(a,o),c=l.imageIndex,s=l.numberOfSlices,d=ma(s,r),fa(a,{delta:d-c,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),ha.apply(this,arguments)}function pa(e,t){if(e instanceof z.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof z.VolumeViewport)return z.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function ma(e,t){return va(t,0,e-1)}var wa=function(e){return ha.apply(this,arguments)};function ya(e,t){var n=e.getCamera().viewPlaneNormal,r=t.getCamera().viewPlaneNormal,o=ua.vec3.dot(n,r);return Math.abs(o)>.9}function Ea(e,t,n){return Ia.apply(this,arguments)}function Ia(){return(Ia=Wr(Hr().mark((function e(t,n,r){var o,i,a,l,c,s,d,u,v,f,g,h,p;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=(0,z.getRenderingEngine)(r.renderingEngineId)){e.next=3;break}throw new Error("No RenderingEngine for Id: ".concat(r.renderingEngineId));case 3:if(i=o.getViewport(n.viewportId),a=o.getViewport(r.viewportId),l=i.getFrameOfReferenceUID(),c=a.getFrameOfReferenceUID(),s=i.getCurrentImageId(),d=z.metaData.get("imagePlaneModule",s),u=d.imagePositionPatient,v=a.getImageIds(),ya(i,a)){e.next=13;break}return e.abrupt("return");case 13:if(l!==c){e.next=21;break}if(-1===(f=ba(u,v)).index||a.getCurrentImageIdIndex()===f.index){e.next=19;break}return e.next=18,wa(a.element,{imageIndex:f.index});case 18:return e.abrupt("return");case 19:e.next=29;break;case 21:if(g=z.utilities.spatialRegistrationMetadataProvider.get("spatialRegistrationModule",[r.viewportId,n.viewportId])){e.next=24;break}throw new Error("No registration matrix found for sourceViewport: ".concat(n.viewportId," and targetViewport: ").concat(r.viewportId,", viewports with different frameOfReferenceUIDs must have a registration matrix in the registrationMetadataProvider. Use calculateViewportsRegistrationMatrix to calculate the matrix."));case 24:if(h=ua.vec3.transformMat4(ua.vec3.create(),u,g),-1===(p=ba(h,v)).index||a.getCurrentImageIdIndex()===p.index){e.next=29;break}return e.next=29,wa(a.element,{imageIndex:p.index});case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ba(e,t){return t.reduce((function(t,n,r){var o=z.metaData.get("imagePlaneModule",n).imagePositionPatient,i=ua.vec3.distance(o,e);return i<t.distance?{distance:i,index:r}:t}),{distance:1/0,index:-1})}var Ca=z.Enums.Events.STACK_NEW_IMAGE;function _a(e){return ei(e,Ca,Ea)}var Ta=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},Da=function(e,t){Object.keys(e).forEach((function(n){var r=t.getAttribute(n),o=e[n];void 0===o||""===o?t.removeAttribute(n):r!==o&&t.setAttribute(n,o)}))},Sa=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},Oa=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},i),l=a.color,c=a.fill,s=a.width,d=a.lineWidth,u=d||s,v="http://www.w3.org/2000/svg",f=Ta(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:c,"stroke-width":u};if(g)Da(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");Sa(h,p),e.appendNode(p,f)}},xa=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=Ta(t,"ellipse",n),h=e.getSvgNode(g),p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w=Math.min(r[0],o[0]),y=Math.min(r[1],o[1]),E=[w+p/2,y+m/2],I=p/2,b=m/2,C={cx:"".concat(E[0]),cy:"".concat(E[1]),rx:"".concat(I),ry:"".concat(b),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)Da(C,h),e.setNodeTouched(g);else{var _=document.createElementNS(f,"ellipse");""!==a&&_.setAttribute("data-id",a),Sa(C,_),e.appendNode(_,g)}},Ma=function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},o),a=i.color,l=i.handleRadius,c=i.width,s=i.lineWidth,d=i.fill,u=i.type,v=s||c,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=Ta(t,"handle","hg-".concat(n,"-index-").concat(f)),m=void 0;if("circle"===u)m={cx:"".concat(g[0]),cy:"".concat(g[1]),r:l,stroke:a,fill:d,"stroke-width":v};else{if("rect"!==u)throw new Error("Unsupported handle type: ".concat(u));var w=parseFloat(l),y=1.5*w,E=g[0]-.5*y,I=g[1]-.5*y;m={x:"".concat(E),y:"".concat(I),width:"".concat(y),height:"".concat(y),stroke:a,fill:d,"stroke-width":v,rx:"".concat(.1*y)}}var b=e.getSvgNode(p);if(b)Da(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,u);Sa(m,C),e.appendNode(C,p)}}};function Ra(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},i),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=l.shadow,f=d||s,g="http://www.w3.org/2000/svg",h=Ta(t,"line",n),p=e.getSvgNode(h),m=v?"filter:url(#shadow);":"",w={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:c,style:m,"stroke-width":f,"stroke-dasharray":u};if(p)Da(w,p),e.setNodeTouched(h);else{var y=document.createElementNS(g,"line");""!==a&&y.setAttribute("data-id",a),Sa(w,y),e.appendNode(y,h)}}}function Na(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Pa(e,t,n,r,o){if(!(r.length<2)){var i,a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,connectLastToFirst:!1},o),l=a.color,c=a.width,s=a.lineWidth,d=a.lineDash,u=s||c,v=Ta(t,"polyline",n),f=e.getSvgNode(v),g="",h=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Na(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Na(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(r);try{for(h.s();!(i=h.n()).done;){var p=i.value;g+="".concat(p[0],", ").concat(p[1]," ")}}catch(e){h.e(e)}finally{h.f()}if(o.connectLastToFirst){var m=r[0];g+="".concat(m[0],", ").concat(m[1])}var w={points:g,stroke:l,fill:"none","stroke-width":u,"stroke-dasharray":d};if(f)Da(w,f),e.setNodeTouched(v);else{var y=document.createElementNS("http://www.w3.org/2000/svg","polyline");Sa(w,y),e.appendNode(y,v)}}}function ka(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[""],i=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0,l=a.padding,c=a.color,s=a.fontFamily,d=a.fontSize,u=a.background,v=i[0]+l,f=i[1]+l,g="http://www.w3.org/2000/svg",h=Ta(t,"text",n),p=e.getSvgNode(h);if(p){for(var m=p.querySelector("text"),w=Array.from(m.children),y=0;y<w.length;y++){var E=w[y],I=o[y]||"";E.textContent=I}if(o.length>w.length){for(var b=0;b<o.length-w.length;b++){var C=o[b+w.length],_=La(C);m.appendChild(_)}p.appendChild(m),e.appendNode(p,h)}var T={fill:c,"font-size":d,"font-family":s},D={transform:"translate(".concat(v," ").concat(f,")")};Da(T,m),Da(D,p),r=Ua(p,u),e.setNodeTouched(h)}else{var S=document.createElementNS(g,"g");S.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var O=Aa(a),x=0;x<o.length;x++){var M=o[x],R=La(M);O.appendChild(R)}S.appendChild(O),e.appendNode(S,h),r=Ua(S,u)}return Object.assign({},r,{x:v,y:f,height:r.height+l,width:r.width+l})}function Aa(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),i="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",i),o}function La(e){var t=document.createElementNS("http://www.w3.org/2000/svg","tspan");return t.setAttribute("x","0"),t.setAttribute("dy","1.2em"),t.textContent=e,t}function Ua(e,t){var n=e.querySelector("rect.background");if(!t)return n&&e.removeChild(n),e.getBBox();n||((n=document.createElementNS("http://www.w3.org/2000/svg","rect")).setAttribute("class","background"),e.insertBefore(n,e.firstChild));var r=e.getBBox(),o={x:"".concat(r.x),y:"".concat(r.y),width:"".concat(r.width),height:"".concat(r.height),fill:t};return Da(o,n),r}var Va=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},i),l=ka(e,t,n,r,o,a);return l};function Ba(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw o}}return i}}(e,t)||dn(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fa(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,i,a,l,c,s,d,u=(o=e,a=(i=Ba(t,2))[0],l=i[1],s=(c=Ba(o,2))[0],d=c[1],Math.sqrt(Math.pow(a-s,2)+Math.pow(l-d,2)));u<r&&(r=u,n=un(e))})),n}function ja(e){var t=e.x,n=e.y,r=e.height,o=e.width,i=o/2,a=r/2;return[[t+i,n],[t,n+a],[t+i,n+r],[t+o,n+a]]}var Wa=function(e,t,n,r,o,i){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?Fa(r,o):o,c=ja(i),s=Fa(c,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},a);Ra(e,t,"link-".concat(n),l,s,d)},Ga=function(e,t,n,r,o,i,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),s=Va(e,t,n,r,o,c);return Wa(e,t,n,i,o,s,c),s};function Ha(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=Ta(t,"rect",n),h=e.getSvgNode(g),p=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],m=Math.abs(r[0]-o[0]),w=Math.abs(r[1]-o[1]),y={x:"".concat(p[0]),y:"".concat(p[1]),width:"".concat(m),height:"".concat(w),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)Da(y,h),e.setNodeTouched(g);else{var E=document.createElementNS(f,"rect");""!==a&&E.setAttribute("data-id",a),Sa(y,E),e.appendNode(E,g)}}function qa(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,c=a.width,s=a.lineWidth,d=a.lineDash;Ra(e,t,n,r,o,{color:l,width:c,lineWidth:s,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};Ra(e,t,"2",f.start,f.end,{color:l,width:c,lineWidth:s}),Ra(e,t,"3",g.start,g.end,{color:l,width:c,lineWidth:s})}}function za(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ka(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,z.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return Ya(r,t,n)}function Ya(e,t,n){var r=e.renderingEngineId,o=e.viewportId,i=In(o,r);if(!i)return null;var a=i._toolInstances;for(var l in a){var c=$a(a[l],e,t,n);if(c)return c}return null}function $a(e,t,n,r){var o,i,a=Be(t.viewport.element,e.constructor.toolName),l=null===(o=t.viewport)||void 0===o||null===(i=o.getCurrentImageId)||void 0===i?void 0:i.call(o);if(null!=a&&a.length){var c,s=t.viewport.element,d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return za(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?za(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(a);try{for(d.s();!(c=d.n()).done;){var u,v=c.value,f=null===(u=v.metadata)||void 0===u?void 0:u.referencedImageId;if(!(l&&f&&l!==f||!e.isPointNearTool)&&(e.isPointNearTool(s,v,n,r,"")||e.getHandleNearImagePoint(s,v,n,r)))return v}}catch(e){d.e(e)}finally{d.f()}}return null}var Za=function(e){var t=Mr(e);return null!==e&&("object"===t||"function"===t)},Ja=function(e,t,n){var r,o,i,a,l,c,s=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,i=o;return r=o=void 0,s=t,a=e.apply(i,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return s=e,l=h(w,t),d?g(e):a}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-s>=i}function w(){var e=Date.now();if(m(e))return y(e);l=h(w,function(e){var n=e-s,r=t-(e-c);return u?Math.min(r,i-n):r}(e))}function y(e){return l=void 0,v&&r?g(e):(r=o=void 0,a)}function E(){for(var e=Date.now(),n=m(e),i=arguments.length,s=new Array(i),d=0;d<i;d++)s[d]=arguments[d];if(r=s,o=this,c=e,n){if(void 0===l)return p(c);if(u)return l=h(w,t),g(c)}return void 0===l&&(l=h(w,t)),a}return t=Number(t)||0,Za(n)&&(d=Boolean(n.leading),i=(u="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):i,v="trailing"in n?Boolean(n.trailing):v),E.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),s=0,r=c=o=l=void 0},E.flush=function(){return void 0===l?a:y(Date.now())},E.pending=function(){return void 0!==l},E},Xa=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Za(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),Ja(e,t,{leading:r,trailing:o,maxWait:t})},Qa=z.utilities.calibratedPixelSpacingMetadataProvider;function el(e,t,n,r){r||(r=n),Qa.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function tl(e,t,n,r){var o,i,a,l,c,s,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=Ba(r,3),f=Ba(v[0],2);o=f[0],i=f[1];var g=Ba(v[1],2);a=g[0],l=g[1];var h=Ba(v[2],2);c=h[0],s=h[1]}else o=0,i=u[0],a=0,l=u[1],c=0,s=u[2];for(var p=ua.vec3.fromValues(o,a,c),m=e.getDirection(),w=m.slice(0,3),y=m.slice(3,6),E=m.slice(6,9),I=Ba(e.getSpacing(),3),b=I[0],C=I[1],_=I[2],T=e.indexToWorld(p),D=ua.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),S=ua.vec3.fromValues(y[0]*C,y[1]*C,y[2]*C),O=ua.vec3.fromValues(E[0]*_,E[1]*_,E[2]*_),x=u[0],M=u[0]*u[1],R=c;R<=s;R++)for(var N=a;N<=l;N++)for(var P=o;P<=i;P++){var k=[P,N,R],A=P-o,L=N-a,U=R-c,V=T,B=[V[0]+A*D[0]+L*S[0]+U*O[0],V[1]+A*D[1]+L*S[1]+U*O[1],V[2]+A*D[2]+L*S[2]+U*O[2]];if(t(B,k)){var F=R*M+N*x+P;n({value:d[F],index:F,pointIJK:k,pointLPS:B})}}}var nl=function(e,t){var n=1/0,r=0,o=1/0,i=0,a=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),i=Math.max(e[1],i),a=Math.min(e[2],a),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),t){var c=Ba(t,3),s=c[0],d=c[1],u=c[2];n=Math.max(0,n),r=Math.min(s-1,r),o=Math.max(0,o),i=Math.min(d-1,i),a=Math.max(0,a),l=Math.min(u-1,l)}return[[n,r],[o,i],[a,l]]},rl=z.utilities.transformWorldToIndex;function ol(e,t,n,r){var o=function(e,t,n){var r,o=Ba(e,2),i=o[0],a=o[1],l=ua.vec3.fromValues((i[0]+a[0])/2,(i[1]+a[1])/2,(i[2]+a[2])/2),c=ua.vec3.distance(i,a)/2;if(!n){var s=rl(t,l),d=t.getSpacing(),u=Math.min.apply(Math,un(d)),v=Math.ceil(c/u);return{boundsIJK:r=[[s[0]-v,s[0]+v],[s[1]-v,s[1]+v],[s[2]-v,s[2]+v]],centerWorld:l,radiusWorld:c}}return r=function(e,t,n,r,o){var i=Ba(n,2),a=i[0],l=i[1],c=e.getDimensions(),s=t.getCamera(),d=ua.vec3.fromValues(s.viewUp[0],s.viewUp[1],s.viewUp[2]),u=ua.vec3.fromValues(s.viewPlaneNormal[0],s.viewPlaneNormal[1],s.viewPlaneNormal[2]),v=ua.vec3.create();ua.vec3.cross(v,d,u);var f=ua.vec3.create(),g=ua.vec3.create();ua.vec3.scaleAndAdd(f,l,u,o),ua.vec3.scaleAndAdd(g,a,u,-o),ua.vec3.scaleAndAdd(f,f,v,-o),ua.vec3.scaleAndAdd(g,g,v,o);var h=[rl(e,f),rl(e,g)];return nl(h,c)}(t,n,e,0,c),{boundsIJK:r,centerWorld:l,radiusWorld:c}}(t,e,r),i=o.boundsIJK,a={center:o.centerWorld,radius:o.radiusWorld};tl(e,(function(e){return function(e,t){var n=e.center,r=e.radius,o=Ba(t,3),i=o[0],a=o[1],l=o[2],c=Ba(n,3),s=c[0],d=c[1],u=c[2];return Math.pow(i-s,2)+Math.pow(a-d,2)+Math.pow(l-u,2)<=Math.pow(r,2)}(a,e)}),n,i)}var il=function(e,t,n){var r=e.scalarData,o=e.spacing,i=e.imageData,a=n.overwrite,l=n.boundsIJK,c=(null==n?void 0:n.overlapType)||0;if(a)for(var s=0;s<r.length;s++)r[s]=0;for(var d,u,v,f,g,h=[],p=0,m=0;m<t.length;m++){var w=t[m].volume,y=w.imageData,E=w.spacing,I=w.dimensions,b=t[m].volume.scalarData.length;b===r.length&&(d=E,u=o,JSON.stringify(d)===JSON.stringify(u))&&(p=m);var C=y.getPointData().getScalars().getData(),_=t[m].lower,T=t[m].upper;h.push({imageData:y,referenceValues:C,lower:_,upper:T,spacing:E,dimensions:I,volumeSize:b})}var D=function(e,t,n){var r=e.imageData,o=e.dimensions,i=e.lower,a=e.upper,l=O(r,o,t,n);f=0,v=0,g={lower:i,upper:a};var s=!1;return tl(r,(function(){return!0}),(function(e){var t=e.value;f+=1,t>=g.lower&&t<=g.upper&&(v+=1)}),l),0===c?s=v>0:1==c&&(s=v===f),s},S=function(e,t){var n=e.imageData,r=e.referenceValues,o=e.lower,i=e.upper,a=r[n.computeOffsetIndex(t)];return!(a<=o||a>=i)},O=function(e,t,n,r){for(var o=[],i=0;i<2;i++)for(var a=0;a<2;a++)for(var l=0;l<2;l++){var c=r;c[0]=c[0]+(2*i-1)*n[0]/2,c[1]=c[1]+(2*a-1)*n[1]/2,c[2]=c[2]+(2*l-1)*n[2]/2,o.push(c)}var s=o.map((function(t){return z.utilities.transformWorldToIndex(e,t)}));return nl(s,t)};return tl(i,(function(){return!0}),(function(e){for(var t=e.index,n=e.pointIJK,o=e.pointLPS,i=h.length>0,a=0;a<h.length&&(i=h[a].volumeSize===r.length?S(h[a],n):D(h[a],h[p].spacing,o));a++);i&&(r[t]=1)}),l),it(e.volumeId),e};function al(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o];i.getFrameOfReferenceUID()===t&&r.push(i)}return r}var ll=vn.Active,cl=vn.Passive,sl=vn.Enabled;function dl(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o],a=In(i.id,i.renderingEngineId);a&&ul(a,t)&&r.push(i)}return r}function ul(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===ll||r===cl||r===sl}var vl=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.999;return e.filter((function(e){var r=e.getCamera();return Math.abs(ua.vec3.dot(r.viewPlaneNormal,t.viewPlaneNormal))>n}))};function fl(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.FrameOfReferenceUID,a=o.getViewports();a=dl(a=al(a,i),t);var l=o.getViewport(r.viewportId);n&&(a=vl(a,l.getCamera()));var c=a.map((function(e){return e.id}));return c}function gl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var hl=1-z.CONSTANTS.EPSILON;function pl(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(ua.vec3.dot(r,t))>hl;return t&&n}));if(!o.length)return[];var i,a=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return gl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(s.s();!(i=s.n()).done;){var d=i.value,u=d.data.handles.points[0];if(d.isVisible){var v=ua.vec3.create();ua.vec3.sub(v,l,u);var f=ua.vec3.dot(v,r);Math.abs(f)<a&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}function ml(e,t){if(e instanceof z.StackViewport){var n=e.getCurrentImageId(),r=n.indexOf(":"),o=n.substring(r+1);return t.filter((function(e){if(!e.isVisible)return!1;var t=e.metadata.referencedImageId;if(void 0===t)return!1;var n=t.indexOf(":");return t.substring(n+1)===o}))}if(e instanceof z.VolumeViewport){var i=e.getCamera();return pl(t,i,z.utilities.getTargetVolumeAndSpacingInNormalDir(e,i).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var wl=function(e){if(e){if(e.data&&e.highlighted)return hi.Highlighted;if(ye(e.annotationUID))return hi.Selected;if(oe(e))return hi.Locked}return hi.Default};var yl=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e;Y(this,o);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return J(Sr(e=r.call.apply(r,[this].concat(n))),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,i=n.columnScale,a=n.imageId,l=n.imageData,c=n.worldToIndex;if((0,z.getEnabledElement)(r).viewport instanceof z.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var s=l.getIndexToWorld(),d=z.utilities.imageIdToURI(a),u=Ve();u.getFramesOfReference().forEach((function(t){var n=u.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){z.utilities.imageIdToURI(e.metadata.referencedImageId)===d&&(e.invalidated=!0,e.data.cachedStats={},e.data.handles.points=e.data.handles.points.map((function(e){var t=ua.vec4.fromValues.apply(ua.vec4,un(e).concat([1])),n=ua.vec4.fromValues(0,0,0,1),r=ua.vec4.create();ua.vec4.transformMat4(r,t,c);var a=[i*r[0],o*r[1],r[2]];return ua.vec4.transformMat4(n,ua.vec4.fromValues(a[0],a[1],a[2],1),s),n.slice(0,3)})))})),xn(r))}))})),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return ml((0,z.getEnabledElement)(e).viewport,t)}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,i=this.getTargetId(e);if(e instanceof z.StackViewport)o=i.split("imageId:")[1];else{var a=i.split("volumeId:")[1],l=z.cache.getVolume(a);o=z.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return Ni(e,t,wl(n),this.mode)}}]),o}(Fr);J(yl,"toolName",void 0),yl.toolName="AnnotationDisplayTool";var El=yl;function Il(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return bl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?bl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function bl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Cl=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e;Y(this,o);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return J(Sr(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,i=o.element,a=o.currentPoints.canvas,l=!1,c=Il(n);try{for(c.s();!(r=c.n()).done;){var s=r.value;if(!oe(s)&&Se(s.annotationUID)){var d=s.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(i,s,a,6),f=v&&!s.highlighted,g=!v&&s.highlighted;f||g?(s.highlighted=!s.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){c.e(e)}finally{c.f()}return l})),e}return Z(o,[{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data,a=i.handles,l=a.points,c=a.textBox,s=c.worldBoundingBox;if(s){var d={topLeft:o.worldToCanvas(s.topLeft),topRight:o.worldToCanvas(s.topRight),bottomLeft:o.worldToCanvas(s.bottomLeft),bottomRight:o.worldToCanvas(s.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return i.handles.activeHandleIndex=null,c}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==ua.vec2.distance(n,f)<r)return i.handles.activeHandleIndex=u,v}i.handles.activeHandleIndex=null}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle("textBoxFontFamily",e,t),fontSize:this.getStyle("textBoxFontSize",e,t),color:this.getStyle("textBoxColor",e,t),shadow:this.getStyle("textBoxShadow",e,t),background:this.getStyle("textBoxBackground",e,t),lineWidth:this.getStyle("textBoxLinkLineWidth",e,t),lineDash:this.getStyle("textBoxLinkLineDash",e,t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(El);J(Cl,"toolName",void 0),Cl.toolName="AnnotationTool";var _l=Cl;function Tl(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function Dl(e,t,n){var r=Tl(e,t);if(0===r)return Tl(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return Tl(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function Sl(e,t,n){if(2!==e.length||2!==t.length||2!==n.length)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(Dl(e,t,n))}function Ol(e,t){if(4!==e.length||2!==t.length)throw Error("rectangle:[left, top, width, height] or point: [x,y] not defined correctly");var n=Ba(e,4),r=n[0],o=n[1],i=n[2],a=n[3],l=655535,c=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,i,a);return Object.keys(c).forEach((function(e){var n=Ba(c[e],2),r=Sl(n[0],n[1],t);r<l&&(l=r)})),l}function xl(e){var t,n,r,o,i=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),a=(i.top[1]+i.bottom[1])/2;return[i.right[0],a]}function Ml(e,t,n,r){var o=ua.vec3.create();ua.vec3.cross(o,t,e);var i=ua.vec3.fromValues.apply(ua.vec3,un(n)),a=ua.vec3.fromValues.apply(ua.vec3,un(r)),l=ua.vec3.create();ua.vec3.subtract(l,i,a);var c=ua.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=ua.vec3.dot(l,o)/(c*ua.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}function Rl(e,t){return"CT"===e?"HU":"PT"===e&&!0===t?"SUV":""}function Nl(e,t){if(e instanceof z.BaseVolumeViewport){var n=t.split("volumeId:")[1],r=z.cache.getVolume(n);return r.scaling&&Object.keys(r.scaling).length>0}if(e instanceof z.StackViewport)return e.getImageData().preScale.scaled;throw new Error("Viewport is not a valid type")}var Pl=z.utilities.transformWorldToIndex,kl=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[un(i),un(i),un(i),un(i)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Fe(o,f);var g=fl(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(c,g),f})),J(Sr(e),"isPointNearTool",(function(t,n,r,o){var i=(0,z.getEnabledElement)(t).viewport,a=n.data.handles.points,l=i.worldToCanvas(a[0]),c=i.worldToCanvas(a[3]),s=e._getRectangleImageCoordinates([l,c]),d=[r[0],r[1]];return Ol([s.left,s.top,s.width,s.height],d)<=o})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),zi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),t.preventDefault()})),J(Sr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var c=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:c,handleIndex:a,movingTextBox:l},e._activateModify(o),zi(o);var s=(0,z.getEnabledElement)(o).renderingEngine;br(s,c),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(s,i),a){var d=K.ANNOTATION_COMPLETED,u={annotation:o};(0,z.triggerEvent)(z.eventTarget,d,u)}}})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g,h,p,m,w,y,E,I,b=n.currentPoints,C=(0,z.getEnabledElement)(r).viewport,_=C.worldToCanvas,T=C.canvasToWorld,D=b.world,S=s.handles.points;switch(S[l]=un(D),l){case 0:case 3:g=_(S[0]),h=[(m=_(S[3]))[0],g[1]],p=[g[0],m[1]],y=T(h),E=T(p),S[1]=y,S[2]=E;break;case 1:case 2:h=_(S[1]),g=[(p=_(S[2]))[0],h[1]],m=[h[0],p[1]],w=T(g),I=T(m),S[0]=w,S[3]=I}i.invalidated=!0}e.editData.hasMoved=!0;var O=(0,z.getEnabledElement)(r).renderingEngine;br(O,a)})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return a.worldToCanvas(e)}));u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=a.getCamera(),_=C.viewPlaneNormal,T=C.viewUp;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&(e._throttledCalculateCachedStats(f,_,T,d,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,_,T,d,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var D=void 0;if(Se(g)){oe(f)||e.editData||null===w||(D=[y[w]]),D&&Ma(n,g,"0",D,{color:b});var S="".concat(g,"-rect");Ha(n,g,"0",y[0],y[3],{color:b,lineDash:I,lineWidth:E},S),i=!0;var O=Nl(a,s),x=e._getTextLines(h,s,O);if(x&&0!==x.length){if(!h.handles.textBox.hasMoved){var M=xl(y);h.handles.textBox.worldPosition=a.canvasToWorld(M)}var R=a.worldToCanvas(h.handles.textBox.worldPosition),N=Ga(n,g,"1",x,R,y,{},e.getLinkedTextBoxStyle(u,f)),P=N.x,k=N.y,A=N.width,L=N.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,k]),topRight:a.canvasToWorld([P+A,k]),bottomLeft:a.canvasToWorld([P,k+L]),bottomRight:a.canvasToWorld([P+A,k+L])}}}}return i})),J(Sr(e),"_getRectangleImageCoordinates",(function(e){var t=Ba(e,2),n=t[0],r=t[1];return{left:Math.min(n[0],r[0]),top:Math.min(n[1],r[1]),width:Math.abs(n[0]-r[0]),height:Math.abs(n[1]-r[1])}})),J(Sr(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,i=r.mean,a=r.max,l=r.stdDev,c=r.Modality,s=r.areaUnit;if(void 0!==i){var d=[],u=Rl(c,n);return d.push("Area: ".concat(o.toFixed(2)," ").concat(s,"²")),d.push("Mean: ".concat(i.toFixed(2)," ").concat(u)),d.push("Max: ".concat(a.toFixed(2)," ").concat(u)),d.push("Std Dev: ".concat(l.toFixed(2)," ").concat(u)),d}})),J(Sr(e),"_calculateCachedStats",(function(t,n,r,o,i){for(var a=t.data,l=i.viewportId,c=i.renderingEngineId,s=a.handles.points[0],d=a.handles.points[3],u=a.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o);if(h){var p=h.dimensions,m=h.scalarData,w=h.imageData,y=h.metadata,E=h.hasPixelSpacing,I=Pl(w,s);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Pl(w,d);if(b[0]=Math.floor(b[0]),b[1]=Math.floor(b[1]),b[2]=Math.floor(b[2]),e._isInsideVolume(I,b,p)){e.isHandleOutsideImage=!1;for(var C=Math.min(I[0],b[0]),_=Math.max(I[0],b[0]),T=Math.min(I[1],b[1]),D=Math.max(I[1],b[1]),S=Math.min(I[2],b[2]),O=Math.max(I[2],b[2]),x=Ml(n,r,s,d),M=x.worldWidth*x.worldHeight,R=0,N=0,P=0,k=-1/0,A=p[0],L=p[0]*p[1],U=S;U<=O;U++)for(var V=T;V<=D;V++)for(var B=C;B<=_;B++){var F=m[U*L+V*A+B];F>k&&(k=F),R++,N+=F}N/=R;for(var j=S;j<=O;j++)for(var W=T;W<=D;W++)for(var G=C;G<=_;G++){var H=m[j*L+W*A+G]-N;P+=H*H}P/=R,P=Math.sqrt(P),u[g]={Modality:y.Modality,area:M,mean:N,stdDev:P,max:k,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,u[g]={Modality:y.Modality}}}t.invalidated=!1;var q=K.ANNOTATION_MODIFIED,Y={annotation:t,viewportId:l,renderingEngineId:c};return(0,z.triggerEvent)(z.eventTarget,q,Y),u})),J(Sr(e),"_isInsideVolume",(function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o)}(_l);J(kl,"toolName",void 0),kl.toolName="RectangleROI";var Al=kl;var Ll=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s,d,u=l.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getTargetId(l);if(l instanceof z.StackViewport)s=g.split("imageId:")[1];else{d=g.split("volumeId:")[1];var h=z.cache.getVolume(d);s=z.utilities.getClosestImageId(h,i,v,f)}var p={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:un(v),enabledElement:a,viewUp:un(f),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:s,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null},segmentationId:null}};Fe(o,p);var m=fl(o,e.getToolName());return e.editData={annotation:p,viewportIdsToRender:m,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(c,m),p})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=t.renderingEngineId,c=a.element,s=Be(c,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return i;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return i;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return a.worldToCanvas(e)}));d.annotationUID=f;var w=e.getStyle("lineWidth",d,v),y=e.getStyle("lineDash",d,v),E=e.getStyle("color",d,v);if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var I=K.ANNOTATION_MODIFIED,b={annotation:v,viewportId:a.id,renderingEngineId:l};(0,z.triggerEvent)(z.eventTarget,I,b);var C=void 0;Se(f)&&(oe(v)||e.editData||null===p||(C=[m[p]]),C&&Ma(n,f,"0",C,{color:E}),Ha(n,f,"0",m[0],m[3],{color:E,lineDash:y,lineWidth:w}),i=!0)}return i})),e}return Z(o)}(Al);J(Ll,"toolName",void 0),Ll.toolName="RectangleROIThreshold";var Ul=Ll;var Vl=z.utilities.transformWorldToIndex,Bl=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{numSlicesToPropagate:10}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s,d,u,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof z.StackViewport)throw new Error("Stack Viewport Not implemented");if(u=e.getTargetId(l).split("volumeId:")[1],d=z.cache.getVolume(u),!(s=z.utilities.getClosestImageId(d,i,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=z.utilities.getSpacingInNormalDirection(d,f),m=e._getEndSliceIndex(d,i,p,f),w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:un(f),enabledElement:a,viewUp:un(g),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:s,toolName:e.getToolName(),volumeId:u,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[s]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(w,d),Fe(o,w);var y=fl(o,e.getToolName());return e.editData={annotation:w,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(c,y),w})),J(Sr(e),"renderAnnotation",(function(t,n){var r=!1,o=Be(t.viewport.element,e.getToolName());if(null==o||!o.length)return r;for(var i=t.viewport,a=i.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},c=0;c<o.length;c++){var s=o[c],d=s.annotationUID,u=s.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.worldToCanvas(e)}));l.annotationUID=d;var w=e.getStyle("lineWidth",l,s),y=e.getStyle("lineDash",l,s),E=e.getStyle("color",l,s);if(!(a<Math.min(v,f)||a>Math.max(v,f))){s.invalidated&&e._throttledCalculateCachedStats(s,t);var I=!1;if(a!==v&&a!==f||(I=!0),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(Se(d)){oe(s)||e.editData||null===p||!I||(b=[m[p]]),b&&Ma(n,d,"0",b,{color:E});var C=y;I||(C=2),Ha(n,d,"0",m[0],m[3],{color:E,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStatsTool,100,{trailing:!0}),e}return Z(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,i=r.spacingInNormal,a=t.imageData,l=n.startSlice,c=n.endSlice,s=n.handles.points,d=Vl(a,s[0]);if(d[2]!==l)throw new Error("Start slice does not match");var u=ua.vec3.fromValues(d[0],d[1],c),v=ua.vec3.create();a.indexToWorldVec3(d,v);var f=ua.vec3.create();a.indexToWorldVec3(u,f);for(var g=ua.vec3.distance(v,f),h=[],p=function(e){h.push(s.map((function(t){var n=ua.vec3.create();return ua.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=i)p(m);n.cachedStats.projectionPoints=h;for(var w=[],y=0,E=h;y<E.length;y++){var I=E[y],b=z.utilities.getClosestImageId(t,I[0],o,r.viewUp);w.push(b)}n.cachedStats.projectionPointsImageIds=w}},{key:"_calculateCachedStatsTool",value:function(e,t){var n=e.data,r=t.viewportId,o=t.renderingEngineId,i=t.viewport,a=n.cachedStats,l=this.getTargetId(i),c=z.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,c),e.invalidated=!1;var s=K.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,z.triggerEvent)(z.eventTarget,s,d),a}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,i=ua.vec3.create();ua.vec3.scaleAndAdd(i,t,r,o*n);for(var a,l=n/2,c=e.imageIds,s=0;s<c.length;s++){var d=c[s],u=z.metaData.get("imagePlaneModule",d).imagePositionPatient,v=ua.vec3.create();ua.vec3.sub(v,i,u);var f=ua.vec3.dot(v,r);Math.abs(f)<l&&(a=s)}return a}}]),o}(Al);J(Bl,"toolName",void 0),Bl.toolName="RectangleROIStartEndThreshold";var Fl=Bl,jl=function(e,t){var n=e.findIndex((function(e){var t=Ba(e,2);return t[0]===t[1]}));if(-1===n)throw new Error("3D bounding boxes not supported in an oblique plane");return e[n][0]-=t,e[n][1]+=t,e},Wl=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[];if(e.forEach((function(e){var o,i,a=e.data,l=a.handles.points,c=t.imageData,s=t.dimensions,d=l;if(null!==(o=a.cachedStats)&&void 0!==o&&o.projectionPoints){var u,v=a.cachedStats.projectionPoints;d=(u=[]).concat.apply(u,un(v))}var f=d.map((function(e){return z.utilities.transformWorldToIndex(c,e)})),g=nl(f,s);!n.numSlicesToProject||null!==(i=a.cachedStats)&&void 0!==i&&i.projectionPoints||(g=jl(g,n.numSlicesToProject)),r.push(g)})),1===r.length)return r[0];var o=r.reduce((function(e,t){return{iMin:Math.min(e.iMin,t.iMin),jMin:Math.min(e.jMin,t.jMin),kMin:Math.min(e.kMin,t.kMin),iMax:Math.max(e.iMax,t.iMax),jMax:Math.max(e.jMax,t.jMax),kMax:Math.max(e.kMax,t.kMax)}}),{iMin:1/0,jMin:1/0,kMin:1/0,iMax:-1/0,jMax:-1/0,kMax:-1/0});return o};function Gl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Hl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ql(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hl(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var zl=function(e,t,n,r){var o,i=e.map((function(e){return Ge(e)}));!function(e){var t,n=[Ul.toolName,Fl.toolName],r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Gl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(e);try{for(r.s();!(t=r.n()).done;){var o=t.value.metadata.toolName;if(!n.includes(o))throw new Error("rectangleROIThresholdVolumeByRange only supports RectangleROIThreshold and RectangleROIStartEndThreshold annotations")}}catch(e){r.e(e)}finally{r.f()}}(i);for(var a=0;a<n.length;a++)n[a].volume.scalarData.length!==t.scalarData.length&&0!==a||(o=Wl(i,n[a].volume,r));return il(t,n,ql(ql({},r),{},{boundsIJK:o}))},Kl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,i=t.spacing;if(!(z.utilities.isEqual(r,e[0].dimensions)&&z.utilities.isEqual(n,e[0].direction)&&z.utilities.isEqual(i,e[0].spacing)&&z.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,i=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(i[r]=t)}));var a={scalarData:i,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,c=z.volumeLoader.createLocalVolume(a,n,l);return c};function Yl(e,t){if(e===$e.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive&&"number"==typeof e.outlineOpacity&&"number"==typeof e.outlineOpacityInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function $l(e){var t=e.type;if(t===$e.Labelmap)return Ye();throw new Error("Unknown representation type: ".concat(t))}function Zl(e){return Jl.apply(this,arguments)}function Jl(){return(Jl=Wr(Hr().mark((function e(t){var n,r,o,i,a,l,c,s,d,u,v,f;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,i=t.segmentationId,a=(0,z.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=a.viewport)instanceof z.VolumeViewport){e.next=8;break}throw new Error("Segmentation only supports VolumeViewport");case 8:if(c=l.getDefaultActor(),s=c.uid,void 0===i&&(i="".concat(s,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:z.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,X._cloneDeep)(o),e.next=14,z.volumeLoader.createLocalVolume(u,i);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,z.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:i});case 19:return e.abrupt("return",i);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Xl(e,t){return e===t}function Ql(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}function ec(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}var tc=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onFlood,o=n.onBoundary,i=n.equals||Xl,a=n.diagonals||!1,l=E(t),c=b(),s=[],d=[],u={},v={};for(s.push({currentArgs:t});s.length>0;)f(s.pop());return{flooded:d,boundaries:_()};function f(e){var t=e.currentArgs,n=e.previousArgs;g(t)||(h(t),p(t)?(m(t),y(t)):w(n))}function g(e){return!0===u[e]}function h(e){u[e]=!0}function p(e){var t=I(E,[e]);return I(i,[t,l])}function m(e){d.push(e),r&&r.apply(void 0,un(e))}function w(e){v[e]=e,o&&o.apply(void 0,un(e))}function y(e){for(var t=0;t<c.length;t+=1){for(var n=c[t],r=e.slice(0),o=0;o<e.length;o+=1)r[o]+=n[o];s.push({currentArgs:r,previousArgs:e})}}function E(t){return e.apply(void 0,un(t))}function I(e,t){try{return e.apply(void 0,un(t))}catch(e){return}}function b(){return C(t.length).filter((function(e){var t=Ql(e);return 0!==t&&(1===t||a)}))}function C(e){for(var t=[],n=function(e){return e.split("").map((function(e){return parseInt(e,10)-1}))},r=0;r<Math.pow(3,e);r+=1){var o=ec(r.toString(3),"0",e);t.push(n(o))}return t}function _(){var e=[];for(var t in v)void 0!==v[t]&&e.unshift(v[t]);return e}};function nc(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.points,c=r.scalarData;ol(r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(c[t]=i)}),n),it(a)}(e,t)}function rc(e,t){nc(e,Object.assign({},t,{segmentIndex:0}))}function oc(e){var t=Ba(e,4),n=t[0],r=t[1],o=t[2],i=t[3];return[[o[0],r[1]],[i[0],n[1]]]}function ic(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,i=e.zRadius,a=Ba(t,3),l=a[0],c=a[1],s=a[2],d=Ba(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(c-v)*(c-v)/(o*o)),0!==i&&(g+=(s-f)*(s-f)/(i*i)),g<=1}var ac=z.utilities.transformWorldToIndex;function lc(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.volume,o=t.imageVolume,i=t.points,a=t.segmentsLocked,l=t.segmentIndex,c=t.segmentationId,s=t.strategySpecificConfiguration,d=r.imageData,u=r.dimensions,v=r.scalarData,f=e.viewport,g=ua.vec3.fromValues(0,0,0);i.forEach((function(e){ua.vec3.add(g,g,e)})),ua.vec3.scale(g,g,1/i.length);var h=i.map((function(e){return f.worldToCanvas(e)})),p=oc(h),m=Ba(p,2),w=m[0],y=m[1],E=f.canvasToWorld(w),I=f.canvasToWorld(y),b=[ac(d,E),ac(d,I)],C=nl(b,u);if(C.every((function(e){var t=Ba(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var _={center:g,xRadius:Math.abs(E[0]-I[0])/2,yRadius:Math.abs(E[1]-I[1])/2,zRadius:Math.abs(E[2]-I[2])/2},T=new Set;tl(d,(function(e,t){return ic(_,e)}),n?function(e){var t=e.value,n=e.index,r=e.pointIJK;a.includes(t)||cc(n,o,s)&&(v[n]=l,T.add(r[2]))}:function(e){var t=e.value,n=e.index,r=e.pointIJK;a.includes(t)||(v[n]=l,T.add(r[2]))},C);var D=Array.from(T);it(c,D)}function cc(e,t,n){var r=n.THRESHOLD_INSIDE_CIRCLE,o=t.scalarData[e],i=r.threshold;return i[0]<=o&&o<=i[1]}function sc(e,t){lc(e,t,!1)}function dc(e,t){var n=t.volume,r=t.imageVolume;if(!z.utilities.isEqual(n.dimensions,r.dimensions)||!z.utilities.isEqual(n.direction,r.direction))throw new Error("Only source data the same dimensions/size/orientation as the segmentation currently supported.");lc(e,t,!0)}function uc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uc(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function fc(e,t){sc(e,vc(vc({},t),{},{segmentIndex:0}))}function gc(e){var t=ct().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function hc(e,t){ct().setActiveSegmentationRepresentation(e,t),rt(e,t)}function pc(e,t){var n=st(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function mc(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=st(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),ot(e)}function wc(e){var t=st(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function yc(e,t){var n=st(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,ot(e))}function Ec(e){var t=st(e);if(t)return t.activeSegmentIndex}function Ic(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");z.utilities.isEqual(e[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),e.unshift([0,0,0,0])),Ot(e,t)}function bc(e,t,n){var r=Ct(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!St(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,rt(e,t)}function Cc(e,t,n){var r=Ct(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return St(r.colorLUTIndex)[n]}function _c(e,t,n,r){for(var o=Cc(e,t,n),i=0;i<r.length;i++)o[i]=r[i];rt(e,t)}var Tc=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:sc,THRESHOLD_INSIDE_CIRCLE:dc,ERASE_INSIDE_CIRCLE:fc,FILL_INSIDE_SPHERE:nc,ERASE_INSIDE_SPHERE:rc},strategySpecificConfiguration:{THRESHOLD_INSIDE_CIRCLE:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",brushSize:25}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_editData",void 0),J(Sr(e),"_hoverData",void 0),J(Sr(e),"onSetToolPassive",(function(){e.disableCursor()})),J(Sr(e),"onSetToolEnabled",(function(){e.disableCursor()})),J(Sr(e),"onSetToolDisabled",(function(){e.disableCursor()})),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail.element,r=(0,z.getEnabledElement)(n),o=r.viewport,i=r.renderingEngine;if(o instanceof z.StackViewport)throw new Error("Not implemented yet");var a=gc(e.toolGroupId);if(!a)throw new Error("No active segmentation detected, create one before using the brush tool");var l=a.segmentationId,c=a.type,s=wc(l),d=st(l).representationData[c].volumeId,u=z.cache.getVolume(d),v=o.getActors()[0].uid,f=z.cache.getVolume(v),g=[o.id];return e._editData={segmentation:u,imageVolume:f,segmentsLocked:s},e._activateDraw(n),zi(n),t.preventDefault(),br(i,g),!0})),J(Sr(e),"mouseMoveCallback",(function(t){e.mode===vn.Active&&e.updateCursor(t)})),J(Sr(e),"_mouseDragCallback",(function(t){var n=t.detail.element,r=(0,z.getEnabledElement)(n),o=r.renderingEngine,i=e._editData,a=i.imageVolume,l=i.segmentation,c=i.segmentsLocked;e.updateCursor(t);var s=e._hoverData,d=s.segmentIndex,u=s.segmentationId,v=s.segmentationRepresentationUID,f=s.brushCursor,g=s.viewportIdsToRender,h=f.data,p=f.metadata,m=p.viewPlaneNormal,w=p.viewUp;br(o,g);var y={points:h.handles.points,volume:l,imageVolume:a,segmentIndex:d,segmentsLocked:c,viewPlaneNormal:m,toolGroupId:e.toolGroupId,segmentationId:u,segmentationRepresentationUID:v,viewUp:w,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(r,y)})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.imageVolume,i=r.segmentation,a=r.segmentsLocked,l=e._hoverData,c=l.segmentIndex,s=l.segmentationId,d=l.segmentationRepresentationUID,u=l.brushCursor,v=u.data,f=u.metadata,g=f.viewPlaneNormal,h=f.viewUp;e._deactivateDraw(n),qi(n);var p=(0,z.getEnabledElement)(n),m=p.viewport;if(e._editData=null,e.updateCursor(t),m instanceof z.StackViewport)throw new Error("Not implemented yet");var w={points:v.handles.points,volume:i,imageVolume:o,segmentIndex:c,segmentsLocked:a,viewPlaneNormal:g,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:d,viewUp:h,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(p,w)})),J(Sr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),e}return Z(o,[{key:"disableCursor",value:function(){this._hoverData=void 0}},{key:"updateCursor",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints.canvas,o=(0,z.getEnabledElement)(n),i=o.renderingEngine,a=o.viewport,l=a.getCamera(),c=l.viewPlaneNormal,s=l.viewUp,d=this.toolGroupId,u=gc(d);if(u){var v=u.segmentationRepresentationUID,f=u.segmentationId,g=Ec(f),h=Cc(d,v,g),p=[a.id],m={metadata:{viewPlaneNormal:un(c),viewUp:un(s),FrameOfReferenceUID:a.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:h},data:{}};this._hoverData={brushCursor:m,centerCanvas:r,segmentIndex:g,segmentationId:f,segmentationRepresentationUID:v,segmentColor:h,viewportIdsToRender:p},this._calculateCursor(n,r),br(i,p)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"_calculateCursor",value:function(e,t){var n=(0,z.getEnabledElement)(e).viewport.canvasToWorld,r=this.configuration.brushSize,o=[t[0],t[1]+r],i=[t[0],t[1]-r],a=[t[0]-r,t[1]],l=[t[0]+r,t[1]],c=this._hoverData.brushCursor.data;void 0===c.handles&&(c.handles={}),c.handles.points=[n(o),n(i),n(a),n(l)],c.invalidated=!1}},{key:"invalidateBrushCursor",value:function(){void 0!==this._hoverData&&(this._hoverData.brushCursor.data.invalidated=!0)}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor;if(!0===r.data.invalidated){var o=this._hoverData.centerCanvas,i=n.element;this._calculateCursor(i,o)}var a=r.metadata,l=a.brushCursorUID,c=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");n.getRenderingEngine()?Oa(t,l,"0",u,v,{color:f}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(Fr);J(Tc,"toolName",void 0),Tc.toolName="Brush";var Dc=Tc;function Sc(e){var t=Dr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length)return Object.values(n).filter((function(e){return e instanceof Dc}))}}function Oc(e,t){var n=Dr(e);if(void 0!==n){Sc(e).forEach((function(e){e.configuration.brushSize=t,e.invalidateBrushCursor()}));var r=n.getViewportsInfo(),o=Object.keys(r).map((function(e){return r[e]}));if(o.length){var i=o[0].renderingEngineId,a=n.getViewportIds(),l=(0,z.getRenderingEngine)(i);br(l,a)}}}function xc(e){var t=Dr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=Sc(e)[0];if(r)return r.configuration.brushSize}}}function Mc(e,t){var n=Dr(e);if(void 0!==n){Sc(e).forEach((function(e){e.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold=t}));var r=n.getViewportsInfo();if(r.length){var o=r[0].renderingEngineId,i=n.getViewportIds(),a=(0,z.getRenderingEngine)(o);br(a,i)}}}function Rc(e){var t=Dr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=Sc(e)[0];if(r)return r.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold}}}var Nc=1e-6;function Pc(e,t,n){var r=Ba(n,2),o=r[0],i=r[1];if(Math.abs(t)<Nc)return e<0;var a=e/t;if(t>0){if(a>i)return 0;a>o&&(n[0]=a)}else{if(a<o)return 0;a<i&&(n[1]=a)}return 1}function kc(e,t,n,r,o){var i=Ba(e,2),a=i[0],l=i[1],c=Ba(t,2),s=c[0]-a,d=c[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(s)<Nc&&Math.abs(d)<Nc&&a>=n[0]&&a<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(Pc(n[0]-a,s,u)&&Pc(a-n[2],-s,u)&&Pc(n[1]-l,d,u)&&Pc(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=a+f*s,o[1]=l+f*d),v>0&&(r[0]+=v*s,r[1]+=v*d),1}return 0}function Ac(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function Lc(e,t,n,r){var o=Ba(e,2),i=o[0],a=o[1],l=Ba(t,2),c=l[0],s=l[1],d=Ba(n,2),u=d[0],v=d[1],f=Ba(r,2),g=f[0],h=f[1],p=s-a,m=i-c,w=c*a-i*s,y=p*u+m*v+w,E=p*g+m*h+w;if(0===y||0===E||Ac(y)!==Ac(E)){var I=h-v,b=u-g,C=g*v-u*h,_=I*i+b*a+C,T=I*c+b*s+C;if(0===_||0===T||Ac(_)!==Ac(T)){var D=p*b-I*m;return[(m*C-b*w)/D,(I*w-p*C)/D]}}}function Uc(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=r;a<e.length;a++){var l=e[o],c=e[a];if(Bc(t,n,l,c))return[o,a];o=a}}function Vc(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=[],l=r;l<e.length;l++){var c=e[o],s=e[l];Bc(t,n,c,s)&&a.push([o,l]),o=l}if(0!==a.length){var d=[];a.forEach((function(n){var r=[e[n[0]],e[n[1]]],o=[(r[0][0]+r[1][0])/2,(r[0][1]+r[1][1])/2];d.push(ua.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:a[v],distance:u}}}function Bc(e,t,n,r){var o=!1,i=[Fc(e,t,n),Fc(e,t,r),Fc(n,r,e),Fc(n,r,t)];return i[0]!==i[1]&&i[2]!==i[3]||((0===i[0]&&jc(e,n,t)||0===i[1]&&jc(e,r,t)||0===i[2]&&jc(n,e,r)||0===i[3]&&jc(n,t,r))&&(o=!0),o)}function Fc(e,t,n){var r=(t[1]-e[1])*(n[0]-t[0])-(t[0]-e[0])*(n[1]-t[1]);return 0===r?0:r>0?1:2}function jc(e,t,n){return t[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1])}var Wc=.001,Gc=function(e,t){var n,r,o;if(e instanceof z.StackViewport){var i=e.getImageData();r=i.direction.slice(0,3),o=i.direction.slice(3,6),n=i.spacing}else{var a=e.getImageData(),l=a.direction,c=a.spacing,s=e.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=ua.vec3.create();ua.vec3.cross(h,u,d);var p,m=Math.abs(ua.vec3.dot(h,v)),w=Math.abs(ua.vec3.dot(h,f)),y=Math.abs(ua.vec3.dot(h,g));if(Math.abs(1-m)<Wc)p=c[0],r=v;else if(Math.abs(1-w)<Wc)p=c[1],r=f;else{if(!(Math.abs(1-y)<Wc))throw new Error("No support yet for oblique plane planar contours");p=c[2],r=g}var E,I=Math.abs(ua.vec3.dot(d,v)),b=Math.abs(ua.vec3.dot(d,f)),C=Math.abs(ua.vec3.dot(d,g));if(Math.abs(1-I)<Wc)E=c[0],o=v;else if(Math.abs(1-b)<Wc)E=c[1],o=f;else{if(!(Math.abs(1-C)<Wc))throw new Error("No support yet for oblique plane planar contours");E=c[2],o=g}n=[p,E]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},Hc=function(e,t,n){return ua.vec2.dist(e,t)<n},qc=function(e,t,n,r){var o=r.xDir,i=r.yDir,a=r.spacing,l=(0,z.getEnabledElement)(e).viewport,c=l.canvasToWorld(t[t.length-1]),s=l.canvasToWorld(n),d=ua.vec3.create();ua.vec3.subtract(d,s,c);var u=Math.abs(ua.vec3.dot(d,o)),v=Math.abs(ua.vec3.dot(d,i)),f=Math.max(Math.floor(u/a[0]),Math.floor(v/a[0]));if(f>1){var g=t[t.length-1],h=ua.vec2.dist(g,n),p=ua.vec2.create();ua.vec2.subtract(p,n,g),ua.vec2.set(p,p[0]/h,p[1]/h);for(var m=h/f,w=1;w<=f;w++)t.push([g[0]+m*p[0]*w,g[1]+m*p[1]*w])}else t.push(n);return f},zc=function(e,t,n,r){var o=[e[0]-t[0],e[1]-t[1]],i=[n[0]-t[0],n[1]-t[1]],a=o[0]*i[0]+o[1]*i[1];if(a<0)return!1;var l=Math.sqrt(i[0]*i[0]+i[1]*i[1]);if(0===l)return!1;var c=a/l,s=[i[0]/l,i[1]/l],d=[s[0]*c,s[1]*c],u=[t[0]+d[0],t[1]+d[1]];return!(ua.vec2.distance(e,u)>r||ua.vec2.distance(t,u)>ua.vec2.distance(t,n))};function Kc(e){for(var t=e.length,n=0,r=t-1,o=0;o<t;o++)n+=(e[r][0]+e[o][0])*(e[r][1]-e[o][1]),r=o;return Math.abs(n/2)}function Yc(e,t){if(2!==(null==e?void 0:e.length)||2!==(null==t?void 0:t.length))throw Error("points should have 2 elements of [x, y]");var n=Ba(e,2),r=n[0],o=n[1],i=Ba(t,2),a=i[0],l=i[1];return Math.sqrt(Math.pow(r-a,2)+Math.pow(o-l,2))}var $c=c(807),Zc=c.n($c);function Jc(e,t,n,r){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,a=e.getCamera(),l=a.position,c=z.utilities.getTargetVolumeAndSpacingInNormalDir(e,a,n),s=c.spacingInNormalDirection,d=s*i,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];Zc().subtract(t,l,g);for(var p=v;p<=f;p+=d){h=[p,0,0];var m=(p-l[0])/g[0];if(h[1]=m*g[1]+l[1],h[2]=m*g[2]+l[2],Qc(h,u)){var w=e.getIntensityFromWorld(h),y=r(w,h);y&&(o=y)}}return o}var Xc,Qc=function(e,t){var n=Ba(t,6),r=n[0],o=n[1],i=n[2],a=n[3],l=n[4],c=n[5];return e[0]>r&&e[0]<o&&e[1]>i&&e[1]<a&&e[2]>l&&e[2]<c},es={filterAnnotationsWithinSlice:pl,getWorldWidthAndHeightFromCorners:Ml,filterAnnotationsForDisplay:ml,getPointInLineOfSightWithCriteria:Jc};function ts(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",i=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],a=1e-4,l=0;l<3;l++)if(i[0]>a&&i[0]>i[1]&&i[0]>i[2])t+=n,i[0]=0;else if(i[1]>a&&i[1]>i[0]&&i[1]>i[2])t+=r,i[1]=0;else if(i[2]>a&&i[2]>i[0]&&i[2]>i[1])t+=o,i[2]=0;else if(i[0]>a&&i[1]>a&&i[0]===i[1])t+=n+r,i[0]=0,i[1]=0;else if(i[0]>a&&i[2]>a&&i[0]===i[2])t+=n+o,i[0]=0,i[2]=0;else{if(!(i[1]>a&&i[2]>a&&i[1]===i[2]))break;t+=r+o,i[1]=0,i[2]=0}return t}function ns(e){var t=e.replace("H","f");return(t=(t=(t=(t=(t=t.replace("F","h")).replace("R","l")).replace("L","r")).replace("A","p")).replace("P","a")).toUpperCase()}!function(e){e.CLIP_STOPPED="CORNERSTONE_CINE_TOOL_STOPPED",e.CLIP_STARTED="CORNERSTONE_CINE_TOOL_STARTED"}(Xc||(Xc={}));var rs=Xc,os={};function is(e,t){var n=(0,z.getEnabledElement)(e).viewportId;os[n]=t}function as(e){var t=(0,z.getEnabledElement)(e).viewportId;return os[t]}var ls=z.utilities.triggerEvent;function cs(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,z.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var i=o.viewport;if(!(i instanceof z.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var a,l,c,s,d=i.getTargetImageIdIndex(),u=i.getImageIds(),v=as(e);if(v?ds(v):(v={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:null!==(a=t.frameTimeVector)&&void 0!==a?a:void 0,speed:null!==(l=t.frameTimeVectorSpeedMultiplier)&&void 0!==l?l:1,reverse:null!==(c=t.reverse)&&void 0!==c&&c,loop:null===(s=t.loop)||void 0===s||s},is(e,v)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(v.framesPerSecond=Number(t.framesPerSecond),v.reverse=v.framesPerSecond<0,v.ignoreFrameTimeVector=!0),!0!==v.ignoreFrameTimeVector&&v.frameTimeVector&&v.frameTimeVector.length===u.length){var f=function(e,t){var n,r,o,i=0,a=e.length,l=[],c=!1;for(("number"!=typeof t||t<=0)&&(t=1),n=1;n<a;n++)o=Number(e[n])/t|0,l.push(o),1===n?r=o:o!==r&&(c=!0),i+=o;return l.length>0&&(o=c?i/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:c}}(v.frameTimeVector,v.speed),g=f.timeouts,h=f.isTimeVarying;n=g,r=h}var p=function(){var t={targetImageIdIndex:i.getTargetImageIdIndex(),imageIds:i.getImageIds()},n=t.targetImageIdIndex,r=t.imageIds.length;if(v.reverse?n--:n++,v.loop||!(n<0||n>=r)){if(n>=r&&(n=0),n<0&&(n=r-1),n!==t.targetImageIdIndex){var o=n-t.targetImageIdIndex;i.scroll(o,!0,!0)}}else{ds(v);var a={element:e};ls(e,rs.CLIP_STOPPED,a)}};n&&n.length>0&&r?(v.usingFrameTimeVector=!0,v.intervalId=window.setTimeout((function e(){v.intervalId=window.setTimeout(e,n[d]),p()}),0)):(v.usingFrameTimeVector=!1,v.intervalId=window.setInterval(p,1e3/Math.abs(v.framesPerSecond)));var m={element:e};ls(e,rs.CLIP_STARTED,m)}function ss(e){var t=as((0,z.getEnabledElement)(e).viewport.element);t&&ds(t)}function ds(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function us(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,l=r<t-1?e[r+2]:2*i-o;return function(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}((n-r/t)*t,a,o,i,l)}}function vs(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function fs(e){if(!(o=e.length))return[];for(var t=-1,n=function(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}(e,gs),r=new Array(n);++t<n;)for(var o,i=-1,a=r[t]=new Array(o);++i<o;)a[i]=e[i][t];return r}function gs(e){return e.length}function hs(){return fs(arguments)}function ps(e,t,n,r){var o,i,a=n-t+1,l=null!==(o=Math.floor(r/100*a))&&void 0!==o?o:1,c=null!==(i=Math.floor(a/l))&&void 0!==i?i:1;if(isNaN(a)||!a||!c)return e;if(a/c<2)return e;var s=Math.max(0,t),d=Math.min(e.length-1,n),u=e.slice(0,s),v=e.slice(d+1,e.length),f=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n,r=t[t.length-1]-t[0]+1,o=us(t.map((function(t){return e[t][0]}))),i=us(t.map((function(t){return e[t][1]})));if(3===(null===(n=e[0])||void 0===n?void 0:n.length)){var a=us(t.map((function(t){return e[t][2]})));return hs(vs(o,r),vs(i,r),vs(a,r))}return hs(vs(o,r),vs(i,r))}(e,function(e,t){for(var n=[],r=Ba(t,2),o=r[0],i=r[1],a=i-o+1,l=Math.floor(a/e),c=0,s=Math.round((a-1)/(l-1)*c)+o;s<=i;)n.push(s),c++,s=Math.round((a-1)/(l-1)*c)+o;return n}(c,[s,d]));return[].concat(un(u),un(f),un(v))}function ms(e){var t,n;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.interpolateOnAdd)||!0===(null==e||null===(n=e.interpolation)||void 0===n?void 0:n.interpolateOnEdit)}function ws(e,t,n){return(e+t+n)%t}function ys(e,t,n,r){var o=Ba(e,3),i=o[1],a=o[2],l=Ba(t,3),c=l[1],s=l[2],d=a.length,u=s.length,v=e[0],f=t[0];if(!(a[v]&&s[f]&&a[i]&&s[c]))return[void 0,void 0];for(;v!==i&&f!==c;){if(n(s[f],a[v]))return[v,f];v=ws(v,d,r),f=ws(f,u,r)}return[void 0,void 0]}function Es(e,t,n){var r=e.interpolation,o=t;if(r){var i=r.knotsRatioPercentageOnAdd,a=r.knotsRatioPercentageOnEdit,l=r.interpolateOnAdd,c=void 0!==l&&l,s=r.interpolateOnEdit,d=n?a:i;if(n?void 0!==s&&s:c){var u=Ba(n?function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++)for(var r=0;r<t.length;r++)if(0===Yc(e[n],t[r]))return[n,r]}(e,t)||[],r=Ba(n,2),o=r[0],i=r[1],a=function(e,t){return!1===function(e,t){return Yc(e,t)<.001}(e,t)},l=Ba(ys([ws(o,e.length,1),o,e],[ws(i,t.length,1),i,t],a,1),2),c=l[0],s=l[1];return[c,Ba(ys([ws(c,e.length,-1),c,e],[ws(s,t.length,-1),s,t],a,-1),1)[0]]}(t,n):[0,t.length-1],2),v=u[0],f=u[1];return t[v]&&t[f]?ps(t,v,f,d):t}}return o}function Is(e,t){var n=e[0],r=e[e.length-1],o=ua.vec2.create();ua.vec2.set(o,r[0]-n[0],r[1]-n[1]),ua.vec2.normalize(o,o);var i=ua.vec2.create(),a=ua.vec2.create();ua.vec2.set(i,-o[1],o[0]),ua.vec2.set(a,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],c={dist:0,index:null},s=0;s<e.length;s++){var d=e[s],u=ua.vec2.dist(d,l);u>c.dist&&(c.dist=u,c.index=s)}return[e[c.index],l].map(t.canvasToWorld)}var bs=qc,Cs=Hc,_s=Uc,Ts=Gc;function Ds(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=Ts(l,this.configuration.subPixelResolution),s=c.spacing,d=c.xDir,u=c.yDir;this.drawData={canvasPoints:[a],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:s,xDir:d,yDir:u},hn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),zi(i)}function Ss(e){hn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),qi(e)}function Os(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=c.canvasToWorld(m),y=ua.vec3.create();ua.vec3.subtract(y,o,w);var E=Math.abs(ua.vec3.dot(y,u)),I=Math.abs(ua.vec3.dot(y,v));if(!(E<=f[0]&&I<=f[1])){var b=this.findCrossingIndexDuringCreate(e);if(void 0!==b)this.applyCreateOnCross(e,b);else{var C=bs(r,p,i,this.commonData);this.drawData.polylineIndex=h+C}br(l,d)}}function xs(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],i=e.detail.element;t&&!Cs(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(i):this.completeDrawClosedContour(i)}function Ms(e){this.removeCrossedLinesOnCompleteDraw();var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e),a=i.viewport,l=i.renderingEngine;bs(e,t,t[0],this.commonData),t.pop();var c=(ms(this.configuration)?Es(this.configuration,t):t).map((function(e){return a.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,br(l,o),this.deactivateDraw(e),!0}function Rs(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=_s(r,n[0],n[1],!1);if(o){var i=o[1];this.drawData.canvasPoints=e.splice(0,i)}}function Ns(e){var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e),a=i.viewport,l=i.renderingEngine,c=(ms(this.configuration)?Es(this.configuration,t):t).map((function(e){return a.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!0,r.data.handles.points=[c[0],c[c.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=Is(t,a)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,br(l,o),this.deactivateDraw(e),!0}function Ps(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.drawData.canvasPoints.slice(0,-1),l=_s(a,o,i,!1);if(void 0!==l)return l[0]}function ks(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender;bs(n,r,r[t],this.commonData),r.pop();for(var l=0;l<t;l++)r.shift();this.completeDrawClosedContour(n)&&this.activateClosedContourEdit(e,i,a)}function As(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!Cs(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Ls(e,t){if(function(e,t){var n=Math.max(3*t,3);return e.length<n}(t,this.configuration.subPixelResolution)){var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e).renderingEngine;return We(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,br(i,o),this.deactivateDraw(e),!0}return!1}var Us=function(e){e.activateDraw=Ds.bind(e),e.deactivateDraw=Ss.bind(e),e.applyCreateOnCross=ks.bind(e),e.findCrossingIndexDuringCreate=Ps.bind(e),e.completeDrawOpenContour=Ns.bind(e),e.removeCrossedLinesOnCompleteDraw=Rs.bind(e),e.mouseDragDrawCallback=Os.bind(e),e.mouseUpDrawCallback=xs.bind(e),e.completeDrawClosedContour=Ms.bind(e),e.cancelDrawing=As.bind(e),e.haltDrawing=Ls.bind(e)},Vs=qc,Bs=Uc;function Fs(e,t){var n=e.detail,r=n.element,o=n.currentPoints,i=n.lastPoints,a=o.canvas,l=i.canvas,c=this.editData,s=c.editCanvasPoints,d=c.prevCanvasPoints,u=Bs(d,a,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(s.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=s[0],f=[],g=0;g<d.length;g++){var h=d[g],p=ua.vec2.distance(h,v);f.push({distance:p,index:g})}f.sort((function(e,t){return e.distance-t.distance}));var m=[f[0],f[1]],w=Math.min(m[0].index,m[1].index);this.editData.startCrossingIndex=w}else{var y=ua.vec2.create();ua.vec2.subtract(y,s[1],s[0]),ua.vec2.normalize(y,y);var E=[s[0][0]-6*y[0],s[0][1]-6*y[1]],I=Bs(d,E,s[0],t);if(I){var b=[E];Vs(r,b,s[0],this.commonData),s.unshift.apply(s,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=s.length-1,this.editData.startCrossingIndex=I[0]}}}function js(e){for(var t=this.editData,n=t.editCanvasPoints,r=t.prevCanvasPoints,o=0,i=0;i<n.length-1;i++){var a=[n[i],n[i+1]];if(o++,Bs(r,a[0],a[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Ws(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,i=r.canvas,a=o.canvas,l=this.editData.prevCanvasPoints;return!!Bs(l,i,a,t)}function Gs(e){for(var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=r.length-1;o>0;o--){var i=[r[o],r[o-1]],a=!!Bs(n,i[0],i[1],e);if(r.pop(),a)break}}function Hs(){var e=this.editData,t=e.editCanvasPoints,n=e.prevCanvasPoints;if(void 0!==e.startCrossingIndex){for(var r=t[t.length-1],o=[],i=0;i<n.length;i++){var a=n[i],l=ua.vec2.distance(a,r);o.push({distance:l,index:i})}o.sort((function(e,t){return e.distance-t.distance}));for(var c=t.slice(0,-1),s=0;s<o.length;s++){var d=o[s].index,u=n[d],v=t[t.length-1];if(!Bs(c,u,v,!1))return d}return-1}}function qs(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.editData.editCanvasPoints,l=a.slice(0,-2),c=Bs(l,o,i,!1);if(c)for(var s=c[0],d=a.length-s,u=0;u<d;u++)a.pop()}var zs=function(e){e.checkForFirstCrossing=Fs.bind(e),e.removePointsUpUntilFirstCrossing=js.bind(e),e.checkForSecondCrossing=Ws.bind(e),e.findSnapIndex=Hs.bind(e),e.removePointsAfterSecondCrossing=Gs.bind(e),e.checkAndRemoveCrossesOnEditLine=qs.bind(e)},Ks=Gc,Ys=qc,$s=Kc;function Zs(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=t.data.polyline.map(l.worldToCanvas),s=Ks(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},hn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpClosedContourEditCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),zi(i)}function Js(e){hn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),qi(e)}function Xs(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=c.canvasToWorld(w),E=ua.vec3.create();ua.vec3.subtract(E,o,y);var I=Math.abs(ua.vec3.dot(E,u)),b=Math.abs(ua.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Ys(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!0),this.editData.snapIndex=this.findSnapIndex(),-1!==this.editData.snapIndex?(this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(e),void 0!==m&&this.checkForSecondCrossing(e,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(e)),br(l,d)):this.finishEditAndStartNewEdit(e)}}function Qs(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=u,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,n);var v=d.pop();this.editData={prevCanvasPoints:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},br(o,l)}function ed(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,c=e.detail.element,s=un(r);Ys(c,s,n[i],this.commonData),s.length>r.length&&s.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var d=ua.vec2.distance(n[a],s[0]),u=ua.vec2.distance(n[a],s[s.length-1]),v=ua.vec2.distance(n[l],s[0]),f=ua.vec2.distance(n[l],s[s.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}var m=d+f,w=u+v;if(m<w)for(var y=0;y<s.length;y++){var E=s[y];g.push([E[0],E[1]])}else for(var I=s.length-1;I>=0;I--){var b=s[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var _=n[C];g.push([_[0],_[1]])}for(var T=[],D=a;D<l;D++){var S=n[D];T.push([S[0],S[1]])}if((m=v+u)<(w=f+d))for(var O=0;O<s.length;O++){var x=s[O];T.push([x[0],x[1]])}else for(var M=s.length-1;M>=0;M--){var R=s[M];T.push([R[0],R[1]])}return $s(g)>$s(T)?g:T}}function td(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function nd(e){var t=(0,z.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(ms(this.configuration)?Es(this.configuration,c,s):c).map((function(e){return n.canvasToWorld(e)}));i.data.polyline=d,i.data.isOpenContour=!1,this.triggerAnnotationModified(i,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,br(r,a),this.deactivateClosedContourEdit(e)}function rd(e){this.completeClosedContourEdit(e)}var od=function(e){e.activateClosedContourEdit=Zs.bind(e),e.deactivateClosedContourEdit=Js.bind(e),e.mouseDragClosedContourEditCallback=Xs.bind(e),e.mouseUpClosedContourEditCallback=td.bind(e),e.finishEditAndStartNewEdit=Qs.bind(e),e.fuseEditPointsWithClosedContour=ed.bind(e),e.cancelClosedContourEdit=rd.bind(e),e.completeClosedContourEdit=nd.bind(e)},id=qc,ad=Gc;function ld(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=t.data.polyline.map(l.worldToCanvas),s=ad(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},hn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpOpenContourEditCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),zi(i)}function cd(e){hn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),qi(e)}function sd(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=c.canvasToWorld(w),E=ua.vec3.create();ua.vec3.subtract(E,o,y);var I=Math.abs(ua.vec3.dot(E,u)),b=Math.abs(ua.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+id(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!1),this.editData.snapIndex=this.findSnapIndex(),this.editData.fusedCanvasPoints=this.fuseEditPointsWithOpenContour(e),void 0!==m&&this.checkForSecondCrossing(e,!1)?(this.removePointsAfterSecondCrossing(!1),this.finishEditOpenOnSecondCrossing(e)):this.checkIfShouldOverwriteAnEnd(e)&&this.openContourEditOverwriteEnd(e),br(l,d)}}function dd(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.fuseEditPointsForOpenContourEndEdit().map((function(e){return r.canvasToWorld(e)}));i.data.polyline=l,i.data.isOpenContour=!0,i.data.handles.points=[l[0],l[l.length-1]],i.data.handles.activeHandleIndex=1,this.triggerAnnotationModified(i,n),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(t),this.activateOpenContourEndEdit(e,i,a)}function ud(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.editData,l=a.snapIndex,c=a.prevCanvasPoints;if(void 0===a.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==c.length-1)return!1;var s=o,d=i,u=c[l],v=ua.vec2.create(),f=ua.vec2.create();ua.vec2.set(v,s[0]-d[0],s[1]-d[1]),ua.vec2.set(f,s[0]-u[0],s[1]-u[1]);var g=ua.vec2.dot(v,f),h=Math.sqrt(v[0]*v[0]+v[1]*v[1]),p=Math.sqrt(f[0]*f[0]+f[1]*f[1]);return Math.acos(g/(h*p))<Math.PI/2}function vd(){var e=this.editData,t=e.snapIndex,n=e.prevCanvasPoints,r=e.editCanvasPoints,o=e.startCrossingIndex,i=[];if(0===t)for(var a=n.length-1;a>=o;a--){var l=n[a];i.push([l[0],l[1]])}else for(var c=0;c<o;c++){var s=n[c];i.push([s[0],s[1]])}if(ua.vec2.distance(n[o],r[0])<ua.vec2.distance(n[o],r[r.length-1]))for(var d=0;d<r.length;d++){var u=r[d];i.push([u[0],u[1]])}else for(var v=r.length-1;v>=0;v--){var f=r[v];i.push([f[0],f[1]])}return i}function fd(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,c=e.detail.element,s=un(r);id(c,s,n[i],this.commonData),s.length>r.length&&s.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var d=ua.vec2.distance(n[a],s[0]),u=ua.vec2.distance(n[a],s[s.length-1]),v=ua.vec2.distance(n[l],s[0]),f=ua.vec2.distance(n[l],s[s.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}if(d+f<u+v)for(var m=0;m<s.length;m++){var w=s[m];g.push([w[0],w[1]])}else for(var y=s.length-1;y>=0;y--){var E=s[y];g.push([E[0],E[1]])}for(var I=l;I<n.length;I++){var b=n[I];g.push([b[0],b[1]])}return g}}function gd(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=u,a.data.isOpenContour=!0,a.data.handles.points=[u[0],u[u.length-1]],this.triggerAnnotationModified(a,n);var v=d.pop();this.editData={prevCanvasPoints:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},br(o,l)}function hd(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function pd(e){var t=(0,z.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(ms(this.configuration)?Es(this.configuration,c,s):c).map((function(e){return n.canvasToWorld(e)}));i.data.polyline=d,i.data.isOpenContour=!0,i.data.handles.points=[d[0],d[d.length-1]],i.data.isOpenUShapeContour&&(i.data.openUShapeContourVectorToPeak=Is(c,n)),this.triggerAnnotationModified(i,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,br(r,a),this.deactivateOpenContourEdit(e)}function md(e){this.completeOpenContourEdit(e)}var wd=function(e){e.activateOpenContourEdit=ld.bind(e),e.deactivateOpenContourEdit=cd.bind(e),e.mouseDragOpenContourEditCallback=sd.bind(e),e.mouseUpOpenContourEditCallback=hd.bind(e),e.fuseEditPointsWithOpenContour=fd.bind(e),e.finishEditOpenOnSecondCrossing=gd.bind(e),e.checkIfShouldOverwriteAnEnd=ud.bind(e),e.fuseEditPointsForOpenContourEndEdit=vd.bind(e),e.openContourEditOverwriteEnd=dd.bind(e),e.cancelOpenContourEdit=md.bind(e),e.completeOpenContourEdit=pd.bind(e)},yd=Gc;function Ed(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,z.getEnabledElement)(r).viewport,i=yd(o,this.configuration.subPixelResolution),a=i.spacing,l=i.xDir,c=i.yDir,s=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&s.reverse(),this.drawData={canvasPoints:s,polylineIndex:s.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:a,xDir:l,yDir:c},hn.isInteractingWithTool=!0,r.addEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),zi(r)}var Id=function(e){e.activateOpenContourEndEdit=Ed.bind(e)},bd=Hc;function Cd(e,t){var n={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id,annotationUID:t.annotationUID},r=this.getStyle("lineWidth",n,t),o=this.getStyle("lineDash",n,t),i=this.getStyle("color",n,t);return{color:void 0===i?void 0:i,width:void 0===r?void 0:r,lineDash:void 0===o?void 0:o,connectLastToFirst:!t.data.isOpenContour}}function _d(e,t,n){var r;null!=e&&null!==(r=e.viewport)&&void 0!==r&&r.getImageData()&&(n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return Is(t.data.polyline.map(n.worldToCanvas),n)}(e,t))}(e,n),this.renderOpenUShapedContour(e,t,n)):this.renderOpenContour(e,t,n):this.renderClosedContour(e,t,n))}function Td(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));Pa(t,n.annotationUID,"1",i,o)}function Dd(e,t,n){var r,o=e.viewport,i=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));Pa(t,n.annotationUID,"1",a,i);var l=n.data.handles.activeHandleIndex;if(!0===(null===(r=this.configuration.alwaysRenderOpenContourHandles)||void 0===r?void 0:r.enabled)){var c=this.configuration.alwaysRenderOpenContourHandles.radius,s=[a[0],a[a.length-1]];0===l?s.shift():1===l&&s.pop(),Ma(t,n.annotationUID,"0",s,{color:i.color,handleRadius:c})}if(null!==l){var d=a[0===l?0:a.length-1];Ma(t,n.annotationUID,"1",[d],{color:i.color})}}function Sd(e,t,n){var r=e.viewport,o=n.data,i=o.polyline,a=o.openUShapeContourVectorToPeak;if(this.renderOpenContour(e,t,n),a){var l=r.worldToCanvas(i[0]),c=r.worldToCanvas(i[i.length-1]),s=[r.worldToCanvas(a[0]),r.worldToCanvas(a[1])],d=this._getRenderingOptions(e,n);Pa(t,n.annotationUID,"first-to-last",[l,c],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"}),Pa(t,n.annotationUID,"midpoint-to-open-contour",[s[0],s[1]],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"})}}function Od(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,i=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,Pa(t,n.annotationUID,"1",i,r),o){var a=i[0],l=i[i.length-1];bd(a,l,this.configuration.closeContourProximity)?Pa(t,n.annotationUID,"2",[l,a],r):Ma(t,n.annotationUID,"0",[a],{color:r.color,handleRadius:2})}}function xd(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Pa(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function Md(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Pa(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var Rd=function(e){e.renderContour=_d.bind(e),e.renderClosedContour=Td.bind(e),e.renderOpenContour=Dd.bind(e),e.renderOpenUShapedContour=Sd.bind(e),e.renderContourBeingDrawn=Od.bind(e),e.renderClosedContourBeingEdited=xd.bind(e),e.renderOpenContourBeingEdited=Md.bind(e),e._getRenderingOptions=Cd.bind(e)};function Nd(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Pd=zc,kd=1-z.CONSTANTS.EPSILON,Ad=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,subPixelResolution:4,interpolation:{interpolateOnAdd:!1,interpolateOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40}}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"commonData",void 0),J(Sr(e),"isDrawing",!1),J(Sr(e),"isEditingClosed",!1),J(Sr(e),"isEditingOpen",!1),J(Sr(e),"activateDraw",void 0),J(Sr(e),"activateClosedContourEdit",void 0),J(Sr(e),"activateOpenContourEdit",void 0),J(Sr(e),"activateOpenContourEndEdit",void 0),J(Sr(e),"cancelDrawing",void 0),J(Sr(e),"cancelClosedContourEdit",void 0),J(Sr(e),"cancelOpenContourEdit",void 0),J(Sr(e),"renderContour",void 0),J(Sr(e),"renderContourBeingDrawn",void 0),J(Sr(e),"renderClosedContourBeingEdited",void 0),J(Sr(e),"renderOpenContourBeingEdited",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine,s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f=fl(o,e.getToolName()),g={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v,toolName:e.getToolName()},data:{handles:{points:[],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},polyline:[un(i)],label:""}};return Fe(o,g),e.activateDraw(t,g,f),t.preventDefault(),br(c,f),g})),J(Sr(e),"handleSelectedCallback",(function(t,n,r){var o=fl(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,o)})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=fl(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,o):e.activateClosedContourEdit(t,n,o)})),J(Sr(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,z.getEnabledElement)(e).viewport,i=t.data.polyline,a=o.worldToCanvas(i[0]),l=1;l<i.length;l++){var c=a,s=o.worldToCanvas(i[l]);if(!0===Pd(n,c,s,r))return!0;a=s}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(i[0]),u=o.worldToCanvas(i[i.length-1]);return!0===Pd(n,d,u,r)})),J(Sr(e),"cancel",(function(t){var n=e.isDrawing,r=e.isEditingOpen,o=e.isEditingClosed;n?e.cancelDrawing(t):r?e.cancelOpenContourEdit(t):o&&e.cancelClosedContourEdit(t)})),J(Sr(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=K.ANNOTATION_MODIFIED,i={annotation:e,viewportId:n,renderingEngineId:r};(0,z.triggerEvent)(z.eventTarget,o,i)})),J(Sr(e),"triggerAnnotationCompleted",(function(e){var t=K.ANNOTATION_COMPLETED,n={annotation:e};(0,z.triggerEvent)(z.eventTarget,t,n)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport.element,l=Be(a,e.getToolName());if(null===(r=l)||void 0===r||!r.length)return i;if(null===(o=l=e.filterInteractableAnnotationsForElement(a,l))||void 0===o||!o.length)return i;var c=e.isDrawing,s=e.isEditingOpen,d=e.isEditingClosed;if(!(c||s||d))return l.forEach((function(r){return e.renderContour(t,n,r)})),i;var u=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===u)if(c)e.renderContourBeingDrawn(t,n,r);else if(d)e.renderClosedContourBeingEdited(t,n,r);else{if(!s)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),Us(Sr(e)),zs(Sr(e)),od(Sr(e)),wd(Sr(e)),Id(Sr(e)),Rd(Sr(e)),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,z.getEnabledElement)(e).viewport;if(r instanceof z.StackViewport)n=ml(r,t);else{if(!(r instanceof z.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),i=z.utilities.getTargetVolumeAndSpacingInNormalDir(r,o).spacingInNormalDirection;n=this.filterAnnotationsWithinSlice(t,o,i)}return n}}},{key:"filterAnnotationsWithinSlice",value:function(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(ua.vec3.dot(r,t))>kd;return t&&n}));if(!o.length)return[];var i,a=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Nd(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Nd(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(s.s();!(i=s.n()).done;){var d=i.value,u=d.data.polyline[0];if(d.isVisible){var v=ua.vec3.create();ua.vec3.sub(v,l,u);var f=ua.vec3.dot(v,r);Math.abs(f)<a&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}}]),o}(_l);J(Ad,"toolName",void 0),Ad.toolName="PlanarFreehandROI";var Ld=Ad;function Ud(e,t,n){if(function(e,t,n){var r;if(null==t||null===(r=t.data)||void 0===r||!r.polyline||n<=0)return!0;if(!e.viewport)return!0;var o=e.renderingEngineId,i=e.viewportId,a=e.FrameOfReferenceUID,l=In(i,o);if(t.metadata.FrameOfReferenceUID!==a)return!0;if(!l)return!0;var c=l.getToolInstance(t.metadata.toolName);return!(c instanceof Ld)||c.isDrawing||c.isEditingOpen||c.isEditingClosed}(e,t,n))return!1;var r=e.viewport,o=t.data.polyline.map(r.worldToCanvas),i=ps(o,0,o.length,n);return i!==o&&(t.data.polyline=i.map(r.canvasToWorld),!0)}var Vd={interpolateAnnotation:Ud},Bd={};function Fd(e){var t=(0,z.getEnabledElement)(e).viewportId;return Bd[t]}var jd,Wd=z.Enums.RequestType.Prefetch,Gd={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Hd(e,t){e=Math.round(e)||0;var n=[],r=(t=Math.round(t)||0)-e+1;if(r<=0)return n;for(;r--;)n[r]=t--;return n}function qd(e){var t=(0,z.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof z.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function zd(e){var t=Fd(e);if(t){var n=t||{},r=qd(e);if(r&&r.imageIds&&0!==r.imageIds.length){if(n.indicesToRequest&&n.indicesToRequest.length||(n.enabled=!1),!1!==n.enabled&&(t.indicesToRequest.sort((function(e,t){return e-t})),n.indicesToRequest.slice().forEach((function(e){var t=r.imageIds[e];t&&z.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){Gd.preserveExistingPool||z.imageLoadPoolManager.clearRequestStack(Wd);for(var o,i,a,l,c,s,d=(o=n.indicesToRequest,i=r.currentImageIdIndex,a=0,l=o.length-1,o.forEach((function(e,t){e<i?a=Math.max(t,a):e>i&&(l=Math.min(t,l))})),{low:a,high:l}),u=d.low,v=d.high,f=[];u>=0||v<n.indicesToRequest.length;){var g=r.currentImageIdIndex,h=!(g-n.indicesToRequest[u]>Gd.maxImagesToPrefetch)&&u>=0,p=!(n.indicesToRequest[v]-g>Gd.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(s=n.indicesToRequest[u--],c=r.imageIds[s],f.push(c)),p&&(s=n.indicesToRequest[v++],c=r.imageIds[s],f.push(c))}var m=function(e,t){return z.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{enabled:!0},requestType:Wd};z.imageLoadPoolManager.addRequest(m.bind(null,e,t),Wd,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function Kd(e){return function(t){var n,r=t.detail;try{n=qd(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var i=Fd(e);i&&i.data&&i.data.length&&i.indicesToRequest.push(o)}}}}function Yd(e){clearTimeout(jd),jd=setTimeout((function(){var t=e.target;try{zd(t)}catch(e){return}}),10)}function $d(e){var t=qd(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Hd(0,t.imageIds.length-1),enabled:!0,direction:1},r=n.indicesToRequest.indexOf(t.currentImageIdIndex);n.indicesToRequest.splice(r,1),function(e,t){var n=(0,z.getEnabledElement)(e).viewportId;Bd[n]=t}(e,n),zd(e),e.removeEventListener(z.Enums.Events.STACK_NEW_IMAGE,Yd),e.addEventListener(z.Enums.Events.STACK_NEW_IMAGE,Yd);var o=Kd(e);z.eventTarget.removeEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),z.eventTarget.addEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function Zd(e){clearTimeout(jd),e.removeEventListener(z.Enums.Events.STACK_NEW_IMAGE,Yd);var t=Kd(e);z.eventTarget.removeEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=Fd(e);n&&n.data.length&&(n.enabled=!1,z.imageLoadPoolManager.clearRequestStack(Wd))}function Jd(){return Gd}function Xd(e){Gd=e}function Qd(e,t){if(e instanceof z.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];return ua.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=ua.vec3.dot(t,r),i=ua.vec3.fromValues(r[0],r[1],r[2]);if(ua.vec3.scale(i,i,o),Math.abs(i[0])>.001||Math.abs(i[1])>.001||Math.abs(i[2])>.001){var a=[0,0,0],l=[0,0,0];ua.vec3.add(a,n.focalPoint,i),ua.vec3.add(l,n.position,i),e.setCamera({focalPoint:a,position:l}),e.render()}}(e,r),!0}}var eu=function(e,t){var n=Li.getDefinedCursor(t,!0);n||(n=si.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=si.getDefinedCursor(t)),Hi(e,n)},tu=[].concat(un(Oi),un(vi)),nu=function(e,t,n){var r=Ni("textBoxFontSize",e,t,n),o=Ni("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},ru=function(e){if(!e||!e.length)throw new Error("The segmentationInputArray is undefined or empty array");e.forEach((function(e){if(void 0===e.segmentationId)throw new Error("The segmentationInput.segmentationId is undefined, please provide a valid segmentationId");if(void 0===e.representation)throw new Error("The segmentationInput.representation is undefined, please provide a valid representation");e.representation.type===$e.Labelmap&&function(e){if(!e.representation.data)throw new Error("The segmentationInput.representationData.data is undefined, please provide a valid representationData.data");var t=e.representation.data;if(!t.volumeId)throw new Error("The segmentationInput.representationData.volumeId is undefined, please provide a valid representationData.volumeId");if(!z.cache.getVolume(t.volumeId))throw new Error("volumeId of ".concat(t.volumeId," not found in cache, you should load and cache volume before adding segmentation"))}(e)}))},ou=function(e){ru(e),e.map((function(e){ut(Q()(e))}))};function iu(){return(iu=Wr(Hr().mark((function e(t,n,r){var o,i;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Dr(t)){e.next=3;break}throw new Error("No tool group found for toolGroupId: ".concat(t));case 3:return o=n.map((function(e){return au(t,e,r)})),e.next=6,Promise.all(o);case 6:return i=e.sent,e.abrupt("return",i);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function au(e,t,n){return lu.apply(this,arguments)}function lu(){return(lu=Wr(Hr().mark((function e(t,n,r){var o;return Hr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==$e.Labelmap){e.next=6;break}return e.next=3,_o.addSegmentationRepresentation(t,n,r);case 3:o=e.sent,e.next=7;break;case 6:throw new Error("The representation type ".concat(n.type," is not supported"));case 7:return e.abrupt("return",o);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var cu=function(e,t,n){return iu.apply(this,arguments)};function su(e,t,n){var r=vt(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,rt(e,r.segmentationRepresentationUID))}))}function du(e,t){var n=vt(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function uu(e,t,n,r){var o=Ct(e,t);o&&(r?o.segmentsHidden.delete(n):o.segmentsHidden.add(n),rt(e,t))}var vu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(Sr(e)),e.mouseDragCallback=e._dragCallback.bind(Sr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,z.getEnabledElement)(n),i=r.world,a=o.viewport.getCamera(),l=a.focalPoint,c=a.position,s=[c[0]-i[0],c[1]-i[1],c[2]-i[2]],d=[l[0]-i[0],l[1]-i[1],l[2]-i[2]];o.viewport.setCamera({focalPoint:d,position:s}),o.viewport.render()}}]),o}(Fr);J(vu,"toolName",void 0),vu.toolName="Pan";var fu=vu;var gu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{rotateIncrementDegrees:2}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),i=o.getViewUp(),a=o.getFocalPoint(),l=o.getPosition(),c=[0,0,0],s=[0,0,0],d=[0,0,0],u=ua.mat4.identity(new Float32Array(16));ua.mat4.translate(u,u,t),ua.mat4.rotate(u,u,r,n),ua.mat4.translate(u,u,[-t[0],-t[1],-t[2]]),ua.vec3.transformMat4(c,l,u),ua.vec3.transformMat4(s,a,u),ua.mat4.identity(u),ua.mat4.rotate(u,u,r,n),ua.vec3.transformMat4(d,i,u),e.setCamera({position:c,viewUp:d,focalPoint:s})})),e.touchDragCallback=e._dragCallback.bind(Sr(e)),e.mouseDragCallback=e._dragCallback.bind(Sr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.lastPoints,i=r.canvas,a=o.canvas,l=this.configuration.rotateIncrementDegrees,c=(0,z.getEnabledElement)(n).viewport,s=c.getCamera(),d=n.clientWidth,u=n.clientHeight,v=[i[0]/d,i[1]/u],f=[a[0]/d,a[1]/u],g=[.5*d,.5*u],h=c.canvasToWorld(g),p=Math.pow(1+Math.abs(.5),2),m=[f[0],0,0],w=[v[0],0,0],y=Math.pow(m[0],2),E=Math.pow(w[0],2),I=y>p?0:Math.sqrt(p-y),b=E>p?0:Math.sqrt(p-E),C=[m[0],0,I];Zc().normalize(C);var _=[w[0],0,b];Zc().normalize(_);var T=Zc().dot(C,_);if(Math.abs(T)>1e-4){var D=-2*Math.acos(Zc().clampValue(T,-1,1))*Math.sign(v[0]-f[0])*l,S=s.viewUp;Zc().normalize(S),this.rotateCamera(c,h,S,D);var O=(f[1]-v[1])*l,x=s.viewPlaneNormal,M=s.viewUp,R=[0,0,0];Zc().cross(M,x,R),Zc().normalize(R),this.rotateCamera(c,h,R,O),c.render()}}}]),o}(Fr);J(gu,"toolName",void 0),gu.toolName="TrackballRotate";var hu=gu;function pu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pu(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pu(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var wu=z.utilities.transformWorldToIndex,yu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"eventDispatchDetail",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[un(i)]},cachedStats:{}}};Fe(o,f);var g=fl(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),zi(o),t.preventDefault(),br(c,g),f})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=(0,z.getEnabledElement)(n),c=l.renderingEngine,s=l.viewportId;if(e.eventDispatchDetail={viewportId:s,renderingEngineId:c.id},e._deactivateModify(n),qi(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(c,i),a){var d=K.ANNOTATION_COMPLETED,u={annotation:o};(0,z.triggerEvent)(z.eventTarget,d,u)}})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=e.editData,l=a.annotation,c=a.viewportIdsToRender;l.data.handles.points[0]=un(i),l.invalidated=!0;var s=(0,z.getEnabledElement)(o).renderingEngine;br(s,c)})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=a.worldToCanvas(p);u.annotationUID=g;var w=e.getStyle("color",u,f);if(h.cachedStats[s]?f.invalidated&&(e._calculateCachedStats(f,d,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,index:null,value:null},e._calculateCachedStats(f,d,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;Ma(n,g,"0",[m],{color:w}),i=!0;var y=Nl(a,s),E=e._getTextLines(h,s,y);if(E){var I=[m[0]+6,m[1]-6];Va(n,g,"0",E,[I[0],I[1]],e.getLinkedTextBoxStyle(u,f))}}return i})),e}return Z(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data.handles.points[0],a=o.worldToCanvas(i);if(!0==ua.vec2.distance(n,a)<r)return i}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=fl(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),zi(r);var i=(0,z.getEnabledElement)(r).renderingEngine;br(i,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t,n){var r=e.cachedStats[t],o=r.index,i=r.Modality,a=r.value,l=r.SUVBw,c=r.SUVLbm,s=r.SUVBsa;if(void 0!==a||void 0!==l){var d=[],u=Rl(i,n);return d.push("(".concat(o[0],", ").concat(o[1],", ").concat(o[2],")")),"PT"===i&&!0===n&&void 0!==l?(d.push("".concat(l.toFixed(2)," SUV bw")),c&&d.push("".concat(c.toFixed(2)," SUV lbm")),s&&d.push("".concat(s.toFixed(2)," SUV bsa"))):d.push("".concat(a.toFixed(2)," ").concat(u)),d}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if(r.value=e,"PT"===n&&t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,i=o.suvbwToSuvlbm,a=o.suvbwToSuvbsa;if(r.SUVBw=e,i){var l=e*i;r.SUVLbm=l}if(a){var c=e*a;r.SUVBsa=c}}return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.cachedStats,c=Object.keys(l),s=0;s<c.length;s++){var d=c[s],u=this.getTargetIdImage(d,t);if(u){var v=u.dimensions,f=u.scalarData,g=u.imageData,h=u.metadata.Modality,p=wu(g,a);if(p[0]=Math.round(p[0]),p[1]=Math.round(p[1]),p[2]=Math.round(p[2]),z.utilities.indexWithinDimensions(p,v)){this.isHandleOutsideImage=!1;var m=v[0],w=v[0]*v[1],y=f[p[2]*w+p[1]*m+p[0]];if(d.startsWith("imageId:")){var E=d.split("imageId:")[1],I=z.utilities.imageIdToURI(E),b=z.utilities.getViewportsWithImageURI(I,i)[0];p[2]=b.getCurrentImageIdIndex()}var C=this._getValueForModality(y,u,h);l[d]=mu(mu({index:p},C),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[d]={index:p,Modality:h};e.invalidated=!1;var _=K.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:i};(0,z.triggerEvent)(z.eventTarget,_,T)}}return l}}]),o}(_l);J(yu,"toolName",void 0),yu.toolName="Probe";var Eu=yu;var Iu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"eventDispatchDetail",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[un(i)]},cachedStats:{}}},g=fl(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),zi(o),t.preventDefault(),br(c,g),f})),J(Sr(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var i=e.filterInteractableAnnotationsForElement(o.element,[e.editData.annotation]);if(null==i||!i.length)return r;var a=e.getTargetId(o),l=o.getRenderingEngine(),c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,d=s.annotationUID,u=s.data,v=u.handles.points[0],f=o.worldToCanvas(v);c.annotationUID=d;var g=e.getStyle("color",c,s);if(u.cachedStats[a]?s.invalidated&&e._calculateCachedStats(s,l,t):(u.cachedStats[a]={Modality:null,index:null,value:null},e._calculateCachedStats(s,l,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;Ma(n,d,"0",[f],{color:g}),r=!0;var h=Nl(o,a),p=e._getTextLines(u,a,h);if(p){var m=[f[0]+6,f[1]-6];Va(n,d,"0",p,[m[0],m[1]],e.getLinkedTextBoxStyle(c,s))}return r})),e}return Z(o)}(Eu);J(Iu,"toolName",void 0),Iu.toolName="DragProbe";var bu=Iu;var Cu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_getImageDynamicRangeFromMiddleSlice",(function(t,n){var r,o,i=Math.floor(n[2]/2),a=n[0]*n[1];t instanceof Float32Array?(r=4,o=Float32Array):t instanceof Uint8Array&&(r=1,o=Uint8Array);var l=new o(t.buffer,i*a*r,a),c=e._getMinMax(l,a);return c.max-c.min})),e.touchDragCallback=e._dragCallback.bind(Sr(e)),e.mouseDragCallback=e._dragCallback.bind(Sr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,i,a,l,c=e.detail,s=c.element,d=c.deltaPoints,u=(0,z.getEnabledElement)(s),v=u.renderingEngine,f=u.viewportId,g=u.viewport,h=!1;if(g instanceof z.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).actor.getProperty().getRGBTransferFunction(0),l=z.utilities.getViewportsWithVolumeId(t,v.id);var p=Ba(o.getRange(),2);n=p[0],r=p[1];var m=z.cache.getVolume(t);i=m.metadata.Modality,h=m.scaling&&Object.keys(m.scaling).length>0}else{if(!(g instanceof z.StackViewport))throw new Error("Viewport is not a valid type");var w=g.getProperties();i=g.modality;var y=w.voiRange;n=y.lower,r=y.upper,h=g.getImageData().preScale.scaled}var E={volumeId:t,viewportId:f,range:a="PT"===i&&h?this.getPTNewRange({deltaPointsCanvas:d.canvas,lower:n,upper:r,clientHeight:s.clientHeight}):this.getNewRange({viewport:g,deltaPointsCanvas:d.canvas,volumeId:t,lower:n,upper:r})};if(g instanceof z.StackViewport)return g.setProperties({voiRange:a}),void g.render();(0,z.triggerEvent)(s,z.Enums.Events.VOI_MODIFIED,E),o.setRange(a.lower,a.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.viewport,n=e.deltaPointsCanvas,r=e.volumeId,o=e.lower,i=e.upper,a=this._getMultiplierFromDynamicRange(t,r)||4,l=n[0]*a,c=n[1]*a,s=z.utilities.windowLevel.toWindowLevel(o,i),d=s.windowWidth,u=s.windowCenter;return d+=l,u+=c,d=Math.max(d,1),z.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=z.cache.getVolume(t),o=r.dimensions,i=r.scalarData;n=this._getImageDynamicRangeFromMiddleSlice(i,o)}else n=this._getImageDynamicRangeFromViewport(e);var a=n/1024,l=4;return a>1&&(l=Math.round(a)),l}},{key:"_getImageDynamicRangeFromViewport",value:function(e){var t,n,r=e.getImageData().imageData,o=r.getDimensions();if(t=r.getScalarData?r.getScalarData():r.getPointData().getScalars(),1!==o[2])return this._getImageDynamicRangeFromMiddleSlice(t,o);if(t.getRange)n=t.getRange();else{var i=this._getMinMax(t,t.length);n=[i.min,i.max]}return n[1]-n[0]}},{key:"_getMinMax",value:function(e,t){for(var n=1/0,r=-1/0,o=0;o<t;o++){var i=e[o];i<n&&(n=i),i>r&&(r=i)}return{max:r,min:n}}}]),o}(Fr);J(Cu,"toolName",void 0),Cu.toolName="WindowLevel";var _u=Cu;var Tu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{zoomToCenter:!1,minZoomScale:.1,maxZoomScale:30}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"initialMousePosWorld",void 0),J(Sr(e),"dirVec",void 0),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o).viewport.getCamera().focalPoint;e.initialMousePosWorld=i;var l=ua.vec3.fromValues(a[0]-i[0],a[1]-i[1],a[2]-i[2]);return l=ua.vec3.normalize(ua.vec3.create(),l),e.dirVec=l,!1})),J(Sr(e),"_dragParallelProjection",(function(t,n,r){var o=t.detail,i=o.element,a=o.deltaPoints,l=[i.clientWidth,i.clientHeight],c=r.parallelScale,s=r.focalPoint,d=r.position,u=1.5/l[1],v=a.canvas[1],f=(1-v*u)*c,g=s,h=d;if(!e.configuration.zoomToCenter){var p=ua.vec3.distance(s,e.initialMousePosWorld),m=v*(5/l[1]);f=(1-m)*c,h=ua.vec3.scaleAndAdd(ua.vec3.create(),d,e.dirVec,-p*m),g=ua.vec3.scaleAndAdd(ua.vec3.create(),s,e.dirVec,-p*m)}var w=n.getImageData(),y=[1,1,1];w&&(y=w.spacing);var E=e.configuration,I=E.minZoomScale,b=E.maxZoomScale,C=i.clientHeight*y[1]*.5,_=C/f,T=f,D=!1;w&&(_<I?(T=C/I,D=!0):_>=b&&(T=C/b,D=!0)),n.setCamera({parallelScale:T,focalPoint:D?s:g,position:D?d:h})})),J(Sr(e),"_dragPerspectiveProjection",(function(e,t,n){var r=e.detail,o=r.element,i=r.deltaPoints,a=[o.clientWidth,o.clientHeight],l=n.position,c=n.focalPoint,s=n.viewPlaneNormal,d=Zc().distance2BetweenPoints(l,c),u=Math.sqrt(d)/a[1],v=[-s[0],-s[1],-s[2]],f=i.canvas[1]*u,g=f*v[0];l[0]+=g,c[0]+=g,g=f*v[1],l[1]+=g,c[1]+=g,g=f*v[2],l[2]+=g,c[2]+=g,t.setCamera({position:l,focalPoint:c})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.touchDragCallback=e._dragCallback.bind(Sr(e)),e.mouseDragCallback=e._dragCallback.bind(Sr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}}]),o}(Fr);J(Tu,"toolName",void 0),Tu.toolName="Zoom";var Du=Tu;var Su=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"deltaY",void 0),J(Sr(e),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),e.deltaY=1,e.touchDragCallback=e._dragCallback.bind(Sr(e)),e.mouseDragCallback=e._dragCallback.bind(Sr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,i=n.renderingEngineId,a=(0,z.getEnabledElementByIds)(o,i).viewport,l=this.getTargetId(a),c=this.configuration,s=c.debounceIfNotLoaded,d=c.invert,u=r.canvas[1];a instanceof z.VolumeViewport&&(t=l.split("volumeId:")[1]);var v=this._getPixelPerImage(a),f=u+this.deltaY;if(v)if(Math.abs(f)>=v){var g=Math.round(f/v);fa(a,{delta:d?-g:g,volumeId:t,debounceLoading:s}),this.deltaY=f%v}else this.deltaY=f}},{key:"_getPixelPerImage",value:function(e){var t=e.element,n=this._getNumberOfSlices(e);return Math.max(2,t.offsetHeight/Math.max(n,8))}},{key:"_getNumberOfSlices",value:function(e){return e instanceof z.VolumeViewport?z.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof z.StackViewport?e.getImageIds().length:void 0}}]),o}(Fr);J(Su,"toolName",void 0),Su.toolName="StackScroll";var Ou=Su;var xu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.wheel,r=t.element,o=n.direction,i=this.configuration.invert,a=(0,z.getEnabledElement)(r).viewport,l=o*(i?-1:1);if(a instanceof z.StackViewport)a.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(a instanceof z.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");ga(a,this.getTargetId(a).split("volumeId:")[1],l)}}}]),o}(Fr);J(xu,"toolName",void 0),xu.toolName="StackScrollMouseWheel";var Mu=xu;var Ru={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Nu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:Ru.Z,rotateIncrementDegrees:.5}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,z.getEnabledElement)(n).viewport,i=this.configuration,a=i.direction,l=i.rotateIncrementDegrees,c=o.getCamera(),s=c.viewUp,d=c.position,u=c.focalPoint,v=r.direction,f=Ba(u,3),g=f[0],h=f[1],p=f[2],m=Ba(a,3),w=m[0],y=m[1],E=m[2],I=v*l,b=[0,0,0],C=[0,0,0],_=[0,0,0],T=ua.mat4.identity(new Float32Array(16));ua.mat4.translate(T,T,[g,h,p]),ua.mat4.rotate(T,T,I,[w,y,E]),ua.mat4.translate(T,T,[-g,-h,-p]),ua.vec3.transformMat4(b,d,T),ua.vec3.transformMat4(C,u,T),ua.mat4.identity(T),ua.mat4.rotate(T,T,I,[w,y,E]),ua.vec3.transformMat4(_,s,T),o.setCamera({position:b,viewUp:_,focalPoint:C}),o.render()}}]),o}(Fr);J(Nu,"toolName",void 0),Nu.toolName="VolumeRotateMouseWheel";var Pu=Nu;var ku=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_bounds",void 0),e}return Z(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,z.getEnabledElement)(n),i=o.viewport,a=o.renderingEngine,l=this.getTargetId(i);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var c=l.split("volumeId:")[1],s=-1/0,d=Jc(i,r.world,c,(function(e,t){if(e>s)return s=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=a.getViewport(e);t instanceof z.VolumeViewport?Qd(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(Fr);J(ku,"toolName",void 0),ku.toolName="MIPJumpToClickTool";var Au=ku;var Lu=z.utilities.transformWorldToIndex,Uu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;zi(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[un(i),un(i)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Fe(o,f);var g=fl(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),br(c,g),f})),J(Sr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=Ba(t.data.handles.points,2),a=i[0],l=i[1],c=o.worldToCanvas(a),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return Sl([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),zi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(s,i),a){var d=K.ANNOTATION_COMPLETED,u={annotation:o};(0,z.triggerEvent)(z.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=un(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;br(h,a)})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),E=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=e.getStyle("shadow",u,f),C=m.map((function(e){return a.worldToCanvas(e)})),_=void 0;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,unit:null},e._calculateCachedStats(f,d,t)),Se(g)){oe(f)||e.editData||null===w||(_=[C[w]]),_&&Ma(n,g,"0",C,{color:I,lineDash:E,lineWidth:y});var T="".concat(g,"-line");if(Ra(n,g,"1",C[0],C[1],{color:I,width:y,lineDash:E,shadow:b},T),i=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var D=e._getTextLines(h,s);if(!h.handles.textBox.hasMoved){var S=xl(C);h.handles.textBox.worldPosition=a.canvasToWorld(S)}var O=a.worldToCanvas(h.handles.textBox.worldPosition),x=Ga(n,g,"1",D,O,C,{},e.getLinkedTextBoxStyle(u,f)),M=x.x,R=x.y,N=x.width,P=x.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,R]),topRight:a.canvasToWorld([M+N,R]),bottomLeft:a.canvasToWorld([M,R+P]),bottomRight:a.canvasToWorld([M+N,R+P])}}}return i})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=fl(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),zi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;br(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(null!=r&&!isNaN(r))return["".concat(r.toFixed(2)," ").concat(o)]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.handles.points[1],c=r.cachedStats,s=Object.keys(c),d=0;d<s.length;d++){var u=s[d],v=this.getTargetIdImage(u,t);if(v){var f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(a,l),m=Lu(f,a),w=Lu(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,c[u]={length:p,unit:h?"mm":"px"}}}e.invalidated=!1;var y=K.ANNOTATION_MODIFIED,E={annotation:e,viewportId:o,renderingEngineId:i};return(0,z.triggerEvent)(z.eventTarget,y,E),c}},{key:"_isInsideVolume",value:function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)}}]),o}(_l);J(Uu,"toolName",void 0),Uu.toolName="Length";var Vu=Uu,Bu=c(847),Fu=c.n(Bu);var ju=z.CONSTANTS.RENDERING_DEFAULTS;function Wu(){return"rgb(0, 200, 0)"}function Gu(){return!0}function Hu(){return!0}function qu(){return!0}var zu=.001,Ku=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t,n,i,a,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:z.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return Y(this,o),J(Sr(a=r.call(this,l,c)),"toolCenter",[0,0,0]),J(Sr(a),"_getReferenceLineColor",void 0),J(Sr(a),"_getReferenceLineControllable",void 0),J(Sr(a),"_getReferenceLineDraggableRotatable",void 0),J(Sr(a),"_getReferenceLineSlabThicknessControlsOn",void 0),J(Sr(a),"editData",void 0),J(Sr(a),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,z.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,i=r.viewport,l=i.element,c=i.getCamera(),s=c.position,d=c.focalPoint,u=c.viewPlaneNormal,v=Be(l,a.getToolName());return(v=a.filterInteractableAnnotationsForElement(l,v)).length&&We(v[0].annotationUID,l),Fe(l,{highlighted:!1,metadata:{cameraPosition:un(s),cameraFocalPoint:un(d),FrameOfReferenceUID:o,toolName:a.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:a.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}}),{normal:u,point:i.canvasToWorld([i.canvas.clientWidth/2,i.canvas.clientHeight/2])}})),J(Sr(a),"_getViewportsInfo",(function(){return Dr(a.toolGroupId).viewportsInfo})),J(Sr(a),"computeToolCenter",(function(e){if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=Ba(e,3),n=t[0],r=t[1],o=t[2],i=a.initializeViewport(n),l=i.normal,c=i.point,s=a.initializeViewport(r),d=s.normal,u=s.point,v=[0,0,0],f=ua.vec3.create();if(o){var g=a.initializeViewport(o);v=g.normal,f=g.point}else ua.vec3.add(f,c,u),ua.vec3.scale(f,f,.5),ua.vec3.cross(v,l,d);var h=z.utilities.planar.planeEquation(l,c),p=z.utilities.planar.planeEquation(d,u),m=z.utilities.planar.planeEquation(v,f);a.toolCenter=z.utilities.planar.threePlaneIntersection(h,p,m);var w=(0,z.getEnabledElementByIds)(e[0].viewportId,e[0].renderingEngineId).renderingEngine;br(w,e.map((function(e){return e.viewportId})))})),J(Sr(a),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,i=(0,z.getEnabledElement)(r),l=i.viewport;a._jump(i,o);for(var c=Be(r,a.getToolName()),s=a.filterInteractableAnnotationsForElement(l.element,c),d=s[0].data,u=d.handles.rotationPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=a._getReferenceLineControllable(g.id),p=a._getReferenceLineDraggableRotatable(g.id);h&&p&&(v.push(g.id),f++)}return d.activeViewportIds=[].concat(v),d.handles.activeOperation=1,e.preventDefault(),zi(r),a._activateModify(r),s[0]})),J(Sr(a),"cancel",(function(){console.log("Not implemented yet")})),J(Sr(a),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),zi(r),e.preventDefault()})),J(Sr(a),"isPointNearTool",(function(e,t,n,r){return!!a._pointNearTool(e,t,n,6)})),J(Sr(a),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),zi(r),e.preventDefault()})),J(Sr(a),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,z.getEnabledElement)(n),o=r.renderingEngine,i=(r.viewportId,r.viewport),l=Be(n,a.getToolName()),c=a.filterInteractableAnnotationsForElement(n,l)[0];if(c){var s=i.getCamera(),d=c.metadata.cameraPosition,u=[0,0,0];Zc().subtract(s.position,d,u);var v=c.metadata.cameraFocalPoint,f=[0,0,0];Zc().subtract(s.focalPoint,v,f),c.metadata.cameraPosition=un(s.position),c.metadata.cameraFocalPoint=un(s.focalPoint);var g=a._getReferenceLineControllable(i.id),h=a._getReferenceLineDraggableRotatable(i.id);if(!z.utilities.isEqual(s.position,d,.001)&&g&&h){var p=!1;z.utilities.isEqual(u,f,.001)||(p=!0);var m=Math.abs(Zc().dot(u,s.viewPlaneNormal))<.01;p||m||(a.toolCenter[0]+=u[0],a.toolCenter[1]+=u[1],a.toolCenter[2]+=u[2])}null!==(t=a.configuration.autoPan)&&void 0!==t&&t.enabled&&In(i.id,o.id).getViewportIds().filter((function(e){return e!==i.id})).forEach((function(e){a._autoPanViewportIfNecessary(e,o)}));var w=fl(n,a.getToolName(),!1);br(o,w)}})),J(Sr(a),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,i=!1,l=0;l<t.length;l++){var c=t[l];if(!oe(c)){var s=c.data,d=c.highlighted;if(s.handles){var u=s.handles.activeOperation,v=s.activeViewportIds&&s.activeViewportIds.length>0?un(s.activeViewportIds):[];s.activeViewportIds=[],s.handles.activeOperation=null;var f;(f=!!a.getHandleNearImagePoint(r,c,o,6)||a._pointNearTool(r,c,o,6))&&!d||!f&&d?(c.highlighted=!d,i=!0):s.handles.activeOperation===u&&a._areViewportIdArraysEqual(s.activeViewportIds,v)||(i=!0)}}}return i})),J(Sr(a),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,z.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),J(Sr(a),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,i=r.element,l=Be(i,a.getToolName()),c=r.getCamera(),s=a.filterInteractableAnnotationsForElement(i,l)[0];if(!l||!s||!s.data)return n;var d=s.annotationUID,u=r.canvas,v=u.clientWidth,f=u.clientHeight,g=Math.sqrt(v*v+f*f),h=s.data,p=r.worldToCanvas(a.toolCenter),m=a._filterAnnotationsByUniqueViewportOrientations(e,l),w=[];m.forEach((function(e){var t=e.data;t.handles.toolCenter=a.toolCenter;var n=o.getViewport(t.viewportId),i=n.getCamera(),l=a._getReferenceLineControllable(n.id),s=a._getReferenceLineDraggableRotatable(n.id),d=a._getReferenceLineSlabThicknessControlsOn(n.id),u=n.canvas,v=u.clientWidth,f=u.clientHeight,h=Math.sqrt(v*v+f*f),y=[.5*v,.5*f],E=n.canvasToWorld(y),I=[0,0,0];Zc().cross(c.viewPlaneNormal,i.viewPlaneNormal,I),Zc().normalize(I),Zc().multiplyScalar(I,h);var b=[0,0,0];Zc().add(E,I,b);var C=[0,0,0];Zc().subtract(E,I,C);var _=[0,0,v,f],T=r.worldToCanvas(b),D=r.worldToCanvas(E),S=ua.vec2.create();ua.vec2.subtract(S,T,D),ua.vec2.normalize(S,S);var O=ua.vec2.create();ua.vec2.scale(O,S,100*g);var x=ua.vec2.create();ua.vec2.scale(x,S,.25*g);var M=ua.vec2.create();ua.vec2.scale(M,S,.15*g);var R=ua.vec2.create();ua.vec2.scale(R,S,2===m.length?.04*g:0);var N=ua.vec2.create(),P=ua.vec2.create(),k=ua.vec2.create(),A=ua.vec2.create(),L=ua.vec2.clone(p);s&&l||(L=ua.vec2.clone(D)),ua.vec2.add(N,L,R),ua.vec2.add(P,L,O),ua.vec2.subtract(k,L,R),ua.vec2.subtract(A,L,O),kc(N,P,_),kc(k,A,_);var U=ua.vec2.create();ua.vec2.subtract(U,p,x);var V=ua.vec2.create();ua.vec2.add(V,p,x);var B=ua.vec2.clone(p);!s&&d&&(B=ua.vec2.clone(D));var F=un(a.toolCenter);!s&&d&&(F=un(E));var j=[0,0,0];Zc().subtract(b,C,j),Zc().normalize(j);var W=c.viewPlaneNormal,G=Fu().buildFromDegree().rotate(90,W).matrix,H=[0,0,0];ua.vec3.transformMat4(H,j,G);var q=n.getSlabThickness(),z=[].concat(H);Zc().multiplyScalar(z,q);var K=[0,0,0];Zc().add(F,z,K);var Y=r.worldToCanvas(K),$=ua.vec2.create();ua.vec2.subtract($,B,Y);var Z=ua.vec2.create();ua.vec2.subtract(Z,B,O),ua.vec2.add(Z,Z,$);var J=ua.vec2.create();ua.vec2.add(J,B,O),ua.vec2.add(J,J,$),kc(Z,J,_);var X=ua.vec2.create();ua.vec2.add(X,B,O),ua.vec2.subtract(X,X,$);var Q=ua.vec2.create();ua.vec2.subtract(Q,B,O),ua.vec2.subtract(Q,Q,$),kc(X,Q,_);var ee=ua.vec2.create(),te=ua.vec2.create(),ne=ua.vec2.create(),re=ua.vec2.create();ua.vec2.subtract(ee,B,M),ua.vec2.add(ee,ee,$),ua.vec2.add(te,B,M),ua.vec2.add(te,te,$),ua.vec2.subtract(ne,B,M),ua.vec2.subtract(ne,ne,$),ua.vec2.add(re,B,M),ua.vec2.subtract(re,re,$),w.push([n,N,P,k,A,Z,J,X,Q,U,V,ee,te,ne,re])}));var y=[],E=[],I=a._getReferenceLineColor(r.id),b=void 0!==I?I:"rgb(200, 200, 200)";return w.forEach((function(e,n){var o=e[0],i=a._getReferenceLineColor(o.id),l=a._getReferenceLineControllable(o.id),c=a._getReferenceLineDraggableRotatable(o.id),s=a._getReferenceLineSlabThicknessControlsOn(o.id),u=h.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==i?i:"rgb(200, 200, 200)",f=1,g=null!==h.handles.activeOperation&&1===h.handles.activeOperation&&u;g&&(f=2.5);var p="".concat(n);if(l&&c?(p="".concat(n,"One"),Ra(t,d,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),Ra(t,d,p,e[3],e[4],{color:v,lineWidth:f})):Ra(t,d,p,e[2],e[4],{color:v,lineWidth:f}),l){v=void 0!==i?i:"rgb(200, 200, 200)";var m=2===h.handles.activeOperation,w=[e[9],e[10]],I=[r.canvasToWorld(e[9]),o,e[1],e[2]],b=[r.canvasToWorld(e[10]),o,e[3],e[4]];y.push(I,b);var C=3===h.handles.activeOperation,_=[e[11],e[12],e[13],e[14]],T=[r.canvasToWorld(e[11]),o,e[5],e[6]],D=[r.canvasToWorld(e[12]),o,e[5],e[6]],S=[r.canvasToWorld(e[13]),o,e[7],e[8]],O=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(E.push(T,D,S,O),g&&!m&&!C&&c&&s){var x="".concat(n,"One");Ma(t,d,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),Ma(t,d,x,_,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&c){var M="".concat(n);Ma(t,d,M,w,{color:v,handleRadius:3,type:"circle"})}else if(u&&!m&&!C&&s){var R="".concat(n);Ma(t,d,R,_,{color:v,handleRadius:3,type:"rect"})}else if(m&&c){var N="".concat(n);Ma(t,d,N,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&s&&Ma(t,d,p,_,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&s&&(p="".concat(n,"STOne"),Ra(t,d,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),Ra(t,d,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=y,h.handles.slabThicknessPoints=E,a.configuration.viewportIndicators&&Oa(t,d,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),J(Sr(a),"_onNewVolume",(function(e){var t=a._getViewportsInfo();a.computeToolCenter(t)})),J(Sr(a),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),J(Sr(a),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,i=t.filter((function(e){return e.data.viewportId!==n}));if(!i||!i.length)return[];var a=o.getCamera(),l=a.viewPlaneNormal,c=a.position,s=i.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(z.utilities.isEqual(n.viewPlaneNormal,l,.01)&&z.utilities.isEqual(n.position,c,1))}));return s})),J(Sr(a),"_filterViewportWithSameOrientation",(function(e,t,n){var r=e.renderingEngine,o=t.data,i=r.getViewport(o.viewportId),l=n.filter((function(e){var t=e.data,n=r.getViewport(t.viewportId);return!0===a._getReferenceLineControllable(n.id)}));if(!l||!l.length)return[];var c=i.getCamera(),s=c.viewPlaneNormal;return Zc().normalize(s),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return Zc().normalize(o),z.utilities.isEqual(s,o,.01)&&z.utilities.isEqual(c.viewUp,n.viewUp,.01)}))})),J(Sr(a),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;Zc().normalize(o);for(var i=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0===i})),l=[],c=0;c<i.length;++c){var s=i[c],d=s.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(Zc().normalize(v),!z.utilities.isEqual(o,v,.01)&&!z.utilities.isOpposite(o,v,.01)){for(var f=!1,g=0;g<l.length;++g){var h=l[g].data.viewportId,p=n.getViewport(h).getCamera();z.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&z.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(s)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0!==i})),w=0;w<m.length;++w){var y=m[w],E=y.data.viewportId,I=n.getViewport(E).getCamera(),b=I.viewPlaneNormal;if(Zc().normalize(b),!z.utilities.isEqual(o,b,.01)&&!z.utilities.isOpposite(o,b,.01)){for(var C=!1,_=0;_<l.length;++_){var T=l[_].data.viewportId,D=n.getViewport(T).getCamera();z.utilities.isEqual(D.viewPlaneNormal,I.viewPlaneNormal,.01)&&z.utilities.isEqual(D.position,I.position,1)&&(C=!0)}C||l.push(y)}}for(var S=a._getAnnotationsForViewportsWithDifferentCameras(e,t),O=function(e){var t=S[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,i=n.getViewport(r).getCamera(),a=i.viewPlaneNormal;if(Zc().normalize(a),z.utilities.isEqual(o,a,.01)||z.utilities.isOpposite(o,a,.01))return"continue";for(var c=!1,s=0;s<l.length;++s){var d=l[s].data.viewportId,u=n.getViewport(d).getCamera();z.utilities.isEqual(u.viewPlaneNormal,i.viewPlaneNormal,.01)&&z.utilities.isEqual(u.position,i.position,1)&&(c=!0)}c||l.push(t)},x=0;x<S.length;++x)O(x);return l})),J(Sr(a),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),J(Sr(a),"_jump",(function(e,t){hn.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=Be(n.element,a.getToolName()),i=[0,0,0];Zc().subtract(t,a.toolCenter,i);var l=a._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),i=a._checkIfViewportsRenderingSameScene(n,o);return a._getReferenceLineControllable(o.id)&&a._getReferenceLineDraggableRotatable(o.id)&&i}));return 0===l.length?(hn.isInteractingWithTool=!1,!1):(a._applyDeltaShiftToSelectedViewportCameras(r,l,i),hn.isInteractingWithTool=!1,!0)})),J(Sr(a),"_activateModify",(function(e){hn.isInteractingWithTool=!0,e.addEventListener(K.MOUSE_UP,a._mouseUpCallback),e.addEventListener(K.MOUSE_DRAG,a._mouseDragCallback),e.addEventListener(K.MOUSE_CLICK,a._mouseUpCallback)})),J(Sr(a),"_deactivateModify",(function(e){hn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,a._mouseUpCallback),e.removeEventListener(K.MOUSE_DRAG,a._mouseDragCallback),e.removeEventListener(K.MOUSE_CLICK,a._mouseUpCallback)})),J(Sr(a),"_mouseUpCallback",(function(e){var t=e.detail.element;a.editData.annotation.data.handles.activeOperation=null,a.editData.annotation.data.activeViewportIds=[],a._deactivateModify(t),qi(t),a.editData=null;var n=(0,z.getEnabledElement)(t).renderingEngine,r=fl(t,a.getToolName(),!1);br(n,r)})),J(Sr(a),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,z.getEnabledElement)(r),i=o.renderingEngine,l=o.viewport,c=Be(r,a.getToolName()),s=a.filterInteractableAnnotationsForElement(r,c)[0];if(s){var d=s.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));a._applyDeltaShiftToSelectedViewportCameras(i,v,n)}else if(2===d.activeOperation){var f=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=ua.vec2.create(),h=ua.vec2.create(),p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,y=ua.vec2.create();ua.vec2.sub(y,w,t.deltaPoints.canvas),ua.vec2.sub(g,y,m),ua.vec2.sub(h,w,m);var E=ua.vec2.angle(g,h);a._isClockWise(m,y,w)&&(E*=-1),E=Math.round(100*E)/100;var I=l.getCamera().viewPlaneNormal,b=Fu().buildFromRadian().translate(p[0],p[1],p[2]).rotate(E,I).translate(-p[0],-p[1],-p[2]).matrix,C=[];f.forEach((function(e){var t=e.data;t.handles.toolCenter=p;var n=i.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,a=r.position,l=r.focalPoint;o[0]+=a[0],o[1]+=a[1],o[2]+=a[2],ua.vec3.transformMat4(l,l,b),ua.vec3.transformMat4(a,a,b),ua.vec3.transformMat4(o,o,b),o[0]-=a[0],o[1]-=a[1],o[2]-=a[2],n.setCamera({position:a,viewUp:o,focalPoint:l}),C.push(n.id)})),i.renderViewports(C)}else if(3===d.activeOperation){var _=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineSlabThicknessControlsOn(n.id);return!0===r&&!0===o&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===_.length)return;var T=a._filterViewportWithSameOrientation(o,_[0],c),D=[];D.push(l.id),T.forEach((function(e){var r=e.data,o=i.getViewport(r.viewportId),c=o.getCamera().viewPlaneNormal,d=Zc().dot(n,c),v=un(c);if(Zc().multiplyScalar(v,d),Math.abs(v[0])>.001||Math.abs(v[1])>.001||Math.abs(v[2])>.001){var f=Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]),g=t.lastPoints.world,h=[0,0,0],p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]];if(!a._getReferenceLineDraggableRotatable(o.id)){var m=a.editData.annotation.data.handles.rotationPoints.filter((function(e){return e[1].uid===o.id}));if(2===m.length){var w=l.canvasToWorld(m[0][3]),y=l.canvasToWorld(m[1][3]);Zc().add(w,y,p),Zc().multiplyScalar(p,.5)}}Zc().subtract(g,p,h);var E=Zc().dot(h,c),I=un(c);Zc().multiplyScalar(I,E);var b=[I[0],I[1],I[2]];ua.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];ua.vec3.normalize(C,C);var _=o.getSlabThickness();z.utilities.isOpposite(b,C,.001)?_-=f:_+=f,_=Math.abs(_),_=Math.max(ju.MINIMUM_SLAB_THICKNESS,_),a._pointNearReferenceLine(s,u,6,o)&&(_=ju.MINIMUM_SLAB_THICKNESS),In(o.id,i.id).getToolInstance(a.getToolName()).setSlabThickness(o,_),D.push(o.id)}})),i.renderViewports(D)}}}})),J(Sr(a),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,i=0;i<o.length-1;++i){var l=o[i][1];if(l.id===r.id&&a._getReferenceLineControllable(l.id)){var c={start:{x:o[i][2][0],y:o[i][2][1]},end:{x:o[i][3][0],y:o[i][3][1]}},s=Sl([c.start.x,c.start.y],[c.end.x,c.end.y],[t[0],t[1]]),d={start:{x:o[i+1][2][0],y:o[i+1][2][1]},end:{x:o[i+1][3][0],y:o[i+1][3][1]}},u=Sl([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(s<=n||u<=n)return!0;i++}}return!1})),a._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||Wu,a._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Gu,a._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Hu,a._getReferenceLineSlabThicknessControlsOn=(null===(i=l.configuration)||void 0===i?void 0:i.getReferenceLineSlabThicknessControlsOn)||qu,a}return Z(o,[{key:"onSetToolActive",value:function(){var e=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(e),this._subscribeToViewportNewVolumeSet(e),this.computeToolCenter(e)}},{key:"onSetToolPassive",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolEnabled",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolDisabled",value:function(){var e=this,t=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(t),t.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,z.getEnabledElementByIds)(r,n);if(o){var i=o.viewport.element,a=Be(i,e.getToolName());null!=a&&a.length&&a.forEach((function(e){We(e.annotationUID,i)}))}}))}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==i||null!==(i=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?i:void 0}},{key:"_unsubscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,z.getEnabledElementByIds)(n,r).viewport.element.removeEventListener(z.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_subscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,z.getEnabledElementByIds)(n,r).viewport.element.addEventListener(z.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.canvas,i=o.clientWidth,a=o.clientHeight,l=r.canvasToWorld([0,0]),c=r.canvasToWorld([i,a]),s=r.canvasToWorld([i,0]),d=r.canvasToWorld([0,a]),u=Math.min(l[0],c[0],s[0],d[0]),v=Math.max(l[0],c[0],s[0],d[0]),f=Math.min(l[1],c[1],s[1],d[1]),g=Math.max(l[1],c[1],s[1],d[1]),h=Math.min(l[2],c[2],s[2],d[2]),p=Math.max(l[2],c[2],s[2],d[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-zu)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+zu)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-zu)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+zu)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-zu)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+zu))return;n=[0,0,p-this.toolCenter[2]-m]}var w=r.getCamera(),y=w.focalPoint,E=w.position,I=[E[0]-n[0],E[1]-n[1],E[2]-n[2]],b=[y[0]-n[0],y[1]-n[1],y[2]-n[2]];r.setCamera({focalPoint:b,position:I}),r.render()}},{key:"setSlabThickness",value:function(e,t){var n,r=this.configuration.filterActorUIDsToSetSlabThickness;r&&r.length>0&&(n=r);var o=this.configuration.slabThicknessBlendMode;t===ju.MINIMUM_SLAB_THICKNESS&&(o=z.Enums.BlendModes.COMPOSITE),e.setBlendMode(o,n,!1),e.setSlabThickness(t,n)}},{key:"_isClockWise",value:function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])>0}},{key:"_applyDeltaShiftToSelectedViewportCameras",value:function(e,t,n){var r=this;t.forEach((function(t){r._applyDeltaShiftToViewportCamera(e,t,n)}))}},{key:"_applyDeltaShiftToViewportCamera",value:function(e,t,n){var r=t.data,o=e.getViewport(r.viewportId),i=o.getCamera(),a=i.viewPlaneNormal,l=Zc().dot(n,a),c=un(a);if(Zc().multiplyScalar(c,l),Math.abs(c[0])>.001||Math.abs(c[1])>.001||Math.abs(c[2])>.001){var s=[0,0,0],d=[0,0,0];Zc().add(i.focalPoint,c,s),Zc().add(i.position,c,d),o.setCamera({focalPoint:s,position:d}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.rotationPoints,a=0;a<i.length;a++){var l=i[a][0],c=i[a][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineDraggableRotatable(c.id)){var s=e.worldToCanvas(l);if(ua.vec2.distance(n,s)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.slabThicknessPoints,a=0;a<i.length;a++){var l=i[a][0],c=i[a][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineSlabThicknessControlsOn(c.id)){var s=e.worldToCanvas(l);if(ua.vec2.distance(n,s)<r)return o.handles.activeOperation=3,o.activeViewportIds=[c.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,i=(0,z.getEnabledElement)(e).viewport.canvas,a=i.clientWidth,l=i.clientHeight,c=Math.sqrt(a*a+l*l),s=t.data,d=s.handles.rotationPoints,u=s.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=Sl([m.start.x,m.start.y],[m.end.x,m.end.y],[n[0],n[1]]),y={start:{x:d[f+1][2][0],y:d[f+1][2][1]},end:{x:d[f+1][3][0],y:d[f+1][3][1]}},E=Sl([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(w<=r||E<=r)&&(v.push(g.id),s.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var i=o._getReferenceLineControllable(t.id),a=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!i||!a)return b=e,"continue";var l=u[e][2],d=u[e][3],f=ua.vec2.create();ua.vec2.add(f,l,d),ua.vec2.scale(f,f,.5);var g=ua.vec2.create();ua.vec2.subtract(g,l,f),ua.vec2.normalize(g,g);var h=ua.vec2.create();ua.vec2.scale(h,g,.05*c);var p=ua.vec2.create(),m=ua.vec2.create();ua.vec2.add(p,f,h),ua.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},y=Sl([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]),E={start:{x:m[0],y:m[1]},end:{x:d[0],y:d[1]}},I=Sl([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(y<=r||I<=r)&&(v.push(t.id),s.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return s.activeViewportIds=[].concat(v),this.editData={annotation:t},1===s.handles.activeOperation}}]),o}(_l);J(Ku,"toolName",void 0),Ku.toolName="Crosshairs";var Yu=Ku;var $u=z.CONSTANTS.EPSILON,Zu=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:""}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",{}),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"_init",(function(){var t=(0,z.getRenderingEngines)()[0];if(t){var n=t.getViewports();n=dl(n,e.getToolName());var r=t.getViewport(e.configuration.sourceViewportId);if(r&&r.getImageData()){var o=r.element,i=r.getCamera(),a=i.viewUp,l=i.viewPlaneNormal,c=z.utilities.getViewportImageCornersInWorld(r),s=e.editData.annotation;if(s)e.editData.annotation.data.handles.points=c;else{var d={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(l),viewUp:un(a),FrameOfReferenceUID:r.getFrameOfReferenceUID(),referencedImageId:null},data:{handles:{points:c}}};Fe(o,d),s=d}e.editData={sourceViewport:r,renderingEngine:t,annotation:s},br(t,n.filter((function(e){return e.id!==r.id})).map((function(e){return e.id})))}}})),J(Sr(e),"onSetToolEnabled",(function(){e._init()})),J(Sr(e),"onCameraModified",(function(t){e._init()})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=t.viewport,a=e.editData,l=a.annotation,c=a.sourceViewport,s=!1;if(!c)return s;if(c.id===i.id)return s;if(!l||null==l||null===(r=l.data)||void 0===r||null===(o=r.handles)||void 0===o||!o.points)return s;var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=l.data.handles.points[0],v=l.data.handles.points[1],f=l.data.handles.points[2],g=l.data.handles.points[3],h=i.getCamera(),p=h.focalPoint,m=h.viewPlaneNormal,w=c.getCamera().viewPlaneNormal;if(e.isParallel(m,w))return s;var y=z.utilities.planar.planeEquation(m,p),E=[u,f,v,g],I=[u,v,f,g],b=E,C=ua.vec3.subtract(ua.vec3.create(),E[0],E[1]);C=ua.vec3.normalize(ua.vec3.create(),C);var _=ua.vec3.subtract(ua.vec3.create(),E[2],E[0]);_=ua.vec3.normalize(ua.vec3.create(),_);var T=ua.vec3.cross(ua.vec3.create(),C,_);if(e.isParallel(T,m))return s;e.isPerpendicular(C,m)&&(b=I);var D=z.utilities.planar.linePlaneIntersection(b[0],b[1],y),S=z.utilities.planar.linePlaneIntersection(b[2],b[3],y),O=l.annotationUID;d.annotationUID=O;var x=e.getStyle("lineWidth",d,l),M=e.getStyle("lineDash",d,l),R=e.getStyle("color",d,l),N=e.getStyle("shadow",d,l),P=[D,S].map((function(e){return i.worldToCanvas(e)})),k="".concat(O,"-line");return Ra(n,O,"1",P[0],P[1],{color:R,width:x,lineDash:M,shadow:N},k),!0})),J(Sr(e),"isPerpendicular",(function(e,t){var n=ua.vec3.dot(e,t);return Math.abs(n)<$u})),e}return Z(o,[{key:"isParallel",value:function(e,t){return Math.abs(ua.vec3.dot(e,t))>1-$u}}]),o}(El);J(Zu,"toolName",void 0),Zu.toolName="ReferenceLines";var Ju=Zu;function Xu(e,t,n,r){var o=ua.vec3.create();ua.vec3.cross(o,t,e);var i=ua.vec3.fromValues.apply(ua.vec3,un(n)),a=ua.vec3.fromValues.apply(ua.vec3,un(r)),l=ua.vec3.create();ua.vec3.subtract(l,i,a);var c=ua.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=ua.vec3.dot(l,o)/(c*ua.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}var Qu=z.utilities.transformWorldToIndex,ev=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,centerPointRadius:0}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",!1),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(c,i,u,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(u),viewUp:un(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null},cachedStats:{}}};Fe(o,g);var h=fl(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,centerCanvas:a,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(s,h),g})),J(Sr(e),"isPointNearTool",(function(t,n,r,o){var i=(0,z.getEnabledElement)(t).viewport,a=Ba(oc(n.data.handles.points.map((function(e){return i.worldToCanvas(e)}))),2),l=a[0],c=a[1],s={left:Math.min(l[0],c[0])+o/2,top:Math.min(l[1],c[1])+o/2,width:Math.abs(l[0]-c[0])-o,height:Math.abs(l[1]-c[1])-o},d={left:Math.min(l[0],c[0])-o/2,top:Math.min(l[1],c[1])-o/2,width:Math.abs(l[0]-c[0])+o,height:Math.abs(l[1]-c[1])+o},u=e._pointInEllipseCanvas(s,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},zi(o),e._activateModify(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),t.preventDefault()})),J(Sr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l,c,s,d,u=!1;if(r.worldPosition)u=!0;else{var v=i.handles.points,f=(0,z.getEnabledElement)(o).viewport.worldToCanvas;a=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[a],c=Math.abs(g[2][0]-g[3][0]),s=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:a,canvasWidth:c,canvasHeight:s,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),zi(o);var p=(0,z.getEnabledElement)(o).renderingEngine;br(p,h),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(s,i),a){var d=K.ANNOTATION_COMPLETED,u={annotation:o};(0,z.triggerEvent)(z.eventTarget,d,u)}}})),J(Sr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,br(a,d)})),J(Sr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else e._dragHandle(t),i.invalidated=!0;var g=(0,z.getEnabledElement)(r).renderingEngine;br(g,a)})),J(Sr(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r).viewport.canvasToWorld,i=e.editData,a=i.annotation,l=i.canvasWidth,c=i.canvasHeight,s=i.handleIndex,d=i.centerCanvas,u=i.originalHandleCanvas,v=a.data.handles.points,f=n.currentPoints.canvas;if(0===s||1===s){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],y=[d[0]+m,d[1]];v[2]=o(w),v[3]=o(y)}else{var E=Math.abs(f[0]-d[0]),I=[d[0]-E,d[1]],b=[d[0]+E,d[1]];v[2]=o(I),v[3]=o(b);var C=c/2+(f[1]-u[1]),_=[d[0],d[1]-C],T=[d[0],d[1]+C];v[0]=o(_),v[1]=o(T)}})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),E=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=m.map((function(e){return a.worldToCanvas(e)})),C=oc(b),_=e.configuration.centerPointRadius;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].areaUnit?f.invalidated&&(e._throttledCalculateCachedStats(f,a,d,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,a,d,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var T=void 0;if(Se(g)){oe(f)||e.editData||null===w||(T=[b[w]]),T&&Ma(n,g,"0",T,{color:I});var D="".concat(g,"-ellipse");if(xa(n,g,"0",C[0],C[1],{color:I,lineDash:E,lineWidth:y},D),_>0&&Math.min(Math.abs(C[0][0]-C[1][0])/2,Math.abs(C[0][1]-C[1][1])/2)>3*_){var S=e._getCanvasEllipseCenter(b);Oa(n,g,"0",S,_,{color:I,lineDash:E,lineWidth:y})}i=!0;var O=Nl(a,s),x=e._getTextLines(h,s,O);if(x&&0!==x.length){var M=void 0;h.handles.textBox.hasMoved||(M=xl(C),h.handles.textBox.worldPosition=a.canvasToWorld(M));var R=a.worldToCanvas(h.handles.textBox.worldPosition),N=Ga(n,g,"1",x,R,b,{},e.getLinkedTextBoxStyle(u,f)),P=N.x,k=N.y,A=N.width,L=N.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,k]),topRight:a.canvasToWorld([P+A,k]),bottomLeft:a.canvasToWorld([P,k+L]),bottomRight:a.canvasToWorld([P+A,k+L])}}}}return i})),J(Sr(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,i=r.mean,a=r.stdDev,l=r.max,c=r.isEmptyArea,s=r.Modality,d=r.areaUnit,u=[],v=Rl(s,n);if(o){var f=c?"Area: Oblique not supported":"Area: ".concat(o.toFixed(2)," ").concat(d,"²");u.push(f)}return i&&u.push("Mean: ".concat(i.toFixed(2)," ").concat(v)),l&&u.push("Max: ".concat(l.toFixed(2)," ").concat(v)),a&&u.push("Std Dev: ".concat(a.toFixed(2)," ").concat(v)),u})),J(Sr(e),"_calculateCachedStats",(function(t,n,r,o){for(var i=t.data,a=o.viewportId,l=o.renderingEngineId,c=i.handles.points.map((function(e){return n.worldToCanvas(e)})),s=n.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=Ba(oc(c),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=i.cachedStats,w=Object.keys(m),y=h,E=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r);if(C){var _=C.dimensions,T=C.imageData,D=C.metadata,S=C.hasPixelSpacing,O=Qu(T,y);O[0]=Math.floor(O[0]),O[1]=Math.floor(O[1]),O[2]=Math.floor(O[2]);var x=Qu(T,E);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(O,x,_)?function(){var e=[[Math.min(O[0],x[0]),Math.max(O[0],x[0])],[Math.min(O[1],x[1]),Math.max(O[1],x[1])],[Math.min(O[2],x[2]),Math.max(O[2],x[2])]],t={center:[(h[0]+p[0])/2,(h[1]+p[1])/2,(h[2]+p[2])/2],xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},n=Xu(d,u,y,E),r=n.worldWidth,o=n.worldHeight,i=0===r&&0===o,a=Math.PI*(r/2)*(o/2),l=0,c=0,s=0,v=-1/0;tl(T,(function(e,n){return ic(t,e)}),(function(e){var t=e.value;t>v&&(v=t),c+=t,l+=1}),e),c/=l,tl(T,(function(e,n){return ic(t,e)}),(function(e){var t=e.value-c;s+=t*t}),e),s/=l,s=Math.sqrt(s),m[b]={Modality:D.Modality,area:a,mean:c,max:v,stdDev:s,isEmptyArea:i,areaUnit:S?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:D.Modality})}}t.invalidated=!1;var M=K.ANNOTATION_MODIFIED,R={annotation:t,viewportId:a,renderingEngineId:l};return(0,z.triggerEvent)(z.eventTarget,M,R),m})),J(Sr(e),"_isInsideVolume",(function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],i=[t[0]-o[0],t[1]-o[1]];return i[0]*i[0]/(n*n)+i[1]*i[1]/(r*r)<=1}},{key:"_getCanvasEllipseCenter",value:function(e){var t=Ba(e,4),n=t[0],r=t[1],o=t[2],i=t[3],a=[o[0],r[1]],l=[i[0],n[1]];return[(a[0]+l[0])/2,(a[1]+l[1])/2]}}]),o}(_l);J(ev,"toolName",void 0),ev.toolName="EllipticalROI";var tv=ev;var nv=z.utilities.transformWorldToIndex,rv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"preventHandleOutsideImage",void 0),J(Sr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data.handles.points,a=o.worldToCanvas(i[0]),l=o.worldToCanvas(i[1]),c={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}},s=Sl([c.start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]);return s<=r||(a=o.worldToCanvas(i[2]),l=o.worldToCanvas(i[3]),(s=Sl([(c={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}}).start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]))<=r)})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),zi(o),t.preventDefault()})),J(Sr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var c=fl(o,e.getToolName());zi(o),e.editData={annotation:n,viewportIdsToRender:c,handleIndex:a,movingTextBox:l},e._activateModify(o);var s=(0,z.getEnabledElement)(o).renderingEngine;br(s,c),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=c.handles.points,u=ua.vec3.distance(d[0],d[1]);if(ua.vec3.distance(d[2],d[3])>u){var v=[un(d[2]),un(d[3])],f=un(d[0]),g=un(d[1]),h=ua.vec2.create();ua.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=ua.vec2.create();ua.vec2.set(p,-h[1],h[0]);var m,w=ua.vec2.create();ua.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=ua.vec2.dot(w,p)>0?[f,g]:[g,f],c.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(s,i),a){var y=K.ANNOTATION_COMPLETED,E={annotation:o};(0,z.triggerEvent)(z.eventTarget,y,E)}e.editData=null,e.isDrawing=!1}})),J(Sr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o),a=i.renderingEngine,l=i.viewport,c=l.worldToCanvas,s=e.editData,d=s.annotation,u=s.viewportIdsToRender,v=s.handleIndex,f=d.data,g=r.world;f.handles.points[v]=un(g);var h=f.handles.points.map(c),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],ua.vec2.distance(h[0],h[1])/3),y=p.x-m.x,E=p.y-m.y,I=Math.sqrt(y*y+E*E),b=y/I,C=E/I,_=(p.x+m.x)/2,T=(p.y+m.y)/2,D=_+w*C,S=T-w*b,O=_-w*C,x=T+w*b;f.handles.points[2]=l.canvasToWorld([D,S]),f.handles.points[3]=l.canvasToWorld([O,x]),d.invalidated=!0,br(a,u),e.editData.hasMoved=!0})),J(Sr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r).renderingEngine,i=e.editData,a=i.annotation,l=i.viewportIdsToRender,c=i.handleIndex,s=i.movingTextBox,d=a.data;if(s){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===c){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),a.invalidated=!0}else e._handleDragModify(t),a.invalidated=!0;br(o,l)})),J(Sr(e),"_handleDragModify",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o).viewport,a=e.editData,l=a.annotation,c=a.handleIndex,s=l.data,d=r.world,u=[i.worldToCanvas(s.handles.points[0]),i.worldToCanvas(s.handles.points[1]),i.worldToCanvas(s.handles.points[2]),i.worldToCanvas(s.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=un(d),h=i.worldToCanvas(g);if(0===c||1===c){var p=u[0===c?1:0],m=ua.vec2.set(ua.vec2.create(),h[0]-p[0],h[1]-p[1]),w=ua.vec2.set(ua.vec2.create(),u[c][0]-p[0],u[c][1]-p[1]);ua.vec2.normalize(m,m),ua.vec2.normalize(w,w);var y={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(y,f))return;var E=p,I=e._getSignedAngle(w,m),b=u[2][0],C=u[2][1],_=u[3][0],T=u[3][1];b-=E[0],C-=E[1],_-=E[0],T-=E[1];var D=b*Math.cos(I)-C*Math.sin(I),S=b*Math.sin(I)+C*Math.cos(I),O=_*Math.cos(I)-T*Math.sin(I),x=_*Math.sin(I)+T*Math.cos(I);b=D+E[0],C=S+E[1],_=O+E[0],T=x+E[1];var M=i.canvasToWorld([b,C]),R=i.canvasToWorld([_,T]);s.handles.points[c]=g,s.handles.points[2]=M,s.handles.points[3]=R}else{var N=2===c?3:2,P={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},k=ua.vec2.subtract(ua.vec2.create(),[P.longLineSegment.end.x,P.longLineSegment.end.y],[P.longLineSegment.start.x,P.longLineSegment.start.y]),A=ua.vec2.normalize(ua.vec2.create(),k),L=ua.vec2.subtract(ua.vec2.create(),[h[0],h[1]],[u[c][0],u[c][1]]),U=ua.vec2.length(L),V=e._getSignedAngle(A,L),B=Math.cos(V)*U,F=ua.vec2.scaleAndAdd(ua.vec2.create(),[u[N][0],u[N][1]],A,B);if(e._movingLongAxisWouldPutItThroughShortAxis({start:{x:h[0],y:h[1]},end:{x:F[0],y:F[1]}},{start:{x:P.longLineSegment.start.x,y:P.longLineSegment.start.y},end:{x:P.longLineSegment.end.x,y:P.longLineSegment.end.y}}))return;if(!Lc([h[0],h[1]],[F[0],F[1]],[v.start.x,v.start.y],[v.end.x,v.end.y]))return;s.handles.points[N]=i.canvasToWorld(F),s.handles.points[c]=g}})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!0,a=t.viewport,l=a.element,c=Be(a.element,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return a.worldToCanvas(e)}));u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=e.getStyle("shadow",u,f);if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,width:null,unit:null},e._calculateCachedStats(f,d,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var _=void 0;if(Se(g)){oe(f)||e.editData||null===w||(_=[y[w]]),_&&Ma(n,g,"0",_,{color:b});var T="".concat(g,"-line-1"),D="".concat(g,"-line-2");Ra(n,g,"0",y[0],y[1],{color:b,lineDash:I,lineWidth:E,shadow:C},T),Ra(n,g,"1",y[2],y[3],{color:b,lineDash:I,lineWidth:E,shadow:C},D),i=!0;var S=e._getTextLines(h,s);if(S&&0!==S.length){var O=void 0;h.handles.textBox.hasMoved||(O=xl(y),h.handles.textBox.worldPosition=a.canvasToWorld(O));var x=a.worldToCanvas(h.handles.textBox.worldPosition),M=Ga(n,g,"1",S,x,y,{},e.getLinkedTextBoxStyle(u,f)),R=M.x,N=M.y,P=M.width,k=M.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([R,N]),topRight:a.canvasToWorld([R+P,N]),bottomLeft:a.canvasToWorld([R,N+k]),bottomRight:a.canvasToWorld([R+P,N+k])}}}}return i})),J(Sr(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=ua.vec2.create();ua.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),ua.vec2.normalize(n,n);var r={start:{x:t.start.x-10*n[0],y:t.start.y-10*n[1]},end:{x:t.end.x+10*n[0],y:t.end.y+10*n[1]}};return!Lc([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),J(Sr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width,i=n.unit;if(void 0!==r)return["L: ".concat(r.toFixed(2)," ").concat(i),"W: ".concat(o.toFixed(2)," ").concat(i)]})),J(Sr(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,i=r.viewportId,a=r.renderingEngineId,l=o.handles.points[0],c=o.handles.points[1],s=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n);if(h){var p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,y=e._calculateLength(l,c),E=e._calculateLength(s,d),I=y>E?y:E,b=y>E?E:y,C=nv(p,l),_=nv(p,c),T=nv(p,s),D=nv(p,d);e._isInsideVolume(C,_,T,D,m)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,u[g]={length:I,width:b,unit:w?"mm":"px"}}}t.invalidated=!1;var S=K.ANNOTATION_MODIFIED,O={annotation:t,viewportId:i,renderingEngineId:a};return(0,z.triggerEvent)(z.eventTarget,S,O),u})),J(Sr(e),"_isInsideVolume",(function(e,t,n,r,o){return z.utilities.indexWithinDimensions(e,o)&&z.utilities.indexWithinDimensions(t,o)&&z.utilities.indexWithinDimensions(n,o)&&z.utilities.indexWithinDimensions(r,o)})),J(Sr(e),"_getSignedAngle",(function(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],e[0]*t[0]+e[1]*t[1])})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=(0,z.getEnabledElement)(r),a=i.viewport,l=i.renderingEngine;this.isDrawing=!0;var c=a.getCamera(),s=c.viewPlaneNormal,d=c.viewUp,u=this.getReferencedImageId(a,o,s,d),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:un(s),viewUp:un(d),FrameOfReferenceUID:a.getFrameOfReferenceUID(),referencedImageId:u},data:{handles:{points:[un(o),un(o),un(o),un(o)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};Fe(r,v);var f=fl(r,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:f,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),zi(r),e.preventDefault(),br(l,f),v}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}}]),o}(_l);J(rv,"toolName",void 0),rv.toolName="Bidirectional";var ov=rv;var iv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,getTextCallback:av,changeTextCallback:lv,preventHandleOutsideImage:!1,arrowFirst:!0}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;zi(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f=e.configuration.arrowFirst,g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{text:"",handles:{points:[un(i),un(i)],activeHandleIndex:null,arrowFirst:f,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};Fe(o,g);var h=fl(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),br(c,h),g})),J(Sr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=Ba(t.data.handles.points,2),a=i[0],l=i[1],c=o.worldToCanvas(a),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return Sl([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),zi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),a&&e.configuration.getTextCallback((function(t){if(!t)return We(o.annotationUID,n),br(s,i),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var r=K.ANNOTATION_COMPLETED,a={annotation:o};(0,z.triggerEvent)(z.eventTarget,r,a),br(s,i)})),e.editData=null,e.isDrawing=!1}})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=un(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;br(h,a)})),J(Sr(e),"doubleClickCallback",(function(t){var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r),i=(o.viewportId,o.renderingEngineId,o.renderingEngine,Be(r,e.getToolName())),a=(i=e.filterInteractableAnnotationsForElement(r,i)).find((function(t){return e.isPointNearTool(r,t,n.currentPoints.canvas,6)}));if(a){var l=a;e.configuration.changeTextCallback(a,t.detail,e._doneChangingTextCallback.bind(Sr(e),r,l)),e.editData=null,e.isDrawing=!1}})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<c.length;d++){var u=c[d],v=u.annotationUID,f=u.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;s.annotationUID=v;var w=e.getStyle("lineWidth",s,u),y=e.getStyle("lineDash",s,u),E=e.getStyle("color",s,u),I=p.map((function(e){return a.worldToCanvas(e)})),b=void 0;if(oe(u)||e.editData||null===m||(b=[I[m]]),b&&Ma(n,v,"0",I,{color:E,lineWidth:w}),e.configuration.arrowFirst?qa(n,v,"1",I[1],I[0],{color:E,width:w,lineDash:y}):qa(n,v,"1",I[0],I[1],{color:E,width:w,lineDash:y}),i=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;if(h){if(!f.handles.textBox.hasMoved){var C=xl(I);f.handles.textBox.worldPosition=a.canvasToWorld(C)}var _=a.worldToCanvas(f.handles.textBox.worldPosition),T=Ga(n,v,"1",[h],_,I,{},e.getLinkedTextBoxStyle(s,u)),D=T.x,S=T.y,O=T.width,x=T.height;f.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([D,S]),topRight:a.canvasToWorld([D+O,S]),bottomLeft:a.canvasToWorld([D,S+x]),bottomRight:a.canvasToWorld([D+O,S+x])}}}return i})),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=fl(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),zi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;br(c,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.viewportId,a=r.renderingEngineId,l=fl(e,this.getToolName());br(o,l);var c=K.ANNOTATION_MODIFIED;(0,z.triggerEvent)(z.eventTarget,c,{annotation:t,viewportId:i,renderingEngineId:a})}},{key:"_isInsideVolume",value:function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)}}]),o}(_l);function av(e){return e(prompt("Enter your annotation:"))}function lv(e,t,n){return n(prompt("Enter your annotation:"))}J(iv,"toolName",void 0),iv.toolName="ArrowAnnotate";var cv=iv;var sv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"angleStartedNotYetCompleted",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"addNewAnnotation",(function(t){if(!e.angleStartedNotYetCompleted){e.angleStartedNotYetCompleted=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;zi(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,i,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[un(i),un(i)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Fe(o,f);var g=fl(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),br(c,g),f}})),J(Sr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=Ba(t.data.handles.points,3),a=i[0],l=i[1],c=i[2],s=o.worldToCanvas(a),d=o.worldToCanvas(l),u=o.worldToCanvas(c),v={start:{x:s[0],y:s[1]},end:{x:d[0],y:d[1]}},f={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},g=Sl([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=Sl([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),J(Sr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=fl(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),zi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;br(a,i),t.preventDefault()})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l)if(e.angleStartedNotYetCompleted&&2===c.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),qi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),br(s,i),a){var d=K.ANNOTATION_COMPLETED,u={annotation:o};(0,z.triggerEvent)(z.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=un(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;br(h,a)})),J(Sr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),qi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(br(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),J(Sr(e),"_activateModify",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateModify",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),d=a.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,y=m.activeHandleIndex;u.annotationUID=h;var E=e.getStyle("lineWidth",u,g),I=e.getStyle("lineDash",u,g),b=e.getStyle("color",u,g),C=w.map((function(e){return a.worldToCanvas(e)}));p.cachedStats[s]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,d,t));var _=void 0;if(oe(g)||e.editData||null===y||(_=[C[y]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;_&&Ma(n,h,"0",C,{color:b,lineDash:I,lineWidth:E});var T="1";if(Ra(n,h,T,C[0],C[1],{color:b,width:E,lineDash:I}),i=!0,3!==C.length)return i;if(Ra(n,h,T="2",C[1],C[2],{color:b,width:E,lineDash:I}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var D=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var S=xl(C);p.handles.textBox.worldPosition=a.canvasToWorld(S)}var O=a.worldToCanvas(p.handles.textBox.worldPosition),x=Ga(n,h,"1",D,O,C,{},e.getLinkedTextBoxStyle(u,g)),M=x.x,R=x.y,N=x.width,P=x.height;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,R]),topRight:a.canvasToWorld([M+N,R]),bottomLeft:a.canvasToWorld([M,R+P]),bottomRight:a.canvasToWorld([M+N,R+P])}}}return i})),e._throttledCalculateCachedStats=Xa(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=fl(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),zi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;br(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,i=n.renderingEngineId;if(3===r.handles.points.length){for(var a,l,c,s,d,u,v,f,g,h,p=r.handles.points[0],m=r.handles.points[1],w=r.handles.points[2],y=r.cachedStats,E=Object.keys(y),I=0;I<E.length;I++){var b=E[I],C=(a=[m,w],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,c=(l=Ba([p,m],2))[0],s=l[1],u=(d=Ba(a,2))[0],v=d[1],f=ua.vec3.sub(ua.vec3.create(),s,c),g=ua.vec3.sub(ua.vec3.create(),u,v),h=ua.vec3.dot(f,g)/(ua.vec3.length(f)*ua.vec3.length(g)),180*Math.acos(h)/Math.PI);y[b]={angle:C}}e.invalidated=!1;var _=K.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:i};return(0,z.triggerEvent)(z.eventTarget,_,T),y}}}]),o}(_l);J(sv,"toolName",void 0),sv.toolName="Angle";var dv=sv;var uv="magnify-viewport",vv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{magnifySize:10,magnifyWidth:250,magnifyHeight:250}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"mouseDragCallback",void 0),J(Sr(e),"_bounds",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o),a=i.viewport,l=i.renderingEngine;if(!(a instanceof z.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var c=e._getReferencedImageId(a);if(!c)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var s=fl(o,e.getToolName());return e.editData={referencedImageId:c,viewportIdsToRender:s,enabledElement:i,renderingEngine:l,currentPoints:r},e._createMagnificationViewport(),e._activateDraw(o),zi(o),t.preventDefault(),br(l,s),!0})),J(Sr(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,i=n.viewportIdsToRender,a=n.renderingEngine,l=n.currentPoints,c=r.viewport,s=c.element,d=c.getProperties().voiRange,u=l.canvas,v=l.world;if(null===(t=s.querySelector(".magnifyTool"))){var f=document.createElement("div");f.classList.add("magnifyTool"),f.style.display="block",f.style.width="".concat(e.configuration.magnifyWidth,"px"),f.style.height="".concat(e.configuration.magnifyHeight,"px"),f.style.position="absolute",t=f,s.querySelector(".viewport-element").appendChild(f);var g={viewportId:uv,type:z.Enums.ViewportType.STACK,element:t};a.enableElement(g)}t.style.top="".concat(u[1]-e.configuration.magnifyHeight/2,"px"),t.style.left="".concat(u[0]-e.configuration.magnifyWidth/2,"px");var h=a.getViewport(uv);h.setStack([o]).then((function(){h.setProperties({voiRange:d});var t=c.getCamera().parallelScale,n=h.getCamera(),r=n.focalPoint,o=n.position,i=n.viewPlaneNormal,a=Math.sqrt(Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2)),l=[v[0],v[1],v[2]],s=[l[0]+a*i[0],l[1]+a*i[1],l[2]+a*i[2]];h.setCamera({parallelScale:t*(1/e.configuration.magnifySize),focalPoint:l,position:s}),h.render()})),t.style.display="block",br(a,i)})),J(Sr(e),"_mouseDragCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.deltaPoints,i=n.element,a=o.world,l=r.canvas,c=(0,z.getEnabledElement)(i).renderingEngine.getViewport(uv),s=i.querySelector(".magnifyTool");if(s){s.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),s.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var d=c.getCamera(),u=d.focalPoint,v=d.position,f=[v[0]+a[0],v[1]+a[1],v[2]+a[2]],g=[u[0]+a[0],u[1]+a[1],u[2]+a[2]];c.setCamera({focalPoint:g,position:f}),c.render()}})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element;(0,z.getEnabledElement)(n).renderingEngine.disableElement(uv);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),qi(n)})),J(Sr(e),"_activateDraw",(function(t){hn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){hn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),e}return Z(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof z.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(Fr);J(vv,"toolName",void 0),vv.toolName="Magnify";var fv=vv;var gv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(Sr(e),"mouseDragCallback",void 0),J(Sr(e),"_throttledCalculateCachedStats",void 0),J(Sr(e),"isDrawing",!1),J(Sr(e),"isHandleOutsideImage",!1),J(Sr(e),"_elementWithCursor",null),J(Sr(e),"_currentCursorWorldPosition",null),J(Sr(e),"_currentCanvasPosition",null),J(Sr(e),"_disableCursorEnabled",!1),J(Sr(e),"mouseMoveCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints;e._currentCursorWorldPosition=o.world,e._currentCanvasPosition=o.canvas,e._elementWithCursor=r;var i=e.getActiveAnnotation(r);return null===i?(e.createInitialAnnotation(o.world,r),!1):(e.updateAnnotationPosition(r,i),!1)})),J(Sr(e),"createInitialAnnotation",(function(t,n){var r=(0,z.getEnabledElement)(n);if(!r)throw new Error("No enabled element found");var o=r.viewport,i=r.renderingEngine;e.isDrawing=!0;var a=o.getCamera(),l=a.viewPlaneNormal,c=a.viewUp;if(!l||!c)throw new Error("Camera not found");var s=e.getReferencedImageId(o,t,l,c),d={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:un(l),viewUp:un(c),FrameOfReferenceUID:o.getFrameOfReferenceUID(),referencedImageId:s},data:{label:"",handles:{points:[un(t)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(null!==e._addAnnotation(n,d)){var u=fl(n,e.getToolName(),!1);br(i,u)}})),J(Sr(e),"onCameraModified",(function(t){var n=t.detail,r=n.element,o=n.previousCamera,i=n.camera,a=(0,z.getEnabledElement)(r).viewport;if(r===e._elementWithCursor){var l=o.focalPoint,c=i.viewPlaneNormal,s=i.focalPoint,d=[0,0,0];if(Zc().subtract(s,l,d),0!==d.reduce((function(e,t){return e+t}),0)){var u=Zc().dot(d,c);if(!(Math.abs(u)<.01)&&e._currentCanvasPosition){var v=a.canvasToWorld(e._currentCanvasPosition);e._currentCursorWorldPosition=v,e.updateAnnotationPosition(r,e.getActiveAnnotation(r))}}}})),J(Sr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=e._elementWithCursor===a.element;e.configuration.positionSync&&!l&&e.updateViewportImage(a);var c=a.element,s=Be(c,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return i;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return i;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles.points;if(!f)return i;d.annotationUID=f;var h=parseFloat(e.getStyle("lineWidth",d,v)),p=e.getStyle("lineDash",d,v),m=e.getStyle("color",d,v);if(g[0].some((function(e){return isNaN(e)})))return i;var w=g.map((function(e){return a.worldToCanvas(e)}));if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;if(Se(f)){var y={upper:"upper",right:"right",lower:"lower",left:"left"},E=Ba(w[0],2),I=E[0],b=E[1],C=l?20:7,_=l?5:7;Ra(n,f,y.upper,[I,b-(C/2+_)],[I,b-C/2],{color:m,lineDash:p,lineWidth:h}),Ra(n,f,y.lower,[I,b+(C/2+_)],[I,b+C/2],{color:m,lineDash:p,lineWidth:h}),Ra(n,f,y.right,[I+(C/2+_),b],[I+C/2,b],{color:m,lineDash:p,lineWidth:h}),Ra(n,f,y.left,[I-(C/2+_),b],[I-C/2,b],{color:m,lineDash:p,lineWidth:h}),i=!0}}return i})),e._disableCursorEnabled=e.configuration.disableCursor,e}return Z(o,[{key:"onSetToolActive",value:function(){if(this._disableCursorEnabled=this.configuration.disableCursor,this._disableCursorEnabled){var e=Dr(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,z.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&zi(e.viewport.element)}))}}},{key:"onSetToolDisabled",value:function(){if(this._disableCursorEnabled){var e=Dr(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,z.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&qi(e.viewport.element)}))}}},{key:"_addAnnotation",value:function(e,t){var n=Be(e,this.getToolName());return n instanceof Array&&n.length>0?null:Fe(e,t)}},{key:"getActiveAnnotation",value:function(e){var t=Be(e,this.getToolName());return void 0===t||0===t.length?null:t[0]}},{key:"updateAnnotationPosition",value:function(e,t){var n,r,o=this._currentCursorWorldPosition;if(o&&null!==(n=t.data)&&void 0!==n&&null!==(r=n.handles)&&void 0!==r&&r.points){t.data.handles.points=[un(o)],t.invalidated=!0;var i=fl(e,this.getToolName(),!1),a=(0,z.getEnabledElement)(e);if(a){var l=a.renderingEngine;br(l,i)}}}},{key:"filterInteractableAnnotationsForElement",value:function(e,t){var n,r,o;if(!(t instanceof Array)||0===t.length)return[];var i=t[0],a=null===(n=(0,z.getEnabledElement)(e))||void 0===n?void 0:n.viewport;if(!a)return[];var l=a.getCamera(),c=l.viewPlaneNormal,s=l.focalPoint;if(!c||!s)return[];var d=null===(r=i.data)||void 0===r||null===(o=r.handles)||void 0===o?void 0:o.points;if(!(d instanceof Array)||1!==d.length)return[];var u=d[0],v=z.utilities.planar.planeEquation(c,s);return z.utilities.planar.planeDistanceToPoint(v,u)<this.configuration.displayThreshold?[i]:[]}},{key:"updateViewportImage",value:function(e){var t=this._currentCursorWorldPosition;if(t&&!t.some((function(e){return isNaN(e)})))if(e instanceof z.StackViewport){var n=z.utilities.getClosestStackImageIndexForPoint(t,e);if(null===n)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof z.VolumeViewport){var r=e.getCamera(),o=r.focalPoint,i=r.viewPlaneNormal;if(!o||!i)return;var a=z.utilities.planar.planeEquation(i,o),l=z.utilities.planar.planeDistanceToPoint(a,t,!0);if(Math.abs(l)<.5)return;var c=ua.vec3.normalize(ua.vec3.create(),ua.vec3.fromValues.apply(ua.vec3,un(i))),s=ua.vec3.scale(ua.vec3.create(),c,l),d=ua.vec3.add(ua.vec3.create(),ua.vec3.fromValues.apply(ua.vec3,un(o)),s);e.setCamera({focalPoint:d});var u=e.getRenderingEngine();u&&u.renderViewport(e.id)}}}]),o}(El);J(gv,"toolName",void 0),gv.toolName="ReferenceCursors";var hv=gv,pv=z.utilities.transformWorldToIndex;function mv(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.constraintFn,c=n.imageData,s=n.dimensions,d=n.scalarData,u=r.map((function(e){return pv(c,e)}));u=u.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=nl(u,s);if(v.every((function(e){var t=Ba(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");tl(c,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(d[n]=i):d[n]=i)}),v),it(a)}(0,t)}var wv=z.utilities.transformWorldToIndex;function yv(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentationId,a=n.imageData,l=n.dimensions,c=n.scalarData,s=r.map((function(e){return wv(a,e)})),d=nl(s,l);if(d.every((function(e){var t=Ba(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");tl(a,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(c[n]=0)}),d),it(i)}(0,t)}var Ev=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:mv,ERASE_INSIDE:yv},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(Sr(e),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.toolGroupId,f=gc(v);if(!f)throw new Error("No active segmentation detected, create one before using scissors tool");var g=f.segmentationRepresentationUID,h=f.segmentationId,p=f.type,m=Ec(h),w=wc(h),y=Cc(v,g,m),E=st(h).representationData[p].volumeId,I=z.cache.getVolume(E),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:un(d),viewUp:un(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null}}},C=fl(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:m,segmentsLocked:w,segmentColor:y,segmentationId:h,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(c,C),!0})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,i,a,l,c,s,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,z.getEnabledElement)(u),y=w.viewport,E=y.worldToCanvas,I=y.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=un(b),h){case 0:case 3:n=E(C[0]),r=[(i=E(C[3]))[0],n[1]],o=[n[0],i[1]],l=I(r),c=I(o),C[1]=l,C[2]=c;break;case 1:case 2:r=E(C[1]),n=[(o=E(C[2]))[0],r[1]],i=[r[0],o[1]],a=I(n),s=I(i),C[0]=a,C[3]=s}f.invalidated=!0,e.editData.hasMoved=!0;var _=w.renderingEngine;br(_,g)})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentationId,s=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!i||a){u.handles.activeHandleIndex=null,e._deactivateDraw(n),qi(n);var v=(0,z.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof z.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:c,segmentIndex:s,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),J(Sr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport,i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Ha(n,l,"0",c[0],c[3],{color:s}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Fr);J(Ev,"toolName",void 0),Ev.toolName="RectangleScissor";var Iv=Ev;var bv=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:sc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=gc(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Ec(p),y=wc(p),E=Cc(f,h,w),I=st(p).representationData[m].volumeId,b=z.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:un(u),viewUp:un(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},_=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentationId:p,segmentsLocked:y,segmentColor:E,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(s,_),!0})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],s.invalidated=!0,e.editData.hasMoved=!0,br(a,d)})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){u.handles.activeHandleIndex=null,e._deactivateDraw(n),qi(n);var h=(0,z.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof z.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),J(Sr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport;if(!e.editData.viewportIdsToRender.includes(o.id))return r;var i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Oa(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Fr);J(bv,"toolName",void 0),bv.toolName="CircleScissor";var Cv=bv;var _v=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:nc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(Sr(e=r.call(this,t,n)),"editData",void 0),J(Sr(e),"isDrawing",void 0),J(Sr(e),"isHandleOutsideImage",void 0),J(Sr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=gc(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Ec(p),y=wc(p),E=Cc(f,h,w),I=st(p).representationData[m].volumeId,b=z.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:un(u),viewUp:un(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{invalidated:!0,handles:{points:[un(i),un(i),un(i),un(i)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},_=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentsLocked:y,segmentColor:E,segmentationId:p,toolGroupId:f,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),zi(o),t.preventDefault(),br(s,_),!0})),J(Sr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],s.invalidated=!0,e.editData.hasMoved=!0,br(a,d)})),J(Sr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),qi(n);var h=(0,z.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof z.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),J(Sr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(Sr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport;if(!e.editData.viewportIdsToRender.includes(o.id))return r;var i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Oa(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Fr);J(_v,"toolName",void 0),_v.toolName="SphereScissor";var Tv=_v;var Dv=z.utilities.transformWorldToIndex,Sv=z.utilities.isEqual,Ov=function(e){xr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Nr(t);if(n){var o=Nr(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Rr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(Sr(e=r.call(this,t,n)),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o).viewport.getCamera().viewPlaneNormal,l=gc(e.toolGroupId);if(!l)throw new Error("No active segmentation detected, create one before using scissors tool");var c=l.segmentationId,s=l.type,d=Ec(c),u=wc(c),v=st(c).representationData[s].volumeId,f=z.cache.getVolume(v),g=f.scalarData,h=f.dimensions,p=f.direction,m=Dv(f.imageData,i),w=e.getFixedDimension(a,p);if(void 0!==w){var y=e.generateHelpers(g,h,m,w),E=y.floodFillGetter,I=y.getLabelValue,b=y.getScalarDataPositionFromPlane,C=y.inPlaneSeedPoint,_=y.fixedDimensionValue;if(!(m[0]<0||m[0]>=h[0]||m[1]<0||m[1]>=h[1]||m[2]<0||m[2]>=h[2])){var T=I(m[0],m[1],m[2]);if(!u.includes(T)){var D=tc(E,C);return D.flooded.forEach((function(e){var t=b(e[0],e[1]);g[t]=d})),it(c,e.getFramesModified(w,_,D)),!0}}}else console.warn("Oblique paint fill not yet supported")})),J(Sr(e),"getFramesModified",(function(e,t,n){var r=n.boundaries;if(2===e)return[t];for(var o=1/0,i=-1/0,a=0;a<r.length;a++){var l=r[a][1];l<o&&(o=l),l>i&&(i=l)}for(var c=[],s=o;s<=i;s++)c.push(s);return c})),J(Sr(e),"generateHelpers",(function(t,n,r){var o,i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2;switch(a){case 0:o=r[0],i=[r[1],r[2]];break;case 1:o=r[1],i=[r[0],r[2]];break;case 2:o=r[2],i=[r[0],r[1]];break;default:throw new Error("Invalid fixedDimension: ".concat(a))}var l=function(e,t,r){return r*n[1]*n[0]+t*n[0]+e},c=function(e,n,r){return t[l(e,n,r)]},s=e.generateFloodFillGetter(n,a,o,c),d=e.generateGetScalarDataPositionFromPlane(l,a,o);return{getScalarDataPositionFromPlane:d,getLabelValue:c,floodFillGetter:s,inPlaneSeedPoint:i,fixedDimensionValue:o}})),J(Sr(e),"generateFloodFillGetter",(function(e,t,n,r){var o;switch(t){case 0:o=function(t,o){if(!(t>=e[1]||t<0||o>=e[2]||o<0))return r(n,t,o)};break;case 1:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[2]||o<0))return r(t,n,o)};break;case 2:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[1]||o<0))return r(t,o,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return o})),J(Sr(e),"generateGetScalarDataPositionFromPlane",(function(e,t,n){var r;switch(t){case 0:r=function(t,r){return e(n,t,r)};break;case 1:r=function(t,r){return e(t,n,r)};break;case 2:r=function(t,r){return e(t,r,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return r})),e}return Z(o,[{key:"getFixedDimension",value:function(e,t){var n=t.slice(0,3),r=t.slice(3,6),o=t.slice(6,9),i=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],a=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(Sv(i,a))return 0;var l=[Math.abs(r[0]),Math.abs(r[1]),Math.abs(r[2])];if(Sv(i,l))return 1;var c=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];return Sv(i,c)?2:void 0}}]),o}(Fr);J(Ov,"toolName",void 0),Ov.toolName="PaintFill";var xv=Ov}(),s}()}));
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/Math"),require("@kitware/vtk.js/Common/Core/MatrixBuilder")):"function"==typeof define&&define.amd?define(["@cornerstonejs/core","@kitware/vtk.js/Rendering/Core/ColorTransferFunction","@kitware/vtk.js/Common/DataModel/PiecewiseFunction","gl-matrix","@kitware/vtk.js/Common/Core/Math","@kitware/vtk.js/Common/Core/MatrixBuilder"],t):"object"==typeof exports?exports.cornerstoneTools3D=t(require("@cornerstonejs/core"),require("@kitware/vtk.js/Rendering/Core/ColorTransferFunction"),require("@kitware/vtk.js/Common/DataModel/PiecewiseFunction"),require("gl-matrix"),require("@kitware/vtk.js/Common/Core/Math"),require("@kitware/vtk.js/Common/Core/MatrixBuilder")):e.cornerstoneTools3D=t(e.cornerstone3D,e["@kitware/vtk.js/Rendering/Core/ColorTransferFunction"],e["@kitware/vtk.js/Common/DataModel/PiecewiseFunction"],e.window,e["@kitware/vtk.js/Common/Core/Math"],e["@kitware/vtk.js/Common/Core/MatrixBuilder"])}(self,(function(e,t,n,r,o,i){return function(){var a={132:function(e,t,n){var r=n(921).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},n=Object.prototype,i=n.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},l=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function d(e,t,n,r){var o=t&&t.prototype instanceof g?t:g,i=Object.create(o.prototype),a=new D(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var l=C(a,n);if(l){if(l===f)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var c=v(e,t,n);if("normal"===c.type){if(r=n.done?"completed":"suspendedYield",c.arg===f)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r="completed",n.method="throw",n.arg=c.arg)}}}(e,n,a),i}function v(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=d;var f={};function g(){}function h(){}function p(){}var m={};u(m,l,(function(){return this}));var w=Object.getPrototypeOf,y=w&&w(w(S([])));y&&y!==n&&i.call(y,l)&&(m=y);var E=p.prototype=g.prototype=Object.create(m);function I(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function b(e,t){function n(o,a,l,c){var s=v(e[o],e,a);if("throw"!==s.type){var u=s.arg,d=u.value;return d&&"object"==r(d)&&i.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,l,c)}),(function(e){n("throw",e,l,c)})):t.resolve(d).then((function(e){u.value=e,l(u)}),(function(e){return n("throw",e,l,c)}))}c(s.arg)}var o;this._invoke=function(e,r){function i(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(i,i):i()}}function 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 f;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return f}var r=v(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,f;var o=r.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,f):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,f)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function D(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function S(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(i.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return r.next=r}}return{next:O}}function O(){return{value:void 0,done:!0}}return h.prototype=p,u(E,"constructor",p),u(p,"constructor",h),h.displayName=u(p,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,u(e,s,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},I(b.prototype),u(b.prototype,c,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(d(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},I(E),u(E,s,"Generator"),u(E,l,(function(){return this})),u(E,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=S,D.prototype={constructor:D,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(T),!e)for(var t in this)"t"===t.charAt(0)&&i.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,r){return a.type="throw",a.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r],a=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=i.call(o,"catchLoc"),c=i.call(o,"finallyLoc");if(l&&c){if(this.prev<o.catchLoc)return n(o.catchLoc,!0);if(this.prev<o.finallyLoc)return n(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return n(o.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return n(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=e,a.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;T(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:S(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),f}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},921:function(e){function t(n){return e.exports=t="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.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},162:function(e,t,n){var r=n(132)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}},907:function(e,t,n){e=n.nmd(e);var r="__lodash_hash_undefined__",o=9007199254740991,i="[object Arguments]",a="[object Boolean]",l="[object Date]",c="[object Function]",s="[object GeneratorFunction]",u="[object Map]",d="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",y="[object ArrayBuffer]",E="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",T="[object Int32Array]",D="[object Uint8Array]",S="[object Uint8ClampedArray]",O="[object Uint16Array]",x="[object Uint32Array]",M=/\w*$/,R=/^\[object .+?Constructor\]$/,N=/^(?:0|[1-9]\d*)$/,P={};P[i]=P["[object Array]"]=P[y]=P[E]=P[a]=P[l]=P[I]=P[b]=P[C]=P[_]=P[T]=P[u]=P[d]=P[v]=P[g]=P[h]=P[p]=P[m]=P[D]=P[S]=P[O]=P[x]=!0,P["[object Error]"]=P[c]=P[w]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=k||A||Function("return this")(),U=t&&!t.nodeType&&t,V=U&&e&&!e.nodeType&&e,B=V&&V.exports===U;function F(e,t){return e.set(t[0],t[1]),e}function j(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,i=e?e.length:0;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function H(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=Function.prototype,Z=Object.prototype,J=L["__core-js_shared__"],X=(K=/[^.]+$/.exec(J&&J.keys&&J.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=$.toString,ee=Z.hasOwnProperty,te=Z.toString,ne=RegExp("^"+Q.call(ee).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),re=B?L.Buffer:void 0,oe=L.Symbol,ie=L.Uint8Array,ae=q(Object.getPrototypeOf,Object),le=Object.create,ce=Z.propertyIsEnumerable,se=Y.splice,ue=Object.getOwnPropertySymbols,de=re?re.isBuffer:void 0,ve=q(Object.keys,Object),fe=Le(L,"DataView"),ge=Le(L,"Map"),he=Le(L,"Promise"),pe=Le(L,"Set"),me=Le(L,"WeakMap"),we=Le(Object,"create"),ye=je(fe),Ee=je(ge),Ie=je(he),be=je(pe),Ce=je(me),_e=oe?oe.prototype:void 0,Te=_e?_e.valueOf:void 0;function De(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Oe(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Se(e)}function Me(e,t,n){var r=e[t];ee.call(e,t)&&We(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Re(e,t){for(var n=e.length;n--;)if(We(e[n][0],t))return n;return-1}function Ne(e,t,n,r,o,f,w){var R;if(r&&(R=f?r(e,o,f,w):r(e)),void 0!==R)return R;if(!Ke(e))return e;var N=Ge(e);if(N){if(R=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&ee.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!t)return function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}(e,R)}else{var k=Ve(e),A=k==c||k==s;if(qe(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(k==v||k==i||A&&!f){if(G(e))return f?e:{};if(R=function(e){return"function"!=typeof e.constructor||Fe(e)?{}:Ke(t=ae(e))?le(t):{};var t}(A?{}:e),!t)return function(e,t){return ke(e,Ue(e),t)}(e,function(e,t){return e&&ke(t,Ye(t),e)}(R,e))}else{if(!P[k])return f?e:{};R=function(e,t,n,r){var o,i=e.constructor;switch(t){case y:return Pe(e);case a:case l:return new i(+e);case E:return function(e,t){var n=t?Pe(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case _:case T:case D:case S:case O:case x:return function(e,t){var n=t?Pe(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case u:return function(e,t,n){return W(t?n(H(e),!0):H(e),F,new e.constructor)}(e,r,n);case d:case p:return new i(e);case g:return function(e){var t=new e.constructor(e.source,M.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),j,new e.constructor)}(e,r,n);case m:return o=e,Te?Object(Te.call(o)):{}}}(e,k,Ne,t)}}w||(w=new xe);var L=w.get(e);if(L)return L;if(w.set(e,R),!N)var U=n?function(e){return function(e,t,n){var r=t(e);return Ge(e)?r:function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}(r,n(e))}(e,Ye,Ue)}(e):Ye(e);return function(e,t){for(var n=-1,r=e?e.length:0;++n<r&&!1!==t(e[n],n););}(U||e,(function(o,i){U&&(o=e[i=o]),Me(R,i,Ne(o,t,n,r,i,e,w))})),R}function Pe(e){var t=new e.constructor(e.byteLength);return new ie(t).set(new ie(e)),t}function ke(e,t,n,r){n||(n={});for(var o=-1,i=t.length;++o<i;){var a=t[o],l=r?r(n[a],e[a],a,n,e):void 0;Me(n,a,void 0===l?e[a]:l)}return n}function Ae(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function Le(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Ke(e)||(t=e,X&&X in t))&&(ze(e)||G(e)?ne:R).test(je(e));var t}(n)?n:void 0}De.prototype.clear=function(){this.__data__=we?we(null):{}},De.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},De.prototype.get=function(e){var t=this.__data__;if(we){var n=t[e];return n===r?void 0:n}return ee.call(t,e)?t[e]:void 0},De.prototype.has=function(e){var t=this.__data__;return we?void 0!==t[e]:ee.call(t,e)},De.prototype.set=function(e,t){return this.__data__[e]=we&&void 0===t?r:t,this},Se.prototype.clear=function(){this.__data__=[]},Se.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():se.call(t,n,1),0))},Se.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Se.prototype.has=function(e){return Re(this.__data__,e)>-1},Se.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Oe.prototype.clear=function(){this.__data__={hash:new De,map:new(ge||Se),string:new De}},Oe.prototype.delete=function(e){return Ae(this,e).delete(e)},Oe.prototype.get=function(e){return Ae(this,e).get(e)},Oe.prototype.has=function(e){return Ae(this,e).has(e)},Oe.prototype.set=function(e,t){return Ae(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Se},xe.prototype.delete=function(e){return this.__data__.delete(e)},xe.prototype.get=function(e){return this.__data__.get(e)},xe.prototype.has=function(e){return this.__data__.has(e)},xe.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Se){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new Oe(r)}return n.set(e,t),this};var Ue=ue?q(ue,Object):function(){return[]},Ve=function(e){return te.call(e)};function Be(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||N.test(e))&&e>-1&&e%1==0&&e<t}function Fe(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Z)}function je(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&Ve(new fe(new ArrayBuffer(1)))!=E||ge&&Ve(new ge)!=u||he&&Ve(he.resolve())!=f||pe&&Ve(new pe)!=h||me&&Ve(new me)!=w)&&(Ve=function(e){var t=te.call(e),n=t==v?e.constructor:void 0,r=n?je(n):void 0;if(r)switch(r){case ye:return E;case Ee:return u;case Ie:return f;case be:return h;case Ce:return w}return t});var Ge=Array.isArray;function He(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var qe=de||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==c||t==s}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return He(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&He(e)}(e)&&ee.call(e,"callee")&&(!ce.call(e,"callee")||te.call(e)==i)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var a in e)!t&&!ee.call(e,a)||o&&("length"==a||Be(a,r))||n.push(a);return n}(e):function(e){if(!Fe(e))return ve(e);var t=[];for(var n in Object(e))ee.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)}e.exports=function(e){return Ne(e,!0,!0)}},485:function(e,t,n){var r,o="__lodash_hash_undefined__",i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/,l=/^\./,c=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,u=/^\[object .+?Constructor\]$/,d="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,v="object"==typeof self&&self&&self.Object===Object&&self,f=d||v||Function("return this")(),g=Array.prototype,h=Function.prototype,p=Object.prototype,m=f["__core-js_shared__"],w=(r=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",y=h.toString,E=p.hasOwnProperty,I=p.toString,b=RegExp("^"+y.call(E).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),C=f.Symbol,_=g.splice,T=k(f,"Map"),D=k(Object,"create"),S=C?C.prototype:void 0,O=S?S.toString:void 0;function x(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function M(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function R(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function N(e,t){for(var n,r,o=e.length;o--;)if((n=e[o][0])===(r=t)||n!=n&&r!=r)return o;return-1}function P(e,t){var n,r,o=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?o["string"==typeof t?"string":"hash"]:o.map}function k(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){if(!B(e)||w&&w in e)return!1;var t=function(e){var t=B(e)?I.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?b:u;return t.test(function(e){if(null!=e){try{return y.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}x.prototype.clear=function(){this.__data__=D?D(null):{}},x.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},x.prototype.get=function(e){var t=this.__data__;if(D){var n=t[e];return n===o?void 0:n}return E.call(t,e)?t[e]:void 0},x.prototype.has=function(e){var t=this.__data__;return D?void 0!==t[e]:E.call(t,e)},x.prototype.set=function(e,t){return this.__data__[e]=D&&void 0===t?o:t,this},M.prototype.clear=function(){this.__data__=[]},M.prototype.delete=function(e){var t=this.__data__,n=N(t,e);return!(n<0||(n==t.length-1?t.pop():_.call(t,n,1),0))},M.prototype.get=function(e){var t=this.__data__,n=N(t,e);return n<0?void 0:t[n][1]},M.prototype.has=function(e){return N(this.__data__,e)>-1},M.prototype.set=function(e,t){var n=this.__data__,r=N(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},R.prototype.clear=function(){this.__data__={hash:new x,map:new(T||M),string:new x}},R.prototype.delete=function(e){return P(this,e).delete(e)},R.prototype.get=function(e){return P(this,e).get(e)},R.prototype.has=function(e){return P(this,e).has(e)},R.prototype.set=function(e,t){return P(this,e).set(e,t),this};var A=U((function(e){var t;e=null==(t=e)?"":function(e){if("string"==typeof e)return e;if(F(e))return O?O.call(e):"";var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}(t);var n=[];return l.test(e)&&n.push(""),e.replace(c,(function(e,t,r,o){n.push(r?o.replace(s,"$1"):t||e)})),n}));function L(e){if("string"==typeof e||F(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}function U(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a),a};return n.cache=new(U.Cache||R),n}U.Cache=R;var V=Array.isArray;function B(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function F(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==I.call(e)}e.exports=function(e,t,n){var r=null==e?void 0:function(e,t){var n;t=function(e,t){if(V(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!F(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}(t,e)?[t]:V(n=t)?n:A(n);for(var r=0,o=t.length;null!=e&&r<o;)e=e[L(t[r++])];return r&&r==o?e:void 0}(e,t);return void 0===r?n:r}},807:function(e){"use strict";e.exports=o},847:function(e){"use strict";e.exports=i},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return a[e](n,n.exports,c),n.loaded=!0,n.exports}c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},c.d=function(e,t){for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var s={};return function(){"use strict";c.r(s),c.d(s,{AngleTool:function(){return mv},AnnotationTool:function(){return Rl},ArrowAnnotateTool:function(){return hv},BaseTool:function(){return Kr},BidirectionalTool:function(){return dv},BrushTool:function(){return Pc},CONSTANTS:function(){return d},CircleScissorsTool:function(){return Mv},CrosshairsTool:function(){return tv},DragProbeTool:function(){return xd},EllipticalROITool:function(){return cv},Enums:function(){return H},LengthTool:function(){return qd},MIPJumpToClickTool:function(){return Wd},MagnifyTool:function(){return Ev},PaintFillTool:function(){return Lv},PanTool:function(){return Ed},PlanarFreehandROITool:function(){return Gu},ProbeTool:function(){return Sd},RectangleROIStartEndThresholdTool:function(){return Kl},RectangleROIThresholdTool:function(){return Hl},RectangleROITool:function(){return Wl},RectangleScissorsTool:function(){return Ov},ReferenceCursors:function(){return bv},ReferenceLines:function(){return ov},ReferenceLinesTool:function(){return ov},SegmentationDisplayTool:function(){return Ao},SphereScissorsTool:function(){return Nv},StackScrollMouseWheelTool:function(){return Ud},StackScrollTool:function(){return Ad},Synchronizer:function(){return ai},SynchronizerManager:function(){return a},ToolGroupManager:function(){return u},TrackballRotateTool:function(){return bd},Types:function(){return V},VolumeRotateMouseWheelTool:function(){return Fd},WindowLevelTool:function(){return Rd},ZoomTool:function(){return Pd},addTool:function(){return Qo},annotation:function(){return F},cancelActiveManipulations:function(){return ni},cursors:function(){return U},destroy:function(){return Zo},drawing:function(){return f},init:function(){return $o},removeTool:function(){return ei},segmentation:function(){return G},state:function(){return bn},synchronizers:function(){return v},utilities:function(){return L}});var e={};c.r(e),c.d(e,{checkAndDefineIsLockedProperty:function(){return ae},getAnnotationsLocked:function(){return re},getAnnotationsLockedCount:function(){return ie},isAnnotationLocked:function(){return oe},setAnnotationLocked:function(){return te},unlockAllAnnotations:function(){return ne}});var t={};c.r(t),c.d(t,{deselectAnnotation:function(){return pe},getAnnotationsSelected:function(){return me},getAnnotationsSelectedByToolName:function(){return we},getAnnotationsSelectedCount:function(){return Ee},isAnnotationSelected:function(){return ye},setAnnotationSelected:function(){return ge}});var n={};c.r(n),c.d(n,{checkAndDefineIsVisibleProperty:function(){return Oe},isAnnotationVisible:function(){return Se},setAnnotationVisibility:function(){return Te},showAllAnnotations:function(){return De}});var r={};c.r(r),c.d(r,{addAnnotation:function(){return Fe},getAnnotation:function(){return Ge},getAnnotations:function(){return Be},getDefaultAnnotationManager:function(){return Ue},getNumberOfAnnotations:function(){return je},getViewportSpecificAnnotationManager:function(){return Ve},removeAllAnnotations:function(){return He},removeAnnotation:function(){return We}});var o={};c.r(o),c.d(o,{triggerSegmentationDataModified:function(){return it},triggerSegmentationModified:function(){return ot},triggerSegmentationRemoved:function(){return tt},triggerSegmentationRepresentationModified:function(){return rt},triggerSegmentationRepresentationRemoved:function(){return nt}});var i={};c.r(i),c.d(i,{addColorLUT:function(){return Ot},addSegmentation:function(){return dt},addSegmentationRepresentation:function(){return Et},getColorLUT:function(){return St},getDefaultSegmentationStateManager:function(){return ct},getGlobalConfig:function(){return It},getSegmentSpecificRepresentationConfig:function(){return wt},getSegmentation:function(){return st},getSegmentationRepresentationByUID:function(){return Ct},getSegmentationRepresentationSpecificConfig:function(){return mt},getSegmentationRepresentations:function(){return vt},getSegmentations:function(){return ut},getToolGroupIdsWithSegmentation:function(){return ft},getToolGroupSpecificConfig:function(){return gt},removeColorLUT:function(){return Dt},removeSegmentation:function(){return _t},removeSegmentationRepresentation:function(){return Tt},setGlobalConfig:function(){return bt},setSegmentSpecificRepresentationConfig:function(){return yt},setSegmentationRepresentationSpecificConfig:function(){return pt},setToolGroupSpecificConfig:function(){return ht}});var a={};c.r(a),c.d(a,{createSynchronizer:function(){return li},destroy:function(){return ci},destroySynchronizer:function(){return di},getAllSynchronizers:function(){return ui},getSynchronizer:function(){return si},getSynchronizersForViewport:function(){return Sr}});var l={};c.r(l),c.d(l,{hideElementCursor:function(){return Qi},initElementCursor:function(){return Zi},resetElementCursor:function(){return Xi},setElementCursor:function(){return Ji}});var u={};c.r(u),c.d(u,{createToolGroup:function(){return ca},destroy:function(){return Ko},destroyToolGroup:function(){return qo},getAllToolGroups:function(){return sa},getToolGroup:function(){return Pr},getToolGroupForViewport:function(){return On}});var d={};c.r(d),c.d(d,{COLOR_LUT:function(){return ze}});var v={};c.r(v),c.d(v,{createCameraPositionSynchronizer:function(){return va},createStackImageSynchronizer:function(){return Ra},createVOISynchronizer:function(){return ga},createZoomPanSynchronizer:function(){return ma}});var f={};c.r(f),c.d(f,{draw:function(){return Sn},drawArrow:function(){return Xa},drawCircle:function(){return Aa},drawEllipse:function(){return La},drawHandles:function(){return Ua},drawLine:function(){return Va},drawLinkedTextBox:function(){return Za},drawPolyline:function(){return Fa},drawRect:function(){return Ja},drawTextBox:function(){return qa}});var g={};c.r(g),c.d(g,{getActiveSegmentationRepresentation:function(){return Ic},setActiveSegmentationRepresentation:function(){return bc}});var h={};c.r(h),c.d(h,{getLockedSegments:function(){return Tc},isSegmentIndexLocked:function(){return Cc},setSegmentIndexLocked:function(){return _c}});var p={};c.r(p),c.d(p,{getActiveSegmentIndex:function(){return Sc},setActiveSegmentIndex:function(){return Dc}});var m={};c.r(m),c.d(m,{addColorLUT:function(){return Oc},getColorForSegmentIndex:function(){return Mc},setColorForSegmentIndex:function(){return Rc},setColorLUT:function(){return xc}});var w={};c.r(w),c.d(w,{createLabelmapVolumeForViewport:function(){return rc},createMergedLabelmapForIndex:function(){return ec},floodFill:function(){return cc},getBrushSizeForToolGroup:function(){return Lc},getBrushThresholdForToolGroup:function(){return Vc},getDefaultRepresentationConfig:function(){return nc},isValidRepresentationConfig:function(){return tc},rectangleROIThresholdVolumeByRange:function(){return Ql},setBrushSizeForToolGroup:function(){return Ac},setBrushThresholdForToolGroup:function(){return Uc},thresholdVolumeByRange:function(){return vl},triggerSegmentationRender:function(){return Bo}});var y={};c.r(y),c.d(y,{getTextBoxCoordsCanvas:function(){return Ll}});var E={};c.r(E),c.d(E,{findClosestPoint:function(){return Ka},liangBarksyClip:function(){return jc}});var I={};c.r(I),c.d(I,{getCanvasEllipseCorners:function(){return dc},pointInEllipse:function(){return vc}});var b={};c.r(b),c.d(b,{distanceToPoint:function(){return kl},distanceToPointSquared:function(){return Pl},intersectLine:function(){return Gc}});var C={};c.r(C),c.d(C,{distanceToPoint:function(){return Al}});var _={};c.r(_),c.d(_,{addCanvasPointsToArray:function(){return Xc},calculateAreaOfPoints:function(){return es},getClosestIntersectionWithPolyline:function(){return qc},getFirstIntersectionWithPolyline:function(){return Hc},getSubPixelSpacingAndXYDirections:function(){return Zc},pointCanProjectOnLine:function(){return Qc},pointsAreWithinCloseContourProximity:function(){return Jc}});var T={};c.r(T),c.d(T,{distanceToPoint:function(){return ts}});var D={};c.r(D),c.d(D,{ellipse:function(){return I},lineSegment:function(){return b},point:function(){return T},polyline:function(){return _},rectangle:function(){return C},vec2:function(){return E}});var S={};c.r(S),c.d(S,{default:function(){return ls},filterAnnotationsForDisplay:function(){return _l},filterAnnotationsWithinSlice:function(){return Cl},getPointInLineOfSightWithCriteria:function(){return os},getWorldWidthAndHeightFromCorners:function(){return Ul}});var O={};c.r(O),c.d(O,{filterViewportsWithFrameOfReferenceUID:function(){return fl},filterViewportsWithParallelNormals:function(){return yl},filterViewportsWithToolEnabled:function(){return ml},getViewportIdsWithToolToRender:function(){return El}});var x={};c.r(x),c.d(x,{getOrientationStringLPS:function(){return cs},invertOrientationStringLPS:function(){return ss}});var M={};c.r(M),c.d(M,{Events:function(){return us},addToolState:function(){return vs},getToolState:function(){return fs},playClip:function(){return hs},stopClip:function(){return ps}});var R={};c.r(R),c.d(R,{extend2DBoundingBoxInViewAxis:function(){return Yl},getBoundingBoxAroundShape:function(){return sl}});var N={};c.r(N),c.d(N,{default:function(){return qu},interpolateAnnotation:function(){return Hu}});var P={};c.r(P),c.d(P,{getBoundsIJKFromRectangleAnnotations:function(){return $l}});var k={};c.r(k),c.d(k,{disable:function(){return rd},enable:function(){return nd},getConfiguration:function(){return od},setConfiguration:function(){return id}});var A={};c.r(A),c.d(A,{isViewportPreScaled:function(){return Bl},jumpToSlice:function(){return Ta},jumpToWorld:function(){return ad}});var L={};c.r(L),c.d(L,{boundingBox:function(){return R},calibrateImageSpacing:function(){return ll},cine:function(){return M},clip:function(){return ya},debounce:function(){return ol},deepMerge:function(){return qr},drawing:function(){return y},getAnnotationNearPoint:function(){return el},getAnnotationNearPointOnEnabledElement:function(){return tl},isObject:function(){return rl},jumpToSlice:function(){return Ta},math:function(){return D},orientation:function(){return x},planar:function(){return S},planarFreehandROITool:function(){return N},pointInShapeCallback:function(){return cl},pointInSurroundingSphereCallback:function(){return dl},rectangleROITool:function(){return P},scroll:function(){return Ea},segmentation:function(){return w},stackPrefetch:function(){return k},throttle:function(){return il},triggerAnnotationRender:function(){return Ln},triggerAnnotationRenderForViewportIds:function(){return xr},triggerEvent:function(){return z.triggerEvent},viewport:function(){return A},viewportFilters:function(){return O}});var U={};c.r(U),c.d(U,{CursorNames:function(){return cd},CursorSVG:function(){return Ri},ImageMouseCursor:function(){return Ci},MouseCursor:function(){return pi},SVGMouseCursor:function(){return Gi},elementCursor:function(){return l},registerCursor:function(){return Pi},setCursorForElement:function(){return ld}});var V={};c.r(V);var B={};c.r(B),c.d(B,{getFont:function(){return sd},getState:function(){return Tl},style:function(){return Vi}});var F={};c.r(F),c.d(F,{FrameOfReferenceSpecificAnnotationManager:function(){return Ae},config:function(){return B},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var j={};c.r(j),c.d(j,{getSegmentationVisibility:function(){return md},setSegmentationVisibility:function(){return pd},setVisibilityForSegmentIndex:function(){return wd}});var W={};c.r(W),c.d(W,{color:function(){return m},getGlobalConfig:function(){return oo},getGlobalRepresentationConfig:function(){return ao},getSegmentSpecificConfig:function(){return fo},getSegmentationRepresentationSpecificConfig:function(){return uo},getToolGroupSpecificConfig:function(){return co},setGlobalConfig:function(){return io},setGlobalRepresentationConfig:function(){return lo},setSegmentSpecificConfig:function(){return go},setSegmentationRepresentationSpecificConfig:function(){return vo},setToolGroupSpecificConfig:function(){return so},visibility:function(){return j}});var G={};c.r(G),c.d(G,{activeSegmentation:function(){return g},addSegmentationRepresentations:function(){return hd},addSegmentations:function(){return dd},config:function(){return W},removeSegmentationsFromToolGroup:function(){return Ho},segmentIndex:function(){return p},segmentLocking:function(){return h},state:function(){return i},triggerSegmentationEvents:function(){return o}});var H={};c.r(H),c.d(H,{AnnotationStyleStates:function(){return bi},Events:function(){return K},KeyboardBindings:function(){return Zn},MouseBindings:function(){return $n},SegmentationRepresentations:function(){return $e},ToolModes:function(){return yn}});var q,z=c(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_VISIBILITY_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_VISIBILITY_CHANGE",e.ANNOTATION_RENDERED="CORNERSTONE_TOOLS_ANNOTATION_RENDERED",e.SEGMENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_MODIFIED",e.SEGMENTATION_RENDERED="CORNERSTONE_TOOLS_SEGMENTATION_RENDERED",e.SEGMENTATION_REPRESENTATION_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_MODIFIED",e.SEGMENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REMOVED",e.SEGMENTATION_REPRESENTATION_REMOVED="CORNERSTONE_TOOLS_SEGMENTATION_REPRESENTATION_REMOVED",e.SEGMENTATION_DATA_MODIFIED="CORNERSTONE_TOOLS_SEGMENTATION_DATA_MODIFIED",e.KEY_DOWN="CORNERSTONE_TOOLS_KEY_DOWN",e.KEY_UP="CORNERSTONE_TOOLS_KEY_UP",e.MOUSE_DOWN="CORNERSTONE_TOOLS_MOUSE_DOWN",e.MOUSE_UP="CORNERSTONE_TOOLS_MOUSE_UP",e.MOUSE_DOWN_ACTIVATE="CORNERSTONE_TOOLS_MOUSE_DOWN_ACTIVATE",e.MOUSE_DRAG="CORNERSTONE_TOOLS_MOUSE_DRAG",e.MOUSE_MOVE="CORNERSTONE_TOOLS_MOUSE_MOVE",e.MOUSE_CLICK="CORNERSTONE_TOOLS_MOUSE_CLICK",e.MOUSE_DOUBLE_CLICK="CORNERSTONE_TOOLS_MOUSE_DOUBLE_CLICK",e.MOUSE_WHEEL="CORNERSTONE_TOOLS_MOUSE_WHEEL"}(q||(q={}));var K=q;function Y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z(e,t,n){return t&&$(e.prototype,t),n&&$(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function J(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var X=c(907),Q=c.n(X),ee=new Set;function te(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=le();e&&(t?ce(e,ee,n):se(e,ee,n)),ue(n,ee)}function ne(){var e=le();!function(e,t){e.forEach((function(n){se(n,e,t)}))}(ee,e),ue(e,ee)}function re(){return Array.from(ee)}function oe(e){return ee.has(e)}function ie(){return ee.size}function ae(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==de||t.get!==ve):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:de,get:ve}),te(e,t)}}function le(){return Object.freeze({added:[],removed:[],locked:[]})}function ce(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function se(e,t,n){t.delete(e)&&n.removed.push(e)}function ue(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_LOCK_CHANGE,e))}function de(e){te(this,e)}function ve(){return oe(this)}var fe=new Set;function ge(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?he(e,n):pe(e)}function he(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ie();t||be(fe,n),e&&!fe.has(e)&&(fe.add(e),n.added.push(e)),Ce(n,fe)}function pe(e){var t=Ie();e?fe.delete(e)&&t.removed.push(e):be(fe,t),Ce(t,fe)}function me(){return Array.from(fe)}function we(e){return me().filter((function(t){return Ge(t).metadata.toolName===e}))}function ye(e){return fe.has(e)}function Ee(){return fe.size}function Ie(){return Object.freeze({added:[],removed:[],selection:[]})}function be(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function Ce(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_SELECTION_CHANGE,e))}var _e=new Set;function Te(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=xe();e&&(t?Me(e,_e,n):Re(e,_e,n)),Ne(n)}function De(){var e=xe();_e.forEach((function(t){Me(t,_e,e)})),Ne(e)}function Se(e){if(Ge(e))return!_e.has(e)}function Oe(e){if(e){var t,n=null===(t=e.isVisible)||void 0===t||t;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isVisible");return t?t.configurable&&(t.set!==Pe||t.get!==ke):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Pe,get:ke}),Te(e.annotationUID,n)}}function xe(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Me(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function Re(e,t,n){t.has(e)||(t.add(e),ye(e)&&pe(e),n.lastHidden.push(e))}function Ne(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(_e.forEach((function(t){e.hidden.push(t)})),(0,z.triggerEvent)(z.eventTarget,K.ANNOTATION_VISIBILITY_CHANGE,e))}function Pe(e){Te(this.annotationUID,e)}function ke(){return Se(this.annotationUID)}var Ae=function(){function e(t){var n=this;Y(this,e),J(this,"annotations",void 0),J(this,"uid",void 0),J(this,"_imageVolumeModifiedHandler",(function(e){var t=e.detail.FrameOfReferenceUID,r=n.annotations[t];r&&Object.keys(r).forEach((function(e){r[e].forEach((function(e){void 0!==e.invalidated&&(e.invalidated=!0)}))}))})),J(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),J(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),J(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),J(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index;return o[i]}})),J(this,"getNumberOfAnnotationsInFrameOfReference",(function(e,t){var r=n.getFrameOfReferenceAnnotations(t);if(!r)return 0;var o=r[e];return o?o.length:0})),J(this,"getNumberOfAnnotations",(function(e,t){return t?n.getNumberOfAnnotationsInFrameOfReference(e,t):n.getFramesOfReference().reduce((function(t,r){return t+n.getNumberOfAnnotationsInFrameOfReference(e,r)}),0)})),J(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,i=n.annotations,a=i[r];a||(i[r]={},a=i[r]);var l=a[o];l||(a[o]=[],l=a[o]),l.push(e),ae(e),Oe(e)})),J(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,i=r.index,a=o[0].metadata;if(o.splice(i,1),!o.length){var l=a.toolName;delete n.annotations[a.FrameOfReferenceUID][l]}}})),J(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var i=o[t];return Q()(i)}if(e){var a=r[e];return Q()(a)}return Q()(r)})),J(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var i=o[t];i||(o[t]={},i=o[t]),i[r]=e}else t?o[t]=e:n.annotations=Q()(e)})),J(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=z.utilities.uuidv4()),this.annotations={},this.uid=t,z.eventTarget.addEventListener(z.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return Z(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,i=this.annotations,a=(n=o?[o]:Object.keys(i)).length,l=0;l<a;l++)for(var c,s=i[n[l]],u=(c=r?[r]:Object.keys(s)).length,d=0;d<u;d++){var v=s[c[d]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),Le=new Ae("DEFAULT");function Ue(){return Le}function Ve(e){return Le}function Be(e,t){var n=(0,z.getEnabledElement)(e),r=Ve(),o=n.FrameOfReferenceUID;return r.get(o,t)}function Fe(e,t){var n=Ve();void 0===t.annotationUID&&(t.annotationUID=z.utilities.uuidv4()),n.addAnnotation(t);var r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.viewportId,a=K.ANNOTATION_ADDED,l={annotation:t,viewportId:i,renderingEngineId:o.id};return(0,z.triggerEvent)(z.eventTarget,a,l),t.annotationUID}function je(e,t){return Ue().getNumberOfAnnotations(e,t)}function We(e,t){var n=Ue();t&&(n=Ve());var r=n.getAnnotation(e);if(r){n.removeAnnotation(e);var o=K.ANNOTATION_REMOVED,i={annotation:r,annotationManagerUID:n.uid};(0,z.triggerEvent)(z.eventTarget,o,i)}}function Ge(e,t){return Ve().getAnnotation(e)}function He(e){var t=Ue();e&&(t=Ve()),t.removeAllAnnotations()}var qe,ze=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]],Ke={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.7,fillAlphaInactive:.65,outlineOpacity:1,outlineOpacityInactive:.85},Ye=function(){return Ke};!function(e){e.Labelmap="LABELMAP"}(qe||(qe={}));var $e=qe;function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Xe=Ye(),Qe={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:J({},$e.Labelmap,Xe)},toolGroups:{}},et=new(function(){function e(t){Y(this,e),J(this,"state",void 0),J(this,"uid",void 0),t||(t=z.utilities.uuidv4()),this.state=Q()(Qe),this.uid=t}return Z(e,[{key:"getState",value:function(){return this.state}},{key:"getToolGroups",value:function(){return Object.keys(this.state.toolGroups)}},{key:"getColorLUT",value:function(e){return this.state.colorLUT[e]}},{key:"resetState",value:function(){this.state=Q()(Qe)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentation",value:function(e){this.state.segmentations=this.state.segmentations.filter((function(t){return t.segmentationId!==e}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"getSegmentationRepresentationSpecificConfig",value:function(e,t){var n=this.getSegmentationRepresentationByUID(e,t);if(n)return n.segmentationRepresentationSpecificConfig}},{key:"setSegmentationRepresentationSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentationRepresentationSpecificConfig=n)}},{key:"getSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);if(r)return r.segmentSpecificConfig[n]}},{key:"setSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentSpecificConfig=n)}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=Je(Je({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"removeColorLUT",value:function(e){delete this.state.colorLUT[e]}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(ze,0)}}]),e}())("DEFAULT");function tt(e){var t={segmentationId:e};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REMOVED,t)}function nt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_REMOVED,n)}function rt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_MODIFIED,n):(vt(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function ot(e){(e?[e]:ut().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_MODIFIED,t)}))}function it(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_DATA_MODIFIED,n)}function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ct(){return et}function st(e){return ct().getSegmentation(e)}function ut(){return ct().getState().segmentations}function dt(e,t){var n=ct(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},label:null,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:J({},n.type,lt({},n.data))}}(e);n.addSegmentation(r),t||ot(r.segmentationId)}function vt(e){return ct().getSegmentationRepresentations(e)}function ft(e){var t=ct(),n=t.getState(),r=Object.keys(n.toolGroups),o=[];return r.forEach((function(n){t.getSegmentationRepresentations(n).forEach((function(t){t.segmentationId===e&&o.push(n)}))})),o}function gt(e){return ct().getToolGroupSpecificConfig(e)}function ht(e,t,n){ct().setSegmentationRepresentationConfig(e,t),n||rt(e)}function pt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ct();o.setSegmentationRepresentationSpecificConfig(e,t,n),r||rt(e,t)}function mt(e,t){return ct().getSegmentationRepresentationSpecificConfig(e,t)}function wt(e,t,n){return ct().getSegmentSpecificConfig(e,t,n)}function yt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=ct();o.setSegmentSpecificConfig(e,t,n),r||rt(e,t)}function Et(e,t,n){ct().addSegmentationRepresentation(e,t),n||rt(e,t.segmentationRepresentationUID)}function It(){return ct().getGlobalConfig()}function bt(e,t){ct().setGlobalConfig(e),t||ot()}function Ct(e,t){return ct().getSegmentationRepresentationByUID(e,t)}function _t(e){ct().removeSegmentation(e),tt(e)}function Tt(e,t){ct().removeSegmentationRepresentation(e,t),nt(e,t)}function Dt(e){ct().removeColorLUT(e)}function St(e){return ct().getColorLUT(e)}function Ot(e,t){ct().addColorLUT(e,t)}var xt=Ye();function Mt(e,t){var n=t||e.currentTarget,r=(0,z.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),i=function(e){return[e.pageX,e.pageY]}(e),a=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,i);return{page:i,client:o,canvas:a,world:r.canvasToWorld(a)}}bt({renderInactiveSegmentations:!0,representations:J({},$e.Labelmap,xt)},!0);var Rt=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,i=Mt(e,t),a={event:e,eventName:K.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:i,lastPoints:i,currentPoints:i,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};!(0,z.triggerEvent)(t,K.MOUSE_DOUBLE_CLICK,a)&&(e.stopImmediatePropagation(),e.preventDefault())},Nt=K.MOUSE_MOVE,Pt=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Mt(e),eventName:Nt,event:e};(0,z.triggerEvent)(t,Nt,r)},kt=K.MOUSE_DOWN,At=K.MOUSE_DOWN_ACTIVATE,Lt=K.MOUSE_CLICK,Ut=K.MOUSE_UP,Vt=K.MOUSE_DRAG,Bt={mouseButton:void 0,element:null,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}},Ft={mouseButton:void 0,renderingEngineId:void 0,viewportId:void 0,isClickEvent:!0,clickDelay:200,element:null,preventClickTimeout:null,startPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},lastPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}},jt={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function Wt(e){var t=Mt(e,Ft.element),n=Zt(Ft.element,Ft.lastPoints),r=Jt(t,n);if(jt.doubleClickTimeout){if(!qt(r.canvas))return;Kt(),jt.ignoreDoubleClick=!0}var o={event:e,eventName:Vt,mouseButton:Ft.mouseButton,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},element:Ft.element,startPoints:$t(Ft.startPoints),lastPoints:$t(n),currentPoints:t,deltaPoints:r};(0,z.triggerEvent)(Ft.element,Vt,o),Ft.lastPoints=$t(t)}function Gt(e){if(jt.doubleClickTimeout)jt.mouseUpEvent?(document.removeEventListener("mouseup",Gt),Ft.element.removeEventListener("mousemove",Ht),Ft.element.addEventListener("mousemove",Pt),Yt(),jt.ignoreDoubleClick=!1,Ft=JSON.parse(JSON.stringify(Bt))):(jt.mouseUpEvent=e,Ft.element.addEventListener("mousemove",Ht));else{clearTimeout(Ft.preventClickTimeout);var t=Ft.isClickEvent?Lt:Ut,n=Mt(e,Ft.element),r=Jt(n,Ft.lastPoints),o={event:e,eventName:t,mouseButton:Ft.mouseButton,element:Ft.element,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},startPoints:$t(Ft.startPoints),lastPoints:$t(Ft.lastPoints),currentPoints:n,deltaPoints:r};(0,z.triggerEvent)(o.element,t,o),document.removeEventListener("mouseup",Gt),Ft.element.removeEventListener("mousemove",Ht),Ft.element.addEventListener("mousemove",Pt),Ft=JSON.parse(JSON.stringify(Bt))}document.removeEventListener("mousemove",Wt)}function Ht(e){qt(Jt(Mt(e,Ft.element),Zt(Ft.element,Ft.lastPoints)).canvas)&&(Kt(),jt.ignoreDoubleClick=!0,Pt(e))}function qt(e){return Math.abs(e[0])+Math.abs(e[1])>3}function zt(){Ft.isClickEvent=!1}function Kt(){jt.ignoreDoubleClick=!0;var e,t,n,r=jt.mouseDownEvent,o=jt.mouseUpEvent;Yt(),e=r,t=Jt(Ft.startPoints,Ft.startPoints),n={event:e,eventName:kt,element:Ft.element,mouseButton:Ft.mouseButton,renderingEngineId:Ft.renderingEngineId,viewportId:Ft.viewportId,camera:{},startPoints:Ft.startPoints,lastPoints:Ft.startPoints,currentPoints:Ft.startPoints,deltaPoints:t},Ft.lastPoints=$t(n.lastPoints),(0,z.triggerEvent)(n.element,kt,n)&&(0,z.triggerEvent)(n.element,At,n),o&&Gt(o)}function Yt(){clearTimeout(jt.doubleClickTimeout),jt.doubleClickTimeout=null,jt.mouseDownEvent=null,jt.mouseUpEvent=null}function $t(e){return JSON.parse(JSON.stringify(e))}function Zt(e,t){var n=(0,z.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}function Jt(e,t){return{page:Xt(e.page,t.page),client:Xt(e.client,t.client),canvas:Xt(e.canvas,t.canvas),world:(n=e.world,r=t.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])};var n,r}function Xt(e,t){return[e[0]-t[0],e[1]-t[1]]}function Qt(e){jt.ignoreDoubleClick&&(jt.ignoreDoubleClick=!1,e.stopImmediatePropagation(),e.preventDefault())}var en=function(e){if(!jt.doubleClickTimeout){jt.doubleClickTimeout=setTimeout(Kt,400),jt.mouseDownEvent=e,Ft.element=e.currentTarget,Ft.mouseButton=e.button;var t=(0,z.getEnabledElement)(Ft.element),n=t.renderingEngineId,r=t.viewportId;Ft.renderingEngineId=n,Ft.viewportId=r,Ft.preventClickTimeout=setTimeout(zt,Ft.clickDelay),Ft.element.removeEventListener("mousemove",Pt);var o=Mt(e,Ft.element);Ft.startPoints=$t(o),Ft.lastPoints=$t(o),document.addEventListener("mouseup",Gt),document.addEventListener("mousemove",Wt)}};function tn(e){e.removeEventListener("dblclick",Rt),e.removeEventListener("mousedown",en),e.removeEventListener("mousemove",Pt)}var nn={enable:function(e){tn(e),e.addEventListener("dblclick",Rt),e.addEventListener("mousedown",en),e.addEventListener("mousemove",Pt)},disable:tn},rn=function(e){var t=e.currentTarget,n=(0,z.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var i=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),a=i.spinX,l=i.spinY,c=i.pixelX,s=i.pixelY,u=l<0?-1:1,d={event:e,eventName:K.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:a,spinY:l,pixelX:c,pixelY:s,direction:u},points:Mt(e)};(0,z.triggerEvent)(t,K.MOUSE_WHEEL,d)}};function on(e){e.removeEventListener("wheel",rn)}var an={enable:function(e){on(e),e.addEventListener("wheel",rn,{passive:!1})},disable:on},ln={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},cn={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function sn(e){cn.element=e.currentTarget;var t=(0,z.getEnabledElement)(cn.element),n=t.renderingEngineId,r=t.viewportId;cn.renderingEngineId=n,cn.viewportId=r,cn.key=e.key,cn.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:cn.renderingEngineId,viewportId:cn.viewportId,element:cn.element,key:cn.key,keyCode:cn.keyCode};(0,z.triggerEvent)(o.element,K.KEY_DOWN,o),document.addEventListener("keyup",un),cn.element.removeEventListener("keydown",sn)}function un(e){var t={renderingEngineId:cn.renderingEngineId,viewportId:cn.viewportId,element:cn.element,key:cn.key,keyCode:cn.keyCode};document.removeEventListener("keyup",un),cn.element.addEventListener("keydown",sn),cn=Q()(ln),(0,z.triggerEvent)(t.element,K.KEY_UP,t)}var dn=sn;function vn(e){e.removeEventListener("keydown",dn)}var fn,gn,hn={enable:function(e){vn(e),e.addEventListener("keydown",dn)},disable:vn,getModifierKey:function(){return cn.keyCode}};function pn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function mn(e,t){if(e){if("string"==typeof e)return pn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pn(e,t):void 0}}function wn(e){return function(e){if(Array.isArray(e))return pn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||mn(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(gn=fn||(fn={})).Active="Active",gn.Passive="Passive",gn.Enabled="Enabled",gn.Disabled="Disabled";var yn=fn,En={},In={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:En,enabledElements:[],handleRadius:6},bn={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:En,enabledElements:[],handleRadius:6};function Cn(e,t){if(bn.svgNodeCache[e])return bn.svgNodeCache[e][t]?bn.svgNodeCache[e][t].domRef:void 0}function _n(e,t,n,r){if(!bn.svgNodeCache[t])return null;bn.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function Tn(e,t){bn.svgNodeCache[e]&&bn.svgNodeCache[e][t]&&(bn.svgNodeCache[e][t].touched=!0)}function Dn(e,t){bn.svgNodeCache[t]&&Object.keys(bn.svgNodeCache[t]).forEach((function(n){var r=bn.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete bn.svgNodeCache[t][n])}))}var Sn=function(e,t){var n=function(e){var t=(0,z.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),i=function(e){var t=".".concat("viewport-element");return e.querySelector(t).querySelector(".svg-layer")}(e);return Object.keys(bn.svgNodeCache[o]).forEach((function(e){bn.svgNodeCache[o][e].touched=!1})),{svgLayerElement:i,svgNodeCacheForCanvas:bn.svgNodeCache,getSvgNode:Cn.bind(this,o),appendNode:_n.bind(this,i,o),setNodeTouched:Tn.bind(this,o),clearUntouched:Dn.bind(this,i,o)}}(e);t(n),n.clearUntouched()},On=function(e,t){var n=bn.toolGroups.filter((function(n){return n.viewportsInfo.some((function(n){return n.renderingEngineId===t&&(!n.viewportId||n.viewportId===e)}))}));if(n.length){if(n.length>1)throw new Error("Multiple tool groups found for renderingEngineId: ".concat(t," and viewportId: ").concat(e,". You should only\n have one tool group per viewport in a renderingEngine."));return n[0]}};function xn(e,t){var n=(0,z.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,i=On(o,r);if(!i)return[];for(var a=[],l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],u=i.toolOptions[s];if(u&&t.includes(u.mode)){var d=i.getToolInstance(s);a.push(d)}}return a}function Mn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Rn=yn.Active,Nn=yn.Passive,Pn=yn.Enabled,kn=function(){function e(){var t=this;Y(this,e),J(this,"hasBeenDestroyed",void 0),J(this,"_needsRender",new Set),J(this,"_animationFrameSet",!1),J(this,"_animationFrameHandle",null),J(this,"_viewportElements",void 0),J(this,"_renderFlaggedViewports",(function(){t._throwIfDestroyed();for(var e=Array.from(t._viewportElements.values()),n=0;n<e.length;n++){var r=e[n];if(t._needsRender.has(r)&&(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size))return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}})),this._viewportElements=new Map}return Z(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e,t){this._viewportElements.delete(e),this._needsRender.delete(t),this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setAllViewportsToBeRenderedNextFrame",value:function(){var e=this;wn(this._viewportElements.values()).forEach((function(t){e._needsRender.add(t)})),this._renderFlaggedViewports()}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this,n=wn(this._viewportElements.values());e.forEach((function(e){-1!==n.indexOf(e)&&t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,z.getEnabledElement)(e);if(t)if((0,z.getRenderingEngine)(t.renderingEngineId)){var n=xn(e,[Rn,Nn,Pn]),r=t.renderingEngineId,o=t.viewportId,i={element:e,renderingEngineId:r,viewportId:o};Sn(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,z.triggerEvent)(e,K.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mn(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null,this._setAllViewportsToBeRenderedNextFrame()}}]),e}(),An=new kn,Ln=function(e){An.renderViewport(e)},Un=function(e){Ln(e.detail.element)};function Vn(e,t,n){var r=e.detail,o=r.renderingEngineId,i=r.viewportId,a=On(i,o);if(!a)return[];for(var l=[],c=Object.keys(a.toolOptions),s=0;s<c.length;s++){var u=c[s],d=a.toolOptions[u],v=null!=n&&d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===n}));if(t.includes(d.mode)&&(!n||v)){var f=a.getToolInstance(u);l.push(f)}}return l}var Bn=yn.Active,Fn=yn.Passive,jn=yn.Enabled,Wn=function(e){Vn(e,[Bn,Fn,jn]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Gn=yn.Active,Hn=yn.Passive,qn=yn.Enabled,zn=function(e){Vn(e,[Gn,Hn,qn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},Kn=yn.Active;function Yn(e,t,n){if(bn.isInteractingWithTool)return!1;var r,o=n.detail,i=o.renderingEngineId,a=o.viewportId,l=On(a,i);if(!l)return!1;for(var c=Object.keys(l.toolOptions),s=0;s<c.length;s++){var u=c[s],d=l.toolOptions[u],v=l.getToolInstance(u);if(d.mode===Kn&&"function"==typeof v[t]){r=l.getToolInstance(u);break}}r&&r[t](n)}var $n,Zn,Jn=Yn.bind(null,"Mouse","mouseClickCallback");function Xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Qn(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var i=Be(e,o.constructor.toolName);i&&("function"==typeof o.filterInteractableAnnotationsForElement&&(i=o.filterInteractableAnnotationsForElement(e,i)),i.length>0&&n.push({tool:o,annotations:i}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function er(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return tr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?tr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function tr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}($n||($n={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=17]="Ctrl",e[e.Alt=18]="Alt",e[e.Meta=91]="Meta",e[e.ShiftCtrl=1617]="ShiftCtrl",e[e.ShiftAlt=1618]="ShiftAlt",e[e.ShiftMeta=1691]="ShiftMeta",e[e.CtrlAlt=1718]="CtrlAlt",e[e.CtrlMeta=1791]="CtrlMeta",e[e.AltMeta=1891]="AltMeta"}(Zn||(Zn={}));var nr=yn.Active;function rr(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,i=hn.getModifierKey()||function(e){return e.shiftKey?e.ctrlKey?Zn.ShiftCtrl:e.altKey?Zn.ShiftAlt:e.metaKey?Zn.ShiftMeta:Zn.Shift:e.ctrlKey?e.altKey?Zn.CtrlAlt:e.metaKey?Zn.CtrlMeta:Zn.Ctrl:e.altKey?e.metaKey&&Zn.AltMeta||Zn.Alt:void(e.metaKey&&Zn.Meta)}(o),a=On(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],u=a.toolOptions[s],d=u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===(o?o.buttons:$n.Primary)&&e.modifierKey===i}));if(u.mode===nr&&d)return a.getToolInstance(s)}}var or=yn.Active,ir=yn.Passive;function ar(e){if(!bn.isInteractingWithTool){var t=rr(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Vn(e,[or],e.detail.event.buttons),o=n?Vn(e,[ir]):void 0,i=[].concat(wn(r||[]),wn(o||[])),a=e.detail,l=a.element,c=Qn(l,i),s=a.currentPoints.canvas,u=function(e,t,n){var r=[];return t.forEach((function(t){var o,i=t.tool,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Xn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Xn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(t.annotations);try{for(a.s();!(o=a.n()).done;){var l=o.value;if(!l.isLocked&&l.isVisible){var c=i.getHandleNearImagePoint(e,l,n,6);if(c){r.push({tool:i,annotation:l,handle:c});break}}}}catch(e){a.e(e)}finally{a.f()}})),r}(l,c,s),d=!!e.detail.event.shiftKey;if(u.length>0){var v=lr(u),f=v.tool,g=v.annotation,h=v.handle;return cr(g.annotationUID,d),void f.handleSelectedCallback(e,g,h,"Mouse")}var p=function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o=6,i=[];return t.forEach((function(t){var a,l=t.tool,c=er(t.annotations);try{for(c.s();!(a=c.n()).done;){var s=a.value;if(!s.isLocked&&s.isVisible&&l.isPointNearTool(e,s,n,o,r)){i.push({tool:l,annotation:s});break}}}catch(e){c.e(e)}finally{c.f()}})),i}(l,c,s,"mouse");if(p.length>0){var m=lr(p),w=m.tool,y=m.annotation;return cr(y.annotationUID,d),void w.toolSelectedCallback(e,y,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function lr(e){return e.length>1&&e.find((function(e){return!oe(e.annotation)&&Se(e.annotation.annotationUID)}))||e[0]}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(ye(e))ge(e,!1);else{var n=!0;ge(e,!0,n)}else{var r=!1;ge(e,!0,r)}}function sr(e){if(!bn.isInteractingWithTool){var t=rr(e);t&&(bn.isMultiPartToolActive||t.addNewAnnotation&&ge(t.addNewAnnotation(e,"mouse").annotationUID))}}var ur=Yn.bind(null,"Mouse","doubleClickCallback");function dr(e){if(!bn.isInteractingWithTool){var t=rr(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function vr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var fr=yn.Active,gr=yn.Passive;function hr(e){if(!bn.isInteractingWithTool&&!bn.isMultiPartToolActive){var t,n=Vn(e,[fr,gr]),r=e.detail.element,o=Qn(r,n),i=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),a=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return vr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(l.s();!(t=l.n()).done;){var c=t.value,s=c.tool,u=c.annotations;"function"==typeof s.mouseMoveCallback&&(a=s.mouseMoveCallback(e,u)||a)}}catch(e){l.e(e)}finally{l.f()}i.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===a&&Ln(r)}}var pr=Yn.bind(null,"Mouse","mouseUpCallback"),mr=Yn.bind(null,"MouseWheel","mouseWheelCallback"),wr=function(e){e.addEventListener(K.MOUSE_CLICK,Jn),e.addEventListener(K.MOUSE_DOWN,ar),e.addEventListener(K.MOUSE_DOWN_ACTIVATE,sr),e.addEventListener(K.MOUSE_DOUBLE_CLICK,ur),e.addEventListener(K.MOUSE_DRAG,dr),e.addEventListener(K.MOUSE_MOVE,hr),e.addEventListener(K.MOUSE_UP,pr),e.addEventListener(K.MOUSE_WHEEL,mr)},yr=function(e){e.removeEventListener(K.MOUSE_CLICK,Jn),e.removeEventListener(K.MOUSE_DOWN,ar),e.removeEventListener(K.MOUSE_DOWN_ACTIVATE,sr),e.removeEventListener(K.MOUSE_DOUBLE_CLICK,ur),e.removeEventListener(K.MOUSE_DRAG,dr),e.removeEventListener(K.MOUSE_MOVE,hr),e.removeEventListener(K.MOUSE_UP,pr),e.removeEventListener(K.MOUSE_WHEEL,mr)},Er=yn.Active;function Ir(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=Ft.mouseButton,i=hn.getModifierKey(),a=On(r,n);if(!a)return null;for(var l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],u=a.toolOptions[s],d=u.bindings.length&&u.bindings.some((function(e){return e.mouseButton===(null!=o?o:$n.Primary)&&e.modifierKey===i}));if(u.mode===Er&&d)return a.getToolInstance(s)}}function br(e){var t=Ir(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=On(o,r),a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}function Cr(e){var t=Ir(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,i=On(o,r);cn.keyCode=void 0;var a=t.getToolName();Object.keys(i.toolOptions).includes(a)&&i.setViewportsCursorByToolName(a)}}var _r=function(e){e.addEventListener(K.KEY_DOWN,br),e.addEventListener(K.KEY_UP,Cr)},Tr=function(e){e.removeEventListener(K.KEY_DOWN,br),e.removeEventListener(K.KEY_UP,Cr)};function Dr(e){var t,n=e.detail,r=n.element,o=n.viewportId,i=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),i=document.createElementNS(e,"feColorMatrix"),a=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("filterUnits","userSpaceOnUse"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),i.setAttribute("result","matrixOut"),i.setAttribute("in","offOut"),i.setAttribute("in2","matrix"),i.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),a.setAttribute("in","SourceGraphic"),a.setAttribute("in2","matrixOut"),a.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(i),r.appendChild(a),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);bn.svgNodeCache[o]={}}(r),t=i,r.querySelector("div.viewport-element").appendChild(t),An.addViewportElement(o,r),nn.enable(r),an.enable(r),hn.enable(r),function(e){e.addEventListener(z.Enums.Events.IMAGE_RENDERED,Un)}(r),function(e){e.addEventListener(z.Enums.Events.CAMERA_MODIFIED,Wn)}(r),function(e){e.addEventListener(z.Enums.Events.IMAGE_SPACING_CALIBRATED,zn)}(r),wr(r),_r(r),bn.enabledElements.push(r)}var Sr=function(e,t){var n=[];if(!t&&!e)throw new Error("At least one of renderingEngineId or viewportId should be given");for(var r=0;r<bn.synchronizers.length;r++){var o=bn.synchronizers[r],i=!o.isDisabled(),a=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);i&&(a||l)&&n.push(o)}return n},Or=function(e){var t=e.detail,n=t.element,r=t.viewportId;!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);delete bn.svgNodeCache[o]}(n);var o=n.querySelector("svg"),i=n.querySelector("div.".concat("viewport-element"));o&&i.removeChild(o),An.removeViewportElement(r,n),nn.disable(n),an.disable(n),hn.disable(n),function(e){e.removeEventListener(z.Enums.Events.IMAGE_RENDERED,Un)}(n),function(e){e.removeEventListener(z.Enums.Events.CAMERA_MODIFIED,Wn)}(n),function(e){e.removeEventListener(z.Enums.Events.IMAGE_SPACING_CALIBRATED,zn)}(n),yr(n),Tr(n),function(e){var t=(0,z.getEnabledElement)(e);Sr(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,z.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=On(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=bn.enabledElements.findIndex((function(t){return t===e}));t>-1&&bn.enabledElements.splice(t,1)}(n)},xr=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;Ln(n)}))},Mr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,z.getRenderingEngine)(r);xr(o,[n])},Rr=function(e){e.detail.removed.length&&(0,z.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));xr(e,t)}))},Nr=function(e){var t=e.detail.segmentationId;ft(t).forEach((function(e){vt(e).forEach((function(n){n.segmentationId===t&&rt(e,n.segmentationRepresentationUID)}))}))},Pr=function(e){return bn.toolGroups.find((function(t){return t.id===e}))};function kr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ar(e,t){return Ar=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ar(e,t)}function Lr(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ar(e,t)}function Ur(e){return Ur="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},Ur(e)}function Vr(e,t){if(t&&("object"===Ur(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return kr(e)}function Br(e){return Br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Br(e)}var Fr=function(e){return e&&"object"===Ur(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},jr=function(e,t){var n;return t&&!0===t.clone&&Fr(e)?Hr((n=e,Array.isArray(n)?[]:{}),e,t):e},Wr=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=jr(t,n):Fr(t)?r[o]=Hr(e[o],t,n):-1===e.indexOf(t)&&r.push(jr(t,n))})),r},Gr=function(e,t,n){var r={};return Fr(e)&&Object.keys(e).forEach((function(t){r[t]=jr(e[t],n)})),Object.keys(t).forEach((function(o){Fr(t[o])&&e[o]?r[o]=Hr(e[o],t[o],n):r[o]=jr(t[o],n)})),r},Hr=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=Array.isArray(t),o=n||{arrayMerge:Wr},i=o.arrayMerge||Wr;return r?Array.isArray(e)?i(e,t,n):jr(t,n):Gr(e,t,n)},qr=Hr,zr=function(){function e(t,n){Y(this,e),J(this,"supportedInteractionTypes",void 0),J(this,"configuration",void 0),J(this,"toolGroupId",void 0),J(this,"mode",void 0);var r=qr(n,t),o=r.configuration,i=void 0===o?{}:o,a=r.supportedInteractionTypes,l=r.toolGroupId;i.strategies||(i.strategies={},i.defaultStrategy=void 0,i.activeStrategy=void 0,i.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=a||[],this.configuration=Object.assign({},i),this.mode=yn.Disabled}return Z(e,[{key:"getToolName",value:function(){return this.constructor.toolName}},{key:"applyActiveStrategy",value:function(e,t){var n=this.configuration;return n.strategies[n.activeStrategy].call(this,e,t)}},{key:"setConfiguration",value:function(e){this.configuration=qr(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1],r=z.utilities.imageIdToURI(n),o=z.utilities.getViewportsWithImageURI(r,t.id);if(!o||!o.length)return;if(!(o=o.filter((function(e){return e.getCurrentImageId()===n})))||!o.length)return;return o[0].getImageData()}if(e.startsWith("volumeId:")){var i=e.split("volumeId:")[1],a=z.utilities.getViewportsWithVolumeId(i,t.id);if(!a||!a.length)return;return a[0].getImageData()}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof z.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof z.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();J(zr,"toolName",void 0),zr.toolName="BaseTool";var Kr=zr;function Yr(e,t,n,r,o,i,a){try{var l=e[i](a),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function $r(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){Yr(i,r,o,a,l,"next",e)}function l(e){Yr(i,r,o,a,l,"throw",e)}a(void 0)}))}}var Zr=c(162),Jr=c.n(Zr),Xr=c(795),Qr=c.n(Xr),eo=c(441),to=c.n(eo);function no(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ro(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?no(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):no(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function oo(){return It()}function io(e){bt(e)}function ao(e){return oo().representations[e]}function lo(e,t){var n=oo();io(ro(ro({},n),{},{representations:ro(ro({},n.representations),{},J({},e,ro(ro({},n.representations[e]),t)))}))}function co(e){return gt(e)}function so(e,t){ht(e,t)}function uo(e,t){return mt(e,t)}function vo(e,t,n){pt(e,t,n)}function fo(e,t,n){return wt(e,t,n)}function go(e,t,n){yt(e,t,n)}function ho(){return(ho=$r(Jr().mark((function e(t,n,r){var o,i,a,l,c;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,z.getEnabledElement)(t),i=o.renderingEngine,a=o.viewport,l=a.id,c=[{volumeId:n,actorUID:r,visibility:!0,blendMode:z.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}],e.next=9,(0,z.addVolumesToViewports)(i,c,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var po=function(e,t,n){return ho.apply(this,arguments)},mo=function(e,t){(0,z.getEnabledElement)(e).viewport.removeVolumeActors([t])};function wo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function yo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Eo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yo(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Io=255,bo=new Map;function Co(){return(Co=$r(Jr().mark((function e(t,n,r){var o,i,a,l,c,s,u,d;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,i=z.utilities.uuidv4(),a=new Set,l=Qr().newInstance(),(c=to().newInstance()).addPoint(0,0),s={segmentationId:o,segmentationRepresentationUID:i,type:$e.Labelmap,segmentsHidden:a,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{cfun:l,ofun:c}},r&&(u=co(t),d=qr(u,r),so(t,{renderInactiveSegmentations:d.renderInactiveSegmentations||!0,representations:Eo({},d.representations)})),Et(t,s),e.abrupt("return",i);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _o(){return(_o=$r(Jr().mark((function e(t,n,r){var o,i,a,l,c,s,u,d,v,f,g,h,p,m,w,y;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.colorLUTIndex,i=n.active,a=n.segmentationId,l=n.segmentationRepresentationUID,c=n.visibility,s=n.segmentsHidden,u=n.config,d=st(a),v=d.representationData[$e.Labelmap],f=v.volumeId,z.cache.getVolume(f)){e.next=7;break}throw new Error("No Labelmap found for volumeId: ".concat(f));case 7:if(g=t.getActor(l)){e.next=14;break}return h=st(a),p=h.representationData[$e.Labelmap].volumeId,e.next=13,xo(t,p,l);case 13:g=t.getActor(l);case 14:m=u.cfun,w=u.ofun,y=r.renderInactiveSegmentations,To(t.id,g,m,w,o,r.representations[$e.Labelmap],n,i,y,s,c);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function To(e,t,n,r,o,i,a,l,c,s){for(var u=!(arguments.length>10&&void 0!==arguments[10])||arguments[10],d=a.segmentSpecificConfig,v=a.segmentationRepresentationSpecificConfig,f=v[$e.Labelmap],g=St(o),h=Math.min(256,g.length),p=t.actor,m=t.uid,w=Do(i,f,l),y=w.outlineWidth,E=w.renderOutline,I=w.outlineOpacity,b=0;b<h;b++){var C,_=b,T=g[_],D=null===(C=d[_])||void 0===C?void 0:C[$e.Labelmap],S=Do(i,f,l,D),O=S.fillAlpha,x=S.outlineWidth,M=S.renderFill,R=S.renderOutline,N=So(e,m,_,{fillAlpha:O,renderFill:M,renderOutline:R,segmentColor:T,outlineWidth:x,segmentsHidden:s}),P=N.forceOpacityUpdate,k=N.forceColorUpdate;if(k&&n.addRGBPoint(_,T[0]/Io,T[1]/Io,T[2]/Io),P)if(M){var A=s.has(_)?0:T[3]/255*O;r.removePoint(_),r.addPointLong(_,A,.5,1)}else r.addPointLong(_,.01,.5,1)}p.getProperty().setRGBTransferFunction(0,n),r.setClamping(!1),p.getProperty().setScalarOpacity(0,r),p.getProperty().setInterpolationTypeToNearest(),p.getProperty().setUseLabelOutline(E),p.getProperty().setLabelOutlineOpacity(I),p.getProperty().setLabelOutlineThickness(y);var L=u&&(l||c);p.setVisibility(L)}function Do(e,t,n,r){var o=r||{},i=Eo(Eo(Eo({},e),t),o);return{fillAlpha:n?i.fillAlpha:i.fillAlphaInactive,outlineWidth:n?i.outlineWidthActive:i.outlineWidthInactive,renderFill:n?i.renderFill:i.renderFillInactive,renderOutline:i.renderOutline,outlineOpacity:n?i.outlineOpacity:i.outlineOpacityInactive}}function So(e,t,n,r){var o=r.fillAlpha,i=r.renderFill,a=r.renderOutline,l=r.segmentColor,c=r.outlineWidth,s=r.segmentsHidden,u="".concat(e,"-").concat(t,"-").concat(n),d=bo.get(u);if(!d)return bo.set(u,{fillAlpha:o,renderFill:i,renderOutline:a,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:!0,forceColorUpdate:!0};var v=d.fillAlpha,f=d.renderFill,g=d.renderOutline,h=d.outlineWidth,p=d.segmentColor,m=d.segmentsHidden,w=p[0]!==l[0]||p[1]!==l[1]||p[2]!==l[2],y=p[3]!==l[3]||v!==o||f!==i||g!==a||h!==c||m.has(n)!==s.has(n);return bo.set(u,{fillAlpha:o,renderFill:i,renderOutline:a,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:y,forceColorUpdate:w}}function Oo(e,t){var n=Pr(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return wo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var i=r.value,a=i.viewportId,l=i.renderingEngineId,c=(0,z.getEnabledElementByIds)(a,l);mo(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}function xo(e,t,n){return Mo.apply(this,arguments)}function Mo(){return(Mo=$r(Jr().mark((function e(t,n,r){return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,po(t.element,n,r);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ro={render:function(e,t,n){return _o.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return Co.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(Oo(e,t),Tt(e,t),n){var r=Pr(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,z.getEnabledElementByIds)(t,n).viewport.render()}))}}};function No(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Po(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Po(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function Po(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ko=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{}};return Y(this,o),J(kr(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=Pr(t);if(n){var r=vt(t);if(r&&0!==r.length){var o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,z.getEnabledElementByIds)(n,t);if(r)return r.viewport})),i=r.map((function(n){var r,i=e._getMergedRepresentationsConfig(t),a=[],l=No(o);try{for(l.s();!(r=l.n()).done;){var c=r.value;n.type==$e.Labelmap&&a.push(Ro.render(c,n,i))}}catch(e){l.e(e)}finally{l.f()}return a}));Promise.allSettled(i).then((function(){o.forEach((function(e){e.render()}))}))}}})),e}return Z(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=vt(e);if(t&&0!==t.length){var n,r=No(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,rt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=vt(e);if(t&&0!==t.length){var n,r=No(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,rt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=co(e),n=oo();return qr(n,t)}}]),o}(Kr);J(ko,"toolName",void 0),ko.toolName="SegmentationDisplay";var Ao=ko;function Lo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var Uo=function(){function e(){var t=this;Y(this,e),J(this,"_needsRender",new Set),J(this,"_animationFrameSet",!1),J(this,"_animationFrameHandle",null),J(this,"hasBeenDestroyed",void 0),J(this,"_renderFlaggedToolGroups",(function(){t._throwIfDestroyed();for(var e=0,n=Array.from(t._needsRender.values());e<n.length;e++){var r=n[e];if(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size)return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}}))}return Z(e,[{key:"removeToolGroup",value:function(e){this._needsRender.delete(e),0===this._needsRender.size&&this._reset()}},{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=Pr(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,z.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(Ao.toolName);o?(r.forEach((function(e){e.element.addEventListener(z.Enums.Events.IMAGE_RENDERED,i)})),o.renderSegmentation(e)):console.warn("No segmentation tool found inside",e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function i(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(z.Enums.Events.IMAGE_RENDERED,i);var a=On(r,o);if(a){var l={toolGroupId:a.id,viewportId:r};(0,z.triggerEvent)(z.eventTarget,K.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lo(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},l))}else console.warn("toolGroup has been destroyed")}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),Vo=new Uo;function Bo(e){Vo.renderToolGroupSegmentations(e)}var Fo=Bo,jo=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=st(n),i=o.representationData,a=o.type;if(a!==$e.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(a," not supported yet"));var l=z.cache.getVolume(i[a].volumeId);if(l){var c,s=l.imageData,u=l.vtkOpenGLTexture;if(r&&Array.isArray(r))c=r;else{var d=s.getDimensions()[2];c=wn(Array(d).keys())}c.forEach((function(e){u.setUpdatedFrame(e)})),s.modified(),ft(n).forEach((function(e){Fo(e)}))}else console.warn("segmentation not found in cache")},Wo=function(e){var t=e.detail.toolGroupId;Fo(t)},Go=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,Fo(n)},Ho=function(e,t,n){var r=vt(e);if(r&&0!==r.length){var o=r.map((function(e){return e.segmentationRepresentationUID})),i=t;if(i){var a=t.filter((function(e){return!o.includes(e)}));if(a.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(a)))}else i=o;i.forEach((function(t){!function(e,t,n){var r=Ct(e,t).type;if(r!==$e.Labelmap)throw new Error("The representation ".concat(r," is not supported yet"));Ro.removeSegmentationRepresentation(e,t,n)}(e,t,n)}))}},qo=function(e){var t=bn.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Vo.removeToolGroup(e),Ho(e),bn.toolGroups.splice(t,1))};function zo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ko=function(){var e,t=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return zo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(wn(bn.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;qo(n.id)}}catch(e){t.e(e)}finally{t.f()}bn.toolGroups=[]},Yo=!1;function $o(){Yo||(function(){Jo();var e=z.Enums.Events.ELEMENT_ENABLED,t=z.Enums.Events.ELEMENT_DISABLED;z.eventTarget.addEventListener(e,Dr),z.eventTarget.addEventListener(t,Or)}(),Xo(),z.eventTarget.addEventListener(K.ANNOTATION_MODIFIED,Mr),z.eventTarget.addEventListener(K.ANNOTATION_SELECTION_CHANGE,Rr),z.eventTarget.addEventListener(K.ANNOTATION_SELECTION_CHANGE,Rr),z.eventTarget.addEventListener(K.SEGMENTATION_MODIFIED,Nr),z.eventTarget.addEventListener(K.SEGMENTATION_DATA_MODIFIED,jo),z.eventTarget.addEventListener(K.SEGMENTATION_REPRESENTATION_MODIFIED,Wo),z.eventTarget.addEventListener(K.SEGMENTATION_REPRESENTATION_REMOVED,Go),document.addEventListener("dblclick",Qt,{capture:!0}),Yo=!0)}function Zo(){Jo(),Xo(),document.removeEventListener("dblclick",Qt,{capture:!0}),Ko(),En={},bn=Q()(In);var e=Ue(),t=ct();e.restoreAnnotations({}),t.resetState(),Yo=!1}function Jo(){var e=z.Enums.Events.ELEMENT_ENABLED,t=z.Enums.Events.ELEMENT_DISABLED;z.eventTarget.removeEventListener(e,Dr),z.eventTarget.removeEventListener(t,Or)}function Xo(){z.eventTarget.removeEventListener(K.ANNOTATION_MODIFIED,Mr),z.eventTarget.removeEventListener(K.ANNOTATION_SELECTION_CHANGE,Rr),z.eventTarget.removeEventListener(K.ANNOTATION_SELECTION_CHANGE,Rr),z.eventTarget.removeEventListener(K.SEGMENTATION_MODIFIED,Nr),z.eventTarget.removeEventListener(K.SEGMENTATION_DATA_MODIFIED,jo),z.eventTarget.removeEventListener(K.SEGMENTATION_REPRESENTATION_MODIFIED,Wo),z.eventTarget.removeEventListener(K.SEGMENTATION_REPRESENTATION_REMOVED,Go)}function Qo(e){var t=e.toolName,n=void 0!==bn.tools[t];if(!t)throw new Error("No Tool Found for the ToolClass ".concat(e.name));if(n)throw new Error("".concat(t," has already been added globally"));bn.tools[t]={toolClass:e}}function ei(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!bn.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete bn.tools[t]}function ti(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ni(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ti(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ti(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(Qn(e,xn(e,[yn.Active,yn.Passive])));try{for(n.s();!(t=n.n()).done;){var r=t.value.tool.cancel(e);if(r)return r}}catch(e){n.e(e)}finally{n.f()}}var ri=function(){function e(t,n,r){var o=this;Y(this,e),J(this,"_enabled",void 0),J(this,"_eventName",void 0),J(this,"_eventHandler",void 0),J(this,"_ignoreFiredEvents",void 0),J(this,"_sourceViewports",void 0),J(this,"_targetViewports",void 0),J(this,"_viewportOptions",{}),J(this,"id",void 0),J(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,z.getEnabledElement)(e.currentTarget);if(t){var n=t.renderingEngineId,r=t.viewportId;o._sourceViewports.find((function(e){return e.viewportId===r}))&&o.fireEvent({renderingEngineId:n,viewportId:r},e)}}})),this._enabled=!0,this._eventName=n,this._eventHandler=r,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this.id=t}return Z(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"setOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._viewportOptions[e]=t}},{key:"getOptions",value:function(e){return this._viewportOptions[e]}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!ii(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,z.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){ii(this._targetViewports,e)||(this._targetViewports.push(e),this._updateDisableHandlers())}},{key:"getSourceViewports",value:function(){return this._sourceViewports}},{key:"getTargetViewports",value:function(){return this._targetViewports}},{key:"destroy",value:function(){var e=this;this._sourceViewports.forEach((function(t){return e.removeSource(t)})),this._targetViewports.forEach((function(t){return e.removeTarget(t)}))}},{key:"remove",value:function(e){this.removeTarget(e),this.removeSource(e)}},{key:"removeSource",value:function(e){var t=oi(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,z.getRenderingEngine)(e.renderingEngineId);if(!t)throw new Error("No RenderingEngine for Id: ".concat(e.renderingEngineId));return t.getViewport(e.viewportId).element}(e);this._sourceViewports.splice(t,1),n.removeEventListener(this._eventName,this._eventHandler),this._updateDisableHandlers()}}},{key:"removeTarget",value:function(e){var t=oi(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return ii(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return ii(this._targetViewports,{renderingEngineId:e,viewportId:t})}},{key:"fireEvent",value:function(e,t){if(!this.isDisabled()&&!this._ignoreFiredEvents){this._ignoreFiredEvents=!0;try{for(var n=0;n<this._targetViewports.length;n++){var r=this._targetViewports[n];e.viewportId===r.viewportId||this._eventHandler(this,e,r,t)}}catch(e){console.warn("Synchronizer, for: ".concat(this._eventName),e)}finally{this._ignoreFiredEvents=!1}}}},{key:"_hasSourceElements",value:function(){return 0!==this._sourceViewports.length}},{key:"_updateDisableHandlers",value:function(){var e=function(e,t){for(var n=[],r=e.concat(t),o=function(e){var t=r[e];n.some((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))||n.push(t)},i=0;i<r.length;i++)o(i);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,z.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(z.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(z.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function oi(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function ii(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var ai=ri,li=function(e,t,n){if(bn.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new ai(e,t,n);return bn.synchronizers.push(r),r},ci=function(){for(;bn.synchronizers.length>0;)bn.synchronizers.pop().destroy()},si=function(e){return bn.synchronizers.find((function(t){return t.id===e}))},ui=function(){return bn.synchronizers},di=function(e){var t=bn.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(bn.synchronizers[t].destroy(),bn.synchronizers.splice(t,1))},vi=c(485),fi=c.n(vi),gi=Symbol("DefinedCursors"),hi=new Set(["alias","all-scroll","auto","cell","col-resize","context-menu","copy","crosshair","default","e-resize","ew-resize","grab","grabbing","help","move","ne-resize","nesw-resize","no-drop","none","not-allowed","n-resize","ns-resize","nw-resize","nwse-resize","pointer","progress","row-resize","se-resize","s-resize","sw-resize","text","vertical-text","wait","w-resize","zoom-in","zoom-out"]),pi=function(){function e(t,n){Y(this,e),J(this,"name",void 0),J(this,"fallback",void 0),this.name=t+"",this.fallback=n}return Z(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=mi(e,gi),r=n.get(t);return r instanceof e?r:hi.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(mi(e,gi).set(t,n),!0)}}]),e}();function mi(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var wi,yi=hi.values();function Ei(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Br(e)););return e}function Ii(){return Ii="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=Ei(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Ii.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(wi||(wi={}));var bi=wi;var Ci=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(e,t,n,i,a){var l;return Y(this,o),J(kr(l=r.call(this,i||o.getUniqueInstanceName("image-cursor"),a)),"url",void 0),J(kr(l),"x",void 0),J(kr(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return Z(o,[{key:"getStyleProperty",value:function(){var e=this.url,t=this.x,n=this.y,r="url('".concat(e,"')");return t>=0&&n>=0&&(t>0||n>0)&&(r+=" ".concat(t," ").concat(n)),this.addFallbackStyleProperty(r)}}],[{key:"getUniqueInstanceName",value:function(e){return"".concat(e,"-").concat(z.utilities.getRuntimeId(o))}}]),o}(pi),_i={iconContent:"",iconSize:16,viewBox:{x:16,y:16},mousePoint:{x:8,y:8},mousePointerGroupString:'\n <path stroke="{{color}}" d="M8 16L8 0"></path>\n <path stroke="{{color}}" d="M16 8L0 8"></path>\n '},Ti={x:127,y:60},Di='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',Si='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n<rect fill="{{color}}" x="95.84" y="9.38" width="15.85" height="47.14"/>\n',Oi='<path fill="{{color}}" d="M82.89,10a12.09,12.09,0,0,0-16.8-2.5l-27.5,20.4-8.5-6.3a2.93,2.93,0,0,1-1.1-3,14.66,14.66,0,0,0,.1-6.6,14.08,14.08,0,1,0-6.5,15.2,2.87,2.87,0,0,1,3.2.2l8.2,6.1-8.2,6.1a2.87,2.87,0,0,1-3.2.2,14.16,14.16,0,1,0,6.7,14.4,14,14,0,0,0-.3-5.8,2.93,2.93,0,0,1,1.1-3l8.5-6.3,27.5,20.4A11.91,11.91,0,0,0,82.89,57l-31.7-23.5ZM15.29,21a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,21Zm0,36.8a5.9,5.9,0,1,1,5.9-5.9A5.91,5.91,0,0,1,15.29,57.77Zm28.3-21.5a2.8,2.8,0,1,1,2.8-2.8A2.8,2.8,0,0,1,43.59,36.27Z" transform="translate(-1.17 -0.96)"/>',xi='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',Mi='<path fill="{{color}}" d="M40.77,2.25A31.92,31.92,0,1,0,72.69,34.16,31.92,31.92,0,0,0,40.77,2.25Zm0,57.63A25.71,25.71,0,1,1,66.48,34.16,25.71,25.71,0,0,1,40.77,59.87Z" transform="translate(-8.86 -2.25)"/>',Ri={Angle:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1203 544q0 13-10 23l-393 393 393 393q10 10 10 23t-10 23l-50\n 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23\n 10l50 50q10 10 10 23z" />',viewBox:{x:1792,y:1792}}),ArrowAnnotate:Ni(_i,{iconContent:'<g id="arrowAnnotate-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="arrowAnnotate-arrow" d="M23,7 l-15,15 M7,17 l0,6 6,0" stroke-width="2" />\n </g>',viewBox:{x:24,y:24}}),Bidirectional:Ni(_i,{iconContent:'<g fill="{{color}}" stroke-width="3" stroke="{{color}}">\n <path d="M27.63 3.21L3.12 28.81"></path>\n <path d="M27.63 15.75L15.27 4.43"></path>\n <path d="M16.5 4.28C16.5 4.96 15.95 5.51 15.27 5.51C14.59 5.51 14.03 4.96 14.03 4.28C14.03 3.59 14.59 3.04 15.27 3.04C15.95 3.04 16.5 3.59 16.5 4.28Z" ></path>\n <path d="M28.87 3.19C28.87 3.87 28.31 4.43 27.63 4.43C26.95 4.43 26.4 3.87 26.4 3.19C26.4 2.51 26.95 1.95 27.63 1.95C28.31 1.95 28.87 2.51 28.87 3.19Z"></path>\n <path d="M28.87 15.75C28.87 16.43 28.31 16.99 27.63 16.99C26.95 16.99 26.4 16.43 26.4 15.75C26.4 15.07 26.95 14.51 27.63 14.51C28.31 14.51 28.87 15.07 28.87 15.75Z"></path>\n <path d="M4.73 28.44C4.73 29.12 4.17 29.68 3.49 29.68C2.81 29.68 2.25 29.12 2.25 28.44C2.25 27.76 2.81 27.2 3.49 27.2C4.17 27.2 4.73 27.76 4.73 28.44Z"></path>\n </g>',viewBox:{x:48,y:48}}),CobbAngle:Ni(_i,{iconContent:'<g stroke="{{color}}" stroke-width="3">\n <path d="M28.59 2.34L3.82 12.32"></path>\n <path d="M28.59 29.66L3.82 19.68"></path>\n <path stroke-dasharray="2" fill-opacity="0" d="M12.37\n 23.06C12.67 22.36 12.85 21.93 12.92 21.76C14.6 17.8 14.68 13.35 13.15\n 9.33C13.11 9.24 13.02 9 12.88 8.63">\n </path>\n </g>',viewBox:{x:32,y:32}}),CircleROI:Ni(_i,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:Ni(_i,{iconContent:'<path stroke="{{color}}" fill="none" stroke-width="3" d="M30.74 15.76C30.74 20.99 24.14 25.23 16\n 25.23C7.86 25.23 1.26 20.99 1.26 15.76C1.26 10.54 7.86 6.3 16 6.3C24.14\n 6.3 30.74 10.54 30.74 15.76Z" />',viewBox:{x:32,y:32}}),FreehandROI:Ni(_i,{iconContent:'<g fill="{{color}}" stroke="{{color}}" stroke-width="2">\n <ellipse ry="1" rx="1" id="svg_3" cy="4.240343" cx="14.306499"/>\n <line id="svg_4" y2="3.58462" x2="12.242186" y1="3.997482" x1="13.432202"/>\n <line id="svg_5" y2="3.268901" x2="10.857882" y1="3.608906" x1="12.387902"/>\n <line id="svg_6" y2="3.147471" x2="9.740724" y1="3.293187" x1="10.955026"/>\n <line id="svg_7" y2="3.147471" x2="8.089274" y1="3.196043" x1="9.983585"/>\n <line id="svg_8" y2="3.268901" x2="6.874972" y1="3.123185" x1="8.307848"/>\n <line id="svg_9" y2="3.657478" x2="5.587812" y1="3.220329" x1="7.020688"/>\n <line id="svg_10" y2="4.046054" x2="4.737801" y1="3.560334" x1="5.854959"/>\n <line id="svg_11" y2="4.337487" x2="4.300652" y1="3.997482" x1="4.834945"/>\n <line id="svg_12" y2="4.726063" x2="3.88779" y1="4.191771" x1="4.470655"/>\n <line id="svg_15" y2="5.3575" x2="3.377783" y1="4.604633" x1="3.960648"/>\n <line id="svg_16" y2="6.183226" x2="2.916348" y1="5.138926" x1="3.547785"/>\n <line id="svg_17" y2="6.960379" x2="2.770632" y1="5.867507" x1="3.037779"/>\n <line id="svg_18" y2="7.713246" x2="2.673488" y1="6.741804" x1="2.819204"/>\n <line id="svg_19" y2="8.684687" x2="2.697774" y1="7.616102" x1="2.673488"/>\n <line id="svg_20" y2="9.753273" x2="2.892062" y1="8.611829" x1="2.697774"/>\n <line id="svg_21" y2="10.724714" x2="3.134923" y1="9.534698" x1="2.84349"/>\n <line id="svg_23" y2="11.647583" x2="3.596357" y1="10.578998" x1="3.086351"/>\n <line id="svg_25" y2="12.521881" x2="4.276366" y1="11.501867" x1="3.499213"/>\n <line id="svg_26" y2="13.930471" x2="5.830673" y1="12.376165" x1="4.13065"/>\n <line id="svg_28" y2="14.707624" x2="7.263549" y1="13.881899" x1="5.733528"/>\n <line id="svg_29" y2="15.339061" x2="8.963571" y1="14.61048" x1="7.06926"/>\n <line id="svg_30" y2="15.581921" x2="10.882168" y1="15.314775" x1="8.817855"/>\n <line id="svg_31" y2="15.460491" x2="12.023612" y1="15.581921" x1="10.785024"/>\n <line id="svg_33" y2="15.120487" x2="13.092197" y1="15.484777" x1="11.877895"/>\n <line id="svg_34" y2="14.586194" x2="13.86935" y1="15.217631" x1="12.897909"/>\n <line id="svg_35" y2="13.833327" x2="14.597931" y1="14.756196" x1="13.699348"/>\n <line id="svg_37" y2="12.716169" x2="15.180796" y1="13.881899" x1="14.549359"/>\n <line id="svg_39" y2="11.429009" x2="15.520801" y1="12.813313" x1="15.15651"/>\n <ellipse ry="1" rx="1" id="svg_40" cy="10.967574" cx="15.520801"/>\n </g>',viewBox:{x:18,y:18}}),FreehandROISculptor:Ni(_i,{iconContent:'<g id="icon-freehand-sculpt" fill="none" stroke-width="1.5" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <line id="svg_1" y2="2.559367" x2="10.184807" y1="4.467781" x1="8.81711"/>\n <line id="svg_4" y2="1.493836" x2="11.727442" y1="2.766112" x1="10.089386"/>\n <line id="svg_7" y2="1.080346" x2="13.047428" y1="1.748291" x1="11.345759"/>\n <line id="svg_8" y2="1.000829" x2="14.351511" y1="1.112153" x1="12.77707"/>\n <line id="svg_9" y2="1.350705" x2="15.242104" y1="0.905408" x1="13.969828"/>\n <line id="svg_10" y2="2.098167" x2="15.862339" y1="1.14396" x1="14.955842"/>\n <line id="svg_11" y2="3.195505" x2="16.41896" y1="1.939133" x1="15.766918"/>\n <line id="svg_12" y2="4.292843" x2="16.530284" y1="2.925147" x1="16.387153"/>\n <line id="svg_16" y2="5.644637" x2="16.196311" y1="3.831643" x1="16.593898"/>\n <line id="svg_18" y2="7.266789" x2="15.623787" y1="5.19934" x1="16.275829"/>\n <line id="svg_19" y2="10.813258" x2="14.526449" y1="6.726071" x1="15.766918"/>\n <line id="svg_20" y2="5.056209" x2="8.085552" y1="4.181519" x1="8.976145"/>\n <line id="svg_23" y2="5.326568" x2="7.481221" y1="4.78585" x1="8.403621"/>\n <line id="svg_24" y2="5.565119" x2="6.749662" y1="5.294761" x1="7.624352"/>\n <line id="svg_25" y2="5.994512" x2="5.429675" y1="5.533312" x1="6.956407"/>\n <line id="svg_27" y2="6.551133" x2="4.284627" y1="5.962706" x1="5.572807"/>\n <line id="svg_28" y2="7.584858" x2="3.044158" y1="6.392099" x1="4.427758"/>\n <line id="svg_29" y2="8.84123" x2="2.185372" y1="7.489437" x1="3.219096"/>\n <line id="svg_31" y2="10.606513" x2="1.644654" y1="8.602678" x1="2.280792"/>\n <line id="svg_32" y2="13.214679" x2="1.48562" y1="10.352058" x1="1.724171"/>\n <line id="svg_33" y2="14.375631" x2="1.676461" y1="12.992031" x1="1.453813"/>\n <line id="svg_34" y2="15.298031" x2="2.264889" y1="14.152983" x1="1.517427"/>\n <line id="svg_35" y2="16.172721" x2="3.521261" y1="14.948155" x1="1.915013"/>\n <line id="svg_36" y2="16.824762" x2="5.207027" y1="15.997783" x1="3.28271"/>\n <line id="svg_38" y2="17.063314" x2="7.035924" y1="16.745245" x1="4.968475"/>\n <line id="svg_39" y2="16.888376" x2="9.278311" y1="17.047411" x1="6.733758"/>\n <line id="svg_40" y2="16.284045" x2="10.661911" y1="16.983797" x1="8.992048"/>\n <line id="svg_41" y2="15.313934" x2="11.647925" y1="16.395369" x1="10.455166"/>\n <line id="svg_44" y2="13.898527" x2="12.82478" y1="15.425259" x1="11.504794"/>\n <line id="svg_45" y2="12.037824" x2="14.144766" y1="14.312017" x1="12.522614"/>\n <line id="svg_47" y2="10.59061" x2="14.605966" y1="12.228665" x1="13.953925"/>\n <ellipse ry="1" rx="1" id="svg_48" cy="3.982726" cx="13.460918"/>\n </g>',viewBox:{x:18,y:18}}),Length:Ni(_i,{iconContent:'<g id="length-group" fill="none" stroke-width="1" stroke="{{color}}" stroke-linecap="round" stroke-linejoin="round">\n <path id="length-dashes" d="m22.5,6 -16.5,16.5" stroke-width="3" stroke-dasharray="0.6666,5" />\n </g>',viewBox:{x:24,y:24}}),Probe:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1152 896q0 106-75 181t-181 75-181-75-75-181 75-181 181-75 181 75\n 75 181zm-256-544q-148 0-273 73t-198 198-73 273 73 273 198 198 273 73 273-73\n 198-198 73-273-73-273-198-198-273-73zm768 544q0 209-103 385.5t-279.5\n 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5\n 385.5-103 385.5 103 279.5 279.5 103 385.5z" />',viewBox:{x:1792,y:1792}}),RectangleROI:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1312 256h-832q-66 0-113 47t-47 113v832q0 66 47\n 113t113 47h832q66 0 113-47t47-113v-832q0-66-47-113t-113-47zm288 160v832q0\n 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119\n 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),TextMarker:Ni(_i,{iconContent:'<path fill="{{color}}" d="M789 559l-170 450q33 0 136.5 2t160.5 2q19 0\n 57-2-87-253-184-452zm-725 1105l2-79q23-7 56-12.5t57-10.5 49.5-14.5 44.5-29\n 31-50.5l237-616 280-724h128q8 14 11 21l205 480q33 78 106 257.5t114 274.5q15\n 34 58 144.5t72 168.5q20 45 35 57 19 15 88 29.5t84 20.5q6 38 6 57 0 5-.5\n 13.5t-.5 12.5q-63 0-190-8t-191-8q-76 0-215 7t-178 8q0-43 4-78l131-28q1 0\n 12.5-2.5t15.5-3.5 14.5-4.5 15-6.5 11-8 9-11\n 2.5-14q0-16-31-96.5t-72-177.5-42-100l-450-2q-26 58-76.5 195.5t-50.5 162.5q0\n 22 14 37.5t43.5 24.5 48.5 13.5 57 8.5 41 4q1 19 1 58 0 9-2 27-58\n 0-174.5-10t-174.5-10q-8 0-26.5 4t-21.5 4q-80 14-188 14z" />',viewBox:{x:1792,y:1792}}),Crosshairs:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1325 1024h-109q-26 0-45-19t-19-45v-128q0-26\n 19-45t45-19h109q-32-108-112.5-188.5t-188.5-112.5v109q0 26-19 45t-45\n 19h-128q-26 0-45-19t-19-45v-109q-108 32-188.5 112.5t-112.5 188.5h109q26\n 0 45 19t19 45v128q0 26-19 45t-45 19h-109q32 108 112.5 188.5t188.5\n 112.5v-109q0-26 19-45t45-19h128q26 0 45 19t19 45v109q108-32\n 188.5-112.5t112.5-188.5zm339-192v128q0 26-19 45t-45 19h-143q-37 161-154.5\n 278.5t-278.5 154.5v143q0 26-19 45t-45 19h-128q-26\n 0-45-19t-19-45v-143q-161-37-278.5-154.5t-154.5-278.5h-143q-26\n 0-45-19t-19-45v-128q0-26 19-45t45-19h143q37-161\n 154.5-278.5t278.5-154.5v-143q0-26 19-45t45-19h128q26 0 45 19t19 45v143q161\n 37 278.5 154.5t154.5 278.5h143q26 0 45 19t19 45z" />',viewBox:{x:1792,y:1792}}),Eraser:Ni(_i,{iconContent:'<path transform="translate(0,1792) scale(1,-1)" fill="{{color}}" d="M960 1408l336-384h-768l-336 384h768zm1013-1077q15\n 34 9.5 71.5t-30.5 65.5l-896 1024q-38 44-96 44h-768q-38\n 0-69.5-20.5t-47.5-54.5q-15-34-9.5-71.5t30.5-65.5l896-1024q38-44 96-44h768q38\n 0 69.5 20.5t47.5 54.5z" />',viewBox:{x:2048,y:1792}}),Magnify:Ni(_i,{iconContent:'<path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />',viewBox:{x:512,y:512}}),Pan:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1411 541l-355 355 355 355 144-144q29-31 70-14 39 17\n 39 59v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39 14-69l144-144-355-355-355\n 355 144 144q31 30 14 69-17 40-59 40h-448q-26 0-45-19t-19-45v-448q0-42 40-59\n 39-17 69 14l144 144 355-355-355-355-144 144q-19 19-45 19-12\n 0-24-5-40-17-40-59v-448q0-26 19-45t45-19h448q42 0 59 40 17 39-14 69l-144\n 144 355 355 355-355-144-144q-31-30-14-69 17-40 59-40h448q26 0 45 19t19\n 45v448q0 42-39 59-13 5-25 5-26 0-45-19z" />',viewBox:{x:1792,y:1792}}),Rotate:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1664 256v448q0 26-19 45t-45 19h-448q-42 0-59-40-17-39\n 14-69l138-138q-148-137-349-137-104 0-198.5 40.5t-163.5 109.5-109.5\n 163.5-40.5 198.5 40.5 198.5 109.5 163.5 163.5 109.5 198.5 40.5q119 0\n 225-52t179-147q7-10 23-12 15 0 25 9l137 138q9 8 9.5 20.5t-7.5 22.5q-109\n 132-264 204.5t-327 72.5q-156 0-298-61t-245-164-164-245-61-298 61-298\n 164-245 245-164 298-61q147 0 284.5 55.5t244.5 156.5l130-129q29-31 70-14\n 39 17 39 59z" />',viewBox:{x:1792,y:1792}}),StackScroll:Ni(_i,{iconContent:'<path fill="{{color}}" d="M24 21v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1zM24 13v2c0\n 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547\n 0 1 0.453 1 1zM24 5v2c0 0.547-0.453 1-1 1h-22c-0.547\n 0-1-0.453-1-1v-2c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z" />',viewBox:{x:24,y:28}}),WindowLevelRegion:Ni(_i,{iconContent:'<path fill="{{color}}" d="M1664 416v960q0 119-84.5 203.5t-203.5 84.5h-960q-119\n 0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5\n 84.5t84.5 203.5z" />',viewBox:{x:1792,y:1792}}),WindowLevel:Ni(_i,{iconContent:'\n <path fill="{{color}}" d="M14.5,3.5 a1 1 0 0 1 -11,11 Z" stroke="none" opacity="0.8" />\n <circle cx="9" cy="9" r="8" fill="none" stroke-width="2" stroke="{{color}}" />',viewBox:{x:18,y:18}}),Zoom:Ni(_i,{iconContent:'\n <path fill="{{color}}" d="M508.5 481.6l-129-129c-2.3-2.3-5.3-3.5-8.5-3.5h-10.3C395\n 312 416 262.5 416 208 416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c54.5\n 0 104-21 141.1-55.2V371c0 3.2 1.3 6.2 3.5 8.5l129 129c4.7 4.7 12.3 4.7 17\n 0l9.9-9.9c4.7-4.7 4.7-12.3 0-17zM208 384c-97.3 0-176-78.7-176-176S110.7 32 208\n 32s176 78.7 176 176-78.7 176-176 176z" />\n <path fill="{{color}}" transform="scale(0.22,0.22) translate(1400,0)" d="M1216\n 320q0 26-19 45t-45 19h-128v1024h128q26 0 45 19t19 45-19 45l-256 256q-19\n 19-45 19t-45-19l-256-256q-19-19-19-45t19-45 45-19h128v-1024h-128q-26\n 0-45-19t-19-45 19-45l256-256q19-19 45-19t45 19l256 256q19 19 19 45z" />',viewBox:{x:640,y:512}}),SegmentationFreeHandEraseInside:Ni(_i,{iconContent:"".concat(Oi," ").concat(Di),viewBox:Ti}),SegmentationFreeHandFillInside:Ni(_i,{iconContent:"".concat(Oi," ").concat(Si),viewBox:Ti}),SegmentationFreeHandEraseOutside:Ni(_i,{iconContent:"".concat(Oi," ").concat(Di),viewBox:Ti}),SegmentationFreeHandFillOutside:Ni(_i,{iconContent:"".concat(Oi," ").concat(Si),viewBox:Ti}),SegmentationRectangleEraseInside:Ni(_i,{iconContent:"".concat(xi," ").concat(Di),viewBox:Ti}),RectangleScissor:Ni(_i,{iconContent:"".concat(xi," ").concat(Si),viewBox:Ti}),"RectangleScissor.FILL_INSIDE":Ni(_i,{iconContent:"".concat(xi," ").concat(Si),viewBox:Ti}),"RectangleScissor.FILL_OUTSIDE":Ni(_i,{iconContent:"".concat(xi," ").concat(Si),viewBox:Ti}),"RectangleScissor.ERASE_OUTSIDE":Ni(_i,{iconContent:"".concat(xi," ").concat(Di),viewBox:Ti}),"RectangleScissor.ERASE_INSIDE":Ni(_i,{iconContent:"".concat(xi," ").concat(Di),viewBox:Ti}),CircleScissor:Ni(_i,{iconContent:"".concat(Mi," ").concat(Si),viewBox:Ti}),"CircleScissor.FILL_INSIDE":Ni(_i,{iconContent:"".concat(Mi," ").concat(Si),viewBox:Ti}),"CircleScissor.ERASE_OUTSIDE":Ni(_i,{iconContent:"".concat(Mi," ").concat(Di),viewBox:Ti}),"CircleScissor.FILL_OUTSIDE":Ni(_i,{iconContent:"".concat(Mi," ").concat(Si),viewBox:Ti})};function Ni(e,t){return Object.assign(Object.create(e),t)}function Pi(e,t,n){Ri[e]=Ni(_i,{iconContent:t,viewBox:n})}function ki(e){if(Object.prototype.hasOwnProperty.call(Ri,e))return Ri[e]}var Ai=Object.keys(Ri);function Li(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ui(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Li(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Li(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Vi=new(function(){function e(){Y(this,e),J(this,"config",void 0),this._initializeConfig({color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",shadow:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(255, 255, 0)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0})}return Z(e,[{key:"getAnnotationToolStyles",value:function(e){return this.config.annotations&&this.config.annotations[e]}},{key:"getViewportToolStyles",value:function(e){return this.config.viewports&&this.config.viewports[e]}},{key:"getToolGroupToolStyles",value:function(e){return this.config.toolGroups&&this.config.toolGroups[e]}},{key:"getDefaultToolStyles",value:function(){return this.config.default}},{key:"setAnnotationStyles",value:function(e,t){var n=this.config.annotations;n||(this.config=Ui(Ui({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=Ui(Ui({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=Ui(Ui({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]=t}},{key:"setDefaultToolStyles",value:function(e){this.config.default=e}},{key:"getStyleProperty",value:function(e,t){var n=t.annotationUID,r=t.viewportId,o=t.toolGroupId,i=t.toolName;return this._getToolStyle(e,n,r,o,i)}},{key:"_getToolStyle",value:function(e,t,n,r,o){if(t){var i=this.getAnnotationToolStyles(t);if(i&&i[e])return i[e]}if(n){var a=this.getViewportToolStyles(n);if(a){if(a[o]&&a[o][e])return a[o][e];if(a.global&&a.global[e])return a.global[e]}}if(r){var l=this.getToolGroupToolStyles(r);if(l){if(l[o]&&l[o][e])return l[o][e];if(l.global&&l.global[e])return l.global[e]}}var c=this.getDefaultToolStyles();return c[o]&&c[o][e]?c[o][e]:c.global&&c.global[e]?c.global[e]:void 0}},{key:"_initializeConfig",value:function(e){var t={};for(var n in e)t[n]=e[n];this.config={default:{global:t}}}}]),e}());function Bi(e,t,n,r){for(var o=function(e,t,n){var r=["".concat(e)];return t&&r.push("".concat(r[0]).concat(t)),n&&r.push("".concat(r[r.length-1]).concat(n)),r}(e,n,r),i=o.length-1;i>=0;--i){var a=Vi.getStyleProperty(o[i],t);if(void 0!==a)return a}}var Fi="color",ji=bi.Highlighted,Wi=yn.Active,Gi=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(e,t,n,i,a){return Y(this,o),r.call(this,e,t,n,i,a)}return Z(o,null,[{key:"getDefinedCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;n||(n=Bi(Fi,{},ji,Wi));var r=qi(e,t,n),i=Ii(Br(o),"getDefinedCursor",this).call(this,r);if(!i){var a=ki(e);a&&(i=zi(a,r,t,n,Ii(Br(o),"getDefinedCursor",this).call(this,"default")),Ii(Br(o),"setDefinedCursor",this).call(this,r,i))}return i}}]),o}(Ci);function Hi(e,t){var n=Object(t),r=Object.prototype.hasOwnProperty.bind(n);return(e+"").replace(/\{\{(\w+)\}\}/g,(function(e,t){return r(t)?n[t]+"":""}))}function qi(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function zi(e,t,n,r,o){var i=e.mousePoint,a=i.x,l=i.y;return new Gi(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?Yi:Ki)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),a,l,t,o)}function Ki(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Hi('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(r,'" height="').concat(r,'" viewBox="0 0\n ').concat(o.x," ").concat(o.y,'">\n ').concat(n,"\n </svg>"),t)}function Yi(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,i=e.mousePointerGroupString,a=r/Math.max(o.x,o.y,1),l=16+r;return Hi('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(i,'</g>\n <g transform="translate(16, 16) scale(').concat(a,')">').concat(n,"</g>\n </svg>"),t)}var $i=Symbol("ElementCursorsMap");function Zi(e,t){ea(e)[0]=t,Ji(e,t)}function Ji(e,t){var n=ea(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof pi?t:pi.getDefinedCursor("auto")).getStyleProperty()}function Xi(e){Ji(e,ea(e)[1])}function Qi(e){Ji(e,pi.getDefinedCursor("none"))}function ea(e){var t=ea[$i];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(ea,$i,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}function ta(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=Br(e);if(t){var o=Br(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Vr(this,n)}}var na=yn.Active,ra=yn.Passive,oa=yn.Enabled,ia=yn.Disabled,aa=function(){function e(t){Y(this,e),J(this,"id",void 0),J(this,"viewportsInfo",[]),J(this,"toolOptions",{}),J(this,"_toolInstances",{}),this.id=t}return Z(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return this.viewportsInfo.slice()}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=bn.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var i=n.toolClass,a={name:e,toolGroupId:this.id,configuration:t},l=new i(a);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addToolInstance",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null===(n=bn.tools[e])||void 0===n?void 0:n.toolClass;if(!o){var i=bn.tools[t].toolClass,a=function(e){Lr(n,e);var t=ta(n);function n(){return Y(this,n),t.apply(this,arguments)}return Z(n)}(i);a.toolName=e,o=a,bn.tools[e]={toolClass:a}}this.addTool(o.toolName,r)}},{key:"addViewport",value:function(e,t){var n=(0,z.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.some((function(t){return t.viewportId===e}))||this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();z.Settings.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var i=!1;r.renderingEngineId===e&&(i=!0,t&&r.viewportId!==t&&(i=!1)),i&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setActiveStrategy",value:function(e,t){var n=this._toolInstances[e];void 0!==n?n.setActiveStrategy(t):console.warn("Tool ".concat(e," not added to toolGroup, can't set tool configuration."))}},{key:"setToolMode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e?t!==yn.Active?t!==yn.Passive?t!==yn.Enabled?t!==yn.Disabled?console.warn("setToolMode: mode must be defined"):this.setToolDisabled(e):this.setToolEnabled(e):this.setToolPassive(e):this.setToolActive(e,n):console.warn("setToolMode: toolName must be defined")}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._toolInstances[e];if(void 0!==n)if(n){var r=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=t.bindings?t.bindings:[],i=[].concat(wn(r),wn(o)).reduce((function(e,t){return e.some((function(e){return la(e,t)}))||void 0===t.mouseButton||e.push(t),e}),[]),a={bindings:i,mode:na};this.toolOptions[e]=a,this._toolInstances[e].mode=na;var l=z.Settings.getRuntimeSettings(),c=l.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&c)this.setViewportsCursorByToolName(e);else{var s=this.getActivePrimaryMouseButtonTool();if(!s&&c){var u=pi.getDefinedCursor("default");this._setCursorForViewports(u)}}"function"==typeof n.onSetToolActive&&n.onSetToolActive(),this._renderViewports()}else console.warn("'".concat(e,"' instance ").concat(n," is not registered with this toolGroup, can't set tool mode."));else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n=this.getToolOptions(e),r=Object.assign({bindings:n?n.bindings:[]},n,{mode:ra});r.bindings=r.bindings.filter((function(e){return e.mouseButton!==$n.Primary}));var o=ra;0!==r.bindings.length&&(o=na,r.mode=o),this.toolOptions[e]=r,t.mode=o,"function"==typeof t.onSetToolPassive&&t.onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:oa};this.toolOptions[e]=n,t.mode=oa,"function"==typeof t.onSetToolEnabled&&t.onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:ia};this.toolOptions[e]=n,t.mode=ia,"function"==typeof t.onSetToolDisabled&&t.onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){var t=this.toolOptions[e];if(void 0!==t)return t}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===na&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=this._getCursor(e,t);this._setCursorForViewports(n)}},{key:"_getCursor",value:function(e,t){var n,r;return t&&(n="".concat(e,".").concat(t),r=Gi.getDefinedCursor(n,!0))?r:(n="".concat(e),(r=Gi.getDefinedCursor(n,!0))?r:(n=e,(r=Gi.getDefinedCursor(n,!0))||pi.getDefinedCursor("default")))}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,z.getEnabledElementByIds)(r,n);o&&Zi(o.viewport.element,e)}))}},{key:"setToolConfiguration",value:function(e,t,n){return void 0===this._toolInstances[e]?(console.warn("Tool ".concat(e," not present, can't set tool configuration.")),!1):(r=n?t:qr(this._toolInstances[e].configuration,t),this._toolInstances[e].configuration=r,this._renderViewports(),!0);var r}},{key:"getToolConfiguration",value:function(e,t){if(void 0!==this._toolInstances[e]){var n=fi()(this._toolInstances[e].configuration,t);return Q()(n)}console.warn("Tool ".concat(e," not present, can't set tool configuration."))}},{key:"_hasMousePrimaryButtonBinding",value:function(e){var t;return null==e||null===(t=e.bindings)||void 0===t?void 0:t.some((function(e){return e.mouseButton===$n.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,z.getRenderingEngine)(t).renderViewport(n)}))}}]),e}();function la(e,t){return e.mouseButton===t.mouseButton&&e.modifierKey===t.modifierKey}var ca=function(e){if(!bn.toolGroups.some((function(t){return t.id===e}))){var t=new aa(e);return bn.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},sa=function(){return bn.toolGroups};function ua(e,t,n,r){var o=r.detail.camera,i=(0,z.getRenderingEngine)(n.renderingEngineId);if(!i)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var a=i.getViewport(n.viewportId);a.setCamera(o),a.render()}var da=z.Enums.Events.CAMERA_MODIFIED;function va(e){return li(e,da,ua)}function fa(e,t,n,r){var o=r.detail,i=o.volumeId,a=o.range,l=(0,z.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var c=l.getViewport(n.viewportId);if(c instanceof z.VolumeViewport)c.setProperties({voiRange:a},i);else{if(!(c instanceof z.StackViewport))throw new Error("Viewport type not supported.");c.setProperties({voiRange:a})}c.render()}function ga(e){return li(e,z.Enums.Events.VOI_MODIFIED,fa)}function ha(e,t,n){var r=(0,z.getRenderingEngine)(n.renderingEngineId);if(!r)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var o=e.getOptions(n.viewportId),i=r.getViewport(n.viewportId),a=r.getViewport(t.viewportId);if(!1!==(null==o?void 0:o.syncZoom)){var l=a.getZoom();i.setZoom(l)}if(!1!==(null==o?void 0:o.syncPan)){var c=a.getPan();i.setPan(c)}i.render()}var pa=z.Enums.Events.CAMERA_MODIFIED;function ma(e){return li(e,pa,ha)}var wa=c(976);var ya=function(e,t,n){return Math.min(Math.max(t,e),n)};function Ea(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof z.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof z.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));Ia(e,r,o)}}function Ia(e,t,n){var r=e.getCamera(),o=r.focalPoint,i=r.viewPlaneNormal,a=r.position,l=z.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),c=l.spacingInNormalDirection,s=l.imageVolume;if(!s)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var u=e.getActor(s.volumeId);u||console.warn("No actor found for with actorUID of",s.volumeId);var d=u.actor,v=z.utilities.getSliceRange(d,i,o),f=z.utilities.snapFocalPointToSlice(o,a,v,i,c,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function ba(){return ba=$r(Jr().mark((function e(t){var n,r,o,i,a,l,c,s,u,d=arguments;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=d.length>1&&void 0!==d[1]?d[1]:{},r=n.imageIndex,o=n.debounceLoading,i=(0,z.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:a=i.viewport,l=Ca(a,o),c=l.imageIndex,s=l.numberOfSlices,u=_a(s,r),Ea(a,{delta:u-c,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),ba.apply(this,arguments)}function Ca(e,t){if(e instanceof z.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof z.VolumeViewport)return z.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function _a(e,t){return ya(t,0,e-1)}var Ta=function(e){return ba.apply(this,arguments)};function Da(e,t){var n=e.getCamera().viewPlaneNormal,r=t.getCamera().viewPlaneNormal,o=wa.vec3.dot(n,r);return Math.abs(o)>.9}function Sa(e,t,n){return Oa.apply(this,arguments)}function Oa(){return(Oa=$r(Jr().mark((function e(t,n,r){var o,i,a,l,c,s,u,d,v,f,g,h,p;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=(0,z.getRenderingEngine)(r.renderingEngineId)){e.next=3;break}throw new Error("No RenderingEngine for Id: ".concat(r.renderingEngineId));case 3:if(i=o.getViewport(n.viewportId),a=o.getViewport(r.viewportId),l=i.getFrameOfReferenceUID(),c=a.getFrameOfReferenceUID(),s=i.getCurrentImageId(),u=z.metaData.get("imagePlaneModule",s),d=u.imagePositionPatient,v=a.getImageIds(),Da(i,a)){e.next=13;break}return e.abrupt("return");case 13:if(l!==c){e.next=21;break}if(-1===(f=xa(d,v)).index||a.getCurrentImageIdIndex()===f.index){e.next=19;break}return e.next=18,Ta(a.element,{imageIndex:f.index});case 18:return e.abrupt("return");case 19:e.next=29;break;case 21:if(g=z.utilities.spatialRegistrationMetadataProvider.get("spatialRegistrationModule",[r.viewportId,n.viewportId])){e.next=24;break}throw new Error("No registration matrix found for sourceViewport: ".concat(n.viewportId," and targetViewport: ").concat(r.viewportId,", viewports with different frameOfReferenceUIDs must have a registration matrix in the registrationMetadataProvider. Use calculateViewportsRegistrationMatrix to calculate the matrix."));case 24:if(h=wa.vec3.transformMat4(wa.vec3.create(),d,g),-1===(p=xa(h,v)).index||a.getCurrentImageIdIndex()===p.index){e.next=29;break}return e.next=29,Ta(a.element,{imageIndex:p.index});case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function xa(e,t){return t.reduce((function(t,n,r){var o=z.metaData.get("imagePlaneModule",n).imagePositionPatient,i=wa.vec3.distance(o,e);return i<t.distance?{distance:i,index:r}:t}),{distance:1/0,index:-1})}var Ma=z.Enums.Events.STACK_NEW_IMAGE;function Ra(e){return li(e,Ma,Sa)}var Na=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},Pa=function(e,t){Object.keys(e).forEach((function(n){var r=t.getAttribute(n),o=e[n];void 0===o||""===o?t.removeAttribute(n):r!==o&&t.setAttribute(n,o)}))},ka=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},Aa=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},i),l=a.color,c=a.fill,s=a.width,u=a.lineWidth,d=u||s,v="http://www.w3.org/2000/svg",f=Na(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:c,"stroke-width":d};if(g)Pa(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");ka(h,p),e.appendNode(p,f)}},La=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=u||s,f="http://www.w3.org/2000/svg",g=Na(t,"ellipse",n),h=e.getSvgNode(g),p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w=Math.min(r[0],o[0]),y=Math.min(r[1],o[1]),E=[w+p/2,y+m/2],I=p/2,b=m/2,C={cx:"".concat(E[0]),cy:"".concat(E[1]),rx:"".concat(I),ry:"".concat(b),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":d};if(h)Pa(C,h),e.setNodeTouched(g);else{var _=document.createElementNS(f,"ellipse");""!==a&&_.setAttribute("data-id",a),ka(C,_),e.appendNode(_,g)}},Ua=function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},o),a=i.color,l=i.handleRadius,c=i.width,s=i.lineWidth,u=i.fill,d=i.type,v=s||c,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=Na(t,"handle","hg-".concat(n,"-index-").concat(f)),m=void 0;if("circle"===d)m={cx:"".concat(g[0]),cy:"".concat(g[1]),r:l,stroke:a,fill:u,"stroke-width":v};else{if("rect"!==d)throw new Error("Unsupported handle type: ".concat(d));var w=parseFloat(l),y=1.5*w,E=g[0]-.5*y,I=g[1]-.5*y;m={x:"".concat(E),y:"".concat(I),width:"".concat(y),height:"".concat(y),stroke:a,fill:u,"stroke-width":v,rx:"".concat(.1*y)}}var b=e.getSvgNode(p);if(b)Pa(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,d);ka(m,C),e.appendNode(C,p)}}};function Va(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=l.shadow,f=u||s,g="http://www.w3.org/2000/svg",h=Na(t,"line",n),p=e.getSvgNode(h),m=v?"filter:url(#shadow);":"",w={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:c,style:m,"stroke-width":f,"stroke-dasharray":d};if(p)Pa(w,p),e.setNodeTouched(h);else{var y=document.createElementNS(g,"line");""!==a&&y.setAttribute("data-id",a),ka(w,y),e.appendNode(y,h)}}}function Ba(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Fa(e,t,n,r,o){if(!(r.length<2)){var i,a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,connectLastToFirst:!1},o),l=a.color,c=a.width,s=a.lineWidth,u=a.lineDash,d=s||c,v=Na(t,"polyline",n),f=e.getSvgNode(v),g="",h=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ba(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ba(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(r);try{for(h.s();!(i=h.n()).done;){var p=i.value;g+="".concat(p[0],", ").concat(p[1]," ")}}catch(e){h.e(e)}finally{h.f()}if(o.connectLastToFirst){var m=r[0];g+="".concat(m[0],", ").concat(m[1])}var w={points:g,stroke:l,fill:"none","stroke-width":d,"stroke-dasharray":u};if(f)Pa(w,f),e.setNodeTouched(v);else{var y=document.createElementNS("http://www.w3.org/2000/svg","polyline");ka(w,y),e.appendNode(y,v)}}}function ja(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[""],i=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0,l=a.padding,c=a.color,s=a.fontFamily,u=a.fontSize,d=a.background,v=i[0]+l,f=i[1]+l,g="http://www.w3.org/2000/svg",h=Na(t,"text",n),p=e.getSvgNode(h);if(p){for(var m=p.querySelector("text"),w=Array.from(m.children),y=0;y<w.length;y++){var E=w[y],I=o[y]||"";E.textContent=I}if(o.length>w.length){for(var b=0;b<o.length-w.length;b++){var C=o[b+w.length],_=Ga(C);m.appendChild(_)}p.appendChild(m),e.appendNode(p,h)}var T={fill:c,"font-size":u,"font-family":s},D={transform:"translate(".concat(v," ").concat(f,")")};Pa(T,m),Pa(D,p),r=Ha(p,d),e.setNodeTouched(h)}else{var S=document.createElementNS(g,"g");S.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var O=Wa(a),x=0;x<o.length;x++){var M=o[x],R=Ga(M);O.appendChild(R)}S.appendChild(O),e.appendNode(S,h),r=Ha(S,d)}return Object.assign({},r,{x:v,y:f,height:r.height+l,width:r.width+l})}function Wa(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),i="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",i),o}function Ga(e){var t=document.createElementNS("http://www.w3.org/2000/svg","tspan");return t.setAttribute("x","0"),t.setAttribute("dy","1.2em"),t.textContent=e,t}function Ha(e,t){var n=e.querySelector("rect.background");if(!t)return n&&e.removeChild(n),e.getBBox();n||((n=document.createElementNS("http://www.w3.org/2000/svg","rect")).setAttribute("class","background"),e.insertBefore(n,e.firstChild));var r=e.getBBox(),o={x:"".concat(r.x),y:"".concat(r.y),width:"".concat(r.width),height:"".concat(r.height),fill:t};return Pa(o,n),r}var qa=function(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},i),l=ja(e,t,n,r,o,a);return l};function za(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,l=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){l=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(l)throw o}}return i}}(e,t)||mn(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ka(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,i,a,l,c,s,u,d=(o=e,a=(i=za(t,2))[0],l=i[1],s=(c=za(o,2))[0],u=c[1],Math.sqrt(Math.pow(a-s,2)+Math.pow(l-u,2)));d<r&&(r=d,n=wn(e))})),n}function Ya(e){var t=e.x,n=e.y,r=e.height,o=e.width,i=o/2,a=r/2;return[[t+i,n],[t,n+a],[t+i,n+r],[t+o,n+a]]}var $a=function(e,t,n,r,o,i){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?Ka(r,o):o,c=Ya(i),s=Ka(c,l),u=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},a);Va(e,t,"link-".concat(n),l,s,u)},Za=function(e,t,n,r,o,i,a){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),s=qa(e,t,n,r,o,c);return $a(e,t,n,i,o,s,c),s};function Ja(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),c=l.color,s=l.width,u=l.lineWidth,d=l.lineDash,v=u||s,f="http://www.w3.org/2000/svg",g=Na(t,"rect",n),h=e.getSvgNode(g),p=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],m=Math.abs(r[0]-o[0]),w=Math.abs(r[1]-o[1]),y={x:"".concat(p[0]),y:"".concat(p[1]),width:"".concat(m),height:"".concat(w),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":d};if(h)Pa(y,h),e.setNodeTouched(g);else{var E=document.createElementNS(f,"rect");""!==a&&E.setAttribute("data-id",a),ka(y,E),e.appendNode(E,g)}}function Xa(e,t,n,r,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var a=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},i),l=a.color,c=a.width,s=a.lineWidth,u=a.lineDash;Va(e,t,n,r,o,{color:l,width:c,lineWidth:s,lineDash:u});var d=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-d*Math.cos(v-Math.PI/7),o[1]-d*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-d*Math.cos(v+Math.PI/7),o[1]-d*Math.sin(v+Math.PI/7)],end:o};Va(e,t,"2",f.start,f.end,{color:l,width:c,lineWidth:s}),Va(e,t,"3",g.start,g.end,{color:l,width:c,lineWidth:s})}}function Qa(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function el(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,z.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return tl(r,t,n)}function tl(e,t,n){var r=e.renderingEngineId,o=e.viewportId,i=On(o,r);if(!i)return null;var a=i._toolInstances;for(var l in a){var c=nl(a[l],e,t,n);if(c)return c}return null}function nl(e,t,n,r){var o,i,a=Be(t.viewport.element,e.constructor.toolName),l=null===(o=t.viewport)||void 0===o||null===(i=o.getCurrentImageId)||void 0===i?void 0:i.call(o);if(null!=a&&a.length){var c,s=t.viewport.element,u=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qa(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qa(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(a);try{for(u.s();!(c=u.n()).done;){var d,v=c.value,f=null===(d=v.metadata)||void 0===d?void 0:d.referencedImageId;if(!(l&&f&&l!==f||!e.isPointNearTool)&&(e.isPointNearTool(s,v,n,r,"")||e.getHandleNearImagePoint(s,v,n,r)))return v}}catch(e){u.e(e)}finally{u.f()}}return null}var rl=function(e){var t=Ur(e);return null!==e&&("object"===t||"function"===t)},ol=function(e,t,n){var r,o,i,a,l,c,s=0,u=!1,d=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,i=o;return r=o=void 0,s=t,a=e.apply(i,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return s=e,l=h(w,t),u?g(e):a}function m(e){var n=e-c;return void 0===c||n>=t||n<0||d&&e-s>=i}function w(){var e=Date.now();if(m(e))return y(e);l=h(w,function(e){var n=e-s,r=t-(e-c);return d?Math.min(r,i-n):r}(e))}function y(e){return l=void 0,v&&r?g(e):(r=o=void 0,a)}function E(){for(var e=Date.now(),n=m(e),i=arguments.length,s=new Array(i),u=0;u<i;u++)s[u]=arguments[u];if(r=s,o=this,c=e,n){if(void 0===l)return p(c);if(d)return l=h(w,t),g(c)}return void 0===l&&(l=h(w,t)),a}return t=Number(t)||0,rl(n)&&(u=Boolean(n.leading),i=(d="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):i,v="trailing"in n?Boolean(n.trailing):v),E.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),s=0,r=c=o=l=void 0},E.flush=function(){return void 0===l?a:y(Date.now())},E.pending=function(){return void 0!==l},E},il=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return rl(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),ol(e,t,{leading:r,trailing:o,maxWait:t})},al=z.utilities.calibratedPixelSpacingMetadataProvider;function ll(e,t,n,r){r||(r=n),al.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function cl(e,t,n,r){var o,i,a,l,c,s,u;u=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var d=e.getDimensions();if(r){var v=za(r,3),f=za(v[0],2);o=f[0],i=f[1];var g=za(v[1],2);a=g[0],l=g[1];var h=za(v[2],2);c=h[0],s=h[1]}else o=0,i=d[0],a=0,l=d[1],c=0,s=d[2];for(var p=wa.vec3.fromValues(o,a,c),m=e.getDirection(),w=m.slice(0,3),y=m.slice(3,6),E=m.slice(6,9),I=za(e.getSpacing(),3),b=I[0],C=I[1],_=I[2],T=e.indexToWorld(p),D=wa.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),S=wa.vec3.fromValues(y[0]*C,y[1]*C,y[2]*C),O=wa.vec3.fromValues(E[0]*_,E[1]*_,E[2]*_),x=d[0],M=d[0]*d[1],R=c;R<=s;R++)for(var N=a;N<=l;N++)for(var P=o;P<=i;P++){var k=[P,N,R],A=P-o,L=N-a,U=R-c,V=T,B=[V[0]+A*D[0]+L*S[0]+U*O[0],V[1]+A*D[1]+L*S[1]+U*O[1],V[2]+A*D[2]+L*S[2]+U*O[2]];if(t(B,k)){var F=R*M+N*x+P;n({value:u[F],index:F,pointIJK:k,pointLPS:B})}}}var sl=function(e,t){var n=1/0,r=0,o=1/0,i=0,a=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),i=Math.max(e[1],i),a=Math.min(e[2],a),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),t){var c=za(t,3),s=c[0],u=c[1],d=c[2];n=Math.max(0,n),r=Math.min(s-1,r),o=Math.max(0,o),i=Math.min(u-1,i),a=Math.max(0,a),l=Math.min(d-1,l)}return[[n,r],[o,i],[a,l]]},ul=z.utilities.transformWorldToIndex;function dl(e,t,n,r){var o=function(e,t,n){var r,o=za(e,2),i=o[0],a=o[1],l=wa.vec3.fromValues((i[0]+a[0])/2,(i[1]+a[1])/2,(i[2]+a[2])/2),c=wa.vec3.distance(i,a)/2;if(!n){var s=ul(t,l),u=t.getSpacing(),d=Math.min.apply(Math,wn(u)),v=Math.ceil(c/d);return{boundsIJK:r=[[s[0]-v,s[0]+v],[s[1]-v,s[1]+v],[s[2]-v,s[2]+v]],centerWorld:l,radiusWorld:c}}return r=function(e,t,n,r,o){var i=za(n,2),a=i[0],l=i[1],c=e.getDimensions(),s=t.getCamera(),u=wa.vec3.fromValues(s.viewUp[0],s.viewUp[1],s.viewUp[2]),d=wa.vec3.fromValues(s.viewPlaneNormal[0],s.viewPlaneNormal[1],s.viewPlaneNormal[2]),v=wa.vec3.create();wa.vec3.cross(v,u,d);var f=wa.vec3.create(),g=wa.vec3.create();wa.vec3.scaleAndAdd(f,l,d,o),wa.vec3.scaleAndAdd(g,a,d,-o),wa.vec3.scaleAndAdd(f,f,v,-o),wa.vec3.scaleAndAdd(g,g,v,o);var h=[ul(e,f),ul(e,g)];return sl(h,c)}(t,n,e,0,c),{boundsIJK:r,centerWorld:l,radiusWorld:c}}(t,e,r),i=o.boundsIJK,a={center:o.centerWorld,radius:o.radiusWorld};cl(e,(function(e){return function(e,t){var n=e.center,r=e.radius,o=za(t,3),i=o[0],a=o[1],l=o[2],c=za(n,3),s=c[0],u=c[1],d=c[2];return Math.pow(i-s,2)+Math.pow(a-u,2)+Math.pow(l-d,2)<=Math.pow(r,2)}(a,e)}),n,i)}var vl=function(e,t,n){var r=e.scalarData,o=e.spacing,i=e.imageData,a=n.overwrite,l=n.boundsIJK,c=(null==n?void 0:n.overlapType)||0;if(a)for(var s=0;s<r.length;s++)r[s]=0;for(var u,d,v,f,g,h=[],p=0,m=0;m<t.length;m++){var w=t[m].volume,y=w.imageData,E=w.spacing,I=w.dimensions,b=t[m].volume.scalarData.length;b===r.length&&(u=E,d=o,JSON.stringify(u)===JSON.stringify(d))&&(p=m);var C=y.getPointData().getScalars().getData(),_=t[m].lower,T=t[m].upper;h.push({imageData:y,referenceValues:C,lower:_,upper:T,spacing:E,dimensions:I,volumeSize:b})}var D=function(e,t,n){var r=e.imageData,o=e.dimensions,i=e.lower,a=e.upper,l=O(r,o,t,n);f=0,v=0,g={lower:i,upper:a};var s=!1;return cl(r,(function(){return!0}),(function(e){var t=e.value;f+=1,t>=g.lower&&t<=g.upper&&(v+=1)}),l),0===c?s=v>0:1==c&&(s=v===f),s},S=function(e,t){var n=e.imageData,r=e.referenceValues,o=e.lower,i=e.upper,a=r[n.computeOffsetIndex(t)];return!(a<=o||a>=i)},O=function(e,t,n,r){for(var o=[],i=0;i<2;i++)for(var a=0;a<2;a++)for(var l=0;l<2;l++){var c=r;c[0]=c[0]+(2*i-1)*n[0]/2,c[1]=c[1]+(2*a-1)*n[1]/2,c[2]=c[2]+(2*l-1)*n[2]/2,o.push(c)}var s=o.map((function(t){return z.utilities.transformWorldToIndex(e,t)}));return sl(s,t)};return cl(i,(function(){return!0}),(function(e){for(var t=e.index,n=e.pointIJK,o=e.pointLPS,i=h.length>0,a=0;a<h.length&&(i=h[a].volumeSize===r.length?S(h[a],n):D(h[a],h[p].spacing,o));a++);i&&(r[t]=1)}),l),it(e.volumeId),e};function fl(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o];i.getFrameOfReferenceUID()===t&&r.push(i)}return r}var gl=yn.Active,hl=yn.Passive,pl=yn.Enabled;function ml(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var i=e[o],a=On(i.id,i.renderingEngineId);a&&wl(a,t)&&r.push(i)}return r}function wl(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===gl||r===hl||r===pl}var yl=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.999;return e.filter((function(e){var r=e.getCamera();return Math.abs(wa.vec3.dot(r.viewPlaneNormal,t.viewPlaneNormal))>n}))};function El(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.FrameOfReferenceUID,a=o.getViewports();a=ml(a=fl(a,i),t);var l=o.getViewport(r.viewportId);n&&(a=yl(a,l.getCamera()));var c=a.map((function(e){return e.id}));return c}function Il(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var bl=1-z.CONSTANTS.EPSILON;function Cl(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(wa.vec3.dot(r,t))>bl;return t&&n}));if(!o.length)return[];var i,a=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Il(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Il(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,d=u.data.handles.points[0];if(u.isVisible){var v=wa.vec3.create();wa.vec3.sub(v,l,d);var f=wa.vec3.dot(v,r);Math.abs(f)<a&&c.push(u)}}}catch(e){s.e(e)}finally{s.f()}return c}function _l(e,t){if(e instanceof z.StackViewport){var n=e.getCurrentImageId(),r=n.indexOf(":"),o=n.substring(r+1);return t.filter((function(e){if(!e.isVisible)return!1;var t=e.metadata.referencedImageId;if(void 0===t)return!1;var n=t.indexOf(":");return t.substring(n+1)===o}))}if(e instanceof z.VolumeViewport){var i=e.getCamera();return Cl(t,i,z.utilities.getTargetVolumeAndSpacingInNormalDir(e,i).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var Tl=function(e){if(e){if(e.data&&e.highlighted)return bi.Highlighted;if(ye(e.annotationUID))return bi.Selected;if(oe(e))return bi.Locked}return bi.Default};var Dl=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e;Y(this,o);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return J(kr(e=r.call.apply(r,[this].concat(n))),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,i=n.columnScale,a=n.imageId,l=n.imageData,c=n.worldToIndex;if((0,z.getEnabledElement)(r).viewport instanceof z.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var s=l.getIndexToWorld(),u=z.utilities.imageIdToURI(a),d=Ve();d.getFramesOfReference().forEach((function(t){var n=d.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){z.utilities.imageIdToURI(e.metadata.referencedImageId)===u&&(e.invalidated=!0,e.data.cachedStats={},e.data.handles.points=e.data.handles.points.map((function(e){var t=wa.vec4.fromValues.apply(wa.vec4,wn(e).concat([1])),n=wa.vec4.fromValues(0,0,0,1),r=wa.vec4.create();wa.vec4.transformMat4(r,t,c);var a=[i*r[0],o*r[1],r[2]];return wa.vec4.transformMat4(n,wa.vec4.fromValues(a[0],a[1],a[2],1),s),n.slice(0,3)})))})),Ln(r))}))})),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return _l((0,z.getEnabledElement)(e).viewport,t)}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,i=this.getTargetId(e);if(e instanceof z.StackViewport)o=i.split("imageId:")[1];else{var a=i.split("volumeId:")[1],l=z.cache.getVolume(a);o=z.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return Bi(e,t,Tl(n),this.mode)}}]),o}(Kr);J(Dl,"toolName",void 0),Dl.toolName="AnnotationDisplayTool";var Sl=Dl;function Ol(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return xl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}function xl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ml=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e;Y(this,o);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return J(kr(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,i=o.element,a=o.currentPoints.canvas,l=!1,c=Ol(n);try{for(c.s();!(r=c.n()).done;){var s=r.value;if(!oe(s)&&Se(s.annotationUID)){var u=s.data,d=u.handles?u.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(i,s,a,6),f=v&&!s.highlighted,g=!v&&s.highlighted;f||g?(s.highlighted=!s.highlighted,l=!0):u.handles&&u.handles.activeHandleIndex!==d&&(l=!0)}}}catch(e){c.e(e)}finally{c.f()}return l})),e}return Z(o,[{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data,a=i.handles,l=a.points,c=a.textBox,s=c.worldBoundingBox;if(s){var u={topLeft:o.worldToCanvas(s.topLeft),topRight:o.worldToCanvas(s.topRight),bottomLeft:o.worldToCanvas(s.bottomLeft),bottomRight:o.worldToCanvas(s.bottomRight)};if(n[0]>=u.topLeft[0]&&n[0]<=u.bottomRight[0]&&n[1]>=u.topLeft[1]&&n[1]<=u.bottomRight[1])return i.handles.activeHandleIndex=null,c}for(var d=0;d<l.length;d++){var v=l[d],f=o.worldToCanvas(v);if(!0==wa.vec2.distance(n,f)<r)return i.handles.activeHandleIndex=d,v}i.handles.activeHandleIndex=null}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle("textBoxFontFamily",e,t),fontSize:this.getStyle("textBoxFontSize",e,t),color:this.getStyle("textBoxColor",e,t),shadow:this.getStyle("textBoxShadow",e,t),background:this.getStyle("textBoxBackground",e,t),lineWidth:this.getStyle("textBoxLinkLineWidth",e,t),lineDash:this.getStyle("textBoxLinkLineDash",e,t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(Sl);J(Ml,"toolName",void 0),Ml.toolName="AnnotationTool";var Rl=Ml;function Nl(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function Pl(e,t,n){var r=Nl(e,t);if(0===r)return Nl(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return Nl(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function kl(e,t,n){if(2!==e.length||2!==t.length||2!==n.length)throw Error("lineStart, lineEnd, and point should have 2 elements of [x, y]");return Math.sqrt(Pl(e,t,n))}function Al(e,t){if(4!==e.length||2!==t.length)throw Error("rectangle:[left, top, width, height] or point: [x,y] not defined correctly");var n=za(e,4),r=n[0],o=n[1],i=n[2],a=n[3],l=655535,c=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,i,a);return Object.keys(c).forEach((function(e){var n=za(c[e],2),r=kl(n[0],n[1],t);r<l&&(l=r)})),l}function Ll(e){var t,n,r,o,i=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),a=(i.top[1]+i.bottom[1])/2;return[i.right[0],a]}function Ul(e,t,n,r){var o=wa.vec3.create();wa.vec3.cross(o,t,e);var i=wa.vec3.fromValues.apply(wa.vec3,wn(n)),a=wa.vec3.fromValues.apply(wa.vec3,wn(r)),l=wa.vec3.create();wa.vec3.subtract(l,i,a);var c=wa.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=wa.vec3.dot(l,o)/(c*wa.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}function Vl(e,t){return"CT"===e?"HU":"PT"===e&&!0===t?"SUV":""}function Bl(e,t){if(e instanceof z.BaseVolumeViewport){var n=t.split("volumeId:")[1],r=z.cache.getVolume(n);return r.scaling&&Object.keys(r.scaling).length>0}if(e instanceof z.StackViewport)return e.getImageData().preScale.scaled;throw new Error("Viewport is not a valid type")}var Fl=z.utilities.transformWorldToIndex,jl=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[wn(i),wn(i),wn(i),wn(i)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Fe(o,f);var g=El(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(c,g),f})),J(kr(e),"isPointNearTool",(function(t,n,r,o){var i=(0,z.getEnabledElement)(t).viewport,a=n.data.handles.points,l=i.worldToCanvas(a[0]),c=i.worldToCanvas(a[3]),s=e._getRectangleImageCoordinates([l,c]),u=[r[0],r[1]];return Al([s.left,s.top,s.width,s.height],u)<=o})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),Qi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),t.preventDefault()})),J(kr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var c=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:c,handleIndex:a,movingTextBox:l},e._activateModify(o),Qi(o);var s=(0,z.getEnabledElement)(o).renderingEngine;xr(s,c),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(s,i),a){var u=K.ANNOTATION_COMPLETED,d={annotation:o};(0,z.triggerEvent)(z.eventTarget,u,d)}}})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g,h,p,m,w,y,E,I,b=n.currentPoints,C=(0,z.getEnabledElement)(r).viewport,_=C.worldToCanvas,T=C.canvasToWorld,D=b.world,S=s.handles.points;switch(S[l]=wn(D),l){case 0:case 3:g=_(S[0]),h=[(m=_(S[3]))[0],g[1]],p=[g[0],m[1]],y=T(h),E=T(p),S[1]=y,S[2]=E;break;case 1:case 2:h=_(S[1]),g=[(p=_(S[2]))[0],h[1]],m=[h[0],p[1]],w=T(g),I=T(m),S[0]=w,S[3]=I}i.invalidated=!0}e.editData.hasMoved=!0;var O=(0,z.getEnabledElement)(r).renderingEngine;xr(O,a)})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return a.worldToCanvas(e)}));d.annotationUID=g;var E=e.getStyle("lineWidth",d,f),I=e.getStyle("lineDash",d,f),b=e.getStyle("color",d,f),C=a.getCamera(),_=C.viewPlaneNormal,T=C.viewUp;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&(e._throttledCalculateCachedStats(f,_,T,u,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,_,T,u,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var D=void 0;if(Se(g)){oe(f)||e.editData||null===w||(D=[y[w]]),D&&Ua(n,g,"0",D,{color:b});var S="".concat(g,"-rect");Ja(n,g,"0",y[0],y[3],{color:b,lineDash:I,lineWidth:E},S),i=!0;var O=Bl(a,s),x=e._getTextLines(h,s,O);if(x&&0!==x.length){if(!h.handles.textBox.hasMoved){var M=Ll(y);h.handles.textBox.worldPosition=a.canvasToWorld(M)}var R=a.worldToCanvas(h.handles.textBox.worldPosition),N=Za(n,g,"1",x,R,y,{},e.getLinkedTextBoxStyle(d,f)),P=N.x,k=N.y,A=N.width,L=N.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,k]),topRight:a.canvasToWorld([P+A,k]),bottomLeft:a.canvasToWorld([P,k+L]),bottomRight:a.canvasToWorld([P+A,k+L])}}}}return i})),J(kr(e),"_getRectangleImageCoordinates",(function(e){var t=za(e,2),n=t[0],r=t[1];return{left:Math.min(n[0],r[0]),top:Math.min(n[1],r[1]),width:Math.abs(n[0]-r[0]),height:Math.abs(n[1]-r[1])}})),J(kr(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,i=r.mean,a=r.max,l=r.stdDev,c=r.Modality,s=r.areaUnit;if(void 0!==i){var u=[],d=Vl(c,n);return u.push("Area: ".concat(o.toFixed(2)," ").concat(s,"²")),u.push("Mean: ".concat(i.toFixed(2)," ").concat(d)),u.push("Max: ".concat(a.toFixed(2)," ").concat(d)),u.push("Std Dev: ".concat(l.toFixed(2)," ").concat(d)),u}})),J(kr(e),"_calculateCachedStats",(function(t,n,r,o,i){for(var a=t.data,l=i.viewportId,c=i.renderingEngineId,s=a.handles.points[0],u=a.handles.points[3],d=a.cachedStats,v=Object.keys(d),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o);if(h){var p=h.dimensions,m=h.scalarData,w=h.imageData,y=h.metadata,E=h.hasPixelSpacing,I=Fl(w,s);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Fl(w,u);if(b[0]=Math.floor(b[0]),b[1]=Math.floor(b[1]),b[2]=Math.floor(b[2]),e._isInsideVolume(I,b,p)){e.isHandleOutsideImage=!1;for(var C=Math.min(I[0],b[0]),_=Math.max(I[0],b[0]),T=Math.min(I[1],b[1]),D=Math.max(I[1],b[1]),S=Math.min(I[2],b[2]),O=Math.max(I[2],b[2]),x=Ul(n,r,s,u),M=x.worldWidth*x.worldHeight,R=0,N=0,P=0,k=-1/0,A=p[0],L=p[0]*p[1],U=S;U<=O;U++)for(var V=T;V<=D;V++)for(var B=C;B<=_;B++){var F=m[U*L+V*A+B];F>k&&(k=F),R++,N+=F}N/=R;for(var j=S;j<=O;j++)for(var W=T;W<=D;W++)for(var G=C;G<=_;G++){var H=m[j*L+W*A+G]-N;P+=H*H}P/=R,P=Math.sqrt(P),d[g]={Modality:y.Modality,area:M,mean:N,stdDev:P,max:k,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,d[g]={Modality:y.Modality}}}t.invalidated=!1;var q=K.ANNOTATION_MODIFIED,Y={annotation:t,viewportId:l,renderingEngineId:c};return(0,z.triggerEvent)(z.eventTarget,q,Y),d})),J(kr(e),"_isInsideVolume",(function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=il(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o)}(Rl);J(jl,"toolName",void 0),jl.toolName="RectangleROI";var Wl=jl;var Gl=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s,u,d=l.getCamera(),v=d.viewPlaneNormal,f=d.viewUp,g=e.getTargetId(l);if(l instanceof z.StackViewport)s=g.split("imageId:")[1];else{u=g.split("volumeId:")[1];var h=z.cache.getVolume(u);s=z.utilities.getClosestImageId(h,i,v,f)}var p={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:wn(v),enabledElement:a,viewUp:wn(f),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:s,toolName:e.getToolName(),volumeId:u},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null},segmentationId:null}};Fe(o,p);var m=El(o,e.getToolName());return e.editData={annotation:p,viewportIdsToRender:m,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(c,m),p})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=t.renderingEngineId,c=a.element,s=Be(c,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return i;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return i;for(var u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<s.length;d++){var v=s[d],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return a.worldToCanvas(e)}));u.annotationUID=f;var w=e.getStyle("lineWidth",u,v),y=e.getStyle("lineDash",u,v),E=e.getStyle("color",u,v);if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var I=K.ANNOTATION_MODIFIED,b={annotation:v,viewportId:a.id,renderingEngineId:l};(0,z.triggerEvent)(z.eventTarget,I,b);var C=void 0;Se(f)&&(oe(v)||e.editData||null===p||(C=[m[p]]),C&&Ua(n,f,"0",C,{color:E}),Ja(n,f,"0",m[0],m[3],{color:E,lineDash:y,lineWidth:w}),i=!0)}return i})),e}return Z(o)}(Wl);J(Gl,"toolName",void 0),Gl.toolName="RectangleROIThreshold";var Hl=Gl;var ql=z.utilities.transformWorldToIndex,zl=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{configuration:{numSlicesToPropagate:10}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s,u,d,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof z.StackViewport)throw new Error("Stack Viewport Not implemented");if(d=e.getTargetId(l).split("volumeId:")[1],u=z.cache.getVolume(d),!(s=z.utilities.getClosestImageId(u,i,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=z.utilities.getSpacingInNormalDirection(u,f),m=e._getEndSliceIndex(u,i,p,f),w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:wn(f),enabledElement:a,viewUp:wn(g),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:s,toolName:e.getToolName(),volumeId:d,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[s]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(w,u),Fe(o,w);var y=El(o,e.getToolName());return e.editData={annotation:w,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(c,y),w})),J(kr(e),"renderAnnotation",(function(t,n){var r=!1,o=Be(t.viewport.element,e.getToolName());if(null==o||!o.length)return r;for(var i=t.viewport,a=i.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},c=0;c<o.length;c++){var s=o[c],u=s.annotationUID,d=s.data,v=d.startSlice,f=d.endSlice,g=d.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.worldToCanvas(e)}));l.annotationUID=u;var w=e.getStyle("lineWidth",l,s),y=e.getStyle("lineDash",l,s),E=e.getStyle("color",l,s);if(!(a<Math.min(v,f)||a>Math.max(v,f))){s.invalidated&&e._throttledCalculateCachedStats(s,t);var I=!1;if(a!==v&&a!==f||(I=!0),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(Se(u)){oe(s)||e.editData||null===p||!I||(b=[m[p]]),b&&Ua(n,u,"0",b,{color:E});var C=y;I||(C=2),Ja(n,u,"0",m[0],m[3],{color:E,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=il(e._calculateCachedStatsTool,100,{trailing:!0}),e}return Z(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,i=r.spacingInNormal,a=t.imageData,l=n.startSlice,c=n.endSlice,s=n.handles.points,u=ql(a,s[0]);if(u[2]!==l)throw new Error("Start slice does not match");var d=wa.vec3.fromValues(u[0],u[1],c),v=wa.vec3.create();a.indexToWorldVec3(u,v);var f=wa.vec3.create();a.indexToWorldVec3(d,f);for(var g=wa.vec3.distance(v,f),h=[],p=function(e){h.push(s.map((function(t){var n=wa.vec3.create();return wa.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=i)p(m);n.cachedStats.projectionPoints=h;for(var w=[],y=0,E=h;y<E.length;y++){var I=E[y],b=z.utilities.getClosestImageId(t,I[0],o,r.viewUp);w.push(b)}n.cachedStats.projectionPointsImageIds=w}},{key:"_calculateCachedStatsTool",value:function(e,t){var n=e.data,r=t.viewportId,o=t.renderingEngineId,i=t.viewport,a=n.cachedStats,l=this.getTargetId(i),c=z.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,c),e.invalidated=!1;var s=K.ANNOTATION_MODIFIED,u={annotation:e,viewportId:r,renderingEngineId:o};return(0,z.triggerEvent)(z.eventTarget,s,u),a}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,i=wa.vec3.create();wa.vec3.scaleAndAdd(i,t,r,o*n);for(var a,l=n/2,c=e.imageIds,s=0;s<c.length;s++){var u=c[s],d=z.metaData.get("imagePlaneModule",u).imagePositionPatient,v=wa.vec3.create();wa.vec3.sub(v,i,d);var f=wa.vec3.dot(v,r);Math.abs(f)<l&&(a=s)}return a}}]),o}(Wl);J(zl,"toolName",void 0),zl.toolName="RectangleROIStartEndThreshold";var Kl=zl,Yl=function(e,t){var n=e.findIndex((function(e){var t=za(e,2);return t[0]===t[1]}));if(-1===n)throw new Error("3D bounding boxes not supported in an oblique plane");return e[n][0]-=t,e[n][1]+=t,e},$l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[];if(e.forEach((function(e){var o,i,a=e.data,l=a.handles.points,c=t.imageData,s=t.dimensions,u=l;if(null!==(o=a.cachedStats)&&void 0!==o&&o.projectionPoints){var d,v=a.cachedStats.projectionPoints;u=(d=[]).concat.apply(d,wn(v))}var f=u.map((function(e){return z.utilities.transformWorldToIndex(c,e)})),g=sl(f,s);!n.numSlicesToProject||null!==(i=a.cachedStats)&&void 0!==i&&i.projectionPoints||(g=Yl(g,n.numSlicesToProject)),r.push(g)})),1===r.length)return r[0];var o=r.reduce((function(e,t){return{iMin:Math.min(e.iMin,t.iMin),jMin:Math.min(e.jMin,t.jMin),kMin:Math.min(e.kMin,t.kMin),iMax:Math.max(e.iMax,t.iMax),jMax:Math.max(e.jMax,t.jMax),kMax:Math.max(e.kMax,t.kMax)}}),{iMin:1/0,jMin:1/0,kMin:1/0,iMax:-1/0,jMax:-1/0,kMax:-1/0});return o};function Zl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Jl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jl(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ql=function(e,t,n,r){var o,i=e.map((function(e){return Ge(e)}));!function(e){var t,n=[Hl.toolName,Kl.toolName],r=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Zl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Zl(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(e);try{for(r.s();!(t=r.n()).done;){var o=t.value.metadata.toolName;if(!n.includes(o))throw new Error("rectangleROIThresholdVolumeByRange only supports RectangleROIThreshold and RectangleROIStartEndThreshold annotations")}}catch(e){r.e(e)}finally{r.f()}}(i);for(var a=0;a<n.length;a++)n[a].volume.scalarData.length!==t.scalarData.length&&0!==a||(o=$l(i,n[a].volume,r));return vl(t,n,Xl(Xl({},r),{},{boundsIJK:o}))},ec=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,i=t.spacing;if(!(z.utilities.isEqual(r,e[0].dimensions)&&z.utilities.isEqual(n,e[0].direction)&&z.utilities.isEqual(i,e[0].spacing)&&z.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,i=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(i[r]=t)}));var a={scalarData:i,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,c=z.volumeLoader.createLocalVolume(a,n,l);return c};function tc(e,t){if(e===$e.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive&&"number"==typeof e.outlineOpacity&&"number"==typeof e.outlineOpacityInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function nc(e){var t=e.type;if(t===$e.Labelmap)return Ye();throw new Error("Unknown representation type: ".concat(t))}function rc(e){return oc.apply(this,arguments)}function oc(){return(oc=$r(Jr().mark((function e(t){var n,r,o,i,a,l,c,s,u,d,v,f;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,i=t.segmentationId,a=(0,z.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=a.viewport)instanceof z.VolumeViewport){e.next=8;break}throw new Error("Segmentation only supports VolumeViewport");case 8:if(c=l.getDefaultActor(),s=c.uid,void 0===i&&(i="".concat(s,"-based-segmentation-").concat(null!==(u=null==o?void 0:o.volumeId)&&void 0!==u?u:z.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return d=(0,X._cloneDeep)(o),e.next=14,z.volumeLoader.createLocalVolume(d,i);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,z.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:i});case 19:return e.abrupt("return",i);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ic(e,t){return e===t}function ac(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}function lc(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}var cc=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onFlood,o=n.onBoundary,i=n.equals||ic,a=n.diagonals||!1,l=E(t),c=b(),s=[],u=[],d={},v={};for(s.push({currentArgs:t});s.length>0;)f(s.pop());return{flooded:u,boundaries:_()};function f(e){var t=e.currentArgs,n=e.previousArgs;g(t)||(h(t),p(t)?(m(t),y(t)):w(n))}function g(e){return!0===d[e]}function h(e){d[e]=!0}function p(e){var t=I(E,[e]);return I(i,[t,l])}function m(e){u.push(e),r&&r.apply(void 0,wn(e))}function w(e){v[e]=e,o&&o.apply(void 0,wn(e))}function y(e){for(var t=0;t<c.length;t+=1){for(var n=c[t],r=e.slice(0),o=0;o<e.length;o+=1)r[o]+=n[o];s.push({currentArgs:r,previousArgs:e})}}function E(t){return e.apply(void 0,wn(t))}function I(e,t){try{return e.apply(void 0,wn(t))}catch(e){return}}function b(){return C(t.length).filter((function(e){var t=ac(e);return 0!==t&&(1===t||a)}))}function C(e){for(var t=[],n=function(e){return e.split("").map((function(e){return parseInt(e,10)-1}))},r=0;r<Math.pow(3,e);r+=1){var o=lc(r.toString(3),"0",e);t.push(n(o))}return t}function _(){var e=[];for(var t in v)void 0!==v[t]&&e.unshift(v[t]);return e}};function sc(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.points,c=r.scalarData;dl(r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(c[t]=i)}),n),it(a)}(e,t)}function uc(e,t){sc(e,Object.assign({},t,{segmentIndex:0}))}function dc(e){var t=za(e,4),n=t[0],r=t[1],o=t[2],i=t[3];return[[o[0],r[1]],[i[0],n[1]]]}function vc(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,i=e.zRadius,a=za(t,3),l=a[0],c=a[1],s=a[2],u=za(n,3),d=u[0],v=u[1],f=u[2],g=0;return 0!==r&&(g+=(l-d)*(l-d)/(r*r)),0!==o&&(g+=(c-v)*(c-v)/(o*o)),0!==i&&(g+=(s-f)*(s-f)/(i*i)),g<=1}var fc=z.utilities.transformWorldToIndex;function gc(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.volume,o=t.imageVolume,i=t.points,a=t.segmentsLocked,l=t.segmentIndex,c=t.segmentationId,s=t.strategySpecificConfiguration,u=r.imageData,d=r.dimensions,v=r.scalarData,f=e.viewport,g=wa.vec3.fromValues(0,0,0);i.forEach((function(e){wa.vec3.add(g,g,e)})),wa.vec3.scale(g,g,1/i.length);var h=i.map((function(e){return f.worldToCanvas(e)})),p=dc(h),m=za(p,2),w=m[0],y=m[1],E=f.canvasToWorld(w),I=f.canvasToWorld(y),b=[fc(u,E),fc(u,I)],C=sl(b,d);if(C.every((function(e){var t=za(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var _={center:g,xRadius:Math.abs(E[0]-I[0])/2,yRadius:Math.abs(E[1]-I[1])/2,zRadius:Math.abs(E[2]-I[2])/2},T=new Set;cl(u,(function(e,t){return vc(_,e)}),n?function(e){var t=e.value,n=e.index,r=e.pointIJK;a.includes(t)||hc(n,o,s)&&(v[n]=l,T.add(r[2]))}:function(e){var t=e.value,n=e.index,r=e.pointIJK;a.includes(t)||(v[n]=l,T.add(r[2]))},C);var D=Array.from(T);it(c,D)}function hc(e,t,n){var r=n.THRESHOLD_INSIDE_CIRCLE,o=t.scalarData[e],i=r.threshold;return i[0]<=o&&o<=i[1]}function pc(e,t){gc(e,t,!1)}function mc(e,t){var n=t.volume,r=t.imageVolume;if(!z.utilities.isEqual(n.dimensions,r.dimensions)||!z.utilities.isEqual(n.direction,r.direction))throw new Error("Only source data the same dimensions/size/orientation as the segmentation currently supported.");gc(e,t,!0)}function wc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function yc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wc(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ec(e,t){pc(e,yc(yc({},t),{},{segmentIndex:0}))}function Ic(e){var t=ct().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function bc(e,t){ct().setActiveSegmentationRepresentation(e,t),rt(e,t)}function Cc(e,t){var n=st(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function _c(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=st(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),ot(e)}function Tc(e){var t=st(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function Dc(e,t){var n=st(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,ot(e))}function Sc(e){var t=st(e);if(t)return t.activeSegmentIndex}function Oc(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");z.utilities.isEqual(e[0],[0,0,0,0])||(console.warn("addColorLUT: [0, 0, 0, 0] color is not provided for the background color (segmentIndex =0), automatically adding it"),e.unshift([0,0,0,0])),Ot(e,t)}function xc(e,t,n){var r=Ct(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!St(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,rt(e,t)}function Mc(e,t,n){var r=Ct(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return St(r.colorLUTIndex)[n]}function Rc(e,t,n,r){for(var o=Mc(e,t,n),i=0;i<r.length;i++)o[i]=r[i];rt(e,t)}var Nc=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:pc,THRESHOLD_INSIDE_CIRCLE:mc,ERASE_INSIDE_CIRCLE:Ec,FILL_INSIDE_SPHERE:sc,ERASE_INSIDE_SPHERE:uc},strategySpecificConfiguration:{THRESHOLD_INSIDE_CIRCLE:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",brushSize:25}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_editData",void 0),J(kr(e),"_hoverData",void 0),J(kr(e),"onSetToolPassive",(function(){e.disableCursor()})),J(kr(e),"onSetToolEnabled",(function(){e.disableCursor()})),J(kr(e),"onSetToolDisabled",(function(){e.disableCursor()})),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail.element,r=(0,z.getEnabledElement)(n),o=r.viewport,i=r.renderingEngine;if(o instanceof z.StackViewport)throw new Error("Not implemented yet");var a=Ic(e.toolGroupId);if(!a)throw new Error("No active segmentation detected, create one before using the brush tool");var l=a.segmentationId,c=a.type,s=Tc(l),u=st(l).representationData[c].volumeId,d=z.cache.getVolume(u),v=o.getActors()[0].uid,f=z.cache.getVolume(v),g=[o.id];return e._editData={segmentation:d,imageVolume:f,segmentsLocked:s},e._activateDraw(n),Qi(n),t.preventDefault(),xr(i,g),!0})),J(kr(e),"mouseMoveCallback",(function(t){e.mode===yn.Active&&e.updateCursor(t)})),J(kr(e),"_mouseDragCallback",(function(t){var n=t.detail.element,r=(0,z.getEnabledElement)(n),o=r.renderingEngine,i=e._editData,a=i.imageVolume,l=i.segmentation,c=i.segmentsLocked;e.updateCursor(t);var s=e._hoverData,u=s.segmentIndex,d=s.segmentationId,v=s.segmentationRepresentationUID,f=s.brushCursor,g=s.viewportIdsToRender,h=f.data,p=f.metadata,m=p.viewPlaneNormal,w=p.viewUp;xr(o,g);var y={points:h.handles.points,volume:l,imageVolume:a,segmentIndex:u,segmentsLocked:c,viewPlaneNormal:m,toolGroupId:e.toolGroupId,segmentationId:d,segmentationRepresentationUID:v,viewUp:w,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(r,y)})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.imageVolume,i=r.segmentation,a=r.segmentsLocked,l=e._hoverData,c=l.segmentIndex,s=l.segmentationId,u=l.segmentationRepresentationUID,d=l.brushCursor,v=d.data,f=d.metadata,g=f.viewPlaneNormal,h=f.viewUp;e._deactivateDraw(n),Xi(n);var p=(0,z.getEnabledElement)(n),m=p.viewport;if(e._editData=null,e.updateCursor(t),m instanceof z.StackViewport)throw new Error("Not implemented yet");var w={points:v.handles.points,volume:i,imageVolume:o,segmentIndex:c,segmentsLocked:a,viewPlaneNormal:g,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:u,viewUp:h,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(p,w)})),J(kr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),e}return Z(o,[{key:"disableCursor",value:function(){this._hoverData=void 0}},{key:"updateCursor",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints.canvas,o=(0,z.getEnabledElement)(n),i=o.renderingEngine,a=o.viewport,l=a.getCamera(),c=l.viewPlaneNormal,s=l.viewUp,u=this.toolGroupId,d=Ic(u);if(d){var v=d.segmentationRepresentationUID,f=d.segmentationId,g=Sc(f),h=Mc(u,v,g),p=[a.id],m={metadata:{viewPlaneNormal:wn(c),viewUp:wn(s),FrameOfReferenceUID:a.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:h},data:{}};this._hoverData={brushCursor:m,centerCanvas:r,segmentIndex:g,segmentationId:f,segmentationRepresentationUID:v,segmentColor:h,viewportIdsToRender:p},this._calculateCursor(n,r),xr(i,p)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"_calculateCursor",value:function(e,t){var n=(0,z.getEnabledElement)(e).viewport.canvasToWorld,r=this.configuration.brushSize,o=[t[0],t[1]+r],i=[t[0],t[1]-r],a=[t[0]-r,t[1]],l=[t[0]+r,t[1]],c=this._hoverData.brushCursor.data;void 0===c.handles&&(c.handles={}),c.handles.points=[n(o),n(i),n(a),n(l)],c.invalidated=!1}},{key:"invalidateBrushCursor",value:function(){void 0!==this._hoverData&&(this._hoverData.brushCursor.data.invalidated=!0)}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor;if(!0===r.data.invalidated){var o=this._hoverData.centerCanvas,i=n.element;this._calculateCursor(i,o)}var a=r.metadata,l=a.brushCursorUID,c=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),s=c[0],u=c[1],d=[Math.floor((s[0]+u[0])/2),Math.floor((s[1]+u[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+u[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");n.getRenderingEngine()?Aa(t,l,"0",d,v,{color:f}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(Kr);J(Nc,"toolName",void 0),Nc.toolName="Brush";var Pc=Nc;function kc(e){var t=Pr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length)return Object.values(n).filter((function(e){return e instanceof Pc}))}}function Ac(e,t){var n=Pr(e);if(void 0!==n){kc(e).forEach((function(e){e.configuration.brushSize=t,e.invalidateBrushCursor()}));var r=n.getViewportsInfo(),o=Object.keys(r).map((function(e){return r[e]}));if(o.length){var i=o[0].renderingEngineId,a=n.getViewportIds(),l=(0,z.getRenderingEngine)(i);xr(l,a)}}}function Lc(e){var t=Pr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=kc(e)[0];if(r)return r.configuration.brushSize}}}function Uc(e,t){var n=Pr(e);if(void 0!==n){kc(e).forEach((function(e){e.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold=t}));var r=n.getViewportsInfo();if(r.length){var o=r[0].renderingEngineId,i=n.getViewportIds(),a=(0,z.getRenderingEngine)(o);xr(a,i)}}}function Vc(e){var t=Pr(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=kc(e)[0];if(r)return r.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold}}}var Bc=1e-6;function Fc(e,t,n){var r=za(n,2),o=r[0],i=r[1];if(Math.abs(t)<Bc)return e<0;var a=e/t;if(t>0){if(a>i)return 0;a>o&&(n[0]=a)}else{if(a<o)return 0;a<i&&(n[1]=a)}return 1}function jc(e,t,n,r,o){var i=za(e,2),a=i[0],l=i[1],c=za(t,2),s=c[0]-a,u=c[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(s)<Bc&&Math.abs(u)<Bc&&a>=n[0]&&a<=n[2]&&l>=n[1]&&l<=n[3])return 1;var d=[0,1];if(Fc(n[0]-a,s,d)&&Fc(a-n[2],-s,d)&&Fc(n[1]-l,u,d)&&Fc(l-n[3],-u,d)){var v=d[0],f=d[1];return f<1&&(o[0]=a+f*s,o[1]=l+f*u),v>0&&(r[0]+=v*s,r[1]+=v*u),1}return 0}function Wc(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function Gc(e,t,n,r){var o=za(e,2),i=o[0],a=o[1],l=za(t,2),c=l[0],s=l[1],u=za(n,2),d=u[0],v=u[1],f=za(r,2),g=f[0],h=f[1],p=s-a,m=i-c,w=c*a-i*s,y=p*d+m*v+w,E=p*g+m*h+w;if(0===y||0===E||Wc(y)!==Wc(E)){var I=h-v,b=d-g,C=g*v-d*h,_=I*i+b*a+C,T=I*c+b*s+C;if(0===_||0===T||Wc(_)!==Wc(T)){var D=p*b-I*m;return[(m*C-b*w)/D,(I*w-p*C)/D]}}}function Hc(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=r;a<e.length;a++){var l=e[o],c=e[a];if(zc(t,n,l,c))return[o,a];o=a}}function qc(e,t,n){var r,o,i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];i?(o=e.length-1,r=0):(o=0,r=1);for(var a=[],l=r;l<e.length;l++){var c=e[o],s=e[l];zc(t,n,c,s)&&a.push([o,l]),o=l}if(0!==a.length){var u=[];a.forEach((function(n){var r=[e[n[0]],e[n[1]]],o=[(r[0][0]+r[1][0])/2,(r[0][1]+r[1][1])/2];u.push(wa.vec2.distance(o,t))}));var d=Math.min.apply(Math,u),v=u.indexOf(d);return{segment:a[v],distance:d}}}function zc(e,t,n,r){var o=!1,i=[Kc(e,t,n),Kc(e,t,r),Kc(n,r,e),Kc(n,r,t)];return i[0]!==i[1]&&i[2]!==i[3]||((0===i[0]&&Yc(e,n,t)||0===i[1]&&Yc(e,r,t)||0===i[2]&&Yc(n,e,r)||0===i[3]&&Yc(n,t,r))&&(o=!0),o)}function Kc(e,t,n){var r=(t[1]-e[1])*(n[0]-t[0])-(t[0]-e[0])*(n[1]-t[1]);return 0===r?0:r>0?1:2}function Yc(e,t,n){return t[0]<=Math.max(e[0],n[0])&&t[0]>=Math.min(e[0],n[0])&&t[1]<=Math.max(e[1],n[1])&&t[1]>=Math.min(e[1],n[1])}var $c=.001,Zc=function(e,t){var n,r,o;if(e instanceof z.StackViewport){var i=e.getImageData();r=i.direction.slice(0,3),o=i.direction.slice(3,6),n=i.spacing}else{var a=e.getImageData(),l=a.direction,c=a.spacing,s=e.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=wa.vec3.create();wa.vec3.cross(h,d,u);var p,m=Math.abs(wa.vec3.dot(h,v)),w=Math.abs(wa.vec3.dot(h,f)),y=Math.abs(wa.vec3.dot(h,g));if(Math.abs(1-m)<$c)p=c[0],r=v;else if(Math.abs(1-w)<$c)p=c[1],r=f;else{if(!(Math.abs(1-y)<$c))throw new Error("No support yet for oblique plane planar contours");p=c[2],r=g}var E,I=Math.abs(wa.vec3.dot(u,v)),b=Math.abs(wa.vec3.dot(u,f)),C=Math.abs(wa.vec3.dot(u,g));if(Math.abs(1-I)<$c)E=c[0],o=v;else if(Math.abs(1-b)<$c)E=c[1],o=f;else{if(!(Math.abs(1-C)<$c))throw new Error("No support yet for oblique plane planar contours");E=c[2],o=g}n=[p,E]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},Jc=function(e,t,n){return wa.vec2.dist(e,t)<n},Xc=function(e,t,n,r){var o=r.xDir,i=r.yDir,a=r.spacing,l=(0,z.getEnabledElement)(e).viewport,c=l.canvasToWorld(t[t.length-1]),s=l.canvasToWorld(n),u=wa.vec3.create();wa.vec3.subtract(u,s,c);var d=Math.abs(wa.vec3.dot(u,o)),v=Math.abs(wa.vec3.dot(u,i)),f=Math.max(Math.floor(d/a[0]),Math.floor(v/a[0]));if(f>1){var g=t[t.length-1],h=wa.vec2.dist(g,n),p=wa.vec2.create();wa.vec2.subtract(p,n,g),wa.vec2.set(p,p[0]/h,p[1]/h);for(var m=h/f,w=1;w<=f;w++)t.push([g[0]+m*p[0]*w,g[1]+m*p[1]*w])}else t.push(n);return f},Qc=function(e,t,n,r){var o=[e[0]-t[0],e[1]-t[1]],i=[n[0]-t[0],n[1]-t[1]],a=o[0]*i[0]+o[1]*i[1];if(a<0)return!1;var l=Math.sqrt(i[0]*i[0]+i[1]*i[1]);if(0===l)return!1;var c=a/l,s=[i[0]/l,i[1]/l],u=[s[0]*c,s[1]*c],d=[t[0]+u[0],t[1]+u[1]];return!(wa.vec2.distance(e,d)>r||wa.vec2.distance(t,d)>wa.vec2.distance(t,n))};function es(e){for(var t=e.length,n=0,r=t-1,o=0;o<t;o++)n+=(e[r][0]+e[o][0])*(e[r][1]-e[o][1]),r=o;return Math.abs(n/2)}function ts(e,t){if(2!==(null==e?void 0:e.length)||2!==(null==t?void 0:t.length))throw Error("points should have 2 elements of [x, y]");var n=za(e,2),r=n[0],o=n[1],i=za(t,2),a=i[0],l=i[1];return Math.sqrt(Math.pow(r-a,2)+Math.pow(o-l,2))}var ns=c(807),rs=c.n(ns);function os(e,t,n,r){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,a=e.getCamera(),l=a.position,c=z.utilities.getTargetVolumeAndSpacingInNormalDir(e,a,n),s=c.spacingInNormalDirection,u=s*i,d=e.getBounds(),v=d[0],f=d[1],g=[0,0,0],h=[0,0,0];rs().subtract(t,l,g);for(var p=v;p<=f;p+=u){h=[p,0,0];var m=(p-l[0])/g[0];if(h[1]=m*g[1]+l[1],h[2]=m*g[2]+l[2],as(h,d)){var w=e.getIntensityFromWorld(h),y=r(w,h);y&&(o=y)}}return o}var is,as=function(e,t){var n=za(t,6),r=n[0],o=n[1],i=n[2],a=n[3],l=n[4],c=n[5];return e[0]>r&&e[0]<o&&e[1]>i&&e[1]<a&&e[2]>l&&e[2]<c},ls={filterAnnotationsWithinSlice:Cl,getWorldWidthAndHeightFromCorners:Ul,filterAnnotationsForDisplay:_l,getPointInLineOfSightWithCriteria:os};function cs(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",i=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],a=1e-4,l=0;l<3;l++)if(i[0]>a&&i[0]>i[1]&&i[0]>i[2])t+=n,i[0]=0;else if(i[1]>a&&i[1]>i[0]&&i[1]>i[2])t+=r,i[1]=0;else if(i[2]>a&&i[2]>i[0]&&i[2]>i[1])t+=o,i[2]=0;else if(i[0]>a&&i[1]>a&&i[0]===i[1])t+=n+r,i[0]=0,i[1]=0;else if(i[0]>a&&i[2]>a&&i[0]===i[2])t+=n+o,i[0]=0,i[2]=0;else{if(!(i[1]>a&&i[2]>a&&i[1]===i[2]))break;t+=r+o,i[1]=0,i[2]=0}return t}function ss(e){var t=e.replace("H","f");return(t=(t=(t=(t=(t=t.replace("F","h")).replace("R","l")).replace("L","r")).replace("A","p")).replace("P","a")).toUpperCase()}!function(e){e.CLIP_STOPPED="CORNERSTONE_CINE_TOOL_STOPPED",e.CLIP_STARTED="CORNERSTONE_CINE_TOOL_STARTED"}(is||(is={}));var us=is,ds={};function vs(e,t){var n=(0,z.getEnabledElement)(e).viewportId;ds[n]=t}function fs(e){var t=(0,z.getEnabledElement)(e).viewportId;return ds[t]}var gs=z.utilities.triggerEvent;function hs(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,z.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var i=o.viewport;if(!(i instanceof z.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var a,l,c,s,u=i.getTargetImageIdIndex(),d=i.getImageIds(),v=fs(e);if(v?ms(v):(v={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:null!==(a=t.frameTimeVector)&&void 0!==a?a:void 0,speed:null!==(l=t.frameTimeVectorSpeedMultiplier)&&void 0!==l?l:1,reverse:null!==(c=t.reverse)&&void 0!==c&&c,loop:null===(s=t.loop)||void 0===s||s},vs(e,v)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(v.framesPerSecond=Number(t.framesPerSecond),v.reverse=v.framesPerSecond<0,v.ignoreFrameTimeVector=!0),!0!==v.ignoreFrameTimeVector&&v.frameTimeVector&&v.frameTimeVector.length===d.length){var f=function(e,t){var n,r,o,i=0,a=e.length,l=[],c=!1;for(("number"!=typeof t||t<=0)&&(t=1),n=1;n<a;n++)o=Number(e[n])/t|0,l.push(o),1===n?r=o:o!==r&&(c=!0),i+=o;return l.length>0&&(o=c?i/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:c}}(v.frameTimeVector,v.speed),g=f.timeouts,h=f.isTimeVarying;n=g,r=h}var p=function(){var t={targetImageIdIndex:i.getTargetImageIdIndex(),imageIds:i.getImageIds()},n=t.targetImageIdIndex,r=t.imageIds.length;if(v.reverse?n--:n++,v.loop||!(n<0||n>=r)){if(n>=r&&(n=0),n<0&&(n=r-1),n!==t.targetImageIdIndex){var o=n-t.targetImageIdIndex;i.scroll(o,!0,!0)}}else{ms(v);var a={element:e};gs(e,us.CLIP_STOPPED,a)}};n&&n.length>0&&r?(v.usingFrameTimeVector=!0,v.intervalId=window.setTimeout((function e(){v.intervalId=window.setTimeout(e,n[u]),p()}),0)):(v.usingFrameTimeVector=!1,v.intervalId=window.setInterval(p,1e3/Math.abs(v.framesPerSecond)));var m={element:e};gs(e,us.CLIP_STARTED,m)}function ps(e){var t=fs((0,z.getEnabledElement)(e).viewport.element);t&&ms(t)}function ms(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function ws(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),o=e[r],i=e[r+1],a=r>0?e[r-1]:2*o-i,l=r<t-1?e[r+2]:2*i-o;return function(e,t,n,r,o){var i=e*e,a=i*e;return((1-3*e+3*i-a)*t+(4-6*i+3*a)*n+(1+3*e+3*i-3*a)*r+a*o)/6}((n-r/t)*t,a,o,i,l)}}function ys(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function Es(e){if(!(o=e.length))return[];for(var t=-1,n=function(e,t){let n;if(void 0===t)for(const t of e)null!=t&&(n>t||void 0===n&&t>=t)&&(n=t);else{let r=-1;for(let o of e)null!=(o=t(o,++r,e))&&(n>o||void 0===n&&o>=o)&&(n=o)}return n}(e,Is),r=new Array(n);++t<n;)for(var o,i=-1,a=r[t]=new Array(o);++i<o;)a[i]=e[i][t];return r}function Is(e){return e.length}function bs(){return Es(arguments)}function Cs(e,t,n,r){var o,i,a=n-t+1,l=null!==(o=Math.floor(r/100*a))&&void 0!==o?o:1,c=null!==(i=Math.floor(a/l))&&void 0!==i?i:1;if(isNaN(a)||!a||!c)return e;if(a/c<2)return e;var s=Math.max(0,t),u=Math.min(e.length-1,n),d=e.slice(0,s),v=e.slice(u+1,e.length),f=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n,r=t[t.length-1]-t[0]+1,o=ws(t.map((function(t){return e[t][0]}))),i=ws(t.map((function(t){return e[t][1]})));if(3===(null===(n=e[0])||void 0===n?void 0:n.length)){var a=ws(t.map((function(t){return e[t][2]})));return bs(ys(o,r),ys(i,r),ys(a,r))}return bs(ys(o,r),ys(i,r))}(e,function(e,t){for(var n=[],r=za(t,2),o=r[0],i=r[1],a=i-o+1,l=Math.floor(a/e),c=0,s=Math.round((a-1)/(l-1)*c)+o;s<=i;)n.push(s),c++,s=Math.round((a-1)/(l-1)*c)+o;return n}(c,[s,u]));return[].concat(wn(d),wn(f),wn(v))}function _s(e){var t,n;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.interpolateOnAdd)||!0===(null==e||null===(n=e.interpolation)||void 0===n?void 0:n.interpolateOnEdit)}function Ts(e,t,n){return(e+t+n)%t}function Ds(e,t,n,r){var o=za(e,3),i=o[1],a=o[2],l=za(t,3),c=l[1],s=l[2],u=a.length,d=s.length,v=e[0],f=t[0];if(!(a[v]&&s[f]&&a[i]&&s[c]))return[void 0,void 0];for(;v!==i&&f!==c;){if(n(s[f],a[v]))return[v,f];v=Ts(v,u,r),f=Ts(f,d,r)}return[void 0,void 0]}function Ss(e,t,n){var r=e.interpolation,o=t;if(r){var i=r.knotsRatioPercentageOnAdd,a=r.knotsRatioPercentageOnEdit,l=r.interpolateOnAdd,c=void 0!==l&&l,s=r.interpolateOnEdit,u=n?a:i;if(n?void 0!==s&&s:c){var d=za(n?function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++)for(var r=0;r<t.length;r++)if(0===ts(e[n],t[r]))return[n,r]}(e,t)||[],r=za(n,2),o=r[0],i=r[1],a=function(e,t){return!1===function(e,t){return ts(e,t)<.001}(e,t)},l=za(Ds([Ts(o,e.length,1),o,e],[Ts(i,t.length,1),i,t],a,1),2),c=l[0],s=l[1];return[c,za(Ds([Ts(c,e.length,-1),c,e],[Ts(s,t.length,-1),s,t],a,-1),1)[0]]}(t,n):[0,t.length-1],2),v=d[0],f=d[1];return t[v]&&t[f]?Cs(t,v,f,u):t}}return o}function Os(e,t){var n=e[0],r=e[e.length-1],o=wa.vec2.create();wa.vec2.set(o,r[0]-n[0],r[1]-n[1]),wa.vec2.normalize(o,o);var i=wa.vec2.create(),a=wa.vec2.create();wa.vec2.set(i,-o[1],o[0]),wa.vec2.set(a,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],c={dist:0,index:null},s=0;s<e.length;s++){var u=e[s],d=wa.vec2.dist(u,l);d>c.dist&&(c.dist=d,c.index=s)}return[e[c.index],l].map(t.canvasToWorld)}var xs=Xc,Ms=Jc,Rs=Hc,Ns=Zc;function Ps(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=Ns(l,this.configuration.subPixelResolution),s=c.spacing,u=c.xDir,d=c.yDir;this.drawData={canvasPoints:[a],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:s,xDir:u,yDir:d},bn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),Qi(i)}function ks(e){bn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),Xi(e)}function As(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,u=s.viewportIdsToRender,d=s.xDir,v=s.yDir,f=s.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=c.canvasToWorld(m),y=wa.vec3.create();wa.vec3.subtract(y,o,w);var E=Math.abs(wa.vec3.dot(y,d)),I=Math.abs(wa.vec3.dot(y,v));if(!(E<=f[0]&&I<=f[1])){var b=this.findCrossingIndexDuringCreate(e);if(void 0!==b)this.applyCreateOnCross(e,b);else{var C=xs(r,p,i,this.commonData);this.drawData.polylineIndex=h+C}xr(l,u)}}function Ls(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],i=e.detail.element;t&&!Ms(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(i):this.completeDrawClosedContour(i)}function Us(e){this.removeCrossedLinesOnCompleteDraw();var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e),a=i.viewport,l=i.renderingEngine;xs(e,t,t[0],this.commonData),t.pop();var c=(_s(this.configuration)?Ss(this.configuration,t):t).map((function(e){return a.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,xr(l,o),this.deactivateDraw(e),!0}function Vs(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=Rs(r,n[0],n[1],!1);if(o){var i=o[1];this.drawData.canvasPoints=e.splice(0,i)}}function Bs(e){var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e),a=i.viewport,l=i.renderingEngine,c=(_s(this.configuration)?Ss(this.configuration,t):t).map((function(e){return a.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!0,r.data.handles.points=[c[0],c[c.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=Os(t,a)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,xr(l,o),this.deactivateDraw(e),!0}function Fs(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.drawData.canvasPoints.slice(0,-1),l=Rs(a,o,i,!1);if(void 0!==l)return l[0]}function js(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender;xs(n,r,r[t],this.commonData),r.pop();for(var l=0;l<t;l++)r.shift();this.completeDrawClosedContour(n)&&this.activateClosedContourEdit(e,i,a)}function Ws(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!Ms(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Gs(e,t){if(function(e,t){var n=Math.max(3*t,3);return e.length<n}(t,this.configuration.subPixelResolution)){var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,i=(0,z.getEnabledElement)(e).renderingEngine;return We(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,xr(i,o),this.deactivateDraw(e),!0}return!1}var Hs=function(e){e.activateDraw=Ps.bind(e),e.deactivateDraw=ks.bind(e),e.applyCreateOnCross=js.bind(e),e.findCrossingIndexDuringCreate=Fs.bind(e),e.completeDrawOpenContour=Bs.bind(e),e.removeCrossedLinesOnCompleteDraw=Vs.bind(e),e.mouseDragDrawCallback=As.bind(e),e.mouseUpDrawCallback=Ls.bind(e),e.completeDrawClosedContour=Us.bind(e),e.cancelDrawing=Ws.bind(e),e.haltDrawing=Gs.bind(e)},qs=Xc,zs=Hc;function Ks(e,t){var n=e.detail,r=n.element,o=n.currentPoints,i=n.lastPoints,a=o.canvas,l=i.canvas,c=this.editData,s=c.editCanvasPoints,u=c.prevCanvasPoints,d=zs(u,a,l,t);if(d)this.editData.startCrossingIndex=d[0],this.removePointsUpUntilFirstCrossing(t);else if(u.length>=2)if(s.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=s[0],f=[],g=0;g<u.length;g++){var h=u[g],p=wa.vec2.distance(h,v);f.push({distance:p,index:g})}f.sort((function(e,t){return e.distance-t.distance}));var m=[f[0],f[1]],w=Math.min(m[0].index,m[1].index);this.editData.startCrossingIndex=w}else{var y=wa.vec2.create();wa.vec2.subtract(y,s[1],s[0]),wa.vec2.normalize(y,y);var E=[s[0][0]-6*y[0],s[0][1]-6*y[1]],I=zs(u,E,s[0],t);if(I){var b=[E];qs(r,b,s[0],this.commonData),s.unshift.apply(s,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=s.length-1,this.editData.startCrossingIndex=I[0]}}}function Ys(e){for(var t=this.editData,n=t.editCanvasPoints,r=t.prevCanvasPoints,o=0,i=0;i<n.length-1;i++){var a=[n[i],n[i+1]];if(o++,zs(r,a[0],a[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function $s(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,i=r.canvas,a=o.canvas,l=this.editData.prevCanvasPoints;return!!zs(l,i,a,t)}function Zs(e){for(var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=r.length-1;o>0;o--){var i=[r[o],r[o-1]],a=!!zs(n,i[0],i[1],e);if(r.pop(),a)break}}function Js(){var e=this.editData,t=e.editCanvasPoints,n=e.prevCanvasPoints;if(void 0!==e.startCrossingIndex){for(var r=t[t.length-1],o=[],i=0;i<n.length;i++){var a=n[i],l=wa.vec2.distance(a,r);o.push({distance:l,index:i})}o.sort((function(e,t){return e.distance-t.distance}));for(var c=t.slice(0,-1),s=0;s<o.length;s++){var u=o[s].index,d=n[u],v=t[t.length-1];if(!zs(c,d,v,!1))return u}return-1}}function Xs(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.editData.editCanvasPoints,l=a.slice(0,-2),c=zs(l,o,i,!1);if(c)for(var s=c[0],u=a.length-s,d=0;d<u;d++)a.pop()}var Qs=function(e){e.checkForFirstCrossing=Ks.bind(e),e.removePointsUpUntilFirstCrossing=Ys.bind(e),e.checkForSecondCrossing=$s.bind(e),e.findSnapIndex=Js.bind(e),e.removePointsAfterSecondCrossing=Zs.bind(e),e.checkAndRemoveCrossesOnEditLine=Xs.bind(e)},eu=Zc,tu=Xc,nu=es;function ru(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=t.data.polyline.map(l.worldToCanvas),s=eu(l,this.configuration.subPixelResolution),u=s.spacing,d=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:u,xDir:d,yDir:v},bn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpClosedContourEditCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),Qi(i)}function ou(e){bn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),Xi(e)}function iu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,u=s.viewportIdsToRender,d=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=c.canvasToWorld(w),E=wa.vec3.create();wa.vec3.subtract(E,o,y);var I=Math.abs(wa.vec3.dot(E,d)),b=Math.abs(wa.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+tu(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!0),this.editData.snapIndex=this.findSnapIndex(),-1!==this.editData.snapIndex?(this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(e),void 0!==m&&this.checkForSecondCrossing(e,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(e)),xr(l,u)):this.finishEditAndStartNewEdit(e)}}function au(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,u=c.editCanvasPoints,d=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,n);var v=u.pop();this.editData={prevCanvasPoints:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},xr(o,l)}function lu(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,c=e.detail.element,s=wn(r);tu(c,s,n[i],this.commonData),s.length>r.length&&s.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var u=wa.vec2.distance(n[a],s[0]),d=wa.vec2.distance(n[a],s[s.length-1]),v=wa.vec2.distance(n[l],s[0]),f=wa.vec2.distance(n[l],s[s.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}var m=u+f,w=d+v;if(m<w)for(var y=0;y<s.length;y++){var E=s[y];g.push([E[0],E[1]])}else for(var I=s.length-1;I>=0;I--){var b=s[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var _=n[C];g.push([_[0],_[1]])}for(var T=[],D=a;D<l;D++){var S=n[D];T.push([S[0],S[1]])}if((m=v+d)<(w=f+u))for(var O=0;O<s.length;O++){var x=s[O];T.push([x[0],x[1]])}else for(var M=s.length-1;M>=0;M--){var R=s[M];T.push([R[0],R[1]])}return nu(g)>nu(T)?g:T}}function cu(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function su(e){var t=(0,z.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var u=(_s(this.configuration)?Ss(this.configuration,c,s):c).map((function(e){return n.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!1,this.triggerAnnotationModified(i,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,xr(r,a),this.deactivateClosedContourEdit(e)}function uu(e){this.completeClosedContourEdit(e)}var du=function(e){e.activateClosedContourEdit=ru.bind(e),e.deactivateClosedContourEdit=ou.bind(e),e.mouseDragClosedContourEditCallback=iu.bind(e),e.mouseUpClosedContourEditCallback=cu.bind(e),e.finishEditAndStartNewEdit=au.bind(e),e.fuseEditPointsWithClosedContour=lu.bind(e),e.cancelClosedContourEdit=uu.bind(e),e.completeClosedContourEdit=su.bind(e)},vu=Xc,fu=Zc;function gu(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,i=r.element,a=o.canvas,l=(0,z.getEnabledElement)(i).viewport,c=t.data.polyline.map(l.worldToCanvas),s=fu(l,this.configuration.subPixelResolution),u=s.spacing,d=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[a],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:u,xDir:d,yDir:v},bn.isInteractingWithTool=!0,i.addEventListener(K.MOUSE_UP,this.mouseUpOpenContourEditCallback),i.addEventListener(K.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),i.addEventListener(K.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),Qi(i)}function hu(e){bn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(K.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(K.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),Xi(e)}function pu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=n.canvas,a=(0,z.getEnabledElement)(r),l=a.renderingEngine,c=a.viewport,s=this.commonData,u=s.viewportIdsToRender,d=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=c.canvasToWorld(w),E=wa.vec3.create();wa.vec3.subtract(E,o,y);var I=Math.abs(wa.vec3.dot(E,d)),b=Math.abs(wa.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+vu(r,p,i,this.commonData);this.editData.editIndex=C,void 0===m&&p.length>1&&this.checkForFirstCrossing(e,!1),this.editData.snapIndex=this.findSnapIndex(),this.editData.fusedCanvasPoints=this.fuseEditPointsWithOpenContour(e),void 0!==m&&this.checkForSecondCrossing(e,!1)?(this.removePointsAfterSecondCrossing(!1),this.finishEditOpenOnSecondCrossing(e)):this.checkIfShouldOverwriteAnEnd(e)&&this.openContourEditOverwriteEnd(e),xr(l,u)}}function mu(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.fuseEditPointsForOpenContourEndEdit().map((function(e){return r.canvasToWorld(e)}));i.data.polyline=l,i.data.isOpenContour=!0,i.data.handles.points=[l[0],l[l.length-1]],i.data.handles.activeHandleIndex=1,this.triggerAnnotationModified(i,n),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(t),this.activateOpenContourEndEdit(e,i,a)}function wu(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,i=r.canvas,a=this.editData,l=a.snapIndex,c=a.prevCanvasPoints;if(void 0===a.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==c.length-1)return!1;var s=o,u=i,d=c[l],v=wa.vec2.create(),f=wa.vec2.create();wa.vec2.set(v,s[0]-u[0],s[1]-u[1]),wa.vec2.set(f,s[0]-d[0],s[1]-d[1]);var g=wa.vec2.dot(v,f),h=Math.sqrt(v[0]*v[0]+v[1]*v[1]),p=Math.sqrt(f[0]*f[0]+f[1]*f[1]);return Math.acos(g/(h*p))<Math.PI/2}function yu(){var e=this.editData,t=e.snapIndex,n=e.prevCanvasPoints,r=e.editCanvasPoints,o=e.startCrossingIndex,i=[];if(0===t)for(var a=n.length-1;a>=o;a--){var l=n[a];i.push([l[0],l[1]])}else for(var c=0;c<o;c++){var s=n[c];i.push([s[0],s[1]])}if(wa.vec2.distance(n[o],r[0])<wa.vec2.distance(n[o],r[r.length-1]))for(var u=0;u<r.length;u++){var d=r[u];i.push([d[0],d[1]])}else for(var v=r.length-1;v>=0;v--){var f=r[v];i.push([f[0],f[1]])}return i}function Eu(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,i=t.snapIndex;if(void 0!==o&&void 0!==i){var a,l,c=e.detail.element,s=wn(r);vu(c,s,n[i],this.commonData),s.length>r.length&&s.pop(),o>i?(a=i,l=o):(a=o,l=i);for(var u=wa.vec2.distance(n[a],s[0]),d=wa.vec2.distance(n[a],s[s.length-1]),v=wa.vec2.distance(n[l],s[0]),f=wa.vec2.distance(n[l],s[s.length-1]),g=[],h=0;h<a;h++){var p=n[h];g.push([p[0],p[1]])}if(u+f<d+v)for(var m=0;m<s.length;m++){var w=s[m];g.push([w[0],w[1]])}else for(var y=s.length-1;y>=0;y--){var E=s[y];g.push([E[0],E[1]])}for(var I=l;I<n.length;I++){var b=n[I];g.push([b[0],b[1]])}return g}}function Iu(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,i=this.commonData,a=i.annotation,l=i.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,u=c.editCanvasPoints,d=s.map((function(e){return r.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!0,a.data.handles.points=[d[0],d[d.length-1]],this.triggerAnnotationModified(a,n);var v=u.pop();this.editData={prevCanvasPoints:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},xr(o,l)}function bu(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function Cu(e){var t=(0,z.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,i=o.annotation,a=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var u=(_s(this.configuration)?Ss(this.configuration,c,s):c).map((function(e){return n.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!0,i.data.handles.points=[u[0],u[u.length-1]],i.data.isOpenUShapeContour&&(i.data.openUShapeContourVectorToPeak=Os(c,n)),this.triggerAnnotationModified(i,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,xr(r,a),this.deactivateOpenContourEdit(e)}function _u(e){this.completeOpenContourEdit(e)}var Tu=function(e){e.activateOpenContourEdit=gu.bind(e),e.deactivateOpenContourEdit=hu.bind(e),e.mouseDragOpenContourEditCallback=pu.bind(e),e.mouseUpOpenContourEditCallback=bu.bind(e),e.fuseEditPointsWithOpenContour=Eu.bind(e),e.finishEditOpenOnSecondCrossing=Iu.bind(e),e.checkIfShouldOverwriteAnEnd=wu.bind(e),e.fuseEditPointsForOpenContourEndEdit=yu.bind(e),e.openContourEditOverwriteEnd=mu.bind(e),e.cancelOpenContourEdit=_u.bind(e),e.completeOpenContourEdit=Cu.bind(e)},Du=Zc;function Su(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,z.getEnabledElement)(r).viewport,i=Du(o,this.configuration.subPixelResolution),a=i.spacing,l=i.xDir,c=i.yDir,s=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&s.reverse(),this.drawData={canvasPoints:s,polylineIndex:s.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:a,xDir:l,yDir:c},bn.isInteractingWithTool=!0,r.addEventListener(K.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(K.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(K.MOUSE_CLICK,this.mouseUpDrawCallback),Qi(r)}var Ou=function(e){e.activateOpenContourEndEdit=Su.bind(e)},xu=Jc;function Mu(e,t){var n={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id,annotationUID:t.annotationUID},r=this.getStyle("lineWidth",n,t),o=this.getStyle("lineDash",n,t),i=this.getStyle("color",n,t);return{color:void 0===i?void 0:i,width:void 0===r?void 0:r,lineDash:void 0===o?void 0:o,connectLastToFirst:!t.data.isOpenContour}}function Ru(e,t,n){var r;null!=e&&null!==(r=e.viewport)&&void 0!==r&&r.getImageData()&&(n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return Os(t.data.polyline.map(n.worldToCanvas),n)}(e,t))}(e,n),this.renderOpenUShapedContour(e,t,n)):this.renderOpenContour(e,t,n):this.renderClosedContour(e,t,n))}function Nu(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));Fa(t,n.annotationUID,"1",i,o)}function Pu(e,t,n){var r,o=e.viewport,i=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));Fa(t,n.annotationUID,"1",a,i);var l=n.data.handles.activeHandleIndex;if(!0===(null===(r=this.configuration.alwaysRenderOpenContourHandles)||void 0===r?void 0:r.enabled)){var c=this.configuration.alwaysRenderOpenContourHandles.radius,s=[a[0],a[a.length-1]];0===l?s.shift():1===l&&s.pop(),Ua(t,n.annotationUID,"0",s,{color:i.color,handleRadius:c})}if(null!==l){var u=a[0===l?0:a.length-1];Ua(t,n.annotationUID,"1",[u],{color:i.color})}}function ku(e,t,n){var r=e.viewport,o=n.data,i=o.polyline,a=o.openUShapeContourVectorToPeak;if(this.renderOpenContour(e,t,n),a){var l=r.worldToCanvas(i[0]),c=r.worldToCanvas(i[i.length-1]),s=[r.worldToCanvas(a[0]),r.worldToCanvas(a[1])],u=this._getRenderingOptions(e,n);Fa(t,n.annotationUID,"first-to-last",[l,c],{color:u.color,width:u.width,connectLastToFirst:!1,lineDash:"2,2"}),Fa(t,n.annotationUID,"midpoint-to-open-contour",[s[0],s[1]],{color:u.color,width:u.width,connectLastToFirst:!1,lineDash:"2,2"})}}function Au(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,i=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,Fa(t,n.annotationUID,"1",i,r),o){var a=i[0],l=i[i.length-1];xu(a,l,this.configuration.closeContourProximity)?Fa(t,n.annotationUID,"2",[l,a],r):Ua(t,n.annotationUID,"0",[a],{color:r.color,handleRadius:2})}}function Lu(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Fa(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function Uu(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Fa(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var Vu=function(e){e.renderContour=Ru.bind(e),e.renderClosedContour=Nu.bind(e),e.renderOpenContour=Pu.bind(e),e.renderOpenUShapedContour=ku.bind(e),e.renderContourBeingDrawn=Au.bind(e),e.renderClosedContourBeingEdited=Lu.bind(e),e.renderOpenContourBeingEdited=Uu.bind(e),e._getRenderingOptions=Mu.bind(e)};function Bu(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Fu=Qc,ju=1-z.CONSTANTS.EPSILON,Wu=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,subPixelResolution:4,interpolation:{interpolateOnAdd:!1,interpolateOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40}}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"commonData",void 0),J(kr(e),"isDrawing",!1),J(kr(e),"isEditingClosed",!1),J(kr(e),"isEditingOpen",!1),J(kr(e),"activateDraw",void 0),J(kr(e),"activateClosedContourEdit",void 0),J(kr(e),"activateOpenContourEdit",void 0),J(kr(e),"activateOpenContourEndEdit",void 0),J(kr(e),"cancelDrawing",void 0),J(kr(e),"cancelClosedContourEdit",void 0),J(kr(e),"cancelOpenContourEdit",void 0),J(kr(e),"renderContour",void 0),J(kr(e),"renderContourBeingDrawn",void 0),J(kr(e),"renderClosedContourBeingEdited",void 0),J(kr(e),"renderOpenContourBeingEdited",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine,s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f=El(o,e.getToolName()),g={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v,toolName:e.getToolName()},data:{handles:{points:[],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},polyline:[wn(i)],label:""}};return Fe(o,g),e.activateDraw(t,g,f),t.preventDefault(),xr(c,f),g})),J(kr(e),"handleSelectedCallback",(function(t,n,r){var o=El(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,o)})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=El(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,o):e.activateClosedContourEdit(t,n,o)})),J(kr(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,z.getEnabledElement)(e).viewport,i=t.data.polyline,a=o.worldToCanvas(i[0]),l=1;l<i.length;l++){var c=a,s=o.worldToCanvas(i[l]);if(!0===Fu(n,c,s,r))return!0;a=s}if(t.data.isOpenContour)return!1;var u=o.worldToCanvas(i[0]),d=o.worldToCanvas(i[i.length-1]);return!0===Fu(n,u,d,r)})),J(kr(e),"cancel",(function(t){var n=e.isDrawing,r=e.isEditingOpen,o=e.isEditingClosed;n?e.cancelDrawing(t):r?e.cancelOpenContourEdit(t):o&&e.cancelClosedContourEdit(t)})),J(kr(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=K.ANNOTATION_MODIFIED,i={annotation:e,viewportId:n,renderingEngineId:r};(0,z.triggerEvent)(z.eventTarget,o,i)})),J(kr(e),"triggerAnnotationCompleted",(function(e){var t=K.ANNOTATION_COMPLETED,n={annotation:e};(0,z.triggerEvent)(z.eventTarget,t,n)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport.element,l=Be(a,e.getToolName());if(null===(r=l)||void 0===r||!r.length)return i;if(null===(o=l=e.filterInteractableAnnotationsForElement(a,l))||void 0===o||!o.length)return i;var c=e.isDrawing,s=e.isEditingOpen,u=e.isEditingClosed;if(!(c||s||u))return l.forEach((function(r){return e.renderContour(t,n,r)})),i;var d=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===d)if(c)e.renderContourBeingDrawn(t,n,r);else if(u)e.renderClosedContourBeingEdited(t,n,r);else{if(!s)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),Hs(kr(e)),Qs(kr(e)),du(kr(e)),Tu(kr(e)),Ou(kr(e)),Vu(kr(e)),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,z.getEnabledElement)(e).viewport;if(r instanceof z.StackViewport)n=_l(r,t);else{if(!(r instanceof z.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),i=z.utilities.getTargetVolumeAndSpacingInNormalDir(r,o).spacingInNormalDirection;n=this.filterAnnotationsWithinSlice(t,o,i)}return n}}},{key:"filterAnnotationsWithinSlice",value:function(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(wa.vec3.dot(r,t))>ju;return t&&n}));if(!o.length)return[];var i,a=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Bu(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Bu(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){l=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(l)throw i}}}}(o);try{for(s.s();!(i=s.n()).done;){var u=i.value,d=u.data.polyline[0];if(u.isVisible){var v=wa.vec3.create();wa.vec3.sub(v,l,d);var f=wa.vec3.dot(v,r);Math.abs(f)<a&&c.push(u)}}}catch(e){s.e(e)}finally{s.f()}return c}}]),o}(Rl);J(Wu,"toolName",void 0),Wu.toolName="PlanarFreehandROI";var Gu=Wu;function Hu(e,t,n){if(function(e,t,n){var r;if(null==t||null===(r=t.data)||void 0===r||!r.polyline||n<=0)return!0;if(!e.viewport)return!0;var o=e.renderingEngineId,i=e.viewportId,a=e.FrameOfReferenceUID,l=On(i,o);if(t.metadata.FrameOfReferenceUID!==a)return!0;if(!l)return!0;var c=l.getToolInstance(t.metadata.toolName);return!(c instanceof Gu)||c.isDrawing||c.isEditingOpen||c.isEditingClosed}(e,t,n))return!1;var r=e.viewport,o=t.data.polyline.map(r.worldToCanvas),i=Cs(o,0,o.length,n);return i!==o&&(t.data.polyline=i.map(r.canvasToWorld),!0)}var qu={interpolateAnnotation:Hu},zu={};function Ku(e){var t=(0,z.getEnabledElement)(e).viewportId;return zu[t]}var Yu,$u=z.Enums.RequestType.Prefetch,Zu={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Ju(e,t){e=Math.round(e)||0;var n=[],r=(t=Math.round(t)||0)-e+1;if(r<=0)return n;for(;r--;)n[r]=t--;return n}function Xu(e){var t=(0,z.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof z.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function Qu(e){var t=Ku(e);if(t){var n=t||{},r=Xu(e);if(r&&r.imageIds&&0!==r.imageIds.length){if(n.indicesToRequest&&n.indicesToRequest.length||(n.enabled=!1),!1!==n.enabled&&(t.indicesToRequest.sort((function(e,t){return e-t})),n.indicesToRequest.slice().forEach((function(e){var t=r.imageIds[e];t&&z.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){Zu.preserveExistingPool||z.imageLoadPoolManager.clearRequestStack($u);for(var o,i,a,l,c,s,u=(o=n.indicesToRequest,i=r.currentImageIdIndex,a=0,l=o.length-1,o.forEach((function(e,t){e<i?a=Math.max(t,a):e>i&&(l=Math.min(t,l))})),{low:a,high:l}),d=u.low,v=u.high,f=[];d>=0||v<n.indicesToRequest.length;){var g=r.currentImageIdIndex,h=!(g-n.indicesToRequest[d]>Zu.maxImagesToPrefetch)&&d>=0,p=!(n.indicesToRequest[v]-g>Zu.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(s=n.indicesToRequest[d--],c=r.imageIds[s],f.push(c)),p&&(s=n.indicesToRequest[v++],c=r.imageIds[s],f.push(c))}var m=function(e,t){return z.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{enabled:!0},requestType:$u};z.imageLoadPoolManager.addRequest(m.bind(null,e,t),$u,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function ed(e){return function(t){var n,r=t.detail;try{n=Xu(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var i=Ku(e);i&&i.data&&i.data.length&&i.indicesToRequest.push(o)}}}}function td(e){clearTimeout(Yu),Yu=setTimeout((function(){var t=e.target;try{Qu(t)}catch(e){return}}),10)}function nd(e){var t=Xu(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Ju(0,t.imageIds.length-1),enabled:!0,direction:1},r=n.indicesToRequest.indexOf(t.currentImageIdIndex);n.indicesToRequest.splice(r,1),function(e,t){var n=(0,z.getEnabledElement)(e).viewportId;zu[n]=t}(e,n),Qu(e),e.removeEventListener(z.Enums.Events.STACK_NEW_IMAGE,td),e.addEventListener(z.Enums.Events.STACK_NEW_IMAGE,td);var o=ed(e);z.eventTarget.removeEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),z.eventTarget.addEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function rd(e){clearTimeout(Yu),e.removeEventListener(z.Enums.Events.STACK_NEW_IMAGE,td);var t=ed(e);z.eventTarget.removeEventListener(z.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=Ku(e);n&&n.data.length&&(n.enabled=!1,z.imageLoadPoolManager.clearRequestStack($u))}function od(){return Zu}function id(e){Zu=e}function ad(e,t){if(e instanceof z.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];return wa.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=wa.vec3.dot(t,r),i=wa.vec3.fromValues(r[0],r[1],r[2]);if(wa.vec3.scale(i,i,o),Math.abs(i[0])>.001||Math.abs(i[1])>.001||Math.abs(i[2])>.001){var a=[0,0,0],l=[0,0,0];wa.vec3.add(a,n.focalPoint,i),wa.vec3.add(l,n.position,i),e.setCamera({focalPoint:a,position:l}),e.render()}}(e,r),!0}}var ld=function(e,t){var n=Gi.getDefinedCursor(t,!0);n||(n=pi.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=pi.getDefinedCursor(t)),Ji(e,n)},cd=[].concat(wn(Ai),wn(yi)),sd=function(e,t,n){var r=Bi("textBoxFontSize",e,t,n),o=Bi("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},ud=function(e){if(!e||!e.length)throw new Error("The segmentationInputArray is undefined or empty array");e.forEach((function(e){if(void 0===e.segmentationId)throw new Error("The segmentationInput.segmentationId is undefined, please provide a valid segmentationId");if(void 0===e.representation)throw new Error("The segmentationInput.representation is undefined, please provide a valid representation");e.representation.type===$e.Labelmap&&function(e){if(!e.representation.data)throw new Error("The segmentationInput.representationData.data is undefined, please provide a valid representationData.data");var t=e.representation.data;if(!t.volumeId)throw new Error("The segmentationInput.representationData.volumeId is undefined, please provide a valid representationData.volumeId");if(!z.cache.getVolume(t.volumeId))throw new Error("volumeId of ".concat(t.volumeId," not found in cache, you should load and cache volume before adding segmentation"))}(e)}))},dd=function(e){ud(e),e.map((function(e){dt(Q()(e))}))};function vd(){return(vd=$r(Jr().mark((function e(t,n,r){var o,i;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Pr(t)){e.next=3;break}throw new Error("No tool group found for toolGroupId: ".concat(t));case 3:return o=n.map((function(e){return fd(t,e,r)})),e.next=6,Promise.all(o);case 6:return i=e.sent,e.abrupt("return",i);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fd(e,t,n){return gd.apply(this,arguments)}function gd(){return(gd=$r(Jr().mark((function e(t,n,r){var o;return Jr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==$e.Labelmap){e.next=6;break}return e.next=3,Ro.addSegmentationRepresentation(t,n,r);case 3:o=e.sent,e.next=7;break;case 6:throw new Error("The representation type ".concat(n.type," is not supported"));case 7:return e.abrupt("return",o);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var hd=function(e,t,n){return vd.apply(this,arguments)};function pd(e,t,n){var r=vt(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,rt(e,r.segmentationRepresentationUID))}))}function md(e,t){var n=vt(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function wd(e,t,n,r){var o=Ct(e,t);o&&(r?o.segmentsHidden.delete(n):o.segmentsHidden.add(n),rt(e,t))}var yd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(kr(e)),e.mouseDragCallback=e._dragCallback.bind(kr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,z.getEnabledElement)(n),i=r.world,a=o.viewport.getCamera(),l=a.focalPoint,c=a.position,s=[c[0]-i[0],c[1]-i[1],c[2]-i[2]],u=[l[0]-i[0],l[1]-i[1],l[2]-i[2]];o.viewport.setCamera({focalPoint:u,position:s}),o.viewport.render()}}]),o}(Kr);J(yd,"toolName",void 0),yd.toolName="Pan";var Ed=yd;var Id=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{rotateIncrementDegrees:2}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),i=o.getViewUp(),a=o.getFocalPoint(),l=o.getPosition(),c=[0,0,0],s=[0,0,0],u=[0,0,0],d=wa.mat4.identity(new Float32Array(16));wa.mat4.translate(d,d,t),wa.mat4.rotate(d,d,r,n),wa.mat4.translate(d,d,[-t[0],-t[1],-t[2]]),wa.vec3.transformMat4(c,l,d),wa.vec3.transformMat4(s,a,d),wa.mat4.identity(d),wa.mat4.rotate(d,d,r,n),wa.vec3.transformMat4(u,i,d),e.setCamera({position:c,viewUp:u,focalPoint:s})})),e.touchDragCallback=e._dragCallback.bind(kr(e)),e.mouseDragCallback=e._dragCallback.bind(kr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.lastPoints,i=r.canvas,a=o.canvas,l=this.configuration.rotateIncrementDegrees,c=(0,z.getEnabledElement)(n).viewport,s=c.getCamera(),u=n.clientWidth,d=n.clientHeight,v=[i[0]/u,i[1]/d],f=[a[0]/u,a[1]/d],g=[.5*u,.5*d],h=c.canvasToWorld(g),p=Math.pow(1+Math.abs(.5),2),m=[f[0],0,0],w=[v[0],0,0],y=Math.pow(m[0],2),E=Math.pow(w[0],2),I=y>p?0:Math.sqrt(p-y),b=E>p?0:Math.sqrt(p-E),C=[m[0],0,I];rs().normalize(C);var _=[w[0],0,b];rs().normalize(_);var T=rs().dot(C,_);if(Math.abs(T)>1e-4){var D=-2*Math.acos(rs().clampValue(T,-1,1))*Math.sign(v[0]-f[0])*l,S=s.viewUp;rs().normalize(S),this.rotateCamera(c,h,S,D);var O=(f[1]-v[1])*l,x=s.viewPlaneNormal,M=s.viewUp,R=[0,0,0];rs().cross(M,x,R),rs().normalize(R),this.rotateCamera(c,h,R,O),c.render()}}}]),o}(Kr);J(Id,"toolName",void 0),Id.toolName="TrackballRotate";var bd=Id;function Cd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cd(Object(n),!0).forEach((function(t){J(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Td=z.utilities.transformWorldToIndex,Dd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"editData",void 0),J(kr(e),"eventDispatchDetail",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[wn(i)]},cachedStats:{}}};Fe(o,f);var g=El(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Qi(o),t.preventDefault(),xr(c,g),f})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=(0,z.getEnabledElement)(n),c=l.renderingEngine,s=l.viewportId;if(e.eventDispatchDetail={viewportId:s,renderingEngineId:c.id},e._deactivateModify(n),Xi(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(c,i),a){var u=K.ANNOTATION_COMPLETED,d={annotation:o};(0,z.triggerEvent)(z.eventTarget,u,d)}})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=e.editData,l=a.annotation,c=a.viewportIdsToRender;l.data.handles.points[0]=wn(i),l.invalidated=!0;var s=(0,z.getEnabledElement)(o).renderingEngine;xr(s,c)})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=a.worldToCanvas(p);d.annotationUID=g;var w=e.getStyle("color",d,f);if(h.cachedStats[s]?f.invalidated&&(e._calculateCachedStats(f,u,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,index:null,value:null},e._calculateCachedStats(f,u,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;Ua(n,g,"0",[m],{color:w}),i=!0;var y=Bl(a,s),E=e._getTextLines(h,s,y);if(E){var I=[m[0]+6,m[1]-6];qa(n,g,"0",E,[I[0],I[1]],e.getLinkedTextBoxStyle(d,f))}}return i})),e}return Z(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data.handles.points[0],a=o.worldToCanvas(i);if(!0==wa.vec2.distance(n,a)<r)return i}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=El(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),Qi(r);var i=(0,z.getEnabledElement)(r).renderingEngine;xr(i,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t,n){var r=e.cachedStats[t],o=r.index,i=r.Modality,a=r.value,l=r.SUVBw,c=r.SUVLbm,s=r.SUVBsa;if(void 0!==a||void 0!==l){var u=[],d=Vl(i,n);return u.push("(".concat(o[0],", ").concat(o[1],", ").concat(o[2],")")),"PT"===i&&!0===n&&void 0!==l?(u.push("".concat(l.toFixed(2)," SUV bw")),c&&u.push("".concat(c.toFixed(2)," SUV lbm")),s&&u.push("".concat(s.toFixed(2)," SUV bsa"))):u.push("".concat(a.toFixed(2)," ").concat(d)),u}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if(r.value=e,"PT"===n&&t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,i=o.suvbwToSuvlbm,a=o.suvbwToSuvbsa;if(r.SUVBw=e,i){var l=e*i;r.SUVLbm=l}if(a){var c=e*a;r.SUVBsa=c}}return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.cachedStats,c=Object.keys(l),s=0;s<c.length;s++){var u=c[s],d=this.getTargetIdImage(u,t);if(d){var v=d.dimensions,f=d.scalarData,g=d.imageData,h=d.metadata.Modality,p=Td(g,a);if(p[0]=Math.round(p[0]),p[1]=Math.round(p[1]),p[2]=Math.round(p[2]),z.utilities.indexWithinDimensions(p,v)){this.isHandleOutsideImage=!1;var m=v[0],w=v[0]*v[1],y=f[p[2]*w+p[1]*m+p[0]];if(u.startsWith("imageId:")){var E=u.split("imageId:")[1],I=z.utilities.imageIdToURI(E),b=z.utilities.getViewportsWithImageURI(I,i)[0];p[2]=b.getCurrentImageIdIndex()}var C=this._getValueForModality(y,d,h);l[u]=_d(_d({index:p},C),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[u]={index:p,Modality:h};e.invalidated=!1;var _=K.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:i};(0,z.triggerEvent)(z.eventTarget,_,T)}}return l}}]),o}(Rl);J(Dd,"toolName",void 0),Dd.toolName="Probe";var Sd=Dd;var Od=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"editData",void 0),J(kr(e),"eventDispatchDetail",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[wn(i)]},cachedStats:{}}},g=El(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Qi(o),t.preventDefault(),xr(c,g),f})),J(kr(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var i=e.filterInteractableAnnotationsForElement(o.element,[e.editData.annotation]);if(null==i||!i.length)return r;var a=e.getTargetId(o),l=o.getRenderingEngine(),c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,u=s.annotationUID,d=s.data,v=d.handles.points[0],f=o.worldToCanvas(v);c.annotationUID=u;var g=e.getStyle("color",c,s);if(d.cachedStats[a]?s.invalidated&&e._calculateCachedStats(s,l,t):(d.cachedStats[a]={Modality:null,index:null,value:null},e._calculateCachedStats(s,l,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;Ua(n,u,"0",[f],{color:g}),r=!0;var h=Bl(o,a),p=e._getTextLines(d,a,h);if(p){var m=[f[0]+6,f[1]-6];qa(n,u,"0",p,[m[0],m[1]],e.getLinkedTextBoxStyle(c,s))}return r})),e}return Z(o)}(Sd);J(Od,"toolName",void 0),Od.toolName="DragProbe";var xd=Od;var Md=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_getImageDynamicRangeFromMiddleSlice",(function(t,n){var r,o,i=Math.floor(n[2]/2),a=n[0]*n[1];t instanceof Float32Array?(r=4,o=Float32Array):t instanceof Uint8Array&&(r=1,o=Uint8Array);var l=new o(t.buffer,i*a*r,a),c=e._getMinMax(l,a);return c.max-c.min})),e.touchDragCallback=e._dragCallback.bind(kr(e)),e.mouseDragCallback=e._dragCallback.bind(kr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,i,a,l,c=e.detail,s=c.element,u=c.deltaPoints,d=(0,z.getEnabledElement)(s),v=d.renderingEngine,f=d.viewportId,g=d.viewport,h=!1;if(g instanceof z.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).actor.getProperty().getRGBTransferFunction(0),l=z.utilities.getViewportsWithVolumeId(t,v.id);var p=za(o.getRange(),2);n=p[0],r=p[1];var m=z.cache.getVolume(t);i=m.metadata.Modality,h=m.scaling&&Object.keys(m.scaling).length>0}else{if(!(g instanceof z.StackViewport))throw new Error("Viewport is not a valid type");var w=g.getProperties();i=g.modality;var y=w.voiRange;n=y.lower,r=y.upper,h=g.getImageData().preScale.scaled}var E={volumeId:t,viewportId:f,range:a="PT"===i&&h?this.getPTNewRange({deltaPointsCanvas:u.canvas,lower:n,upper:r,clientHeight:s.clientHeight}):this.getNewRange({viewport:g,deltaPointsCanvas:u.canvas,volumeId:t,lower:n,upper:r})};if(g instanceof z.StackViewport)return g.setProperties({voiRange:a}),void g.render();(0,z.triggerEvent)(s,z.Enums.Events.VOI_MODIFIED,E),o.setRange(a.lower,a.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.viewport,n=e.deltaPointsCanvas,r=e.volumeId,o=e.lower,i=e.upper,a=this._getMultiplierFromDynamicRange(t,r)||4,l=n[0]*a,c=n[1]*a,s=z.utilities.windowLevel.toWindowLevel(o,i),u=s.windowWidth,d=s.windowCenter;return u+=l,d+=c,u=Math.max(u,1),z.utilities.windowLevel.toLowHighRange(u,d)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=z.cache.getVolume(t),o=r.dimensions,i=r.scalarData;n=this._getImageDynamicRangeFromMiddleSlice(i,o)}else n=this._getImageDynamicRangeFromViewport(e);var a=n/1024,l=4;return a>1&&(l=Math.round(a)),l}},{key:"_getImageDynamicRangeFromViewport",value:function(e){var t,n,r=e.getImageData().imageData,o=r.getDimensions();if(t=r.getScalarData?r.getScalarData():r.getPointData().getScalars(),1!==o[2])return this._getImageDynamicRangeFromMiddleSlice(t,o);if(t.getRange)n=t.getRange();else{var i=this._getMinMax(t,t.length);n=[i.min,i.max]}return n[1]-n[0]}},{key:"_getMinMax",value:function(e,t){for(var n=1/0,r=-1/0,o=0;o<t;o++){var i=e[o];i<n&&(n=i),i>r&&(r=i)}return{max:r,min:n}}}]),o}(Kr);J(Md,"toolName",void 0),Md.toolName="WindowLevel";var Rd=Md;var Nd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{zoomToCenter:!1,minZoomScale:.1,maxZoomScale:30}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"initialMousePosWorld",void 0),J(kr(e),"dirVec",void 0),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o).viewport.getCamera().focalPoint;e.initialMousePosWorld=i;var l=wa.vec3.fromValues(a[0]-i[0],a[1]-i[1],a[2]-i[2]);return l=wa.vec3.normalize(wa.vec3.create(),l),e.dirVec=l,!1})),J(kr(e),"_dragParallelProjection",(function(t,n,r){var o=t.detail,i=o.element,a=o.deltaPoints,l=[i.clientWidth,i.clientHeight],c=r.parallelScale,s=r.focalPoint,u=r.position,d=1.5/l[1],v=a.canvas[1],f=(1-v*d)*c,g=s,h=u;if(!e.configuration.zoomToCenter){var p=wa.vec3.distance(s,e.initialMousePosWorld),m=v*(5/l[1]);f=(1-m)*c,h=wa.vec3.scaleAndAdd(wa.vec3.create(),u,e.dirVec,-p*m),g=wa.vec3.scaleAndAdd(wa.vec3.create(),s,e.dirVec,-p*m)}var w=n.getImageData(),y=[1,1,1];w&&(y=w.spacing);var E=e.configuration,I=E.minZoomScale,b=E.maxZoomScale,C=i.clientHeight*y[1]*.5,_=C/f,T=f,D=!1;w&&(_<I?(T=C/I,D=!0):_>=b&&(T=C/b,D=!0)),n.setCamera({parallelScale:T,focalPoint:D?s:g,position:D?u:h})})),J(kr(e),"_dragPerspectiveProjection",(function(e,t,n){var r=e.detail,o=r.element,i=r.deltaPoints,a=[o.clientWidth,o.clientHeight],l=n.position,c=n.focalPoint,s=n.viewPlaneNormal,u=rs().distance2BetweenPoints(l,c),d=Math.sqrt(u)/a[1],v=[-s[0],-s[1],-s[2]],f=i.canvas[1]*d,g=f*v[0];l[0]+=g,c[0]+=g,g=f*v[1],l[1]+=g,c[1]+=g,g=f*v[2],l[2]+=g,c[2]+=g,t.setCamera({position:l,focalPoint:c})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.touchDragCallback=e._dragCallback.bind(kr(e)),e.mouseDragCallback=e._dragCallback.bind(kr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,z.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}}]),o}(Kr);J(Nd,"toolName",void 0),Nd.toolName="Zoom";var Pd=Nd;var kd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0}};return Y(this,o),J(kr(e=r.call(this,t,n)),"deltaY",void 0),J(kr(e),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),e.deltaY=1,e.touchDragCallback=e._dragCallback.bind(kr(e)),e.mouseDragCallback=e._dragCallback.bind(kr(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,i=n.renderingEngineId,a=(0,z.getEnabledElementByIds)(o,i).viewport,l=this.getTargetId(a),c=this.configuration,s=c.debounceIfNotLoaded,u=c.invert,d=r.canvas[1];a instanceof z.VolumeViewport&&(t=l.split("volumeId:")[1]);var v=this._getPixelPerImage(a),f=d+this.deltaY;if(v)if(Math.abs(f)>=v){var g=Math.round(f/v);Ea(a,{delta:u?-g:g,volumeId:t,debounceLoading:s}),this.deltaY=f%v}else this.deltaY=f}},{key:"_getPixelPerImage",value:function(e){var t=e.element,n=this._getNumberOfSlices(e);return Math.max(2,t.offsetHeight/Math.max(n,8))}},{key:"_getNumberOfSlices",value:function(e){return e instanceof z.VolumeViewport?z.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof z.StackViewport?e.getImageIds().length:void 0}}]),o}(Kr);J(kd,"toolName",void 0),kd.toolName="StackScroll";var Ad=kd;var Ld=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{invert:!1,debounceIfNotLoaded:!0}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.wheel,r=t.element,o=n.direction,i=this.configuration.invert,a=(0,z.getEnabledElement)(r).viewport,l=o*(i?-1:1);if(a instanceof z.StackViewport)a.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(a instanceof z.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");Ia(a,this.getTargetId(a).split("volumeId:")[1],l)}}}]),o}(Kr);J(Ld,"toolName",void 0),Ld.toolName="StackScrollMouseWheel";var Ud=Ld;var Vd={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Bd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{direction:Vd.Z,rotateIncrementDegrees:.5}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,z.getEnabledElement)(n).viewport,i=this.configuration,a=i.direction,l=i.rotateIncrementDegrees,c=o.getCamera(),s=c.viewUp,u=c.position,d=c.focalPoint,v=r.direction,f=za(d,3),g=f[0],h=f[1],p=f[2],m=za(a,3),w=m[0],y=m[1],E=m[2],I=v*l,b=[0,0,0],C=[0,0,0],_=[0,0,0],T=wa.mat4.identity(new Float32Array(16));wa.mat4.translate(T,T,[g,h,p]),wa.mat4.rotate(T,T,I,[w,y,E]),wa.mat4.translate(T,T,[-g,-h,-p]),wa.vec3.transformMat4(b,u,T),wa.vec3.transformMat4(C,d,T),wa.mat4.identity(T),wa.mat4.rotate(T,T,I,[w,y,E]),wa.vec3.transformMat4(_,s,T),o.setCamera({position:b,viewUp:_,focalPoint:C}),o.render()}}]),o}(Kr);J(Bd,"toolName",void 0),Bd.toolName="VolumeRotateMouseWheel";var Fd=Bd;var jd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{targetViewportIds:[]}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_bounds",void 0),e}return Z(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,z.getEnabledElement)(n),i=o.viewport,a=o.renderingEngine,l=this.getTargetId(i);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var c=l.split("volumeId:")[1],s=-1/0,u=os(i,r.world,c,(function(e,t){if(e>s)return s=e,t}));u&&u.length&&this.configuration.targetViewportIds.forEach((function(e){var t=a.getViewport(e);t instanceof z.VolumeViewport?ad(t,u):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(Kr);J(jd,"toolName",void 0),jd.toolName="MIPJumpToClickTool";var Wd=jd;var Gd=z.utilities.transformWorldToIndex,Hd=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;Qi(o),e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[wn(i),wn(i)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Fe(o,f);var g=El(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),xr(c,g),f})),J(kr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=za(t.data.handles.points,2),a=i[0],l=i[1],c=o.worldToCanvas(a),s=o.worldToCanvas(l),u={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return kl([u.start.x,u.start.y],[u.end.x,u.end.y],[n[0],n[1]])<=r})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),Qi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(s,i),a){var u=K.ANNOTATION_COMPLETED,d={annotation:o};(0,z.triggerEvent)(z.eventTarget,u,d)}e.editData=null,e.isDrawing=!1}})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=wn(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;xr(h,a)})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;d.annotationUID=g;var y=e.getStyle("lineWidth",d,f),E=e.getStyle("lineDash",d,f),I=e.getStyle("color",d,f),b=e.getStyle("shadow",d,f),C=m.map((function(e){return a.worldToCanvas(e)})),_=void 0;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,u,t):(h.cachedStats[s]={length:null,unit:null},e._calculateCachedStats(f,u,t)),Se(g)){oe(f)||e.editData||null===w||(_=[C[w]]),_&&Ua(n,g,"0",C,{color:I,lineDash:E,lineWidth:y});var T="".concat(g,"-line");if(Va(n,g,"1",C[0],C[1],{color:I,width:y,lineDash:E,shadow:b},T),i=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var D=e._getTextLines(h,s);if(!h.handles.textBox.hasMoved){var S=Ll(C);h.handles.textBox.worldPosition=a.canvasToWorld(S)}var O=a.worldToCanvas(h.handles.textBox.worldPosition),x=Za(n,g,"1",D,O,C,{},e.getLinkedTextBoxStyle(d,f)),M=x.x,R=x.y,N=x.width,P=x.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,R]),topRight:a.canvasToWorld([M+N,R]),bottomLeft:a.canvasToWorld([M,R+P]),bottomRight:a.canvasToWorld([M+N,R+P])}}}return i})),e._throttledCalculateCachedStats=il(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=El(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),Qi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;xr(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(null!=r&&!isNaN(r))return["".concat(r.toFixed(2)," ").concat(o)]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,i=n.renderingEngineId,a=r.handles.points[0],l=r.handles.points[1],c=r.cachedStats,s=Object.keys(c),u=0;u<s.length;u++){var d=s[u],v=this.getTargetIdImage(d,t);if(v){var f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(a,l),m=Gd(f,a),w=Gd(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,c[d]={length:p,unit:h?"mm":"px"}}}e.invalidated=!1;var y=K.ANNOTATION_MODIFIED,E={annotation:e,viewportId:o,renderingEngineId:i};return(0,z.triggerEvent)(z.eventTarget,y,E),c}},{key:"_isInsideVolume",value:function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)}}]),o}(Rl);J(Hd,"toolName",void 0),Hd.toolName="Length";var qd=Hd,zd=c(847),Kd=c.n(zd);var Yd=z.CONSTANTS.RENDERING_DEFAULTS;function $d(){return"rgb(0, 200, 0)"}function Zd(){return!0}function Jd(){return!0}function Xd(){return!0}var Qd=.001,ev=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t,n,i,a,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:z.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return Y(this,o),J(kr(a=r.call(this,l,c)),"toolCenter",[0,0,0]),J(kr(a),"_getReferenceLineColor",void 0),J(kr(a),"_getReferenceLineControllable",void 0),J(kr(a),"_getReferenceLineDraggableRotatable",void 0),J(kr(a),"_getReferenceLineSlabThicknessControlsOn",void 0),J(kr(a),"editData",void 0),J(kr(a),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,z.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,i=r.viewport,l=i.element,c=i.getCamera(),s=c.position,u=c.focalPoint,d=c.viewPlaneNormal,v=Be(l,a.getToolName());return(v=a.filterInteractableAnnotationsForElement(l,v)).length&&We(v[0].annotationUID,l),Fe(l,{highlighted:!1,metadata:{cameraPosition:wn(s),cameraFocalPoint:wn(u),FrameOfReferenceUID:o,toolName:a.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:a.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}}),{normal:d,point:i.canvasToWorld([i.canvas.clientWidth/2,i.canvas.clientHeight/2])}})),J(kr(a),"_getViewportsInfo",(function(){return Pr(a.toolGroupId).viewportsInfo})),J(kr(a),"computeToolCenter",(function(e){if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=za(e,3),n=t[0],r=t[1],o=t[2],i=a.initializeViewport(n),l=i.normal,c=i.point,s=a.initializeViewport(r),u=s.normal,d=s.point,v=[0,0,0],f=wa.vec3.create();if(o){var g=a.initializeViewport(o);v=g.normal,f=g.point}else wa.vec3.add(f,c,d),wa.vec3.scale(f,f,.5),wa.vec3.cross(v,l,u);var h=z.utilities.planar.planeEquation(l,c),p=z.utilities.planar.planeEquation(u,d),m=z.utilities.planar.planeEquation(v,f);a.toolCenter=z.utilities.planar.threePlaneIntersection(h,p,m);var w=(0,z.getEnabledElementByIds)(e[0].viewportId,e[0].renderingEngineId).renderingEngine;xr(w,e.map((function(e){return e.viewportId})))})),J(kr(a),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,i=(0,z.getEnabledElement)(r),l=i.viewport;a._jump(i,o);for(var c=Be(r,a.getToolName()),s=a.filterInteractableAnnotationsForElement(l.element,c),u=s[0].data,d=u.handles.rotationPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=a._getReferenceLineControllable(g.id),p=a._getReferenceLineDraggableRotatable(g.id);h&&p&&(v.push(g.id),f++)}return u.activeViewportIds=[].concat(v),u.handles.activeOperation=1,e.preventDefault(),Qi(r),a._activateModify(r),s[0]})),J(kr(a),"cancel",(function(){console.log("Not implemented yet")})),J(kr(a),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),Qi(r),e.preventDefault()})),J(kr(a),"isPointNearTool",(function(e,t,n,r){return!!a._pointNearTool(e,t,n,6)})),J(kr(a),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,a._activateModify(r),Qi(r),e.preventDefault()})),J(kr(a),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,z.getEnabledElement)(n),o=r.renderingEngine,i=(r.viewportId,r.viewport),l=Be(n,a.getToolName()),c=a.filterInteractableAnnotationsForElement(n,l)[0];if(c){var s=i.getCamera(),u=c.metadata.cameraPosition,d=[0,0,0];rs().subtract(s.position,u,d);var v=c.metadata.cameraFocalPoint,f=[0,0,0];rs().subtract(s.focalPoint,v,f),c.metadata.cameraPosition=wn(s.position),c.metadata.cameraFocalPoint=wn(s.focalPoint);var g=a._getReferenceLineControllable(i.id),h=a._getReferenceLineDraggableRotatable(i.id);if(!z.utilities.isEqual(s.position,u,.001)&&g&&h){var p=!1;z.utilities.isEqual(d,f,.001)||(p=!0);var m=Math.abs(rs().dot(d,s.viewPlaneNormal))<.01;p||m||(a.toolCenter[0]+=d[0],a.toolCenter[1]+=d[1],a.toolCenter[2]+=d[2])}null!==(t=a.configuration.autoPan)&&void 0!==t&&t.enabled&&On(i.id,o.id).getViewportIds().filter((function(e){return e!==i.id})).forEach((function(e){a._autoPanViewportIfNecessary(e,o)}));var w=El(n,a.getToolName(),!1);xr(o,w)}})),J(kr(a),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,i=!1,l=0;l<t.length;l++){var c=t[l];if(!oe(c)){var s=c.data,u=c.highlighted;if(s.handles){var d=s.handles.activeOperation,v=s.activeViewportIds&&s.activeViewportIds.length>0?wn(s.activeViewportIds):[];s.activeViewportIds=[],s.handles.activeOperation=null;var f;(f=!!a.getHandleNearImagePoint(r,c,o,6)||a._pointNearTool(r,c,o,6))&&!u||!f&&u?(c.highlighted=!u,i=!0):s.handles.activeOperation===d&&a._areViewportIdArraysEqual(s.activeViewportIds,v)||(i=!0)}}}return i})),J(kr(a),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,z.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),J(kr(a),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,i=r.element,l=Be(i,a.getToolName()),c=r.getCamera(),s=a.filterInteractableAnnotationsForElement(i,l)[0];if(!l||!s||!s.data)return n;var u=s.annotationUID,d=r.canvas,v=d.clientWidth,f=d.clientHeight,g=Math.sqrt(v*v+f*f),h=s.data,p=r.worldToCanvas(a.toolCenter),m=a._filterAnnotationsByUniqueViewportOrientations(e,l),w=[];m.forEach((function(e){var t=e.data;t.handles.toolCenter=a.toolCenter;var n=o.getViewport(t.viewportId),i=n.getCamera(),l=a._getReferenceLineControllable(n.id),s=a._getReferenceLineDraggableRotatable(n.id),u=a._getReferenceLineSlabThicknessControlsOn(n.id),d=n.canvas,v=d.clientWidth,f=d.clientHeight,h=Math.sqrt(v*v+f*f),y=[.5*v,.5*f],E=n.canvasToWorld(y),I=[0,0,0];rs().cross(c.viewPlaneNormal,i.viewPlaneNormal,I),rs().normalize(I),rs().multiplyScalar(I,h);var b=[0,0,0];rs().add(E,I,b);var C=[0,0,0];rs().subtract(E,I,C);var _=[0,0,v,f],T=r.worldToCanvas(b),D=r.worldToCanvas(E),S=wa.vec2.create();wa.vec2.subtract(S,T,D),wa.vec2.normalize(S,S);var O=wa.vec2.create();wa.vec2.scale(O,S,100*g);var x=wa.vec2.create();wa.vec2.scale(x,S,.25*g);var M=wa.vec2.create();wa.vec2.scale(M,S,.15*g);var R=wa.vec2.create();wa.vec2.scale(R,S,2===m.length?.04*g:0);var N=wa.vec2.create(),P=wa.vec2.create(),k=wa.vec2.create(),A=wa.vec2.create(),L=wa.vec2.clone(p);s&&l||(L=wa.vec2.clone(D)),wa.vec2.add(N,L,R),wa.vec2.add(P,L,O),wa.vec2.subtract(k,L,R),wa.vec2.subtract(A,L,O),jc(N,P,_),jc(k,A,_);var U=wa.vec2.create();wa.vec2.subtract(U,p,x);var V=wa.vec2.create();wa.vec2.add(V,p,x);var B=wa.vec2.clone(p);!s&&u&&(B=wa.vec2.clone(D));var F=wn(a.toolCenter);!s&&u&&(F=wn(E));var j=[0,0,0];rs().subtract(b,C,j),rs().normalize(j);var W=c.viewPlaneNormal,G=Kd().buildFromDegree().rotate(90,W).matrix,H=[0,0,0];wa.vec3.transformMat4(H,j,G);var q=n.getSlabThickness(),z=[].concat(H);rs().multiplyScalar(z,q);var K=[0,0,0];rs().add(F,z,K);var Y=r.worldToCanvas(K),$=wa.vec2.create();wa.vec2.subtract($,B,Y);var Z=wa.vec2.create();wa.vec2.subtract(Z,B,O),wa.vec2.add(Z,Z,$);var J=wa.vec2.create();wa.vec2.add(J,B,O),wa.vec2.add(J,J,$),jc(Z,J,_);var X=wa.vec2.create();wa.vec2.add(X,B,O),wa.vec2.subtract(X,X,$);var Q=wa.vec2.create();wa.vec2.subtract(Q,B,O),wa.vec2.subtract(Q,Q,$),jc(X,Q,_);var ee=wa.vec2.create(),te=wa.vec2.create(),ne=wa.vec2.create(),re=wa.vec2.create();wa.vec2.subtract(ee,B,M),wa.vec2.add(ee,ee,$),wa.vec2.add(te,B,M),wa.vec2.add(te,te,$),wa.vec2.subtract(ne,B,M),wa.vec2.subtract(ne,ne,$),wa.vec2.add(re,B,M),wa.vec2.subtract(re,re,$),w.push([n,N,P,k,A,Z,J,X,Q,U,V,ee,te,ne,re])}));var y=[],E=[],I=a._getReferenceLineColor(r.id),b=void 0!==I?I:"rgb(200, 200, 200)";return w.forEach((function(e,n){var o=e[0],i=a._getReferenceLineColor(o.id),l=a._getReferenceLineControllable(o.id),c=a._getReferenceLineDraggableRotatable(o.id),s=a._getReferenceLineSlabThicknessControlsOn(o.id),d=h.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==i?i:"rgb(200, 200, 200)",f=1,g=null!==h.handles.activeOperation&&1===h.handles.activeOperation&&d;g&&(f=2.5);var p="".concat(n);if(l&&c?(p="".concat(n,"One"),Va(t,u,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),Va(t,u,p,e[3],e[4],{color:v,lineWidth:f})):Va(t,u,p,e[2],e[4],{color:v,lineWidth:f}),l){v=void 0!==i?i:"rgb(200, 200, 200)";var m=2===h.handles.activeOperation,w=[e[9],e[10]],I=[r.canvasToWorld(e[9]),o,e[1],e[2]],b=[r.canvasToWorld(e[10]),o,e[3],e[4]];y.push(I,b);var C=3===h.handles.activeOperation,_=[e[11],e[12],e[13],e[14]],T=[r.canvasToWorld(e[11]),o,e[5],e[6]],D=[r.canvasToWorld(e[12]),o,e[5],e[6]],S=[r.canvasToWorld(e[13]),o,e[7],e[8]],O=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(E.push(T,D,S,O),g&&!m&&!C&&c&&s){var x="".concat(n,"One");Ua(t,u,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),Ua(t,u,x,_,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&c){var M="".concat(n);Ua(t,u,M,w,{color:v,handleRadius:3,type:"circle"})}else if(d&&!m&&!C&&s){var R="".concat(n);Ua(t,u,R,_,{color:v,handleRadius:3,type:"rect"})}else if(m&&c){var N="".concat(n);Ua(t,u,N,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&d&&s&&Ua(t,u,p,_,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&s&&(p="".concat(n,"STOne"),Va(t,u,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),Va(t,u,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=y,h.handles.slabThicknessPoints=E,a.configuration.viewportIndicators&&Aa(t,u,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),J(kr(a),"_onNewVolume",(function(e){var t=a._getViewportsInfo();a.computeToolCenter(t)})),J(kr(a),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),J(kr(a),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,i=t.filter((function(e){return e.data.viewportId!==n}));if(!i||!i.length)return[];var a=o.getCamera(),l=a.viewPlaneNormal,c=a.position,s=i.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(z.utilities.isEqual(n.viewPlaneNormal,l,.01)&&z.utilities.isEqual(n.position,c,1))}));return s})),J(kr(a),"_filterViewportWithSameOrientation",(function(e,t,n){var r=e.renderingEngine,o=t.data,i=r.getViewport(o.viewportId),l=n.filter((function(e){var t=e.data,n=r.getViewport(t.viewportId);return!0===a._getReferenceLineControllable(n.id)}));if(!l||!l.length)return[];var c=i.getCamera(),s=c.viewPlaneNormal;return rs().normalize(s),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return rs().normalize(o),z.utilities.isEqual(s,o,.01)&&z.utilities.isEqual(c.viewUp,n.viewUp,.01)}))})),J(kr(a),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;rs().normalize(o);for(var i=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0===i})),l=[],c=0;c<i.length;++c){var s=i[c],u=s.data.viewportId,d=n.getViewport(u).getCamera(),v=d.viewPlaneNormal;if(rs().normalize(v),!z.utilities.isEqual(o,v,.01)&&!z.utilities.isOpposite(o,v,.01)){for(var f=!1,g=0;g<l.length;++g){var h=l[g].data.viewportId,p=n.getViewport(h).getCamera();z.utilities.isEqual(p.viewPlaneNormal,d.viewPlaneNormal,.01)&&z.utilities.isEqual(p.position,d.position,1)&&(f=!0)}f||l.push(s)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),i=a._getReferenceLineControllable(o.id);return r!==o&&!0!==i})),w=0;w<m.length;++w){var y=m[w],E=y.data.viewportId,I=n.getViewport(E).getCamera(),b=I.viewPlaneNormal;if(rs().normalize(b),!z.utilities.isEqual(o,b,.01)&&!z.utilities.isOpposite(o,b,.01)){for(var C=!1,_=0;_<l.length;++_){var T=l[_].data.viewportId,D=n.getViewport(T).getCamera();z.utilities.isEqual(D.viewPlaneNormal,I.viewPlaneNormal,.01)&&z.utilities.isEqual(D.position,I.position,1)&&(C=!0)}C||l.push(y)}}for(var S=a._getAnnotationsForViewportsWithDifferentCameras(e,t),O=function(e){var t=S[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,i=n.getViewport(r).getCamera(),a=i.viewPlaneNormal;if(rs().normalize(a),z.utilities.isEqual(o,a,.01)||z.utilities.isOpposite(o,a,.01))return"continue";for(var c=!1,s=0;s<l.length;++s){var u=l[s].data.viewportId,d=n.getViewport(u).getCamera();z.utilities.isEqual(d.viewPlaneNormal,i.viewPlaneNormal,.01)&&z.utilities.isEqual(d.position,i.position,1)&&(c=!0)}c||l.push(t)},x=0;x<S.length;++x)O(x);return l})),J(kr(a),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),J(kr(a),"_jump",(function(e,t){bn.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=Be(n.element,a.getToolName()),i=[0,0,0];rs().subtract(t,a.toolCenter,i);var l=a._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),i=a._checkIfViewportsRenderingSameScene(n,o);return a._getReferenceLineControllable(o.id)&&a._getReferenceLineDraggableRotatable(o.id)&&i}));return 0===l.length?(bn.isInteractingWithTool=!1,!1):(a._applyDeltaShiftToSelectedViewportCameras(r,l,i),bn.isInteractingWithTool=!1,!0)})),J(kr(a),"_activateModify",(function(e){bn.isInteractingWithTool=!0,e.addEventListener(K.MOUSE_UP,a._mouseUpCallback),e.addEventListener(K.MOUSE_DRAG,a._mouseDragCallback),e.addEventListener(K.MOUSE_CLICK,a._mouseUpCallback)})),J(kr(a),"_deactivateModify",(function(e){bn.isInteractingWithTool=!1,e.removeEventListener(K.MOUSE_UP,a._mouseUpCallback),e.removeEventListener(K.MOUSE_DRAG,a._mouseDragCallback),e.removeEventListener(K.MOUSE_CLICK,a._mouseUpCallback)})),J(kr(a),"_mouseUpCallback",(function(e){var t=e.detail.element;a.editData.annotation.data.handles.activeOperation=null,a.editData.annotation.data.activeViewportIds=[],a._deactivateModify(t),Xi(t),a.editData=null;var n=(0,z.getEnabledElement)(t).renderingEngine,r=El(t,a.getToolName(),!1);xr(n,r)})),J(kr(a),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,z.getEnabledElement)(r),i=o.renderingEngine,l=o.viewport,c=Be(r,a.getToolName()),s=a.filterInteractableAnnotationsForElement(r,c)[0];if(s){var u=s.data.handles,d=e.detail.currentPoints.canvas;if(1===u.activeOperation){var v=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));a._applyDeltaShiftToSelectedViewportCameras(i,v,n)}else if(2===u.activeOperation){var f=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=wa.vec2.create(),h=wa.vec2.create(),p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,y=wa.vec2.create();wa.vec2.sub(y,w,t.deltaPoints.canvas),wa.vec2.sub(g,y,m),wa.vec2.sub(h,w,m);var E=wa.vec2.angle(g,h);a._isClockWise(m,y,w)&&(E*=-1),E=Math.round(100*E)/100;var I=l.getCamera().viewPlaneNormal,b=Kd().buildFromRadian().translate(p[0],p[1],p[2]).rotate(E,I).translate(-p[0],-p[1],-p[2]).matrix,C=[];f.forEach((function(e){var t=e.data;t.handles.toolCenter=p;var n=i.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,a=r.position,l=r.focalPoint;o[0]+=a[0],o[1]+=a[1],o[2]+=a[2],wa.vec3.transformMat4(l,l,b),wa.vec3.transformMat4(a,a,b),wa.vec3.transformMat4(o,o,b),o[0]-=a[0],o[1]-=a[1],o[2]-=a[2],n.setCamera({position:a,viewUp:o,focalPoint:l}),C.push(n.id)})),i.renderViewports(C)}else if(3===u.activeOperation){var _=a._getAnnotationsForViewportsWithDifferentCameras(o,c).filter((function(e){var t=e.data,n=i.getViewport(t.viewportId),r=a._getReferenceLineControllable(n.id),o=a._getReferenceLineSlabThicknessControlsOn(n.id);return!0===r&&!0===o&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===_.length)return;var T=a._filterViewportWithSameOrientation(o,_[0],c),D=[];D.push(l.id),T.forEach((function(e){var r=e.data,o=i.getViewport(r.viewportId),c=o.getCamera().viewPlaneNormal,u=rs().dot(n,c),v=wn(c);if(rs().multiplyScalar(v,u),Math.abs(v[0])>.001||Math.abs(v[1])>.001||Math.abs(v[2])>.001){var f=Math.sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]),g=t.lastPoints.world,h=[0,0,0],p=[a.toolCenter[0],a.toolCenter[1],a.toolCenter[2]];if(!a._getReferenceLineDraggableRotatable(o.id)){var m=a.editData.annotation.data.handles.rotationPoints.filter((function(e){return e[1].uid===o.id}));if(2===m.length){var w=l.canvasToWorld(m[0][3]),y=l.canvasToWorld(m[1][3]);rs().add(w,y,p),rs().multiplyScalar(p,.5)}}rs().subtract(g,p,h);var E=rs().dot(h,c),I=wn(c);rs().multiplyScalar(I,E);var b=[I[0],I[1],I[2]];wa.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];wa.vec3.normalize(C,C);var _=o.getSlabThickness();z.utilities.isOpposite(b,C,.001)?_-=f:_+=f,_=Math.abs(_),_=Math.max(Yd.MINIMUM_SLAB_THICKNESS,_),a._pointNearReferenceLine(s,d,6,o)&&(_=Yd.MINIMUM_SLAB_THICKNESS),On(o.id,i.id).getToolInstance(a.getToolName()).setSlabThickness(o,_),D.push(o.id)}})),i.renderViewports(D)}}}})),J(kr(a),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,i=0;i<o.length-1;++i){var l=o[i][1];if(l.id===r.id&&a._getReferenceLineControllable(l.id)){var c={start:{x:o[i][2][0],y:o[i][2][1]},end:{x:o[i][3][0],y:o[i][3][1]}},s=kl([c.start.x,c.start.y],[c.end.x,c.end.y],[t[0],t[1]]),u={start:{x:o[i+1][2][0],y:o[i+1][2][1]},end:{x:o[i+1][3][0],y:o[i+1][3][1]}},d=kl([u.start.x,u.start.y],[u.end.x,u.end.y],[t[0],t[1]]);if(s<=n||d<=n)return!0;i++}}return!1})),a._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||$d,a._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Zd,a._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Jd,a._getReferenceLineSlabThicknessControlsOn=(null===(i=l.configuration)||void 0===i?void 0:i.getReferenceLineSlabThicknessControlsOn)||Xd,a}return Z(o,[{key:"onSetToolActive",value:function(){var e=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(e),this._subscribeToViewportNewVolumeSet(e),this.computeToolCenter(e)}},{key:"onSetToolPassive",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolEnabled",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolDisabled",value:function(){var e=this,t=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(t),t.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,z.getEnabledElementByIds)(r,n);if(o){var i=o.viewport.element,a=Be(i,e.getToolName());null!=a&&a.length&&a.forEach((function(e){We(e.annotationUID,i)}))}}))}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==i||null!==(i=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?i:void 0}},{key:"_unsubscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,z.getEnabledElementByIds)(n,r).viewport.element.removeEventListener(z.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_subscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,z.getEnabledElementByIds)(n,r).viewport.element.addEventListener(z.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.canvas,i=o.clientWidth,a=o.clientHeight,l=r.canvasToWorld([0,0]),c=r.canvasToWorld([i,a]),s=r.canvasToWorld([i,0]),u=r.canvasToWorld([0,a]),d=Math.min(l[0],c[0],s[0],u[0]),v=Math.max(l[0],c[0],s[0],u[0]),f=Math.min(l[1],c[1],s[1],u[1]),g=Math.max(l[1],c[1],s[1],u[1]),h=Math.min(l[2],c[2],s[2],u[2]),p=Math.max(l[2],c[2],s[2],u[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<d-Qd)n=[d-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+Qd)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-Qd)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+Qd)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-Qd)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+Qd))return;n=[0,0,p-this.toolCenter[2]-m]}var w=r.getCamera(),y=w.focalPoint,E=w.position,I=[E[0]-n[0],E[1]-n[1],E[2]-n[2]],b=[y[0]-n[0],y[1]-n[1],y[2]-n[2]];r.setCamera({focalPoint:b,position:I}),r.render()}},{key:"setSlabThickness",value:function(e,t){var n,r=this.configuration.filterActorUIDsToSetSlabThickness;r&&r.length>0&&(n=r);var o=this.configuration.slabThicknessBlendMode;t===Yd.MINIMUM_SLAB_THICKNESS&&(o=z.Enums.BlendModes.COMPOSITE),e.setBlendMode(o,n,!1),e.setSlabThickness(t,n)}},{key:"_isClockWise",value:function(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])>0}},{key:"_applyDeltaShiftToSelectedViewportCameras",value:function(e,t,n){var r=this;t.forEach((function(t){r._applyDeltaShiftToViewportCamera(e,t,n)}))}},{key:"_applyDeltaShiftToViewportCamera",value:function(e,t,n){var r=t.data,o=e.getViewport(r.viewportId),i=o.getCamera(),a=i.viewPlaneNormal,l=rs().dot(n,a),c=wn(a);if(rs().multiplyScalar(c,l),Math.abs(c[0])>.001||Math.abs(c[1])>.001||Math.abs(c[2])>.001){var s=[0,0,0],u=[0,0,0];rs().add(i.focalPoint,c,s),rs().add(i.position,c,u),o.setCamera({focalPoint:s,position:u}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.rotationPoints,a=0;a<i.length;a++){var l=i[a][0],c=i[a][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineDraggableRotatable(c.id)){var s=e.worldToCanvas(l);if(wa.vec2.distance(n,s)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,i=o.handles.slabThicknessPoints,a=0;a<i.length;a++){var l=i[a][0],c=i[a][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineSlabThicknessControlsOn(c.id)){var s=e.worldToCanvas(l);if(wa.vec2.distance(n,s)<r)return o.handles.activeOperation=3,o.activeViewportIds=[c.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,i=(0,z.getEnabledElement)(e).viewport.canvas,a=i.clientWidth,l=i.clientHeight,c=Math.sqrt(a*a+l*l),s=t.data,u=s.handles.rotationPoints,d=s.handles.slabThicknessPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:u[f][2][0],y:u[f][2][1]},end:{x:u[f][3][0],y:u[f][3][1]}},w=kl([m.start.x,m.start.y],[m.end.x,m.end.y],[n[0],n[1]]),y={start:{x:u[f+1][2][0],y:u[f+1][2][1]},end:{x:u[f+1][3][0],y:u[f+1][3][1]}},E=kl([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(w<=r||E<=r)&&(v.push(g.id),s.handles.activeOperation=1),f++}}for(var I=function(e){var t=d[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var i=o._getReferenceLineControllable(t.id),a=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!i||!a)return b=e,"continue";var l=d[e][2],u=d[e][3],f=wa.vec2.create();wa.vec2.add(f,l,u),wa.vec2.scale(f,f,.5);var g=wa.vec2.create();wa.vec2.subtract(g,l,f),wa.vec2.normalize(g,g);var h=wa.vec2.create();wa.vec2.scale(h,g,.05*c);var p=wa.vec2.create(),m=wa.vec2.create();wa.vec2.add(p,f,h),wa.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},y=kl([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]),E={start:{x:m[0],y:m[1]},end:{x:u[0],y:u[1]}},I=kl([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(y<=r||I<=r)&&(v.push(t.id),s.handles.activeOperation=null),e++,b=e},b=0;b<d.length-1;++b)I(b);return s.activeViewportIds=[].concat(v),this.editData={annotation:t},1===s.handles.activeOperation}}]),o}(Rl);J(ev,"toolName",void 0),ev.toolName="Crosshairs";var tv=ev;var nv=z.CONSTANTS.EPSILON,rv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:""}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",{}),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"_init",(function(){var t=(0,z.getRenderingEngines)()[0];if(t){var n=t.getViewports();n=ml(n,e.getToolName());var r=t.getViewport(e.configuration.sourceViewportId);if(r&&r.getImageData()){var o=r.element,i=r.getCamera(),a=i.viewUp,l=i.viewPlaneNormal,c=z.utilities.getViewportImageCornersInWorld(r),s=e.editData.annotation;if(s)e.editData.annotation.data.handles.points=c;else{var u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(l),viewUp:wn(a),FrameOfReferenceUID:r.getFrameOfReferenceUID(),referencedImageId:null},data:{handles:{points:c}}};Fe(o,u),s=u}e.editData={sourceViewport:r,renderingEngine:t,annotation:s},xr(t,n.filter((function(e){return e.id!==r.id})).map((function(e){return e.id})))}}})),J(kr(e),"onSetToolEnabled",(function(){e._init()})),J(kr(e),"onCameraModified",(function(t){e._init()})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=t.viewport,a=e.editData,l=a.annotation,c=a.sourceViewport,s=!1;if(!c)return s;if(c.id===i.id)return s;if(!l||null==l||null===(r=l.data)||void 0===r||null===(o=r.handles)||void 0===o||!o.points)return s;var u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=l.data.handles.points[0],v=l.data.handles.points[1],f=l.data.handles.points[2],g=l.data.handles.points[3],h=i.getCamera(),p=h.focalPoint,m=h.viewPlaneNormal,w=c.getCamera().viewPlaneNormal;if(e.isParallel(m,w))return s;var y=z.utilities.planar.planeEquation(m,p),E=[d,f,v,g],I=[d,v,f,g],b=E,C=wa.vec3.subtract(wa.vec3.create(),E[0],E[1]);C=wa.vec3.normalize(wa.vec3.create(),C);var _=wa.vec3.subtract(wa.vec3.create(),E[2],E[0]);_=wa.vec3.normalize(wa.vec3.create(),_);var T=wa.vec3.cross(wa.vec3.create(),C,_);if(e.isParallel(T,m))return s;e.isPerpendicular(C,m)&&(b=I);var D=z.utilities.planar.linePlaneIntersection(b[0],b[1],y),S=z.utilities.planar.linePlaneIntersection(b[2],b[3],y),O=l.annotationUID;u.annotationUID=O;var x=e.getStyle("lineWidth",u,l),M=e.getStyle("lineDash",u,l),R=e.getStyle("color",u,l),N=e.getStyle("shadow",u,l),P=[D,S].map((function(e){return i.worldToCanvas(e)})),k="".concat(O,"-line");return Va(n,O,"1",P[0],P[1],{color:R,width:x,lineDash:M,shadow:N},k),!0})),J(kr(e),"isPerpendicular",(function(e,t){var n=wa.vec3.dot(e,t);return Math.abs(n)<nv})),e}return Z(o,[{key:"isParallel",value:function(e,t){return Math.abs(wa.vec3.dot(e,t))>1-nv}}]),o}(Sl);J(rv,"toolName",void 0),rv.toolName="ReferenceLines";var ov=rv;function iv(e,t,n,r){var o=wa.vec3.create();wa.vec3.cross(o,t,e);var i=wa.vec3.fromValues.apply(wa.vec3,wn(n)),a=wa.vec3.fromValues.apply(wa.vec3,wn(r)),l=wa.vec3.create();wa.vec3.subtract(l,i,a);var c=wa.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=wa.vec3.dot(l,o)/(c*wa.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}var av=z.utilities.transformWorldToIndex,lv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,centerPointRadius:0}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",!1),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.getReferencedImageId(c,i,d,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(d),viewUp:wn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:f},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null},cachedStats:{}}};Fe(o,g);var h=El(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,centerCanvas:a,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(s,h),g})),J(kr(e),"isPointNearTool",(function(t,n,r,o){var i=(0,z.getEnabledElement)(t).viewport,a=za(dc(n.data.handles.points.map((function(e){return i.worldToCanvas(e)}))),2),l=a[0],c=a[1],s={left:Math.min(l[0],c[0])+o/2,top:Math.min(l[1],c[1])+o/2,width:Math.abs(l[0]-c[0])-o,height:Math.abs(l[1]-c[1])-o},u={left:Math.min(l[0],c[0])-o/2,top:Math.min(l[1],c[1])-o/2,width:Math.abs(l[0]-c[0])+o,height:Math.abs(l[1]-c[1])+o},d=e._pointInEllipseCanvas(s,r);return!(!e._pointInEllipseCanvas(u,r)||d)})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},Qi(o),e._activateModify(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),t.preventDefault()})),J(kr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l,c,s,u,d=!1;if(r.worldPosition)d=!0;else{var v=i.handles.points,f=(0,z.getEnabledElement)(o).viewport.worldToCanvas;a=v.findIndex((function(e){return e===r}));var g=v.map(f);u=g[a],c=Math.abs(g[2][0]-g[3][0]),s=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:a,canvasWidth:c,canvasHeight:s,centerCanvas:l,originalHandleCanvas:u,movingTextBox:d},e._activateModify(o),Qi(o);var p=(0,z.getEnabledElement)(o).renderingEngine;xr(p,h),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(s,i),a){var u=K.ANNOTATION_COMPLETED,d={annotation:o};(0,z.triggerEvent)(z.eventTarget,u,d)}}})),J(kr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g],m=[d[0]-f,d[1]],w=[d[0]+f,d[1]];v.handles.points=[l(h),l(p),l(m),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,xr(a,u)})),J(kr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else e._dragHandle(t),i.invalidated=!0;var g=(0,z.getEnabledElement)(r).renderingEngine;xr(g,a)})),J(kr(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r).viewport.canvasToWorld,i=e.editData,a=i.annotation,l=i.canvasWidth,c=i.canvasHeight,s=i.handleIndex,u=i.centerCanvas,d=i.originalHandleCanvas,v=a.data.handles.points,f=n.currentPoints.canvas;if(0===s||1===s){var g=Math.abs(f[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-d[0]),w=[u[0]-m,u[1]],y=[u[0]+m,u[1]];v[2]=o(w),v[3]=o(y)}else{var E=Math.abs(f[0]-u[0]),I=[u[0]-E,u[1]],b=[u[0]+E,u[1]];v[2]=o(I),v[3]=o(b);var C=c/2+(f[1]-d[1]),_=[u[0],u[1]-C],T=[u[0],u[1]+C];v[0]=o(_),v[1]=o(T)}})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;d.annotationUID=g;var y=e.getStyle("lineWidth",d,f),E=e.getStyle("lineDash",d,f),I=e.getStyle("color",d,f),b=m.map((function(e){return a.worldToCanvas(e)})),C=dc(b),_=e.configuration.centerPointRadius;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].areaUnit?f.invalidated&&(e._throttledCalculateCachedStats(f,a,u,t),a instanceof z.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&u.getStackViewports().find((function(t){var n=z.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=z.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,a,u,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var T=void 0;if(Se(g)){oe(f)||e.editData||null===w||(T=[b[w]]),T&&Ua(n,g,"0",T,{color:I});var D="".concat(g,"-ellipse");if(La(n,g,"0",C[0],C[1],{color:I,lineDash:E,lineWidth:y},D),_>0&&Math.min(Math.abs(C[0][0]-C[1][0])/2,Math.abs(C[0][1]-C[1][1])/2)>3*_){var S=e._getCanvasEllipseCenter(b);Aa(n,g,"0",S,_,{color:I,lineDash:E,lineWidth:y})}i=!0;var O=Bl(a,s),x=e._getTextLines(h,s,O);if(x&&0!==x.length){var M=void 0;h.handles.textBox.hasMoved||(M=Ll(C),h.handles.textBox.worldPosition=a.canvasToWorld(M));var R=a.worldToCanvas(h.handles.textBox.worldPosition),N=Za(n,g,"1",x,R,b,{},e.getLinkedTextBoxStyle(d,f)),P=N.x,k=N.y,A=N.width,L=N.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([P,k]),topRight:a.canvasToWorld([P+A,k]),bottomLeft:a.canvasToWorld([P,k+L]),bottomRight:a.canvasToWorld([P+A,k+L])}}}}return i})),J(kr(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,i=r.mean,a=r.stdDev,l=r.max,c=r.isEmptyArea,s=r.Modality,u=r.areaUnit,d=[],v=Vl(s,n);if(o){var f=c?"Area: Oblique not supported":"Area: ".concat(o.toFixed(2)," ").concat(u,"²");d.push(f)}return i&&d.push("Mean: ".concat(i.toFixed(2)," ").concat(v)),l&&d.push("Max: ".concat(l.toFixed(2)," ").concat(v)),a&&d.push("Std Dev: ".concat(a.toFixed(2)," ").concat(v)),d})),J(kr(e),"_calculateCachedStats",(function(t,n,r,o){for(var i=t.data,a=o.viewportId,l=o.renderingEngineId,c=i.handles.points.map((function(e){return n.worldToCanvas(e)})),s=n.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=za(dc(c),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=i.cachedStats,w=Object.keys(m),y=h,E=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r);if(C){var _=C.dimensions,T=C.imageData,D=C.metadata,S=C.hasPixelSpacing,O=av(T,y);O[0]=Math.floor(O[0]),O[1]=Math.floor(O[1]),O[2]=Math.floor(O[2]);var x=av(T,E);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(O,x,_)?function(){var e=[[Math.min(O[0],x[0]),Math.max(O[0],x[0])],[Math.min(O[1],x[1]),Math.max(O[1],x[1])],[Math.min(O[2],x[2]),Math.max(O[2],x[2])]],t={center:[(h[0]+p[0])/2,(h[1]+p[1])/2,(h[2]+p[2])/2],xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},n=iv(u,d,y,E),r=n.worldWidth,o=n.worldHeight,i=0===r&&0===o,a=Math.PI*(r/2)*(o/2),l=0,c=0,s=0,v=-1/0;cl(T,(function(e,n){return vc(t,e)}),(function(e){var t=e.value;t>v&&(v=t),c+=t,l+=1}),e),c/=l,cl(T,(function(e,n){return vc(t,e)}),(function(e){var t=e.value-c;s+=t*t}),e),s/=l,s=Math.sqrt(s),m[b]={Modality:D.Modality,area:a,mean:c,max:v,stdDev:s,isEmptyArea:i,areaUnit:S?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:D.Modality})}}t.invalidated=!1;var M=K.ANNOTATION_MODIFIED,R={annotation:t,viewportId:a,renderingEngineId:l};return(0,z.triggerEvent)(z.eventTarget,M,R),m})),J(kr(e),"_isInsideVolume",(function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=il(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],i=[t[0]-o[0],t[1]-o[1]];return i[0]*i[0]/(n*n)+i[1]*i[1]/(r*r)<=1}},{key:"_getCanvasEllipseCenter",value:function(e){var t=za(e,4),n=t[0],r=t[1],o=t[2],i=t[3],a=[o[0],r[1]],l=[i[0],n[1]];return[(a[0]+l[0])/2,(a[1]+l[1])/2]}}]),o}(Rl);J(lv,"toolName",void 0),lv.toolName="EllipticalROI";var cv=lv;var sv=z.utilities.transformWorldToIndex,uv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"preventHandleOutsideImage",void 0),J(kr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=t.data.handles.points,a=o.worldToCanvas(i[0]),l=o.worldToCanvas(i[1]),c={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}},s=kl([c.start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]);return s<=r||(a=o.worldToCanvas(i[2]),l=o.worldToCanvas(i[3]),(s=kl([(c={start:{x:a[0],y:a[1]},end:{x:l[0],y:l[1]}}).start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]))<=r)})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),Qi(o),t.preventDefault()})),J(kr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,i=n.data;n.highlighted=!0;var a,l=!1;r.worldPosition?l=!0:a=i.handles.points.findIndex((function(e){return e===r}));var c=El(o,e.getToolName());Qi(o),e.editData={annotation:n,viewportIdsToRender:c,handleIndex:a,movingTextBox:l},e._activateModify(o);var s=(0,z.getEnabledElement)(o).renderingEngine;xr(s,c),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var u=c.handles.points,d=wa.vec3.distance(u[0],u[1]);if(wa.vec3.distance(u[2],u[3])>d){var v=[wn(u[2]),wn(u[3])],f=wn(u[0]),g=wn(u[1]),h=wa.vec2.create();wa.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=wa.vec2.create();wa.vec2.set(p,-h[1],h[0]);var m,w=wa.vec2.create();wa.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=wa.vec2.dot(w,p)>0?[f,g]:[g,f],c.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(s,i),a){var y=K.ANNOTATION_COMPLETED,E={annotation:o};(0,z.triggerEvent)(z.eventTarget,y,E)}e.editData=null,e.isDrawing=!1}})),J(kr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o),a=i.renderingEngine,l=i.viewport,c=l.worldToCanvas,s=e.editData,u=s.annotation,d=s.viewportIdsToRender,v=s.handleIndex,f=u.data,g=r.world;f.handles.points[v]=wn(g);var h=f.handles.points.map(c),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],wa.vec2.distance(h[0],h[1])/3),y=p.x-m.x,E=p.y-m.y,I=Math.sqrt(y*y+E*E),b=y/I,C=E/I,_=(p.x+m.x)/2,T=(p.y+m.y)/2,D=_+w*C,S=T-w*b,O=_-w*C,x=T+w*b;f.handles.points[2]=l.canvasToWorld([D,S]),f.handles.points[3]=l.canvasToWorld([O,x]),u.invalidated=!0,xr(a,d),e.editData.hasMoved=!0})),J(kr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r).renderingEngine,i=e.editData,a=i.annotation,l=i.viewportIdsToRender,c=i.handleIndex,s=i.movingTextBox,u=a.data;if(s){var d=n.deltaPoints.world,v=u.handles.textBox,f=v.worldPosition;f[0]+=d[0],f[1]+=d[1],f[2]+=d[2],v.hasMoved=!0}else if(void 0===c){var g=n.deltaPoints.world;u.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),a.invalidated=!0}else e._handleDragModify(t),a.invalidated=!0;xr(o,l)})),J(kr(e),"_handleDragModify",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o).viewport,a=e.editData,l=a.annotation,c=a.handleIndex,s=l.data,u=r.world,d=[i.worldToCanvas(s.handles.points[0]),i.worldToCanvas(s.handles.points[1]),i.worldToCanvas(s.handles.points[2]),i.worldToCanvas(s.handles.points[3])],v={start:{x:d[0][0],y:d[0][1]},end:{x:d[1][0],y:d[1][1]}},f={start:{x:d[2][0],y:d[2][1]},end:{x:d[3][0],y:d[3][1]}},g=wn(u),h=i.worldToCanvas(g);if(0===c||1===c){var p=d[0===c?1:0],m=wa.vec2.set(wa.vec2.create(),h[0]-p[0],h[1]-p[1]),w=wa.vec2.set(wa.vec2.create(),d[c][0]-p[0],d[c][1]-p[1]);wa.vec2.normalize(m,m),wa.vec2.normalize(w,w);var y={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(y,f))return;var E=p,I=e._getSignedAngle(w,m),b=d[2][0],C=d[2][1],_=d[3][0],T=d[3][1];b-=E[0],C-=E[1],_-=E[0],T-=E[1];var D=b*Math.cos(I)-C*Math.sin(I),S=b*Math.sin(I)+C*Math.cos(I),O=_*Math.cos(I)-T*Math.sin(I),x=_*Math.sin(I)+T*Math.cos(I);b=D+E[0],C=S+E[1],_=O+E[0],T=x+E[1];var M=i.canvasToWorld([b,C]),R=i.canvasToWorld([_,T]);s.handles.points[c]=g,s.handles.points[2]=M,s.handles.points[3]=R}else{var N=2===c?3:2,P={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},k=wa.vec2.subtract(wa.vec2.create(),[P.longLineSegment.end.x,P.longLineSegment.end.y],[P.longLineSegment.start.x,P.longLineSegment.start.y]),A=wa.vec2.normalize(wa.vec2.create(),k),L=wa.vec2.subtract(wa.vec2.create(),[h[0],h[1]],[d[c][0],d[c][1]]),U=wa.vec2.length(L),V=e._getSignedAngle(A,L),B=Math.cos(V)*U,F=wa.vec2.scaleAndAdd(wa.vec2.create(),[d[N][0],d[N][1]],A,B);if(e._movingLongAxisWouldPutItThroughShortAxis({start:{x:h[0],y:h[1]},end:{x:F[0],y:F[1]}},{start:{x:P.longLineSegment.start.x,y:P.longLineSegment.start.y},end:{x:P.longLineSegment.end.x,y:P.longLineSegment.end.y}}))return;if(!Gc([h[0],h[1]],[F[0],F[1]],[v.start.x,v.start.y],[v.end.x,v.end.y]))return;s.handles.points[N]=i.canvasToWorld(F),s.handles.points[c]=g}})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!0,a=t.viewport,l=a.element,c=Be(a.element,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return a.worldToCanvas(e)}));d.annotationUID=g;var E=e.getStyle("lineWidth",d,f),I=e.getStyle("lineDash",d,f),b=e.getStyle("color",d,f),C=e.getStyle("shadow",d,f);if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,u,t):(h.cachedStats[s]={length:null,width:null,unit:null},e._calculateCachedStats(f,u,t)),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;var _=void 0;if(Se(g)){oe(f)||e.editData||null===w||(_=[y[w]]),_&&Ua(n,g,"0",_,{color:b});var T="".concat(g,"-line-1"),D="".concat(g,"-line-2");Va(n,g,"0",y[0],y[1],{color:b,lineDash:I,lineWidth:E,shadow:C},T),Va(n,g,"1",y[2],y[3],{color:b,lineDash:I,lineWidth:E,shadow:C},D),i=!0;var S=e._getTextLines(h,s);if(S&&0!==S.length){var O=void 0;h.handles.textBox.hasMoved||(O=Ll(y),h.handles.textBox.worldPosition=a.canvasToWorld(O));var x=a.worldToCanvas(h.handles.textBox.worldPosition),M=Za(n,g,"1",S,x,y,{},e.getLinkedTextBoxStyle(d,f)),R=M.x,N=M.y,P=M.width,k=M.height;h.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([R,N]),topRight:a.canvasToWorld([R+P,N]),bottomLeft:a.canvasToWorld([R,N+k]),bottomRight:a.canvasToWorld([R+P,N+k])}}}}return i})),J(kr(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=wa.vec2.create();wa.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),wa.vec2.normalize(n,n);var r={start:{x:t.start.x-10*n[0],y:t.start.y-10*n[1]},end:{x:t.end.x+10*n[0],y:t.end.y+10*n[1]}};return!Gc([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),J(kr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width,i=n.unit;if(void 0!==r)return["L: ".concat(r.toFixed(2)," ").concat(i),"W: ".concat(o.toFixed(2)," ").concat(i)]})),J(kr(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,i=r.viewportId,a=r.renderingEngineId,l=o.handles.points[0],c=o.handles.points[1],s=o.handles.points[2],u=o.handles.points[3],d=o.cachedStats,v=Object.keys(d),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n);if(h){var p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,y=e._calculateLength(l,c),E=e._calculateLength(s,u),I=y>E?y:E,b=y>E?E:y,C=sv(p,l),_=sv(p,c),T=sv(p,s),D=sv(p,u);e._isInsideVolume(C,_,T,D,m)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,d[g]={length:I,width:b,unit:w?"mm":"px"}}}t.invalidated=!1;var S=K.ANNOTATION_MODIFIED,O={annotation:t,viewportId:i,renderingEngineId:a};return(0,z.triggerEvent)(z.eventTarget,S,O),d})),J(kr(e),"_isInsideVolume",(function(e,t,n,r,o){return z.utilities.indexWithinDimensions(e,o)&&z.utilities.indexWithinDimensions(t,o)&&z.utilities.indexWithinDimensions(n,o)&&z.utilities.indexWithinDimensions(r,o)})),J(kr(e),"_getSignedAngle",(function(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],e[0]*t[0]+e[1]*t[1])})),e._throttledCalculateCachedStats=il(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,i=(0,z.getEnabledElement)(r),a=i.viewport,l=i.renderingEngine;this.isDrawing=!0;var c=a.getCamera(),s=c.viewPlaneNormal,u=c.viewUp,d=this.getReferencedImageId(a,o,s,u),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:wn(s),viewUp:wn(u),FrameOfReferenceUID:a.getFrameOfReferenceUID(),referencedImageId:d},data:{handles:{points:[wn(o),wn(o),wn(o),wn(o)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},label:"",cachedStats:{}}};Fe(r,v);var f=El(r,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:f,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),Qi(r),e.preventDefault(),xr(l,f),v}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}}]),o}(Rl);J(uv,"toolName",void 0),uv.toolName="Bidirectional";var dv=uv;var vv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,getTextCallback:fv,changeTextCallback:gv,preventHandleOutsideImage:!1,arrowFirst:!0}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;Qi(o),e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f=e.configuration.arrowFirst,g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{text:"",handles:{points:[wn(i),wn(i)],activeHandleIndex:null,arrowFirst:f,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:""}};Fe(o,g);var h=El(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),xr(c,h),g})),J(kr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=za(t.data.handles.points,2),a=i[0],l=i[1],c=o.worldToCanvas(a),s=o.worldToCanvas(l),u={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return kl([u.start.x,u.start.y],[u.end.x,u.end.y],[n[0],n[1]])<=r})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),Qi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),a&&e.configuration.getTextCallback((function(t){if(!t)return We(o.annotationUID,n),xr(s,i),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var r=K.ANNOTATION_COMPLETED,a={annotation:o};(0,z.triggerEvent)(z.eventTarget,r,a),xr(s,i)})),e.editData=null,e.isDrawing=!1}})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=wn(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;xr(h,a)})),J(kr(e),"doubleClickCallback",(function(t){var n=t.detail,r=n.element,o=(0,z.getEnabledElement)(r),i=(o.viewportId,o.renderingEngineId,o.renderingEngine,Be(r,e.getToolName()));if(i=e.filterInteractableAnnotationsForElement(r,i)){var a=i.find((function(t){return e.isPointNearTool(r,t,n.currentPoints.canvas,6)}));if(a){var l=a;e.configuration.changeTextCallback(a,t.detail,e._doneChangingTextCallback.bind(kr(e),r,l)),e.editData=null,e.isDrawing=!1,t.stopImmediatePropagation(),t.preventDefault()}}})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<c.length;u++){var d=c[u],v=d.annotationUID,f=d.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;s.annotationUID=v;var w=e.getStyle("lineWidth",s,d),y=e.getStyle("lineDash",s,d),E=e.getStyle("color",s,d),I=p.map((function(e){return a.worldToCanvas(e)})),b=void 0;if(oe(d)||e.editData||null===m||(b=[I[m]]),b&&Ua(n,v,"0",I,{color:E,lineWidth:w}),e.configuration.arrowFirst?Xa(n,v,"1",I[1],I[0],{color:E,width:w,lineDash:y}):Xa(n,v,"1",I[0],I[1],{color:E,width:w,lineDash:y}),i=!0,!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;if(h){if(!f.handles.textBox.hasMoved){var C=Ll(I);f.handles.textBox.worldPosition=a.canvasToWorld(C)}var _=a.worldToCanvas(f.handles.textBox.worldPosition),T=Za(n,v,"1",[h],_,I,{},e.getLinkedTextBoxStyle(s,d)),D=T.x,S=T.y,O=T.width,x=T.height;f.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([D,S]),topRight:a.canvasToWorld([D+O,S]),bottomLeft:a.canvasToWorld([D,S+x]),bottomRight:a.canvasToWorld([D+O,S+x])}}}return i})),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=El(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),Qi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;xr(c,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,z.getEnabledElement)(e),o=r.renderingEngine,i=r.viewportId,a=r.renderingEngineId,l=El(e,this.getToolName());xr(o,l);var c=K.ANNOTATION_MODIFIED;(0,z.triggerEvent)(z.eventTarget,c,{annotation:t,viewportId:i,renderingEngineId:a})}},{key:"_isInsideVolume",value:function(e,t,n){return z.utilities.indexWithinDimensions(e,n)&&z.utilities.indexWithinDimensions(t,n)}}]),o}(Rl);function fv(e){return e(prompt("Enter your annotation:"))}function gv(e,t,n){return n(prompt("Enter your annotation:"))}J(vv,"toolName",void 0),vv.toolName="ArrowAnnotate";var hv=vv;var pv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"angleStartedNotYetCompleted",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"addNewAnnotation",(function(t){if(!e.angleStartedNotYetCompleted){e.angleStartedNotYetCompleted=!0;var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;Qi(o),e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.getReferencedImageId(l,i,u,d),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[wn(i),wn(i)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Fe(o,f);var g=El(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),xr(c,g),f}})),J(kr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,z.getEnabledElement)(e).viewport,i=za(t.data.handles.points,3),a=i[0],l=i[1],c=i[2],s=o.worldToCanvas(a),u=o.worldToCanvas(l),d=o.worldToCanvas(c),v={start:{x:s[0],y:s[1]},end:{x:u[0],y:u[1]}},f={start:{x:u[0],y:u[1]},end:{x:d[0],y:d[1]}},g=kl([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=kl([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),J(kr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var i=El(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:i,movingTextBox:!1},e._activateModify(o),Qi(o);var a=(0,z.getEnabledElement)(o).renderingEngine;xr(a,i),t.preventDefault()})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.viewportIdsToRender,a=r.newAnnotation,l=r.hasMoved,c=o.data;if(!a||l)if(e.angleStartedNotYetCompleted&&2===c.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Xi(n);var s=(0,z.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&We(o.annotationUID,n),xr(s,i),a){var u=K.ANNOTATION_COMPLETED,d={annotation:o};(0,z.triggerEvent)(z.eventTarget,u,d)}e.editData=null,e.isDrawing=!1}})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,i=o.annotation,a=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=i.data;if(c){var u=n.deltaPoints.world,d=s.handles.textBox,v=d.worldPosition;v[0]+=u[0],v[1]+=u[1],v[2]+=u[2],d.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),i.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=wn(g),i.invalidated=!0}e.editData.hasMoved=!0;var h=(0,z.getEnabledElement)(r).renderingEngine;xr(h,a)})),J(kr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Xi(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,i=n.newAnnotation,a=r.data;r.highlighted=!1,a.handles.activeHandleIndex=null;var l=(0,z.getEnabledElement)(t).renderingEngine;if(xr(l,o),i){var c=K.ANNOTATION_COMPLETED,s={annotation:r};(0,z.triggerEvent)(z.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),J(kr(e),"_activateModify",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateModify",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=a.element,c=Be(l,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return i;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return i;for(var s=e.getTargetId(a),u=a.getRenderingEngine(),d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,y=m.activeHandleIndex;d.annotationUID=h;var E=e.getStyle("lineWidth",d,g),I=e.getStyle("lineDash",d,g),b=e.getStyle("color",d,g),C=w.map((function(e){return a.worldToCanvas(e)}));p.cachedStats[s]?g.invalidated&&e._throttledCalculateCachedStats(g,u,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,u,t));var _=void 0;if(oe(g)||e.editData||null===y||(_=[C[y]]),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;_&&Ua(n,h,"0",C,{color:b,lineDash:I,lineWidth:E});var T="1";if(Va(n,h,T,C[0],C[1],{color:b,width:E,lineDash:I}),i=!0,3!==C.length)return i;if(Va(n,h,T="2",C[1],C[2],{color:b,width:E,lineDash:I}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var D=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var S=Ll(C);p.handles.textBox.worldPosition=a.canvasToWorld(S)}var O=a.worldToCanvas(p.handles.textBox.worldPosition),x=Za(n,h,"1",D,O,C,{},e.getLinkedTextBoxStyle(d,g)),M=x.x,R=x.y,N=x.width,P=x.height;p.handles.textBox.worldBoundingBox={topLeft:a.canvasToWorld([M,R]),topRight:a.canvasToWorld([M+N,R]),bottomLeft:a.canvasToWorld([M,R+P]),bottomRight:a.canvasToWorld([M+N,R+P])}}}return i})),e._throttledCalculateCachedStats=il(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var i,a=!1;n.worldPosition?a=!0:i=o.handles.points.findIndex((function(e){return e===n}));var l=El(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:i,movingTextBox:a},this._activateModify(r),Qi(r);var c=(0,z.getEnabledElement)(r).renderingEngine;xr(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,i=n.renderingEngineId;if(3===r.handles.points.length){for(var a,l,c,s,u,d,v,f,g,h,p=r.handles.points[0],m=r.handles.points[1],w=r.handles.points[2],y=r.cachedStats,E=Object.keys(y),I=0;I<E.length;I++){var b=E[I],C=(a=[m,w],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,c=(l=za([p,m],2))[0],s=l[1],d=(u=za(a,2))[0],v=u[1],f=wa.vec3.sub(wa.vec3.create(),s,c),g=wa.vec3.sub(wa.vec3.create(),d,v),h=wa.vec3.dot(f,g)/(wa.vec3.length(f)*wa.vec3.length(g)),180*Math.acos(h)/Math.PI);y[b]={angle:C}}e.invalidated=!1;var _=K.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:i};return(0,z.triggerEvent)(z.eventTarget,_,T),y}}}]),o}(Rl);J(pv,"toolName",void 0),pv.toolName="Angle";var mv=pv;var wv="magnify-viewport",yv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{magnifySize:10,magnifyWidth:250,magnifyHeight:250}};return Y(this,o),J(kr(e=r.call(this,t,n)),"mouseDragCallback",void 0),J(kr(e),"_bounds",void 0),J(kr(e),"editData",void 0),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=(0,z.getEnabledElement)(o),a=i.viewport,l=i.renderingEngine;if(!(a instanceof z.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var c=e._getReferencedImageId(a);if(!c)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var s=El(o,e.getToolName());return e.editData={referencedImageId:c,viewportIdsToRender:s,enabledElement:i,renderingEngine:l,currentPoints:r},e._createMagnificationViewport(),e._activateDraw(o),Qi(o),t.preventDefault(),xr(l,s),!0})),J(kr(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,i=n.viewportIdsToRender,a=n.renderingEngine,l=n.currentPoints,c=r.viewport,s=c.element,u=c.getProperties().voiRange,d=l.canvas,v=l.world;if(null===(t=s.querySelector(".magnifyTool"))){var f=document.createElement("div");f.classList.add("magnifyTool"),f.style.display="block",f.style.width="".concat(e.configuration.magnifyWidth,"px"),f.style.height="".concat(e.configuration.magnifyHeight,"px"),f.style.position="absolute",t=f,s.querySelector(".viewport-element").appendChild(f);var g={viewportId:wv,type:z.Enums.ViewportType.STACK,element:t};a.enableElement(g)}t.style.top="".concat(d[1]-e.configuration.magnifyHeight/2,"px"),t.style.left="".concat(d[0]-e.configuration.magnifyWidth/2,"px");var h=a.getViewport(wv);h.setStack([o]).then((function(){h.setProperties({voiRange:u});var t=c.getCamera().parallelScale,n=h.getCamera(),r=n.focalPoint,o=n.position,i=n.viewPlaneNormal,a=Math.sqrt(Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2)),l=[v[0],v[1],v[2]],s=[l[0]+a*i[0],l[1]+a*i[1],l[2]+a*i[2]];h.setCamera({parallelScale:t*(1/e.configuration.magnifySize),focalPoint:l,position:s}),h.render()})),t.style.display="block",xr(a,i)})),J(kr(e),"_mouseDragCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.deltaPoints,i=n.element,a=o.world,l=r.canvas,c=(0,z.getEnabledElement)(i).renderingEngine.getViewport(wv),s=i.querySelector(".magnifyTool");if(s){s.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),s.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var u=c.getCamera(),d=u.focalPoint,v=u.position,f=[v[0]+a[0],v[1]+a[1],v[2]+a[2]],g=[d[0]+a[0],d[1]+a[1],d[2]+a[2]];c.setCamera({focalPoint:g,position:f}),c.render()}})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element;(0,z.getEnabledElement)(n).renderingEngine.disableElement(wv);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),Xi(n)})),J(kr(e),"_activateDraw",(function(t){bn.isInteractingWithTool=!0,t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){bn.isInteractingWithTool=!1,t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),e}return Z(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof z.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(Kr);J(yv,"toolName",void 0),yv.toolName="Magnify";var Ev=yv;var Iv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}};return Y(this,o),J(kr(e=r.call(this,t,n)),"touchDragCallback",void 0),J(kr(e),"mouseDragCallback",void 0),J(kr(e),"_throttledCalculateCachedStats",void 0),J(kr(e),"isDrawing",!1),J(kr(e),"isHandleOutsideImage",!1),J(kr(e),"_elementWithCursor",null),J(kr(e),"_currentCursorWorldPosition",null),J(kr(e),"_currentCanvasPosition",null),J(kr(e),"_disableCursorEnabled",!1),J(kr(e),"mouseMoveCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints;e._currentCursorWorldPosition=o.world,e._currentCanvasPosition=o.canvas,e._elementWithCursor=r;var i=e.getActiveAnnotation(r);return null===i?(e.createInitialAnnotation(o.world,r),!1):(e.updateAnnotationPosition(r,i),!1)})),J(kr(e),"createInitialAnnotation",(function(t,n){var r=(0,z.getEnabledElement)(n);if(!r)throw new Error("No enabled element found");var o=r.viewport,i=r.renderingEngine;e.isDrawing=!0;var a=o.getCamera(),l=a.viewPlaneNormal,c=a.viewUp;if(!l||!c)throw new Error("Camera not found");var s=e.getReferencedImageId(o,t,l,c),u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:wn(l),viewUp:wn(c),FrameOfReferenceUID:o.getFrameOfReferenceUID(),referencedImageId:s},data:{label:"",handles:{points:[wn(t)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(null!==e._addAnnotation(n,u)){var d=El(n,e.getToolName(),!1);xr(i,d)}})),J(kr(e),"onCameraModified",(function(t){var n=t.detail,r=n.element,o=n.previousCamera,i=n.camera,a=(0,z.getEnabledElement)(r).viewport;if(r===e._elementWithCursor){var l=o.focalPoint,c=i.viewPlaneNormal,s=i.focalPoint,u=[0,0,0];if(rs().subtract(s,l,u),0!==u.reduce((function(e,t){return e+t}),0)){var d=rs().dot(u,c);if(!(Math.abs(d)<.01)&&e._currentCanvasPosition){var v=a.canvasToWorld(e._currentCanvasPosition);e._currentCursorWorldPosition=v,e.updateAnnotationPosition(r,e.getActiveAnnotation(r))}}}})),J(kr(e),"renderAnnotation",(function(t,n){var r,o,i=!1,a=t.viewport,l=e._elementWithCursor===a.element;e.configuration.positionSync&&!l&&e.updateViewportImage(a);var c=a.element,s=Be(c,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return i;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return i;for(var u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<s.length;d++){var v=s[d],f=v.annotationUID,g=v.data.handles.points;if(!f)return i;u.annotationUID=f;var h=parseFloat(e.getStyle("lineWidth",u,v)),p=e.getStyle("lineDash",u,v),m=e.getStyle("color",u,v);if(g[0].some((function(e){return isNaN(e)})))return i;var w=g.map((function(e){return a.worldToCanvas(e)}));if(!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),i;if(Se(f)){var y={upper:"upper",right:"right",lower:"lower",left:"left"},E=za(w[0],2),I=E[0],b=E[1],C=l?20:7,_=l?5:7;Va(n,f,y.upper,[I,b-(C/2+_)],[I,b-C/2],{color:m,lineDash:p,lineWidth:h}),Va(n,f,y.lower,[I,b+(C/2+_)],[I,b+C/2],{color:m,lineDash:p,lineWidth:h}),Va(n,f,y.right,[I+(C/2+_),b],[I+C/2,b],{color:m,lineDash:p,lineWidth:h}),Va(n,f,y.left,[I-(C/2+_),b],[I-C/2,b],{color:m,lineDash:p,lineWidth:h}),i=!0}}return i})),e._disableCursorEnabled=e.configuration.disableCursor,e}return Z(o,[{key:"onSetToolActive",value:function(){if(this._disableCursorEnabled=this.configuration.disableCursor,this._disableCursorEnabled){var e=Pr(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,z.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Qi(e.viewport.element)}))}}},{key:"onSetToolDisabled",value:function(){if(this._disableCursorEnabled){var e=Pr(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,z.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Xi(e.viewport.element)}))}}},{key:"_addAnnotation",value:function(e,t){var n=Be(e,this.getToolName());return n instanceof Array&&n.length>0?null:Fe(e,t)}},{key:"getActiveAnnotation",value:function(e){var t=Be(e,this.getToolName());return void 0===t||0===t.length?null:t[0]}},{key:"updateAnnotationPosition",value:function(e,t){var n,r,o=this._currentCursorWorldPosition;if(o&&null!==(n=t.data)&&void 0!==n&&null!==(r=n.handles)&&void 0!==r&&r.points){t.data.handles.points=[wn(o)],t.invalidated=!0;var i=El(e,this.getToolName(),!1),a=(0,z.getEnabledElement)(e);if(a){var l=a.renderingEngine;xr(l,i)}}}},{key:"filterInteractableAnnotationsForElement",value:function(e,t){var n,r,o;if(!(t instanceof Array)||0===t.length)return[];var i=t[0],a=null===(n=(0,z.getEnabledElement)(e))||void 0===n?void 0:n.viewport;if(!a)return[];var l=a.getCamera(),c=l.viewPlaneNormal,s=l.focalPoint;if(!c||!s)return[];var u=null===(r=i.data)||void 0===r||null===(o=r.handles)||void 0===o?void 0:o.points;if(!(u instanceof Array)||1!==u.length)return[];var d=u[0],v=z.utilities.planar.planeEquation(c,s);return z.utilities.planar.planeDistanceToPoint(v,d)<this.configuration.displayThreshold?[i]:[]}},{key:"updateViewportImage",value:function(e){var t=this._currentCursorWorldPosition;if(t&&!t.some((function(e){return isNaN(e)})))if(e instanceof z.StackViewport){var n=z.utilities.getClosestStackImageIndexForPoint(t,e);if(null===n)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof z.VolumeViewport){var r=e.getCamera(),o=r.focalPoint,i=r.viewPlaneNormal;if(!o||!i)return;var a=z.utilities.planar.planeEquation(i,o),l=z.utilities.planar.planeDistanceToPoint(a,t,!0);if(Math.abs(l)<.5)return;var c=wa.vec3.normalize(wa.vec3.create(),wa.vec3.fromValues.apply(wa.vec3,wn(i))),s=wa.vec3.scale(wa.vec3.create(),c,l),u=wa.vec3.add(wa.vec3.create(),wa.vec3.fromValues.apply(wa.vec3,wn(o)),s);e.setCamera({focalPoint:u});var d=e.getRenderingEngine();d&&d.renderViewport(e.id)}}}]),o}(Sl);J(Iv,"toolName",void 0),Iv.toolName="ReferenceCursors";var bv=Iv,Cv=z.utilities.transformWorldToIndex;function _v(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentIndex,a=t.segmentationId,l=t.constraintFn,c=n.imageData,s=n.dimensions,u=n.scalarData,d=r.map((function(e){return Cv(c,e)}));d=d.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=sl(d,s);if(v.every((function(e){var t=za(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");cl(c,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(u[n]=i):u[n]=i)}),v),it(a)}(0,t)}var Tv=z.utilities.transformWorldToIndex;function Dv(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,i=t.segmentationId,a=n.imageData,l=n.dimensions,c=n.scalarData,s=r.map((function(e){return Tv(a,e)})),u=sl(s,l);if(u.every((function(e){var t=za(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");cl(a,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(c[n]=0)}),u),it(i)}(0,t)}var Sv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:_v,ERASE_INSIDE:Dv},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(kr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),J(kr(e),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o),l=a.viewport,c=a.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),u=s.viewPlaneNormal,d=s.viewUp,v=e.toolGroupId,f=Ic(v);if(!f)throw new Error("No active segmentation detected, create one before using scissors tool");var g=f.segmentationRepresentationUID,h=f.segmentationId,p=f.type,m=Sc(h),w=Tc(h),y=Mc(v,g,m),E=st(h).representationData[p].volumeId,I=z.cache.getVolume(E),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:wn(u),viewUp:wn(d),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null}}},C=El(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:m,segmentsLocked:w,segmentColor:y,segmentationId:h,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(c,C),!0})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,i,a,l,c,s,u=t.detail,d=u.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=u.currentPoints,w=(0,z.getEnabledElement)(d),y=w.viewport,E=y.worldToCanvas,I=y.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=wn(b),h){case 0:case 3:n=E(C[0]),r=[(i=E(C[3]))[0],n[1]],o=[n[0],i[1]],l=I(r),c=I(o),C[1]=l,C[2]=c;break;case 1:case 2:r=E(C[1]),n=[(o=E(C[2]))[0],r[1]],i=[r[0],o[1]],a=I(n),s=I(i),C[0]=a,C[3]=s}f.invalidated=!0,e.editData.hasMoved=!0;var _=w.renderingEngine;xr(_,g)})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentationId,s=r.segmentIndex,u=r.segmentsLocked,d=o.data;if(!i||a){d.handles.activeHandleIndex=null,e._deactivateDraw(n),Xi(n);var v=(0,z.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof z.StackViewport)throw new Error("Not implemented yet");var g={points:d.handles.points,volume:l,segmentationId:c,segmentIndex:s,segmentsLocked:u};e.applyActiveStrategy(v,g)}})),J(kr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport,i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Ja(n,l,"0",c[0],c[3],{color:s}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Kr);J(Sv,"toolName",void 0),Sv.toolName="RectangleScissor";var Ov=Sv;var xv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:pc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(kr(e=r.call(this,t,n)),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.toolGroupId,g=Ic(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Sc(p),y=Tc(p),E=Mc(f,h,w),I=st(p).representationData[m].volumeId,b=z.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:wn(d),viewUp:wn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},_=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentationId:p,segmentsLocked:y,segmentColor:E,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(s,_),!0})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=Math.sqrt(f*f+g*g),p=[d[0],d[1]+h],m=[d[0],d[1]-h],w=[d[0]-h,d[1]],y=[d[0]+h,d[1]];v.handles.points=[l(p),l(m),l(w),l(y)],s.invalidated=!0,e.editData.hasMoved=!0,xr(a,u)})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,u=r.segmentationId,d=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){d.handles.activeHandleIndex=null,e._deactivateDraw(n),Xi(n);var h=(0,z.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof z.StackViewport)throw new Error("Not implemented yet");var m={points:d.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,viewPlaneNormal:f,segmentationId:u,viewUp:g};e.applyActiveStrategy(h,m)}})),J(kr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport;if(!e.editData.viewportIdsToRender.includes(o.id))return r;var i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],u=c[1],d=[Math.floor((s[0]+u[0])/2),Math.floor((s[1]+u[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+u[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Aa(n,l,"0",d,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Kr);J(xv,"toolName",void 0),xv.toolName="CircleScissor";var Mv=xv;var Rv=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE:sc},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Y(this,o),J(kr(e=r.call(this,t,n)),"editData",void 0),J(kr(e),"isDrawing",void 0),J(kr(e),"isHandleOutsideImage",void 0),J(kr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=r.canvas,l=(0,z.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var u=c.getCamera(),d=u.viewPlaneNormal,v=u.viewUp,f=e.toolGroupId,g=Ic(f);if(!g)throw new Error("No active segmentation detected, create one before using scissors tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Sc(p),y=Tc(p),E=Mc(f,h,w),I=st(p).representationData[m].volumeId,b=z.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:wn(d),viewUp:wn(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{invalidated:!0,handles:{points:[wn(i),wn(i),wn(i),wn(i)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},_=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:a,segmentIndex:w,segmentsLocked:y,segmentColor:E,segmentationId:p,toolGroupId:f,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Qi(o),t.preventDefault(),xr(s,_),!0})),J(kr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,i=(0,z.getEnabledElement)(r),a=i.renderingEngine,l=i.viewport.canvasToWorld,c=e.editData,s=c.annotation,u=c.viewportIdsToRender,d=c.centerCanvas,v=s.data,f=Math.abs(o[0]-d[0]),g=Math.abs(o[1]-d[1]),h=Math.sqrt(f*f+g*g),p=[d[0],d[1]+h],m=[d[0],d[1]-h],w=[d[0]-h,d[1]],y=[d[0]+h,d[1]];v.handles.points=[l(p),l(m),l(w),l(y)],s.invalidated=!0,e.editData.hasMoved=!0,xr(a,u)})),J(kr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,i=r.newAnnotation,a=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,u=r.segmentationId,d=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!i||a){o.highlighted=!1,d.handles.activeHandleIndex=null,e._deactivateDraw(n),Xi(n);var h=(0,z.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof z.StackViewport)throw new Error("Not implemented yet");var m={points:d.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,segmentationId:u,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),J(kr(e),"_activateDraw",(function(t){t.addEventListener(K.MOUSE_UP,e._mouseUpCallback),t.addEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"_deactivateDraw",(function(t){t.removeEventListener(K.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(K.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(K.MOUSE_CLICK,e._mouseUpCallback)})),J(kr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport;if(!e.editData.viewportIdsToRender.includes(o.id))return r;var i=e.editData.annotation,a=i.metadata,l=i.annotationUID,c=i.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],u=c[1],d=[Math.floor((s[0]+u[0])/2),Math.floor((s[1]+u[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+u[1])/2)),f="rgb(".concat(a.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Aa(n,l,"0",d,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(Kr);J(Rv,"toolName",void 0),Rv.toolName="SphereScissor";var Nv=Rv;var Pv=z.utilities.transformWorldToIndex,kv=z.utilities.isEqual,Av=function(e){Lr(o,e);var t,n,r=(t=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=Br(t);if(n){var o=Br(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return Vr(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Y(this,o),J(kr(e=r.call(this,t,n)),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,i=r.world,a=(0,z.getEnabledElement)(o).viewport.getCamera().viewPlaneNormal,l=Ic(e.toolGroupId);if(!l)throw new Error("No active segmentation detected, create one before using scissors tool");var c=l.segmentationId,s=l.type,u=Sc(c),d=Tc(c),v=st(c).representationData[s].volumeId,f=z.cache.getVolume(v),g=f.scalarData,h=f.dimensions,p=f.direction,m=Pv(f.imageData,i),w=e.getFixedDimension(a,p);if(void 0!==w){var y=e.generateHelpers(g,h,m,w),E=y.floodFillGetter,I=y.getLabelValue,b=y.getScalarDataPositionFromPlane,C=y.inPlaneSeedPoint,_=y.fixedDimensionValue;if(!(m[0]<0||m[0]>=h[0]||m[1]<0||m[1]>=h[1]||m[2]<0||m[2]>=h[2])){var T=I(m[0],m[1],m[2]);if(!d.includes(T)){var D=cc(E,C);return D.flooded.forEach((function(e){var t=b(e[0],e[1]);g[t]=u})),it(c,e.getFramesModified(w,_,D)),!0}}}else console.warn("Oblique paint fill not yet supported")})),J(kr(e),"getFramesModified",(function(e,t,n){var r=n.boundaries;if(2===e)return[t];for(var o=1/0,i=-1/0,a=0;a<r.length;a++){var l=r[a][1];l<o&&(o=l),l>i&&(i=l)}for(var c=[],s=o;s<=i;s++)c.push(s);return c})),J(kr(e),"generateHelpers",(function(t,n,r){var o,i,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2;switch(a){case 0:o=r[0],i=[r[1],r[2]];break;case 1:o=r[1],i=[r[0],r[2]];break;case 2:o=r[2],i=[r[0],r[1]];break;default:throw new Error("Invalid fixedDimension: ".concat(a))}var l=function(e,t,r){return r*n[1]*n[0]+t*n[0]+e},c=function(e,n,r){return t[l(e,n,r)]},s=e.generateFloodFillGetter(n,a,o,c),u=e.generateGetScalarDataPositionFromPlane(l,a,o);return{getScalarDataPositionFromPlane:u,getLabelValue:c,floodFillGetter:s,inPlaneSeedPoint:i,fixedDimensionValue:o}})),J(kr(e),"generateFloodFillGetter",(function(e,t,n,r){var o;switch(t){case 0:o=function(t,o){if(!(t>=e[1]||t<0||o>=e[2]||o<0))return r(n,t,o)};break;case 1:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[2]||o<0))return r(t,n,o)};break;case 2:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[1]||o<0))return r(t,o,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return o})),J(kr(e),"generateGetScalarDataPositionFromPlane",(function(e,t,n){var r;switch(t){case 0:r=function(t,r){return e(n,t,r)};break;case 1:r=function(t,r){return e(t,n,r)};break;case 2:r=function(t,r){return e(t,r,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return r})),e}return Z(o,[{key:"getFixedDimension",value:function(e,t){var n=t.slice(0,3),r=t.slice(3,6),o=t.slice(6,9),i=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],a=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(kv(i,a))return 0;var l=[Math.abs(r[0]),Math.abs(r[1]),Math.abs(r[2])];if(kv(i,l))return 1;var c=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];return kv(i,c)?2:void 0}}]),o}(Kr);J(Av,"toolName",void 0),Av.toolName="PaintFill";var Lv=Av}(),s}()}));
|
|
3
3
|
//# sourceMappingURL=index.js.map
|