@cornerstonejs/tools 0.20.12 → 0.20.15

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/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,a){return function(){var i={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,a=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},l=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.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,a=Object.create(o.prototype),i=new D(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=C(i,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 s=v(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===f)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(e,n,i),a}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(O([])));y&&y!==n&&a.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,i,l,s){var c=v(e[o],e,i);if("throw"!==c.type){var d=c.arg,u=d.value;return u&&"object"==r(u)&&a.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,l,s)}),(function(e){n("throw",e,l,s)})):t.resolve(u).then((function(e){d.value=e,l(d)}),(function(e){return n("throw",e,l,s)}))}s(c.arg)}var o;this._invoke=function(e,r){function a(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(a,a):a()}}function 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 O(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(a.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:S}}function S(){return{value:void 0,done:!0}}return h.prototype=p,d(E,"constructor",p),d(p,"constructor",h),h.displayName=d(p,c,"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,c,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},I(b.prototype),d(b.prototype,s,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new b(u(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},I(E),d(E,c,"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=O,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)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return i.type="throw",i.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],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=a.call(o,"catchLoc"),s=a.call(o,"finallyLoc");if(l&&s){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(!s)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&&a.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 i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),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:O(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,a="[object Arguments]",i="[object Boolean]",l="[object Date]",s="[object Function]",c="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",y="[object ArrayBuffer]",E="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",T="[object Int32Array]",D="[object Uint8Array]",O="[object Uint8ClampedArray]",S="[object Uint16Array]",x="[object Uint32Array]",M=/\w*$/,R=/^\[object .+?Constructor\]$/,N=/^(?:0|[1-9]\d*)$/,k={};k[a]=k["[object Array]"]=k[y]=k[E]=k[i]=k[l]=k[I]=k[b]=k[C]=k[_]=k[T]=k[d]=k[u]=k[v]=k[g]=k[h]=k[p]=k[m]=k[D]=k[O]=k[S]=k[x]=!0,k["[object Error]"]=k[s]=k[w]=!1;var P="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=P||A||Function("return this")(),U=t&&!t.nodeType&&t,V=U&&e&&!e.nodeType&&e,B=V&&V.exports===U;function j(e,t){return e.set(t[0],t[1]),e}function F(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,a=e?e.length:0;for(r&&a&&(n=e[++o]);++o<a;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function H(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=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,ae=L.Uint8Array,ie=H(Object.getPrototypeOf,Object),le=Object.create,se=Z.propertyIsEnumerable,ce=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=H(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=Fe(fe),Ee=Fe(ge),Ie=Fe(he),be=Fe(pe),Ce=Fe(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 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 Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Oe(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 P=Ve(e),A=P==s||P==c;if(He(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(P==v||P==a||A&&!f){if(G(e))return f?e:{};if(R=function(e){return"function"!=typeof e.constructor||je(e)?{}:Ke(t=ie(e))?le(t):{};var t}(A?{}:e),!t)return function(e,t){return Pe(e,Ue(e),t)}(e,function(e,t){return e&&Pe(t,Ye(t),e)}(R,e))}else{if(!k[P])return f?e:{};R=function(e,t,n,r){var o,a=e.constructor;switch(t){case y:return ke(e);case i:case l:return new a(+e);case E:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case _:case T:case D:case O:case S:case x:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return W(t?n(q(e),!0):q(e),j,new e.constructor)}(e,r,n);case u:case p:return new a(e);case g:return function(e){var t=new e.constructor(e.source,M.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),F,new e.constructor)}(e,r,n);case m:return o=e,Te?Object(Te.call(o)):{}}}(e,P,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,a){U&&(o=e[a=o]),Me(R,a,Ne(o,t,n,r,a,e,w))})),R}function ke(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Pe(e,t,n,r){n||(n={});for(var o=-1,a=t.length;++o<a;){var i=t[o],l=r?r(n[i],e[i],i,n,e):void 0;Me(n,i,void 0===l?e[i]: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(Fe(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},Oe.prototype.clear=function(){this.__data__=[]},Oe.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():ce.call(t,n,1),0))},Oe.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Oe.prototype.has=function(e){return Re(this.__data__,e)>-1},Oe.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new De,map:new(ge||Oe),string:new De}},Se.prototype.delete=function(e){return Ae(this,e).delete(e)},Se.prototype.get=function(e){return Ae(this,e).get(e)},Se.prototype.has=function(e){return Ae(this,e).has(e)},Se.prototype.set=function(e,t){return Ae(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Oe},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 Oe){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};var Ue=de?H(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 je(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Z)}function Fe(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&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?Fe(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 qe(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var He=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==s||t==c}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return qe(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&qe(e)}(e)&&ee.call(e,"callee")&&(!se.call(e,"callee")||te.call(e)==a)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var i in e)!t&&!ee.call(e,i)||o&&("length"==i||Be(i,r))||n.push(i);return n}(e):function(e){if(!je(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__",a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/,l=/^\./,s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/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=P(f,"Map"),D=P(Object,"create"),O=C?C.prototype:void 0,S=O?O.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 k(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 P(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 k(this,e).delete(e)},R.prototype.get=function(e){return k(this,e).get(e)},R.prototype.has=function(e){return k(this,e).has(e)},R.prototype.set=function(e,t){return k(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(j(e))return S?S.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(s,(function(e,t,r,o){n.push(r?o.replace(c,"$1"):t||e)})),n}));function L(e){if("string"==typeof e||j(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],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i),i};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 j(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&&!j(e))||i.test(e)||!a.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=a},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return i[e](n,n.exports,s),n.loaded=!0,n.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var c={};return function(){"use strict";s.r(c),s.d(c,{AngleTool:function(){return kd},AnnotationTool:function(){return qi},ArrowAnnotateTool:function(){return Rd},BaseTool:function(){return Mr},BidirectionalTool:function(){return rc},BrushTool:function(){return zd},CONSTANTS:function(){return u},CircleScissorsTool:function(){return Gd},CrosshairsTool:function(){return Xs},DragProbeTool:function(){return Ns},EllipticalROITool:function(){return tc},Enums:function(){return W},LengthTool:function(){return Ws},MIPJumpToClickTool:function(){return Bs},MagnifyTool:function(){return Ad},PanTool:function(){return Ds},PlanarFreehandROITool:function(){return Od},ProbeTool:function(){return Rs},RectangleROIStartEndThresholdTool:function(){return tl},RectangleROIThresholdTool:function(){return Qi},RectangleROITool:function(){return Xi},RectangleScissorsTool:function(){return jd},SegmentationDisplayTool:function(){return co},SphereScissorsTool:function(){return Hd},StackScrollMouseWheelTool:function(){return Ls},StackScrollTool:function(){return As},Synchronizer:function(){return Po},SynchronizerManager:function(){return i},ToolGroupManager:function(){return d},TrackballRotateTool:function(){return Os},Types:function(){return N},VolumeRotateMouseWheelTool:function(){return Vs},WindowLevelTool:function(){return ks},ZoomTool:function(){return Ps},addTool:function(){return Oo},annotation:function(){return P},cancelActiveManipulations:function(){return Mo},cursors:function(){return R},destroy:function(){return _o},drawing:function(){return f},init:function(){return Co},removeTool:function(){return So},segmentation:function(){return F},synchronizers:function(){return v},utilities:function(){return M}});var e={};s.r(e),s.d(e,{checkAndDefineIsLockedProperty:function(){return oe},getAnnotationsLocked:function(){return te},getAnnotationsLockedCount:function(){return re},isAnnotationLocked:function(){return ne},setAnnotationLocked:function(){return Q},unlockAllAnnotations:function(){return ee}});var t={};s.r(t),s.d(t,{deselectAnnotation:function(){return ge},getAnnotationsSelected:function(){return he},getAnnotationsSelectedByToolName:function(){return pe},getAnnotationsSelectedCount:function(){return we},isAnnotationSelected:function(){return me},setAnnotationSelected:function(){return ve}});var n={};s.r(n),s.d(n,{checkAndDefineIsVisibleProperty:function(){return De},isAnnotationVisible:function(){return Te},setAnnotationVisibility:function(){return Ce},showAllAnnotations:function(){return _e}});var r={};s.r(r),s.d(r,{addAnnotation:function(){return Ve},getAnnotation:function(){return je},getAnnotations:function(){return Ue},getDefaultAnnotationManager:function(){return Ae},getViewportSpecificAnnotationManager:function(){return Le},removeAllAnnotations:function(){return Fe},removeAnnotation:function(){return Be}});var o={};s.r(o),s.d(o,{triggerSegmentationDataModified:function(){return Je},triggerSegmentationModified:function(){return Ze},triggerSegmentationRemoved:function(){return Ke},triggerSegmentationRepresentationModified:function(){return $e},triggerSegmentationRepresentationRemoved:function(){return Ye}});var a={};s.r(a),s.d(a,{addColorLUT:function(){return yt},addSegmentation:function(){return lt},addSegmentationRepresentation:function(){return vt},getColorLUT:function(){return wt},getDefaultSegmentationStateManager:function(){return ot},getGlobalConfig:function(){return ft},getSegmentation:function(){return at},getSegmentationRepresentationByUID:function(){return ht},getSegmentationRepresentations:function(){return st},getSegmentations:function(){return it},getToolGroupSpecificConfig:function(){return dt},getToolGroupsWithSegmentation:function(){return ct},removeSegmentation:function(){return pt},removeSegmentationRepresentation:function(){return mt},setGlobalConfig:function(){return gt},setToolGroupSpecificConfig:function(){return ut}});var i={};s.r(i),s.d(i,{createSynchronizer:function(){return Ao},destroy:function(){return Lo},destroySynchronizer:function(){return Bo},getAllSynchronizers:function(){return Vo},getSynchronizer:function(){return Uo},getSynchronizersForViewport:function(){return dr}});var l={};s.r(l),s.d(l,{hideElementCursor:function(){return Oa},initElementCursor:function(){return _a},resetElementCursor:function(){return Da},setElementCursor:function(){return Ta}});var d={};s.r(d),s.d(d,{createToolGroup:function(){return Pa},destroy:function(){return Io},destroyToolGroup:function(){return yo},getAllToolGroups:function(){return Aa},getToolGroup:function(){return pr},getToolGroupForViewport:function(){return sn}});var u={};s.r(u),s.d(u,{COLOR_LUT:function(){return We}});var v={};s.r(v),s.d(v,{createCameraPositionSynchronizer:function(){return Va},createVOISynchronizer:function(){return ja}});var f={};s.r(f),s.d(f,{draw:function(){return ln},drawArrow:function(){return ii},drawCircle:function(){return qa},drawEllipse:function(){return Ha},drawHandles:function(){return za},drawLine:function(){return Ka},drawLinkedTextBox:function(){return oi},drawPolyline:function(){return $a},drawRect:function(){return ai},drawTextBox:function(){return Qa}});var g={};s.r(g),s.d(g,{createLabelmapVolumeForViewport:function(){return sl},createMergedLabelmapForIndex:function(){return il},getDefaultRepresentationConfig:function(){return tt},isValidRepresentationConfig:function(){return ll},rectangleROIThresholdVolumeByRange:function(){return al},thresholdVolumeByRange:function(){return Si}});var h={};s.r(h),s.d(h,{getTextBoxCoordsCanvas:function(){return $i}});var p={};s.r(p),s.d(p,{findClosestPoint:function(){return ti},liangBarksyClip:function(){return vl}});var m={};s.r(m),s.d(m,{getCanvasEllipseCorners:function(){return gl},pointInEllipse:function(){return fl}});var w={};s.r(w),s.d(w,{distanceToPoint:function(){return Ki},distanceToPointSquared:function(){return zi},intersectLine:function(){return pl}});var y={};s.r(y),s.d(y,{distanceToPoint:function(){return Yi}});var E={};s.r(E),s.d(E,{addCanvasPointsToArray:function(){return Tl},calculateAreaOfPoints:function(){return Ol},getClosestIntersectionWithPolyline:function(){return wl},getFirstIntersectionWithPolyline:function(){return ml},getSubPixelSpacingAndXYDirections:function(){return Cl},pointCanProjectOnLine:function(){return Dl},pointsAreWithinCloseContourProximity:function(){return _l}});var I={};s.r(I),s.d(I,{distanceToPoint:function(){return Sl}});var b={};s.r(b),s.d(b,{ellipse:function(){return m},lineSegment:function(){return w},point:function(){return I},polyline:function(){return E},rectangle:function(){return y},vec2:function(){return p}});var C={};s.r(C),s.d(C,{default:function(){return Pl},filterAnnotationsForDisplay:function(){return Bi},filterAnnotationsWithinSlice:function(){return Vi},getPointInLineOfSightWithCriteria:function(){return Rl},getWorldWidthAndHeightFromCorners:function(){return Zi}});var _={};s.r(_),s.d(_,{filterViewportsWithFrameOfReferenceUID:function(){return xi},filterViewportsWithToolEnabled:function(){return ki},getViewportIdsWithToolToRender:function(){return Li}});var T={};s.r(T),s.d(T,{getOrientationStringLPS:function(){return Al},invertOrientationStringLPS:function(){return Ll}});var D={};s.r(D),s.d(D,{Events:function(){return Ul},addToolState:function(){return Bl},getToolState:function(){return jl},playClip:function(){return Wl},stopClip:function(){return Gl}});var O={};s.r(O),s.d(O,{extend2DBoundingBoxInViewAxis:function(){return nl},getBoundingBoxAroundShape:function(){return Ti}});var S={};s.r(S),s.d(S,{getBoundsIJKFromRectangleAnnotations:function(){return rl}});var x={};s.r(x),s.d(x,{disable:function(){return ns},enable:function(){return ts},getConfiguration:function(){return rs},setConfiguration:function(){return os}});var M={};s.r(M),s.d(M,{boundingBox:function(){return O},calibrateImageSpacing:function(){return pi},cine:function(){return D},clip:function(){return gi},debounce:function(){return vi},deepMerge:function(){return Sr},drawing:function(){return h},getAnnotationNearPoint:function(){return si},getAnnotationNearPointOnEnabledElement:function(){return ci},isObject:function(){return ui},jumpToSlice:function(){return bi},math:function(){return b},orientation:function(){return T},planar:function(){return C},pointInShapeCallback:function(){return _i},pointInSurroundingSphereCallback:function(){return Oi},rectangleROITool:function(){return S},scroll:function(){return mi},segmentation:function(){return g},stackPrefetch:function(){return x},throttle:function(){return fi},triggerAnnotationRenderForViewportIds:function(){return vr},triggerEvent:function(){return q.triggerEvent},viewportFilters:function(){return _}});var R={};s.r(R),s.d(R,{CursorNames:function(){return is},ImageMouseCursor:function(){return Jo},MouseCursor:function(){return qo},SVGMouseCursor:function(){return ma},elementCursor:function(){return l},registerCursor:function(){return la},setCursorForElement:function(){return as}});var N={};s.r(N);var k={};s.r(k),s.d(k,{getFont:function(){return ls},getState:function(){return ji},style:function(){return va}});var P={};s.r(P),s.d(P,{config:function(){return k},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var A={};s.r(A),s.d(A,{getActiveSegmentationRepresentation:function(){return gs},setActiveSegmentationRepresentation:function(){return hs}});var L={};s.r(L),s.d(L,{getLockedSegments:function(){return ws},isSegmentIndexLocked:function(){return ps},setSegmentIndexLocked:function(){return ms}});var U={};s.r(U),s.d(U,{addColorLUT:function(){return ys},getColorForSegmentIndex:function(){return Is},setColorLUT:function(){return Es}});var V={};s.r(V),s.d(V,{getSegmentationVisibility:function(){return Cs},setSegmentationVisibility:function(){return bs}});var B={};s.r(B),s.d(B,{color:function(){return U},getGlobalConfig:function(){return Fr},getGlobalRepresentationConfig:function(){return Gr},getToolGroupSpecificConfig:function(){return Hr},setGlobalConfig:function(){return Wr},setGlobalRepresentationConfig:function(){return qr},setToolGroupSpecificConfig:function(){return zr},visibility:function(){return V}});var j={};s.r(j),s.d(j,{getActiveSegmentIndex:function(){return Ts},setActiveSegmentIndex:function(){return _s}});var F={};s.r(F),s.d(F,{activeSegmentation:function(){return A},addSegmentationRepresentations:function(){return fs},addSegmentations:function(){return cs},config:function(){return B},removeSegmentationsFromToolGroup:function(){return wo},segmentIndex:function(){return j},segmentLocking:function(){return L},state:function(){return a},triggerSegmentationEvents:function(){return o}});var W={};s.r(W),s.d(W,{AnnotationStyleStates:function(){return Zo},Events:function(){return H},KeyboardBindings:function(){return Mn},MouseBindings:function(){return xn},SegmentationRepresentations:function(){return et},ToolModes:function(){return Xt}});var G,q=s(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_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"}(G||(G={}));var H=G;function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function K(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 Y(e,t,n){return t&&K(e.prototype,t),n&&K(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Z=s(907),J=s.n(Z),X=new Set;function Q(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=ae();e&&(t?ie(e,X,n):le(e,X,n)),se(n,X)}function ee(){var e=ae();!function(e,t){e.forEach((function(n){le(n,e,t)}))}(X,e),se(e,X)}function te(){return Array.from(X)}function ne(e){return X.has(e)}function re(){return X.size}function oe(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==ce||t.get!==de):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:ce,get:de}),Q(e,t)}}function ae(){return Object.freeze({added:[],removed:[],locked:[]})}function ie(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function le(e,t,n){t.delete(e)&&n.removed.push(e)}function se(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_LOCK_CHANGE,e))}function ce(e){Q(this,e)}function de(){return ne(this)}var ue=new Set;function ve(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?fe(e,n):ge(e)}function fe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ye();t||Ee(ue,n),e&&!ue.has(e)&&(ue.add(e),n.added.push(e)),Ie(n,ue)}function ge(e){var t=ye();e?ue.delete(e)&&t.removed.push(e):Ee(ue,t),Ie(t,ue)}function he(){return Array.from(ue)}function pe(e){return he().filter((function(t){return je(t).metadata.toolName===e}))}function me(e){return ue.has(e)}function we(){return ue.size}function ye(){return Object.freeze({added:[],removed:[],selection:[]})}function Ee(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function Ie(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_SELECTION_CHANGE,e))}var be=new Set;function Ce(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Oe();e&&(t?Se(e,be,n):xe(e,be,n)),Me(n)}function _e(){var e=Oe();be.forEach((function(t){Se(t,be,e)})),Me(e)}function Te(e){if(je(e))return!be.has(e)}function De(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!==Re||t.get!==Ne):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Re,get:Ne}),Ce(e.annotationUID,n)}}function Oe(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Se(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function xe(e,t,n){t.has(e)||(t.add(e),me(e)&&ge(e),n.lastHidden.push(e))}function Me(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(be.forEach((function(t){e.hidden.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_VISIBILITY_CHANGE,e))}function Re(e){Ce(this.annotationUID,e)}function Ne(){return Te(this.annotationUID)}var ke=function(){function e(t){var n=this;z(this,e),$(this,"annotations",void 0),$(this,"uid",void 0),$(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)}))}))})),$(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),$(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),$(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),$(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index;return o[a]}})),$(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,a=n.annotations,i=a[r];i||(a[r]={},i=a[r]);var l=i[o];l||(i[o]=[],l=i[o]),l.push(e),oe(e),De(e)})),$(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index,i=o[0].metadata;if(o.splice(a,1),!o.length){var l=i.toolName;delete n.annotations[i.FrameOfReferenceUID][l]}}})),$(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var a=o[t];return J()(a)}if(e){var i=r[e];return J()(i)}return J()(r)})),$(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var a=o[t];a||(o[t]={},a=o[t]),a[r]=e}else t?o[t]=e:n.annotations=J()(e)})),$(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=q.utilities.uuidv4()),this.annotations={},this.uid=t,q.eventTarget.addEventListener(q.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return Y(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,a=this.annotations,i=(n=o?[o]:Object.keys(a)).length,l=0;l<i;l++)for(var s,c=a[n[l]],d=(s=r?[r]:Object.keys(c)).length,u=0;u<d;u++){var v=c[s[u]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),Pe=new ke("DEFAULT");function Ae(){return Pe}function Le(e){return Pe}function Ue(e,t){var n=(0,q.getEnabledElement)(e),r=Le(),o=n.FrameOfReferenceUID;return r.get(o,t)}function Ve(e,t){var n=Le();void 0===t.annotationUID&&(t.annotationUID=q.utilities.uuidv4()),n.addAnnotation(t);var r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=H.ANNOTATION_ADDED,l={annotation:t,viewportId:a,renderingEngineId:o.id};(0,q.triggerEvent)(q.eventTarget,i,l)}function Be(e,t){var n=Ae();t&&(n=Le());var r=n.getAnnotation(e);if(r){n.removeAnnotation(e);var o=H.ANNOTATION_REMOVED,a={annotation:r,annotationManagerUID:n.uid};(0,q.triggerEvent)(q.eventTarget,o,a)}}function je(e,t){return Le().getAnnotation(e)}function Fe(e){var t=Ae();e&&(t=Le()),t.removeAllAnnotations()}var We=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var He={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:{}},toolGroups:{}},ze=new(function(){function e(t){z(this,e),$(this,"state",void 0),$(this,"uid",void 0),t||(t=q.utilities.uuidv4()),this.state=J()(He),this.uid=t}return Y(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=J()(He)}},{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:"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=qe(qe({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(We,0)}}]),e}())("DEFAULT");function Ke(e){var t={segmentationId:e};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REMOVED,t)}function Ye(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_REMOVED,n)}function $e(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_MODIFIED,n):(st(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function Ze(e){(e?[e]:it().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_MODIFIED,t)}))}function Je(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_DATA_MODIFIED,n)}var Xe,Qe={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.9,fillAlphaInactive:.85};!function(e){e.Labelmap="LABELMAP"}(Xe||(Xe={}));var et=Xe;function tt(e){var t=e.type;if(t===et.Labelmap)return Qe;throw new Error("Unknown representation type: ".concat(t))}function nt(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 rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(){return ze}function at(e){return ot().getSegmentation(e)}function it(){return ot().getState().segmentations}function lt(e,t){var n=ot(),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:$({},n.type,rt({},n.data))}}(e);!function(e){var t=tt(e);gt({renderInactiveSegmentations:!0,representations:$({},e.type,t)},!0)}(r),n.addSegmentation(r),t||Ze(r.segmentationId)}function st(e){return ot().getSegmentationRepresentations(e)}function ct(e){var t=ot(),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 dt(e){return ot().getToolGroupSpecificConfig(e)}function ut(e,t,n){ot().setSegmentationRepresentationConfig(e,t),n||$e(e)}function vt(e,t,n){ot().addSegmentationRepresentation(e,t),n||$e(e,t.segmentationRepresentationUID)}function ft(){return ot().getGlobalConfig()}function gt(e,t){ot().setGlobalConfig(e),t||Ze()}function ht(e,t){return ot().getSegmentationRepresentationByUID(e,t)}function pt(e){ot().removeSegmentation(e),Ke(e)}function mt(e,t){ot().removeSegmentationRepresentation(e,t),Ye(e,t)}function wt(e){return ot().getColorLUT(e)}function yt(e,t){ot().addColorLUT(e,t)}function Et(e,t){var n=t||e.currentTarget,r=(0,q.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),a=function(e){return[e.pageX,e.pageY]}(e),i=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,a);return{page:a,client:o,canvas:i,world:r.canvasToWorld(i)}}var It=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,a=Et(e,t),i={event:e,eventName:H.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:a,lastPoints:a,currentPoints:a,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};(0,q.triggerEvent)(t,H.MOUSE_DOUBLE_CLICK,i)},bt=H.MOUSE_MOVE,Ct=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Et(e),eventName:bt,event:e};(0,q.triggerEvent)(t,bt,r)},_t=H.MOUSE_DOWN,Tt=H.MOUSE_DOWN_ACTIVATE,Dt=H.MOUSE_CLICK,Ot=H.MOUSE_UP,St=H.MOUSE_DRAG,xt={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]}},Mt={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 Rt(e){var t=Et(e,Mt.element),n=function(e,t){var n=(0,q.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}(Mt.element,Mt.lastPoints),r=At(t,n),o={event:e,eventName:St,mouseButton:Mt.mouseButton,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},element:Mt.element,startPoints:Pt(Mt.startPoints),lastPoints:Pt(n),currentPoints:t,deltaPoints:r};(0,q.triggerEvent)(Mt.element,St,o),Mt.lastPoints=Pt(t)}function Nt(e){clearTimeout(Mt.preventClickTimeout);var t=Mt.isClickEvent?Dt:Ot,n=Et(e,Mt.element),r=At(n,Mt.lastPoints),o={event:e,eventName:t,mouseButton:Mt.mouseButton,element:Mt.element,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},startPoints:Pt(Mt.startPoints),lastPoints:Pt(Mt.lastPoints),currentPoints:n,deltaPoints:r};(0,q.triggerEvent)(o.element,t,o),document.removeEventListener("mousemove",Rt),document.removeEventListener("mouseup",Nt),Mt.element.addEventListener("mousemove",Ct),Mt=JSON.parse(JSON.stringify(xt))}function kt(){Mt.isClickEvent=!1}function Pt(e){return JSON.parse(JSON.stringify(e))}function At(e,t){return{page:Lt(e.page,t.page),client:Lt(e.client,t.client),canvas:Lt(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 Lt(e,t){return[e[0]-t[0],e[1]-t[1]]}var Ut=function(e){Mt.element=e.currentTarget,Mt.mouseButton=e.button;var t=(0,q.getEnabledElement)(Mt.element),n=t.renderingEngineId,r=t.viewportId;Mt.renderingEngineId=n,Mt.viewportId=r,Mt.preventClickTimeout=setTimeout(kt,Mt.clickDelay),Mt.element.removeEventListener("mousemove",Ct);var o=Et(e,Mt.element),a=At(o,o),i={event:e,eventName:_t,element:Mt.element,mouseButton:Mt.mouseButton,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},startPoints:o,lastPoints:o,currentPoints:o,deltaPoints:a};Mt.startPoints=Pt(i.startPoints),Mt.lastPoints=Pt(i.lastPoints),(0,q.triggerEvent)(i.element,_t,i)&&(0,q.triggerEvent)(i.element,Tt,i),document.addEventListener("mousemove",Rt),document.addEventListener("mouseup",Nt)};function Vt(e){e.removeEventListener("dblclick",It),e.removeEventListener("mousedown",Ut),e.removeEventListener("mousemove",Ct)}var Bt={enable:function(e){Vt(e),e.addEventListener("dblclick",It),e.addEventListener("mousedown",Ut),e.addEventListener("mousemove",Ct)},disable:Vt},jt=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var a=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),i=a.spinX,l=a.spinY,s=a.pixelX,c=a.pixelY,d=l<0?-1:1,u={event:e,eventName:H.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:i,spinY:l,pixelX:s,pixelY:c,direction:d},points:Et(e)};(0,q.triggerEvent)(t,H.MOUSE_WHEEL,u)}};function Ft(e){e.removeEventListener("wheel",jt)}var Wt={enable:function(e){Ft(e),e.addEventListener("wheel",jt,{passive:!1})},disable:Ft},Gt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},qt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function Ht(e){qt.element=e.currentTarget;var t=(0,q.getEnabledElement)(qt.element),n=t.renderingEngineId,r=t.viewportId;qt.renderingEngineId=n,qt.viewportId=r,qt.key=e.key,qt.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:qt.renderingEngineId,viewportId:qt.viewportId,element:qt.element,key:qt.key,keyCode:qt.keyCode};(0,q.triggerEvent)(o.element,H.KEY_DOWN,o),document.addEventListener("keyup",zt),qt.element.removeEventListener("keydown",Ht)}function zt(e){var t={renderingEngineId:qt.renderingEngineId,viewportId:qt.viewportId,element:qt.element,key:qt.key,keyCode:qt.keyCode};document.removeEventListener("keyup",zt),qt.element.addEventListener("keydown",Ht),qt=J()(Gt),(0,q.triggerEvent)(t.element,H.KEY_UP,t)}var Kt=Ht;function Yt(e){e.removeEventListener("keydown",Kt)}var $t,Zt,Jt={enable:function(e){Yt(e),e.addEventListener("keydown",Kt)},disable:Yt,getModifierKey:function(){return qt.keyCode}};(Zt=$t||($t={})).Active="Active",Zt.Passive="Passive",Zt.Enabled="Enabled",Zt.Disabled="Disabled";var Xt=$t,Qt={},en={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Qt,enabledElements:[],handleRadius:6},tn={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Qt,enabledElements:[],handleRadius:6};function nn(e,t){if(tn.svgNodeCache[e])return tn.svgNodeCache[e][t]?tn.svgNodeCache[e][t].domRef:void 0}function rn(e,t,n,r){if(!tn.svgNodeCache[t])return null;tn.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function on(e,t){tn.svgNodeCache[e]&&tn.svgNodeCache[e][t]&&(tn.svgNodeCache[e][t].touched=!0)}function an(e,t){tn.svgNodeCache[t]&&Object.keys(tn.svgNodeCache[t]).forEach((function(n){var r=tn.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete tn.svgNodeCache[t][n])}))}var ln=function(e,t){var n=function(e){var t=(0,q.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),a=function(e){return e.firstChild.querySelector(".svg-layer")}(e);return Object.keys(tn.svgNodeCache[o]).forEach((function(e){tn.svgNodeCache[o][e].touched=!1})),{svgLayerElement:a,svgNodeCacheForCanvas:tn.svgNodeCache,getSvgNode:nn.bind(this,o),appendNode:rn.bind(this,a,o),setNodeTouched:on.bind(this,o),clearUntouched:an.bind(this,a,o)}}(e);t(n),n.clearUntouched()},sn=function(e,t){var n=tn.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 cn(e,t){var n=(0,q.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,a=sn(o,r);if(!a)return[];for(var i=[],l=Object.keys(a.toolOptions),s=0;s<l.length;s++){var c=l[s],d=a.toolOptions[c];if(d&&t.includes(d.mode)){var u=a.getToolInstance(c);i.push(u)}}return i}function dn(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 un=Xt.Active,vn=Xt.Passive,fn=Xt.Enabled,gn=function(){function e(){var t=this;z(this,e),$(this,"hasBeenDestroyed",void 0),$(this,"_needsRender",new Set),$(this,"_animationFrameSet",!1),$(this,"_animationFrameHandle",null),$(this,"_viewportElements",void 0),$(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 Y(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e){this._viewportElements.delete(e),0===this._viewportElements.size&&this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,q.getEnabledElement)(e);if(t)if((0,q.getRenderingEngine)(t.renderingEngineId)){var n=cn(e,[un,vn,fn]),r=t.renderingEngineId,o=t.viewportId,a={element:e,renderingEngineId:r,viewportId:o};ln(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,q.triggerEvent)(e,H.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dn(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},a))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),hn=new gn,pn=function(e){hn.renderViewport(e)},mn=function(e){pn(e.detail.element)};function wn(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=sn(a,o);if(!i)return[];for(var l=[],s=Object.keys(i.toolOptions),c=0;c<s.length;c++){var d=s[c],u=i.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=i.getToolInstance(d);l.push(f)}}return l}var yn=Xt.Active,En=Xt.Passive,In=Xt.Enabled,bn=function(e){wn(e,[yn,En,In]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Cn=Xt.Active,_n=Xt.Passive,Tn=Xt.Enabled,Dn=function(e){wn(e,[Cn,_n,Tn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},On=Xt.Active;function Sn(e,t,n){if(tn.isInteractingWithTool)return!1;var r,o=n.detail,a=o.renderingEngineId,i=o.viewportId,l=sn(i,a);if(!l)return!1;for(var s=Object.keys(l.toolOptions),c=0;c<s.length;c++){var d=s[c],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===On&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var xn,Mn,Rn=Sn.bind(null,"Mouse","mouseClickCallback");function Nn(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 kn(e,t){if(e){if("string"==typeof e)return Nn(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)?Nn(e,t):void 0}}function Pn(e){return function(e){if(Array.isArray(e))return Nn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||kn(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.")}()}function An(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 Ln(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var a=Ue(e,o.constructor.toolName);a&&("function"==typeof o.filterInteractableAnnotationsForElement&&(a=o.filterInteractableAnnotationsForElement(e,a)),a.length>0&&n.push({tool:o,annotations:a}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function Un(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 Vn(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)?Vn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}(xn||(xn={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=18]="Ctrl",e[e.Alt=17]="Alt"}(Mn||(Mn={}));var Bn=Xt.Active;function jn(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Jt.getModifierKey(),i=sn(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),s=0;s<l.length;s++){var c=l[s],d=i.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:xn.Primary)&&e.modifierKey===a}));if(d.mode===Bn&&u)return i.getToolInstance(c)}}var Fn=Xt.Active,Wn=Xt.Passive;function Gn(e){if(!tn.isInteractingWithTool){var t=jn(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=wn(e,[Fn],e.detail.event.buttons),o=n?wn(e,[Wn]):void 0,a=[].concat(Pn(r||[]),Pn(o||[])),i=e.detail,l=i.element,s=Ln(l,a),c=i.currentPoints.canvas,d=function(e,t,n){var r=[];return t.forEach((function(t){var o,a=t.tool,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return An(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)?An(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(t.annotations);try{for(i.s();!(o=i.n()).done;){var l=o.value;if(!l.isLocked&&l.isVisible){var s=a.getHandleNearImagePoint(e,l,n,6);if(s){r.push({tool:a,annotation:l,handle:s});break}}}}catch(e){i.e(e)}finally{i.f()}})),r}(l,s,c),u=!!e.detail.event.shiftKey;if(d.length>0){var v=qn(d),f=v.tool,g=v.annotation,h=v.handle;return Hn(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,a=[];return t.forEach((function(t){var i,l=t.tool,s=Un(t.annotations);try{for(s.s();!(i=s.n()).done;){var c=i.value;if(!c.isLocked&&c.isVisible&&l.isPointNearTool(e,c,n,o,r)){a.push({tool:l,annotation:c});break}}}catch(e){s.e(e)}finally{s.f()}})),a}(l,s,c,"mouse");if(p.length>0){var m=qn(p),w=m.tool,y=m.annotation;return Hn(y.annotationUID,u),void w.toolSelectedCallback(e,y,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function qn(e){return e.length>1&&e.find((function(e){return!ne(e.annotation)&&Te(e.annotation.annotationUID)}))||e[0]}function Hn(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(me(e))ve(e,!1);else{var n=!0;ve(e,!0,n)}else{var r=!1;ve(e,!0,r)}}function zn(e){if(!tn.isInteractingWithTool){var t=jn(e);t&&(tn.isMultiPartToolActive||t.addNewAnnotation&&ve(t.addNewAnnotation(e,"mouse").annotationUID))}}var Kn=Sn.bind(null,"Mouse","doubleClickCallback");function Yn(e){if(!tn.isInteractingWithTool){var t=jn(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function $n(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 Zn=Xt.Active,Jn=Xt.Passive;function Xn(e){if(!tn.isInteractingWithTool&&!tn.isMultiPartToolActive){var t,n=wn(e,[Zn,Jn]),r=e.detail.element,o=Ln(r,n),a=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),i=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return $n(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)?$n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(t=l.n()).done;){var s=t.value,c=s.tool,d=s.annotations;"function"==typeof c.mouseMoveCallback&&(i=c.mouseMoveCallback(e,d)||i)}}catch(e){l.e(e)}finally{l.f()}a.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===i&&pn(r)}}var Qn=Sn.bind(null,"Mouse","mouseUpCallback"),er=Sn.bind(null,"MouseWheel","mouseWheelCallback"),tr=function(e){e.addEventListener(H.MOUSE_CLICK,Rn),e.addEventListener(H.MOUSE_DOWN,Gn),e.addEventListener(H.MOUSE_DOWN_ACTIVATE,zn),e.addEventListener(H.MOUSE_DOUBLE_CLICK,Kn),e.addEventListener(H.MOUSE_DRAG,Yn),e.addEventListener(H.MOUSE_MOVE,Xn),e.addEventListener(H.MOUSE_UP,Qn),e.addEventListener(H.MOUSE_WHEEL,er)},nr=function(e){e.removeEventListener(H.MOUSE_CLICK,Rn),e.removeEventListener(H.MOUSE_DOWN,Gn),e.removeEventListener(H.MOUSE_DOWN_ACTIVATE,zn),e.removeEventListener(H.MOUSE_DOUBLE_CLICK,Kn),e.removeEventListener(H.MOUSE_DRAG,Yn),e.removeEventListener(H.MOUSE_MOVE,Xn),e.removeEventListener(H.MOUSE_UP,Qn),e.removeEventListener(H.MOUSE_WHEEL,er)},rr=Xt.Active;function or(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=Mt.mouseButton,a=Jt.getModifierKey(),i=sn(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),s=0;s<l.length;s++){var c=l[s],d=i.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:xn.Primary)&&e.modifierKey===a}));if(d.mode===rr&&u)return i.getToolInstance(c)}}function ar(e){var t=or(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=sn(o,r),i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}function ir(e){var t=or(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=sn(o,r);qt.keyCode=void 0;var i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}var lr=function(e){e.addEventListener(H.KEY_DOWN,ar),e.addEventListener(H.KEY_UP,ir)},sr=function(e){e.removeEventListener(H.KEY_DOWN,ar),e.removeEventListener(H.KEY_UP,ir)};function cr(e){var t,n=e.detail,r=n.element,o=n.viewportId,a=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),a=document.createElementNS(e,"feColorMatrix"),i=document.createElementNS(e,"feGaussianBlur"),l=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("width","110%"),r.setAttribute("height","110%"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),a.setAttribute("result","matrixOut"),a.setAttribute("in","offOut"),a.setAttribute("type","matrix"),a.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),i.setAttribute("result","blurOut"),i.setAttribute("in","matrixOut"),i.setAttribute("stdDeviation","0.25"),l.setAttribute("in","SourceGraphic"),l.setAttribute("in2","blurOut"),l.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(a),r.appendChild(i),r.appendChild(l),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);tn.svgNodeCache[o]={}}(r),t=a,r.querySelector("div.viewport-element").appendChild(t),hn.addViewportElement(o,r),Bt.enable(r),Wt.enable(r),Jt.enable(r),function(e){e.addEventListener(q.Enums.Events.IMAGE_RENDERED,mn)}(r),function(e){e.addEventListener(q.Enums.Events.CAMERA_MODIFIED,bn)}(r),function(e){e.addEventListener(q.Enums.Events.IMAGE_SPACING_CALIBRATED,Dn)}(r),tr(r),lr(r),tn.enabledElements.push(r)}var dr=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<tn.synchronizers.length;r++){var o=tn.synchronizers[r],a=!o.isDisabled(),i=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);a&&(i||l)&&n.push(o)}return n},ur=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 tn.svgNodeCache[o]}(n);var o=n.querySelector("svg"),a=n.querySelector("div.".concat("viewport-element"));o&&a.removeChild(o),hn.removeViewportElement(r),Bt.disable(n),Wt.disable(n),Jt.disable(n),function(e){e.removeEventListener(q.Enums.Events.IMAGE_RENDERED,mn)}(n),function(e){e.removeEventListener(q.Enums.Events.CAMERA_MODIFIED,bn)}(n),function(e){e.removeEventListener(q.Enums.Events.IMAGE_SPACING_CALIBRATED,Dn)}(n),nr(n),sr(n),function(e){var t=(0,q.getEnabledElement)(e);dr(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,q.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=sn(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=tn.enabledElements.findIndex((function(t){return t===e}));t>-1&&tn.enabledElements.splice(t,1)}(n)},vr=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;pn(n)}))},fr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,q.getRenderingEngine)(r);vr(o,[n])},gr=function(e){e.detail.removed.length&&(0,q.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));vr(e,t)}))},hr=function(e){var t=e.detail.segmentationId;ct(t).forEach((function(e){st(e).forEach((function(n){n.segmentationId===t&&$e(e,n.segmentationRepresentationUID)}))}))},pr=function(e){return tn.toolGroups.find((function(t){return t.id===e}))};function mr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wr(e,t){return wr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},wr(e,t)}function yr(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&&wr(e,t)}function Er(e){return Er="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},Er(e)}function Ir(e,t){if(t&&("object"===Er(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return mr(e)}function br(e){return br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},br(e)}var Cr=function(e){return e&&"object"===Er(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},_r=function(e,t){var n;return t&&!0===t.clone&&Cr(e)?Or((n=e,Array.isArray(n)?[]:{}),e,t):e},Tr=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=_r(t,n):Cr(t)?r[o]=Or(e[o],t,n):-1===e.indexOf(t)&&r.push(_r(t,n))})),r},Dr=function(e,t,n){var r={};return Cr(e)&&Object.keys(e).forEach((function(t){r[t]=_r(e[t],n)})),Object.keys(t).forEach((function(o){Cr(t[o])&&e[o]?r[o]=Or(e[o],t[o],n):r[o]=_r(t[o],n)})),r},Or=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:Tr},a=o.arrayMerge||Tr;return r?Array.isArray(e)?a(e,t,n):_r(t,n):Dr(e,t,n)},Sr=Or,xr=function(){function e(t,n){z(this,e),$(this,"supportedInteractionTypes",void 0),$(this,"configuration",void 0),$(this,"toolGroupId",void 0),$(this,"mode",void 0);var r=Sr(n,t),o=r.configuration,a=void 0===o?{}:o,i=r.supportedInteractionTypes,l=r.toolGroupId;a.strategies||(a.strategies={},a.defaultStrategy=void 0,a.activeStrategy=void 0,a.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=i||[],this.configuration=Object.assign({},a),this.mode=Xt.Disabled}return Y(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=Sr(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1];return t.getStackViewports().find((function(e){return e.hasImageId(n)})).getImageData()}if(e.startsWith("volumeId:")){var r=e.split("volumeId:")[1];return q.cache.getVolume(r)}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof q.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof q.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();$(xr,"toolName","BaseTool");var Mr=xr;function Rr(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}function Nr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){Rr(a,r,o,i,l,"next",e)}function l(e){Rr(a,r,o,i,l,"throw",e)}i(void 0)}))}}var kr=s(162),Pr=s.n(kr),Ar=s(795),Lr=s.n(Ar),Ur=s(441),Vr=s.n(Ur);function Br(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 jr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Br(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Br(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Fr(){return ft()}function Wr(e){gt(e)}function Gr(e){return Fr().representations[e]}function qr(e,t){var n=Fr();Wr(jr(jr({},n),{},{representations:jr(jr({},n.representations),{},$({},e,t))}))}function Hr(e){return dt(e)}function zr(e,t){ut(e,t)}function Kr(){return(Kr=Nr(Pr().mark((function e(t,n,r){var o,a,i,l,s;return Pr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,q.getEnabledElement)(t),a=o.renderingEngine,i=o.viewport,l=i.id,s=[{volumeId:n,actorUID:r,visibility:!0}],e.next=9,(0,q.addVolumesToViewports)(a,s,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Yr=function(e,t,n){return Kr.apply(this,arguments)},$r=function(e,t){(0,q.getEnabledElement)(e).viewport.removeVolumeActors([t])};function Zr(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 Jr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zr(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Xr(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Qr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Qr(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Qr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var eo=255,to=new Map;function no(){return(no=Nr(Pr().mark((function e(t,n,r){var o,a,i,l,s,c,d,u,v,f;return Pr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=at(o),i=a.representationData[et.Labelmap].volumeId,l=q.utilities.uuidv4(),e.next=6,oo(t,i,l);case 6:return s=new Set,c=Lr().newInstance(),d=Vr().newInstance(),u={segmentationId:o,segmentationRepresentationUID:l,type:et.Labelmap,segmentsHidden:s,visibility:!0,colorLUTIndex:0,active:!0,config:{cfun:c,ofun:d}},r&&(v=Hr(t),f=Sr(v,r),zr(t,{renderInactiveSegmentations:f.renderInactiveSegmentations||!0,representations:Jr({},f.representations)})),vt(t,u),e.abrupt("return",l);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ro(e,t,n,r,o){var a="".concat(e,"-").concat(t),i=to.get(a),l=!1,s=!1;return to.set(a,{fillAlpha:n,colorLUTIndex:r}),i||(l=!0,s=!0),i&&i.fillAlpha!==n&&(s=!0),i&&i.colorLUTIndex!==r&&(l=!0),i&&i.renderFill!==o&&(s=!0),{needColorUpdate:l,needOpacityUpdate:s}}function oo(e,t,n){return ao.apply(this,arguments)}function ao(){return(ao=Nr(Pr().mark((function e(t,n,r){var o,a,i,l,s,c,d,u,v;return Pr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=pr(t),a=o.viewportsInfo,i=Xr(a),e.prev=3,i.s();case 5:if((l=i.n()).done){e.next=15;break}if(s=l.value,c=s.viewportId,d=s.renderingEngineId,u=(0,q.getEnabledElementByIds)(c,d)){e.next=11;break}throw new Error("No enabled element found for rendering engine: ".concat(d," and viewport: ").concat(c));case 11:v=u.viewport,Yr(v.element,n,r);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),i.e(e.t0);case 20:return e.prev=20,i.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[3,17,20,23]])})))).apply(this,arguments)}var io={render:function(e,t,n){var r=t.colorLUTIndex,o=t.active,a=t.segmentationId,i=t.segmentationRepresentationUID,l=t.visibility,s=t.config,c=at(a).representationData[et.Labelmap].volumeId;if(!q.cache.getVolume(c))throw new Error("No Labelmap found for volumeId: ".concat(c));var d=e.getActor(i);if(d){var u=s.cfun,v=s.ofun,f=n.representations[et.Labelmap],g=n.renderInactiveSegmentations;!function(e,t,n,r,o,a,i,l){var s=!(arguments.length>8&&void 0!==arguments[8])||arguments[8];r.addPoint(0,0);var c=i?a.fillAlpha:a.fillAlphaInactive,d=i?a.outlineWidthActive:a.outlineWidthInactive,u=i?a.renderFill:a.renderFillInactive,v=wt(o),f=Math.min(256,v.length),g=t.uid,h=t.actor,p=ro(e,g,c,o,u),m=p.needColorUpdate,w=p.needOpacityUpdate;if(m){for(var y=0;y<f;y++){var E=v[y];n.addRGBPoint(y,E[0]/eo,E[1]/eo,E[2]/eo)}h.getProperty().setRGBTransferFunction(0,n)}if(w){if(a.renderFill)for(var I=0;I<f;I++){var b=v[I][3]/255*c;r.addPoint(I,b)}else for(var C=0;C<f;C++)r.addPoint(C,.01);r.setClamping(!1),h.getProperty().setScalarOpacity(0,r)}h.getProperty().setInterpolationTypeToNearest(),h.getProperty().setUseLabelOutline(a.renderOutline),h.getProperty().setLabelOutlineThickness(d);var _=s&&(i||l);h.setVisibility(_)}(e.id,d,u,v,r,f,o,g,l)}else console.warn("No actor found for actorUID: ",i)},addSegmentationRepresentation:function(e,t,n){return no.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){!function(e,t){var n=pr(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=Xr(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,s=(0,q.getEnabledElementByIds)(i,l);$r(s.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}(e,t),mt(e,t)}};function lo(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 so(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)?so(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function so(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 co=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=pr(t);if(n){var r=st(t),o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,q.getEnabledElementByIds)(n,t);if(r)return r.viewport}));r.forEach((function(n){var r=e._getMergedRepresentationsConfig(t);o.forEach((function(e){if(n.type!=et.Labelmap)throw new Error("Render for ".concat(n.type," is not supported yet"));io.render(e,n,r)}))})),o.forEach((function(e){e.render()}))}})),e}return Y(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=st(e);if(t&&0!==t.length){var n,r=lo(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,$e(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=st(e);if(t&&0!==t.length){var n,r=lo(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,$e(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=Hr(e),n=Fr();return Sr(n,t)}}]),o}(Mr);function uo(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}$(co,"toolName","SegmentationDisplay");var vo=function(){function e(){var t=this;z(this,e),$(this,"_needsRender",new Set),$(this,"_animationFrameSet",!1),$(this,"_animationFrameHandle",null),$(this,"hasBeenDestroyed",void 0),$(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 Y(e,[{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=pr(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,q.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(co.toolName);r.forEach((function(e){e.element.addEventListener(q.Enums.Events.IMAGE_RENDERED,a)})),o.renderSegmentation(e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function a(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(q.Enums.Events.IMAGE_RENDERED,a);var i={toolGroupId:sn(r,o).id,viewportId:r};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uo(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i))}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),fo=new vo,go=function(e){fo.renderToolGroupSegmentations(e)},ho=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=at(n),a=o.representationData,i=o.type;if(i!==et.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(i," not supported yet"));var l=q.cache.getVolume(a[i].volumeId);if(l){var s,c=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))s=r;else{var u=c.getDimensions()[2];s=Pn(Array(u).keys())}s.forEach((function(e){d.setUpdatedFrame(e)})),c.modified(),ct(n).forEach((function(e){go(e)}))}else console.warn("segmentation not found in cache")},po=function(e){var t=e.detail.toolGroupId;go(t)},mo=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,go(n)},wo=function(e,t){var n=st(e);if(t&&0!==t.length){var r=n.map((function(e){return e.segmentationRepresentationUID})),o=t;if(o){var a=t.filter((function(e){return!r.includes(e)}));if(a.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(a)))}else o=r;o.forEach((function(t){!function(e,t){var n=ht(e,t).type;if(n!==et.Labelmap)throw new Error("The representation ".concat(n," is not supported yet"));io.removeSegmentationRepresentation(e,t)}(e,t)}))}else console.warn("removeSegmentationsFromToolGroup: No segmentationRepresentations found for toolGroupId: ",e)},yo=function(e){var t=tn.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(wo(e),tn.toolGroups.splice(t,1))};function Eo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Io=function(){var e,t=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Eo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Eo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(Pn(tn.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;yo(n.id)}}catch(e){t.e(e)}finally{t.f()}tn.toolGroups=[]},bo=!1;function Co(){bo||(function(){To();var e=q.Enums.Events.ELEMENT_ENABLED,t=q.Enums.Events.ELEMENT_DISABLED;q.eventTarget.addEventListener(e,cr),q.eventTarget.addEventListener(t,ur)}(),Do(),q.eventTarget.addEventListener(H.ANNOTATION_MODIFIED,fr),q.eventTarget.addEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.addEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.addEventListener(H.SEGMENTATION_MODIFIED,hr),q.eventTarget.addEventListener(H.SEGMENTATION_DATA_MODIFIED,ho),q.eventTarget.addEventListener(H.SEGMENTATION_REPRESENTATION_MODIFIED,po),q.eventTarget.addEventListener(H.SEGMENTATION_REPRESENTATION_REMOVED,mo),bo=!0)}function _o(){To(),Do(),Io(),Qt={},tn=J()(en);var e=Ae(),t=ot();e.restoreAnnotations({}),t.resetState(),bo=!1}function To(){var e=q.Enums.Events.ELEMENT_ENABLED,t=q.Enums.Events.ELEMENT_DISABLED;q.eventTarget.removeEventListener(e,cr),q.eventTarget.removeEventListener(t,ur)}function Do(){q.eventTarget.removeEventListener(H.ANNOTATION_MODIFIED,fr),q.eventTarget.removeEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.removeEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.removeEventListener(H.SEGMENTATION_MODIFIED,hr),q.eventTarget.removeEventListener(H.SEGMENTATION_DATA_MODIFIED,ho),q.eventTarget.removeEventListener(H.SEGMENTATION_REPRESENTATION_MODIFIED,po),q.eventTarget.removeEventListener(H.SEGMENTATION_REPRESENTATION_REMOVED,mo)}function Oo(e){var t=e.toolName,n=void 0!==tn.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"));tn.tools[t]={toolClass:e}}function So(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!tn.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete tn.tools[t]}function xo(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 Mo(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 xo(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)?xo(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(Ln(e,cn(e,[Xt.Active,Xt.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 Ro=function(){function e(t,n,r){var o=this;z(this,e),$(this,"_enabled",void 0),$(this,"_eventName",void 0),$(this,"_eventHandler",void 0),$(this,"_ignoreFiredEvents",void 0),$(this,"_sourceViewports",void 0),$(this,"_targetViewports",void 0),$(this,"id",void 0),$(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,q.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 Y(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!ko(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,q.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){ko(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=No(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,q.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=No(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return ko(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return ko(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)},a=0;a<r.length;a++)o(a);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,q.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(q.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(q.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function No(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function ko(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var Po=Ro,Ao=function(e,t,n){if(tn.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new Po(e,t,n);return tn.synchronizers.push(r),r},Lo=function(){for(;tn.synchronizers.length>0;)tn.synchronizers.pop().destroy()},Uo=function(e){return tn.synchronizers.find((function(t){return t.id===e}))},Vo=function(){return tn.synchronizers},Bo=function(e){var t=tn.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(tn.synchronizers[t].destroy(),tn.synchronizers.splice(t,1))},jo=s(485),Fo=s.n(jo),Wo=Symbol("DefinedCursors"),Go=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"]),qo=function(){function e(t,n){z(this,e),$(this,"name",void 0),$(this,"fallback",void 0),this.name=t+"",this.fallback=n}return Y(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=Ho(e,Wo),r=n.get(t);return r instanceof e?r:Go.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(Ho(e,Wo).set(t,n),!0)}}]),e}();function Ho(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var zo,Ko=Go.values();function Yo(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=br(e)););return e}function $o(){return $o="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=Yo(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},$o.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(zo||(zo={}));var Zo=zo;var Jo=function(e){yr(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 Ir(this,e)});function o(e,t,n,a,i){var l;return z(this,o),$(mr(l=r.call(this,a||o.getUniqueInstanceName("image-cursor"),i)),"url",void 0),$(mr(l),"x",void 0),$(mr(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return Y(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(q.utilities.getRuntimeId(o))}}]),o}(qo),Xo={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 '},Qo={x:127,y:60},ea='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',ta='\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',na='<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)"/>',ra='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',oa='<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)"/>',aa={Angle:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{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:ia(Xo,{iconContent:"".concat(na," ").concat(ea),viewBox:Qo}),segmentationFreeHandFillInside:ia(Xo,{iconContent:"".concat(na," ").concat(ta),viewBox:Qo}),segmentationFreeHandEraseOutside:ia(Xo,{iconContent:"".concat(na," ").concat(ea),viewBox:Qo}),segmentationFreeHandFillOutside:ia(Xo,{iconContent:"".concat(na," ").concat(ta),viewBox:Qo}),segmentationRectangleEraseInside:ia(Xo,{iconContent:"".concat(ra," ").concat(ea),viewBox:Qo}),RectangleScissor:ia(Xo,{iconContent:"".concat(ra," ").concat(ta),viewBox:Qo}),"RectangleScissor.FILL_INSIDE":ia(Xo,{iconContent:"".concat(ra," ").concat(ta),viewBox:Qo}),"RectangleScissor.FILL_OUTSIDE":ia(Xo,{iconContent:"".concat(ra," ").concat(ta),viewBox:Qo}),"RectangleScissor.ERASE_OUTSIDE":ia(Xo,{iconContent:"".concat(ra," ").concat(ea),viewBox:Qo}),"RectangleScissor.ERASE_INSIDE":ia(Xo,{iconContent:"".concat(ra," ").concat(ea),viewBox:Qo}),CircleScissor:ia(Xo,{iconContent:"".concat(oa," ").concat(ta),viewBox:Qo}),"CircleScissor.FILL_INSIDE":ia(Xo,{iconContent:"".concat(oa," ").concat(ta),viewBox:Qo}),"CircleScissor.ERASE_OUTSIDE":ia(Xo,{iconContent:"".concat(oa," ").concat(ea),viewBox:Qo}),"CircleScissor.FILL_OUTSIDE":ia(Xo,{iconContent:"".concat(oa," ").concat(ta),viewBox:Qo})};function ia(e,t){return Object.assign(Object.create(e),t)}function la(e,t,n){aa[e]=ia(Xo,{iconContent:t,viewBox:n})}function sa(e){if(Object.prototype.hasOwnProperty.call(aa,e))return aa[e]}var ca=Object.keys(aa);function da(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 ua(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?da(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):da(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var va=new(function(){function e(){z(this,e),$(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:"",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"})}return Y(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=ua(ua({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]&&console.warn("overriding annotation styles for annotationUID:",e),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=ua(ua({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]&&console.warn("overriding viewport styles for viewportId:",e),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=ua(ua({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]&&console.warn("overriding toolGroup styles for toolGroupId:",e),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,a=t.toolName;return this._getToolStyle(e,n,r,o,a)}},{key:"_getToolStyle",value:function(e,t,n,r,o){if(t){var a=this.getAnnotationToolStyles(t);if(a&&a[e])return a[e]}if(n){var i=this.getViewportToolStyles(n);if(i){if(i[o]&&i[o][e])return i[o][e];if(i.global&&i.global[e])return i.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 s=this.getDefaultToolStyles();return s[o]&&s[o][e]?s[o][e]:s.global&&s.global[e]?s.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 fa(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),a=o.length-1;a>=0;--a){var i=va.getStyleProperty(o[a],t);if(void 0!==i)return i}}var ga="color",ha=Zo.Highlighted,pa=Xt.Active,ma=function(e){yr(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 Ir(this,e)});function o(e,t,n,a,i){return z(this,o),r.call(this,e,t,n,a,i)}return Y(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=fa(ga,{},ha,pa));var r=ya(e,t,n),a=$o(br(o),"getDefinedCursor",this).call(this,r);if(!a){var i=sa(e);i&&(a=Ea(i,r,t,n,$o(br(o),"getDefinedCursor",this).call(this,"default")),$o(br(o),"setDefinedCursor",this).call(this,r,a))}return a}}]),o}(Jo);function wa(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 ya(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function Ea(e,t,n,r,o){var a=e.mousePoint,i=a.x,l=a.y;return new ma(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?ba:Ia)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),i,l,t,o)}function Ia(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return wa('\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 ba(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,a=e.mousePointerGroupString,i=r/Math.max(o.x,o.y,1),l=16+r;return wa('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(a,'</g>\n <g transform="translate(16, 16) scale(').concat(i,')">').concat(n,"</g>\n </svg>"),t)}var Ca=Symbol("ElementCursorsMap");function _a(e,t){Sa(e)[0]=t,Ta(e,t)}function Ta(e,t){var n=Sa(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof qo?t:qo.getDefinedCursor("auto")).getStyleProperty()}function Da(e){Ta(e,Sa(e)[1])}function Oa(e){Ta(e,qo.getDefinedCursor("none"))}function Sa(e){var t=Sa[Ca];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(Sa,Ca,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}var xa=Xt.Active,Ma=Xt.Passive,Ra=Xt.Enabled,Na=Xt.Disabled,ka=function(){function e(t){z(this,e),$(this,"id",void 0),$(this,"viewportsInfo",[]),$(this,"toolOptions",{}),$(this,"_toolInstances",{}),this.id=t}return Y(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return Object.assign({},this.viewportsInfo)}},{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=tn.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var a=n.toolClass,i={name:e,toolGroupId:this.id,configuration:t},l=new a(i);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addViewport",value:function(e,t){var n=(0,q.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();q.Settings.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var a=!1;r.renderingEngineId===e&&(a=!0,t&&r.viewportId!==t&&(a=!1)),a&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this._toolInstances[e]){var n=this.toolOptions[e]?this.toolOptions[e].bindings:[],r=t.bindings?t.bindings:[],o={bindings:[].concat(Pn(n),Pn(r)),mode:xa};this.toolOptions[e]=o,this._toolInstances[e].mode=xa;var a=q.Settings.getRuntimeSettings(),i=a.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&i)this.setViewportsCursorByToolName(e);else{var l=qo.getDefinedCursor("default");this._setCursorForViewports(l)}"function"==typeof this._toolInstances[e].onSetToolActive&&this._toolInstances[e].onSetToolActive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){if(void 0!==this._toolInstances[e]){var t=this.getToolOptions(e),n=Object.assign({bindings:t?t.bindings:[]},t,{mode:Ma});n.bindings=n.bindings.filter((function(e){return e.mouseButton!==xn.Primary}));var r=Ma;0!==n.bindings.length&&(r=xa,n.mode=r),this.toolOptions[e]=n,this._toolInstances[e].mode=r,"function"==typeof this._toolInstances[e].onSetToolPassive&&this._toolInstances[e].onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:Ra};this.toolOptions[e]=t,this._toolInstances[e].mode=Ra,"function"==typeof this._toolInstances[e].onSetToolEnabled&&this._toolInstances[e].onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:Na};this.toolOptions[e]=t,this._toolInstances[e].mode=Na,"function"==typeof this._toolInstances[e].onSetToolDisabled&&this._toolInstances[e].onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){return this.toolOptions[e]}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===xa&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=t?"".concat(e,".").concat(t):e,r=ma.getDefinedCursor(n,!0);r||(r=qo.getDefinedCursor("default")),this._setCursorForViewports(r)}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,q.getEnabledElementByIds)(r,n);o&&_a(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:Sr(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=Fo()(this._toolInstances[e].configuration,t);return J()(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===xn.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,q.getRenderingEngine)(t).renderViewport(n)}))}}]),e}(),Pa=function(e){if(!tn.toolGroups.some((function(t){return t.id===e}))){var t=new ka(e);return tn.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},Aa=function(){return tn.toolGroups};function La(e,t,n,r){if(t.renderingEngineId!==n.renderingEngineId||t.viewportId!==n.viewportId){var o=r.detail.camera,a=(0,q.getRenderingEngine)(n.renderingEngineId);if(!a)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var i=a.getViewport(n.viewportId);i.setCamera(o),i.render()}}var Ua=q.Enums.Events.CAMERA_MODIFIED;function Va(e){return Ao(e,Ua,La)}function Ba(e,t,n,r){var o=r.detail,a=o.volumeId,i=o.range,l=(0,q.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var s=l.getViewport(n.viewportId);if(s instanceof q.VolumeViewport){var c=s.getActor(a);if(!c)return;c.actor.getProperty().getRGBTransferFunction(0).setRange(i.lower,i.upper);var d=s.element;(0,q.triggerEvent)(d,q.Enums.Events.VOI_MODIFIED,{volumeId:a,viewportId:s.id,range:{lower:i.lower,upper:i.upper}})}else{if(!(s instanceof q.StackViewport))throw new Error("Viewport type not supported.");s.setProperties({voiRange:i})}s.render()}function ja(e){return Ao(e,q.Enums.Events.VOI_MODIFIED,Ba)}var Fa=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},Wa=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)}))},Ga=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},qa=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},a),l=i.color,s=i.fill,c=i.width,d=i.lineWidth,u=d||c,v="http://www.w3.org/2000/svg",f=Fa(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:s,"stroke-width":u};if(g)Wa(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");Ga(h,p),e.appendNode(p,f)}},Ha=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Fa(t,"ellipse",n),g=e.getSvgNode(f),h=Math.abs(r[0]-o[0]),p=Math.abs(r[1]-o[1]),m=Math.min(r[0],o[0]),w=Math.min(r[1],o[1]),y=[m+h/2,w+p/2],E=h/2,I=p/2,b={cx:"".concat(y[0]),cy:"".concat(y[1]),rx:"".concat(E),ry:"".concat(I),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)Wa(b,g),e.setNodeTouched(f);else{var C=document.createElementNS(v,"ellipse");Ga(b,C),e.appendNode(C,f)}},za=function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},o),i=a.color,l=a.handleRadius,s=a.width,c=a.lineWidth,d=a.fill,u=a.type,v=c||s,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=Fa(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:i,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:i,fill:d,"stroke-width":v,rx:"".concat(.1*y)}}var b=e.getSvgNode(p);if(b)Wa(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,u);Ga(m,C),e.appendNode(C,p)}}};function Ka(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Fa(t,"line",n),g=e.getSvgNode(f),h={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:l,"stroke-width":u,"stroke-dasharray":d};if(g)Wa(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"line");Ga(h,p),e.appendNode(p,f)}}}function Ya(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 $a(e,t,n,r,o){if(!(r.length<2)){var a,i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,connectLastToFirst:!1},o),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v=Fa(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 Ya(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)?Ya(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(r);try{for(h.s();!(a=h.n()).done;){var p=a.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)Wa(w,f),e.setNodeTouched(v);else{var y=document.createElementNS("http://www.w3.org/2000/svg","polyline");Ga(w,y),e.appendNode(y,v)}}}function Za(e,t,n,r,o,a){var i,l=a.padding,s=a.color,c=a.fontFamily,d=a.fontSize,u=a.background,v=o[0]+l,f=o[1]+l,g=Fa(t,"text",n),h=e.getSvgNode(g);if(h){for(var p=h.querySelector("text"),m=Array.from(p.children),w=0;w<m.length;w++){var y=m[w],E=r[w]||"";y.textContent=E}if(r.length>m.length){for(var I=0;I<r.length-m.length;I++){var b=Ja(r[I+m.length]);p.appendChild(b)}h.appendChild(p),e.appendNode(h,g)}var C={fill:s,"font-size":d,"font-family":c},_={transform:"translate(".concat(v," ").concat(f,")")};Wa(C,p),Wa(_,h),i=Xa(h,u),e.setNodeTouched(g)}else{var T=document.createElementNS("http://www.w3.org/2000/svg","g");T.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var D=function(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),a="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",a),o}(a),O=0;O<r.length;O++){var S=Ja(r[O]);D.appendChild(S)}T.appendChild(D),e.appendNode(T,g),i=Xa(T,u)}return Object.assign({},i,{x:v,y:f,height:i.height+l,width:i.width+l})}function Ja(e){var t=document.createElementNS("http://www.w3.org/2000/svg","tspan");return t.setAttribute("x","0"),t.setAttribute("dy","1.2em"),t.textContent=e,t}function Xa(e,t){var n=e.querySelector("rect.background");if(!t)return n&&e.removeChild(n),e.getBBox();n||((n=document.createElementNS("http://www.w3.org/2000/svg","rect")).setAttribute("class","background"),e.insertBefore(n,e.firstChild));var r=e.getBBox(),o={x:"".concat(r.x),y:"".concat(r.y),width:"".concat(r.width),height:"".concat(r.height),fill:t};return Wa(o,n),r}var Qa=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},a),l=Za(e,t,n,r,o,i);return l};function ei(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}}(e,t)||kn(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 ti(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,a,i,l,s,c,d,u=(o=e,i=(a=ei(t,2))[0],l=a[1],c=(s=ei(o,2))[0],d=s[1],Math.sqrt(Math.pow(i-c,2)+Math.pow(l-d,2)));u<r&&(r=u,n=Pn(e))})),n}function ni(e){var t=e.x,n=e.y,r=e.height,o=e.width,a=o/2,i=r/2;return[[t+a,n],[t,n+i],[t+a,n+r],[t+o,n+i]]}var ri=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?ti(r,o):o,s=ni(a),c=ti(s,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},i);Ka(e,t,"link-".concat(n),l,c,d)},oi=function(e,t,n,r,o,a,i){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},s=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),c=Qa(e,t,n,r,o,s);return ri(e,t,n,a,o,c,s),c};function ai(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Fa(t,"rect",n),g=e.getSvgNode(f),h=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w={x:"".concat(h[0]),y:"".concat(h[1]),width:"".concat(p),height:"".concat(m),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)Wa(w,g),e.setNodeTouched(f);else{var y=document.createElementNS(v,"rect");Ga(w,y),e.appendNode(y,f)}}function ii(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash;Ka(e,t,n,r,o,{color:l,width:s,lineWidth:c,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};Ka(e,t,"2",f.start,f.end,{color:l,width:s,lineWidth:c}),Ka(e,t,"3",g.start,g.end,{color:l,width:s,lineWidth:c})}}function li(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 si(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,q.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return ci(r,t,n)}function ci(e,t,n){var r=e.renderingEngineId,o=e.viewportId,a=sn(o,r);if(!a)return null;var i=a._toolInstances;for(var l in i){var s=di(i[l],e,t,n);if(s)return s}return null}function di(e,t,n,r){var o=Ue(t.viewport.element,e.constructor.toolName);if(null!=o&&o.length){var a,i=t.viewport.element,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return li(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)?li(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(a=l.n()).done;){var s=a.value;if(e.isPointNearTool(i,s,n,r,"")||e.getHandleNearImagePoint(i,s,n,r))return s}}catch(e){l.e(e)}finally{l.f()}}return null}var ui=function(e){var t=Er(e);return null!==e&&("object"===t||"function"===t)},vi=function(e,t,n){var r,o,a,i,l,s,c=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return c=e,l=h(w,t),d?g(e):i}function m(e){var n=e-s;return void 0===s||n>=t||n<0||u&&e-c>=a}function w(){var e=Date.now();if(m(e))return y(e);l=h(w,function(e){var n=e-c,r=t-(e-s);return u?Math.min(r,a-n):r}(e))}function y(e){return l=void 0,v&&r?g(e):(r=o=void 0,i)}function E(){for(var e=Date.now(),n=m(e),a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];if(r=c,o=this,s=e,n){if(void 0===l)return p(s);if(u)return l=h(w,t),g(s)}return void 0===l&&(l=h(w,t)),i}return t=Number(t)||0,ui(n)&&(d=Boolean(n.leading),a=(u="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):a,v="trailing"in n?Boolean(n.trailing):v),E.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),c=0,r=s=o=l=void 0},E.flush=function(){return void 0===l?i:y(Date.now())},E.pending=function(){return void 0!==l},E},fi=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return ui(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),vi(e,t,{leading:r,trailing:o,maxWait:t})};var gi=function(e,t,n){return Math.min(Math.max(t,e),n)},hi=q.utilities.calibratedPixelSpacingMetadataProvider;function pi(e,t,n,r){r||(r=n),hi.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function mi(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof q.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof q.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));wi(e,r,o)}}function wi(e,t,n){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal,i=r.position,l=q.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),s=l.spacingInNormalDirection,c=l.imageVolume;if(!c)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var d=e.getActor(c.volumeId);d||console.warn("No actor found for with actorUID of",c.volumeId);var u=d.actor,v=q.utilities.getSliceRange(u,a,o),f=q.utilities.snapFocalPointToSlice(o,i,v,a,s,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function yi(){return yi=Nr(Pr().mark((function e(t){var n,r,o,a,i,l,s,c,d,u=arguments;return Pr().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,a=(0,q.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:i=a.viewport,l=Ei(i,o),s=l.imageIndex,c=l.numberOfSlices,d=Ii(c,r),mi(i,{delta:d-s,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),yi.apply(this,arguments)}function Ei(e,t){if(e instanceof q.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof q.VolumeViewport)return q.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function Ii(e,t){return gi(t,0,e-1)}var bi=function(e){return yi.apply(this,arguments)},Ci=s(976);function _i(e,t,n,r){var o,a,i,l,s,c,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=ei(r,3),f=ei(v[0],2);o=f[0],a=f[1];var g=ei(v[1],2);i=g[0],l=g[1];var h=ei(v[2],2);s=h[0],c=h[1]}else o=0,a=u[0],i=0,l=u[1],s=0,c=u[2];for(var p=Ci.vec3.fromValues(o,i,s),m=e.getDirection(),w=m.slice(0,3),y=m.slice(3,6),E=m.slice(6,9),I=ei(e.getSpacing(),3),b=I[0],C=I[1],_=I[2],T=e.indexToWorld(p),D=Ci.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),O=Ci.vec3.fromValues(y[0]*C,y[1]*C,y[2]*C),S=Ci.vec3.fromValues(E[0]*_,E[1]*_,E[2]*_),x=u[0],M=u[0]*u[1],R=s;R<=c;R++)for(var N=i;N<=l;N++)for(var k=o;k<=a;k++){var P=[k,N,R],A=k-o,L=N-i,U=R-s,V=T,B=[V[0]+A*D[0]+L*O[0]+U*S[0],V[1]+A*D[1]+L*O[1]+U*S[1],V[2]+A*D[2]+L*O[2]+U*S[2]];if(t(B,P)){var j=R*M+N*x+k;n({value:d[j],index:j,pointIJK:P,pointLPS:B})}}}var Ti=function(e,t){var n=1/0,r=0,o=1/0,a=0,i=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),a=Math.max(e[1],a),i=Math.min(e[2],i),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),a=Math.floor(a),i=Math.floor(i),l=Math.floor(l),t){var s=ei(t,3),c=s[0],d=s[1],u=s[2];n=Math.max(0,n),r=Math.min(c-1,r),o=Math.max(0,o),a=Math.min(d-1,a),i=Math.max(0,i),l=Math.min(u-1,l)}return[[n,r],[o,a],[i,l]]},Di=q.utilities.transformWorldToIndex;function Oi(e,t,n,r){var o=function(e,t,n){var r,o=ei(e,2),a=o[0],i=o[1],l=Ci.vec3.fromValues((a[0]+i[0])/2,(a[1]+i[1])/2,(a[2]+i[2])/2),s=Ci.vec3.distance(a,i)/2;if(!n){var c=Di(t,l),d=t.getSpacing(),u=Math.min.apply(Math,Pn(d)),v=Math.ceil(s/u);return{boundsIJK:r=[[c[0]-v,c[0]+v],[c[1]-v,c[1]+v],[c[2]-v,c[2]+v]],centerWorld:l,radiusWorld:s}}return r=function(e,t,n,r,o){var a=ei(n,2),i=a[0],l=a[1],s=e.getDimensions(),c=t.getCamera(),d=Ci.vec3.fromValues(c.viewUp[0],c.viewUp[1],c.viewUp[2]),u=Ci.vec3.fromValues(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),v=Ci.vec3.create();Ci.vec3.cross(v,d,u),v=[-v[0],-v[1],-v[2]];var f=Ci.vec3.create(),g=Ci.vec3.create();Ci.vec3.scaleAndAdd(f,l,u,o),Ci.vec3.scaleAndAdd(g,i,u,-o),Ci.vec3.scaleAndAdd(f,f,v,-o),Ci.vec3.scaleAndAdd(g,g,v,o);var h=[Di(e,f),Di(e,g)];return Ti(h,s)}(t,n,e,0,s),{boundsIJK:r,centerWorld:l,radiusWorld:s}}(t,e,r),a=o.boundsIJK,i={center:o.centerWorld,radius:o.radiusWorld};_i(e,(function(e){return function(e,t){var n=e.center,r=e.radius,o=ei(t,3),a=o[0],i=o[1],l=o[2],s=ei(n,3),c=s[0],d=s[1],u=s[2];return Math.pow(a-c,2)+Math.pow(i-d,2)+Math.pow(l-u,2)<=Math.pow(r,2)}(i,e)}),n,a)}var Si=function(e,t,n){var r=e.scalarData,o=e.imageData,a=n.overwrite,i=n.boundsIJK,l=n.upper,s=n.lower,c=t.imageData,d=c.getPointData().getScalars().getData();if(a)for(var u=0;u<r.length;u++)r[u]=0;return _i(o,(function(){return!0}),(function(e){var t=e.index,n=e.pointIJK,o=c.computeOffsetIndex(n),a=d[o];a<=s||a>=l||(r[t]=1)}),i),Je(e.volumeId),e};function xi(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o];a.getFrameOfReferenceUID()===t&&r.push(a)}return r}var Mi=Xt.Active,Ri=Xt.Passive,Ni=Xt.Enabled;function ki(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o],i=sn(a.id,a.renderingEngineId);i&&Pi(i,t)&&r.push(a)}return r}function Pi(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===Mi||r===Ri||r===Ni}var Ai=function(e,t){return e.filter((function(e){var n=e.getCamera();return q.utilities.isEqual(n.viewPlaneNormal,t.viewPlaneNormal)&&q.utilities.isEqual(n.viewUp,t.viewUp)}))};function Li(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.FrameOfReferenceUID,i=o.getViewports();i=ki(i=xi(i,a),t);var l=o.getViewport(r.viewportId);n&&(i=Ai(i,l.getCamera()));var s=i.map((function(e){return e.id}));return s}function Ui(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 Vi(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return q.utilities.isEqual(t,r)}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,s=[],c=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Ui(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)?Ui(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(c.s();!(a=c.n()).done;){var d=a.value,u=d.data.handles.points[0];if(d.isVisible){var v=Ci.vec3.create();Ci.vec3.sub(v,l,u);var f=Ci.vec3.dot(v,r);Math.abs(f)<i&&s.push(d)}}}catch(e){c.e(e)}finally{c.f()}return s}function Bi(e,t){if(e instanceof q.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 q.VolumeViewport){var a=e.getCamera();return Vi(t,a,q.utilities.getTargetVolumeAndSpacingInNormalDir(e,a).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var ji=function(e){if(e){if(e.data&&e.highlighted)return Zo.Highlighted;if(me(e.annotationUID))return Zo.Selected;if(ne(e))return Zo.Locked}return Zo.Default};function Fi(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 Wi(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)?Wi(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Wi(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 Gi=function(e){yr(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 Ir(this,e)});function o(){var e;z(this,o);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return $(mr(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,a=o.element,i=o.currentPoints.canvas,l=!1,s=Fi(n);try{for(s.s();!(r=s.n()).done;){var c=r.value;if(!ne(c)&&Te(c.annotationUID)){var d=c.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(a,c,i,6),f=v&&!c.highlighted,g=!v&&c.highlighted;f||g?(c.highlighted=!c.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){s.e(e)}finally{s.f()}return l})),$(mr(e),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,a=n.columnScale,i=n.imageId,l=n.imageData,s=n.worldToIndex;if((0,q.getEnabledElement)(r).viewport instanceof q.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var c=l.getIndexToWorld(),d=q.utilities.imageIdToURI(i),u=Le();u.getFramesOfReference().forEach((function(t){var n=u.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){q.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=Ci.vec4.fromValues.apply(Ci.vec4,Pn(e).concat([1])),n=Ci.vec4.fromValues(0,0,0,1),r=Ci.vec4.create();Ci.vec4.transformMat4(r,t,s);var i=[a*r[0],o*r[1],r[2]];return Ci.vec4.transformMat4(n,Ci.vec4.fromValues(i[0],i[1],i[2],1),c),n.slice(0,3)})))})),pn(r))}))})),e}return Y(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return Bi((0,q.getEnabledElement)(e).viewport,t)}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data,i=a.handles,l=i.points,s=i.textBox,c=s.worldBoundingBox;if(c){var d={topLeft:o.worldToCanvas(c.topLeft),topRight:o.worldToCanvas(c.topRight),bottomLeft:o.worldToCanvas(c.bottomLeft),bottomRight:o.worldToCanvas(c.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return a.handles.activeHandleIndex=null,s}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==Ci.vec2.distance(n,f)<r)return a.handles.activeHandleIndex=u,v}a.handles.activeHandleIndex=null}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,a=this.getTargetId(e);if(e instanceof q.StackViewport)o=a.split("imageId:")[1];else{var i=a.split("volumeId:")[1],l=q.cache.getVolume(i);o=q.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return fa(e,t,ji(n),this.mode)}},{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),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}(Mr);$(Gi,"toolName","AnnotationTool");var qi=Gi;function Hi(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function zi(e,t,n){var r=Hi(e,t);if(0===r)return Hi(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return Hi(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function Ki(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(zi(e,t,n))}function Yi(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=ei(e,4),r=n[0],o=n[1],a=n[2],i=n[3],l=655535,s=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,a,i);return Object.keys(s).forEach((function(e){var n=ei(s[e],2),r=Ki(n[0],n[1],t);r<l&&(l=r)})),l}function $i(e){var t,n,r,o,a=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),i=(a.top[1]+a.bottom[1])/2;return[a.right[0],i]}function Zi(e,t,n,r){var o=Ci.vec3.create();Ci.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ci.vec3.fromValues.apply(Ci.vec3,Pn(n)),i=Ci.vec3.fromValues.apply(Ci.vec3,Pn(r)),l=Ci.vec3.create();Ci.vec3.subtract(l,a,i);var s=Ci.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ci.vec3.dot(l,o)/(s*Ci.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}var Ji=q.utilities.transformWorldToIndex,Xi=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Ve(o,f);var g=Li(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"isPointNearTool",(function(t,n,r,o){var a=(0,q.getEnabledElement)(t).viewport,i=n.data.handles.points,l=a.worldToCanvas(i[0]),s=a.worldToCanvas(i[3]),c=e._getRectangleImageCoordinates([l,s]),d=[r[0],r[1]];return Yi([c.left,c.top,c.width,c.height],d)<=o})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Oa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var s=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:s,handleIndex:i,movingTextBox:l},e._activateModify(o),Oa(o);var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g,h,p,m,w,y,E,I,b=n.currentPoints,C=(0,q.getEnabledElement)(r).viewport,_=C.worldToCanvas,T=C.canvasToWorld,D=b.world,O=c.handles.points;switch(O[l]=Pn(D),l){case 0:case 3:g=_(O[0]),h=[(m=_(O[3]))[0],g[1]],p=[g[0],m[1]],y=T(h),E=T(p),O[1]=y,O[2]=E;break;case 1:case 2:h=_(O[1]),g=[(p=_(O[2]))[0],h[1]],m=[h[0],p[1]],w=T(g),I=T(m),O[0]=w,O[3]=I}a.invalidated=!0}e.editData.hasMoved=!0;var S=(0,q.getEnabledElement)(r).renderingEngine;vr(S,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return i.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=i.getCamera(),_=C.viewPlaneNormal,T=C.viewUp;if(h.cachedStats[c]?f.invalidated&&(e._throttledCalculateCachedStats(f,_,T,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null},e._calculateCachedStats(f,_,T,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var D=void 0;if(Te(g)){ne(f)||e.editData||null===w||(D=[y[w]]),D&&za(n,g,"0",D,{color:b}),ai(n,g,"0",y[0],y[3],{color:b,lineDash:I,lineWidth:E}),a=!0;var O=e._getTextLines(h,c);if(O&&0!==O.length){if(!h.handles.textBox.hasMoved){var S=$i(y);h.handles.textBox.worldPosition=i.canvasToWorld(S)}var x=i.worldToCanvas(h.handles.textBox.worldPosition),M=oi(n,g,"1",O,x,y,{},e.getLinkedTextBoxStyle(u,f)),R=M.x,N=M.y,k=M.width,P=M.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+k,N]),bottomLeft:i.canvasToWorld([R,N+P]),bottomRight:i.canvasToWorld([R+k,N+P])}}}}return a})),$(mr(e),"_getRectangleImageCoordinates",(function(e){var t=ei(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])}})),$(mr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,a=n.max,i=n.stdDev,l=n.Modality,s=n.areaUnit;if(void 0!==o){var c=[],d="Area: ".concat(r.toFixed(2)," ").concat(s).concat(String.fromCharCode(178)),u="Mean: ".concat(o.toFixed(2)),v="Max: ".concat(a.toFixed(2)),f="Std Dev: ".concat(i.toFixed(2));return"PT"===l?(u+=" SUV",v+=" SUV",f+=" SUV"):"CT"===l?(u+=" HU",v+=" HU",f+=" HU"):(u+=" MO",v+=" MO",f+=" MO"),c.push(d),c.push(v),c.push(u),c.push(f),c}})),$(mr(e),"_calculateCachedStats",(function(t,n,r,o,a){for(var i=t.data,l=a.viewportId,s=a.renderingEngineId,c=i.handles.points[0],d=i.handles.points[3],u=i.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o),p=h.dimensions,m=h.scalarData,w=h.imageData,y=h.metadata,E=h.hasPixelSpacing,I=Ji(w,c);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Ji(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]),O=Math.min(I[2],b[2]),S=Math.max(I[2],b[2]),x=Zi(n,r,c,d),M=x.worldWidth*x.worldHeight,R=0,N=0,k=0,P=-1/0,A=p[0],L=p[0]*p[1],U=O;U<=S;U++)for(var V=T;V<=D;V++)for(var B=C;B<=_;B++){var j=m[U*L+V*A+B];j>P&&(P=j),R++,N+=j}N/=R;for(var F=O;F<=S;F++)for(var W=T;W<=D;W++)for(var G=C;G<=_;G++){var z=m[F*L+W*A+G]-N;k+=z*z}k/=R,k=Math.sqrt(k),u[g]={Modality:y.Modality,area:M,mean:N,stdDev:k,max:P,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,u[g]={Modality:y.Modality}}t.invalidated=!1;var K=H.ANNOTATION_MODIFIED,Y={annotation:t,viewportId:l,renderingEngineId:s};return(0,q.triggerEvent)(q.eventTarget,K,Y),u})),$(mr(e),"_isInsideVolume",(function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=fi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o)}(qi);$(Xi,"toolName","RectangleROI");var Qi=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c,d,u=l.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getTargetId(l);if(l instanceof q.StackViewport)c=g.split("imageId:")[1];else{d=g.split("volumeId:")[1];var h=q.cache.getVolume(d);c=q.utilities.getClosestImageId(h,a,v,f)}var p={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(v),enabledElement:i,viewUp:Pn(f),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:c,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},segmentationId:null}};Ve(o,p);var m=Li(o,e.getToolName());return e.editData={annotation:p,viewportIdsToRender:m,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(s,m),p})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=t.renderingEngineId,s=i.element,c=Ue(s,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(s,c))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<c.length;u++){var v=c[u],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.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(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var I=H.ANNOTATION_MODIFIED,b={annotation:v,viewportId:i.id,renderingEngineId:l};(0,q.triggerEvent)(q.eventTarget,I,b);var C=void 0;Te(f)&&(ne(v)||e.editData||null===p||(C=[m[p]]),C&&za(n,f,"0",C,{color:E}),ai(n,f,"0",m[0],m[3],{color:E,lineDash:y,lineWidth:w}),a=!0)}return a})),e}return Y(o)}(Xi);$(Qi,"toolName","RectangleROIThreshold");var el=q.utilities.transformWorldToIndex,tl=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c,d,u,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof q.StackViewport)throw new Error("Stack Viewport Not implemented");if(u=e.getTargetId(l).split("volumeId:")[1],d=q.cache.getVolume(u),!(c=q.utilities.getClosestImageId(d,a,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=q.utilities.getSpacingInNormalDirection(d,f),m=e._getEndSliceIndex(d,a,p,f),w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(f),enabledElement:i,viewUp:Pn(g),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:c,toolName:e.getToolName(),volumeId:u,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[c]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(w,d),Ve(o,w);var y=Li(o,e.getToolName());return e.editData={annotation:w,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(s,y),w})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1,o=Ue(t.viewport.element,e.getToolName());if(null==o||!o.length)return r;for(var a=t.viewport,i=a.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=0;s<o.length;s++){var c=o[s],d=c.annotationUID,u=c.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return a.worldToCanvas(e)}));l.annotationUID=d;var w=e.getStyle("lineWidth",l,c),y=e.getStyle("lineDash",l,c),E=e.getStyle("color",l,c);if(!(i<Math.min(v,f)||i>Math.max(v,f))){c.invalidated&&e._throttledCalculateCachedStats(c,t);var I=!1;if(i!==v&&i!==f||(I=!0),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(Te(d)){ne(c)||e.editData||null===p||!I||(b=[m[p]]),b&&za(n,d,"0",b,{color:E});var C=y;I||(C=2),ai(n,d,"0",m[0],m[3],{color:E,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=fi(e._calculateCachedStatsTool,100,{trailing:!0}),e}return Y(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,a=r.spacingInNormal,i=t.imageData,l=n.startSlice,s=n.endSlice,c=n.handles.points,d=el(i,c[0]);if(d[2]!==l)throw new Error("Start slice does not match");var u=Ci.vec3.fromValues(d[0],d[1],s),v=Ci.vec3.create();i.indexToWorldVec3(d,v);var f=Ci.vec3.create();i.indexToWorldVec3(u,f);for(var g=Ci.vec3.distance(v,f),h=[],p=function(e){h.push(c.map((function(t){var n=Ci.vec3.create();return Ci.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=a)p(m);n.cachedStats.projectionPoints=h;for(var w=[],y=0,E=h;y<E.length;y++){var I=E[y],b=q.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,a=t.viewport,i=n.cachedStats,l=this.getTargetId(a),s=q.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,s),e.invalidated=!1;var c=H.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,q.triggerEvent)(q.eventTarget,c,d),i}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,a=Ci.vec3.create();Ci.vec3.scaleAndAdd(a,t,r,o*n);for(var i,l=n/2,s=e.imageIds,c=0;c<s.length;c++){var d=s[c],u=q.metaData.get("imagePlaneModule",d).imagePositionPatient,v=Ci.vec3.create();Ci.vec3.sub(v,a,u);var f=Ci.vec3.dot(v,r);Math.abs(f)<l&&(i=c)}return i}}]),o}(Xi);$(tl,"toolName","RectangleROIStartEndThreshold");var nl=function(e,t){var n=e.findIndex((function(e){var t=ei(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},rl=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[];if(e.forEach((function(e){var o,a,i=e.data,l=i.handles.points,s=t.imageData,c=t.dimensions,d=l;if(null!==(o=i.cachedStats)&&void 0!==o&&o.projectionPoints){var u,v=i.cachedStats.projectionPoints;d=(u=[]).concat.apply(u,Pn(v))}var f=d.map((function(e){return q.utilities.transformWorldToIndex(s,e)})),g=Ti(f,c);!n.numSlicesToProject||null!==(a=i.cachedStats)&&void 0!==a&&a.projectionPoints||(g=nl(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 ol(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 al=function(e,t,n,r){if(n.length>1)throw new Error("thresholding based on more than one reference volumes data is not supported yet");var o=n[0],a=e.map((function(e){return je(e)}));!function(e){var t,n=[Qi.toolName,tl.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 ol(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)?ol(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(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()}}(a);var i=rl(a,o,r),l={lower:r.lower,upper:r.upper,overwrite:r.overwrite,boundsIJK:i};return Si(t,o,l)},il=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,a=t.spacing;if(!(q.utilities.isEqual(r,e[0].dimensions)&&q.utilities.isEqual(n,e[0].direction)&&q.utilities.isEqual(a,e[0].spacing)&&q.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,a=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(a[r]=t)}));var i={scalarData:a,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,s=q.volumeLoader.createLocalVolume(i,n,l);return s};function ll(e,t){if(e===et.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function sl(e){return cl.apply(this,arguments)}function cl(){return(cl=Nr(Pr().mark((function e(t){var n,r,o,a,i,l,s,c,d,u,v,f;return Pr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,a=t.segmentationId,i=(0,q.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=i.viewport)instanceof q.VolumeViewport){e.next=8;break}throw new Error("Segmentation not ready for stackViewport");case 8:if(s=l.getDefaultActor(),c=s.uid,void 0===a&&(a="".concat(c,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:q.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,Z._cloneDeep)(o),e.next=14,q.volumeLoader.createLocalVolume(u,a);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,q.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:a});case 19:return e.abrupt("return",a);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var dl=1e-6;function ul(e,t,n){var r=ei(n,2),o=r[0],a=r[1];if(Math.abs(t)<dl)return e<0;var i=e/t;if(t>0){if(i>a)return 0;i>o&&(n[0]=i)}else{if(i<o)return 0;i<a&&(n[1]=i)}return 1}function vl(e,t,n,r,o){var a=ei(e,2),i=a[0],l=a[1],s=ei(t,2),c=s[0]-i,d=s[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(c)<dl&&Math.abs(d)<dl&&i>=n[0]&&i<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(ul(n[0]-i,c,u)&&ul(i-n[2],-c,u)&&ul(n[1]-l,d,u)&&ul(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=i+f*c,o[1]=l+f*d),v>0&&(r[0]+=v*c,r[1]+=v*d),1}return 0}function fl(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,a=e.zRadius,i=ei(t,3),l=i[0],s=i[1],c=i[2],d=ei(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(s-v)*(s-v)/(o*o)),0!==a&&(g+=(c-f)*(c-f)/(a*a)),g<=1}function gl(e){var t=ei(e,4),n=t[0],r=t[1],o=t[2],a=t[3];return[[o[0],r[1]],[a[0],n[1]]]}function hl(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function pl(e,t,n,r){var o=ei(e,2),a=o[0],i=o[1],l=ei(t,2),s=l[0],c=l[1],d=ei(n,2),u=d[0],v=d[1],f=ei(r,2),g=f[0],h=f[1],p=c-i,m=a-s,w=s*i-a*c,y=p*u+m*v+w,E=p*g+m*h+w;if(0===y||0===E||hl(y)!==hl(E)){var I=h-v,b=u-g,C=g*v-u*h,_=I*a+b*i+C,T=I*s+b*c+C;if(0===_||0===T||hl(_)!==hl(T)){var D=p*b-I*m;return[(m*C-b*w)/D,(I*w-p*C)/D]}}}function ml(e,t,n){var r,o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];a?(o=e.length-1,r=0):(o=0,r=1);for(var i=r;i<e.length;i++){var l=e[o],s=e[i];if(yl(t,n,l,s))return[o,i];o=i}}function wl(e,t,n){var r,o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];a?(o=e.length-1,r=0):(o=0,r=1);for(var i=[],l=r;l<e.length;l++){var s=e[o],c=e[l];yl(t,n,s,c)&&i.push([o,l]),o=l}if(0!==i.length){var d=[];i.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(Ci.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:i[v],distance:u}}}function yl(e,t,n,r){var o=!1,a=[El(e,t,n),El(e,t,r),El(n,r,e),El(n,r,t)];return a[0]!==a[1]&&a[2]!==a[3]||((0===a[0]&&Il(e,n,t)||0===a[1]&&Il(e,r,t)||0===a[2]&&Il(n,e,r)||0===a[3]&&Il(n,t,r))&&(o=!0),o)}function El(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 Il(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 bl=.001,Cl=function(e,t){var n,r,o;if(e instanceof q.StackViewport){var a=e.getImageData();r=a.direction.slice(0,3),o=a.direction.slice(3,6),n=a.spacing}else{var i=e.getImageData(),l=i.direction,s=i.spacing,c=e.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=Ci.vec3.create();Ci.vec3.cross(h,u,d),h=[-h[0],-h[1],-h[2]];var p,m=Math.abs(Ci.vec3.dot(h,v)),w=Math.abs(Ci.vec3.dot(h,f)),y=Math.abs(Ci.vec3.dot(h,g));if(Math.abs(1-m)<bl)p=s[0],r=v;else if(Math.abs(1-w)<bl)p=s[1],r=f;else{if(!(Math.abs(1-y)<bl))throw new Error("No support yet for oblique plane planar contours");p=s[2],r=g}var E,I=Math.abs(Ci.vec3.dot(d,v)),b=Math.abs(Ci.vec3.dot(d,f)),C=Math.abs(Ci.vec3.dot(d,g));if(Math.abs(1-I)<bl)E=s[0],o=v;else if(Math.abs(1-b)<bl)E=s[1],o=f;else{if(!(Math.abs(1-C)<bl))throw new Error("No support yet for oblique plane planar contours");E=s[2],o=g}n=[p,E]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},_l=function(e,t,n){return Ci.vec2.dist(e,t)<n},Tl=function(e,t,n,r){var o=r.xDir,a=r.yDir,i=r.spacing,l=(0,q.getEnabledElement)(e).viewport,s=l.canvasToWorld(t[t.length-1]),c=l.canvasToWorld(n),d=Ci.vec3.create();Ci.vec3.subtract(d,c,s);var u=Math.abs(Ci.vec3.dot(d,o)),v=Math.abs(Ci.vec3.dot(d,a)),f=Math.max(Math.floor(u/i[0]),Math.floor(v/i[0]));if(f>1){var g=t[t.length-1],h=Ci.vec2.dist(g,n),p=Ci.vec2.create();Ci.vec2.subtract(p,n,g),Ci.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},Dl=function(e,t,n,r){var o=[e[0]-t[0],e[1]-t[1]],a=[n[0]-t[0],n[1]-t[1]],i=o[0]*a[0]+o[1]*a[1];if(i<0)return!1;var l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);if(0===l)return!1;var s=i/l,c=[a[0]/l,a[1]/l],d=[c[0]*s,c[1]*s],u=[t[0]+d[0],t[1]+d[1]];return!(Ci.vec2.distance(e,u)>r||Ci.vec2.distance(t,u)>Ci.vec2.distance(t,n))};function Ol(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 Sl(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=ei(e,2),r=n[0],o=n[1],a=ei(t,2),i=a[0],l=a[1];return Math.sqrt(Math.pow(r-i,2)+Math.pow(o-l,2))}var xl=s(807),Ml=s.n(xl);function Rl(e,t,n,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,i=e.getCamera(),l=i.position,s=q.utilities.getTargetVolumeAndSpacingInNormalDir(e,i,n),c=s.spacingInNormalDirection,d=c*a,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];Ml().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],kl(h,u)){var w=e.getIntensityFromWorld(h),y=r(w,h);y&&(o=y)}}return o}var Nl,kl=function(e,t){var n=ei(t,6),r=n[0],o=n[1],a=n[2],i=n[3],l=n[4],s=n[5];return e[0]>r&&e[0]<o&&e[1]>a&&e[1]<i&&e[2]>l&&e[2]<s},Pl={filterAnnotationsWithinSlice:Vi,getWorldWidthAndHeightFromCorners:Zi,filterAnnotationsForDisplay:Bi,getPointInLineOfSightWithCriteria:Rl};function Al(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],i=1e-4,l=0;l<3;l++)if(a[0]>i&&a[0]>a[1]&&a[0]>a[2])t+=n,a[0]=0;else if(a[1]>i&&a[1]>a[0]&&a[1]>a[2])t+=r,a[1]=0;else if(a[2]>i&&a[2]>a[0]&&a[2]>a[1])t+=o,a[2]=0;else if(a[0]>i&&a[1]>i&&a[0]===a[1])t+=n+r,a[0]=0,a[1]=0;else if(a[0]>i&&a[2]>i&&a[0]===a[2])t+=n+o,a[0]=0,a[2]=0;else{if(!(a[1]>i&&a[2]>i&&a[1]===a[2]))break;t+=r+o,a[1]=0,a[2]=0}return t}function Ll(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"}(Nl||(Nl={}));var Ul=Nl,Vl={};function Bl(e,t){var n=(0,q.getEnabledElement)(e).viewportId;Vl[n]=t}function jl(e){var t=(0,q.getEnabledElement)(e).viewportId;return Vl[t]}var Fl=q.utilities.triggerEvent;function Wl(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,q.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var a=o.viewport;if(!(a instanceof q.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var i,l,s,c,d={targetImageIdIndex:a.getTargetImageIdIndex(),imageIds:a.getImageIds()},u=jl(e);if(u?ql(u):(u={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:null!==(i=t.frameTimeVector)&&void 0!==i?i:void 0,speed:null!==(l=t.frameTimeVectorSpeedMultiplier)&&void 0!==l?l:1,reverse:null!==(s=t.reverse)&&void 0!==s&&s,loop:null===(c=t.loop)||void 0===c||c},Bl(e,u)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(u.framesPerSecond=Number(t.framesPerSecond),u.reverse=u.framesPerSecond<0,u.ignoreFrameTimeVector=!0),!0!==u.ignoreFrameTimeVector&&u.frameTimeVector&&u.frameTimeVector.length===d.imageIds.length){var v=function(e,t){var n,r,o,a=0,i=e.length,l=[],s=!1;for(("number"!=typeof t||t<=0)&&(t=1),n=1;n<i;n++)o=Number(e[n])/t|0,l.push(o),1===n?r=o:o!==r&&(s=!0),a+=o;return l.length>0&&(o=s?a/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:s}}(u.frameTimeVector,u.speed),f=v.timeouts,g=v.isTimeVarying;n=f,r=g}var h=function(){var t=d.targetImageIdIndex,n=d.imageIds.length;if(u.reverse?t--:t++,u.loop||!(t<0||t>=n)){if(t>=n&&(t=0),t<0&&(t=n-1),t!==d.targetImageIdIndex){var r=t-d.targetImageIdIndex;a.scroll(r,!0,!0)}}else{ql(u);var o={element:e};Fl(e,Ul.CLIP_STOPPED,o)}};n&&n.length>0&&r?(u.usingFrameTimeVector=!0,u.intervalId=window.setTimeout((function e(){u.intervalId=window.setTimeout(e,n[d.targetImageIdIndex]),h()}),0)):(u.usingFrameTimeVector=!1,u.intervalId=window.setInterval(h,1e3/Math.abs(u.framesPerSecond)));var p={element:e};Fl(e,Ul.CLIP_STARTED,p)}function Gl(e){var t=jl((0,q.getEnabledElement)(e).viewport.element);t&&ql(t)}function ql(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}var Hl={};function zl(e){var t=(0,q.getEnabledElement)(e).viewportId;return Hl[t]}var Kl,Yl=q.Enums.RequestType.Prefetch,$l={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Zl(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 Jl(e){var t=(0,q.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof q.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function Xl(e){var t=zl(e);if(t){var n=t||{},r=Jl(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&&q.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){$l.preserveExistingPool||q.imageLoadPoolManager.clearRequestStack(Yl);for(var o,a,i,l,s,c,d=(o=n.indicesToRequest,a=r.currentImageIdIndex,i=0,l=o.length-1,o.forEach((function(e,t){e<a?i=Math.max(t,i):e>a&&(l=Math.min(t,l))})),{low:i,high:l}),u=d.low,v=d.high,f=[];u>=0||v<n.indicesToRequest.length;){var g=r.currentImageIdIndex,h=!(g-n.indicesToRequest[u]>$l.maxImagesToPrefetch)&&u>=0,p=!(n.indicesToRequest[v]-g>$l.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(c=n.indicesToRequest[u--],s=r.imageIds[c],f.push(s)),p&&(c=n.indicesToRequest[v++],s=r.imageIds[c],f.push(s))}var m=function(e,t){return q.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{scalingParameters:q.utilities.getScalingParameters(e)},requestType:Yl};q.imageLoadPoolManager.addRequest(m.bind(null,e,t),Yl,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function Ql(e){return function(t){var n,r=t.detail;try{n=Jl(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var a=zl(e);a&&a.data&&a.data.length&&a.indicesToRequest.push(o)}}}}function es(e){clearTimeout(Kl),Kl=setTimeout((function(){var t=e.target;try{Xl(t)}catch(e){return}}),10)}function ts(e){var t=Jl(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Zl(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,q.getEnabledElement)(e).viewportId;Hl[n]=t}(e,n),Xl(e),e.removeEventListener(q.Enums.Events.STACK_NEW_IMAGE,es),e.addEventListener(q.Enums.Events.STACK_NEW_IMAGE,es);var o=Ql(e);q.eventTarget.removeEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),q.eventTarget.addEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function ns(e){clearTimeout(Kl),e.removeEventListener(q.Enums.Events.STACK_NEW_IMAGE,es);var t=Ql(e);q.eventTarget.removeEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=zl(e);n&&n.data.length&&(n.enabled=!1,q.imageLoadPoolManager.clearRequestStack(Yl))}function rs(){return $l}function os(e){$l=e}var as=function(e,t){var n=ma.getDefinedCursor(t,!0);n||(n=qo.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=qo.getDefinedCursor(t)),Ta(e,n)},is=[].concat(Pn(ca),Pn(Ko)),ls=function(e,t,n){var r=fa("textBoxFontSize",e,t,n),o=fa("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},ss=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===et.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(!q.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)}))},cs=function(e){ss(e),e.map((function(e){lt(J()(e))}))};function ds(){return(ds=Nr(Pr().mark((function e(t,n,r){var o,a;return Pr().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 us(t,e,r)})),e.next=6,Promise.all(o);case 6:return a=e.sent,e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function us(e,t,n){return vs.apply(this,arguments)}function vs(){return(vs=Nr(Pr().mark((function e(t,n,r){var o;return Pr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==et.Labelmap){e.next=6;break}return e.next=3,io.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 fs=function(e,t,n){return ds.apply(this,arguments)};function gs(e){var t=ot().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function hs(e,t){ot().setActiveSegmentationRepresentation(e,t),$e(e,t)}function ps(e,t){var n=at(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function ms(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=at(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),Ze(e)}function ws(e){var t=at(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function ys(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");q.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])),yt(e,t)}function Es(e,t,n){var r=ht(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!wt(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,$e(e,t)}function Is(e,t,n){var r=ht(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return wt(r.colorLUTIndex)[n]}function bs(e,t,n){var r=st(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,$e(e,r.segmentationRepresentationUID))}))}function Cs(e,t){var n=st(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function _s(e,t){var n=at(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,Ze(e))}function Ts(e){var t=at(e);if(t)return t.activeSegmentIndex}var Ds=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,q.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,s=i.position,c=[s[0]-a[0],s[1]-a[1],s[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:c}),o.viewport.render()}}]),o}(Mr);$(Ds,"toolName","Pan");var Os=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),a=o.getViewUp(),i=o.getFocalPoint(),l=o.getPosition(),s=[0,0,0],c=[0,0,0],d=[0,0,0],u=Ci.mat4.identity(new Float32Array(16));Ci.mat4.translate(u,u,t),Ci.mat4.rotate(u,u,r,n),Ci.mat4.translate(u,u,[-t[0],-t[1],-t[2]]),Ci.vec3.transformMat4(s,l,u),Ci.vec3.transformMat4(c,i,u),Ci.mat4.identity(u),Ci.mat4.rotate(u,u,r,n),Ci.vec3.transformMat4(d,a,u),e.setCamera({position:s,viewUp:d,focalPoint:c})})),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.lastPoints,a=r.canvas,i=o.canvas,l=this.configuration.rotateIncrementDegrees,s=(0,q.getEnabledElement)(n).viewport,c=s.getCamera(),d=n.clientWidth,u=n.clientHeight,v=[a[0]/d,a[1]/u],f=[i[0]/d,i[1]/u],g=[.5*d,.5*u],h=s.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];Ml().normalize(C);var _=[w[0],0,b];Ml().normalize(_);var T=Ml().dot(C,_);if(Math.abs(T)>1e-4){var D=-2*Math.acos(Ml().clampValue(T,-1,1))*Math.sign(v[0]-f[0])*l,O=c.viewUp;Ml().normalize(O),this.rotateCamera(s,h,O,D);var S=(f[1]-v[1])*l,x=c.viewPlaneNormal,M=c.viewUp,R=[0,0,0];Ml().cross(M,x,R),Ml().normalize(R),this.rotateCamera(s,h,R,S),s.render()}}}]),o}(Mr);function Ss(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 xs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ss(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ss(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}$(Os,"toolName","TrackballRotate");var Ms=q.utilities.transformWorldToIndex,Rs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"editData",void 0),$(mr(e),"eventDispatchDetail",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a)]},cachedStats:{}}};Ve(o,f);var g=Li(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Oa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation;o.highlighted=!1;var l=(0,q.getEnabledElement)(n),s=l.renderingEngine,c=l.viewportId;if(e.eventDispatchDetail={viewportId:c,renderingEngineId:s.id},e._deactivateModify(n),Da(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(s,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=e.editData,l=i.annotation,s=i.viewportIdsToRender;l.data.handles.points[0]=Pn(a),l.invalidated=!0;var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=i.worldToCanvas(p);u.annotationUID=g;var w=e.getStyle("color",u,f);if(h.cachedStats[c]?f.invalidated&&(e._calculateCachedStats(f,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,index:null,value:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;za(n,g,"0",[m],{color:w}),a=!0;var y=e._getTextLines(h,c);if(y){var E=[m[0]+6,m[1]-6];Qa(n,g,"0",y,[E[0],E[1]],e.getLinkedTextBoxStyle(u,f))}}return a})),e}return Y(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data.handles.points[0],i=o.worldToCanvas(a);if(!0==Ci.vec2.distance(n,i)<r)return a}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=Li(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),Oa(r);var a=(0,q.getEnabledElement)(r).renderingEngine;vr(a,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.index,o=n.Modality,a=n.value,i=n.SUVBw,l=n.SUVLbm,s=n.SUVBsa;if(void 0!==a||void 0!==i){var c=[];return c.push("(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")")),"PT"===o?a?c.push("".concat(a.toFixed(2)," SUV")):(c.push("".concat(i.toFixed(2)," SUV bw")),l&&c.push("".concat(l.toFixed(2)," SUV lbm")),s&&c.push("".concat(s.toFixed(2)," SUV bsa"))):"CT"===o?c.push("".concat(a.toFixed(2)," HU")):c.push("".concat(a.toFixed(2)," MO")),c}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if("PT"===n)if(t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,a=o.suvbwToSuvlbm,i=o.suvbwToSuvbsa;if(r.SUVBw=e,a){var l=e*a;r.SUVLbm=l}if(a){var s=e*i;r.SUVBsa=s}}else r.value=e;else r.value=e;return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.cachedStats,s=Object.keys(l),c=0;c<s.length;c++){var d=s[c],u=this.getTargetIdImage(d,t),v=u.dimensions,f=u.scalarData,g=u.imageData,h=u.metadata.Modality,p=Ms(g,i);if(p[0]=Math.round(p[0]),p[1]=Math.round(p[1]),p[2]=Math.round(p[2]),q.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]];d.startsWith("imageId:")&&function(){var e=(0,q.getRenderingEngine)(a).getStackViewports(),t=d.split("imageId:")[1],n=e.find((function(e){return e.hasImageId(t)}));p[2]=n.getCurrentImageIdIndex()}();var E=this._getValueForModality(y,u,h);l[d]=xs(xs({index:p},E),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[d]={index:p,Modality:h};e.invalidated=!1;var I=H.ANNOTATION_MODIFIED,b={annotation:e,viewportId:o,renderingEngineId:a};(0,q.triggerEvent)(q.eventTarget,I,b)}return l}}]),o}(qi);$(Rs,"toolName","Probe");var Ns=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"editData",void 0),$(mr(e),"eventDispatchDetail",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a)]},cachedStats:{}}},g=Li(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Oa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var a=e.getTargetId(o),i=o.getRenderingEngine(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,c=s.annotationUID,d=s.data,u=d.handles.points[0],v=o.worldToCanvas(u);l.annotationUID=c;var f=e.getStyle("color",l,s);if(d.cachedStats[a]?s.invalidated&&e._calculateCachedStats(s,i,t):(d.cachedStats[a]={Modality:null,index:null,value:null},e._calculateCachedStats(s,i,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;za(n,c,"0",[v],{color:f}),r=!0;var g=e._getTextLines(d,a);if(g){var h=[v[0]+6,v[1]-6];Qa(n,c,"0",g,[h[0],h[1]],e.getLinkedTextBoxStyle(l,s))}return r})),e}return Y(o)}(Rs);$(Ns,"toolName","DragProbe");var ks=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_getImageDynamicRangeFromMiddleSlice",(function(t,n){var r,o,a=Math.floor(n[2]/2),i=n[0]*n[1];t instanceof Float32Array?(r=4,o=Float32Array):t instanceof Uint8Array&&(r=1,o=Uint8Array);var l=new o(t.buffer,a*i*r,i),s=e._getMinMax(l,i);return s.max-s.min})),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,a,i,l,s=e.detail,c=s.element,d=s.deltaPoints,u=(0,q.getEnabledElement)(c),v=u.renderingEngine,f=u.viewportId,g=u.viewport,h=!1;if(g instanceof q.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).actor.getProperty().getRGBTransferFunction(0),l=q.utilities.getVolumeViewportsContainingVolumeId(t,v.id);var p=ei(o.getRange(),2);n=p[0],r=p[1];var m=q.cache.getVolume(t);a=m.metadata.Modality,h=m.scaling&&Object.keys(m.scaling).length>0}else{if(!(g instanceof q.StackViewport))throw new Error("Viewport is not a valid type");var w=g.getProperties();a=g.modality;var y=w.voiRange;n=y.lower,r=y.upper,h=g.isImagePreScaled(g.getCurrentImageId())}var E={volumeId:t,viewportId:f,range:i="PT"===a&&h?this.getPTNewRange({deltaPointsCanvas:d.canvas,lower:n,upper:r,clientHeight:c.clientHeight}):this.getNewRange({viewport:g,deltaPointsCanvas:d.canvas,volumeId:t,lower:n,upper:r})};if(g instanceof q.StackViewport)return g.setProperties({voiRange:i}),void g.render();(0,q.triggerEvent)(c,q.Enums.Events.VOI_MODIFIED,E),o.setRange(i.lower,i.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.viewport,n=e.deltaPointsCanvas,r=e.volumeId,o=e.lower,a=e.upper,i=this._getMultiplierFromDynamicRange(t,r)||4,l=n[0]*i,s=n[1]*i,c=q.utilities.windowLevel.toWindowLevel(o,a),d=c.windowWidth,u=c.windowCenter;return d+=l,u+=s,d=Math.max(d,1),q.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=q.cache.getVolume(t),o=r.dimensions,a=r.scalarData;n=this._getImageDynamicRangeFromMiddleSlice(a,o)}else n=this._getImageDynamicRangeFromViewport(e);var i=n/1024,l=4;return i>1&&(l=Math.round(i)),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 a=this._getMinMax(t,t.length);n=[a.min,a.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 a=e[o];a<n&&(n=a),a>r&&(r=a)}return{max:r,min:n}}}]),o}(Mr);$(ks,"toolName","WindowLevel");var Ps=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"initialMousePosWorld",void 0),$(mr(e),"dirVec",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o).viewport.getCamera().focalPoint;e.initialMousePosWorld=a;var l=Ci.vec3.fromValues(i[0]-a[0],i[1]-a[1],i[2]-a[2]);return l=Ci.vec3.normalize(Ci.vec3.create(),l),e.dirVec=l,!0})),$(mr(e),"_dragParallelProjection",(function(t,n,r){var o=t.detail,a=o.element,i=o.deltaPoints,l=[a.clientWidth,a.clientHeight],s=r.parallelScale,c=r.focalPoint,d=r.position,u=1.5/l[1],v=i.canvas[1],f=(1-v*u)*s,g=c,h=d;if(!e.configuration.zoomToCenter){var p=Ci.vec3.distance(c,e.initialMousePosWorld),m=v*(5/l[1]);f=(1-m)*s,h=Ci.vec3.scaleAndAdd(Ci.vec3.create(),d,e.dirVec,-p*m),g=Ci.vec3.scaleAndAdd(Ci.vec3.create(),c,e.dirVec,-p*m)}var w=n.getImageData().spacing,y=e.configuration,E=y.minZoomScale,I=y.maxZoomScale,b=a.clientHeight*w[1]*.5,C=b/f,_=f,T=!1;C<E?(_=b/E,T=!0):C>=I&&(_=b/I,T=!0),n.setCamera({parallelScale:_,focalPoint:T?c:g,position:T?d:h})})),$(mr(e),"_dragPerspectiveProjection",(function(e,t,n){var r=e.detail,o=r.element,a=r.deltaPoints,i=[o.clientWidth,o.clientHeight],l=n.position,s=n.focalPoint,c=n.viewPlaneNormal,d=Ml().distance2BetweenPoints(l,s),u=Math.sqrt(d)/i[1],v=[-c[0],-c[1],-c[2]],f=a.canvas[1]*u,g=f*v[0];l[0]+=g,s[0]+=g,g=f*v[1],l[1]+=g,s[1]+=g,g=f*v[2],l[2]+=g,s[2]+=g,t.setCamera({position:l,focalPoint:s})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}}]),o}(Mr);$(Ps,"toolName","Zoom");var As=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"deltaY",void 0),$(mr(e),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),e.deltaY=1,e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,a=n.renderingEngineId,i=(0,q.getEnabledElementByIds)(o,a).viewport,l=this.getTargetId(i),s=this.configuration.debounceIfNotLoaded,c=r.canvas[1];i instanceof q.VolumeViewport&&(t=l.split("volumeId:")[1]);var d=this._getPixelPerImage(i),u=c+this.deltaY;d&&(Math.abs(u)>=d?(mi(i,{delta:Math.round(u/d),volumeId:t,debounceLoading:s}),this.deltaY=u%d):this.deltaY=u)}},{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 q.VolumeViewport?q.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof q.StackViewport?e.getImageIds().length:void 0}}]),o}(Mr);$(As,"toolName","StackScroll");var Ls=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_configuration",void 0),e}return Y(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.wheel,r=t.element,o=n.direction,a=this.configuration.invert,i=(0,q.getEnabledElement)(r).viewport,l=o*(a?-1:1);if(i instanceof q.StackViewport)i.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(i instanceof q.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");wi(i,this.getTargetId(i).split("volumeId:")[1],l)}}}]),o}(Mr);$(Ls,"toolName","StackScrollMouseWheel");var Us={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Vs=function(e){yr(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 Ir(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:Us.Z,rotateIncrementDegrees:.5}};return z(this,o),$(mr(e=r.call(this,t,n)),"_configuration",void 0),e}return Y(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,q.getEnabledElement)(n).viewport,a=this.configuration,i=a.direction,l=a.rotateIncrementDegrees,s=o.getCamera(),c=s.viewUp,d=s.position,u=s.focalPoint,v=r.direction,f=ei(u,3),g=f[0],h=f[1],p=f[2],m=ei(i,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=Ci.mat4.identity(new Float32Array(16));Ci.mat4.translate(T,T,[g,h,p]),Ci.mat4.rotate(T,T,I,[w,y,E]),Ci.mat4.translate(T,T,[-g,-h,-p]),Ci.vec3.transformMat4(b,d,T),Ci.vec3.transformMat4(C,u,T),Ci.mat4.identity(T),Ci.mat4.rotate(T,T,I,[w,y,E]),Ci.vec3.transformMat4(_,c,T),o.setCamera({position:b,viewUp:_,focalPoint:C}),o.render()}}]),o}(Mr);$(Vs,"toolName","VolumeRotateMouseWheel");var Bs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_bounds",void 0),e}return Y(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,q.getEnabledElement)(n),a=o.viewport,i=o.renderingEngine,l=this.getTargetId(a);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var s=l.split("volumeId:")[1],c=-1/0,d=Rl(a,r.world,s,(function(e,t){if(e>c)return c=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=i.getViewport(e);t instanceof q.VolumeViewport?function(e,t){if(e instanceof q.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];Ci.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=Ci.vec3.dot(t,r),a=Ci.vec3.fromValues(r[0],r[1],r[2]);if(Ci.vec3.scale(a,a,o),Math.abs(a[0])>.001||Math.abs(a[1])>.001||Math.abs(a[2])>.001){var i=[0,0,0],l=[0,0,0];Ci.vec3.add(i,n.focalPoint,a),Ci.vec3.add(l,n.position,a),e.setCamera({focalPoint:i,position:l}),e.render()}}(e,r)}}(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(Mr);$(Bs,"toolName","MIPJumpToClickTool");var js=q.utilities.transformWorldToIndex,Fs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;Oa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Pn(a),Pn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ve(o,f);var g=Li(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ei(t.data.handles.points,2),i=a[0],l=a[1],s=o.worldToCanvas(i),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return Ki([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Oa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[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 i.worldToCanvas(e)})),C=void 0;if(h.cachedStats[c]?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[c]={length:null,unit:null},e._calculateCachedStats(f,d,t)),Te(g)){if(ne(f)||e.editData||null===w||(C=[b[w]]),C&&za(n,g,"0",b,{color:I,lineDash:E,lineWidth:y}),Ka(n,g,"1",b[0],b[1],{color:I,width:y,lineDash:E}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=e._getTextLines(h,c);if(!h.handles.textBox.hasMoved){var T=$i(b);h.handles.textBox.worldPosition=i.canvasToWorld(T)}var D=i.worldToCanvas(h.handles.textBox.worldPosition),O=oi(n,g,"1",_,D,b,{},e.getLinkedTextBoxStyle(u,f)),S=O.x,x=O.y,M=O.width,R=O.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([S,x]),topRight:i.canvasToWorld([S+M,x]),bottomLeft:i.canvasToWorld([S,x+R]),bottomRight:i.canvasToWorld([S+M,x+R])}}}return a})),e._throttledCalculateCachedStats=fi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Li(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Oa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(void 0!==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,a=n.renderingEngineId,i=r.handles.points[0],l=r.handles.points[1],s=r.cachedStats,c=Object.keys(s),d=0;d<c.length;d++){var u=c[d],v=this.getTargetIdImage(u,t),f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(i,l),m=js(f,i),w=js(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,s[u]={length:p,unit:h?"mm":"px"}}e.invalidated=!1;var y=H.ANNOTATION_MODIFIED,E={annotation:e,viewportId:o,renderingEngineId:a};return(0,q.triggerEvent)(q.eventTarget,y,E),s}},{key:"_isInsideVolume",value:function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)}}]),o}(qi);$(Fs,"toolName","Length");var Ws=Fs,Gs=s(847),qs=s.n(Gs);var Hs=q.CONSTANTS.RENDERING_DEFAULTS,zs=vl;function Ks(){return"rgb(0, 200, 0)"}function Ys(){return!0}function $s(){return!0}function Zs(){return!0}var Js=.001,Xs=function(e){yr(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 Ir(this,e)});function o(){var e,t,n,a,i,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:q.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return z(this,o),$(mr(i=r.call(this,l,s)),"toolCenter",[0,0,0]),$(mr(i),"_getReferenceLineColor",void 0),$(mr(i),"_getReferenceLineControllable",void 0),$(mr(i),"_getReferenceLineDraggableRotatable",void 0),$(mr(i),"_getReferenceLineSlabThicknessControlsOn",void 0),$(mr(i),"editData",void 0),$(mr(i),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,q.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,a=r.viewport,l=a.element,s=a.getCamera(),c=s.position,d=s.focalPoint,u=s.viewPlaneNormal,v=Ue(l,i.getToolName());(v=i.filterInteractableAnnotationsForElement(l,v)).length&&Be(v[0].annotationUID,l);var f={highlighted:!1,metadata:{cameraPosition:Pn(c),cameraFocalPoint:Pn(d),FrameOfReferenceUID:o,toolName:i.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:i.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}};return Da(l),Ve(l,f),{normal:u,point:a.canvasToWorld([a.canvas.clientWidth/2,a.canvas.clientHeight/2])}})),$(mr(i),"init",(function(){var e=pr(i.toolGroupId).viewportsInfo;if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=ei(e,3),n=t[0],r=t[1],o=t[2],a=i.initializeViewport(n),l=a.normal,s=a.point,c=i.initializeViewport(r),d=c.normal,u=c.point,v=[0,0,0],f=Ci.vec3.create();if(o){var g=i.initializeViewport(o);v=g.normal,f=g.point}else Ci.vec3.add(f,s,u),Ci.vec3.scale(f,f,.5),Ci.vec3.cross(v,l,d);var h=q.utilities.planar.planeEquation(l,s),p=q.utilities.planar.planeEquation(d,u),m=q.utilities.planar.planeEquation(v,f);i.toolCenter=q.utilities.planar.threePlaneIntersection(h,p,m)})),$(mr(i),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,a=(0,q.getEnabledElement)(r),l=a.viewport;i._jump(a,o);for(var s=Ue(r,i.getToolName()),c=i.filterInteractableAnnotationsForElement(l.element,s),d=c[0].data,u=d.handles.rotationPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=i._getReferenceLineControllable(g.id),p=i._getReferenceLineDraggableRotatable(g.id);h&&p&&(v.push(g.id),f++)}return d.activeViewportIds=[].concat(v),d.handles.activeOperation=1,e.preventDefault(),Oa(r),i._activateModify(r),c[0]})),$(mr(i),"cancel",(function(){console.log("Not implemented yet")})),$(mr(i),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),Oa(r),e.preventDefault()})),$(mr(i),"isPointNearTool",(function(e,t,n,r){return!!i._pointNearTool(e,t,n,6)})),$(mr(i),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),Oa(r),e.preventDefault()})),$(mr(i),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,q.getEnabledElement)(n),o=r.renderingEngine,a=r.viewport,l=Li(n,i.getToolName(),!1),s=Ue(n,i.getToolName()),c=i.filterInteractableAnnotationsForElement(n,s)[0];if(c){var d=a.getCamera(),u=c.metadata.cameraPosition,v=[0,0,0];Ml().subtract(d.position,u,v);var f=c.metadata.cameraFocalPoint,g=[0,0,0];Ml().subtract(d.focalPoint,f,g),c.metadata.cameraPosition=Pn(d.position),c.metadata.cameraFocalPoint=Pn(d.focalPoint);var h=i._getReferenceLineControllable(a.id),p=i._getReferenceLineDraggableRotatable(a.id);if(!q.utilities.isEqual(d.position,u,.001)&&h&&p){var m=!0;q.utilities.isEqual(v,g,.001)||(m=!1),m&&Math.abs(Ml().dot(v,d.viewPlaneNormal))>.01&&(i.toolCenter[0]+=v[0],i.toolCenter[1]+=v[1],i.toolCenter[2]+=v[2])}null!==(t=i.configuration.autoPan)&&void 0!==t&&t.enabled&&sn(a.id,o.id).getViewportIds().filter((function(e){return e!==a.id})).forEach((function(e){i._autoPanViewportIfNecessary(e,o)})),vr(o,l)}})),$(mr(i),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,a=!1,l=0;l<t.length;l++){var s=t[l];if(!ne(s)){var c=s.data,d=s.highlighted;if(c.handles){var u=c.handles.activeOperation,v=c.activeViewportIds&&c.activeViewportIds.length>0?Pn(c.activeViewportIds):[];c.activeViewportIds=[],c.handles.activeOperation=null;var f;(f=!!i.getHandleNearImagePoint(r,s,o,6)||i._pointNearTool(r,s,o,6))&&!d||!f&&d?(s.highlighted=!d,a=!0):c.handles.activeOperation===u&&i._areViewportIdArraysEqual(c.activeViewportIds,v)||(a=!0)}}}return a})),$(mr(i),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,q.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),$(mr(i),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,a=r.element,l=Ue(a,i.getToolName()),s=r.getCamera(),c=i.filterInteractableAnnotationsForElement(a,l)[0];if(!l||!c||!c.data)return n;var d=c.annotationUID,u=r.canvas,v=u.clientWidth,f=u.clientHeight,g=Math.sqrt(v*v+f*f),h=c.data,p=r.worldToCanvas(i.toolCenter),m=i._filterAnnotationsByUniqueViewportOrientations(e,l),w=[];m.forEach((function(e){var t=e.data;t.handles.toolCenter=i.toolCenter;var n=o.getViewport(t.viewportId),a=n.getCamera(),l=i._getReferenceLineControllable(n.id),c=i._getReferenceLineDraggableRotatable(n.id),d=i._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];Ml().cross(s.viewPlaneNormal,a.viewPlaneNormal,I),Ml().normalize(I),Ml().multiplyScalar(I,h);var b=[0,0,0];Ml().add(E,I,b);var C=[0,0,0];Ml().subtract(E,I,C);var _=[0,0,v,f],T=r.worldToCanvas(b),D=r.worldToCanvas(E),O=Ci.vec2.create();Ci.vec2.subtract(O,T,D),Ci.vec2.normalize(O,O);var S=Ci.vec2.create();Ci.vec2.scale(S,O,100*g);var x=Ci.vec2.create();Ci.vec2.scale(x,O,.25*g);var M=Ci.vec2.create();Ci.vec2.scale(M,O,.15*g);var R=Ci.vec2.create();Ci.vec2.scale(R,O,2===m.length?.04*g:0);var N=Ci.vec2.create(),k=Ci.vec2.create(),P=Ci.vec2.create(),A=Ci.vec2.create(),L=Ci.vec2.clone(p);c&&l||(L=Ci.vec2.clone(D)),Ci.vec2.add(N,L,R),Ci.vec2.add(k,L,S),Ci.vec2.subtract(P,L,R),Ci.vec2.subtract(A,L,S),zs(N,k,_),zs(P,A,_);var U=Ci.vec2.create();Ci.vec2.subtract(U,p,x);var V=Ci.vec2.create();Ci.vec2.add(V,p,x);var B=Ci.vec2.clone(p);!c&&d&&(B=Ci.vec2.clone(D));var j=Pn(i.toolCenter);!c&&d&&(j=Pn(E));var F=[0,0,0];Ml().subtract(b,C,F),Ml().normalize(F);var W=s.viewPlaneNormal,G=qs().buildFromDegree().rotate(90,W).matrix,q=[0,0,0];Ci.vec3.transformMat4(q,F,G);var H=n.getSlabThickness(),z=[].concat(q);Ml().multiplyScalar(z,H);var K=[0,0,0];Ml().add(j,z,K);var Y=r.worldToCanvas(K),$=Ci.vec2.create();Ci.vec2.subtract($,B,Y);var Z=Ci.vec2.create();Ci.vec2.subtract(Z,B,S),Ci.vec2.add(Z,Z,$);var J=Ci.vec2.create();Ci.vec2.add(J,B,S),Ci.vec2.add(J,J,$),zs(Z,J,_);var X=Ci.vec2.create();Ci.vec2.add(X,B,S),Ci.vec2.subtract(X,X,$);var Q=Ci.vec2.create();Ci.vec2.subtract(Q,B,S),Ci.vec2.subtract(Q,Q,$),zs(X,Q,_);var ee=Ci.vec2.create(),te=Ci.vec2.create(),ne=Ci.vec2.create(),re=Ci.vec2.create();Ci.vec2.subtract(ee,B,M),Ci.vec2.add(ee,ee,$),Ci.vec2.add(te,B,M),Ci.vec2.add(te,te,$),Ci.vec2.subtract(ne,B,M),Ci.vec2.subtract(ne,ne,$),Ci.vec2.add(re,B,M),Ci.vec2.subtract(re,re,$),w.push([n,N,k,P,A,Z,J,X,Q,U,V,ee,te,ne,re])}));var y=[],E=[],I=i._getReferenceLineColor(r.id),b=void 0!==I?I:"rgb(200, 200, 200)";return w.forEach((function(e,n){var o=e[0],a=i._getReferenceLineColor(o.id),l=i._getReferenceLineControllable(o.id),s=i._getReferenceLineDraggableRotatable(o.id),c=i._getReferenceLineSlabThicknessControlsOn(o.id),u=h.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==a?a:"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&&s?(p="".concat(n,"One"),Ka(t,d,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),Ka(t,d,p,e[3],e[4],{color:v,lineWidth:f})):Ka(t,d,p,e[2],e[4],{color:v,lineWidth:f}),l){v=void 0!==a?a:"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]],O=[r.canvasToWorld(e[13]),o,e[7],e[8]],S=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(E.push(T,D,O,S),g&&!m&&!C&&s&&c){var x="".concat(n,"One");za(t,d,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),za(t,d,x,_,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&s){var M="".concat(n);za(t,d,M,w,{color:v,handleRadius:3,type:"circle"})}else if(u&&!m&&!C&&c){var R="".concat(n);za(t,d,R,_,{color:v,handleRadius:3,type:"rect"})}else if(m&&s){var N="".concat(n);za(t,d,N,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&c&&za(t,d,p,_,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&c&&(p="".concat(n,"STOne"),Ka(t,d,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),Ka(t,d,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=y,h.handles.slabThicknessPoints=E,i.configuration.viewportIndicators&&qa(t,d,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),$(mr(i),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),$(mr(i),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,a=t.filter((function(e){return e.data.viewportId!==n}));if(!a||!a.length)return[];var i=o.getCamera(),l=i.viewPlaneNormal,s=i.position,c=a.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(q.utilities.isEqual(n.viewPlaneNormal,l,.01)&&q.utilities.isEqual(n.position,s,1))}));return c})),$(mr(i),"_filterViewportWithSameOrientation",(function(e,t,n){var r=e.renderingEngine,o=t.data,a=r.getViewport(o.viewportId),l=n.filter((function(e){var t=e.data,n=r.getViewport(t.viewportId);return!0===i._getReferenceLineControllable(n.id)}));if(!l||!l.length)return[];var s=a.getCamera(),c=s.viewPlaneNormal;return Ml().normalize(c),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return Ml().normalize(o),q.utilities.isEqual(c,o,.01)&&q.utilities.isEqual(s.viewUp,n.viewUp,.01)}))})),$(mr(i),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;Ml().normalize(o);for(var a=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0===a})),l=[],s=0;s<a.length;++s){var c=a[s],d=c.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(Ml().normalize(v),!q.utilities.isEqual(o,v,.01)&&!q.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();q.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&q.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(c)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0!==a})),w=0;w<m.length;++w){var y=m[w],E=y.data.viewportId,I=n.getViewport(E).getCamera(),b=I.viewPlaneNormal;if(Ml().normalize(b),!q.utilities.isEqual(o,b,.01)&&!q.utilities.isOpposite(o,b,.01)){for(var C=!1,_=0;_<l.length;++_){var T=l[_].data.viewportId,D=n.getViewport(T).getCamera();q.utilities.isEqual(D.viewPlaneNormal,I.viewPlaneNormal,.01)&&q.utilities.isEqual(D.position,I.position,1)&&(C=!0)}C||l.push(y)}}for(var O=i._getAnnotationsForViewportsWithDifferentCameras(e,t),S=function(e){var t=O[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,a=n.getViewport(r).getCamera(),i=a.viewPlaneNormal;if(Ml().normalize(i),q.utilities.isEqual(o,i,.01)||q.utilities.isOpposite(o,i,.01))return"continue";for(var s=!1,c=0;c<l.length;++c){var d=l[c].data.viewportId,u=n.getViewport(d).getCamera();q.utilities.isEqual(u.viewPlaneNormal,a.viewPlaneNormal,.01)&&q.utilities.isEqual(u.position,a.position,1)&&(s=!0)}s||l.push(t)},x=0;x<O.length;++x)S(x);return l})),$(mr(i),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),$(mr(i),"_jump",(function(e,t){tn.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=Ue(n.element,i.getToolName()),a=[0,0,0];Ml().subtract(t,i.toolCenter,a);var l=i._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),a=i._checkIfViewportsRenderingSameScene(n,o);return i._getReferenceLineControllable(o.id)&&i._getReferenceLineDraggableRotatable(o.id)&&a}));return 0===l.length?(tn.isInteractingWithTool=!1,!1):(i._applyDeltaShiftToSelectedViewportCameras(r,l,a),tn.isInteractingWithTool=!1,!0)})),$(mr(i),"_activateModify",(function(e){tn.isInteractingWithTool=!0,e.addEventListener(H.MOUSE_UP,i._mouseUpCallback),e.addEventListener(H.MOUSE_DRAG,i._mouseDragCallback),e.addEventListener(H.MOUSE_CLICK,i._mouseUpCallback)})),$(mr(i),"_deactivateModify",(function(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,i._mouseUpCallback),e.removeEventListener(H.MOUSE_DRAG,i._mouseDragCallback),e.removeEventListener(H.MOUSE_CLICK,i._mouseUpCallback)})),$(mr(i),"_mouseUpCallback",(function(e){var t=e.detail.element;i.editData.annotation.highlighted=!1,i.editData.annotation.data.handles.activeOperation=null,i.editData.annotation.data.activeViewportIds=[],i._deactivateModify(t),Da(t),i.editData=null;var n=(0,q.getEnabledElement)(t).renderingEngine,r=Li(t,i.getToolName(),!1);vr(n,r)})),$(mr(i),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,q.getEnabledElement)(r),a=o.renderingEngine,l=o.viewport,s=Ue(r,i.getToolName()),c=i.filterInteractableAnnotationsForElement(r,s)[0];if(c){var d=c.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o&&c.data.activeViewportIds.find((function(e){return e===n.id}))}));i._applyDeltaShiftToSelectedViewportCameras(a,v,n)}else if(2===d.activeOperation){var f=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=Ci.vec2.create(),h=Ci.vec2.create(),p=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,y=Ci.vec2.create();Ci.vec2.sub(y,w,t.deltaPoints.canvas),Ci.vec2.sub(g,y,m),Ci.vec2.sub(h,w,m);var E=Ci.vec2.angle(g,h);i._isClockWise(m,y,w)&&(E*=-1),E=Math.round(100*E)/100;var I=l.getCamera().viewPlaneNormal,b=qs().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=a.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,i=r.position,l=r.focalPoint;o[0]+=i[0],o[1]+=i[1],o[2]+=i[2],Ci.vec3.transformMat4(l,l,b),Ci.vec3.transformMat4(i,i,b),Ci.vec3.transformMat4(o,o,b),o[0]-=i[0],o[1]-=i[1],o[2]-=i[2],n.setCamera({position:i,viewUp:o,focalPoint:l}),C.push(n.id)})),a.renderViewports(C)}else if(3===d.activeOperation){var _=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineSlabThicknessControlsOn(n.id);return!0===r&&!0===o&&c.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===_.length)return;var T=i._filterViewportWithSameOrientation(o,_[0],s),D=[];D.push(l.id),T.forEach((function(e){var r=e.data,o=a.getViewport(r.viewportId),s=o.getCamera().viewPlaneNormal,d=Ml().dot(n,s),v=Pn(s);if(Ml().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=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]];if(!i._getReferenceLineDraggableRotatable(o.id)){var m=i.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]);Ml().add(w,y,p),Ml().multiplyScalar(p,.5)}}Ml().subtract(g,p,h);var E=Ml().dot(h,s),I=Pn(s);Ml().multiplyScalar(I,E);var b=[I[0],I[1],I[2]];Ci.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];Ci.vec3.normalize(C,C);var _=o.getSlabThickness();q.utilities.isOpposite(b,C,.001)?_-=f:_+=f,_=Math.abs(_),_=Math.max(Hs.MINIMUM_SLAB_THICKNESS,_),i._pointNearReferenceLine(c,u,6,o)&&(_=Hs.MINIMUM_SLAB_THICKNESS),sn(o.id,a.id).getToolInstance(i.getToolName()).setSlabThickness(o,_),D.push(o.id)}})),a.renderViewports(D)}}}})),$(mr(i),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,a=0;a<o.length-1;++a){var l=o[a][1];if(l.id===r.id&&i._getReferenceLineControllable(l.id)){var s={start:{x:o[a][2][0],y:o[a][2][1]},end:{x:o[a][3][0],y:o[a][3][1]}},c=Ki([s.start.x,s.start.y],[s.end.x,s.end.y],[t[0],t[1]]),d={start:{x:o[a+1][2][0],y:o[a+1][2][1]},end:{x:o[a+1][3][0],y:o[a+1][3][1]}},u=Ki([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(c<=n||u<=n)return!0;a++}}return!1})),i._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||Ks,i._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Ys,i._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||$s,i._getReferenceLineSlabThicknessControlsOn=(null===(a=l.configuration)||void 0===a?void 0:a.getReferenceLineSlabThicknessControlsOn)||Zs,i}return Y(o,[{key:"onSetToolActive",value:function(){this.init()}},{key:"onSetToolPassive",value:function(){this.init()}},{key:"onSetToolEnabled",value:function(){this.init()}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==a||null!==(a=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?a:void 0}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.canvas,a=o.clientWidth,i=o.clientHeight,l=r.canvasToWorld([0,0]),s=r.canvasToWorld([a,i]),c=r.canvasToWorld([a,0]),d=r.canvasToWorld([0,i]),u=Math.min(l[0],s[0],c[0],d[0]),v=Math.max(l[0],s[0],c[0],d[0]),f=Math.min(l[1],s[1],c[1],d[1]),g=Math.max(l[1],s[1],c[1],d[1]),h=Math.min(l[2],s[2],c[2],d[2]),p=Math.max(l[2],s[2],c[2],d[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-Js)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+Js)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-Js)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+Js)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-Js)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+Js))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===Hs.MINIMUM_SLAB_THICKNESS&&(o=q.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),a=o.getCamera(),i=a.viewPlaneNormal,l=Ml().dot(n,i),s=Pn(i);if(Ml().multiplyScalar(s,l),Math.abs(s[0])>.001||Math.abs(s[1])>.001||Math.abs(s[2])>.001){var c=[0,0,0],d=[0,0,0];Ml().add(a.focalPoint,s,c),Ml().add(a.position,s,d),o.setCamera({focalPoint:c,position:d}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.rotationPoints,i=0;i<a.length;i++){var l=a[i][0],s=a[i][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineDraggableRotatable(s.id)){var c=e.worldToCanvas(l);if(Ci.vec2.distance(n,c)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.slabThicknessPoints,i=0;i<a.length;i++){var l=a[i][0],s=a[i][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineSlabThicknessControlsOn(s.id)){var c=e.worldToCanvas(l);if(Ci.vec2.distance(n,c)<r)return o.handles.activeOperation=3,o.activeViewportIds=[s.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,a=(0,q.getEnabledElement)(e).viewport.canvas,i=a.clientWidth,l=a.clientHeight,s=Math.sqrt(i*i+l*l),c=t.data,d=c.handles.rotationPoints,u=c.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=Ki([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=Ki([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(w<=r||E<=r)&&(v.push(g.id),c.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var a=o._getReferenceLineControllable(t.id),i=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!a||!i)return b=e,"continue";var l=u[e][2],d=u[e][3],f=Ci.vec2.create();Ci.vec2.add(f,l,d),Ci.vec2.scale(f,f,.5);var g=Ci.vec2.create();Ci.vec2.subtract(g,l,f),Ci.vec2.normalize(g,g);var h=Ci.vec2.create();Ci.vec2.scale(h,g,.05*s);var p=Ci.vec2.create(),m=Ci.vec2.create();Ci.vec2.add(p,f,h),Ci.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},y=Ki([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=Ki([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(y<=r||I<=r)&&(v.push(t.id),c.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return c.activeViewportIds=[].concat(v),this.editData={annotation:t},1===c.handles.activeOperation}}]),o}(qi);function Qs(e,t,n,r){var o=Ci.vec3.create();Ci.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ci.vec3.fromValues.apply(Ci.vec3,Pn(n)),i=Ci.vec3.fromValues.apply(Ci.vec3,Pn(r)),l=Ci.vec3.create();Ci.vec3.subtract(l,a,i);var s=Ci.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ci.vec3.dot(l,o)/(s*Ci.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}$(Xs,"toolName","Crosshairs");var ec=q.utilities.transformWorldToIndex,tc=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",!1),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.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:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},cachedStats:{}}};Ve(o,g);var h=Li(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,centerCanvas:i,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(c,h),g})),$(mr(e),"isPointNearTool",(function(t,n,r,o){var a=(0,q.getEnabledElement)(t).viewport,i=ei(gl(n.data.handles.points.map((function(e){return a.worldToCanvas(e)}))),2),l=i[0],s=i[1],c={left:Math.min(l[0],s[0])+o/2,top:Math.min(l[1],s[1])+o/2,width:Math.abs(l[0]-s[0])-o,height:Math.abs(l[1]-s[1])-o},d={left:Math.min(l[0],s[0])-o/2,top:Math.min(l[1],s[1])-o/2,width:Math.abs(l[0]-s[0])+o,height:Math.abs(l[1]-s[1])+o},u=e._pointInEllipseCanvas(c,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},Oa(o),e._activateModify(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l,s,c,d,u=!1;if(r.worldPosition)u=!0;else{var v=a.handles.points,f=(0,q.getEnabledElement)(o).viewport.worldToCanvas;i=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[i],s=Math.abs(g[2][0]-g[3][0]),c=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:i,canvasWidth:s,canvasHeight:c,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),Oa(o);var p=(0,q.getEnabledElement)(o).renderingEngine;vr(p,h),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}}})),$(mr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else e._dragHandle(t),a.invalidated=!0;var g=(0,q.getEnabledElement)(r).renderingEngine;vr(g,i)})),$(mr(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r).viewport.canvasToWorld,a=e.editData,i=a.annotation,l=a.canvasWidth,s=a.canvasHeight,c=a.handleIndex,d=a.centerCanvas,u=a.originalHandleCanvas,v=i.data.handles.points,f=n.currentPoints.canvas;if(0===c||1===c){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],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=s/2+(f[1]-u[1]),_=[d[0],d[1]-C],T=[d[0],d[1]+C];v[0]=o(_),v[1]=o(T)}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[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 i.worldToCanvas(e)})),C=gl(b);if(h.cachedStats[c]?f.invalidated&&(e._throttledCalculateCachedStats(f,i,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,i,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=void 0;if(Te(g)){ne(f)||e.editData||null===w||(_=[b[w]]),_&&za(n,g,"0",_,{color:I}),Ha(n,g,"0",C[0],C[1],{color:I,lineDash:E,lineWidth:y}),a=!0;var T=e._getTextLines(h,c);if(T&&0!==T.length){var D=void 0;h.handles.textBox.hasMoved||(D=$i(C),h.handles.textBox.worldPosition=i.canvasToWorld(D));var O=i.worldToCanvas(h.handles.textBox.worldPosition),S=oi(n,g,"1",T,O,b,{},e.getLinkedTextBoxStyle(u,f)),x=S.x,M=S.y,R=S.width,N=S.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([x,M]),topRight:i.canvasToWorld([x+R,M]),bottomLeft:i.canvasToWorld([x,M+N]),bottomRight:i.canvasToWorld([x+R,M+N])}}}}return a})),$(mr(e),"_getTextLines",(function(e,t){var n,r,o,a,i,l=e.cachedStats[t],s=l.area,c=l.mean,d=l.stdDev,u=l.max,v=l.isEmptyArea,f=l.Modality,g=l.areaUnit,h=[];return s&&(n=v?"Area: Oblique not supported":"Area: ".concat(s.toFixed(2)," ").concat(g).concat(String.fromCharCode(178))),c&&(r="Mean: ".concat(c.toFixed(2))),u&&(a="Max: ".concat(u.toFixed(2))),d&&(o="StdDev: ".concat(d.toFixed(2))),i="PT"===f?"SUV":"CT"===f?"HU":"MO",n&&h.push(n),r&&h.push(r+" "+i),a&&h.push(a+" "+i),o&&h.push(o+" "+i),h})),$(mr(e),"_calculateCachedStats",(function(t,n,r,o){for(var a=t.data,i=o.viewportId,l=o.renderingEngineId,s=a.handles.points.map((function(e){return n.worldToCanvas(e)})),c=n.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=ei(gl(s),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=a.cachedStats,w=Object.keys(m),y=h,E=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r),_=C.dimensions,T=C.imageData,D=C.metadata,O=C.hasPixelSpacing,S=ec(T,y);S[0]=Math.floor(S[0]),S[1]=Math.floor(S[1]),S[2]=Math.floor(S[2]);var x=ec(T,E);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(S,x,_)?function(){var e=[[Math.min(S[0],x[0]),Math.max(S[0],x[0])],[Math.min(S[1],x[1]),Math.max(S[1],x[1])],[Math.min(S[2],x[2]),Math.max(S[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=Qs(d,u,y,E),r=n.worldWidth,o=n.worldHeight,a=0===r&&0===o,i=Math.PI*(r/2)*(o/2),l=0,s=0,c=0,v=-1/0;_i(T,(function(e,n){return fl(t,e)}),(function(e){var t=e.value;t>v&&(v=t),s+=t,l+=1}),e),s/=l,_i(T,(function(e,n){return fl(t,e)}),(function(e){var t=e.value-s;c+=t*t}),e),c/=l,c=Math.sqrt(c),m[b]={Modality:D.Modality,area:i,mean:s,max:v,stdDev:c,isEmptyArea:a,areaUnit:O?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:D.Modality})}t.invalidated=!1;var M=H.ANNOTATION_MODIFIED,R={annotation:t,viewportId:i,renderingEngineId:l};return(0,q.triggerEvent)(q.eventTarget,M,R),m})),$(mr(e),"_isInsideVolume",(function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=fi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],a=[t[0]-o[0],t[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(r*r)<=1}}]),o}(qi);$(tc,"toolName","EllipticalROI");var nc=q.utilities.transformWorldToIndex,rc=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preventHandleOutsideImage",void 0),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data.handles.points,i=o.worldToCanvas(a[0]),l=o.worldToCanvas(a[1]),s={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}},c=Ki([s.start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]);return c<=r||(i=o.worldToCanvas(a[2]),l=o.worldToCanvas(a[3]),(c=Ki([(s={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}}).start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]))<=r)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),Oa(o),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var s=Li(o,e.getToolName());Oa(o),e.editData={annotation:n,viewportIdsToRender:s,handleIndex:i,movingTextBox:l},e._activateModify(o);var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=s.handles.points,u=Ci.vec3.distance(d[0],d[1]);if(Ci.vec3.distance(d[2],d[3])>u){var v=[Pn(d[2]),Pn(d[3])],f=Pn(d[0]),g=Pn(d[1]),h=Ci.vec2.create();Ci.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=Ci.vec2.create();Ci.vec2.set(p,-h[1],h[0]);var m,w=Ci.vec2.create();Ci.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=Ci.vec2.dot(w,p)>0?[f,g]:[g,f],s.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var y=H.ANNOTATION_COMPLETED,E={annotation:o};(0,q.triggerEvent)(q.eventTarget,y,E)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o),i=a.renderingEngine,l=a.viewport,s=l.worldToCanvas,c=e.editData,d=c.annotation,u=c.viewportIdsToRender,v=c.handleIndex,f=d.data,g=r.world;f.handles.points[v]=Pn(g);var h=f.handles.points.map(s),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],Ci.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,O=T-w*b,S=_-w*C,x=T+w*b;f.handles.points[2]=l.canvasToWorld([D,O]),f.handles.points[3]=l.canvasToWorld([S,x]),d.invalidated=!0,vr(i,u),e.editData.hasMoved=!0})),$(mr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r).renderingEngine,a=e.editData,i=a.annotation,l=a.viewportIdsToRender,s=a.handleIndex,c=a.movingTextBox,d=i.data;if(c){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===s){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),i.invalidated=!0}else e._mouseDragModifyHandle(t),i.invalidated=!0;vr(o,l)})),$(mr(e),"_mouseDragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o).viewport,i=e.editData,l=i.annotation,s=i.handleIndex,c=l.data,d=r.world,u=[a.worldToCanvas(c.handles.points[0]),a.worldToCanvas(c.handles.points[1]),a.worldToCanvas(c.handles.points[2]),a.worldToCanvas(c.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=Pn(d),h=a.worldToCanvas(g);if(0===s||1===s){var p=u[0===s?1:0],m={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(m,f))return;var w=pl([f.start.x,f.start.y],[f.end.x,f.end.y],[v.start.x,v.start.y],[v.end.x,v.end.y]),y=Ci.vec2.create();Ci.vec2.set(y,w[0],w[1]);var E=Ci.vec2.distance(u[2],y),I=Ci.vec2.distance(u[3],y),b=Math.abs(Ci.vec2.distance(p,y)),C=p[0]-h[0],_=p[1]-h[1],T=Math.sqrt(C*C+_*_),D=C/T,O=_/T,S=p[0]-b*D,x=p[1]-b*O,M=0===s?-1:1,R=S+E*O*M,N=x-E*D*M,k=S-I*O*M,P=x+I*D*M;c.handles.points[s]=g,c.handles.points[2]=a.canvasToWorld([R,N]),c.handles.points[3]=a.canvasToWorld([k,P])}else{var A=2===s?3:2,L={x:h[0],y:h[1]},U={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},V=U.longLineSegment.start.x-U.longLineSegment.end.x,B=U.longLineSegment.start.y-U.longLineSegment.end.y,j=Math.sqrt(V*V+B*B),F=V/j,W=B/j,G=(0===s||3===s?1:-1)*Number.MAX_SAFE_INTEGER,H={start:L,end:{x:L.x+W*G,y:L.y+F*G*-1}},z=pl([U.longLineSegment.start.x,U.longLineSegment.start.y],[U.longLineSegment.end.x,U.longLineSegment.end.y],[H.start.x,H.start.y],[H.end.x,H.end.y]);if(void 0===z)return;var K=Ci.vec2.distance(u[A],[z[0],z[1]]),Y={start:{x:z[0]+W*K,y:z[1]+F*K*-1},end:{x:z[0]+W*K*-1,y:z[1]+F*K}},$=2===A?Y.start:Y.end;c.handles.points[A]=a.canvasToWorld([$.x,$.y]),c.handles.points[s]=g}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!0,i=t.viewport,l=i.element,s=Ue(i.element,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f);if(h.cachedStats[c]?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[c]={length:null,width:null,unit:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var C=void 0;if(Te(g)){ne(f)||e.editData||null===w||(C=[y[w]]),C&&za(n,g,"0",C,{color:b}),Ka(n,g,"0",y[0],y[1],{color:b,lineDash:I,lineWidth:E}),Ka(n,g,"1",y[2],y[3],{color:b,lineDash:I,lineWidth:E}),a=!0;var _=e._getTextLines(h,c);if(_&&0!==_.length){var T=void 0;h.handles.textBox.hasMoved||(T=$i(y),h.handles.textBox.worldPosition=i.canvasToWorld(T));var D=i.worldToCanvas(h.handles.textBox.worldPosition),O=oi(n,g,"1",_,D,y,{},e.getLinkedTextBoxStyle(u,f)),S=O.x,x=O.y,M=O.width,R=O.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([S,x]),topRight:i.canvasToWorld([S+M,x]),bottomLeft:i.canvasToWorld([S,x+R]),bottomRight:i.canvasToWorld([S+M,x+R])}}}}return a})),$(mr(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=Ci.vec2.create();Ci.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),Ci.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!pl([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),$(mr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width,a=n.unit;if(void 0!==r)return["L: ".concat(r.toFixed(2)," ").concat(a),"W: ".concat(o.toFixed(2)," ").concat(a)]})),$(mr(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,a=r.viewportId,i=r.renderingEngineId,l=o.handles.points[0],s=o.handles.points[1],c=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n),p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,y=e._calculateLength(l,s),E=e._calculateLength(c,d),I=y>E?y:E,b=y>E?E:y,C=nc(p,l),_=nc(p,s),T=nc(p,c),D=nc(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 O=H.ANNOTATION_MODIFIED,S={annotation:t,viewportId:a,renderingEngineId:i};return(0,q.triggerEvent)(q.eventTarget,O,S),u})),$(mr(e),"_isInsideVolume",(function(e,t,n,r,o){return q.utilities.indexWithinDimensions(e,o)&&q.utilities.indexWithinDimensions(t,o)&&q.utilities.indexWithinDimensions(n,o)&&q.utilities.indexWithinDimensions(r,o)})),e._throttledCalculateCachedStats=fi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=(0,q.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;this.isDrawing=!0;var s=i.getCamera(),c=s.viewPlaneNormal,d=s.viewUp,u=this.getReferencedImageId(i,o,c,d),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:Pn(c),viewUp:Pn(d),FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:u},data:{handles:{points:[Pn(o),Pn(o),Pn(o),Pn(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:{}}};Ve(r,v);var f=Li(r,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:f,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),Oa(r),e.preventDefault(),vr(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}(qi);function oc(e,t){var n=e[0],r=e[e.length-1],o=Ci.vec2.create();Ci.vec2.set(o,r[0]-n[0],r[1]-n[1]),Ci.vec2.normalize(o,o);var a=Ci.vec2.create(),i=Ci.vec2.create();Ci.vec2.set(a,-o[1],o[0]),Ci.vec2.set(i,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],s={dist:0,index:null},c=0;c<e.length;c++){var d=e[c],u=Ci.vec2.dist(d,l);u>s.dist&&(s.dist=u,s.index=c)}return[e[s.index],l].map(t.canvasToWorld)}function ac(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],a=e[r+1],i=r>0?e[r-1]:2*o-a,l=r<t-1?e[r+2]:2*a-o;return function(e,t,n,r,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*n+(1+3*e+3*a-3*i)*r+i*o)/6}((n-r/t)*t,i,o,a,l)}}function ic(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function lc(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,sc),r=new Array(n);++t<n;)for(var o,a=-1,i=r[t]=new Array(o);++a<o;)i[a]=e[a][t];return r}function sc(e){return e.length}function cc(e,t,n,r){var o=n-t+1;if(isNaN(o)||!o||!r)return e;if(o/r<=2)return e;var a=Math.max(0,t),i=Math.min(e.length-1,n),l=e.slice(0,a),s=e.slice(i+1,e.length),c=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n=t[t.length-1]-t[0]+1,r=ac(t.map((function(t){return e[t][0]}))),o=ac(t.map((function(t){return e[t][1]}))),a=function(){return lc(arguments)}(ic(r,n),ic(o,n));return a}(e,function(e,t){for(var n=[],r=ei(t,2),o=r[0],a=r[1],i=a-o+1,l=Math.floor(i/e),s=0,c=Math.round((i-1)/(l-1)*s)+o;c<=a;)n.push(c),s++,c=Math.round((i-1)/(l-1)*s)+o;return n}(r,[a,i]));return[].concat(Pn(l),Pn(c),Pn(s))}function dc(e){var t;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.enabled)}function uc(e,t,n){return(e+t+n)%t}function vc(e,t,n,r){var o=ei(e,3),a=o[1],i=o[2],l=ei(t,3),s=l[1],c=l[2],d=i.length,u=c.length,v=e[0],f=t[0];if(!(i[v]&&c[f]&&i[a]&&c[s]))return[void 0,void 0];for(;v!==a&&f!==s;){if(n(c[f],i[v]))return[v,f];v=uc(v,d,r),f=uc(f,u,r)}return[void 0,void 0]}function fc(e,t,n){var r=e.interpolation,o=t;if(r){var a=r.minKnotDistance,i=r.editMinKnotDistance,l=r.enabled;if(void 0!==l&&l){var s=ei(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===Sl(e[n],t[r]))return[n,r]}(e,t)||[],r=ei(n,2),o=r[0],a=r[1],i=function(e,t){return!1===function(e,t){return Sl(e,t)<.001}(e,t)},l=ei(vc([uc(o,e.length,1),o,e],[uc(a,t.length,1),a,t],i,1),2),s=l[0],c=l[1];return[s,ei(vc([uc(s,e.length,-1),s,e],[uc(c,t.length,-1),c,t],i,-1),1)[0]]}(t,n):[0,t.length-1],2),c=s[0],d=s[1];return t[c]&&t[d]?cc(t,c,d,n?i:a):t}}return o}$(rc,"toolName","Bidirectional");var gc=Tl,hc=_l,pc=ml,mc=Cl;function wc(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=mc(l,this.configuration.subPixelResolution),c=s.spacing,d=s.xDir,u=s.yDir;this.drawData={canvasPoints:[i],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:c,xDir:d,yDir:u},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),Oa(a)}function yc(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),Da(e)}function Ec(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=s.canvasToWorld(m),y=Ci.vec3.create();Ci.vec3.subtract(y,o,w);var E=Math.abs(Ci.vec3.dot(y,u)),I=Math.abs(Ci.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=gc(r,p,a,this.commonData);this.drawData.polylineIndex=h+C}vr(l,d)}}function Ic(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],a=e.detail.element;t&&!hc(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(a):this.completeDrawClosedContour(a)}function bc(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,a=(0,q.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine;gc(e,t,t[0],this.commonData),t.pop();var s=(dc(this.configuration)?fc(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=s,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(l,o),this.deactivateDraw(e),!0}function Cc(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=pc(r,n[0],n[1],!1);if(o){var a=o[1];this.drawData.canvasPoints=e.splice(0,a)}}function _c(e){var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,a=(0,q.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine,s=(dc(this.configuration)?fc(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=s,r.data.isOpenContour=!0,r.data.handles.points=[s[0],s[s.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=oc(t,i)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(l,o),this.deactivateDraw(e),!0}function Tc(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.drawData.canvasPoints.slice(0,-1),l=pc(i,o,a,!1);if(void 0!==l)return l[0]}function Dc(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender;gc(n,r,r[t],this.commonData),r.pop();for(var l=0;l<t;l++)r.shift();this.completeDrawClosedContour(n)&&this.activateClosedContourEdit(e,a,i)}function Oc(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!hc(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Sc(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,a=(0,q.getEnabledElement)(e).renderingEngine;return Be(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(a,o),this.deactivateDraw(e),!0}return!1}var xc=function(e){e.activateDraw=wc.bind(e),e.deactivateDraw=yc.bind(e),e.applyCreateOnCross=Dc.bind(e),e.findCrossingIndexDuringCreate=Tc.bind(e),e.completeDrawOpenContour=_c.bind(e),e.removeCrossedLinesOnCompleteDraw=Cc.bind(e),e.mouseDragDrawCallback=Ec.bind(e),e.mouseUpDrawCallback=Ic.bind(e),e.completeDrawClosedContour=bc.bind(e),e.cancelDrawing=Oc.bind(e),e.haltDrawing=Sc.bind(e)},Mc=Tl,Rc=ml;function Nc(e,t){var n=e.detail,r=n.element,o=n.currentPoints,a=n.lastPoints,i=o.canvas,l=a.canvas,s=this.editData,c=s.editCanvasPoints,d=s.prevCanvasPoints,u=Rc(d,i,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(c.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=c[0],f=[],g=0;g<d.length;g++){var h=d[g],p=Ci.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=Ci.vec2.create();Ci.vec2.subtract(y,c[1],c[0]),Ci.vec2.normalize(y,y);var E=[c[0][0]-6*y[0],c[0][1]-6*y[1]],I=Rc(d,E,c[0],t);if(I){var b=[E];Mc(r,b,c[0],this.commonData),c.unshift.apply(c,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=c.length-1,this.editData.startCrossingIndex=I[0]}}}function kc(e){for(var t=this.editData,n=t.editCanvasPoints,r=t.prevCanvasPoints,o=0,a=0;a<n.length-1;a++){var i=[n[a],n[a+1]];if(o++,Rc(r,i[0],i[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Pc(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,a=r.canvas,i=o.canvas,l=this.editData.prevCanvasPoints;return!!Rc(l,a,i,t)}function Ac(e){for(var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=r.length-1;o>0;o--){var a=[r[o],r[o-1]],i=!!Rc(n,a[0],a[1],e);if(r.pop(),i)break}}function Lc(){var e=this.editData,t=e.editCanvasPoints,n=e.prevCanvasPoints;if(void 0!==e.startCrossingIndex){for(var r=t[t.length-1],o=[],a=0;a<n.length;a++){var i=n[a],l=Ci.vec2.distance(i,r);o.push({distance:l,index:a})}o.sort((function(e,t){return e.distance-t.distance}));for(var s=t.slice(0,-1),c=0;c<o.length;c++){var d=o[c].index,u=n[d],v=t[t.length-1];if(!Rc(s,u,v,!1))return d}return-1}}function Uc(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData.editCanvasPoints,l=i.slice(0,-2),s=Rc(l,o,a,!1);if(s)for(var c=s[0],d=i.length-c,u=0;u<d;u++)i.pop()}var Vc=function(e){e.checkForFirstCrossing=Nc.bind(e),e.removePointsUpUntilFirstCrossing=kc.bind(e),e.checkForSecondCrossing=Pc.bind(e),e.findSnapIndex=Lc.bind(e),e.removePointsAfterSecondCrossing=Ac.bind(e),e.checkAndRemoveCrossesOnEditLine=Uc.bind(e)},Bc=Cl,jc=Tl,Fc=Ol;function Wc(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=t.data.polyline.map(l.worldToCanvas),c=Bc(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpClosedContourEditCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),Oa(a)}function Gc(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),Da(e)}function qc(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=s.canvasToWorld(w),E=Ci.vec3.create();Ci.vec3.subtract(E,o,y);var I=Math.abs(Ci.vec3.dot(E,u)),b=Math.abs(Ci.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+jc(r,p,a,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)),vr(l,d)):this.finishEditAndStartNewEdit(e)}}function Hc(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!1,this.triggerAnnotationModified(i,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},vr(o,l)}function zc(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,a=t.snapIndex;if(void 0!==o&&void 0!==a){var i,l,s=e.detail.element,c=Pn(r);jc(s,c,n[a],this.commonData),c.length>r.length&&c.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=Ci.vec2.distance(n[i],c[0]),u=Ci.vec2.distance(n[i],c[c.length-1]),v=Ci.vec2.distance(n[l],c[0]),f=Ci.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<i;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<c.length;y++){var E=c[y];g.push([E[0],E[1]])}else for(var I=c.length-1;I>=0;I--){var b=c[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var _=n[C];g.push([_[0],_[1]])}for(var T=[],D=i;D<l;D++){var O=n[D];T.push([O[0],O[1]])}if((m=v+u)<(w=f+d))for(var S=0;S<c.length;S++){var x=c[S];T.push([x[0],x[1]])}else for(var M=c.length-1;M>=0;M--){var R=c[M];T.push([R[0],R[1]])}return Fc(g)>Fc(T)?g:T}}function Kc(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function Yc(e){var t=(0,q.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,s=l.fusedCanvasPoints,c=l.prevCanvasPoints;if(s){var d=(dc(this.configuration)?fc(this.configuration,s,c):s).map((function(e){return n.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,vr(r,i),this.deactivateClosedContourEdit(e)}function $c(e){this.completeClosedContourEdit(e)}var Zc=function(e){e.activateClosedContourEdit=Wc.bind(e),e.deactivateClosedContourEdit=Gc.bind(e),e.mouseDragClosedContourEditCallback=qc.bind(e),e.mouseUpClosedContourEditCallback=Kc.bind(e),e.finishEditAndStartNewEdit=Hc.bind(e),e.fuseEditPointsWithClosedContour=zc.bind(e),e.cancelClosedContourEdit=$c.bind(e),e.completeClosedContourEdit=Yc.bind(e)},Jc=Tl,Xc=Cl;function Qc(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=t.data.polyline.map(l.worldToCanvas),c=Xc(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpOpenContourEditCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),Oa(a)}function ed(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),Da(e)}function td(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=s.canvasToWorld(w),E=Ci.vec3.create();Ci.vec3.subtract(E,o,y);var I=Math.abs(Ci.vec3.dot(E,u)),b=Math.abs(Ci.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Jc(r,p,a,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),vr(l,d)}}function nd(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.fuseEditPointsForOpenContourEndEdit().map((function(e){return r.canvasToWorld(e)}));a.data.polyline=l,a.data.isOpenContour=!0,a.data.handles.points=[l[0],l[l.length-1]],a.data.handles.activeHandleIndex=1,this.triggerAnnotationModified(a,n),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(t),this.activateOpenContourEndEdit(e,a,i)}function rd(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData,l=i.snapIndex,s=i.prevCanvasPoints;if(void 0===i.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==s.length-1)return!1;var c=o,d=a,u=s[l],v=Ci.vec2.create(),f=Ci.vec2.create();Ci.vec2.set(v,c[0]-d[0],c[1]-d[1]),Ci.vec2.set(f,c[0]-u[0],c[1]-u[1]);var g=Ci.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 od(){var e=this.editData,t=e.snapIndex,n=e.prevCanvasPoints,r=e.editCanvasPoints,o=e.startCrossingIndex,a=[];if(0===t)for(var i=n.length-1;i>=o;i--){var l=n[i];a.push([l[0],l[1]])}else for(var s=0;s<o;s++){var c=n[s];a.push([c[0],c[1]])}if(Ci.vec2.distance(n[o],r[0])<Ci.vec2.distance(n[o],r[r.length-1]))for(var d=0;d<r.length;d++){var u=r[d];a.push([u[0],u[1]])}else for(var v=r.length-1;v>=0;v--){var f=r[v];a.push([f[0],f[1]])}return a}function ad(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,a=t.snapIndex;if(void 0!==o&&void 0!==a){var i,l,s=e.detail.element,c=Pn(r);Jc(s,c,n[a],this.commonData),c.length>r.length&&c.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=Ci.vec2.distance(n[i],c[0]),u=Ci.vec2.distance(n[i],c[c.length-1]),v=Ci.vec2.distance(n[l],c[0]),f=Ci.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<i;h++){var p=n[h];g.push([p[0],p[1]])}if(d+f<u+v)for(var m=0;m<c.length;m++){var w=c[m];g.push([w[0],w[1]])}else for(var y=c.length-1;y>=0;y--){var E=c[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 id(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!0,i.data.handles.points=[u[0],u[u.length-1]],this.triggerAnnotationModified(i,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},vr(o,l)}function ld(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function sd(e){var t=(0,q.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,s=l.fusedCanvasPoints,c=l.prevCanvasPoints;if(s){var d=(dc(this.configuration)?fc(this.configuration,s,c):s).map((function(e){return n.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!0,a.data.handles.points=[d[0],d[d.length-1]],a.data.isOpenUShapeContour&&(a.data.openUShapeContourVectorToPeak=oc(s,n)),this.triggerAnnotationModified(a,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,vr(r,i),this.deactivateOpenContourEdit(e)}function cd(e){this.completeOpenContourEdit(e)}var dd=function(e){e.activateOpenContourEdit=Qc.bind(e),e.deactivateOpenContourEdit=ed.bind(e),e.mouseDragOpenContourEditCallback=td.bind(e),e.mouseUpOpenContourEditCallback=ld.bind(e),e.fuseEditPointsWithOpenContour=ad.bind(e),e.finishEditOpenOnSecondCrossing=id.bind(e),e.checkIfShouldOverwriteAnEnd=rd.bind(e),e.fuseEditPointsForOpenContourEndEdit=od.bind(e),e.openContourEditOverwriteEnd=nd.bind(e),e.cancelOpenContourEdit=cd.bind(e),e.completeOpenContourEdit=sd.bind(e)},ud=Cl;function vd(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,q.getEnabledElement)(r).viewport,a=ud(o,this.configuration.subPixelResolution),i=a.spacing,l=a.xDir,s=a.yDir,c=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&c.reverse(),this.drawData={canvasPoints:c,polylineIndex:c.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:i,xDir:l,yDir:s},tn.isInteractingWithTool=!0,r.addEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),Oa(r)}var fd=function(e){e.activateOpenContourEndEdit=vd.bind(e)},gd=_l;function hd(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),a=this.getStyle("color",n,t);return{color:void 0===a?void 0:a,width:void 0===r?void 0:r,lineDash:void 0===o?void 0:o,connectLastToFirst:!t.data.isOpenContour}}function pd(e,t,n){n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return oc(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 md(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));$a(t,n.annotationUID,"1",a,o)}function wd(e,t,n){var r,o=e.viewport,a=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));$a(t,n.annotationUID,"1",i,a);var l=n.data.handles.activeHandleIndex;if(!0===(null===(r=this.configuration.alwaysRenderOpenContourHandles)||void 0===r?void 0:r.enabled)){var s=this.configuration.alwaysRenderOpenContourHandles.radius,c=[i[0],i[i.length-1]];0===l?c.shift():1===l&&c.pop(),za(t,n.annotationUID,"0",c,{color:a.color,handleRadius:s})}if(null!==l){var d=i[0===l?0:i.length-1];za(t,n.annotationUID,"1",[d],{color:a.color})}}function yd(e,t,n){var r=e.viewport,o=n.data,a=o.polyline,i=o.openUShapeContourVectorToPeak;this.renderOpenContour(e,t,n);var l=r.worldToCanvas(a[0]),s=r.worldToCanvas(a[a.length-1]),c=[r.worldToCanvas(i[0]),r.worldToCanvas(i[1])],d=this._getRenderingOptions(e,n);$a(t,n.annotationUID,"first-to-last",[l,s],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"}),$a(t,n.annotationUID,"midpoint-to-open-contour",[c[0],c[1]],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"})}function Ed(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,a=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,$a(t,n.annotationUID,"1",a,r),o){var i=a[0],l=a[a.length-1];gd(i,l,this.configuration.closeContourProximity)?$a(t,n.annotationUID,"2",[l,i],r):za(t,n.annotationUID,"0",[i],{color:r.color,handleRadius:2})}}function Id(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);$a(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function bd(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);$a(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var Cd=function(e){e.renderContour=pd.bind(e),e.renderClosedContour=md.bind(e),e.renderOpenContour=wd.bind(e),e.renderOpenUShapedContour=yd.bind(e),e.renderContourBeingDrawn=Ed.bind(e),e.renderClosedContourBeingEdited=Id.bind(e),e.renderOpenContourBeingEdited=bd.bind(e),e._getRenderingOptions=hd.bind(e)};function _d(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 Td=Dl,Dd=function(e){yr(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 Ir(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:{enabled:!1,minKnotDistance:20,editMinKnotDistance:10}}};return z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"commonData",void 0),$(mr(e),"isDrawing",!1),$(mr(e),"isEditingClosed",!1),$(mr(e),"isEditingOpen",!1),$(mr(e),"activateDraw",void 0),$(mr(e),"activateClosedContourEdit",void 0),$(mr(e),"activateOpenContourEdit",void 0),$(mr(e),"activateOpenContourEndEdit",void 0),$(mr(e),"cancelDrawing",void 0),$(mr(e),"cancelClosedContourEdit",void 0),$(mr(e),"cancelOpenContourEdit",void 0),$(mr(e),"renderContour",void 0),$(mr(e),"renderContourBeingDrawn",void 0),$(mr(e),"renderClosedContourBeingEdited",void 0),$(mr(e),"renderOpenContourBeingEdited",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine,c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f=Li(o,e.getToolName()),g={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(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:[Pn(a)],label:""}};return Ve(o,g),e.activateDraw(t,g,f),t.preventDefault(),vr(s,f),g})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=Li(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,o)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=Li(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,o):e.activateClosedContourEdit(t,n,o)})),$(mr(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,q.getEnabledElement)(e).viewport,a=t.data.polyline,i=o.worldToCanvas(a[0]),l=1;l<a.length;l++){var s=i,c=o.worldToCanvas(a[l]);if(!0===Td(n,s,c,r))return!0;i=c}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(a[0]),u=o.worldToCanvas(a[a.length-1]);return!0===Td(n,d,u,r)})),$(mr(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)})),$(mr(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=H.ANNOTATION_MODIFIED,a={annotation:e,viewportId:n,renderingEngineId:r};(0,q.triggerEvent)(q.eventTarget,o,a)})),$(mr(e),"triggerAnnotationCompleted",(function(e){var t=H.ANNOTATION_COMPLETED,n={annotation:e};(0,q.triggerEvent)(q.eventTarget,t,n)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport.element,l=Ue(i,e.getToolName());if(null===(r=l)||void 0===r||!r.length)return a;if(null===(o=l=e.filterInteractableAnnotationsForElement(i,l))||void 0===o||!o.length)return a;var s=e.isDrawing,c=e.isEditingOpen,d=e.isEditingClosed;if(!(s||c||d))return l.forEach((function(r){return e.renderContour(t,n,r)})),a;var u=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===u)if(s)e.renderContourBeingDrawn(t,n,r);else if(d)e.renderClosedContourBeingEdited(t,n,r);else{if(!c)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),xc(mr(e)),Vc(mr(e)),Zc(mr(e)),dd(mr(e)),fd(mr(e)),Cd(mr(e)),e}return Y(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,q.getEnabledElement)(e).viewport;if(r instanceof q.StackViewport)n=Bi(r,t);else{if(!(r instanceof q.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),a=q.utilities.getTargetVolumeAndSpacingInNormalDir(r,o).spacingInNormalDirection;n=this.filterAnnotationsWithinSlice(t,o,a)}return n}}},{key:"filterAnnotationsWithinSlice",value:function(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return q.utilities.isEqual(t,r)}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,s=[],c=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return _d(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)?_d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(c.s();!(a=c.n()).done;){var d=a.value,u=d.data.polyline[0],v=Ci.vec3.create();Ci.vec3.sub(v,l,u);var f=Ci.vec3.dot(v,r);Math.abs(f)<i&&s.push(d)}}catch(e){c.e(e)}finally{c.f()}return s}}]),o}(qi);$(Dd,"toolName","PlanarFreehandROI");var Od=Dd;var Sd=function(e){yr(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 Ir(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:xd,changeTextCallback:Md,preventHandleOutsideImage:!1,arrowFirst:!0}};return z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;Oa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f=e.configuration.arrowFirst,g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{text:"",handles:{points:[Pn(a),Pn(a)],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:""}};Ve(o,g);var h=Li(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,h),g})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ei(t.data.handles.points,2),i=a[0],l=a[1],s=o.worldToCanvas(i),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return Ki([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Oa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),i&&e.configuration.getTextCallback((function(t){if(!t)return Be(o.annotationUID,n),vr(c,a),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var r=H.ANNOTATION_COMPLETED,i={annotation:o};(0,q.triggerEvent)(q.eventTarget,r,i),vr(c,a)})),e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"doubleClickCallback",(function(t){var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r),a=(o.viewportId,o.renderingEngineId,o.renderingEngine,Ue(r,e.getToolName())),i=(a=e.filterInteractableAnnotationsForElement(r,a)).find((function(t){return e.isPointNearTool(r,t,n.currentPoints.canvas,6)}));if(i){var l=i;e.configuration.changeTextCallback(i,t.detail,e._doneChangingTextCallback.bind(mr(e),r,l)),e.editData=null,e.isDrawing=!1}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<s.length;d++){var u=s[d],v=u.annotationUID,f=u.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;c.annotationUID=v;var w=e.getStyle("lineWidth",c,u),y=e.getStyle("lineDash",c,u),E=e.getStyle("color",c,u),I=p.map((function(e){return i.worldToCanvas(e)})),b=void 0;if(ne(u)||e.editData||null===m||(b=[I[m]]),b&&za(n,v,"0",I,{color:E,lineWidth:w}),e.configuration.arrowFirst?ii(n,v,"1",I[1],I[0],{color:E,width:w,lineDash:y}):ii(n,v,"1",I[0],I[1],{color:E,width:w,lineDash:y}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(h){if(!f.handles.textBox.hasMoved){var C=$i(I);f.handles.textBox.worldPosition=i.canvasToWorld(C)}var _=i.worldToCanvas(f.handles.textBox.worldPosition),T=oi(n,v,"1",[h],_,I,{},e.getLinkedTextBoxStyle(c,u)),D=T.x,O=T.y,S=T.width,x=T.height;f.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([D,O]),topRight:i.canvasToWorld([D+S,O]),bottomLeft:i.canvasToWorld([D,O+x]),bottomRight:i.canvasToWorld([D+S,O+x])}}}return a})),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Li(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Oa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=r.renderingEngineId,l=Li(e,this.getToolName());vr(o,l);var s=H.ANNOTATION_MODIFIED;(0,q.triggerEvent)(q.eventTarget,s,{annotation:t,viewportId:a,renderingEngineId:i})}},{key:"_isInsideVolume",value:function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)}}]),o}(qi);function xd(e){return e(prompt("Enter your annotation:"))}function Md(e,t,n){return n(prompt("Enter your annotation:"))}$(Sd,"toolName","ArrowAnnotate");var Rd=Sd;var Nd=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"angleStartedNotYetCompleted",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){if(!e.angleStartedNotYetCompleted){e.angleStartedNotYetCompleted=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;Oa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Pn(a),Pn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ve(o,f);var g=Li(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,g),f}})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ei(t.data.handles.points,3),i=a[0],l=a[1],s=a[2],c=o.worldToCanvas(i),d=o.worldToCanvas(l),u=o.worldToCanvas(s),v={start:{x:c[0],y:c[1]},end:{x:d[0],y:d[1]}},f={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},g=Ki([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=Ki([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Li(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Oa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l)if(e.angleStartedNotYetCompleted&&2===s.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Da(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Da(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f,g=s[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 i.worldToCanvas(e)}));p.cachedStats[c]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[c]={angle:null},e._calculateCachedStats(g,d,t));var _=void 0;if(ne(g)||e.editData||null===y||(_=[C[y]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;_&&za(n,h,"0",C,{color:b,lineDash:I,lineWidth:E});var T="1";if(Ka(n,h,T,C[0],C[1],{color:b,width:E,lineDash:I}),a=!0,3!==C.length)return a;if(Ka(n,h,T="2",C[1],C[2],{color:b,width:E,lineDash:I}),null!==(f=p.cachedStats[c])&&void 0!==f&&f.angle){var D=e._getTextLines(p,c);if(!p.handles.textBox.hasMoved){var O=$i(C);p.handles.textBox.worldPosition=i.canvasToWorld(O)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=oi(n,h,"1",D,S,C,{},e.getLinkedTextBoxStyle(u,g)),M=x.x,R=x.y,N=x.width,k=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([M,R]),topRight:i.canvasToWorld([M+N,R]),bottomLeft:i.canvasToWorld([M,R+k]),bottomRight:i.canvasToWorld([M+N,R+k])}}}return a})),e._throttledCalculateCachedStats=fi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Li(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Oa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,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,a=n.renderingEngineId;if(3===r.handles.points.length){for(var i,l,s,c,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=(i=[m,w],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,s=(l=ei([p,m],2))[0],c=l[1],u=(d=ei(i,2))[0],v=d[1],f=Ci.vec3.sub(Ci.vec3.create(),c,s),g=Ci.vec3.sub(Ci.vec3.create(),u,v),h=Ci.vec3.dot(f,g)/(Ci.vec3.length(f)*Ci.vec3.length(g)),180*Math.acos(h)/Math.PI);y[b]={angle:C}}e.invalidated=!1;var _=H.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:a};return(0,q.triggerEvent)(q.eventTarget,_,T),y}}}]),o}(qi);$(Nd,"toolName","Angle");var kd=Nd;var Pd="magnify-viewport",Ad=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"mouseDragCallback",void 0),$(mr(e),"_bounds",void 0),$(mr(e),"editData",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o),i=a.viewport,l=a.renderingEngine;if(!(i instanceof q.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var s=e._getReferencedImageId(i);if(!s)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var c=Li(o,e.getToolName());return e.editData={referencedImageId:s,viewportIdsToRender:c,enabledElement:a,renderingEngine:l,currentPoints:r},e._createMagnificationViewport(),e._activateDraw(o),Oa(o),t.preventDefault(),vr(l,c),!0})),$(mr(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,a=n.viewportIdsToRender,i=n.renderingEngine,l=n.currentPoints,s=r.viewport,c=s.element,d=s.getProperties().voiRange,u=l.canvas,v=l.world;if(null===(t=c.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,c.querySelector(".viewport-element").appendChild(f);var g={viewportId:Pd,type:q.Enums.ViewportType.STACK,element:t};i.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=i.getViewport(Pd);h.setStack([o]).then((function(){h.setProperties({voiRange:d});var t=s.getCamera().parallelScale,n=h.getCamera(),r=n.focalPoint,o=n.position,a=n.viewPlaneNormal,i=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]],c=[l[0]+i*a[0],l[1]+i*a[1],l[2]+i*a[2]];h.setCamera({parallelScale:t*(1/e.configuration.magnifySize),focalPoint:l,position:c}),h.render()})),t.style.display="block",vr(i,a)})),$(mr(e),"_mouseDragCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.deltaPoints,a=n.element,i=o.world,l=r.canvas,s=(0,q.getEnabledElement)(a).renderingEngine.getViewport(Pd),c=a.querySelector(".magnifyTool");if(c){c.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),c.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var d=s.getCamera(),u=d.focalPoint,v=d.position,f=[v[0]+i[0],v[1]+i[1],v[2]+i[2]],g=[u[0]+i[0],u[1]+i[1],u[2]+i[2]];s.setCamera({focalPoint:g,position:f}),s.render()}})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element;(0,q.getEnabledElement)(n).renderingEngine.disableElement(Pd);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),Da(n)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),e}return Y(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof q.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(Mr);$(Ad,"toolName","Magnify");var Ld=q.utilities.transformWorldToIndex;function Ud(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.constraintFn,s=n.imageData,c=n.dimensions,d=n.scalarData,u=r.map((function(e){return Ld(s,e)}));u=u.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=Ti(u,c);if(v.every((function(e){var t=ei(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");_i(s,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(d[n]=a):d[n]=a)}),v),Je(i)}(0,t)}var Vd=q.utilities.transformWorldToIndex;function Bd(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentationId,i=n.imageData,l=n.dimensions,s=n.scalarData,c=r.map((function(e){return Vd(i,e)})),d=Ti(c,l);if(d.every((function(e){var t=ei(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");_i(i,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(s[n]=0)}),d),Je(a)}(0,t)}var jd=function(e){yr(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 Ir(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:Ud,ERASE_INSIDE:Bd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.toolGroupId,f=gs(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=Ts(h),w=ws(h),y=Is(v,g,m),E=at(h).representationData[p].volumeId,I=q.cache.getVolume(E),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null}}},C=Li(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),Oa(o),t.preventDefault(),vr(s,C),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,a,i,l,s,c,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,q.getEnabledElement)(u),y=w.viewport,E=y.worldToCanvas,I=y.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=Pn(b),h){case 0:case 3:n=E(C[0]),r=[(a=E(C[3]))[0],n[1]],o=[n[0],a[1]],l=I(r),s=I(o),C[1]=l,C[2]=s;break;case 1:case 2:r=E(C[1]),n=[(o=E(C[2]))[0],r[1]],a=[r[0],o[1]],i=I(n),c=I(a),C[0]=i,C[3]=c}f.invalidated=!0,e.editData.hasMoved=!0;var _=w.renderingEngine;vr(_,g)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentationId,c=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Da(n);var v=(0,q.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof q.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:s,segmentIndex:c,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport,a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(ai(n,l,"0",s[0],s[3],{color:c}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Mr);$(jd,"toolName","RectangleScissor");var Fd=q.utilities.transformWorldToIndex;function Wd(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=n.imageData,s=n.dimensions,c=n.scalarData,d=e.viewport,u=Ci.vec3.fromValues(0,0,0);r.forEach((function(e){Ci.vec3.add(u,u,e)})),Ci.vec3.scale(u,u,1/r.length);var v=ei(gl(r.map((function(e){return d.worldToCanvas(e)}))),2),f=v[0],g=v[1],h=d.canvasToWorld(f),p=d.canvasToWorld(g),m=[Fd(l,h),Fd(l,p)],w=Ti(m,s);if(w.every((function(e){var t=ei(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var y={center:u,xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},E=new Set;_i(l,(function(e,t){return fl(y,e)}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(c[n]=a,E.add(r[2]))}),w),Je(i,Array.from(E))}(e,t)}var Gd=function(e){yr(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 Ir(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:Wd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=gs(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=Ts(p),y=ws(p),E=Is(f,h,w),I=at(p).representationData[m].volumeId,b=q.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentationId:p,segmentsLocked:y,segmentColor:E,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(c,_),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Da(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(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 a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c=s[0],d=s[1],u=[Math.floor((c[0]+d[0])/2),Math.floor((c[1]+d[1])/2)],v=Math.abs(c[1]-Math.floor((c[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(qa(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Mr);function qd(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.points,s=r.scalarData;Oi(r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(s[t]=a)}),n),Je(i)}(e,t)}$(Gd,"toolName","CircleScissor");var Hd=function(e){yr(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 Ir(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:qd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=gs(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=Ts(p),y=ws(p),E=Is(f,h,w),I=at(p).representationData[m].volumeId,b=q.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{invalidated:!0,handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentsLocked:y,segmentColor:E,segmentationId:p,toolGroupId:f,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Oa(o),t.preventDefault(),vr(c,_),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Da(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(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 a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c=s[0],d=s[1],u=[Math.floor((c[0]+d[0])/2),Math.floor((c[1]+d[1])/2)],v=Math.abs(c[1]-Math.floor((c[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(qa(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Mr);$(Hd,"toolName","SphereScissor");var zd=function(e){yr(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 Ir(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:Wd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE",brushSize:25}};return z(this,o),$(mr(e=r.call(this,t,n)),"_editData",void 0),$(mr(e),"_hoverData",void 0),$(mr(e),"_isDrawing",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(r.world,r.canvas),i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine,c=l.canvasToWorld;e._isDrawing=!0;var d=l.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=gs(f);if(!g)throw new Error("No active segmentation detected, create one before using the brush tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Ts(p),y=ws(p),E=(Is(f,h,w),at(p).representationData[m].volumeId),I=q.cache.getVolume(E),b=a,C=e.configuration.brushSize,_=[b[0],b[1]+C],T=[b[0],b[1]-C],D=[b[0]-C,b[1]],O=[b[0]+C,b[1]],S=(Pn(u),Pn(v),l.getFrameOfReferenceUID(),e.getToolName(),c(_),c(T),c(D),c(O),[l.id]);return e._editData={segmentation:I,segmentsLocked:y},e._activateDraw(o),Oa(o),t.preventDefault(),vr(s,S),!0})),$(mr(e),"mouseMoveCallback",(function(t){e.updateCursor(t)})),$(mr(e),"_mouseDragCallback",(function(t){e._isDrawing=!0;var n=e.configuration.brushSize,r=t.detail,o=r.element,a=r.currentPoints.canvas,i=(0,q.getEnabledElement)(o),l=i.renderingEngine,s=i.viewport.canvasToWorld,c=e._editData,d=c.segmentation,u=c.segmentsLocked,v=e._hoverData,f=v.segmentIndex,g=v.segmentationId,h=v.segmentationRepresentationUID,p=v.brushCursor,m=v.viewportIdsToRender,w=p.metadata,y=w.viewPlaneNormal,E=w.viewUp,I=p.data,b=a,C=n,_=[b[0],b[1]+C],T=[b[0],b[1]-C],D=[b[0]-C,b[1]],O=[b[0]+C,b[1]];I.handles.points=[s(_),s(T),s(D),s(O)],I.invalidated=!0,vr(l,m);var S={points:I.handles.points,volume:d,segmentIndex:f,segmentsLocked:u,viewPlaneNormal:y,toolGroupId:e.toolGroupId,segmentationId:g,segmentationRepresentationUID:h,viewUp:E};e.applyActiveStrategy(i,S)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.segmentation,a=r.segmentsLocked,i=e._hoverData,l=i.segmentIndex,s=i.segmentationId,c=i.segmentationRepresentationUID,d=i.brushCursor,u=d.data,v=d.metadata,f=v.viewPlaneNormal,g=v.viewUp;e._deactivateDraw(n),Da(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e._editData=null,e._isDrawing=!1,e.updateCursor(t),p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:o,segmentIndex:l,segmentsLocked:a,viewPlaneNormal:f,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:c,viewUp:g};e.applyActiveStrategy(h,m)})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),e}return Y(o,[{key:"updateCursor",value:function(e){var t=this.configuration.brushSize,n=e.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport,s=l.canvasToWorld,c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=this.toolGroupId,f=gs(v);if(f){var g=f.segmentationRepresentationUID,h=f.segmentationId,p=Ts(h),m=(ws(h),Is(v,g,p)),w=[l.id],y=o,E=t,I=[y[0],y[1]+E],b=[y[0],y[1]-E],C=[y[0]-E,y[1]],_=[y[0]+E,y[1]],T={metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{invalidated:!0,handles:{points:[s(I),s(b),s(C),s(_)]},cachedStats:{}}};this._hoverData={brushCursor:T,centerCanvas:y,segmentIndex:p,segmentationId:h,segmentationRepresentationUID:g,segmentColor:m,viewportIdsToRender:w},vr(i,w)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor,o=r.metadata,a=o.brushCursorUID,i=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),l=i[0],s=i[1],c=[Math.floor((l[0]+s[0])/2),Math.floor((l[1]+s[1])/2)],d=Math.abs(l[1]-Math.floor((l[1]+s[1])/2)),u="rgb(".concat(o.segmentColor.slice(0,3),")");n.getRenderingEngine()?qa(t,a,"0",c,d,{color:u}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(Mr);$(zd,"toolName","Brush")}(),c}()}));
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,a){return function(){var i={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,a=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},l=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.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,a=Object.create(o.prototype),i=new D(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return{value:void 0,done:!0}}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=C(i,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 s=v(e,t,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===f)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(e,n,i),a}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(O([])));y&&y!==n&&a.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,i,l,s){var c=v(e[o],e,i);if("throw"!==c.type){var d=c.arg,u=d.value;return u&&"object"==r(u)&&a.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,l,s)}),(function(e){n("throw",e,l,s)})):t.resolve(u).then((function(e){d.value=e,l(d)}),(function(e){return n("throw",e,l,s)}))}s(c.arg)}var o;this._invoke=function(e,r){function a(){return new t((function(t,o){n(e,r,t,o)}))}return o=o?o.then(a,a):a()}}function 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 O(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(a.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:S}}function S(){return{value:void 0,done:!0}}return h.prototype=p,d(E,"constructor",p),d(p,"constructor",h),h.displayName=d(p,c,"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,c,"GeneratorFunction")),e.prototype=Object.create(E),e},t.awrap=function(e){return{__await:e}},I(b.prototype),d(b.prototype,s,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new b(u(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},I(E),d(E,c,"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=O,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)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(n,r){return i.type="throw",i.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],i=o.completion;if("root"===o.tryLoc)return n("end");if(o.tryLoc<=this.prev){var l=a.call(o,"catchLoc"),s=a.call(o,"finallyLoc");if(l&&s){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(!s)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&&a.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 i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,f):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),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:O(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,a="[object Arguments]",i="[object Boolean]",l="[object Date]",s="[object Function]",c="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",y="[object ArrayBuffer]",E="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",_="[object Int16Array]",T="[object Int32Array]",D="[object Uint8Array]",O="[object Uint8ClampedArray]",S="[object Uint16Array]",x="[object Uint32Array]",M=/\w*$/,R=/^\[object .+?Constructor\]$/,N=/^(?:0|[1-9]\d*)$/,k={};k[a]=k["[object Array]"]=k[y]=k[E]=k[i]=k[l]=k[I]=k[b]=k[C]=k[_]=k[T]=k[d]=k[u]=k[v]=k[g]=k[h]=k[p]=k[m]=k[D]=k[O]=k[S]=k[x]=!0,k["[object Error]"]=k[s]=k[w]=!1;var P="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=P||A||Function("return this")(),U=t&&!t.nodeType&&t,V=U&&e&&!e.nodeType&&e,B=V&&V.exports===U;function j(e,t){return e.set(t[0],t[1]),e}function F(e,t){return e.add(t),e}function W(e,t,n,r){var o=-1,a=e?e.length:0;for(r&&a&&(n=e[++o]);++o<a;)n=t(n,e[o],o,e);return n}function G(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function q(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function H(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=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,ae=L.Uint8Array,ie=H(Object.getPrototypeOf,Object),le=Object.create,se=Z.propertyIsEnumerable,ce=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=H(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=Fe(fe),Ee=Fe(ge),Ie=Fe(he),be=Fe(pe),Ce=Fe(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 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 Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new Oe(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 P=Ve(e),A=P==s||P==c;if(He(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(P==v||P==a||A&&!f){if(G(e))return f?e:{};if(R=function(e){return"function"!=typeof e.constructor||je(e)?{}:Ke(t=ie(e))?le(t):{};var t}(A?{}:e),!t)return function(e,t){return Pe(e,Ue(e),t)}(e,function(e,t){return e&&Pe(t,Ye(t),e)}(R,e))}else{if(!k[P])return f?e:{};R=function(e,t,n,r){var o,a=e.constructor;switch(t){case y:return ke(e);case i:case l:return new a(+e);case E:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case _:case T:case D:case O:case S:case x:return function(e,t){var n=t?ke(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return W(t?n(q(e),!0):q(e),j,new e.constructor)}(e,r,n);case u:case p:return new a(e);case g:return function(e){var t=new e.constructor(e.source,M.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return W(t?n(z(e),!0):z(e),F,new e.constructor)}(e,r,n);case m:return o=e,Te?Object(Te.call(o)):{}}}(e,P,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,a){U&&(o=e[a=o]),Me(R,a,Ne(o,t,n,r,a,e,w))})),R}function ke(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Pe(e,t,n,r){n||(n={});for(var o=-1,a=t.length;++o<a;){var i=t[o],l=r?r(n[i],e[i],i,n,e):void 0;Me(n,i,void 0===l?e[i]: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(Fe(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},Oe.prototype.clear=function(){this.__data__=[]},Oe.prototype.delete=function(e){var t=this.__data__,n=Re(t,e);return!(n<0||(n==t.length-1?t.pop():ce.call(t,n,1),0))},Oe.prototype.get=function(e){var t=this.__data__,n=Re(t,e);return n<0?void 0:t[n][1]},Oe.prototype.has=function(e){return Re(this.__data__,e)>-1},Oe.prototype.set=function(e,t){var n=this.__data__,r=Re(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new De,map:new(ge||Oe),string:new De}},Se.prototype.delete=function(e){return Ae(this,e).delete(e)},Se.prototype.get=function(e){return Ae(this,e).get(e)},Se.prototype.has=function(e){return Ae(this,e).has(e)},Se.prototype.set=function(e,t){return Ae(this,e).set(e,t),this},xe.prototype.clear=function(){this.__data__=new Oe},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 Oe){var r=n.__data__;if(!ge||r.length<199)return r.push([e,t]),this;n=this.__data__=new Se(r)}return n.set(e,t),this};var Ue=de?H(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 je(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Z)}function Fe(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function We(e,t){return e===t||e!=e&&t!=t}(fe&&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?Fe(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 qe(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var He=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==s||t==c}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return qe(e)?function(e,t){var n=Ge(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&qe(e)}(e)&&ee.call(e,"callee")&&(!se.call(e,"callee")||te.call(e)==a)}(e)?function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}(e.length,String):[],r=n.length,o=!!r;for(var i in e)!t&&!ee.call(e,i)||o&&("length"==i||Be(i,r))||n.push(i);return n}(e):function(e){if(!je(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__",a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/,l=/^\./,s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,c=/\\(\\)?/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=P(f,"Map"),D=P(Object,"create"),O=C?C.prototype:void 0,S=O?O.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 k(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 P(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 k(this,e).delete(e)},R.prototype.get=function(e){return k(this,e).get(e)},R.prototype.has=function(e){return k(this,e).has(e)},R.prototype.set=function(e,t){return k(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(j(e))return S?S.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(s,(function(e,t,r,o){n.push(r?o.replace(c,"$1"):t||e)})),n}));function L(e){if("string"==typeof e||j(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],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i),i};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 j(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&&!j(e))||i.test(e)||!a.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=a},441:function(e){"use strict";e.exports=n},795:function(e){"use strict";e.exports=t},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=r}},l={};function s(e){var t=l[e];if(void 0!==t)return t.exports;var n=l[e]={id:e,loaded:!1,exports:{}};return i[e](n,n.exports,s),n.loaded=!0,n.exports}s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var c={};return function(){"use strict";s.r(c),s.d(c,{AngleTool:function(){return Ad},AnnotationTool:function(){return zi},ArrowAnnotateTool:function(){return kd},BaseTool:function(){return Nr},BidirectionalTool:function(){return ac},BrushTool:function(){return Yd},CONSTANTS:function(){return u},CircleScissorsTool:function(){return Hd},CrosshairsTool:function(){return ec},DragProbeTool:function(){return Ps},EllipticalROITool:function(){return rc},Enums:function(){return W},LengthTool:function(){return qs},MIPJumpToClickTool:function(){return Fs},MagnifyTool:function(){return Ud},PanTool:function(){return Ss},PlanarFreehandROITool:function(){return xd},ProbeTool:function(){return ks},RectangleROIStartEndThresholdTool:function(){return rl},RectangleROIThresholdTool:function(){return tl},RectangleROITool:function(){return el},RectangleScissorsTool:function(){return Wd},SegmentationDisplayTool:function(){return vo},SphereScissorsTool:function(){return Kd},StackScrollMouseWheelTool:function(){return Vs},StackScrollTool:function(){return Us},Synchronizer:function(){return Lo},SynchronizerManager:function(){return i},ToolGroupManager:function(){return d},TrackballRotateTool:function(){return xs},Types:function(){return N},VolumeRotateMouseWheelTool:function(){return js},WindowLevelTool:function(){return As},ZoomTool:function(){return Ls},addTool:function(){return xo},annotation:function(){return P},cancelActiveManipulations:function(){return No},cursors:function(){return R},destroy:function(){return Do},drawing:function(){return f},init:function(){return To},removeTool:function(){return Mo},segmentation:function(){return F},synchronizers:function(){return v},utilities:function(){return M}});var e={};s.r(e),s.d(e,{checkAndDefineIsLockedProperty:function(){return oe},getAnnotationsLocked:function(){return te},getAnnotationsLockedCount:function(){return re},isAnnotationLocked:function(){return ne},setAnnotationLocked:function(){return Q},unlockAllAnnotations:function(){return ee}});var t={};s.r(t),s.d(t,{deselectAnnotation:function(){return ge},getAnnotationsSelected:function(){return he},getAnnotationsSelectedByToolName:function(){return pe},getAnnotationsSelectedCount:function(){return we},isAnnotationSelected:function(){return me},setAnnotationSelected:function(){return ve}});var n={};s.r(n),s.d(n,{checkAndDefineIsVisibleProperty:function(){return De},isAnnotationVisible:function(){return Te},setAnnotationVisibility:function(){return Ce},showAllAnnotations:function(){return _e}});var r={};s.r(r),s.d(r,{addAnnotation:function(){return Ve},getAnnotation:function(){return je},getAnnotations:function(){return Ue},getDefaultAnnotationManager:function(){return Ae},getViewportSpecificAnnotationManager:function(){return Le},removeAllAnnotations:function(){return Fe},removeAnnotation:function(){return Be}});var o={};s.r(o),s.d(o,{triggerSegmentationDataModified:function(){return Je},triggerSegmentationModified:function(){return Ze},triggerSegmentationRemoved:function(){return Ke},triggerSegmentationRepresentationModified:function(){return $e},triggerSegmentationRepresentationRemoved:function(){return Ye}});var a={};s.r(a),s.d(a,{addColorLUT:function(){return yt},addSegmentation:function(){return lt},addSegmentationRepresentation:function(){return vt},getColorLUT:function(){return wt},getDefaultSegmentationStateManager:function(){return ot},getGlobalConfig:function(){return ft},getSegmentation:function(){return at},getSegmentationRepresentationByUID:function(){return ht},getSegmentationRepresentations:function(){return st},getSegmentations:function(){return it},getToolGroupSpecificConfig:function(){return dt},getToolGroupsWithSegmentation:function(){return ct},removeSegmentation:function(){return pt},removeSegmentationRepresentation:function(){return mt},setGlobalConfig:function(){return gt},setToolGroupSpecificConfig:function(){return ut}});var i={};s.r(i),s.d(i,{createSynchronizer:function(){return Uo},destroy:function(){return Vo},destroySynchronizer:function(){return Fo},getAllSynchronizers:function(){return jo},getSynchronizer:function(){return Bo},getSynchronizersForViewport:function(){return dr}});var l={};s.r(l),s.d(l,{hideElementCursor:function(){return xa},initElementCursor:function(){return Da},resetElementCursor:function(){return Sa},setElementCursor:function(){return Oa}});var d={};s.r(d),s.d(d,{createToolGroup:function(){return La},destroy:function(){return Co},destroyToolGroup:function(){return Io},getAllToolGroups:function(){return Ua},getToolGroup:function(){return pr},getToolGroupForViewport:function(){return sn}});var u={};s.r(u),s.d(u,{COLOR_LUT:function(){return We}});var v={};s.r(v),s.d(v,{createCameraPositionSynchronizer:function(){return ja},createVOISynchronizer:function(){return Wa}});var f={};s.r(f),s.d(f,{draw:function(){return ln},drawArrow:function(){return si},drawCircle:function(){return za},drawEllipse:function(){return Ka},drawHandles:function(){return Ya},drawLine:function(){return $a},drawLinkedTextBox:function(){return ii},drawPolyline:function(){return Ja},drawRect:function(){return li},drawTextBox:function(){return ti}});var g={};s.r(g),s.d(g,{createLabelmapVolumeForViewport:function(){return dl},createMergedLabelmapForIndex:function(){return sl},getDefaultRepresentationConfig:function(){return tt},isValidRepresentationConfig:function(){return cl},rectangleROIThresholdVolumeByRange:function(){return ll},thresholdVolumeByRange:function(){return Mi}});var h={};s.r(h),s.d(h,{getTextBoxCoordsCanvas:function(){return Ji}});var p={};s.r(p),s.d(p,{findClosestPoint:function(){return ri},liangBarksyClip:function(){return gl}});var m={};s.r(m),s.d(m,{getCanvasEllipseCorners:function(){return pl},pointInEllipse:function(){return hl}});var w={};s.r(w),s.d(w,{distanceToPoint:function(){return $i},distanceToPointSquared:function(){return Yi},intersectLine:function(){return wl}});var y={};s.r(y),s.d(y,{distanceToPoint:function(){return Zi}});var E={};s.r(E),s.d(E,{addCanvasPointsToArray:function(){return Ol},calculateAreaOfPoints:function(){return xl},getClosestIntersectionWithPolyline:function(){return El},getFirstIntersectionWithPolyline:function(){return yl},getSubPixelSpacingAndXYDirections:function(){return Tl},pointCanProjectOnLine:function(){return Sl},pointsAreWithinCloseContourProximity:function(){return Dl}});var I={};s.r(I),s.d(I,{distanceToPoint:function(){return Ml}});var b={};s.r(b),s.d(b,{ellipse:function(){return m},lineSegment:function(){return w},point:function(){return I},polyline:function(){return E},rectangle:function(){return y},vec2:function(){return p}});var C={};s.r(C),s.d(C,{default:function(){return Ll},filterAnnotationsForDisplay:function(){return Fi},filterAnnotationsWithinSlice:function(){return ji},getPointInLineOfSightWithCriteria:function(){return kl},getWorldWidthAndHeightFromCorners:function(){return Xi}});var _={};s.r(_),s.d(_,{filterViewportsWithFrameOfReferenceUID:function(){return Ri},filterViewportsWithToolEnabled:function(){return Ai},getViewportIdsWithToolToRender:function(){return Vi}});var T={};s.r(T),s.d(T,{getOrientationStringLPS:function(){return Ul},invertOrientationStringLPS:function(){return Vl}});var D={};s.r(D),s.d(D,{Events:function(){return Bl},addToolState:function(){return Fl},getToolState:function(){return Wl},playClip:function(){return ql},stopClip:function(){return Hl}});var O={};s.r(O),s.d(O,{extend2DBoundingBoxInViewAxis:function(){return ol},getBoundingBoxAroundShape:function(){return Oi}});var S={};s.r(S),s.d(S,{getBoundsIJKFromRectangleAnnotations:function(){return al}});var x={};s.r(x),s.d(x,{disable:function(){return os},enable:function(){return rs},getConfiguration:function(){return as},setConfiguration:function(){return is}});var M={};s.r(M),s.d(M,{boundingBox:function(){return O},calibrateImageSpacing:function(){return wi},cine:function(){return D},clip:function(){return pi},debounce:function(){return gi},deepMerge:function(){return Sr},drawing:function(){return h},getAnnotationNearPoint:function(){return di},getAnnotationNearPointOnEnabledElement:function(){return ui},isObject:function(){return fi},jumpToSlice:function(){return _i},math:function(){return b},orientation:function(){return T},planar:function(){return C},pointInShapeCallback:function(){return Di},pointInSurroundingSphereCallback:function(){return xi},rectangleROITool:function(){return S},scroll:function(){return yi},segmentation:function(){return g},stackPrefetch:function(){return x},throttle:function(){return hi},triggerAnnotationRenderForViewportIds:function(){return vr},triggerEvent:function(){return q.triggerEvent},viewportFilters:function(){return _}});var R={};s.r(R),s.d(R,{CursorNames:function(){return ss},ImageMouseCursor:function(){return Qo},MouseCursor:function(){return zo},SVGMouseCursor:function(){return ya},elementCursor:function(){return l},registerCursor:function(){return ca},setCursorForElement:function(){return ls}});var N={};s.r(N);var k={};s.r(k),s.d(k,{getFont:function(){return cs},getState:function(){return Wi},style:function(){return ga}});var P={};s.r(P),s.d(P,{config:function(){return k},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var A={};s.r(A),s.d(A,{getActiveSegmentationRepresentation:function(){return ps},setActiveSegmentationRepresentation:function(){return ms}});var L={};s.r(L),s.d(L,{getLockedSegments:function(){return Es},isSegmentIndexLocked:function(){return ws},setSegmentIndexLocked:function(){return ys}});var U={};s.r(U),s.d(U,{addColorLUT:function(){return Is},getColorForSegmentIndex:function(){return Cs},setColorLUT:function(){return bs}});var V={};s.r(V),s.d(V,{getSegmentationVisibility:function(){return Ts},setSegmentationVisibility:function(){return _s}});var B={};s.r(B),s.d(B,{color:function(){return U},getGlobalConfig:function(){return Gr},getGlobalRepresentationConfig:function(){return Hr},getToolGroupSpecificConfig:function(){return Kr},setGlobalConfig:function(){return qr},setGlobalRepresentationConfig:function(){return zr},setToolGroupSpecificConfig:function(){return Yr},visibility:function(){return V}});var j={};s.r(j),s.d(j,{getActiveSegmentIndex:function(){return Os},setActiveSegmentIndex:function(){return Ds}});var F={};s.r(F),s.d(F,{activeSegmentation:function(){return A},addSegmentationRepresentations:function(){return hs},addSegmentations:function(){return us},config:function(){return B},removeSegmentationsFromToolGroup:function(){return Eo},segmentIndex:function(){return j},segmentLocking:function(){return L},state:function(){return a},triggerSegmentationEvents:function(){return o}});var W={};s.r(W),s.d(W,{AnnotationStyleStates:function(){return Xo},Events:function(){return H},KeyboardBindings:function(){return Mn},MouseBindings:function(){return xn},SegmentationRepresentations:function(){return et},ToolModes:function(){return Xt}});var G,q=s(953);!function(e){e.ANNOTATION_ADDED="CORNERSTONE_TOOLS_ANNOTATION_ADDED",e.ANNOTATION_COMPLETED="CORNERSTONE_TOOLS_ANNOTATION_COMPLETED",e.ANNOTATION_MODIFIED="CORNERSTONE_TOOLS_ANNOTATION_MODIFIED",e.ANNOTATION_REMOVED="CORNERSTONE_TOOLS_ANNOTATION_REMOVED",e.ANNOTATION_SELECTION_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_SELECTION_CHANGE",e.ANNOTATION_LOCK_CHANGE="CORNERSTONE_TOOLS_ANNOTATION_LOCK_CHANGE",e.ANNOTATION_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"}(G||(G={}));var H=G;function z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function K(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 Y(e,t,n){return t&&K(e.prototype,t),n&&K(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Z=s(907),J=s.n(Z),X=new Set;function Q(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=ae();e&&(t?ie(e,X,n):le(e,X,n)),se(n,X)}function ee(){var e=ae();!function(e,t){e.forEach((function(n){le(n,e,t)}))}(X,e),se(e,X)}function te(){return Array.from(X)}function ne(e){return X.has(e)}function re(){return X.size}function oe(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==ce||t.get!==de):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:ce,get:de}),Q(e,t)}}function ae(){return Object.freeze({added:[],removed:[],locked:[]})}function ie(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function le(e,t,n){t.delete(e)&&n.removed.push(e)}function se(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_LOCK_CHANGE,e))}function ce(e){Q(this,e)}function de(){return ne(this)}var ue=new Set;function ve(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?fe(e,n):ge(e)}function fe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=ye();t||Ee(ue,n),e&&!ue.has(e)&&(ue.add(e),n.added.push(e)),Ie(n,ue)}function ge(e){var t=ye();e?ue.delete(e)&&t.removed.push(e):Ee(ue,t),Ie(t,ue)}function he(){return Array.from(ue)}function pe(e){return he().filter((function(t){return je(t).metadata.toolName===e}))}function me(e){return ue.has(e)}function we(){return ue.size}function ye(){return Object.freeze({added:[],removed:[],selection:[]})}function Ee(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function Ie(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_SELECTION_CHANGE,e))}var be=new Set;function Ce(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Oe();e&&(t?Se(e,be,n):xe(e,be,n)),Me(n)}function _e(){var e=Oe();be.forEach((function(t){Se(t,be,e)})),Me(e)}function Te(e){if(je(e))return!be.has(e)}function De(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!==Re||t.get!==Ne):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Re,get:Ne}),Ce(e.annotationUID,n)}}function Oe(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Se(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function xe(e,t,n){t.has(e)||(t.add(e),me(e)&&ge(e),n.lastHidden.push(e))}function Me(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(be.forEach((function(t){e.hidden.push(t)})),(0,q.triggerEvent)(q.eventTarget,H.ANNOTATION_VISIBILITY_CHANGE,e))}function Re(e){Ce(this.annotationUID,e)}function Ne(){return Te(this.annotationUID)}var ke=function(){function e(t){var n=this;z(this,e),$(this,"annotations",void 0),$(this,"uid",void 0),$(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)}))}))})),$(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),$(this,"getFrameOfReferenceAnnotations",(function(e){return n.annotations[e]})),$(this,"get",(function(e,t){var r=n.annotations[e];if(r)return r[t]})),$(this,"getAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index;return o[a]}})),$(this,"addAnnotation",(function(e){var t=e.metadata,r=t.FrameOfReferenceUID,o=t.toolName,a=n.annotations,i=a[r];i||(a[r]={},i=a[r]);var l=i[o];l||(i[o]=[],l=i[o]),l.push(e),oe(e),De(e)})),$(this,"removeAnnotation",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n._getToolSpecificAnnotationsAndIndex(e,t);if(r){var o=r.toolSpecificAnnotations,a=r.index,i=o[0].metadata;if(o.splice(a,1),!o.length){var l=i.toolName;delete n.annotations[i.FrameOfReferenceUID][l]}}})),$(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var a=o[t];return J()(a)}if(e){var i=r[e];return J()(i)}return J()(r)})),$(this,"restoreAnnotations",(function(e,t,r){var o=n.annotations;if(t&&r){var a=o[t];a||(o[t]={},a=o[t]),a[r]=e}else t?o[t]=e:n.annotations=J()(e)})),$(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=q.utilities.uuidv4()),this.annotations={},this.uid=t,q.eventTarget.addEventListener(q.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)}return Y(e,[{key:"_getToolSpecificAnnotationsAndIndex",value:function(e,t){for(var n,r=t.toolName,o=t.FrameOfReferenceUID,a=this.annotations,i=(n=o?[o]:Object.keys(a)).length,l=0;l<i;l++)for(var s,c=a[n[l]],d=(s=r?[r]:Object.keys(c)).length,u=0;u<d;u++){var v=c[s[u]],f=v.findIndex((function(t){return t.annotationUID===e}));if(-1!==f)return{toolSpecificAnnotations:v,index:f}}}}]),e}(),Pe=new ke("DEFAULT");function Ae(){return Pe}function Le(e){return Pe}function Ue(e,t){var n=(0,q.getEnabledElement)(e),r=Le(),o=n.FrameOfReferenceUID;return r.get(o,t)}function Ve(e,t){var n=Le();void 0===t.annotationUID&&(t.annotationUID=q.utilities.uuidv4()),n.addAnnotation(t);var r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=H.ANNOTATION_ADDED,l={annotation:t,viewportId:a,renderingEngineId:o.id};(0,q.triggerEvent)(q.eventTarget,i,l)}function Be(e,t){var n=Ae();t&&(n=Le());var r=n.getAnnotation(e);if(r){n.removeAnnotation(e);var o=H.ANNOTATION_REMOVED,a={annotation:r,annotationManagerUID:n.uid};(0,q.triggerEvent)(q.eventTarget,o,a)}}function je(e,t){return Le().getAnnotation(e)}function Fe(e){var t=Ae();e&&(t=Le()),t.removeAllAnnotations()}var We=[[0,0,0,0],[221,84,84,255],[77,228,121,255],[166,70,235,255],[189,180,116,255],[109,182,196,255],[204,101,157,255],[123,211,94,255],[93,87,218,255],[225,128,80,255],[73,232,172,255],[181,119,186,255],[176,193,112,255],[105,153,200,255],[208,97,120,255],[90,215,101,255],[135,83,222,255],[229,178,76,255],[122,183,181,255],[190,115,171,255],[149,197,108,255],[100,118,205,255],[212,108,93,255],[86,219,141,255],[183,79,226,255],[233,233,72,255],[118,167,187,255],[194,111,146,255],[116,201,104,255],[115,96,209,255],[216,147,89,255],[82,223,188,255],[230,75,224,255],[163,184,121,255],[114,143,191,255],[198,107,114,255],[99,206,122,255],[153,92,213,255],[220,192,85,255],[78,215,227,255],[234,71,173,255],[141,188,117,255],[110,113,195,255],[202,128,103,255],[95,210,157,255],[195,88,217,255],[206,224,81,255],[74,166,231,255],[185,120,139,255],[113,192,113,255],[133,106,199,255],[207,162,98,255],[91,214,198,255],[221,84,198,255],[159,228,77,255],[70,111,235,255],[189,119,116,255],[109,196,138,255],[165,101,204,255],[211,201,94,255],[87,191,218,255],[225,80,153,255],[106,232,73,255],[124,119,186,255],[193,142,112,255],[105,200,168,255],[203,97,208,255],[184,215,90,255],[83,147,222,255],[229,76,101,255],[122,183,130,255],[146,115,190,255],[197,171,108,255],[100,205,205,255],[212,93,177,255],[141,219,86,255],[79,97,226,255],[233,99,72,255],[118,187,150,255],[173,111,194,255],[197,201,104,255],[96,171,209,255],[216,89,137,255],[94,223,82,255],[107,75,230,255],[184,153,121,255],[114,191,175,255],[198,107,191,255],[166,206,99,255],[92,132,213,255],[220,85,91,255],[78,227,115,255],[159,71,234,255],[188,176,117,255],[110,185,195,255],[202,103,161,255],[129,210,95,255],[88,88,217,255],[224,123,81,255],[74,231,166,255],[177,120,185,255],[179,192,113,255],[106,156,199,255],[207,98,125,255],[91,214,96,255],[130,84,221,255],[228,171,77,255],[70,235,221,255],[189,116,174,255],[153,196,109,255],[101,123,204,255],[211,104,94,255],[87,218,136,255],[177,80,225,255],[232,225,73,255],[119,169,186,255],[193,112,149,255],[121,200,105,255],[111,97,208,255],[215,142,90,255],[83,222,181,255],[229,76,229,255],[165,183,122,255],[115,146,190,255],[197,108,119,255],[100,205,118,255],[148,93,212,255],[219,186,86,255],[79,220,226,255],[233,72,179,255],[144,187,118,255],[111,118,194,255],[201,124,104,255],[96,209,153,255],[189,89,216,255],[211,223,82,255],[75,172,230,255],[184,121,142,255],[117,191,114,255],[130,107,198,255],[206,157,99,255],[92,213,193,255],[220,85,203,255],[165,227,78,255],[71,118,234,255],[188,117,117,255],[110,195,135,255],[161,103,202,255],[210,195,95,255],[88,195,217,255],[224,81,158,255],[113,231,74,255],[123,120,185,255],[192,139,113,255],[106,199,164,255],[198,98,207,255],[188,214,91,255],[84,153,221,255],[228,77,108,255],[70,235,84,255],[143,116,189,255],[196,167,109,255],[101,204,199,255],[211,94,182,255],[147,218,87,255],[80,104,225,255],[232,93,73,255],[119,186,147,255],[170,112,193,255],[200,200,105,255],[97,175,208,255],[215,90,142,255],[100,222,83,255],[101,76,229,255],[183,150,122,255],[115,190,171,255],[197,108,194,255],[170,205,100,255],[93,138,212,255],[219,86,97,255],[79,226,110,255],[153,72,233,255],[187,173,118,255],[111,187,194,255],[201,104,165,255],[134,209,96,255],[89,95,216,255],[223,117,82,255],[75,230,159,255],[174,121,184,255],[182,191,114,255],[107,160,198,255],[206,99,130,255],[92,213,92,255],[124,85,220,255],[227,165,78,255],[71,234,214,255],[188,117,176,255],[156,195,110,255],[103,128,202,255],[210,100,95,255],[88,217,131,255],[170,81,224,255],[231,218,74,255],[120,172,185,255],[192,113,153,255],[125,199,106,255],[107,98,207,255],[214,137,91,255],[84,221,175,255],[222,77,228,255],[194,235,70,255],[116,149,189,255],[196,109,123,255],[101,204,114,255],[143,94,211,255],[218,180,87,255],[80,225,225,255],[232,73,186,255],[147,186,119,255],[112,122,193,255],[200,121,105,255],[97,208,148,255],[184,90,215,255],[216,222,83,255],[76,178,229,255],[183,122,145,255],[121,190,115,255],[126,108,197,255],[205,153,100,255],[93,212,187,255],[219,86,208,255],[171,226,79,255],[72,126,233,255],[187,118,121,255],[111,194,132,255],[157,104,201,255],[209,190,96,255],[89,200,216,255],[223,82,164,255],[120,230,75,255],[121,121,184,255],[191,136,114,255],[107,198,160,255],[192,99,206,255],[193,213,92,255],[85,158,220,255],[227,78,115,255],[71,234,78,255],[141,117,188,255],[195,163,110,255],[103,202,194,255],[210,95,186,255],[153,217,88,255],[81,111,224,255]];function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var He={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:{}},toolGroups:{}},ze=new(function(){function e(t){z(this,e),$(this,"state",void 0),$(this,"uid",void 0),t||(t=q.utilities.uuidv4()),this.state=J()(He),this.uid=t}return Y(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=J()(He)}},{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:"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=qe(qe({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(We,0)}}]),e}())("DEFAULT");function Ke(e){var t={segmentationId:e};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REMOVED,t)}function Ye(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_REMOVED,n)}function $e(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_MODIFIED,n):(st(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function Ze(e){(e?[e]:it().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_MODIFIED,t)}))}function Je(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_DATA_MODIFIED,n)}var Xe,Qe={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.9,fillAlphaInactive:.85};!function(e){e.Labelmap="LABELMAP"}(Xe||(Xe={}));var et=Xe;function tt(e){var t=e.type;if(t===et.Labelmap)return Qe;throw new Error("Unknown representation type: ".concat(t))}function nt(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 rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(){return ze}function at(e){return ot().getSegmentation(e)}function it(){return ot().getState().segmentations}function lt(e,t){var n=ot(),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:$({},n.type,rt({},n.data))}}(e);!function(e){var t=tt(e);gt({renderInactiveSegmentations:!0,representations:$({},e.type,t)},!0)}(r),n.addSegmentation(r),t||Ze(r.segmentationId)}function st(e){return ot().getSegmentationRepresentations(e)}function ct(e){var t=ot(),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 dt(e){return ot().getToolGroupSpecificConfig(e)}function ut(e,t,n){ot().setSegmentationRepresentationConfig(e,t),n||$e(e)}function vt(e,t,n){ot().addSegmentationRepresentation(e,t),n||$e(e,t.segmentationRepresentationUID)}function ft(){return ot().getGlobalConfig()}function gt(e,t){ot().setGlobalConfig(e),t||Ze()}function ht(e,t){return ot().getSegmentationRepresentationByUID(e,t)}function pt(e){ot().removeSegmentation(e),Ke(e)}function mt(e,t){ot().removeSegmentationRepresentation(e,t),Ye(e,t)}function wt(e){return ot().getColorLUT(e)}function yt(e,t){ot().addColorLUT(e,t)}function Et(e,t){var n=t||e.currentTarget,r=(0,q.getEnabledElement)(n).viewport,o=function(e){return[e.clientX,e.clientY]}(e),a=function(e){return[e.pageX,e.pageY]}(e),i=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,a);return{page:a,client:o,canvas:i,world:r.canvasToWorld(i)}}var It=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,a=Et(e,t),i={event:e,eventName:H.MOUSE_DOUBLE_CLICK,viewportId:r,renderingEngineId:o,camera:{},element:t,startPoints:a,lastPoints:a,currentPoints:a,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};(0,q.triggerEvent)(t,H.MOUSE_DOUBLE_CLICK,i)},bt=H.MOUSE_MOVE,Ct=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Et(e),eventName:bt,event:e};(0,q.triggerEvent)(t,bt,r)},_t=H.MOUSE_DOWN,Tt=H.MOUSE_DOWN_ACTIVATE,Dt=H.MOUSE_CLICK,Ot=H.MOUSE_UP,St=H.MOUSE_DRAG,xt={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]}},Mt={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 Rt(e){var t=Et(e,Mt.element),n=function(e,t){var n=(0,q.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}(Mt.element,Mt.lastPoints),r=At(t,n),o={event:e,eventName:St,mouseButton:Mt.mouseButton,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},element:Mt.element,startPoints:Pt(Mt.startPoints),lastPoints:Pt(n),currentPoints:t,deltaPoints:r};(0,q.triggerEvent)(Mt.element,St,o),Mt.lastPoints=Pt(t)}function Nt(e){clearTimeout(Mt.preventClickTimeout);var t=Mt.isClickEvent?Dt:Ot,n=Et(e,Mt.element),r=At(n,Mt.lastPoints),o={event:e,eventName:t,mouseButton:Mt.mouseButton,element:Mt.element,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},startPoints:Pt(Mt.startPoints),lastPoints:Pt(Mt.lastPoints),currentPoints:n,deltaPoints:r};(0,q.triggerEvent)(o.element,t,o),document.removeEventListener("mousemove",Rt),document.removeEventListener("mouseup",Nt),Mt.element.addEventListener("mousemove",Ct),Mt=JSON.parse(JSON.stringify(xt))}function kt(){Mt.isClickEvent=!1}function Pt(e){return JSON.parse(JSON.stringify(e))}function At(e,t){return{page:Lt(e.page,t.page),client:Lt(e.client,t.client),canvas:Lt(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 Lt(e,t){return[e[0]-t[0],e[1]-t[1]]}var Ut=function(e){Mt.element=e.currentTarget,Mt.mouseButton=e.button;var t=(0,q.getEnabledElement)(Mt.element),n=t.renderingEngineId,r=t.viewportId;Mt.renderingEngineId=n,Mt.viewportId=r,Mt.preventClickTimeout=setTimeout(kt,Mt.clickDelay),Mt.element.removeEventListener("mousemove",Ct);var o=Et(e,Mt.element),a=At(o,o),i={event:e,eventName:_t,element:Mt.element,mouseButton:Mt.mouseButton,renderingEngineId:Mt.renderingEngineId,viewportId:Mt.viewportId,camera:{},startPoints:o,lastPoints:o,currentPoints:o,deltaPoints:a};Mt.startPoints=Pt(i.startPoints),Mt.lastPoints=Pt(i.lastPoints),(0,q.triggerEvent)(i.element,_t,i)&&(0,q.triggerEvent)(i.element,Tt,i),document.addEventListener("mousemove",Rt),document.addEventListener("mouseup",Nt)};function Vt(e){e.removeEventListener("dblclick",It),e.removeEventListener("mousedown",Ut),e.removeEventListener("mousemove",Ct)}var Bt={enable:function(e){Vt(e),e.addEventListener("dblclick",It),e.addEventListener("mousedown",Ut),e.addEventListener("mousemove",Ct)},disable:Vt},jt=function(e){var t=e.currentTarget,n=(0,q.getEnabledElement)(t),r=n.renderingEngineId,o=n.viewportId;if(!(e.deltaY>-1&&e.deltaY<1)){e.preventDefault();var a=function(e){var t=0,n=0,r=0,o=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),r=10*t,o=10*n,"deltaY"in e&&(o=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||o)&&e.deltaMode&&(1===e.deltaMode?(r*=40,o*=40):(r*=800,o*=800)),r&&!t&&(t=r<1?-1:1),o&&!n&&(n=o<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:o}}(e),i=a.spinX,l=a.spinY,s=a.pixelX,c=a.pixelY,d=l<0?-1:1,u={event:e,eventName:H.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:i,spinY:l,pixelX:s,pixelY:c,direction:d},points:Et(e)};(0,q.triggerEvent)(t,H.MOUSE_WHEEL,u)}};function Ft(e){e.removeEventListener("wheel",jt)}var Wt={enable:function(e){Ft(e),e.addEventListener("wheel",jt,{passive:!1})},disable:Ft},Gt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},qt={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function Ht(e){qt.element=e.currentTarget;var t=(0,q.getEnabledElement)(qt.element),n=t.renderingEngineId,r=t.viewportId;qt.renderingEngineId=n,qt.viewportId=r,qt.key=e.key,qt.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:qt.renderingEngineId,viewportId:qt.viewportId,element:qt.element,key:qt.key,keyCode:qt.keyCode};(0,q.triggerEvent)(o.element,H.KEY_DOWN,o),document.addEventListener("keyup",zt),qt.element.removeEventListener("keydown",Ht)}function zt(e){var t={renderingEngineId:qt.renderingEngineId,viewportId:qt.viewportId,element:qt.element,key:qt.key,keyCode:qt.keyCode};document.removeEventListener("keyup",zt),qt.element.addEventListener("keydown",Ht),qt=J()(Gt),(0,q.triggerEvent)(t.element,H.KEY_UP,t)}var Kt=Ht;function Yt(e){e.removeEventListener("keydown",Kt)}var $t,Zt,Jt={enable:function(e){Yt(e),e.addEventListener("keydown",Kt)},disable:Yt,getModifierKey:function(){return qt.keyCode}};(Zt=$t||($t={})).Active="Active",Zt.Passive="Passive",Zt.Enabled="Enabled",Zt.Disabled="Disabled";var Xt=$t,Qt={},en={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Qt,enabledElements:[],handleRadius:6},tn={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Qt,enabledElements:[],handleRadius:6};function nn(e,t){if(tn.svgNodeCache[e])return tn.svgNodeCache[e][t]?tn.svgNodeCache[e][t].domRef:void 0}function rn(e,t,n,r){if(!tn.svgNodeCache[t])return null;tn.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function on(e,t){tn.svgNodeCache[e]&&tn.svgNodeCache[e][t]&&(tn.svgNodeCache[e][t].touched=!0)}function an(e,t){tn.svgNodeCache[t]&&Object.keys(tn.svgNodeCache[t]).forEach((function(n){var r=tn.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete tn.svgNodeCache[t][n])}))}var ln=function(e,t){var n=function(e){var t=(0,q.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),a=function(e){return e.firstChild.querySelector(".svg-layer")}(e);return Object.keys(tn.svgNodeCache[o]).forEach((function(e){tn.svgNodeCache[o][e].touched=!1})),{svgLayerElement:a,svgNodeCacheForCanvas:tn.svgNodeCache,getSvgNode:nn.bind(this,o),appendNode:rn.bind(this,a,o),setNodeTouched:on.bind(this,o),clearUntouched:an.bind(this,a,o)}}(e);t(n),n.clearUntouched()},sn=function(e,t){var n=tn.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 cn(e,t){var n=(0,q.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,a=sn(o,r);if(!a)return[];for(var i=[],l=Object.keys(a.toolOptions),s=0;s<l.length;s++){var c=l[s],d=a.toolOptions[c];if(d&&t.includes(d.mode)){var u=a.getToolInstance(c);i.push(u)}}return i}function dn(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 un=Xt.Active,vn=Xt.Passive,fn=Xt.Enabled,gn=function(){function e(){var t=this;z(this,e),$(this,"hasBeenDestroyed",void 0),$(this,"_needsRender",new Set),$(this,"_animationFrameSet",!1),$(this,"_animationFrameHandle",null),$(this,"_viewportElements",void 0),$(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 Y(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e){this._viewportElements.delete(e),0===this._viewportElements.size&&this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,q.getEnabledElement)(e);if(t)if((0,q.getRenderingEngine)(t.renderingEngineId)){var n=cn(e,[un,vn,fn]),r=t.renderingEngineId,o=t.viewportId,a={element:e,renderingEngineId:r,viewportId:o};ln(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,q.triggerEvent)(e,H.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dn(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},a))}))}else console.warn("rendering Engine has been destroyed");else console.warn("Element has been disabled")}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),hn=new gn,pn=function(e){hn.renderViewport(e)},mn=function(e){pn(e.detail.element)};function wn(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=sn(a,o);if(!i)return[];for(var l=[],s=Object.keys(i.toolOptions),c=0;c<s.length;c++){var d=s[c],u=i.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=i.getToolInstance(d);l.push(f)}}return l}var yn=Xt.Active,En=Xt.Passive,In=Xt.Enabled,bn=function(e){wn(e,[yn,En,In]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Cn=Xt.Active,_n=Xt.Passive,Tn=Xt.Enabled,Dn=function(e){wn(e,[Cn,_n,Tn]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},On=Xt.Active;function Sn(e,t,n){if(tn.isInteractingWithTool)return!1;var r,o=n.detail,a=o.renderingEngineId,i=o.viewportId,l=sn(i,a);if(!l)return!1;for(var s=Object.keys(l.toolOptions),c=0;c<s.length;c++){var d=s[c],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===On&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var xn,Mn,Rn=Sn.bind(null,"Mouse","mouseClickCallback");function Nn(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 kn(e,t){if(e){if("string"==typeof e)return Nn(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)?Nn(e,t):void 0}}function Pn(e){return function(e){if(Array.isArray(e))return Nn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||kn(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.")}()}function An(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 Ln(e,t){for(var n=[],r=0;r<t.length;r++){var o=t[r];if(o){var a=Ue(e,o.constructor.toolName);a&&("function"==typeof o.filterInteractableAnnotationsForElement&&(a=o.filterInteractableAnnotationsForElement(e,a)),a.length>0&&n.push({tool:o,annotations:a}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function Un(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 Vn(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)?Vn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function Vn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}!function(e){e[e.Primary=1]="Primary",e[e.Secondary=2]="Secondary",e[e.Primary_And_Secondary=3]="Primary_And_Secondary",e[e.Auxiliary=4]="Auxiliary",e[e.Primary_And_Auxiliary=5]="Primary_And_Auxiliary",e[e.Secondary_And_Auxiliary=6]="Secondary_And_Auxiliary",e[e.Primary_And_Secondary_And_Auxiliary=7]="Primary_And_Secondary_And_Auxiliary",e[e.Fourth_Button=8]="Fourth_Button",e[e.Fifth_Button=16]="Fifth_Button"}(xn||(xn={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=18]="Ctrl",e[e.Alt=17]="Alt"}(Mn||(Mn={}));var Bn=Xt.Active;function jn(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Jt.getModifierKey(),i=sn(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),s=0;s<l.length;s++){var c=l[s],d=i.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:xn.Primary)&&e.modifierKey===a}));if(d.mode===Bn&&u)return i.getToolInstance(c)}}var Fn=Xt.Active,Wn=Xt.Passive;function Gn(e){if(!tn.isInteractingWithTool){var t=jn(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=wn(e,[Fn],e.detail.event.buttons),o=n?wn(e,[Wn]):void 0,a=[].concat(Pn(r||[]),Pn(o||[])),i=e.detail,l=i.element,s=Ln(l,a),c=i.currentPoints.canvas,d=function(e,t,n){var r=[];return t.forEach((function(t){var o,a=t.tool,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return An(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)?An(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(t.annotations);try{for(i.s();!(o=i.n()).done;){var l=o.value;if(!l.isLocked&&l.isVisible){var s=a.getHandleNearImagePoint(e,l,n,6);if(s){r.push({tool:a,annotation:l,handle:s});break}}}}catch(e){i.e(e)}finally{i.f()}})),r}(l,s,c),u=!!e.detail.event.shiftKey;if(d.length>0){var v=qn(d),f=v.tool,g=v.annotation,h=v.handle;return Hn(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,a=[];return t.forEach((function(t){var i,l=t.tool,s=Un(t.annotations);try{for(s.s();!(i=s.n()).done;){var c=i.value;if(!c.isLocked&&c.isVisible&&l.isPointNearTool(e,c,n,o,r)){a.push({tool:l,annotation:c});break}}}catch(e){s.e(e)}finally{s.f()}})),a}(l,s,c,"mouse");if(p.length>0){var m=qn(p),w=m.tool,y=m.annotation;return Hn(y.annotationUID,u),void w.toolSelectedCallback(e,y,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function qn(e){return e.length>1&&e.find((function(e){return!ne(e.annotation)&&Te(e.annotation.annotationUID)}))||e[0]}function Hn(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(me(e))ve(e,!1);else{var n=!0;ve(e,!0,n)}else{var r=!1;ve(e,!0,r)}}function zn(e){if(!tn.isInteractingWithTool){var t=jn(e);t&&(tn.isMultiPartToolActive||t.addNewAnnotation&&ve(t.addNewAnnotation(e,"mouse").annotationUID))}}var Kn=Sn.bind(null,"Mouse","doubleClickCallback");function Yn(e){if(!tn.isInteractingWithTool){var t=jn(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function $n(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 Zn=Xt.Active,Jn=Xt.Passive;function Xn(e){if(!tn.isInteractingWithTool&&!tn.isMultiPartToolActive){var t,n=wn(e,[Zn,Jn]),r=e.detail.element,o=Ln(r,n),a=n.filter((function(e){return!o.some((function(t){return t.tool.getToolName()===e.getToolName()}))})),i=!1,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return $n(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)?$n(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(t=l.n()).done;){var s=t.value,c=s.tool,d=s.annotations;"function"==typeof c.mouseMoveCallback&&(i=c.mouseMoveCallback(e,d)||i)}}catch(e){l.e(e)}finally{l.f()}a.forEach((function(t){"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===i&&pn(r)}}var Qn=Sn.bind(null,"Mouse","mouseUpCallback"),er=Sn.bind(null,"MouseWheel","mouseWheelCallback"),tr=function(e){e.addEventListener(H.MOUSE_CLICK,Rn),e.addEventListener(H.MOUSE_DOWN,Gn),e.addEventListener(H.MOUSE_DOWN_ACTIVATE,zn),e.addEventListener(H.MOUSE_DOUBLE_CLICK,Kn),e.addEventListener(H.MOUSE_DRAG,Yn),e.addEventListener(H.MOUSE_MOVE,Xn),e.addEventListener(H.MOUSE_UP,Qn),e.addEventListener(H.MOUSE_WHEEL,er)},nr=function(e){e.removeEventListener(H.MOUSE_CLICK,Rn),e.removeEventListener(H.MOUSE_DOWN,Gn),e.removeEventListener(H.MOUSE_DOWN_ACTIVATE,zn),e.removeEventListener(H.MOUSE_DOUBLE_CLICK,Kn),e.removeEventListener(H.MOUSE_DRAG,Yn),e.removeEventListener(H.MOUSE_MOVE,Xn),e.removeEventListener(H.MOUSE_UP,Qn),e.removeEventListener(H.MOUSE_WHEEL,er)},rr=Xt.Active;function or(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=Mt.mouseButton,a=Jt.getModifierKey(),i=sn(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),s=0;s<l.length;s++){var c=l[s],d=i.toolOptions[c],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:xn.Primary)&&e.modifierKey===a}));if(d.mode===rr&&u)return i.getToolInstance(c)}}function ar(e){var t=or(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=sn(o,r),i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}function ir(e){var t=or(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=sn(o,r);qt.keyCode=void 0;var i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}var lr=function(e){e.addEventListener(H.KEY_DOWN,ar),e.addEventListener(H.KEY_UP,ir)},sr=function(e){e.removeEventListener(H.KEY_DOWN,ar),e.removeEventListener(H.KEY_UP,ir)};function cr(e){var t,n=e.detail,r=n.element,o=n.viewportId,a=function(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");t.classList.add("svg-layer"),t.setAttribute("id","svg-layer"),t.setAttribute("xmlns","http://www.w3.org/2000/svg"),t.style.width="100%",t.style.height="100%",t.style.pointerEvents="none",t.style.position="absolute";var n=document.createElementNS(e,"defs"),r=document.createElementNS(e,"filter"),o=document.createElementNS(e,"feOffset"),a=document.createElementNS(e,"feColorMatrix"),i=document.createElementNS(e,"feGaussianBlur"),l=document.createElementNS(e,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("width","110%"),r.setAttribute("height","110%"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),a.setAttribute("result","matrixOut"),a.setAttribute("in","offOut"),a.setAttribute("type","matrix"),a.setAttribute("values","0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0"),i.setAttribute("result","blurOut"),i.setAttribute("in","matrixOut"),i.setAttribute("stdDeviation","0.25"),l.setAttribute("in","SourceGraphic"),l.setAttribute("in2","blurOut"),l.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(a),r.appendChild(i),r.appendChild(l),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);tn.svgNodeCache[o]={}}(r),t=a,r.querySelector("div.viewport-element").appendChild(t),hn.addViewportElement(o,r),Bt.enable(r),Wt.enable(r),Jt.enable(r),function(e){e.addEventListener(q.Enums.Events.IMAGE_RENDERED,mn)}(r),function(e){e.addEventListener(q.Enums.Events.CAMERA_MODIFIED,bn)}(r),function(e){e.addEventListener(q.Enums.Events.IMAGE_SPACING_CALIBRATED,Dn)}(r),tr(r),lr(r),tn.enabledElements.push(r)}var dr=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<tn.synchronizers.length;r++){var o=tn.synchronizers[r],a=!o.isDisabled(),i=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);a&&(i||l)&&n.push(o)}return n},ur=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 tn.svgNodeCache[o]}(n);var o=n.querySelector("svg"),a=n.querySelector("div.".concat("viewport-element"));o&&a.removeChild(o),hn.removeViewportElement(r),Bt.disable(n),Wt.disable(n),Jt.disable(n),function(e){e.removeEventListener(q.Enums.Events.IMAGE_RENDERED,mn)}(n),function(e){e.removeEventListener(q.Enums.Events.CAMERA_MODIFIED,bn)}(n),function(e){e.removeEventListener(q.Enums.Events.IMAGE_SPACING_CALIBRATED,Dn)}(n),nr(n),sr(n),function(e){var t=(0,q.getEnabledElement)(e);dr(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,q.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=sn(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=tn.enabledElements.findIndex((function(t){return t===e}));t>-1&&tn.enabledElements.splice(t,1)}(n)},vr=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;pn(n)}))},fr=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,q.getRenderingEngine)(r);vr(o,[n])},gr=function(e){e.detail.removed.length&&(0,q.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));vr(e,t)}))},hr=function(e){var t=e.detail.segmentationId;ct(t).forEach((function(e){st(e).forEach((function(n){n.segmentationId===t&&$e(e,n.segmentationRepresentationUID)}))}))},pr=function(e){return tn.toolGroups.find((function(t){return t.id===e}))};function mr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wr(e,t){return wr=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},wr(e,t)}function yr(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&&wr(e,t)}function Er(e){return Er="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},Er(e)}function Ir(e,t){if(t&&("object"===Er(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return mr(e)}function br(e){return br=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},br(e)}var Cr=function(e){return e&&"object"===Er(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},_r=function(e,t){var n;return t&&!0===t.clone&&Cr(e)?Or((n=e,Array.isArray(n)?[]:{}),e,t):e},Tr=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=_r(t,n):Cr(t)?r[o]=Or(e[o],t,n):-1===e.indexOf(t)&&r.push(_r(t,n))})),r},Dr=function(e,t,n){var r={};return Cr(e)&&Object.keys(e).forEach((function(t){r[t]=_r(e[t],n)})),Object.keys(t).forEach((function(o){Cr(t[o])&&e[o]?r[o]=Or(e[o],t[o],n):r[o]=_r(t[o],n)})),r},Or=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:Tr},a=o.arrayMerge||Tr;return r?Array.isArray(e)?a(e,t,n):_r(t,n):Dr(e,t,n)},Sr=Or;function xr(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 Mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xr(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Rr=function(){function e(t,n){z(this,e),$(this,"supportedInteractionTypes",void 0),$(this,"configuration",void 0),$(this,"toolGroupId",void 0),$(this,"mode",void 0);var r=Sr(n,t),o=r.configuration,a=void 0===o?{}:o,i=r.supportedInteractionTypes,l=r.toolGroupId;a.strategies||(a.strategies={},a.defaultStrategy=void 0,a.activeStrategy=void 0,a.strategyOptions={}),this.toolGroupId=l,this.supportedInteractionTypes=i||[],this.configuration=Object.assign({},a),this.mode=Xt.Disabled}return Y(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=Sr(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){if(this.configuration.volumeId)return this.configuration.volumeId;var t=e.getActors();return t||t.length?t[0].uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1];return t.getStackViewports().find((function(e){return e.hasImageId(n)})).getImageData()}if(e.startsWith("volumeId:")){var r=e.split("volumeId:")[1];return Mr(Mr({},q.cache.getVolume(r)),{},{hasPixelSpacing:!0})}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof q.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof q.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();$(Rr,"toolName","BaseTool");var Nr=Rr;function kr(e,t,n,r,o,a,i){try{var l=e[a](i),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,o)}function Pr(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){kr(a,r,o,i,l,"next",e)}function l(e){kr(a,r,o,i,l,"throw",e)}i(void 0)}))}}var Ar=s(162),Lr=s.n(Ar),Ur=s(795),Vr=s.n(Ur),Br=s(441),jr=s.n(Br);function Fr(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 Wr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fr(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Gr(){return ft()}function qr(e){gt(e)}function Hr(e){return Gr().representations[e]}function zr(e,t){var n=Gr();qr(Wr(Wr({},n),{},{representations:Wr(Wr({},n.representations),{},$({},e,t))}))}function Kr(e){return dt(e)}function Yr(e,t){ut(e,t)}function $r(){return($r=Pr(Lr().mark((function e(t,n,r){var o,a,i,l,s;return Lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,q.getEnabledElement)(t),a=o.renderingEngine,i=o.viewport,l=i.id,s=[{volumeId:n,actorUID:r,visibility:!0}],e.next=9,(0,q.addVolumesToViewports)(a,s,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Zr=function(e,t,n){return $r.apply(this,arguments)},Jr=function(e,t){(0,q.getEnabledElement)(e).viewport.removeVolumeActors([t])};function Xr(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 Qr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xr(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function eo(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 to(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)?to(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function to(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 no=255,ro=new Map;function oo(){return(oo=Pr(Lr().mark((function e(t,n,r){var o,a,i,l,s,c,d,u,v,f;return Lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=at(o),i=a.representationData[et.Labelmap].volumeId,l=q.utilities.uuidv4(),e.next=6,io(t,i,l);case 6:return s=new Set,c=Vr().newInstance(),d=jr().newInstance(),u={segmentationId:o,segmentationRepresentationUID:l,type:et.Labelmap,segmentsHidden:s,visibility:!0,colorLUTIndex:0,active:!0,config:{cfun:c,ofun:d}},r&&(v=Kr(t),f=Sr(v,r),Yr(t,{renderInactiveSegmentations:f.renderInactiveSegmentations||!0,representations:Qr({},f.representations)})),vt(t,u),e.abrupt("return",l);case 16:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ao(e,t,n,r,o){var a="".concat(e,"-").concat(t),i=ro.get(a),l=!1,s=!1;return ro.set(a,{fillAlpha:n,colorLUTIndex:r}),i||(l=!0,s=!0),i&&i.fillAlpha!==n&&(s=!0),i&&i.colorLUTIndex!==r&&(l=!0),i&&i.renderFill!==o&&(s=!0),{needColorUpdate:l,needOpacityUpdate:s}}function io(e,t,n){return lo.apply(this,arguments)}function lo(){return(lo=Pr(Lr().mark((function e(t,n,r){var o,a,i,l,s,c,d,u,v;return Lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:o=pr(t),a=o.viewportsInfo,i=eo(a),e.prev=3,i.s();case 5:if((l=i.n()).done){e.next=15;break}if(s=l.value,c=s.viewportId,d=s.renderingEngineId,u=(0,q.getEnabledElementByIds)(c,d)){e.next=11;break}throw new Error("No enabled element found for rendering engine: ".concat(d," and viewport: ").concat(c));case 11:v=u.viewport,Zr(v.element,n,r);case 13:e.next=5;break;case 15:e.next=20;break;case 17:e.prev=17,e.t0=e.catch(3),i.e(e.t0);case 20:return e.prev=20,i.f(),e.finish(20);case 23:case"end":return e.stop()}}),e,null,[[3,17,20,23]])})))).apply(this,arguments)}var so={render:function(e,t,n){var r=t.colorLUTIndex,o=t.active,a=t.segmentationId,i=t.segmentationRepresentationUID,l=t.visibility,s=t.config,c=at(a).representationData[et.Labelmap].volumeId;if(!q.cache.getVolume(c))throw new Error("No Labelmap found for volumeId: ".concat(c));var d=e.getActor(i);if(d){var u=s.cfun,v=s.ofun,f=n.representations[et.Labelmap],g=n.renderInactiveSegmentations;!function(e,t,n,r,o,a,i,l){var s=!(arguments.length>8&&void 0!==arguments[8])||arguments[8];r.addPoint(0,0);var c=i?a.fillAlpha:a.fillAlphaInactive,d=i?a.outlineWidthActive:a.outlineWidthInactive,u=i?a.renderFill:a.renderFillInactive,v=wt(o),f=Math.min(256,v.length),g=t.uid,h=t.actor,p=ao(e,g,c,o,u),m=p.needColorUpdate,w=p.needOpacityUpdate;if(m){for(var y=0;y<f;y++){var E=v[y];n.addRGBPoint(y,E[0]/no,E[1]/no,E[2]/no)}h.getProperty().setRGBTransferFunction(0,n)}if(w){if(a.renderFill)for(var I=0;I<f;I++){var b=v[I][3]/255*c;r.addPoint(I,b)}else for(var C=0;C<f;C++)r.addPoint(C,.01);r.setClamping(!1),h.getProperty().setScalarOpacity(0,r)}h.getProperty().setInterpolationTypeToNearest(),h.getProperty().setUseLabelOutline(a.renderOutline),h.getProperty().setLabelOutlineThickness(d);var _=s&&(i||l);h.setVisibility(_)}(e.id,d,u,v,r,f,o,g,l)}else console.warn("No actor found for actorUID: ",i)},addSegmentationRepresentation:function(e,t,n){return oo.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){!function(e,t){var n=pr(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=eo(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,s=(0,q.getEnabledElementByIds)(i,l);Jr(s.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}(e,t),mt(e,t)}};function co(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 a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function 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}var vo=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=pr(t);if(n){var r=st(t),o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,q.getEnabledElementByIds)(n,t);if(r)return r.viewport}));r.forEach((function(n){var r=e._getMergedRepresentationsConfig(t);o.forEach((function(e){if(n.type!=et.Labelmap)throw new Error("Render for ".concat(n.type," is not supported yet"));so.render(e,n,r)}))})),o.forEach((function(e){e.render()}))}})),e}return Y(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=st(e);if(t&&0!==t.length){var n,r=co(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,$e(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=st(e);if(t&&0!==t.length){var n,r=co(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,$e(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=Kr(e),n=Gr();return Sr(n,t)}}]),o}(Nr);function fo(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}$(vo,"toolName","SegmentationDisplay");var go=function(){function e(){var t=this;z(this,e),$(this,"_needsRender",new Set),$(this,"_animationFrameSet",!1),$(this,"_animationFrameHandle",null),$(this,"hasBeenDestroyed",void 0),$(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 Y(e,[{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=pr(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,q.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(vo.toolName);r.forEach((function(e){e.element.addEventListener(q.Enums.Events.IMAGE_RENDERED,a)})),o.renderSegmentation(e)}else console.warn("No tool group found with toolGroupId: ".concat(e));function a(e){var t=e.detail,n=t.element,r=t.viewportId,o=t.renderingEngineId;n.removeEventListener(q.Enums.Events.IMAGE_RENDERED,a);var i={toolGroupId:sn(r,o).id,viewportId:r};(0,q.triggerEvent)(q.eventTarget,H.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fo(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fo(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},i))}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),ho=new go,po=function(e){ho.renderToolGroupSegmentations(e)},mo=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=at(n),a=o.representationData,i=o.type;if(i!==et.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(i," not supported yet"));var l=q.cache.getVolume(a[i].volumeId);if(l){var s,c=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))s=r;else{var u=c.getDimensions()[2];s=Pn(Array(u).keys())}s.forEach((function(e){d.setUpdatedFrame(e)})),c.modified(),ct(n).forEach((function(e){po(e)}))}else console.warn("segmentation not found in cache")},wo=function(e){var t=e.detail.toolGroupId;po(t)},yo=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,po(n)},Eo=function(e,t){var n=st(e);if(t&&0!==t.length){var r=n.map((function(e){return e.segmentationRepresentationUID})),o=t;if(o){var a=t.filter((function(e){return!r.includes(e)}));if(a.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(a)))}else o=r;o.forEach((function(t){!function(e,t){var n=ht(e,t).type;if(n!==et.Labelmap)throw new Error("The representation ".concat(n," is not supported yet"));so.removeSegmentationRepresentation(e,t)}(e,t)}))}else console.warn("removeSegmentationsFromToolGroup: No segmentationRepresentations found for toolGroupId: ",e)},Io=function(e){var t=tn.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Eo(e),tn.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 Co=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 a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(Pn(tn.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;Io(n.id)}}catch(e){t.e(e)}finally{t.f()}tn.toolGroups=[]},_o=!1;function To(){_o||(function(){Oo();var e=q.Enums.Events.ELEMENT_ENABLED,t=q.Enums.Events.ELEMENT_DISABLED;q.eventTarget.addEventListener(e,cr),q.eventTarget.addEventListener(t,ur)}(),So(),q.eventTarget.addEventListener(H.ANNOTATION_MODIFIED,fr),q.eventTarget.addEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.addEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.addEventListener(H.SEGMENTATION_MODIFIED,hr),q.eventTarget.addEventListener(H.SEGMENTATION_DATA_MODIFIED,mo),q.eventTarget.addEventListener(H.SEGMENTATION_REPRESENTATION_MODIFIED,wo),q.eventTarget.addEventListener(H.SEGMENTATION_REPRESENTATION_REMOVED,yo),_o=!0)}function Do(){Oo(),So(),Co(),Qt={},tn=J()(en);var e=Ae(),t=ot();e.restoreAnnotations({}),t.resetState(),_o=!1}function Oo(){var e=q.Enums.Events.ELEMENT_ENABLED,t=q.Enums.Events.ELEMENT_DISABLED;q.eventTarget.removeEventListener(e,cr),q.eventTarget.removeEventListener(t,ur)}function So(){q.eventTarget.removeEventListener(H.ANNOTATION_MODIFIED,fr),q.eventTarget.removeEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.removeEventListener(H.ANNOTATION_SELECTION_CHANGE,gr),q.eventTarget.removeEventListener(H.SEGMENTATION_MODIFIED,hr),q.eventTarget.removeEventListener(H.SEGMENTATION_DATA_MODIFIED,mo),q.eventTarget.removeEventListener(H.SEGMENTATION_REPRESENTATION_MODIFIED,wo),q.eventTarget.removeEventListener(H.SEGMENTATION_REPRESENTATION_REMOVED,yo)}function xo(e){var t=e.toolName,n=void 0!==tn.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"));tn.tools[t]={toolClass:e}}function Mo(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!tn.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete tn.tools[t]}function Ro(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 No(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 Ro(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)?Ro(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(Ln(e,cn(e,[Xt.Active,Xt.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 ko=function(){function e(t,n,r){var o=this;z(this,e),$(this,"_enabled",void 0),$(this,"_eventName",void 0),$(this,"_eventHandler",void 0),$(this,"_ignoreFiredEvents",void 0),$(this,"_sourceViewports",void 0),$(this,"_targetViewports",void 0),$(this,"id",void 0),$(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,q.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 Y(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!Ao(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,q.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){Ao(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=Po(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,q.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=Po(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return Ao(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return Ao(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)},a=0;a<r.length;a++)o(a);return n}(this._sourceViewports,this._targetViewports),t=this.remove,n=function(e){t(e.detail.element)};e.forEach((function(e){var t=(0,q.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(q.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(q.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function Po(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function Ao(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var Lo=ko,Uo=function(e,t,n){if(tn.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new Lo(e,t,n);return tn.synchronizers.push(r),r},Vo=function(){for(;tn.synchronizers.length>0;)tn.synchronizers.pop().destroy()},Bo=function(e){return tn.synchronizers.find((function(t){return t.id===e}))},jo=function(){return tn.synchronizers},Fo=function(e){var t=tn.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(tn.synchronizers[t].destroy(),tn.synchronizers.splice(t,1))},Wo=s(485),Go=s.n(Wo),qo=Symbol("DefinedCursors"),Ho=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"]),zo=function(){function e(t,n){z(this,e),$(this,"name",void 0),$(this,"fallback",void 0),this.name=t+"",this.fallback=n}return Y(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=Ko(e,qo),r=n.get(t);return r instanceof e?r:Ho.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(Ko(e,qo).set(t,n),!0)}}]),e}();function Ko(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var Yo,$o=Ho.values();function Zo(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=br(e)););return e}function Jo(){return Jo="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=Zo(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Jo.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(Yo||(Yo={}));var Xo=Yo;var Qo=function(e){yr(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 Ir(this,e)});function o(e,t,n,a,i){var l;return z(this,o),$(mr(l=r.call(this,a||o.getUniqueInstanceName("image-cursor"),i)),"url",void 0),$(mr(l),"x",void 0),$(mr(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return Y(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(q.utilities.getRuntimeId(o))}}]),o}(zo),ea={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 '},ta={x:127,y:60},na='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',ra='\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',oa='<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)"/>',aa='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',ia='<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)"/>',la={Angle:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{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:sa(ea,{iconContent:"".concat(oa," ").concat(na),viewBox:ta}),segmentationFreeHandFillInside:sa(ea,{iconContent:"".concat(oa," ").concat(ra),viewBox:ta}),segmentationFreeHandEraseOutside:sa(ea,{iconContent:"".concat(oa," ").concat(na),viewBox:ta}),segmentationFreeHandFillOutside:sa(ea,{iconContent:"".concat(oa," ").concat(ra),viewBox:ta}),segmentationRectangleEraseInside:sa(ea,{iconContent:"".concat(aa," ").concat(na),viewBox:ta}),RectangleScissor:sa(ea,{iconContent:"".concat(aa," ").concat(ra),viewBox:ta}),"RectangleScissor.FILL_INSIDE":sa(ea,{iconContent:"".concat(aa," ").concat(ra),viewBox:ta}),"RectangleScissor.FILL_OUTSIDE":sa(ea,{iconContent:"".concat(aa," ").concat(ra),viewBox:ta}),"RectangleScissor.ERASE_OUTSIDE":sa(ea,{iconContent:"".concat(aa," ").concat(na),viewBox:ta}),"RectangleScissor.ERASE_INSIDE":sa(ea,{iconContent:"".concat(aa," ").concat(na),viewBox:ta}),CircleScissor:sa(ea,{iconContent:"".concat(ia," ").concat(ra),viewBox:ta}),"CircleScissor.FILL_INSIDE":sa(ea,{iconContent:"".concat(ia," ").concat(ra),viewBox:ta}),"CircleScissor.ERASE_OUTSIDE":sa(ea,{iconContent:"".concat(ia," ").concat(na),viewBox:ta}),"CircleScissor.FILL_OUTSIDE":sa(ea,{iconContent:"".concat(ia," ").concat(ra),viewBox:ta})};function sa(e,t){return Object.assign(Object.create(e),t)}function ca(e,t,n){la[e]=sa(ea,{iconContent:t,viewBox:n})}function da(e){if(Object.prototype.hasOwnProperty.call(la,e))return la[e]}var ua=Object.keys(la);function va(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 fa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?va(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):va(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ga=new(function(){function e(){z(this,e),$(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:"",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"})}return Y(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=fa(fa({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]&&console.warn("overriding annotation styles for annotationUID:",e),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=fa(fa({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]&&console.warn("overriding viewport styles for viewportId:",e),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=fa(fa({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]&&console.warn("overriding toolGroup styles for toolGroupId:",e),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,a=t.toolName;return this._getToolStyle(e,n,r,o,a)}},{key:"_getToolStyle",value:function(e,t,n,r,o){if(t){var a=this.getAnnotationToolStyles(t);if(a&&a[e])return a[e]}if(n){var i=this.getViewportToolStyles(n);if(i){if(i[o]&&i[o][e])return i[o][e];if(i.global&&i.global[e])return i.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 s=this.getDefaultToolStyles();return s[o]&&s[o][e]?s[o][e]:s.global&&s.global[e]?s.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 ha(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),a=o.length-1;a>=0;--a){var i=ga.getStyleProperty(o[a],t);if(void 0!==i)return i}}var pa="color",ma=Xo.Highlighted,wa=Xt.Active,ya=function(e){yr(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 Ir(this,e)});function o(e,t,n,a,i){return z(this,o),r.call(this,e,t,n,a,i)}return Y(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=ha(pa,{},ma,wa));var r=Ia(e,t,n),a=Jo(br(o),"getDefinedCursor",this).call(this,r);if(!a){var i=da(e);i&&(a=ba(i,r,t,n,Jo(br(o),"getDefinedCursor",this).call(this,"default")),Jo(br(o),"setDefinedCursor",this).call(this,r,a))}return a}}]),o}(Qo);function Ea(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 Ia(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function ba(e,t,n,r,o){var a=e.mousePoint,i=a.x,l=a.y;return new ya(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?_a:Ca)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),i,l,t,o)}function Ca(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Ea('\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 _a(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox,a=e.mousePointerGroupString,i=r/Math.max(o.x,o.y,1),l=16+r;return Ea('\n <svg data-icon="cursor" role="img" xmlns="http://www.w3.org/2000/svg"\n width="'.concat(l,'" height="').concat(l,'" viewBox="0 0 ').concat(l," ").concat(l,'">\n <g>').concat(a,'</g>\n <g transform="translate(16, 16) scale(').concat(i,')">').concat(n,"</g>\n </svg>"),t)}var Ta=Symbol("ElementCursorsMap");function Da(e,t){Ma(e)[0]=t,Oa(e,t)}function Oa(e,t){var n=Ma(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof zo?t:zo.getDefinedCursor("auto")).getStyleProperty()}function Sa(e){Oa(e,Ma(e)[1])}function xa(e){Oa(e,zo.getDefinedCursor("none"))}function Ma(e){var t=Ma[Ta];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(Ma,Ta,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}var Ra=Xt.Active,Na=Xt.Passive,ka=Xt.Enabled,Pa=Xt.Disabled,Aa=function(){function e(t){z(this,e),$(this,"id",void 0),$(this,"viewportsInfo",[]),$(this,"toolOptions",{}),$(this,"_toolInstances",{}),this.id=t}return Y(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return Object.assign({},this.viewportsInfo)}},{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=tn.tools[e],r=void 0!==e&&""!==e,o=this.toolOptions[e];if(r)if(n)if(o)console.warn("'".concat(e,"' is already registered for ToolGroup ").concat(this.id,"."));else{var a=n.toolClass,i={name:e,toolGroupId:this.id,configuration:t},l=new a(i);this._toolInstances[e]=l}else console.warn("'".concat(e,"' is not registered with the library."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addViewport",value:function(e,t){var n=(0,q.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();q.Settings.getRuntimeSettings().get("useCursors")&&this.setViewportsCursorByToolName(o)}},{key:"removeViewports",value:function(e,t){var n=[];if(this.viewportsInfo.forEach((function(r,o){var a=!1;r.renderingEngineId===e&&(a=!0,t&&r.viewportId!==t&&(a=!1)),a&&n.push(o)})),n.length)for(var r=n.length-1;r>=0;r--)this.viewportsInfo.splice(n[r],1)}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(void 0!==this._toolInstances[e]){var n=this.toolOptions[e]?this.toolOptions[e].bindings:[],r=t.bindings?t.bindings:[],o={bindings:[].concat(Pn(n),Pn(r)),mode:Ra};this.toolOptions[e]=o,this._toolInstances[e].mode=Ra;var a=q.Settings.getRuntimeSettings(),i=a.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&i)this.setViewportsCursorByToolName(e);else{var l=zo.getDefinedCursor("default");this._setCursorForViewports(l)}"function"==typeof this._toolInstances[e].onSetToolActive&&this._toolInstances[e].onSetToolActive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){if(void 0!==this._toolInstances[e]){var t=this.getToolOptions(e),n=Object.assign({bindings:t?t.bindings:[]},t,{mode:Na});n.bindings=n.bindings.filter((function(e){return e.mouseButton!==xn.Primary}));var r=Na;0!==n.bindings.length&&(r=Ra,n.mode=r),this.toolOptions[e]=n,this._toolInstances[e].mode=r,"function"==typeof this._toolInstances[e].onSetToolPassive&&this._toolInstances[e].onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:ka};this.toolOptions[e]=t,this._toolInstances[e].mode=ka,"function"==typeof this._toolInstances[e].onSetToolEnabled&&this._toolInstances[e].onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){if(void 0!==this._toolInstances[e]){var t={bindings:[],mode:Pa};this.toolOptions[e]=t,this._toolInstances[e].mode=Pa,"function"==typeof this._toolInstances[e].onSetToolDisabled&&this._toolInstances[e].onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){return this.toolOptions[e]}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===Ra&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=t?"".concat(e,".").concat(t):e,r=ya.getDefinedCursor(n,!0);r||(r=zo.getDefinedCursor("default")),this._setCursorForViewports(r)}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,q.getEnabledElementByIds)(r,n);o&&Da(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:Sr(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=Go()(this._toolInstances[e].configuration,t);return J()(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===xn.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,q.getRenderingEngine)(t).renderViewport(n)}))}}]),e}(),La=function(e){if(!tn.toolGroups.some((function(t){return t.id===e}))){var t=new Aa(e);return tn.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},Ua=function(){return tn.toolGroups};function Va(e,t,n,r){if(t.renderingEngineId!==n.renderingEngineId||t.viewportId!==n.viewportId){var o=r.detail.camera,a=(0,q.getRenderingEngine)(n.renderingEngineId);if(!a)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var i=a.getViewport(n.viewportId);i.setCamera(o),i.render()}}var Ba=q.Enums.Events.CAMERA_MODIFIED;function ja(e){return Uo(e,Ba,Va)}function Fa(e,t,n,r){var o=r.detail,a=o.volumeId,i=o.range,l=(0,q.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var s=l.getViewport(n.viewportId);if(s instanceof q.VolumeViewport){var c=s.getActor(a);if(!c)return;c.actor.getProperty().getRGBTransferFunction(0).setRange(i.lower,i.upper);var d=s.element;(0,q.triggerEvent)(d,q.Enums.Events.VOI_MODIFIED,{volumeId:a,viewportId:s.id,range:{lower:i.lower,upper:i.upper}})}else{if(!(s instanceof q.StackViewport))throw new Error("Viewport type not supported.");s.setProperties({voiRange:i})}s.render()}function Wa(e){return Uo(e,q.Enums.Events.VOI_MODIFIED,Fa)}var Ga=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},qa=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)}))},Ha=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},za=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",fill:"transparent",width:"2",lineWidth:void 0},a),l=i.color,s=i.fill,c=i.width,d=i.lineWidth,u=d||c,v="http://www.w3.org/2000/svg",f=Ga(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:s,"stroke-width":u};if(g)qa(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");Ha(h,p),e.appendNode(p,f)}},Ka=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ga(t,"ellipse",n),g=e.getSvgNode(f),h=Math.abs(r[0]-o[0]),p=Math.abs(r[1]-o[1]),m=Math.min(r[0],o[0]),w=Math.min(r[1],o[1]),y=[m+h/2,w+p/2],E=h/2,I=p/2,b={cx:"".concat(y[0]),cy:"".concat(y[1]),rx:"".concat(E),ry:"".concat(I),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)qa(b,g),e.setNodeTouched(f);else{var C=document.createElementNS(v,"ellipse");Ha(b,C),e.appendNode(C,f)}},Ya=function(e,t,n,r){for(var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},a=Object.assign({color:"dodgerblue",handleRadius:"6",width:"2",lineWidth:void 0,fill:"transparent",type:"circle"},o),i=a.color,l=a.handleRadius,s=a.width,c=a.lineWidth,d=a.fill,u=a.type,v=c||s,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=Ga(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:i,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:i,fill:d,"stroke-width":v,rx:"".concat(.1*y)}}var b=e.getSvgNode(p);if(b)qa(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,u);Ha(m,C),e.appendNode(C,p)}}};function $a(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ga(t,"line",n),g=e.getSvgNode(f),h={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:l,"stroke-width":u,"stroke-dasharray":d};if(g)qa(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"line");Ha(h,p),e.appendNode(p,f)}}}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 Ja(e,t,n,r,o){if(!(r.length<2)){var a,i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,connectLastToFirst:!1},o),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v=Ga(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 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 a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(r);try{for(h.s();!(a=h.n()).done;){var p=a.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)qa(w,f),e.setNodeTouched(v);else{var y=document.createElementNS("http://www.w3.org/2000/svg","polyline");Ha(w,y),e.appendNode(y,v)}}}function Xa(e,t,n,r,o,a){var i,l=a.padding,s=a.color,c=a.fontFamily,d=a.fontSize,u=a.background,v=o[0]+l,f=o[1]+l,g=Ga(t,"text",n),h=e.getSvgNode(g);if(h){for(var p=h.querySelector("text"),m=Array.from(p.children),w=0;w<m.length;w++){var y=m[w],E=r[w]||"";y.textContent=E}if(r.length>m.length){for(var I=0;I<r.length-m.length;I++){var b=Qa(r[I+m.length]);p.appendChild(b)}h.appendChild(p),e.appendNode(h,g)}var C={fill:s,"font-size":d,"font-family":c},_={transform:"translate(".concat(v," ").concat(f,")")};qa(C,p),qa(_,h),i=ei(h,u),e.setNodeTouched(g)}else{var T=document.createElementNS("http://www.w3.org/2000/svg","g");T.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var D=function(e){var t=e.color,n=e.fontFamily,r=e.fontSize,o=document.createElementNS("http://www.w3.org/2000/svg","text"),a="".concat("user-select: none; pointer-events: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0);").concat("filter:url(#shadow);");return o.setAttribute("x","0"),o.setAttribute("y","0"),o.setAttribute("fill",t),o.setAttribute("font-family",n),o.setAttribute("font-size",r),o.setAttribute("style",a),o}(a),O=0;O<r.length;O++){var S=Qa(r[O]);D.appendChild(S)}T.appendChild(D),e.appendNode(T,g),i=ei(T,u)}return Object.assign({},i,{x:v,y:f,height:i.height+l,width:i.width+l})}function Qa(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 ei(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 qa(o,n),r}var ti=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",color:"rgb(255, 255, 0)",background:"",padding:25,centerX:!1,centerY:!0},a),l=Xa(e,t,n,r,o,i);return l};function ni(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){l=!0,o=e}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}}(e,t)||kn(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 ri(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,a,i,l,s,c,d,u=(o=e,i=(a=ni(t,2))[0],l=a[1],c=(s=ni(o,2))[0],d=s[1],Math.sqrt(Math.pow(i-c,2)+Math.pow(l-d,2)));u<r&&(r=u,n=Pn(e))})),n}function oi(e){var t=e.x,n=e.y,r=e.height,o=e.width,a=o/2,i=r/2;return[[t+a,n],[t,n+i],[t+a,n+r],[t+o,n+i]]}var ai=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?ri(r,o):o,s=oi(a),c=ri(s,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},i);$a(e,t,"link-".concat(n),l,c,d)},ii=function(e,t,n,r,o,a,i){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},s=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),c=ti(e,t,n,r,o,s);return ai(e,t,n,a,o,c,s),c};function li(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash,u=c||s,v="http://www.w3.org/2000/svg",f=Ga(t,"rect",n),g=e.getSvgNode(f),h=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w={x:"".concat(h[0]),y:"".concat(h[1]),width:"".concat(p),height:"".concat(m),stroke:l,fill:"transparent","stroke-width":u,"stroke-dasharray":d};if(g)qa(w,g),e.setNodeTouched(f);else{var y=document.createElementNS(v,"rect");Ha(w,y),e.appendNode(y,f)}}function si(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var i=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),l=i.color,s=i.width,c=i.lineWidth,d=i.lineDash;$a(e,t,n,r,o,{color:l,width:s,lineWidth:c,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};$a(e,t,"2",f.start,f.end,{color:l,width:s,lineWidth:c}),$a(e,t,"3",g.start,g.end,{color:l,width:s,lineWidth:c})}}function ci(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 di(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,q.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return ui(r,t,n)}function ui(e,t,n){var r=e.renderingEngineId,o=e.viewportId,a=sn(o,r);if(!a)return null;var i=a._toolInstances;for(var l in i){var s=vi(i[l],e,t,n);if(s)return s}return null}function vi(e,t,n,r){var o=Ue(t.viewport.element,e.constructor.toolName);if(null!=o&&o.length){var a,i=t.viewport.element,l=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ci(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)?ci(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(l.s();!(a=l.n()).done;){var s=a.value;if(e.isPointNearTool(i,s,n,r,"")||e.getHandleNearImagePoint(i,s,n,r))return s}}catch(e){l.e(e)}finally{l.f()}}return null}var fi=function(e){var t=Er(e);return null!==e&&("object"===t||"function"===t)},gi=function(e,t,n){var r,o,a,i,l,s,c=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,a=o;return r=o=void 0,c=t,i=e.apply(a,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return c=e,l=h(w,t),d?g(e):i}function m(e){var n=e-s;return void 0===s||n>=t||n<0||u&&e-c>=a}function w(){var e=Date.now();if(m(e))return y(e);l=h(w,function(e){var n=e-c,r=t-(e-s);return u?Math.min(r,a-n):r}(e))}function y(e){return l=void 0,v&&r?g(e):(r=o=void 0,i)}function E(){for(var e=Date.now(),n=m(e),a=arguments.length,c=new Array(a),d=0;d<a;d++)c[d]=arguments[d];if(r=c,o=this,s=e,n){if(void 0===l)return p(s);if(u)return l=h(w,t),g(s)}return void 0===l&&(l=h(w,t)),i}return t=Number(t)||0,fi(n)&&(d=Boolean(n.leading),a=(u="maxWait"in n)?Math.max(Number(n.maxWait)||0,t):a,v="trailing"in n?Boolean(n.trailing):v),E.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),c=0,r=s=o=l=void 0},E.flush=function(){return void 0===l?i:y(Date.now())},E.pending=function(){return void 0!==l},E},hi=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return fi(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),gi(e,t,{leading:r,trailing:o,maxWait:t})};var pi=function(e,t,n){return Math.min(Math.max(t,e),n)},mi=q.utilities.calibratedPixelSpacingMetadataProvider;function wi(e,t,n,r){r||(r=n),mi.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function yi(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof q.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof q.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));Ei(e,r,o)}}function Ei(e,t,n){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal,i=r.position,l=q.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),s=l.spacingInNormalDirection,c=l.imageVolume;if(!c)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var d=e.getActor(c.volumeId);d||console.warn("No actor found for with actorUID of",c.volumeId);var u=d.actor,v=q.utilities.getSliceRange(u,a,o),f=q.utilities.snapFocalPointToSlice(o,i,v,a,s,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function Ii(){return Ii=Pr(Lr().mark((function e(t){var n,r,o,a,i,l,s,c,d,u=arguments;return Lr().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,a=(0,q.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:i=a.viewport,l=bi(i,o),s=l.imageIndex,c=l.numberOfSlices,d=Ci(c,r),yi(i,{delta:d-s,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),Ii.apply(this,arguments)}function bi(e,t){if(e instanceof q.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof q.VolumeViewport)return q.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function Ci(e,t){return pi(t,0,e-1)}var _i=function(e){return Ii.apply(this,arguments)},Ti=s(976);function Di(e,t,n,r){var o,a,i,l,s,c,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=ni(r,3),f=ni(v[0],2);o=f[0],a=f[1];var g=ni(v[1],2);i=g[0],l=g[1];var h=ni(v[2],2);s=h[0],c=h[1]}else o=0,a=u[0],i=0,l=u[1],s=0,c=u[2];for(var p=Ti.vec3.fromValues(o,i,s),m=e.getDirection(),w=m.slice(0,3),y=m.slice(3,6),E=m.slice(6,9),I=ni(e.getSpacing(),3),b=I[0],C=I[1],_=I[2],T=e.indexToWorld(p),D=Ti.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),O=Ti.vec3.fromValues(y[0]*C,y[1]*C,y[2]*C),S=Ti.vec3.fromValues(E[0]*_,E[1]*_,E[2]*_),x=u[0],M=u[0]*u[1],R=s;R<=c;R++)for(var N=i;N<=l;N++)for(var k=o;k<=a;k++){var P=[k,N,R],A=k-o,L=N-i,U=R-s,V=T,B=[V[0]+A*D[0]+L*O[0]+U*S[0],V[1]+A*D[1]+L*O[1]+U*S[1],V[2]+A*D[2]+L*O[2]+U*S[2]];if(t(B,P)){var j=R*M+N*x+k;n({value:d[j],index:j,pointIJK:P,pointLPS:B})}}}var Oi=function(e,t){var n=1/0,r=0,o=1/0,a=0,i=1/0,l=0;if(e.forEach((function(e){n=Math.min(e[0],n),r=Math.max(e[0],r),o=Math.min(e[1],o),a=Math.max(e[1],a),i=Math.min(e[2],i),l=Math.max(e[2],l)})),n=Math.floor(n),r=Math.floor(r),o=Math.floor(o),a=Math.floor(a),i=Math.floor(i),l=Math.floor(l),t){var s=ni(t,3),c=s[0],d=s[1],u=s[2];n=Math.max(0,n),r=Math.min(c-1,r),o=Math.max(0,o),a=Math.min(d-1,a),i=Math.max(0,i),l=Math.min(u-1,l)}return[[n,r],[o,a],[i,l]]},Si=q.utilities.transformWorldToIndex;function xi(e,t,n,r){var o=function(e,t,n){var r,o=ni(e,2),a=o[0],i=o[1],l=Ti.vec3.fromValues((a[0]+i[0])/2,(a[1]+i[1])/2,(a[2]+i[2])/2),s=Ti.vec3.distance(a,i)/2;if(!n){var c=Si(t,l),d=t.getSpacing(),u=Math.min.apply(Math,Pn(d)),v=Math.ceil(s/u);return{boundsIJK:r=[[c[0]-v,c[0]+v],[c[1]-v,c[1]+v],[c[2]-v,c[2]+v]],centerWorld:l,radiusWorld:s}}return r=function(e,t,n,r,o){var a=ni(n,2),i=a[0],l=a[1],s=e.getDimensions(),c=t.getCamera(),d=Ti.vec3.fromValues(c.viewUp[0],c.viewUp[1],c.viewUp[2]),u=Ti.vec3.fromValues(c.viewPlaneNormal[0],c.viewPlaneNormal[1],c.viewPlaneNormal[2]),v=Ti.vec3.create();Ti.vec3.cross(v,d,u),v=[-v[0],-v[1],-v[2]];var f=Ti.vec3.create(),g=Ti.vec3.create();Ti.vec3.scaleAndAdd(f,l,u,o),Ti.vec3.scaleAndAdd(g,i,u,-o),Ti.vec3.scaleAndAdd(f,f,v,-o),Ti.vec3.scaleAndAdd(g,g,v,o);var h=[Si(e,f),Si(e,g)];return Oi(h,s)}(t,n,e,0,s),{boundsIJK:r,centerWorld:l,radiusWorld:s}}(t,e,r),a=o.boundsIJK,i={center:o.centerWorld,radius:o.radiusWorld};Di(e,(function(e){return function(e,t){var n=e.center,r=e.radius,o=ni(t,3),a=o[0],i=o[1],l=o[2],s=ni(n,3),c=s[0],d=s[1],u=s[2];return Math.pow(a-c,2)+Math.pow(i-d,2)+Math.pow(l-u,2)<=Math.pow(r,2)}(i,e)}),n,a)}var Mi=function(e,t,n){var r=e.scalarData,o=e.imageData,a=n.overwrite,i=n.boundsIJK,l=n.upper,s=n.lower,c=t.imageData,d=c.getPointData().getScalars().getData();if(a)for(var u=0;u<r.length;u++)r[u]=0;return Di(o,(function(){return!0}),(function(e){var t=e.index,n=e.pointIJK,o=c.computeOffsetIndex(n),a=d[o];a<=s||a>=l||(r[t]=1)}),i),Je(e.volumeId),e};function Ri(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o];a.getFrameOfReferenceUID()===t&&r.push(a)}return r}var Ni=Xt.Active,ki=Xt.Passive,Pi=Xt.Enabled;function Ai(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o],i=sn(a.id,a.renderingEngineId);i&&Li(i,t)&&r.push(a)}return r}function Li(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===Ni||r===ki||r===Pi}var Ui=function(e,t){return e.filter((function(e){var n=e.getCamera();return q.utilities.isEqual(n.viewPlaneNormal,t.viewPlaneNormal)&&q.utilities.isEqual(n.viewUp,t.viewUp)}))};function Vi(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.FrameOfReferenceUID,i=o.getViewports();i=Ai(i=Ri(i,a),t);var l=o.getViewport(r.viewportId);n&&(i=Ui(i,l.getCamera()));var s=i.map((function(e){return e.id}));return s}function Bi(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 ji(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return q.utilities.isEqual(t,r)}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,s=[],c=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Bi(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)?Bi(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(c.s();!(a=c.n()).done;){var d=a.value,u=d.data.handles.points[0];if(d.isVisible){var v=Ti.vec3.create();Ti.vec3.sub(v,l,u);var f=Ti.vec3.dot(v,r);Math.abs(f)<i&&s.push(d)}}}catch(e){c.e(e)}finally{c.f()}return s}function Fi(e,t){if(e instanceof q.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 q.VolumeViewport){var a=e.getCamera();return ji(t,a,q.utilities.getTargetVolumeAndSpacingInNormalDir(e,a).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var Wi=function(e){if(e){if(e.data&&e.highlighted)return Xo.Highlighted;if(me(e.annotationUID))return Xo.Selected;if(ne(e))return Xo.Locked}return Xo.Default};function Gi(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 qi(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)?qi(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}function qi(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 Hi=function(e){yr(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 Ir(this,e)});function o(){var e;z(this,o);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return $(mr(e=r.call.apply(r,[this].concat(n))),"mouseMoveCallback",(function(t,n){if(!n)return!1;var r,o=t.detail,a=o.element,i=o.currentPoints.canvas,l=!1,s=Gi(n);try{for(s.s();!(r=s.n()).done;){var c=r.value;if(!ne(c)&&Te(c.annotationUID)){var d=c.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(a,c,i,6),f=v&&!c.highlighted,g=!v&&c.highlighted;f||g?(c.highlighted=!c.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){s.e(e)}finally{s.f()}return l})),$(mr(e),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,a=n.columnScale,i=n.imageId,l=n.imageData,s=n.worldToIndex;if((0,q.getEnabledElement)(r).viewport instanceof q.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var c=l.getIndexToWorld(),d=q.utilities.imageIdToURI(i),u=Le();u.getFramesOfReference().forEach((function(t){var n=u.getFrameOfReferenceAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){q.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=Ti.vec4.fromValues.apply(Ti.vec4,Pn(e).concat([1])),n=Ti.vec4.fromValues(0,0,0,1),r=Ti.vec4.create();Ti.vec4.transformMat4(r,t,s);var i=[a*r[0],o*r[1],r[2]];return Ti.vec4.transformMat4(n,Ti.vec4.fromValues(i[0],i[1],i[2],1),c),n.slice(0,3)})))})),pn(r))}))})),e}return Y(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return Fi((0,q.getEnabledElement)(e).viewport,t)}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data,i=a.handles,l=i.points,s=i.textBox,c=s.worldBoundingBox;if(c){var d={topLeft:o.worldToCanvas(c.topLeft),topRight:o.worldToCanvas(c.topRight),bottomLeft:o.worldToCanvas(c.bottomLeft),bottomRight:o.worldToCanvas(c.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return a.handles.activeHandleIndex=null,s}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==Ti.vec2.distance(n,f)<r)return a.handles.activeHandleIndex=u,v}a.handles.activeHandleIndex=null}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,a=this.getTargetId(e);if(e instanceof q.StackViewport)o=a.split("imageId:")[1];else{var i=a.split("volumeId:")[1],l=q.cache.getVolume(i);o=q.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return ha(e,t,Wi(n),this.mode)}},{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),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}(Nr);$(Hi,"toolName","AnnotationTool");var zi=Hi;function Ki(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function Yi(e,t,n){var r=Ki(e,t);if(0===r)return Ki(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return Ki(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function $i(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(Yi(e,t,n))}function Zi(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=ni(e,4),r=n[0],o=n[1],a=n[2],i=n[3],l=655535,s=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,a,i);return Object.keys(s).forEach((function(e){var n=ni(s[e],2),r=$i(n[0],n[1],t);r<l&&(l=r)})),l}function Ji(e){var t,n,r,o,a=(n=[(t=e)[0],t[1]].sort((function(e,t){return e[0]<t[0]?-1:1})),r=[t[0],t[1]].sort((function(e,t){return e[1]<t[1]?-1:1})),o=n[n.length-1],{top:r[0],bottom:r[r.length-1],right:o}),i=(a.top[1]+a.bottom[1])/2;return[a.right[0],i]}function Xi(e,t,n,r){var o=Ti.vec3.create();Ti.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ti.vec3.fromValues.apply(Ti.vec3,Pn(n)),i=Ti.vec3.fromValues.apply(Ti.vec3,Pn(r)),l=Ti.vec3.create();Ti.vec3.subtract(l,a,i);var s=Ti.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ti.vec3.dot(l,o)/(s*Ti.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}var Qi=q.utilities.transformWorldToIndex,el=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}},activeHandleIndex:null},cachedStats:{}}};Ve(o,f);var g=Vi(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"isPointNearTool",(function(t,n,r,o){var a=(0,q.getEnabledElement)(t).viewport,i=n.data.handles.points,l=a.worldToCanvas(i[0]),s=a.worldToCanvas(i[3]),c=e._getRectangleImageCoordinates([l,s]),d=[r[0],r[1]];return Zi([c.left,c.top,c.width,c.height],d)<=o})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),xa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var s=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:s,handleIndex:i,movingTextBox:l},e._activateModify(o),xa(o);var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g,h,p,m,w,y,E,I,b=n.currentPoints,C=(0,q.getEnabledElement)(r).viewport,_=C.worldToCanvas,T=C.canvasToWorld,D=b.world,O=c.handles.points;switch(O[l]=Pn(D),l){case 0:case 3:g=_(O[0]),h=[(m=_(O[3]))[0],g[1]],p=[g[0],m[1]],y=T(h),E=T(p),O[1]=y,O[2]=E;break;case 1:case 2:h=_(O[1]),g=[(p=_(O[2]))[0],h[1]],m=[h[0],p[1]],w=T(g),I=T(m),O[0]=w,O[3]=I}a.invalidated=!0}e.editData.hasMoved=!0;var S=(0,q.getEnabledElement)(r).renderingEngine;vr(S,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return i.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=i.getCamera(),_=C.viewPlaneNormal,T=C.viewUp;if(h.cachedStats[c]&&void 0!==h.cachedStats[c].unit?f.invalidated&&(e._throttledCalculateCachedStats(f,_,T,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,_,T,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var D=void 0;if(Te(g)){ne(f)||e.editData||null===w||(D=[y[w]]),D&&Ya(n,g,"0",D,{color:b}),li(n,g,"0",y[0],y[3],{color:b,lineDash:I,lineWidth:E}),a=!0;var O=e._getTextLines(h,c);if(O&&0!==O.length){if(!h.handles.textBox.hasMoved){var S=Ji(y);h.handles.textBox.worldPosition=i.canvasToWorld(S)}var x=i.worldToCanvas(h.handles.textBox.worldPosition),M=ii(n,g,"1",O,x,y,{},e.getLinkedTextBoxStyle(u,f)),R=M.x,N=M.y,k=M.width,P=M.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+k,N]),bottomLeft:i.canvasToWorld([R,N+P]),bottomRight:i.canvasToWorld([R+k,N+P])}}}}return a})),$(mr(e),"_getRectangleImageCoordinates",(function(e){var t=ni(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])}})),$(mr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.area,o=n.mean,a=n.max,i=n.stdDev,l=n.Modality,s=n.areaUnit;if(void 0!==o){var c=[],d="Area: ".concat(r.toFixed(2)," ").concat(s,"²"),u="Mean: ".concat(o.toFixed(2)),v="Max: ".concat(a.toFixed(2)),f="Std Dev: ".concat(i.toFixed(2));return"PT"===l?(u+=" SUV",v+=" SUV",f+=" SUV"):"CT"===l?(u+=" HU",v+=" HU",f+=" HU"):(u+=" MO",v+=" MO",f+=" MO"),c.push(d),c.push(v),c.push(u),c.push(f),c}})),$(mr(e),"_calculateCachedStats",(function(t,n,r,o,a){for(var i=t.data,l=a.viewportId,s=a.renderingEngineId,c=i.handles.points[0],d=i.handles.points[3],u=i.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,o),p=h.dimensions,m=h.scalarData,w=h.imageData,y=h.metadata,E=h.hasPixelSpacing,I=Qi(w,c);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Qi(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]),O=Math.min(I[2],b[2]),S=Math.max(I[2],b[2]),x=Xi(n,r,c,d),M=x.worldWidth*x.worldHeight,R=0,N=0,k=0,P=-1/0,A=p[0],L=p[0]*p[1],U=O;U<=S;U++)for(var V=T;V<=D;V++)for(var B=C;B<=_;B++){var j=m[U*L+V*A+B];j>P&&(P=j),R++,N+=j}N/=R;for(var F=O;F<=S;F++)for(var W=T;W<=D;W++)for(var G=C;G<=_;G++){var z=m[F*L+W*A+G]-N;k+=z*z}k/=R,k=Math.sqrt(k),u[g]={Modality:y.Modality,area:M,mean:N,stdDev:k,max:P,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,u[g]={Modality:y.Modality}}t.invalidated=!1;var K=H.ANNOTATION_MODIFIED,Y={annotation:t,viewportId:l,renderingEngineId:s};return(0,q.triggerEvent)(q.eventTarget,K,Y),u})),$(mr(e),"_isInsideVolume",(function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=hi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o)}(zi);$(el,"toolName","RectangleROI");var tl=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c,d,u=l.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getTargetId(l);if(l instanceof q.StackViewport)c=g.split("imageId:")[1];else{d=g.split("volumeId:")[1];var h=q.cache.getVolume(d);c=q.utilities.getClosestImageId(h,a,v,f)}var p={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(v),enabledElement:i,viewUp:Pn(f),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:c,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},segmentationId:null}};Ve(o,p);var m=Vi(o,e.getToolName());return e.editData={annotation:p,viewportIdsToRender:m,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(s,m),p})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=t.renderingEngineId,s=i.element,c=Ue(s,e.getToolName());if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(s,c))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<c.length;u++){var v=c[u],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.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(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var I=H.ANNOTATION_MODIFIED,b={annotation:v,viewportId:i.id,renderingEngineId:l};(0,q.triggerEvent)(q.eventTarget,I,b);var C=void 0;Te(f)&&(ne(v)||e.editData||null===p||(C=[m[p]]),C&&Ya(n,f,"0",C,{color:E}),li(n,f,"0",m[0],m[3],{color:E,lineDash:y,lineWidth:w}),a=!0)}return a})),e}return Y(o)}(el);$(tl,"toolName","RectangleROIThreshold");var nl=q.utilities.transformWorldToIndex,rl=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c,d,u,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof q.StackViewport)throw new Error("Stack Viewport Not implemented");if(u=e.getTargetId(l).split("volumeId:")[1],d=q.cache.getVolume(u),!(c=q.utilities.getClosestImageId(d,a,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=q.utilities.getSpacingInNormalDirection(d,f),m=e._getEndSliceIndex(d,a,p,f),w={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(f),enabledElement:i,viewUp:Pn(g),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:c,toolName:e.getToolName(),volumeId:u,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[c]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(w,d),Ve(o,w);var y=Vi(o,e.getToolName());return e.editData={annotation:w,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(s,y),w})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1,o=Ue(t.viewport.element,e.getToolName());if(null==o||!o.length)return r;for(var a=t.viewport,i=a.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=0;s<o.length;s++){var c=o[s],d=c.annotationUID,u=c.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return a.worldToCanvas(e)}));l.annotationUID=d;var w=e.getStyle("lineWidth",l,c),y=e.getStyle("lineDash",l,c),E=e.getStyle("color",l,c);if(!(i<Math.min(v,f)||i>Math.max(v,f))){c.invalidated&&e._throttledCalculateCachedStats(c,t);var I=!1;if(i!==v&&i!==f||(I=!0),!a.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(Te(d)){ne(c)||e.editData||null===p||!I||(b=[m[p]]),b&&Ya(n,d,"0",b,{color:E});var C=y;I||(C=2),li(n,d,"0",m[0],m[3],{color:E,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=hi(e._calculateCachedStatsTool,100,{trailing:!0}),e}return Y(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,a=r.spacingInNormal,i=t.imageData,l=n.startSlice,s=n.endSlice,c=n.handles.points,d=nl(i,c[0]);if(d[2]!==l)throw new Error("Start slice does not match");var u=Ti.vec3.fromValues(d[0],d[1],s),v=Ti.vec3.create();i.indexToWorldVec3(d,v);var f=Ti.vec3.create();i.indexToWorldVec3(u,f);for(var g=Ti.vec3.distance(v,f),h=[],p=function(e){h.push(c.map((function(t){var n=Ti.vec3.create();return Ti.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=a)p(m);n.cachedStats.projectionPoints=h;for(var w=[],y=0,E=h;y<E.length;y++){var I=E[y],b=q.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,a=t.viewport,i=n.cachedStats,l=this.getTargetId(a),s=q.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,s),e.invalidated=!1;var c=H.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,q.triggerEvent)(q.eventTarget,c,d),i}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,a=Ti.vec3.create();Ti.vec3.scaleAndAdd(a,t,r,o*n);for(var i,l=n/2,s=e.imageIds,c=0;c<s.length;c++){var d=s[c],u=q.metaData.get("imagePlaneModule",d).imagePositionPatient,v=Ti.vec3.create();Ti.vec3.sub(v,a,u);var f=Ti.vec3.dot(v,r);Math.abs(f)<l&&(i=c)}return i}}]),o}(el);$(rl,"toolName","RectangleROIStartEndThreshold");var ol=function(e,t){var n=e.findIndex((function(e){var t=ni(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},al=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=[];if(e.forEach((function(e){var o,a,i=e.data,l=i.handles.points,s=t.imageData,c=t.dimensions,d=l;if(null!==(o=i.cachedStats)&&void 0!==o&&o.projectionPoints){var u,v=i.cachedStats.projectionPoints;d=(u=[]).concat.apply(u,Pn(v))}var f=d.map((function(e){return q.utilities.transformWorldToIndex(s,e)})),g=Oi(f,c);!n.numSlicesToProject||null!==(a=i.cachedStats)&&void 0!==a&&a.projectionPoints||(g=ol(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 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 ll=function(e,t,n,r){if(n.length>1)throw new Error("thresholding based on more than one reference volumes data is not supported yet");var o=n[0],a=e.map((function(e){return je(e)}));!function(e){var t,n=[tl.toolName,rl.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 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 a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(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()}}(a);var i=al(a,o,r),l={lower:r.lower,upper:r.upper,overwrite:r.overwrite,boundsIJK:i};return Mi(t,o,l)},sl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mergedLabelmap";e.forEach((function(t){var n=t.direction,r=t.dimensions,o=t.origin,a=t.spacing;if(!(q.utilities.isEqual(r,e[0].dimensions)&&q.utilities.isEqual(n,e[0].direction)&&q.utilities.isEqual(a,e[0].spacing)&&q.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.scalarData.constructor,a=new o(r.scalarData.length);e.forEach((function(e){for(var n=e.scalarData,r=0;r<n.length;r++)n[r]===t&&(a[r]=t)}));var i={scalarData:a,metadata:r.metadata,spacing:r.spacing,origin:r.origin,direction:r.direction,dimensions:r.dimensions},l=!0,s=q.volumeLoader.createLocalVolume(i,n,l);return s};function cl(e,t){if(e===et.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function dl(e){return ul.apply(this,arguments)}function ul(){return(ul=Pr(Lr().mark((function e(t){var n,r,o,a,i,l,s,c,d,u,v,f;return Lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.viewportId,r=t.renderingEngineId,o=t.options,a=t.segmentationId,i=(0,q.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=i.viewport)instanceof q.VolumeViewport){e.next=8;break}throw new Error("Segmentation not ready for stackViewport");case 8:if(s=l.getDefaultActor(),c=s.uid,void 0===a&&(a="".concat(c,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:q.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,Z._cloneDeep)(o),e.next=14,q.volumeLoader.createLocalVolume(u,a);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,q.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:a});case 19:return e.abrupt("return",a);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var vl=1e-6;function fl(e,t,n){var r=ni(n,2),o=r[0],a=r[1];if(Math.abs(t)<vl)return e<0;var i=e/t;if(t>0){if(i>a)return 0;i>o&&(n[0]=i)}else{if(i<o)return 0;i<a&&(n[1]=i)}return 1}function gl(e,t,n,r,o){var a=ni(e,2),i=a[0],l=a[1],s=ni(t,2),c=s[0]-i,d=s[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(c)<vl&&Math.abs(d)<vl&&i>=n[0]&&i<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(fl(n[0]-i,c,u)&&fl(i-n[2],-c,u)&&fl(n[1]-l,d,u)&&fl(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=i+f*c,o[1]=l+f*d),v>0&&(r[0]+=v*c,r[1]+=v*d),1}return 0}function hl(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,a=e.zRadius,i=ni(t,3),l=i[0],s=i[1],c=i[2],d=ni(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(s-v)*(s-v)/(o*o)),0!==a&&(g+=(c-f)*(c-f)/(a*a)),g<=1}function pl(e){var t=ni(e,4),n=t[0],r=t[1],o=t[2],a=t[3];return[[o[0],r[1]],[a[0],n[1]]]}function ml(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function wl(e,t,n,r){var o=ni(e,2),a=o[0],i=o[1],l=ni(t,2),s=l[0],c=l[1],d=ni(n,2),u=d[0],v=d[1],f=ni(r,2),g=f[0],h=f[1],p=c-i,m=a-s,w=s*i-a*c,y=p*u+m*v+w,E=p*g+m*h+w;if(0===y||0===E||ml(y)!==ml(E)){var I=h-v,b=u-g,C=g*v-u*h,_=I*a+b*i+C,T=I*s+b*c+C;if(0===_||0===T||ml(_)!==ml(T)){var D=p*b-I*m;return[(m*C-b*w)/D,(I*w-p*C)/D]}}}function yl(e,t,n){var r,o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];a?(o=e.length-1,r=0):(o=0,r=1);for(var i=r;i<e.length;i++){var l=e[o],s=e[i];if(Il(t,n,l,s))return[o,i];o=i}}function El(e,t,n){var r,o,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];a?(o=e.length-1,r=0):(o=0,r=1);for(var i=[],l=r;l<e.length;l++){var s=e[o],c=e[l];Il(t,n,s,c)&&i.push([o,l]),o=l}if(0!==i.length){var d=[];i.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(Ti.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:i[v],distance:u}}}function Il(e,t,n,r){var o=!1,a=[bl(e,t,n),bl(e,t,r),bl(n,r,e),bl(n,r,t)];return a[0]!==a[1]&&a[2]!==a[3]||((0===a[0]&&Cl(e,n,t)||0===a[1]&&Cl(e,r,t)||0===a[2]&&Cl(n,e,r)||0===a[3]&&Cl(n,t,r))&&(o=!0),o)}function bl(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 Cl(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 _l=.001,Tl=function(e,t){var n,r,o;if(e instanceof q.StackViewport){var a=e.getImageData();r=a.direction.slice(0,3),o=a.direction.slice(3,6),n=a.spacing}else{var i=e.getImageData(),l=i.direction,s=i.spacing,c=e.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=Ti.vec3.create();Ti.vec3.cross(h,u,d),h=[-h[0],-h[1],-h[2]];var p,m=Math.abs(Ti.vec3.dot(h,v)),w=Math.abs(Ti.vec3.dot(h,f)),y=Math.abs(Ti.vec3.dot(h,g));if(Math.abs(1-m)<_l)p=s[0],r=v;else if(Math.abs(1-w)<_l)p=s[1],r=f;else{if(!(Math.abs(1-y)<_l))throw new Error("No support yet for oblique plane planar contours");p=s[2],r=g}var E,I=Math.abs(Ti.vec3.dot(d,v)),b=Math.abs(Ti.vec3.dot(d,f)),C=Math.abs(Ti.vec3.dot(d,g));if(Math.abs(1-I)<_l)E=s[0],o=v;else if(Math.abs(1-b)<_l)E=s[1],o=f;else{if(!(Math.abs(1-C)<_l))throw new Error("No support yet for oblique plane planar contours");E=s[2],o=g}n=[p,E]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},Dl=function(e,t,n){return Ti.vec2.dist(e,t)<n},Ol=function(e,t,n,r){var o=r.xDir,a=r.yDir,i=r.spacing,l=(0,q.getEnabledElement)(e).viewport,s=l.canvasToWorld(t[t.length-1]),c=l.canvasToWorld(n),d=Ti.vec3.create();Ti.vec3.subtract(d,c,s);var u=Math.abs(Ti.vec3.dot(d,o)),v=Math.abs(Ti.vec3.dot(d,a)),f=Math.max(Math.floor(u/i[0]),Math.floor(v/i[0]));if(f>1){var g=t[t.length-1],h=Ti.vec2.dist(g,n),p=Ti.vec2.create();Ti.vec2.subtract(p,n,g),Ti.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},Sl=function(e,t,n,r){var o=[e[0]-t[0],e[1]-t[1]],a=[n[0]-t[0],n[1]-t[1]],i=o[0]*a[0]+o[1]*a[1];if(i<0)return!1;var l=Math.sqrt(a[0]*a[0]+a[1]*a[1]);if(0===l)return!1;var s=i/l,c=[a[0]/l,a[1]/l],d=[c[0]*s,c[1]*s],u=[t[0]+d[0],t[1]+d[1]];return!(Ti.vec2.distance(e,u)>r||Ti.vec2.distance(t,u)>Ti.vec2.distance(t,n))};function xl(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 Ml(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=ni(e,2),r=n[0],o=n[1],a=ni(t,2),i=a[0],l=a[1];return Math.sqrt(Math.pow(r-i,2)+Math.pow(o-l,2))}var Rl=s(807),Nl=s.n(Rl);function kl(e,t,n,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,i=e.getCamera(),l=i.position,s=q.utilities.getTargetVolumeAndSpacingInNormalDir(e,i,n),c=s.spacingInNormalDirection,d=c*a,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];Nl().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],Al(h,u)){var w=e.getIntensityFromWorld(h),y=r(w,h);y&&(o=y)}}return o}var Pl,Al=function(e,t){var n=ni(t,6),r=n[0],o=n[1],a=n[2],i=n[3],l=n[4],s=n[5];return e[0]>r&&e[0]<o&&e[1]>a&&e[1]<i&&e[2]>l&&e[2]<s},Ll={filterAnnotationsWithinSlice:ji,getWorldWidthAndHeightFromCorners:Xi,filterAnnotationsForDisplay:Fi,getPointInLineOfSightWithCriteria:kl};function Ul(e){for(var t="",n=e[0]<0?"R":"L",r=e[1]<0?"A":"P",o=e[2]<0?"F":"H",a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],i=1e-4,l=0;l<3;l++)if(a[0]>i&&a[0]>a[1]&&a[0]>a[2])t+=n,a[0]=0;else if(a[1]>i&&a[1]>a[0]&&a[1]>a[2])t+=r,a[1]=0;else if(a[2]>i&&a[2]>a[0]&&a[2]>a[1])t+=o,a[2]=0;else if(a[0]>i&&a[1]>i&&a[0]===a[1])t+=n+r,a[0]=0,a[1]=0;else if(a[0]>i&&a[2]>i&&a[0]===a[2])t+=n+o,a[0]=0,a[2]=0;else{if(!(a[1]>i&&a[2]>i&&a[1]===a[2]))break;t+=r+o,a[1]=0,a[2]=0}return t}function Vl(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"}(Pl||(Pl={}));var Bl=Pl,jl={};function Fl(e,t){var n=(0,q.getEnabledElement)(e).viewportId;jl[n]=t}function Wl(e){var t=(0,q.getEnabledElement)(e).viewportId;return jl[t]}var Gl=q.utilities.triggerEvent;function ql(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,q.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var a=o.viewport;if(!(a instanceof q.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var i,l,s,c,d={targetImageIdIndex:a.getTargetImageIdIndex(),imageIds:a.getImageIds()},u=Wl(e);if(u?zl(u):(u={intervalId:void 0,framesPerSecond:30,lastFrameTimeStamp:void 0,ignoreFrameTimeVector:!1,usingFrameTimeVector:!1,frameTimeVector:null!==(i=t.frameTimeVector)&&void 0!==i?i:void 0,speed:null!==(l=t.frameTimeVectorSpeedMultiplier)&&void 0!==l?l:1,reverse:null!==(s=t.reverse)&&void 0!==s&&s,loop:null===(c=t.loop)||void 0===c||c},Fl(e,u)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(u.framesPerSecond=Number(t.framesPerSecond),u.reverse=u.framesPerSecond<0,u.ignoreFrameTimeVector=!0),!0!==u.ignoreFrameTimeVector&&u.frameTimeVector&&u.frameTimeVector.length===d.imageIds.length){var v=function(e,t){var n,r,o,a=0,i=e.length,l=[],s=!1;for(("number"!=typeof t||t<=0)&&(t=1),n=1;n<i;n++)o=Number(e[n])/t|0,l.push(o),1===n?r=o:o!==r&&(s=!0),a+=o;return l.length>0&&(o=s?a/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:s}}(u.frameTimeVector,u.speed),f=v.timeouts,g=v.isTimeVarying;n=f,r=g}var h=function(){var t=d.targetImageIdIndex,n=d.imageIds.length;if(u.reverse?t--:t++,u.loop||!(t<0||t>=n)){if(t>=n&&(t=0),t<0&&(t=n-1),t!==d.targetImageIdIndex){var r=t-d.targetImageIdIndex;a.scroll(r,!0,!0)}}else{zl(u);var o={element:e};Gl(e,Bl.CLIP_STOPPED,o)}};n&&n.length>0&&r?(u.usingFrameTimeVector=!0,u.intervalId=window.setTimeout((function e(){u.intervalId=window.setTimeout(e,n[d.targetImageIdIndex]),h()}),0)):(u.usingFrameTimeVector=!1,u.intervalId=window.setInterval(h,1e3/Math.abs(u.framesPerSecond)));var p={element:e};Gl(e,Bl.CLIP_STARTED,p)}function Hl(e){var t=Wl((0,q.getEnabledElement)(e).viewport.element);t&&zl(t)}function zl(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}var Kl={};function Yl(e){var t=(0,q.getEnabledElement)(e).viewportId;return Kl[t]}var $l,Zl=q.Enums.RequestType.Prefetch,Jl={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Xl(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 Ql(e){var t=(0,q.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof q.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function es(e){var t=Yl(e);if(t){var n=t||{},r=Ql(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&&q.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){Jl.preserveExistingPool||q.imageLoadPoolManager.clearRequestStack(Zl);for(var o,a,i,l,s,c,d=(o=n.indicesToRequest,a=r.currentImageIdIndex,i=0,l=o.length-1,o.forEach((function(e,t){e<a?i=Math.max(t,i):e>a&&(l=Math.min(t,l))})),{low:i,high:l}),u=d.low,v=d.high,f=[];u>=0||v<n.indicesToRequest.length;){var g=r.currentImageIdIndex,h=!(g-n.indicesToRequest[u]>Jl.maxImagesToPrefetch)&&u>=0,p=!(n.indicesToRequest[v]-g>Jl.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(c=n.indicesToRequest[u--],s=r.imageIds[c],f.push(s)),p&&(c=n.indicesToRequest[v++],s=r.imageIds[c],f.push(s))}var m=function(e,t){return q.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{scalingParameters:q.utilities.getScalingParameters(e)},requestType:Zl};q.imageLoadPoolManager.addRequest(m.bind(null,e,t),Zl,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function ts(e){return function(t){var n,r=t.detail;try{n=Ql(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var a=Yl(e);a&&a.data&&a.data.length&&a.indicesToRequest.push(o)}}}}function ns(e){clearTimeout($l),$l=setTimeout((function(){var t=e.target;try{es(t)}catch(e){return}}),10)}function rs(e){var t=Ql(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Xl(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,q.getEnabledElement)(e).viewportId;Kl[n]=t}(e,n),es(e),e.removeEventListener(q.Enums.Events.STACK_NEW_IMAGE,ns),e.addEventListener(q.Enums.Events.STACK_NEW_IMAGE,ns);var o=ts(e);q.eventTarget.removeEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),q.eventTarget.addEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function os(e){clearTimeout($l),e.removeEventListener(q.Enums.Events.STACK_NEW_IMAGE,ns);var t=ts(e);q.eventTarget.removeEventListener(q.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=Yl(e);n&&n.data.length&&(n.enabled=!1,q.imageLoadPoolManager.clearRequestStack(Zl))}function as(){return Jl}function is(e){Jl=e}var ls=function(e,t){var n=ya.getDefinedCursor(t,!0);n||(n=zo.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=zo.getDefinedCursor(t)),Oa(e,n)},ss=[].concat(Pn(ua),Pn($o)),cs=function(e,t,n){var r=ha("textBoxFontSize",e,t,n),o=ha("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},ds=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===et.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(!q.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)}))},us=function(e){ds(e),e.map((function(e){lt(J()(e))}))};function vs(){return(vs=Pr(Lr().mark((function e(t,n,r){var o,a;return Lr().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 fs(t,e,r)})),e.next=6,Promise.all(o);case 6:return a=e.sent,e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fs(e,t,n){return gs.apply(this,arguments)}function gs(){return(gs=Pr(Lr().mark((function e(t,n,r){var o;return Lr().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==et.Labelmap){e.next=6;break}return e.next=3,so.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 hs=function(e,t,n){return vs.apply(this,arguments)};function ps(e){var t=ot().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function ms(e,t){ot().setActiveSegmentationRepresentation(e,t),$e(e,t)}function ws(e,t){var n=at(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function ys(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=at(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),Ze(e)}function Es(e){var t=at(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function Is(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");q.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])),yt(e,t)}function bs(e,t,n){var r=ht(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!wt(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,$e(e,t)}function Cs(e,t,n){var r=ht(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return wt(r.colorLUTIndex)[n]}function _s(e,t,n){var r=st(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,$e(e,r.segmentationRepresentationUID))}))}function Ts(e,t){var n=st(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function Ds(e,t){var n=at(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,Ze(e))}function Os(e){var t=at(e);if(t)return t.activeSegmentIndex}var Ss=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,q.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,s=i.position,c=[s[0]-a[0],s[1]-a[1],s[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:c}),o.viewport.render()}}]),o}(Nr);$(Ss,"toolName","Pan");var xs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),a=o.getViewUp(),i=o.getFocalPoint(),l=o.getPosition(),s=[0,0,0],c=[0,0,0],d=[0,0,0],u=Ti.mat4.identity(new Float32Array(16));Ti.mat4.translate(u,u,t),Ti.mat4.rotate(u,u,r,n),Ti.mat4.translate(u,u,[-t[0],-t[1],-t[2]]),Ti.vec3.transformMat4(s,l,u),Ti.vec3.transformMat4(c,i,u),Ti.mat4.identity(u),Ti.mat4.rotate(u,u,r,n),Ti.vec3.transformMat4(d,a,u),e.setCamera({position:s,viewUp:d,focalPoint:c})})),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.lastPoints,a=r.canvas,i=o.canvas,l=this.configuration.rotateIncrementDegrees,s=(0,q.getEnabledElement)(n).viewport,c=s.getCamera(),d=n.clientWidth,u=n.clientHeight,v=[a[0]/d,a[1]/u],f=[i[0]/d,i[1]/u],g=[.5*d,.5*u],h=s.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];Nl().normalize(C);var _=[w[0],0,b];Nl().normalize(_);var T=Nl().dot(C,_);if(Math.abs(T)>1e-4){var D=-2*Math.acos(Nl().clampValue(T,-1,1))*Math.sign(v[0]-f[0])*l,O=c.viewUp;Nl().normalize(O),this.rotateCamera(s,h,O,D);var S=(f[1]-v[1])*l,x=c.viewPlaneNormal,M=c.viewUp,R=[0,0,0];Nl().cross(M,x,R),Nl().normalize(R),this.rotateCamera(s,h,R,S),s.render()}}}]),o}(Nr);function Ms(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 Rs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ms(Object(n),!0).forEach((function(t){$(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ms(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}$(xs,"toolName","TrackballRotate");var Ns=q.utilities.transformWorldToIndex,ks=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"editData",void 0),$(mr(e),"eventDispatchDetail",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a)]},cachedStats:{}}};Ve(o,f);var g=Vi(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),xa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation;o.highlighted=!1;var l=(0,q.getEnabledElement)(n),s=l.renderingEngine,c=l.viewportId;if(e.eventDispatchDetail={viewportId:c,renderingEngineId:s.id},e._deactivateModify(n),Sa(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(s,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=e.editData,l=i.annotation,s=i.viewportIdsToRender;l.data.handles.points[0]=Pn(a),l.invalidated=!0;var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=i.worldToCanvas(p);u.annotationUID=g;var w=e.getStyle("color",u,f);if(h.cachedStats[c]?f.invalidated&&(e._calculateCachedStats(f,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,index:null,value:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;Ya(n,g,"0",[m],{color:w}),a=!0;var y=e._getTextLines(h,c);if(y){var E=[m[0]+6,m[1]-6];ti(n,g,"0",y,[E[0],E[1]],e.getLinkedTextBoxStyle(u,f))}}return a})),e}return Y(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data.handles.points[0],i=o.worldToCanvas(a);if(!0==Ti.vec2.distance(n,i)<r)return a}},{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element;t.highlighted=!0;var o=Vi(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:o},this._activateModify(r),xa(r);var a=(0,q.getEnabledElement)(r).renderingEngine;vr(a,o),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.index,o=n.Modality,a=n.value,i=n.SUVBw,l=n.SUVLbm,s=n.SUVBsa;if(void 0!==a||void 0!==i){var c=[];return c.push("(".concat(r[0],", ").concat(r[1],", ").concat(r[2],")")),"PT"===o?a?c.push("".concat(a.toFixed(2)," SUV")):(c.push("".concat(i.toFixed(2)," SUV bw")),l&&c.push("".concat(l.toFixed(2)," SUV lbm")),s&&c.push("".concat(s.toFixed(2)," SUV bsa"))):"CT"===o?c.push("".concat(a.toFixed(2)," HU")):c.push("".concat(a.toFixed(2)," MO")),c}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if("PT"===n)if(t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,a=o.suvbwToSuvlbm,i=o.suvbwToSuvbsa;if(r.SUVBw=e,a){var l=e*a;r.SUVLbm=l}if(a){var s=e*i;r.SUVBsa=s}}else r.value=e;else r.value=e;return r}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.cachedStats,s=Object.keys(l),c=0;c<s.length;c++){var d=s[c],u=this.getTargetIdImage(d,t),v=u.dimensions,f=u.scalarData,g=u.imageData,h=u.metadata.Modality,p=Ns(g,i);if(p[0]=Math.round(p[0]),p[1]=Math.round(p[1]),p[2]=Math.round(p[2]),q.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]];d.startsWith("imageId:")&&function(){var e=(0,q.getRenderingEngine)(a).getStackViewports(),t=d.split("imageId:")[1],n=e.find((function(e){return e.hasImageId(t)}));p[2]=n.getCurrentImageIdIndex()}();var E=this._getValueForModality(y,u,h);l[d]=Rs(Rs({index:p},E),{},{Modality:h})}else this.isHandleOutsideImage=!0,l[d]={index:p,Modality:h};e.invalidated=!1;var I=H.ANNOTATION_MODIFIED,b={annotation:e,viewportId:o,renderingEngineId:a};(0,q.triggerEvent)(q.eventTarget,I,b)}return l}}]),o}(zi);$(ks,"toolName","Probe");var Ps=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"editData",void 0),$(mr(e),"eventDispatchDetail",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Pn(a)]},cachedStats:{}}},g=Vi(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),xa(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var a=e.getTargetId(o),i=o.getRenderingEngine(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,c=s.annotationUID,d=s.data,u=d.handles.points[0],v=o.worldToCanvas(u);l.annotationUID=c;var f=e.getStyle("color",l,s);if(d.cachedStats[a]?s.invalidated&&e._calculateCachedStats(s,i,t):(d.cachedStats[a]={Modality:null,index:null,value:null},e._calculateCachedStats(s,i,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;Ya(n,c,"0",[v],{color:f}),r=!0;var g=e._getTextLines(d,a);if(g){var h=[v[0]+6,v[1]-6];ti(n,c,"0",g,[h[0],h[1]],e.getLinkedTextBoxStyle(l,s))}return r})),e}return Y(o)}(ks);$(Ps,"toolName","DragProbe");var As=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_getImageDynamicRangeFromMiddleSlice",(function(t,n){var r,o,a=Math.floor(n[2]/2),i=n[0]*n[1];t instanceof Float32Array?(r=4,o=Float32Array):t instanceof Uint8Array&&(r=1,o=Uint8Array);var l=new o(t.buffer,a*i*r,i),s=e._getMinMax(l,i);return s.max-s.min})),e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t,n,r,o,a,i,l,s=e.detail,c=s.element,d=s.deltaPoints,u=(0,q.getEnabledElement)(c),v=u.renderingEngine,f=u.viewportId,g=u.viewport,h=!1;if(g instanceof q.VolumeViewport){t=this.getTargetId(g).split("volumeId:")[1],o=g.getActor(t).actor.getProperty().getRGBTransferFunction(0),l=q.utilities.getVolumeViewportsContainingVolumeId(t,v.id);var p=ni(o.getRange(),2);n=p[0],r=p[1];var m=q.cache.getVolume(t);a=m.metadata.Modality,h=m.scaling&&Object.keys(m.scaling).length>0}else{if(!(g instanceof q.StackViewport))throw new Error("Viewport is not a valid type");var w=g.getProperties();a=g.modality;var y=w.voiRange;n=y.lower,r=y.upper,h=g.isImagePreScaled(g.getCurrentImageId())}var E={volumeId:t,viewportId:f,range:i="PT"===a&&h?this.getPTNewRange({deltaPointsCanvas:d.canvas,lower:n,upper:r,clientHeight:c.clientHeight}):this.getNewRange({viewport:g,deltaPointsCanvas:d.canvas,volumeId:t,lower:n,upper:r})};if(g instanceof q.StackViewport)return g.setProperties({voiRange:i}),void g.render();(0,q.triggerEvent)(c,q.Enums.Events.VOI_MODIFIED,E),o.setRange(i.lower,i.upper),l.forEach((function(e){e.render()}))}},{key:"getPTNewRange",value:function(e){var t=e.deltaPointsCanvas,n=e.lower,r=e.upper,o=e.clientHeight;return r-=t[1]*(5/o),{lower:n,upper:r=Math.max(r,.1)}}},{key:"getNewRange",value:function(e){var t=e.viewport,n=e.deltaPointsCanvas,r=e.volumeId,o=e.lower,a=e.upper,i=this._getMultiplierFromDynamicRange(t,r)||4,l=n[0]*i,s=n[1]*i,c=q.utilities.windowLevel.toWindowLevel(o,a),d=c.windowWidth,u=c.windowCenter;return d+=l,u+=s,d=Math.max(d,1),q.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=q.cache.getVolume(t),o=r.dimensions,a=r.scalarData;n=this._getImageDynamicRangeFromMiddleSlice(a,o)}else n=this._getImageDynamicRangeFromViewport(e);var i=n/1024,l=4;return i>1&&(l=Math.round(i)),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 a=this._getMinMax(t,t.length);n=[a.min,a.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 a=e[o];a<n&&(n=a),a>r&&(r=a)}return{max:r,min:n}}}]),o}(Nr);$(As,"toolName","WindowLevel");var Ls=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"initialMousePosWorld",void 0),$(mr(e),"dirVec",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o).viewport.getCamera().focalPoint;e.initialMousePosWorld=a;var l=Ti.vec3.fromValues(i[0]-a[0],i[1]-a[1],i[2]-a[2]);return l=Ti.vec3.normalize(Ti.vec3.create(),l),e.dirVec=l,!0})),$(mr(e),"_dragParallelProjection",(function(t,n,r){var o=t.detail,a=o.element,i=o.deltaPoints,l=[a.clientWidth,a.clientHeight],s=r.parallelScale,c=r.focalPoint,d=r.position,u=1.5/l[1],v=i.canvas[1],f=(1-v*u)*s,g=c,h=d;if(!e.configuration.zoomToCenter){var p=Ti.vec3.distance(c,e.initialMousePosWorld),m=v*(5/l[1]);f=(1-m)*s,h=Ti.vec3.scaleAndAdd(Ti.vec3.create(),d,e.dirVec,-p*m),g=Ti.vec3.scaleAndAdd(Ti.vec3.create(),c,e.dirVec,-p*m)}var w=n.getImageData().spacing,y=e.configuration,E=y.minZoomScale,I=y.maxZoomScale,b=a.clientHeight*w[1]*.5,C=b/f,_=f,T=!1;C<E?(_=b/E,T=!0):C>=I&&(_=b/I,T=!0),n.setCamera({parallelScale:_,focalPoint:T?c:g,position:T?d:h})})),$(mr(e),"_dragPerspectiveProjection",(function(e,t,n){var r=e.detail,o=r.element,a=r.deltaPoints,i=[o.clientWidth,o.clientHeight],l=n.position,s=n.focalPoint,c=n.viewPlaneNormal,d=Nl().distance2BetweenPoints(l,s),u=Math.sqrt(d)/i[1],v=[-c[0],-c[1],-c[2]],f=a.canvas[1]*u,g=f*v[0];l[0]+=g,s[0]+=g,g=f*v[1],l[1]+=g,s[1]+=g,g=f*v[2],l[2]+=g,s[2]+=g,t.setCamera({position:l,focalPoint:s})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}}]),o}(Nr);$(Ls,"toolName","Zoom");var Us=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"deltaY",void 0),$(mr(e),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),e.deltaY=1,e.touchDragCallback=e._dragCallback.bind(mr(e)),e.mouseDragCallback=e._dragCallback.bind(mr(e)),e}return Y(o,[{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,a=n.renderingEngineId,i=(0,q.getEnabledElementByIds)(o,a).viewport,l=this.getTargetId(i),s=this.configuration.debounceIfNotLoaded,c=r.canvas[1];i instanceof q.VolumeViewport&&(t=l.split("volumeId:")[1]);var d=this._getPixelPerImage(i),u=c+this.deltaY;d&&(Math.abs(u)>=d?(yi(i,{delta:Math.round(u/d),volumeId:t,debounceLoading:s}),this.deltaY=u%d):this.deltaY=u)}},{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 q.VolumeViewport?q.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof q.StackViewport?e.getImageIds().length:void 0}}]),o}(Nr);$(Us,"toolName","StackScroll");var Vs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_configuration",void 0),e}return Y(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.wheel,r=t.element,o=n.direction,a=this.configuration.invert,i=(0,q.getEnabledElement)(r).viewport,l=o*(a?-1:1);if(i instanceof q.StackViewport)i.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(i instanceof q.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");Ei(i,this.getTargetId(i).split("volumeId:")[1],l)}}}]),o}(Nr);$(Vs,"toolName","StackScrollMouseWheel");var Bs={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},js=function(e){yr(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 Ir(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:Bs.Z,rotateIncrementDegrees:.5}};return z(this,o),$(mr(e=r.call(this,t,n)),"_configuration",void 0),e}return Y(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,q.getEnabledElement)(n).viewport,a=this.configuration,i=a.direction,l=a.rotateIncrementDegrees,s=o.getCamera(),c=s.viewUp,d=s.position,u=s.focalPoint,v=r.direction,f=ni(u,3),g=f[0],h=f[1],p=f[2],m=ni(i,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=Ti.mat4.identity(new Float32Array(16));Ti.mat4.translate(T,T,[g,h,p]),Ti.mat4.rotate(T,T,I,[w,y,E]),Ti.mat4.translate(T,T,[-g,-h,-p]),Ti.vec3.transformMat4(b,d,T),Ti.vec3.transformMat4(C,u,T),Ti.mat4.identity(T),Ti.mat4.rotate(T,T,I,[w,y,E]),Ti.vec3.transformMat4(_,c,T),o.setCamera({position:b,viewUp:_,focalPoint:C}),o.render()}}]),o}(Nr);$(js,"toolName","VolumeRotateMouseWheel");var Fs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"_bounds",void 0),e}return Y(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,q.getEnabledElement)(n),a=o.viewport,i=o.renderingEngine,l=this.getTargetId(a);if(!l.startsWith("volumeId"))throw new Error("MIPJumpToClickTool: targetId is not a volumeId, you should only use MIPJumpToClickTool with a volumeId as the targetId");var s=l.split("volumeId:")[1],c=-1/0,d=kl(a,r.world,s,(function(e,t){if(e>c)return c=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=i.getViewport(e);t instanceof q.VolumeViewport?function(e,t){if(e instanceof q.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];Ti.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=Ti.vec3.dot(t,r),a=Ti.vec3.fromValues(r[0],r[1],r[2]);if(Ti.vec3.scale(a,a,o),Math.abs(a[0])>.001||Math.abs(a[1])>.001||Math.abs(a[2])>.001){var i=[0,0,0],l=[0,0,0];Ti.vec3.add(i,n.focalPoint,a),Ti.vec3.add(l,n.position,a),e.setCamera({focalPoint:i,position:l}),e.render()}}(e,r)}}(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(Nr);$(Fs,"toolName","MIPJumpToClickTool");var Ws=q.utilities.transformWorldToIndex,Gs=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;xa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Pn(a),Pn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ve(o,f);var g=Vi(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,g),f})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ni(t.data.handles.points,2),i=a[0],l=a[1],s=o.worldToCanvas(i),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return $i([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),xa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[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 i.worldToCanvas(e)})),C=void 0;if(h.cachedStats[c]&&void 0!==h.cachedStats[c].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[c]={length:null,unit:null},e._calculateCachedStats(f,d,t)),Te(g)){if(ne(f)||e.editData||null===w||(C=[b[w]]),C&&Ya(n,g,"0",b,{color:I,lineDash:E,lineWidth:y}),$a(n,g,"1",b[0],b[1],{color:I,width:y,lineDash:E}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=e._getTextLines(h,c);if(!h.handles.textBox.hasMoved){var T=Ji(b);h.handles.textBox.worldPosition=i.canvasToWorld(T)}var D=i.worldToCanvas(h.handles.textBox.worldPosition),O=ii(n,g,"1",_,D,b,{},e.getLinkedTextBoxStyle(u,f)),S=O.x,x=O.y,M=O.width,R=O.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([S,x]),topRight:i.canvasToWorld([S+M,x]),bottomLeft:i.canvasToWorld([S,x+R]),bottomRight:i.canvasToWorld([S+M,x+R])}}}return a})),e._throttledCalculateCachedStats=hi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Vi(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),xa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(void 0!==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,a=n.renderingEngineId,i=r.handles.points[0],l=r.handles.points[1],s=r.cachedStats,c=Object.keys(s),d=0;d<c.length;d++){var u=c[d],v=this.getTargetIdImage(u,t),f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(i,l),m=Ws(f,i),w=Ws(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,s[u]={length:p,unit:h?"mm":"px"}}e.invalidated=!1;var y=H.ANNOTATION_MODIFIED,E={annotation:e,viewportId:o,renderingEngineId:a};return(0,q.triggerEvent)(q.eventTarget,y,E),s}},{key:"_isInsideVolume",value:function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)}}]),o}(zi);$(Gs,"toolName","Length");var qs=Gs,Hs=s(847),zs=s.n(Hs);var Ks=q.CONSTANTS.RENDERING_DEFAULTS,Ys=gl;function $s(){return"rgb(0, 200, 0)"}function Zs(){return!0}function Js(){return!0}function Xs(){return!0}var Qs=.001,ec=function(e){yr(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 Ir(this,e)});function o(){var e,t,n,a,i,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:q.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return z(this,o),$(mr(i=r.call(this,l,s)),"toolCenter",[0,0,0]),$(mr(i),"_getReferenceLineColor",void 0),$(mr(i),"_getReferenceLineControllable",void 0),$(mr(i),"_getReferenceLineDraggableRotatable",void 0),$(mr(i),"_getReferenceLineSlabThicknessControlsOn",void 0),$(mr(i),"editData",void 0),$(mr(i),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,q.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,a=r.viewport,l=a.element,s=a.getCamera(),c=s.position,d=s.focalPoint,u=s.viewPlaneNormal,v=Ue(l,i.getToolName());(v=i.filterInteractableAnnotationsForElement(l,v)).length&&Be(v[0].annotationUID,l);var f={highlighted:!1,metadata:{cameraPosition:Pn(c),cameraFocalPoint:Pn(d),FrameOfReferenceUID:o,toolName:i.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:i.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}};return Sa(l),Ve(l,f),{normal:u,point:a.canvasToWorld([a.canvas.clientWidth/2,a.canvas.clientHeight/2])}})),$(mr(i),"init",(function(){var e=pr(i.toolGroupId).viewportsInfo;if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=ni(e,3),n=t[0],r=t[1],o=t[2],a=i.initializeViewport(n),l=a.normal,s=a.point,c=i.initializeViewport(r),d=c.normal,u=c.point,v=[0,0,0],f=Ti.vec3.create();if(o){var g=i.initializeViewport(o);v=g.normal,f=g.point}else Ti.vec3.add(f,s,u),Ti.vec3.scale(f,f,.5),Ti.vec3.cross(v,l,d);var h=q.utilities.planar.planeEquation(l,s),p=q.utilities.planar.planeEquation(d,u),m=q.utilities.planar.planeEquation(v,f);i.toolCenter=q.utilities.planar.threePlaneIntersection(h,p,m)})),$(mr(i),"addNewAnnotation",(function(e,t){var n=e.detail,r=n.element,o=n.currentPoints.world,a=(0,q.getEnabledElement)(r),l=a.viewport;i._jump(a,o);for(var s=Ue(r,i.getToolName()),c=i.filterInteractableAnnotationsForElement(l.element,s),d=c[0].data,u=d.handles.rotationPoints,v=[],f=0;f<u.length-1;++f){var g=u[f][1],h=i._getReferenceLineControllable(g.id),p=i._getReferenceLineDraggableRotatable(g.id);h&&p&&(v.push(g.id),f++)}return d.activeViewportIds=[].concat(v),d.handles.activeOperation=1,e.preventDefault(),xa(r),i._activateModify(r),c[0]})),$(mr(i),"cancel",(function(){console.log("Not implemented yet")})),$(mr(i),"handleSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),xa(r),e.preventDefault()})),$(mr(i),"isPointNearTool",(function(e,t,n,r){return!!i._pointNearTool(e,t,n,6)})),$(mr(i),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),xa(r),e.preventDefault()})),$(mr(i),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,q.getEnabledElement)(n),o=r.renderingEngine,a=r.viewport,l=Vi(n,i.getToolName(),!1),s=Ue(n,i.getToolName()),c=i.filterInteractableAnnotationsForElement(n,s)[0];if(c){var d=a.getCamera(),u=c.metadata.cameraPosition,v=[0,0,0];Nl().subtract(d.position,u,v);var f=c.metadata.cameraFocalPoint,g=[0,0,0];Nl().subtract(d.focalPoint,f,g),c.metadata.cameraPosition=Pn(d.position),c.metadata.cameraFocalPoint=Pn(d.focalPoint);var h=i._getReferenceLineControllable(a.id),p=i._getReferenceLineDraggableRotatable(a.id);if(!q.utilities.isEqual(d.position,u,.001)&&h&&p){var m=!0;q.utilities.isEqual(v,g,.001)||(m=!1),m&&Math.abs(Nl().dot(v,d.viewPlaneNormal))>.01&&(i.toolCenter[0]+=v[0],i.toolCenter[1]+=v[1],i.toolCenter[2]+=v[2])}null!==(t=i.configuration.autoPan)&&void 0!==t&&t.enabled&&sn(a.id,o.id).getViewportIds().filter((function(e){return e!==a.id})).forEach((function(e){i._autoPanViewportIfNecessary(e,o)})),vr(o,l)}})),$(mr(i),"mouseMoveCallback",(function(e,t){for(var n=e.detail,r=n.element,o=n.currentPoints.canvas,a=!1,l=0;l<t.length;l++){var s=t[l];if(!ne(s)){var c=s.data,d=s.highlighted;if(c.handles){var u=c.handles.activeOperation,v=c.activeViewportIds&&c.activeViewportIds.length>0?Pn(c.activeViewportIds):[];c.activeViewportIds=[],c.handles.activeOperation=null;var f;(f=!!i.getHandleNearImagePoint(r,s,o,6)||i._pointNearTool(r,s,o,6))&&!d||!f&&d?(s.highlighted=!d,a=!0):c.handles.activeOperation===u&&i._areViewportIdArraysEqual(c.activeViewportIds,v)||(a=!0)}}}return a})),$(mr(i),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,q.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),$(mr(i),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,a=r.element,l=Ue(a,i.getToolName()),s=r.getCamera(),c=i.filterInteractableAnnotationsForElement(a,l)[0];if(!l||!c||!c.data)return n;var d=c.annotationUID,u=r.canvas,v=u.clientWidth,f=u.clientHeight,g=Math.sqrt(v*v+f*f),h=c.data,p=r.worldToCanvas(i.toolCenter),m=i._filterAnnotationsByUniqueViewportOrientations(e,l),w=[];m.forEach((function(e){var t=e.data;t.handles.toolCenter=i.toolCenter;var n=o.getViewport(t.viewportId),a=n.getCamera(),l=i._getReferenceLineControllable(n.id),c=i._getReferenceLineDraggableRotatable(n.id),d=i._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];Nl().cross(s.viewPlaneNormal,a.viewPlaneNormal,I),Nl().normalize(I),Nl().multiplyScalar(I,h);var b=[0,0,0];Nl().add(E,I,b);var C=[0,0,0];Nl().subtract(E,I,C);var _=[0,0,v,f],T=r.worldToCanvas(b),D=r.worldToCanvas(E),O=Ti.vec2.create();Ti.vec2.subtract(O,T,D),Ti.vec2.normalize(O,O);var S=Ti.vec2.create();Ti.vec2.scale(S,O,100*g);var x=Ti.vec2.create();Ti.vec2.scale(x,O,.25*g);var M=Ti.vec2.create();Ti.vec2.scale(M,O,.15*g);var R=Ti.vec2.create();Ti.vec2.scale(R,O,2===m.length?.04*g:0);var N=Ti.vec2.create(),k=Ti.vec2.create(),P=Ti.vec2.create(),A=Ti.vec2.create(),L=Ti.vec2.clone(p);c&&l||(L=Ti.vec2.clone(D)),Ti.vec2.add(N,L,R),Ti.vec2.add(k,L,S),Ti.vec2.subtract(P,L,R),Ti.vec2.subtract(A,L,S),Ys(N,k,_),Ys(P,A,_);var U=Ti.vec2.create();Ti.vec2.subtract(U,p,x);var V=Ti.vec2.create();Ti.vec2.add(V,p,x);var B=Ti.vec2.clone(p);!c&&d&&(B=Ti.vec2.clone(D));var j=Pn(i.toolCenter);!c&&d&&(j=Pn(E));var F=[0,0,0];Nl().subtract(b,C,F),Nl().normalize(F);var W=s.viewPlaneNormal,G=zs().buildFromDegree().rotate(90,W).matrix,q=[0,0,0];Ti.vec3.transformMat4(q,F,G);var H=n.getSlabThickness(),z=[].concat(q);Nl().multiplyScalar(z,H);var K=[0,0,0];Nl().add(j,z,K);var Y=r.worldToCanvas(K),$=Ti.vec2.create();Ti.vec2.subtract($,B,Y);var Z=Ti.vec2.create();Ti.vec2.subtract(Z,B,S),Ti.vec2.add(Z,Z,$);var J=Ti.vec2.create();Ti.vec2.add(J,B,S),Ti.vec2.add(J,J,$),Ys(Z,J,_);var X=Ti.vec2.create();Ti.vec2.add(X,B,S),Ti.vec2.subtract(X,X,$);var Q=Ti.vec2.create();Ti.vec2.subtract(Q,B,S),Ti.vec2.subtract(Q,Q,$),Ys(X,Q,_);var ee=Ti.vec2.create(),te=Ti.vec2.create(),ne=Ti.vec2.create(),re=Ti.vec2.create();Ti.vec2.subtract(ee,B,M),Ti.vec2.add(ee,ee,$),Ti.vec2.add(te,B,M),Ti.vec2.add(te,te,$),Ti.vec2.subtract(ne,B,M),Ti.vec2.subtract(ne,ne,$),Ti.vec2.add(re,B,M),Ti.vec2.subtract(re,re,$),w.push([n,N,k,P,A,Z,J,X,Q,U,V,ee,te,ne,re])}));var y=[],E=[],I=i._getReferenceLineColor(r.id),b=void 0!==I?I:"rgb(200, 200, 200)";return w.forEach((function(e,n){var o=e[0],a=i._getReferenceLineColor(o.id),l=i._getReferenceLineControllable(o.id),s=i._getReferenceLineDraggableRotatable(o.id),c=i._getReferenceLineSlabThicknessControlsOn(o.id),u=h.activeViewportIds.find((function(e){return e===o.id})),v=void 0!==a?a:"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&&s?(p="".concat(n,"One"),$a(t,d,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),$a(t,d,p,e[3],e[4],{color:v,lineWidth:f})):$a(t,d,p,e[2],e[4],{color:v,lineWidth:f}),l){v=void 0!==a?a:"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]],O=[r.canvasToWorld(e[13]),o,e[7],e[8]],S=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(E.push(T,D,O,S),g&&!m&&!C&&s&&c){var x="".concat(n,"One");Ya(t,d,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),Ya(t,d,x,_,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&s){var M="".concat(n);Ya(t,d,M,w,{color:v,handleRadius:3,type:"circle"})}else if(u&&!m&&!C&&c){var R="".concat(n);Ya(t,d,R,_,{color:v,handleRadius:3,type:"rect"})}else if(m&&s){var N="".concat(n);Ya(t,d,N,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&c&&Ya(t,d,p,_,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&c&&(p="".concat(n,"STOne"),$a(t,d,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),$a(t,d,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=y,h.handles.slabThicknessPoints=E,i.configuration.viewportIndicators&&za(t,d,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),$(mr(i),"_areViewportIdArraysEqual",(function(e,t){return e.length===t.length&&(e.forEach((function(e){for(var n=!1,r=0;r<t.length;++r)if(e===t[r]){n=!0;break}if(!1===n)return!1})),!0)})),$(mr(i),"_getAnnotationsForViewportsWithDifferentCameras",(function(e,t){var n=e.viewportId,r=e.renderingEngine,o=e.viewport,a=t.filter((function(e){return e.data.viewportId!==n}));if(!a||!a.length)return[];var i=o.getCamera(),l=i.viewPlaneNormal,s=i.position,c=a.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(q.utilities.isEqual(n.viewPlaneNormal,l,.01)&&q.utilities.isEqual(n.position,s,1))}));return c})),$(mr(i),"_filterViewportWithSameOrientation",(function(e,t,n){var r=e.renderingEngine,o=t.data,a=r.getViewport(o.viewportId),l=n.filter((function(e){var t=e.data,n=r.getViewport(t.viewportId);return!0===i._getReferenceLineControllable(n.id)}));if(!l||!l.length)return[];var s=a.getCamera(),c=s.viewPlaneNormal;return Nl().normalize(c),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return Nl().normalize(o),q.utilities.isEqual(c,o,.01)&&q.utilities.isEqual(s.viewUp,n.viewUp,.01)}))})),$(mr(i),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;Nl().normalize(o);for(var a=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0===a})),l=[],s=0;s<a.length;++s){var c=a[s],d=c.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(Nl().normalize(v),!q.utilities.isEqual(o,v,.01)&&!q.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();q.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&q.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(c)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0!==a})),w=0;w<m.length;++w){var y=m[w],E=y.data.viewportId,I=n.getViewport(E).getCamera(),b=I.viewPlaneNormal;if(Nl().normalize(b),!q.utilities.isEqual(o,b,.01)&&!q.utilities.isOpposite(o,b,.01)){for(var C=!1,_=0;_<l.length;++_){var T=l[_].data.viewportId,D=n.getViewport(T).getCamera();q.utilities.isEqual(D.viewPlaneNormal,I.viewPlaneNormal,.01)&&q.utilities.isEqual(D.position,I.position,1)&&(C=!0)}C||l.push(y)}}for(var O=i._getAnnotationsForViewportsWithDifferentCameras(e,t),S=function(e){var t=O[e];if(!0===l.find((function(e){return e===t})))return"continue";var r=t.data.viewportId,a=n.getViewport(r).getCamera(),i=a.viewPlaneNormal;if(Nl().normalize(i),q.utilities.isEqual(o,i,.01)||q.utilities.isOpposite(o,i,.01))return"continue";for(var s=!1,c=0;c<l.length;++c){var d=l[c].data.viewportId,u=n.getViewport(d).getCamera();q.utilities.isEqual(u.viewPlaneNormal,a.viewPlaneNormal,.01)&&q.utilities.isEqual(u.position,a.position,1)&&(s=!0)}s||l.push(t)},x=0;x<O.length;++x)S(x);return l})),$(mr(i),"_checkIfViewportsRenderingSameScene",(function(e,t){var n=e.getActors(),r=t.getActors(),o=!0;return n.forEach((function(e){n.length===r.length&&void 0!==r.find((function(t){return t.uid===e.uid}))||(o=!1)})),o})),$(mr(i),"_jump",(function(e,t){tn.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=Ue(n.element,i.getToolName()),a=[0,0,0];Nl().subtract(t,i.toolCenter,a);var l=i._getAnnotationsForViewportsWithDifferentCameras(e,o).filter((function(e){var t=e.data,o=r.getViewport(t.viewportId),a=i._checkIfViewportsRenderingSameScene(n,o);return i._getReferenceLineControllable(o.id)&&i._getReferenceLineDraggableRotatable(o.id)&&a}));return 0===l.length?(tn.isInteractingWithTool=!1,!1):(i._applyDeltaShiftToSelectedViewportCameras(r,l,a),tn.isInteractingWithTool=!1,!0)})),$(mr(i),"_activateModify",(function(e){tn.isInteractingWithTool=!0,e.addEventListener(H.MOUSE_UP,i._mouseUpCallback),e.addEventListener(H.MOUSE_DRAG,i._mouseDragCallback),e.addEventListener(H.MOUSE_CLICK,i._mouseUpCallback)})),$(mr(i),"_deactivateModify",(function(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,i._mouseUpCallback),e.removeEventListener(H.MOUSE_DRAG,i._mouseDragCallback),e.removeEventListener(H.MOUSE_CLICK,i._mouseUpCallback)})),$(mr(i),"_mouseUpCallback",(function(e){var t=e.detail.element;i.editData.annotation.highlighted=!1,i.editData.annotation.data.handles.activeOperation=null,i.editData.annotation.data.activeViewportIds=[],i._deactivateModify(t),Sa(t),i.editData=null;var n=(0,q.getEnabledElement)(t).renderingEngine,r=Vi(t,i.getToolName(),!1);vr(n,r)})),$(mr(i),"_mouseDragCallback",(function(e){var t=e.detail,n=t.deltaPoints.world;if(!(Math.abs(n[0])<.001&&Math.abs(n[1])<.001&&Math.abs(n[2])<.001)){var r=t.element,o=(0,q.getEnabledElement)(r),a=o.renderingEngine,l=o.viewport,s=Ue(r,i.getToolName()),c=i.filterInteractableAnnotationsForElement(r,s)[0];if(c){var d=c.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o&&c.data.activeViewportIds.find((function(e){return e===n.id}))}));i._applyDeltaShiftToSelectedViewportCameras(a,v,n)}else if(2===d.activeOperation){var f=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineDraggableRotatable(n.id);return!0===r&&!0===o})),g=Ti.vec2.create(),h=Ti.vec2.create(),p=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,y=Ti.vec2.create();Ti.vec2.sub(y,w,t.deltaPoints.canvas),Ti.vec2.sub(g,y,m),Ti.vec2.sub(h,w,m);var E=Ti.vec2.angle(g,h);i._isClockWise(m,y,w)&&(E*=-1),E=Math.round(100*E)/100;var I=l.getCamera().viewPlaneNormal,b=zs().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=a.getViewport(t.viewportId),r=n.getCamera(),o=r.viewUp,i=r.position,l=r.focalPoint;o[0]+=i[0],o[1]+=i[1],o[2]+=i[2],Ti.vec3.transformMat4(l,l,b),Ti.vec3.transformMat4(i,i,b),Ti.vec3.transformMat4(o,o,b),o[0]-=i[0],o[1]-=i[1],o[2]-=i[2],n.setCamera({position:i,viewUp:o,focalPoint:l}),C.push(n.id)})),a.renderViewports(C)}else if(3===d.activeOperation){var _=i._getAnnotationsForViewportsWithDifferentCameras(o,s).filter((function(e){var t=e.data,n=a.getViewport(t.viewportId),r=i._getReferenceLineControllable(n.id),o=i._getReferenceLineSlabThicknessControlsOn(n.id);return!0===r&&!0===o&&c.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===_.length)return;var T=i._filterViewportWithSameOrientation(o,_[0],s),D=[];D.push(l.id),T.forEach((function(e){var r=e.data,o=a.getViewport(r.viewportId),s=o.getCamera().viewPlaneNormal,d=Nl().dot(n,s),v=Pn(s);if(Nl().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=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]];if(!i._getReferenceLineDraggableRotatable(o.id)){var m=i.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]);Nl().add(w,y,p),Nl().multiplyScalar(p,.5)}}Nl().subtract(g,p,h);var E=Nl().dot(h,s),I=Pn(s);Nl().multiplyScalar(I,E);var b=[I[0],I[1],I[2]];Ti.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];Ti.vec3.normalize(C,C);var _=o.getSlabThickness();q.utilities.isOpposite(b,C,.001)?_-=f:_+=f,_=Math.abs(_),_=Math.max(Ks.MINIMUM_SLAB_THICKNESS,_),i._pointNearReferenceLine(c,u,6,o)&&(_=Ks.MINIMUM_SLAB_THICKNESS),sn(o.id,a.id).getToolInstance(i.getToolName()).setSlabThickness(o,_),D.push(o.id)}})),a.renderViewports(D)}}}})),$(mr(i),"_pointNearReferenceLine",(function(e,t,n,r){for(var o=e.data.handles.rotationPoints,a=0;a<o.length-1;++a){var l=o[a][1];if(l.id===r.id&&i._getReferenceLineControllable(l.id)){var s={start:{x:o[a][2][0],y:o[a][2][1]},end:{x:o[a][3][0],y:o[a][3][1]}},c=$i([s.start.x,s.start.y],[s.end.x,s.end.y],[t[0],t[1]]),d={start:{x:o[a+1][2][0],y:o[a+1][2][1]},end:{x:o[a+1][3][0],y:o[a+1][3][1]}},u=$i([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(c<=n||u<=n)return!0;a++}}return!1})),i._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||$s,i._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Zs,i._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Js,i._getReferenceLineSlabThicknessControlsOn=(null===(a=l.configuration)||void 0===a?void 0:a.getReferenceLineSlabThicknessControlsOn)||Xs,i}return Y(o,[{key:"onSetToolActive",value:function(){this.init()}},{key:"onSetToolPassive",value:function(){this.init()}},{key:"onSetToolEnabled",value:function(){this.init()}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=this._getRotationHandleNearImagePoint(o,t,n,r);return null!==a||null!==(a=this._getSlabThicknessHandleNearImagePoint(o,t,n,r))?a:void 0}},{key:"_autoPanViewportIfNecessary",value:function(e,t){var n,r=t.getViewport(e),o=r.canvas,a=o.clientWidth,i=o.clientHeight,l=r.canvasToWorld([0,0]),s=r.canvasToWorld([a,i]),c=r.canvasToWorld([a,0]),d=r.canvasToWorld([0,i]),u=Math.min(l[0],s[0],c[0],d[0]),v=Math.max(l[0],s[0],c[0],d[0]),f=Math.min(l[1],s[1],c[1],d[1]),g=Math.max(l[1],s[1],c[1],d[1]),h=Math.min(l[2],s[2],c[2],d[2]),p=Math.max(l[2],s[2],c[2],d[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-Qs)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+Qs)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-Qs)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+Qs)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-Qs)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+Qs))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===Ks.MINIMUM_SLAB_THICKNESS&&(o=q.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),a=o.getCamera(),i=a.viewPlaneNormal,l=Nl().dot(n,i),s=Pn(i);if(Nl().multiplyScalar(s,l),Math.abs(s[0])>.001||Math.abs(s[1])>.001||Math.abs(s[2])>.001){var c=[0,0,0],d=[0,0,0];Nl().add(a.focalPoint,s,c),Nl().add(a.position,s,d),o.setCamera({focalPoint:c,position:d}),o.render()}}},{key:"_getRotationHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.rotationPoints,i=0;i<a.length;i++){var l=a[i][0],s=a[i][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineDraggableRotatable(s.id)){var c=e.worldToCanvas(l);if(Ti.vec2.distance(n,c)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.slabThicknessPoints,i=0;i<a.length;i++){var l=a[i][0],s=a[i][1];if(this._getReferenceLineControllable(s.id)&&this._getReferenceLineSlabThicknessControlsOn(s.id)){var c=e.worldToCanvas(l);if(Ti.vec2.distance(n,c)<r)return o.handles.activeOperation=3,o.activeViewportIds=[s.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,a=(0,q.getEnabledElement)(e).viewport.canvas,i=a.clientWidth,l=a.clientHeight,s=Math.sqrt(i*i+l*l),c=t.data,d=c.handles.rotationPoints,u=c.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=$i([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=$i([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(w<=r||E<=r)&&(v.push(g.id),c.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var a=o._getReferenceLineControllable(t.id),i=o._getReferenceLineSlabThicknessControlsOn(t.id);if(!a||!i)return b=e,"continue";var l=u[e][2],d=u[e][3],f=Ti.vec2.create();Ti.vec2.add(f,l,d),Ti.vec2.scale(f,f,.5);var g=Ti.vec2.create();Ti.vec2.subtract(g,l,f),Ti.vec2.normalize(g,g);var h=Ti.vec2.create();Ti.vec2.scale(h,g,.05*s);var p=Ti.vec2.create(),m=Ti.vec2.create();Ti.vec2.add(p,f,h),Ti.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},y=$i([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=$i([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(y<=r||I<=r)&&(v.push(t.id),c.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return c.activeViewportIds=[].concat(v),this.editData={annotation:t},1===c.handles.activeOperation}}]),o}(zi);function tc(e,t,n,r){var o=Ti.vec3.create();Ti.vec3.cross(o,t,e),o=[-o[0],-o[1],-o[2]];var a=Ti.vec3.fromValues.apply(Ti.vec3,Pn(n)),i=Ti.vec3.fromValues.apply(Ti.vec3,Pn(r)),l=Ti.vec3.create();Ti.vec3.subtract(l,a,i);var s=Ti.vec3.length(l);if(s<1e-4)return{worldWidth:0,worldHeight:0};var c=Ti.vec3.dot(l,o)/(s*Ti.vec3.length(o));return{worldWidth:Math.sqrt(1-c*c)*s,worldHeight:c*s}}$(ec,"toolName","Crosshairs");var nc=q.utilities.transformWorldToIndex,rc=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",!1),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(s,a,u,v),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.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:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},cachedStats:{}}};Ve(o,g);var h=Vi(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,centerCanvas:i,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(c,h),g})),$(mr(e),"isPointNearTool",(function(t,n,r,o){var a=(0,q.getEnabledElement)(t).viewport,i=ni(pl(n.data.handles.points.map((function(e){return a.worldToCanvas(e)}))),2),l=i[0],s=i[1],c={left:Math.min(l[0],s[0])+o/2,top:Math.min(l[1],s[1])+o/2,width:Math.abs(l[0]-s[0])-o,height:Math.abs(l[1]-s[1])-o},d={left:Math.min(l[0],s[0])-o/2,top:Math.min(l[1],s[1])-o/2,width:Math.abs(l[0]-s[0])+o,height:Math.abs(l[1]-s[1])+o},u=e._pointInEllipseCanvas(c,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},xa(o),e._activateModify(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l,s,c,d,u=!1;if(r.worldPosition)u=!0;else{var v=a.handles.points,f=(0,q.getEnabledElement)(o).viewport.worldToCanvas;i=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[i],s=Math.abs(g[2][0]-g[3][0]),c=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:i,canvasWidth:s,canvasHeight:c,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),xa(o);var p=(0,q.getEnabledElement)(o).renderingEngine;vr(p,h),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}}})),$(mr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else e._dragHandle(t),a.invalidated=!0;var g=(0,q.getEnabledElement)(r).renderingEngine;vr(g,i)})),$(mr(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r).viewport.canvasToWorld,a=e.editData,i=a.annotation,l=a.canvasWidth,s=a.canvasHeight,c=a.handleIndex,d=a.centerCanvas,u=a.originalHandleCanvas,v=i.data.handles.points,f=n.currentPoints.canvas;if(0===c||1===c){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],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=s/2+(f[1]-u[1]),_=[d[0],d[1]-C],T=[d[0],d[1]+C];v[0]=o(_),v[1]=o(T)}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[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 i.worldToCanvas(e)})),C=pl(b);if(h.cachedStats[c]&&void 0!==h.cachedStats[c].areaUnit?f.invalidated&&(e._throttledCalculateCachedStats(f,i,d,t),i instanceof q.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=q.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=q.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[c]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,i,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=void 0;if(Te(g)){ne(f)||e.editData||null===w||(_=[b[w]]),_&&Ya(n,g,"0",_,{color:I}),Ka(n,g,"0",C[0],C[1],{color:I,lineDash:E,lineWidth:y}),a=!0;var T=e._getTextLines(h,c);if(T&&0!==T.length){var D=void 0;h.handles.textBox.hasMoved||(D=Ji(C),h.handles.textBox.worldPosition=i.canvasToWorld(D));var O=i.worldToCanvas(h.handles.textBox.worldPosition),S=ii(n,g,"1",T,O,b,{},e.getLinkedTextBoxStyle(u,f)),x=S.x,M=S.y,R=S.width,N=S.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([x,M]),topRight:i.canvasToWorld([x+R,M]),bottomLeft:i.canvasToWorld([x,M+N]),bottomRight:i.canvasToWorld([x+R,M+N])}}}}return a})),$(mr(e),"_getTextLines",(function(e,t){var n,r,o,a,i,l=e.cachedStats[t],s=l.area,c=l.mean,d=l.stdDev,u=l.max,v=l.isEmptyArea,f=l.Modality,g=l.areaUnit,h=[];return s&&(n=v?"Area: Oblique not supported":"Area: ".concat(s.toFixed(2)," ").concat(g,"²")),c&&(r="Mean: ".concat(c.toFixed(2))),u&&(a="Max: ".concat(u.toFixed(2))),d&&(o="StdDev: ".concat(d.toFixed(2))),i="PT"===f?"SUV":"CT"===f?"HU":"MO",n&&h.push(n),r&&h.push(r+" "+i),a&&h.push(a+" "+i),o&&h.push(o+" "+i),h})),$(mr(e),"_calculateCachedStats",(function(t,n,r,o){for(var a=t.data,i=o.viewportId,l=o.renderingEngineId,s=a.handles.points.map((function(e){return n.worldToCanvas(e)})),c=n.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=ni(pl(s),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=a.cachedStats,w=Object.keys(m),y=h,E=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r),_=C.dimensions,T=C.imageData,D=C.metadata,O=C.hasPixelSpacing,S=nc(T,y);S[0]=Math.floor(S[0]),S[1]=Math.floor(S[1]),S[2]=Math.floor(S[2]);var x=nc(T,E);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(S,x,_)?function(){var e=[[Math.min(S[0],x[0]),Math.max(S[0],x[0])],[Math.min(S[1],x[1]),Math.max(S[1],x[1])],[Math.min(S[2],x[2]),Math.max(S[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=tc(d,u,y,E),r=n.worldWidth,o=n.worldHeight,a=0===r&&0===o,i=Math.PI*(r/2)*(o/2),l=0,s=0,c=0,v=-1/0;Di(T,(function(e,n){return hl(t,e)}),(function(e){var t=e.value;t>v&&(v=t),s+=t,l+=1}),e),s/=l,Di(T,(function(e,n){return hl(t,e)}),(function(e){var t=e.value-s;c+=t*t}),e),c/=l,c=Math.sqrt(c),m[b]={Modality:D.Modality,area:i,mean:s,max:v,stdDev:c,isEmptyArea:a,areaUnit:O?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:D.Modality})}t.invalidated=!1;var M=H.ANNOTATION_MODIFIED,R={annotation:t,viewportId:i,renderingEngineId:l};return(0,q.triggerEvent)(q.eventTarget,M,R),m})),$(mr(e),"_isInsideVolume",(function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=hi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],a=[t[0]-o[0],t[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(r*r)<=1}}]),o}(zi);$(rc,"toolName","EllipticalROI");var oc=q.utilities.transformWorldToIndex,ac=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preventHandleOutsideImage",void 0),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=t.data.handles.points,i=o.worldToCanvas(a[0]),l=o.worldToCanvas(a[1]),s={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}},c=$i([s.start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]);return c<=r||(i=o.worldToCanvas(a[2]),l=o.worldToCanvas(a[3]),(c=$i([(s={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}}).start.x,s.start.y],[s.end.x,s.end.y],[n[0],n[1]]))<=r)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),xa(o),t.preventDefault()})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l=!1;r.worldPosition?l=!0:i=a.handles.points.findIndex((function(e){return e===r}));var s=Vi(o,e.getToolName());xa(o),e.editData={annotation:n,viewportIdsToRender:s,handleIndex:i,movingTextBox:l},e._activateModify(o);var c=(0,q.getEnabledElement)(o).renderingEngine;vr(c,s),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=s.handles.points,u=Ti.vec3.distance(d[0],d[1]);if(Ti.vec3.distance(d[2],d[3])>u){var v=[Pn(d[2]),Pn(d[3])],f=Pn(d[0]),g=Pn(d[1]),h=Ti.vec2.create();Ti.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=Ti.vec2.create();Ti.vec2.set(p,-h[1],h[0]);var m,w=Ti.vec2.create();Ti.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=Ti.vec2.dot(w,p)>0?[f,g]:[g,f],s.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var y=H.ANNOTATION_COMPLETED,E={annotation:o};(0,q.triggerEvent)(q.eventTarget,y,E)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o),i=a.renderingEngine,l=a.viewport,s=l.worldToCanvas,c=e.editData,d=c.annotation,u=c.viewportIdsToRender,v=c.handleIndex,f=d.data,g=r.world;f.handles.points[v]=Pn(g);var h=f.handles.points.map(s),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],Ti.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,O=T-w*b,S=_-w*C,x=T+w*b;f.handles.points[2]=l.canvasToWorld([D,O]),f.handles.points[3]=l.canvasToWorld([S,x]),d.invalidated=!0,vr(i,u),e.editData.hasMoved=!0})),$(mr(e),"_mouseDragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r).renderingEngine,a=e.editData,i=a.annotation,l=a.viewportIdsToRender,s=a.handleIndex,c=a.movingTextBox,d=i.data;if(c){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===s){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),i.invalidated=!0}else e._mouseDragModifyHandle(t),i.invalidated=!0;vr(o,l)})),$(mr(e),"_mouseDragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o).viewport,i=e.editData,l=i.annotation,s=i.handleIndex,c=l.data,d=r.world,u=[a.worldToCanvas(c.handles.points[0]),a.worldToCanvas(c.handles.points[1]),a.worldToCanvas(c.handles.points[2]),a.worldToCanvas(c.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=Pn(d),h=a.worldToCanvas(g);if(0===s||1===s){var p=u[0===s?1:0],m={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(m,f))return;var w=wl([f.start.x,f.start.y],[f.end.x,f.end.y],[v.start.x,v.start.y],[v.end.x,v.end.y]),y=Ti.vec2.create();Ti.vec2.set(y,w[0],w[1]);var E=Ti.vec2.distance(u[2],y),I=Ti.vec2.distance(u[3],y),b=Math.abs(Ti.vec2.distance(p,y)),C=p[0]-h[0],_=p[1]-h[1],T=Math.sqrt(C*C+_*_),D=C/T,O=_/T,S=p[0]-b*D,x=p[1]-b*O,M=0===s?-1:1,R=S+E*O*M,N=x-E*D*M,k=S-I*O*M,P=x+I*D*M;c.handles.points[s]=g,c.handles.points[2]=a.canvasToWorld([R,N]),c.handles.points[3]=a.canvasToWorld([k,P])}else{var A=2===s?3:2,L={x:h[0],y:h[1]},U={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},V=U.longLineSegment.start.x-U.longLineSegment.end.x,B=U.longLineSegment.start.y-U.longLineSegment.end.y,j=Math.sqrt(V*V+B*B),F=V/j,W=B/j,G=(0===s||3===s?1:-1)*Number.MAX_SAFE_INTEGER,H={start:L,end:{x:L.x+W*G,y:L.y+F*G*-1}},z=wl([U.longLineSegment.start.x,U.longLineSegment.start.y],[U.longLineSegment.end.x,U.longLineSegment.end.y],[H.start.x,H.start.y],[H.end.x,H.end.y]);if(void 0===z)return;var K=Ti.vec2.distance(u[A],[z[0],z[1]]),Y={start:{x:z[0]+W*K,y:z[1]+F*K*-1},end:{x:z[0]+W*K*-1,y:z[1]+F*K}},$=2===A?Y.start:Y.end;c.handles.points[A]=a.canvasToWorld([$.x,$.y]),c.handles.points[s]=g}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragDrawCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragModifyCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!0,i=t.viewport,l=i.element,s=Ue(i.element,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f=s[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,y=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f);if(h.cachedStats[c]&&void 0!==h.cachedStats[c].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[c]={length:null,width:null,unit:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var C=void 0;if(Te(g)){ne(f)||e.editData||null===w||(C=[y[w]]),C&&Ya(n,g,"0",C,{color:b}),$a(n,g,"0",y[0],y[1],{color:b,lineDash:I,lineWidth:E}),$a(n,g,"1",y[2],y[3],{color:b,lineDash:I,lineWidth:E}),a=!0;var _=e._getTextLines(h,c);if(_&&0!==_.length){var T=void 0;h.handles.textBox.hasMoved||(T=Ji(y),h.handles.textBox.worldPosition=i.canvasToWorld(T));var D=i.worldToCanvas(h.handles.textBox.worldPosition),O=ii(n,g,"1",_,D,y,{},e.getLinkedTextBoxStyle(u,f)),S=O.x,x=O.y,M=O.width,R=O.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([S,x]),topRight:i.canvasToWorld([S+M,x]),bottomLeft:i.canvasToWorld([S,x+R]),bottomRight:i.canvasToWorld([S+M,x+R])}}}}return a})),$(mr(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=Ti.vec2.create();Ti.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),Ti.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!wl([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),$(mr(e),"_getTextLines",(function(e,t){var n=e.cachedStats[t],r=n.length,o=n.width,a=n.unit;if(void 0!==r)return["L: ".concat(r.toFixed(2)," ").concat(a),"W: ".concat(o.toFixed(2)," ").concat(a)]})),$(mr(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,a=r.viewportId,i=r.renderingEngineId,l=o.handles.points[0],s=o.handles.points[1],c=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n),p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,y=e._calculateLength(l,s),E=e._calculateLength(c,d),I=y>E?y:E,b=y>E?E:y,C=oc(p,l),_=oc(p,s),T=oc(p,c),D=oc(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 O=H.ANNOTATION_MODIFIED,S={annotation:t,viewportId:a,renderingEngineId:i};return(0,q.triggerEvent)(q.eventTarget,O,S),u})),$(mr(e),"_isInsideVolume",(function(e,t,n,r,o){return q.utilities.indexWithinDimensions(e,o)&&q.utilities.indexWithinDimensions(t,o)&&q.utilities.indexWithinDimensions(n,o)&&q.utilities.indexWithinDimensions(r,o)})),e._throttledCalculateCachedStats=hi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=(0,q.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;this.isDrawing=!0;var s=i.getCamera(),c=s.viewPlaneNormal,d=s.viewUp,u=this.getReferencedImageId(i,o,c,d),v={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:Pn(c),viewUp:Pn(d),FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:u},data:{handles:{points:[Pn(o),Pn(o),Pn(o),Pn(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:{}}};Ve(r,v);var f=Vi(r,this.getToolName());return this.editData={annotation:v,viewportIdsToRender:f,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),xa(r),e.preventDefault(),vr(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}(zi);function ic(e,t){var n=e[0],r=e[e.length-1],o=Ti.vec2.create();Ti.vec2.set(o,r[0]-n[0],r[1]-n[1]),Ti.vec2.normalize(o,o);var a=Ti.vec2.create(),i=Ti.vec2.create();Ti.vec2.set(a,-o[1],o[0]),Ti.vec2.set(i,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],s={dist:0,index:null},c=0;c<e.length;c++){var d=e[c],u=Ti.vec2.dist(d,l);u>s.dist&&(s.dist=u,s.index=c)}return[e[s.index],l].map(t.canvasToWorld)}function lc(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],a=e[r+1],i=r>0?e[r-1]:2*o-a,l=r<t-1?e[r+2]:2*a-o;return function(e,t,n,r,o){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*n+(1+3*e+3*a-3*i)*r+i*o)/6}((n-r/t)*t,i,o,a,l)}}function sc(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function cc(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,dc),r=new Array(n);++t<n;)for(var o,a=-1,i=r[t]=new Array(o);++a<o;)i[a]=e[a][t];return r}function dc(e){return e.length}function uc(e,t,n,r){var o=n-t+1;if(isNaN(o)||!o||!r)return e;if(o/r<=2)return e;var a=Math.max(0,t),i=Math.min(e.length-1,n),l=e.slice(0,a),s=e.slice(i+1,e.length),c=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n=t[t.length-1]-t[0]+1,r=lc(t.map((function(t){return e[t][0]}))),o=lc(t.map((function(t){return e[t][1]}))),a=function(){return cc(arguments)}(sc(r,n),sc(o,n));return a}(e,function(e,t){for(var n=[],r=ni(t,2),o=r[0],a=r[1],i=a-o+1,l=Math.floor(i/e),s=0,c=Math.round((i-1)/(l-1)*s)+o;c<=a;)n.push(c),s++,c=Math.round((i-1)/(l-1)*s)+o;return n}(r,[a,i]));return[].concat(Pn(l),Pn(c),Pn(s))}function vc(e){var t;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.enabled)}function fc(e,t,n){return(e+t+n)%t}function gc(e,t,n,r){var o=ni(e,3),a=o[1],i=o[2],l=ni(t,3),s=l[1],c=l[2],d=i.length,u=c.length,v=e[0],f=t[0];if(!(i[v]&&c[f]&&i[a]&&c[s]))return[void 0,void 0];for(;v!==a&&f!==s;){if(n(c[f],i[v]))return[v,f];v=fc(v,d,r),f=fc(f,u,r)}return[void 0,void 0]}function hc(e,t,n){var r=e.interpolation,o=t;if(r){var a=r.minKnotDistance,i=r.editMinKnotDistance,l=r.enabled;if(void 0!==l&&l){var s=ni(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===Ml(e[n],t[r]))return[n,r]}(e,t)||[],r=ni(n,2),o=r[0],a=r[1],i=function(e,t){return!1===function(e,t){return Ml(e,t)<.001}(e,t)},l=ni(gc([fc(o,e.length,1),o,e],[fc(a,t.length,1),a,t],i,1),2),s=l[0],c=l[1];return[s,ni(gc([fc(s,e.length,-1),s,e],[fc(c,t.length,-1),c,t],i,-1),1)[0]]}(t,n):[0,t.length-1],2),c=s[0],d=s[1];return t[c]&&t[d]?uc(t,c,d,n?i:a):t}}return o}$(ac,"toolName","Bidirectional");var pc=Ol,mc=Dl,wc=yl,yc=Tl;function Ec(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=yc(l,this.configuration.subPixelResolution),c=s.spacing,d=s.xDir,u=s.yDir;this.drawData={canvasPoints:[i],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:c,xDir:d,yDir:u},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),xa(a)}function Ic(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),Sa(e)}function bc(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=s.canvasToWorld(m),y=Ti.vec3.create();Ti.vec3.subtract(y,o,w);var E=Math.abs(Ti.vec3.dot(y,u)),I=Math.abs(Ti.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=pc(r,p,a,this.commonData);this.drawData.polylineIndex=h+C}vr(l,d)}}function Cc(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],a=e.detail.element;t&&!mc(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(a):this.completeDrawClosedContour(a)}function _c(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,a=(0,q.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine;pc(e,t,t[0],this.commonData),t.pop();var s=(vc(this.configuration)?hc(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=s,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(l,o),this.deactivateDraw(e),!0}function Tc(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=wc(r,n[0],n[1],!1);if(o){var a=o[1];this.drawData.canvasPoints=e.splice(0,a)}}function Dc(e){var t=this.drawData.canvasPoints;if(this.haltDrawing(e,t))return!1;var n=this.commonData,r=n.annotation,o=n.viewportIdsToRender,a=(0,q.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine,s=(vc(this.configuration)?hc(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=s,r.data.isOpenContour=!0,r.data.handles.points=[s[0],s[s.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=ic(t,i)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(l,o),this.deactivateDraw(e),!0}function Oc(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.drawData.canvasPoints.slice(0,-1),l=wc(i,o,a,!1);if(void 0!==l)return l[0]}function Sc(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender;pc(n,r,r[t],this.commonData),r.pop();for(var l=0;l<t;l++)r.shift();this.completeDrawClosedContour(n)&&this.activateClosedContourEdit(e,a,i)}function xc(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!mc(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Mc(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,a=(0,q.getEnabledElement)(e).renderingEngine;return Be(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,vr(a,o),this.deactivateDraw(e),!0}return!1}var Rc=function(e){e.activateDraw=Ec.bind(e),e.deactivateDraw=Ic.bind(e),e.applyCreateOnCross=Sc.bind(e),e.findCrossingIndexDuringCreate=Oc.bind(e),e.completeDrawOpenContour=Dc.bind(e),e.removeCrossedLinesOnCompleteDraw=Tc.bind(e),e.mouseDragDrawCallback=bc.bind(e),e.mouseUpDrawCallback=Cc.bind(e),e.completeDrawClosedContour=_c.bind(e),e.cancelDrawing=xc.bind(e),e.haltDrawing=Mc.bind(e)},Nc=Ol,kc=yl;function Pc(e,t){var n=e.detail,r=n.element,o=n.currentPoints,a=n.lastPoints,i=o.canvas,l=a.canvas,s=this.editData,c=s.editCanvasPoints,d=s.prevCanvasPoints,u=kc(d,i,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(c.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=c[0],f=[],g=0;g<d.length;g++){var h=d[g],p=Ti.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=Ti.vec2.create();Ti.vec2.subtract(y,c[1],c[0]),Ti.vec2.normalize(y,y);var E=[c[0][0]-6*y[0],c[0][1]-6*y[1]],I=kc(d,E,c[0],t);if(I){var b=[E];Nc(r,b,c[0],this.commonData),c.unshift.apply(c,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=c.length-1,this.editData.startCrossingIndex=I[0]}}}function Ac(e){for(var t=this.editData,n=t.editCanvasPoints,r=t.prevCanvasPoints,o=0,a=0;a<n.length-1;a++){var i=[n[a],n[a+1]];if(o++,kc(r,i[0],i[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Lc(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,a=r.canvas,i=o.canvas,l=this.editData.prevCanvasPoints;return!!kc(l,a,i,t)}function Uc(e){for(var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=r.length-1;o>0;o--){var a=[r[o],r[o-1]],i=!!kc(n,a[0],a[1],e);if(r.pop(),i)break}}function Vc(){var e=this.editData,t=e.editCanvasPoints,n=e.prevCanvasPoints;if(void 0!==e.startCrossingIndex){for(var r=t[t.length-1],o=[],a=0;a<n.length;a++){var i=n[a],l=Ti.vec2.distance(i,r);o.push({distance:l,index:a})}o.sort((function(e,t){return e.distance-t.distance}));for(var s=t.slice(0,-1),c=0;c<o.length;c++){var d=o[c].index,u=n[d],v=t[t.length-1];if(!kc(s,u,v,!1))return d}return-1}}function Bc(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData.editCanvasPoints,l=i.slice(0,-2),s=kc(l,o,a,!1);if(s)for(var c=s[0],d=i.length-c,u=0;u<d;u++)i.pop()}var jc=function(e){e.checkForFirstCrossing=Pc.bind(e),e.removePointsUpUntilFirstCrossing=Ac.bind(e),e.checkForSecondCrossing=Lc.bind(e),e.findSnapIndex=Vc.bind(e),e.removePointsAfterSecondCrossing=Uc.bind(e),e.checkAndRemoveCrossesOnEditLine=Bc.bind(e)},Fc=Tl,Wc=Ol,Gc=xl;function qc(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=t.data.polyline.map(l.worldToCanvas),c=Fc(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpClosedContourEditCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),xa(a)}function Hc(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),Sa(e)}function zc(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=s.canvasToWorld(w),E=Ti.vec3.create();Ti.vec3.subtract(E,o,y);var I=Math.abs(Ti.vec3.dot(E,u)),b=Math.abs(Ti.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Wc(r,p,a,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)),vr(l,d)):this.finishEditAndStartNewEdit(e)}}function Kc(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!1,this.triggerAnnotationModified(i,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},vr(o,l)}function Yc(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,a=t.snapIndex;if(void 0!==o&&void 0!==a){var i,l,s=e.detail.element,c=Pn(r);Wc(s,c,n[a],this.commonData),c.length>r.length&&c.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=Ti.vec2.distance(n[i],c[0]),u=Ti.vec2.distance(n[i],c[c.length-1]),v=Ti.vec2.distance(n[l],c[0]),f=Ti.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<i;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<c.length;y++){var E=c[y];g.push([E[0],E[1]])}else for(var I=c.length-1;I>=0;I--){var b=c[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var _=n[C];g.push([_[0],_[1]])}for(var T=[],D=i;D<l;D++){var O=n[D];T.push([O[0],O[1]])}if((m=v+u)<(w=f+d))for(var S=0;S<c.length;S++){var x=c[S];T.push([x[0],x[1]])}else for(var M=c.length-1;M>=0;M--){var R=c[M];T.push([R[0],R[1]])}return Gc(g)>Gc(T)?g:T}}function $c(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function Zc(e){var t=(0,q.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,s=l.fusedCanvasPoints,c=l.prevCanvasPoints;if(s){var d=(vc(this.configuration)?hc(this.configuration,s,c):s).map((function(e){return n.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!1,this.triggerAnnotationModified(a,t)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,vr(r,i),this.deactivateClosedContourEdit(e)}function Jc(e){this.completeClosedContourEdit(e)}var Xc=function(e){e.activateClosedContourEdit=qc.bind(e),e.deactivateClosedContourEdit=Hc.bind(e),e.mouseDragClosedContourEditCallback=zc.bind(e),e.mouseUpClosedContourEditCallback=$c.bind(e),e.finishEditAndStartNewEdit=Kc.bind(e),e.fuseEditPointsWithClosedContour=Yc.bind(e),e.cancelClosedContourEdit=Jc.bind(e),e.completeClosedContourEdit=Zc.bind(e)},Qc=Ol,ed=Tl;function td(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,q.getEnabledElement)(a).viewport,s=t.data.polyline.map(l.worldToCanvas),c=ed(l,this.configuration.subPixelResolution),d=c.spacing,u=c.xDir,v=c.yDir;this.editData={prevCanvasPoints:s,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},tn.isInteractingWithTool=!0,a.addEventListener(H.MOUSE_UP,this.mouseUpOpenContourEditCallback),a.addEventListener(H.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener(H.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),xa(a)}function nd(e){tn.isInteractingWithTool=!1,e.removeEventListener(H.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(H.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(H.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),Sa(e)}function rd(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,q.getEnabledElement)(r),l=i.renderingEngine,s=i.viewport,c=this.commonData,d=c.viewportIdsToRender,u=c.xDir,v=c.yDir,f=c.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],y=s.canvasToWorld(w),E=Ti.vec3.create();Ti.vec3.subtract(E,o,y);var I=Math.abs(Ti.vec3.dot(E,u)),b=Math.abs(Ti.vec3.dot(E,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Qc(r,p,a,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),vr(l,d)}}function od(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.fuseEditPointsForOpenContourEndEdit().map((function(e){return r.canvasToWorld(e)}));a.data.polyline=l,a.data.isOpenContour=!0,a.data.handles.points=[l[0],l[l.length-1]],a.data.handles.activeHandleIndex=1,this.triggerAnnotationModified(a,n),this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,this.deactivateOpenContourEdit(t),this.activateOpenContourEndEdit(e,a,i)}function ad(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData,l=i.snapIndex,s=i.prevCanvasPoints;if(void 0===i.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==s.length-1)return!1;var c=o,d=a,u=s[l],v=Ti.vec2.create(),f=Ti.vec2.create();Ti.vec2.set(v,c[0]-d[0],c[1]-d[1]),Ti.vec2.set(f,c[0]-u[0],c[1]-u[1]);var g=Ti.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 id(){var e=this.editData,t=e.snapIndex,n=e.prevCanvasPoints,r=e.editCanvasPoints,o=e.startCrossingIndex,a=[];if(0===t)for(var i=n.length-1;i>=o;i--){var l=n[i];a.push([l[0],l[1]])}else for(var s=0;s<o;s++){var c=n[s];a.push([c[0],c[1]])}if(Ti.vec2.distance(n[o],r[0])<Ti.vec2.distance(n[o],r[r.length-1]))for(var d=0;d<r.length;d++){var u=r[d];a.push([u[0],u[1]])}else for(var v=r.length-1;v>=0;v--){var f=r[v];a.push([f[0],f[1]])}return a}function ld(e){var t=this.editData,n=t.prevCanvasPoints,r=t.editCanvasPoints,o=t.startCrossingIndex,a=t.snapIndex;if(void 0!==o&&void 0!==a){var i,l,s=e.detail.element,c=Pn(r);Qc(s,c,n[a],this.commonData),c.length>r.length&&c.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=Ti.vec2.distance(n[i],c[0]),u=Ti.vec2.distance(n[i],c[c.length-1]),v=Ti.vec2.distance(n[l],c[0]),f=Ti.vec2.distance(n[l],c[c.length-1]),g=[],h=0;h<i;h++){var p=n[h];g.push([p[0],p[1]])}if(d+f<u+v)for(var m=0;m<c.length;m++){var w=c[m];g.push([w[0],w[1]])}else for(var y=c.length-1;y>=0;y--){var E=c[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 sd(e){var t=e.detail.element,n=(0,q.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,s=this.editData,c=s.fusedCanvasPoints,d=s.editCanvasPoints,u=c.map((function(e){return r.canvasToWorld(e)}));i.data.polyline=u,i.data.isOpenContour=!0,i.data.handles.points=[u[0],u[u.length-1]],this.triggerAnnotationModified(i,n);var v=d.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},vr(o,l)}function cd(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function dd(e){var t=(0,q.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,s=l.fusedCanvasPoints,c=l.prevCanvasPoints;if(s){var d=(vc(this.configuration)?hc(this.configuration,s,c):s).map((function(e){return n.canvasToWorld(e)}));a.data.polyline=d,a.data.isOpenContour=!0,a.data.handles.points=[d[0],d[d.length-1]],a.data.isOpenUShapeContour&&(a.data.openUShapeContourVectorToPeak=ic(s,n)),this.triggerAnnotationModified(a,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,vr(r,i),this.deactivateOpenContourEdit(e)}function ud(e){this.completeOpenContourEdit(e)}var vd=function(e){e.activateOpenContourEdit=td.bind(e),e.deactivateOpenContourEdit=nd.bind(e),e.mouseDragOpenContourEditCallback=rd.bind(e),e.mouseUpOpenContourEditCallback=cd.bind(e),e.fuseEditPointsWithOpenContour=ld.bind(e),e.finishEditOpenOnSecondCrossing=sd.bind(e),e.checkIfShouldOverwriteAnEnd=ad.bind(e),e.fuseEditPointsForOpenContourEndEdit=id.bind(e),e.openContourEditOverwriteEnd=od.bind(e),e.cancelOpenContourEdit=ud.bind(e),e.completeOpenContourEdit=dd.bind(e)},fd=Tl;function gd(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,q.getEnabledElement)(r).viewport,a=fd(o,this.configuration.subPixelResolution),i=a.spacing,l=a.xDir,s=a.yDir,c=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&c.reverse(),this.drawData={canvasPoints:c,polylineIndex:c.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:i,xDir:l,yDir:s},tn.isInteractingWithTool=!0,r.addEventListener(H.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(H.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(H.MOUSE_CLICK,this.mouseUpDrawCallback),xa(r)}var hd=function(e){e.activateOpenContourEndEdit=gd.bind(e)},pd=Dl;function md(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),a=this.getStyle("color",n,t);return{color:void 0===a?void 0:a,width:void 0===r?void 0:r,lineDash:void 0===o?void 0:o,connectLastToFirst:!t.data.isOpenContour}}function wd(e,t,n){n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return ic(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 yd(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));Ja(t,n.annotationUID,"1",a,o)}function Ed(e,t,n){var r,o=e.viewport,a=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));Ja(t,n.annotationUID,"1",i,a);var l=n.data.handles.activeHandleIndex;if(!0===(null===(r=this.configuration.alwaysRenderOpenContourHandles)||void 0===r?void 0:r.enabled)){var s=this.configuration.alwaysRenderOpenContourHandles.radius,c=[i[0],i[i.length-1]];0===l?c.shift():1===l&&c.pop(),Ya(t,n.annotationUID,"0",c,{color:a.color,handleRadius:s})}if(null!==l){var d=i[0===l?0:i.length-1];Ya(t,n.annotationUID,"1",[d],{color:a.color})}}function Id(e,t,n){var r=e.viewport,o=n.data,a=o.polyline,i=o.openUShapeContourVectorToPeak;this.renderOpenContour(e,t,n);var l=r.worldToCanvas(a[0]),s=r.worldToCanvas(a[a.length-1]),c=[r.worldToCanvas(i[0]),r.worldToCanvas(i[1])],d=this._getRenderingOptions(e,n);Ja(t,n.annotationUID,"first-to-last",[l,s],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"}),Ja(t,n.annotationUID,"midpoint-to-open-contour",[c[0],c[1]],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"})}function bd(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,a=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,Ja(t,n.annotationUID,"1",a,r),o){var i=a[0],l=a[a.length-1];pd(i,l,this.configuration.closeContourProximity)?Ja(t,n.annotationUID,"2",[l,i],r):Ya(t,n.annotationUID,"0",[i],{color:r.color,handleRadius:2})}}function Cd(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Ja(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function _d(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Ja(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var Td=function(e){e.renderContour=wd.bind(e),e.renderClosedContour=yd.bind(e),e.renderOpenContour=Ed.bind(e),e.renderOpenUShapedContour=Id.bind(e),e.renderContourBeingDrawn=bd.bind(e),e.renderClosedContourBeingEdited=Cd.bind(e),e.renderOpenContourBeingEdited=_d.bind(e),e._getRenderingOptions=md.bind(e)};function Dd(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 Od=Sl,Sd=function(e){yr(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 Ir(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:{enabled:!1,minKnotDistance:20,editMinKnotDistance:10}}};return z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"commonData",void 0),$(mr(e),"isDrawing",!1),$(mr(e),"isEditingClosed",!1),$(mr(e),"isEditingOpen",!1),$(mr(e),"activateDraw",void 0),$(mr(e),"activateClosedContourEdit",void 0),$(mr(e),"activateOpenContourEdit",void 0),$(mr(e),"activateOpenContourEndEdit",void 0),$(mr(e),"cancelDrawing",void 0),$(mr(e),"cancelClosedContourEdit",void 0),$(mr(e),"cancelOpenContourEdit",void 0),$(mr(e),"renderContour",void 0),$(mr(e),"renderContourBeingDrawn",void 0),$(mr(e),"renderClosedContourBeingEdited",void 0),$(mr(e),"renderOpenContourBeingEdited",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine,c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f=Vi(o,e.getToolName()),g={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(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:[Pn(a)],label:""}};return Ve(o,g),e.activateDraw(t,g,f),t.preventDefault(),vr(s,f),g})),$(mr(e),"handleSelectedCallback",(function(t,n,r){var o=Vi(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,o)})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=Vi(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,o):e.activateClosedContourEdit(t,n,o)})),$(mr(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,q.getEnabledElement)(e).viewport,a=t.data.polyline,i=o.worldToCanvas(a[0]),l=1;l<a.length;l++){var s=i,c=o.worldToCanvas(a[l]);if(!0===Od(n,s,c,r))return!0;i=c}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(a[0]),u=o.worldToCanvas(a[a.length-1]);return!0===Od(n,d,u,r)})),$(mr(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)})),$(mr(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=H.ANNOTATION_MODIFIED,a={annotation:e,viewportId:n,renderingEngineId:r};(0,q.triggerEvent)(q.eventTarget,o,a)})),$(mr(e),"triggerAnnotationCompleted",(function(e){var t=H.ANNOTATION_COMPLETED,n={annotation:e};(0,q.triggerEvent)(q.eventTarget,t,n)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport.element,l=Ue(i,e.getToolName());if(null===(r=l)||void 0===r||!r.length)return a;if(null===(o=l=e.filterInteractableAnnotationsForElement(i,l))||void 0===o||!o.length)return a;var s=e.isDrawing,c=e.isEditingOpen,d=e.isEditingClosed;if(!(s||c||d))return l.forEach((function(r){return e.renderContour(t,n,r)})),a;var u=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===u)if(s)e.renderContourBeingDrawn(t,n,r);else if(d)e.renderClosedContourBeingEdited(t,n,r);else{if(!c)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),Rc(mr(e)),jc(mr(e)),Xc(mr(e)),vd(mr(e)),hd(mr(e)),Td(mr(e)),e}return Y(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,q.getEnabledElement)(e).viewport;if(r instanceof q.StackViewport)n=Fi(r,t);else{if(!(r instanceof q.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),a=q.utilities.getTargetVolumeAndSpacingInNormalDir(r,o).spacingInNormalDirection;n=this.filterAnnotationsWithinSlice(t,o,a)}return n}}},{key:"filterAnnotationsWithinSlice",value:function(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal;return q.utilities.isEqual(t,r)}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,s=[],c=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Dd(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)?Dd(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){l=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(l)throw a}}}}(o);try{for(c.s();!(a=c.n()).done;){var d=a.value,u=d.data.polyline[0],v=Ti.vec3.create();Ti.vec3.sub(v,l,u);var f=Ti.vec3.dot(v,r);Math.abs(f)<i&&s.push(d)}}catch(e){c.e(e)}finally{c.f()}return s}}]),o}(zi);$(Sd,"toolName","PlanarFreehandROI");var xd=Sd;var Md=function(e){yr(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 Ir(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:Rd,changeTextCallback:Nd,preventHandleOutsideImage:!1,arrowFirst:!0}};return z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;xa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f=e.configuration.arrowFirst,g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{text:"",handles:{points:[Pn(a),Pn(a)],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:""}};Ve(o,g);var h=Vi(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,h),g})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ni(t.data.handles.points,2),i=a[0],l=a[1],s=o.worldToCanvas(i),c=o.worldToCanvas(l),d={start:{x:s[0],y:s[1]},end:{x:c[0],y:c[1]}};return $i([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),xa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l){o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),i&&e.configuration.getTextCallback((function(t){if(!t)return Be(o.annotationUID,n),vr(c,a),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var r=H.ANNOTATION_COMPLETED,i={annotation:o};(0,q.triggerEvent)(q.eventTarget,r,i),vr(c,a)})),e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"doubleClickCallback",(function(t){var n=t.detail,r=n.element,o=(0,q.getEnabledElement)(r),a=(o.viewportId,o.renderingEngineId,o.renderingEngine,Ue(r,e.getToolName())),i=(a=e.filterInteractableAnnotationsForElement(r,a)).find((function(t){return e.isPointNearTool(r,t,n.currentPoints.canvas,6)}));if(i){var l=i;e.configuration.changeTextCallback(i,t.detail,e._doneChangingTextCallback.bind(mr(e),r,l)),e.editData=null,e.isDrawing=!1}})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<s.length;d++){var u=s[d],v=u.annotationUID,f=u.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;c.annotationUID=v;var w=e.getStyle("lineWidth",c,u),y=e.getStyle("lineDash",c,u),E=e.getStyle("color",c,u),I=p.map((function(e){return i.worldToCanvas(e)})),b=void 0;if(ne(u)||e.editData||null===m||(b=[I[m]]),b&&Ya(n,v,"0",I,{color:E,lineWidth:w}),e.configuration.arrowFirst?si(n,v,"1",I[1],I[0],{color:E,width:w,lineDash:y}):si(n,v,"1",I[0],I[1],{color:E,width:w,lineDash:y}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(h){if(!f.handles.textBox.hasMoved){var C=Ji(I);f.handles.textBox.worldPosition=i.canvasToWorld(C)}var _=i.worldToCanvas(f.handles.textBox.worldPosition),T=ii(n,v,"1",[h],_,I,{},e.getLinkedTextBoxStyle(c,u)),D=T.x,O=T.y,S=T.width,x=T.height;f.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([D,O]),topRight:i.canvasToWorld([D+S,O]),bottomLeft:i.canvasToWorld([D,O+x]),bottomRight:i.canvasToWorld([D+S,O+x])}}}return a})),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Vi(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),xa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,q.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=r.renderingEngineId,l=Vi(e,this.getToolName());vr(o,l);var s=H.ANNOTATION_MODIFIED;(0,q.triggerEvent)(q.eventTarget,s,{annotation:t,viewportId:a,renderingEngineId:i})}},{key:"_isInsideVolume",value:function(e,t,n){return q.utilities.indexWithinDimensions(e,n)&&q.utilities.indexWithinDimensions(t,n)}}]),o}(zi);function Rd(e){return e(prompt("Enter your annotation:"))}function Nd(e,t,n){return n(prompt("Enter your annotation:"))}$(Md,"toolName","ArrowAnnotate");var kd=Md;var Pd=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"touchDragCallback",void 0),$(mr(e),"mouseDragCallback",void 0),$(mr(e),"angleStartedNotYetCompleted",void 0),$(mr(e),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"addNewAnnotation",(function(t){if(!e.angleStartedNotYetCompleted){e.angleStartedNotYetCompleted=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;xa(o),e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.getReferencedImageId(l,a,d,u),f={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{handles:{points:[Pn(a),Pn(a)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}},label:"",cachedStats:{}}};Ve(o,f);var g=Vi(o,e.getToolName());return e.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),vr(s,g),f}})),$(mr(e),"isPointNearTool",(function(e,t,n,r){var o=(0,q.getEnabledElement)(e).viewport,a=ni(t.data.handles.points,3),i=a[0],l=a[1],s=a[2],c=o.worldToCanvas(i),d=o.worldToCanvas(l),u=o.worldToCanvas(s),v={start:{x:c[0],y:c[1]},end:{x:d[0],y:d[1]}},f={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},g=$i([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=$i([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),$(mr(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=Vi(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),xa(o);var i=(0,q.getEnabledElement)(o).renderingEngine;vr(i,a),t.preventDefault()})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,s=o.data;if(!i||l)if(e.angleStartedNotYetCompleted&&2===s.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,o.highlighted=!1,s.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Sa(n);var c=(0,q.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&Be(o.annotationUID,n),vr(c,a),i){var d=H.ANNOTATION_COMPLETED,u={annotation:o};(0,q.triggerEvent)(q.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,s=o.movingTextBox,c=a.data;if(s){var d=n.deltaPoints.world,u=c.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;c.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;c.handles.points[l]=Pn(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,q.getEnabledElement)(r).renderingEngine;vr(h,i)})),$(mr(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Sa(t);var n=e.editData,r=n.annotation,o=n.viewportIdsToRender,a=n.newAnnotation,i=r.data;r.highlighted=!1,i.handles.activeHandleIndex=null;var l=(0,q.getEnabledElement)(t).renderingEngine;if(vr(l,o),a){var s=H.ANNOTATION_COMPLETED,c={annotation:r};(0,q.triggerEvent)(q.eventTarget,s,c)}return e.editData=null,r.annotationUID}})),$(mr(e),"_activateModify",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateModify",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,s=Ue(l,e.getToolName());if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(l,s))||void 0===o||!o.length)return a;for(var c=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<s.length;v++){var f,g=s[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 i.worldToCanvas(e)}));p.cachedStats[c]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[c]={angle:null},e._calculateCachedStats(g,d,t));var _=void 0;if(ne(g)||e.editData||null===y||(_=[C[y]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;_&&Ya(n,h,"0",C,{color:b,lineDash:I,lineWidth:E});var T="1";if($a(n,h,T,C[0],C[1],{color:b,width:E,lineDash:I}),a=!0,3!==C.length)return a;if($a(n,h,T="2",C[1],C[2],{color:b,width:E,lineDash:I}),null!==(f=p.cachedStats[c])&&void 0!==f&&f.angle){var D=e._getTextLines(p,c);if(!p.handles.textBox.hasMoved){var O=Ji(C);p.handles.textBox.worldPosition=i.canvasToWorld(O)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=ii(n,h,"1",D,S,C,{},e.getLinkedTextBoxStyle(u,g)),M=x.x,R=x.y,N=x.width,k=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([M,R]),topRight:i.canvasToWorld([M+N,R]),bottomLeft:i.canvasToWorld([M,R+k]),bottomRight:i.canvasToWorld([M+N,R+k])}}}return a})),e._throttledCalculateCachedStats=hi(e._calculateCachedStats,100,{trailing:!0}),e}return Y(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=Vi(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),xa(r);var s=(0,q.getEnabledElement)(r).renderingEngine;vr(s,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,a=n.renderingEngineId;if(3===r.handles.points.length){for(var i,l,s,c,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=(i=[m,w],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,s=(l=ni([p,m],2))[0],c=l[1],u=(d=ni(i,2))[0],v=d[1],f=Ti.vec3.sub(Ti.vec3.create(),c,s),g=Ti.vec3.sub(Ti.vec3.create(),u,v),h=Ti.vec3.dot(f,g)/(Ti.vec3.length(f)*Ti.vec3.length(g)),180*Math.acos(h)/Math.PI);y[b]={angle:C}}e.invalidated=!1;var _=H.ANNOTATION_MODIFIED,T={annotation:e,viewportId:o,renderingEngineId:a};return(0,q.triggerEvent)(q.eventTarget,_,T),y}}}]),o}(zi);$(Pd,"toolName","Angle");var Ad=Pd;var Ld="magnify-viewport",Ud=function(e){yr(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 Ir(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 z(this,o),$(mr(e=r.call(this,t,n)),"mouseDragCallback",void 0),$(mr(e),"_bounds",void 0),$(mr(e),"editData",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,q.getEnabledElement)(o),i=a.viewport,l=a.renderingEngine;if(!(i instanceof q.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var s=e._getReferencedImageId(i);if(!s)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var c=Vi(o,e.getToolName());return e.editData={referencedImageId:s,viewportIdsToRender:c,enabledElement:a,renderingEngine:l,currentPoints:r},e._createMagnificationViewport(),e._activateDraw(o),xa(o),t.preventDefault(),vr(l,c),!0})),$(mr(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,a=n.viewportIdsToRender,i=n.renderingEngine,l=n.currentPoints,s=r.viewport,c=s.element,d=s.getProperties().voiRange,u=l.canvas,v=l.world;if(null===(t=c.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,c.querySelector(".viewport-element").appendChild(f);var g={viewportId:Ld,type:q.Enums.ViewportType.STACK,element:t};i.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=i.getViewport(Ld);h.setStack([o]).then((function(){h.setProperties({voiRange:d});var t=s.getCamera().parallelScale,n=h.getCamera(),r=n.focalPoint,o=n.position,a=n.viewPlaneNormal,i=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]],c=[l[0]+i*a[0],l[1]+i*a[1],l[2]+i*a[2]];h.setCamera({parallelScale:t*(1/e.configuration.magnifySize),focalPoint:l,position:c}),h.render()})),t.style.display="block",vr(i,a)})),$(mr(e),"_mouseDragCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.deltaPoints,a=n.element,i=o.world,l=r.canvas,s=(0,q.getEnabledElement)(a).renderingEngine.getViewport(Ld),c=a.querySelector(".magnifyTool");if(c){c.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),c.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var d=s.getCamera(),u=d.focalPoint,v=d.position,f=[v[0]+i[0],v[1]+i[1],v[2]+i[2]],g=[u[0]+i[0],u[1]+i[1],u[2]+i[2]];s.setCamera({focalPoint:g,position:f}),s.render()}})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element;(0,q.getEnabledElement)(n).renderingEngine.disableElement(Ld);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),Sa(n)})),$(mr(e),"_activateDraw",(function(t){tn.isInteractingWithTool=!0,t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){tn.isInteractingWithTool=!1,t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),e}return Y(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof q.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(Nr);$(Ud,"toolName","Magnify");var Vd=q.utilities.transformWorldToIndex;function Bd(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.constraintFn,s=n.imageData,c=n.dimensions,d=n.scalarData,u=r.map((function(e){return Vd(s,e)}));u=u.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=Oi(u,c);if(v.every((function(e){var t=ni(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Di(s,(function(){return!0}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(l?l(r)&&(d[n]=a):d[n]=a)}),v),Je(i)}(0,t)}var jd=q.utilities.transformWorldToIndex;function Fd(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentationId,i=n.imageData,l=n.dimensions,s=n.scalarData,c=r.map((function(e){return jd(i,e)})),d=Oi(c,l);if(d.every((function(e){var t=ni(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");Di(i,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(s[n]=0)}),d),Je(a)}(0,t)}var Wd=function(e){yr(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 Ir(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:Bd,ERASE_INSIDE:Fd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),$(mr(e),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine;e.isDrawing=!0;var c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=e.toolGroupId,f=ps(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=Os(h),w=Es(h),y=Cs(v,g,m),E=at(h).representationData[p].volumeId,I=q.cache.getVolume(E),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null}}},C=Vi(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),xa(o),t.preventDefault(),vr(s,C),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n,r,o,a,i,l,s,c,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,q.getEnabledElement)(u),y=w.viewport,E=y.worldToCanvas,I=y.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=Pn(b),h){case 0:case 3:n=E(C[0]),r=[(a=E(C[3]))[0],n[1]],o=[n[0],a[1]],l=I(r),s=I(o),C[1]=l,C[2]=s;break;case 1:case 2:r=E(C[1]),n=[(o=E(C[2]))[0],r[1]],a=[r[0],o[1]],i=I(n),c=I(a),C[0]=i,C[3]=c}f.invalidated=!0,e.editData.hasMoved=!0;var _=w.renderingEngine;vr(_,g)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentationId,c=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Sa(n);var v=(0,q.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof q.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:s,segmentIndex:c,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"renderAnnotation",(function(t,n){var r=!1;if(!e.editData)return r;var o=t.viewport,a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(li(n,l,"0",s[0],s[3],{color:c}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Nr);$(Wd,"toolName","RectangleScissor");var Gd=q.utilities.transformWorldToIndex;function qd(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=n.imageData,s=n.dimensions,c=n.scalarData,d=e.viewport,u=Ti.vec3.fromValues(0,0,0);r.forEach((function(e){Ti.vec3.add(u,u,e)})),Ti.vec3.scale(u,u,1/r.length);var v=ni(pl(r.map((function(e){return d.worldToCanvas(e)}))),2),f=v[0],g=v[1],h=d.canvasToWorld(f),p=d.canvasToWorld(g),m=[Gd(l,h),Gd(l,p)],w=Oi(m,s);if(w.every((function(e){var t=ni(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var y={center:u,xRadius:Math.abs(h[0]-p[0])/2,yRadius:Math.abs(h[1]-p[1])/2,zRadius:Math.abs(h[2]-p[2])/2},E=new Set;Di(l,(function(e,t){return hl(y,e)}),(function(e){var t=e.value,n=e.index,r=e.pointIJK;o.includes(t)||(c[n]=a,E.add(r[2]))}),w),Je(i,Array.from(E))}(e,t)}var Hd=function(e){yr(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 Ir(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:qd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ps(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=Os(p),y=Es(p),E=Cs(f,h,w),I=at(p).representationData[m].volumeId,b=q.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentationId:p,segmentsLocked:y,segmentColor:E,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(c,_),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Sa(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(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 a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c=s[0],d=s[1],u=[Math.floor((c[0]+d[0])/2),Math.floor((c[1]+d[1])/2)],v=Math.abs(c[1]-Math.floor((c[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(za(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Nr);function zd(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.points,s=r.scalarData;xi(r.imageData,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(s[t]=a)}),n),Je(i)}(e,t)}$(Hd,"toolName","CircleScissor");var Kd=function(e){yr(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 Ir(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:zd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return z(this,o),$(mr(e=r.call(this,t,n)),"editData",void 0),$(mr(e),"isDrawing",void 0),$(mr(e),"isHandleOutsideImage",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,q.getEnabledElement)(o),s=l.viewport,c=l.renderingEngine;e.isDrawing=!0;var d=s.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ps(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=Os(p),y=Es(p),E=Cs(f,h,w),I=at(p).representationData[m].volumeId,b=q.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:Pn(u),viewUp:Pn(v),FrameOfReferenceUID:s.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{invalidated:!0,handles:{points:[Pn(a),Pn(a),Pn(a),Pn(a)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},_=[s.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentsLocked:y,segmentColor:E,segmentationId:p,toolGroupId:f,viewportIdsToRender:_,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),xa(o),t.preventDefault(),vr(c,_),!0})),$(mr(e),"_mouseDragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,s=e.editData,c=s.annotation,d=s.viewportIdsToRender,u=s.centerCanvas,v=c.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],y=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(y)],c.invalidated=!0,e.editData.hasMoved=!0,vr(i,d)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,s=r.segmentIndex,c=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Sa(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:s,segmentsLocked:c,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(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 a=e.editData.annotation,i=a.metadata,l=a.annotationUID,s=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),c=s[0],d=s[1],u=[Math.floor((c[0]+d[0])/2),Math.floor((c[1]+d[1])/2)],v=Math.abs(c[1]-Math.floor((c[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(za(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Y(o)}(Nr);$(Kd,"toolName","SphereScissor");var Yd=function(e){yr(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 Ir(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:qd},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE",brushSize:25}};return z(this,o),$(mr(e=r.call(this,t,n)),"_editData",void 0),$(mr(e),"_hoverData",void 0),$(mr(e),"_isDrawing",void 0),$(mr(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(r.world,r.canvas),i=(0,q.getEnabledElement)(o),l=i.viewport,s=i.renderingEngine,c=l.canvasToWorld;e._isDrawing=!0;var d=l.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ps(f);if(!g)throw new Error("No active segmentation detected, create one before using the brush tool");var h=g.segmentationRepresentationUID,p=g.segmentationId,m=g.type,w=Os(p),y=Es(p),E=(Cs(f,h,w),at(p).representationData[m].volumeId),I=q.cache.getVolume(E),b=a,C=e.configuration.brushSize,_=[b[0],b[1]+C],T=[b[0],b[1]-C],D=[b[0]-C,b[1]],O=[b[0]+C,b[1]],S=(Pn(u),Pn(v),l.getFrameOfReferenceUID(),e.getToolName(),c(_),c(T),c(D),c(O),[l.id]);return e._editData={segmentation:I,segmentsLocked:y},e._activateDraw(o),xa(o),t.preventDefault(),vr(s,S),!0})),$(mr(e),"mouseMoveCallback",(function(t){e.updateCursor(t)})),$(mr(e),"_mouseDragCallback",(function(t){e._isDrawing=!0;var n=e.configuration.brushSize,r=t.detail,o=r.element,a=r.currentPoints.canvas,i=(0,q.getEnabledElement)(o),l=i.renderingEngine,s=i.viewport.canvasToWorld,c=e._editData,d=c.segmentation,u=c.segmentsLocked,v=e._hoverData,f=v.segmentIndex,g=v.segmentationId,h=v.segmentationRepresentationUID,p=v.brushCursor,m=v.viewportIdsToRender,w=p.metadata,y=w.viewPlaneNormal,E=w.viewUp,I=p.data,b=a,C=n,_=[b[0],b[1]+C],T=[b[0],b[1]-C],D=[b[0]-C,b[1]],O=[b[0]+C,b[1]];I.handles.points=[s(_),s(T),s(D),s(O)],I.invalidated=!0,vr(l,m);var S={points:I.handles.points,volume:d,segmentIndex:f,segmentsLocked:u,viewPlaneNormal:y,toolGroupId:e.toolGroupId,segmentationId:g,segmentationRepresentationUID:h,viewUp:E};e.applyActiveStrategy(i,S)})),$(mr(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.segmentation,a=r.segmentsLocked,i=e._hoverData,l=i.segmentIndex,s=i.segmentationId,c=i.segmentationRepresentationUID,d=i.brushCursor,u=d.data,v=d.metadata,f=v.viewPlaneNormal,g=v.viewUp;e._deactivateDraw(n),Sa(n);var h=(0,q.getEnabledElement)(n),p=h.viewport;if(e._editData=null,e._isDrawing=!1,e.updateCursor(t),p instanceof q.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:o,segmentIndex:l,segmentsLocked:a,viewPlaneNormal:f,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:c,viewUp:g};e.applyActiveStrategy(h,m)})),$(mr(e),"_activateDraw",(function(t){t.addEventListener(H.MOUSE_UP,e._mouseUpCallback),t.addEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),$(mr(e),"_deactivateDraw",(function(t){t.removeEventListener(H.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(H.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(H.MOUSE_CLICK,e._mouseUpCallback)})),e}return Y(o,[{key:"updateCursor",value:function(e){var t=this.configuration.brushSize,n=e.detail,r=n.element,o=n.currentPoints.canvas,a=(0,q.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport,s=l.canvasToWorld,c=l.getCamera(),d=c.viewPlaneNormal,u=c.viewUp,v=this.toolGroupId,f=ps(v);if(f){var g=f.segmentationRepresentationUID,h=f.segmentationId,p=Os(h),m=(Es(h),Cs(v,g,p)),w=[l.id],y=o,E=t,I=[y[0],y[1]+E],b=[y[0],y[1]-E],C=[y[0]-E,y[1]],_=[y[0]+E,y[1]],T={metadata:{viewPlaneNormal:Pn(d),viewUp:Pn(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:m},data:{invalidated:!0,handles:{points:[s(I),s(b),s(C),s(_)]},cachedStats:{}}};this._hoverData={brushCursor:T,centerCanvas:y,segmentIndex:p,segmentationId:h,segmentationRepresentationUID:g,segmentColor:m,viewportIdsToRender:w},vr(i,w)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor,o=r.metadata,a=o.brushCursorUID,i=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),l=i[0],s=i[1],c=[Math.floor((l[0]+s[0])/2),Math.floor((l[1]+s[1])/2)],d=Math.abs(l[1]-Math.floor((l[1]+s[1])/2)),u="rgb(".concat(o.segmentColor.slice(0,3),")");n.getRenderingEngine()?za(t,a,"0",c,d,{color:u}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(Nr);$(Yd,"toolName","Brush")}(),c}()}));
3
3
  //# sourceMappingURL=index.js.map