@cornerstonejs/tools 0.49.1 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/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("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Common/Core/CellArray"),require("@kitware/vtk.js/Common/Core/Points"),require("@kitware/vtk.js/Rendering/Core/Mapper"),require("@kitware/vtk.js/Rendering/Core/Actor"),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","@kitware/vtk.js/Common/DataModel/PolyData","@kitware/vtk.js/Common/Core/CellArray","@kitware/vtk.js/Common/Core/Points","@kitware/vtk.js/Rendering/Core/Mapper","@kitware/vtk.js/Rendering/Core/Actor","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("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Common/Core/CellArray"),require("@kitware/vtk.js/Common/Core/Points"),require("@kitware/vtk.js/Rendering/Core/Mapper"),require("@kitware/vtk.js/Rendering/Core/Actor"),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["@kitware/vtk.js/Common/DataModel/PolyData"],e["@kitware/vtk.js/Common/Core/CellArray"],e["@kitware/vtk.js/Common/Core/Points"],e["@kitware/vtk.js/Rendering/Core/Mapper"],e["@kitware/vtk.js/Rendering/Core/Actor"],e.window,e["@kitware/vtk.js/Common/Core/Math"],e["@kitware/vtk.js/Common/Core/MatrixBuilder"])}(self,(function(e,t,n,r,o,a,i,l,c,s,d){return function(){var u={162:function(e,t,n){e.exports=n(47)},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]",c="[object Function]",s="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",E="[object ArrayBuffer]",y="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",T="[object Int16Array]",_="[object Int32Array]",O="[object Uint8Array]",D="[object Uint8ClampedArray]",S="[object Uint16Array]",x="[object Uint32Array]",k=/\w*$/,M=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,R={};R[a]=R["[object Array]"]=R[E]=R[y]=R[i]=R[l]=R[I]=R[b]=R[C]=R[T]=R[_]=R[d]=R[u]=R[v]=R[g]=R[h]=R[p]=R[m]=R[O]=R[D]=R[S]=R[x]=!0,R["[object Error]"]=R[c]=R[w]=!1;var N="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=N||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 H(e,t){return e.add(t),e}function F(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 W(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=Function.prototype,J=Object.prototype,Z=L["__core-js_shared__"],X=(K=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=$.toString,ee=J.hasOwnProperty,te=J.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=q(Object.getPrototypeOf,Object),le=Object.create,ce=J.propertyIsEnumerable,se=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=q(Object.keys,Object),fe=Le(L,"DataView"),ge=Le(L,"Map"),he=Le(L,"Promise"),pe=Le(L,"Set"),me=Le(L,"WeakMap"),we=Le(Object,"create"),Ee=He(fe),ye=He(ge),Ie=He(he),be=He(pe),Ce=He(me),Te=oe?oe.prototype:void 0,_e=Te?Te.valueOf:void 0;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 De(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new De(e)}function ke(e,t,n){var r=e[t];ee.call(e,t)&&Fe(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Me(e,t){for(var n=e.length;n--;)if(Fe(e[n][0],t))return n;return-1}function Pe(e,t,n,r,o,f,w){var M;if(r&&(M=f?r(e,o,f,w):r(e)),void 0!==M)return M;if(!Ke(e))return e;var P=We(e);if(P){if(M=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,M)}else{var N=Ve(e),A=N==c||N==s;if(qe(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(N==v||N==a||A&&!f){if(W(e))return f?e:{};if(M=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 Ne(e,Ue(e),t)}(e,function(e,t){return e&&Ne(t,Ye(t),e)}(M,e))}else{if(!R[N])return f?e:{};M=function(e,t,n,r){var o,a=e.constructor;switch(t){case E:return Re(e);case i:case l:return new a(+e);case y:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case T:case _:case O:case D:case S:case x:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return F(t?n(G(e),!0):G(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,k.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return F(t?n(z(e),!0):z(e),H,new e.constructor)}(e,r,n);case m:return o=e,_e?Object(_e.call(o)):{}}}(e,N,Pe,t)}}w||(w=new xe);var L=w.get(e);if(L)return L;if(w.set(e,M),!P)var U=n?function(e){return function(e,t,n){var r=t(e);return We(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]),ke(M,a,Pe(o,t,n,r,a,e,w))})),M}function Re(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Ne(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;ke(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)||W(e)?ne:M).test(He(e));var t}(n)?n:void 0}Oe.prototype.clear=function(){this.__data__=we?we(null):{}},Oe.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Oe.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},Oe.prototype.has=function(e){var t=this.__data__;return we?void 0!==t[e]:ee.call(t,e)},Oe.prototype.set=function(e,t){return this.__data__[e]=we&&void 0===t?r:t,this},De.prototype.clear=function(){this.__data__=[]},De.prototype.delete=function(e){var t=this.__data__,n=Me(t,e);return!(n<0||(n==t.length-1?t.pop():se.call(t,n,1),0))},De.prototype.get=function(e){var t=this.__data__,n=Me(t,e);return n<0?void 0:t[n][1]},De.prototype.has=function(e){return Me(this.__data__,e)>-1},De.prototype.set=function(e,t){var n=this.__data__,r=Me(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Oe,map:new(ge||De),string:new Oe}},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 De},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 De){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?q(de,Object):function(){return[]},Ve=function(e){return te.call(e)};function Be(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||P.test(e))&&e>-1&&e%1==0&&e<t}function je(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||J)}function He(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(fe&&Ve(new fe(new ArrayBuffer(1)))!=y||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?He(n):void 0;if(r)switch(r){case Ee:return y;case ye:return d;case Ie:return f;case be:return h;case Ce:return w}return t});var We=Array.isArray;function Ge(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var qe=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==c||t==s}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return Ge(e)?function(e,t){var n=We(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&Ge(e)}(e)&&ee.call(e,"callee")&&(!ce.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 Pe(e,!0,!0)}},485:function(e,t,n){var r,o="__lodash_hash_undefined__",a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/,l=/^\./,c=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,d=/^\[object .+?Constructor\]$/,u="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,v="object"==typeof self&&self&&self.Object===Object&&self,f=u||v||Function("return this")(),g=Array.prototype,h=Function.prototype,p=Object.prototype,m=f["__core-js_shared__"],w=(r=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",E=h.toString,y=p.hasOwnProperty,I=p.toString,b=RegExp("^"+E.call(y).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),C=f.Symbol,T=g.splice,_=N(f,"Map"),O=N(Object,"create"),D=C?C.prototype:void 0,S=D?D.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 k(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 P(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 R(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 N(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 E.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}x.prototype.clear=function(){this.__data__=O?O(null):{}},x.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},x.prototype.get=function(e){var t=this.__data__;if(O){var n=t[e];return n===o?void 0:n}return y.call(t,e)?t[e]:void 0},x.prototype.has=function(e){var t=this.__data__;return O?void 0!==t[e]:y.call(t,e)},x.prototype.set=function(e,t){return this.__data__[e]=O&&void 0===t?o:t,this},k.prototype.clear=function(){this.__data__=[]},k.prototype.delete=function(e){var t=this.__data__,n=P(t,e);return!(n<0||(n==t.length-1?t.pop():T.call(t,n,1),0))},k.prototype.get=function(e){var t=this.__data__,n=P(t,e);return n<0?void 0:t[n][1]},k.prototype.has=function(e){return P(this.__data__,e)>-1},k.prototype.set=function(e,t){var n=this.__data__,r=P(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},M.prototype.clear=function(){this.__data__={hash:new x,map:new(_||k),string:new x}},M.prototype.delete=function(e){return R(this,e).delete(e)},M.prototype.get=function(e){return R(this,e).get(e)},M.prototype.has=function(e){return R(this,e).has(e)},M.prototype.set=function(e,t){return R(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(c,(function(e,t,r,o){n.push(r?o.replace(s,"$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||M),n}U.Cache=M;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}},47:function(e){var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof p?t:p,a=Object.create(o.prototype),i=new S(r||[]);return a._invoke=function(e,t,n){var r=u;return function(o,a){if(r===f)throw new Error("Generator is already running");if(r===g){if("throw"===o)throw a;return k()}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=_(i,n);if(l){if(l===h)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var c=d(e,t,n);if("normal"===c.type){if(r=n.done?g:v,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=g,n.method="throw",n.arg=c.arg)}}}(e,n,i),a}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u="suspendedStart",v="suspendedYield",f="executing",g="completed",h={};function p(){}function m(){}function w(){}var E={};c(E,a,(function(){return this}));var y=Object.getPrototypeOf,I=y&&y(y(x([])));I&&I!==n&&r.call(I,a)&&(E=I);var b=w.prototype=p.prototype=Object.create(E);function C(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(o,a,i,l){var c=d(e[o],e,a);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,l)}))}l(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 _(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,_(e,n),"throw"===n.method))return h;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=d(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,h;var a=o.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,h):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function O(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 D(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return i.next=i}}return{next:k}}function k(){return{value:t,done:!0}}return m.prototype=w,c(b,"constructor",w),c(w,"constructor",m),m.displayName=c(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,c(e,l,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},C(T.prototype),c(T.prototype,i,(function(){return this})),e.AsyncIterator=T,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new T(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(b),c(b,l,"Generator"),c(b,a,(function(){return this})),c(b,"toString",(function(){return"[object Generator]"})),e.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}},e.values=x,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(D),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},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 n=this;function o(r,o){return l.type="throw",l.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):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),h},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),D(n),h}},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;D(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:x(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),h}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},396:function(e){"use strict";e.exports=o},807:function(e){"use strict";e.exports=s},847:function(e){"use strict";e.exports=d},348:function(e){"use strict";e.exports=a},441:function(e){"use strict";e.exports=n},70:function(e){"use strict";e.exports=r},474:function(e){"use strict";e.exports=l},795:function(e){"use strict";e.exports=t},610:function(e){"use strict";e.exports=i},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=c}},v={};function f(e){var t=v[e];if(void 0!==t)return t.exports;var n=v[e]={id:e,loaded:!1,exports:{}};return u[e](n,n.exports,f),n.loaded=!0,n.exports}f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var g={};return function(){"use strict";f.r(g),f.d(g,{AngleTool:function(){return og},AnnotationTool:function(){return gs},ArrowAnnotateTool:function(){return ng},BaseTool:function(){return ua},BidirectionalTool:function(){return Xf},BrushTool:function(){return pd},CONSTANTS:function(){return d},CircleScissorsTool:function(){return Cg},CobbAngleTool:function(){return lg},CrosshairsTool:function(){return Ff},DragProbeTool:function(){return ff},EllipticalROITool:function(){return $f},Enums:function(){return q},LengthTool:function(){return Pf},MIPJumpToClickTool:function(){return xf},MagnifyTool:function(){return dg},PaintFillTool:function(){return xg},PanTool:function(){return rf},PlanarFreehandROITool:function(){return Ov},PlanarRotateTool:function(){return bf},ProbeTool:function(){return uf},RectangleROIStartEndThresholdTool:function(){return ks},RectangleROIThresholdTool:function(){return Ds},RectangleROITool:function(){return _s},RectangleScissorsTool:function(){return Ig},ReferenceCursors:function(){return vg},ReferenceLines:function(){return qf},ReferenceLinesTool:function(){return qf},ScaleOverlayTool:function(){return hg},SegmentationDisplayTool:function(){return Ei},SphereScissorsTool:function(){return _g},StackScrollMouseWheelTool:function(){return Tf},StackScrollTool:function(){return Ef},Synchronizer:function(){return Gi},SynchronizerManager:function(){return l},ToolGroupManager:function(){return s},TrackballRotateTool:function(){return af},Types:function(){return B},VolumeRotateMouseWheelTool:function(){return Df},WindowLevelTool:function(){return hf},ZoomTool:function(){return mf},addTool:function(){return Ui},annotation:function(){return H},cancelActiveManipulations:function(){return ji},cursors:function(){return V},destroy:function(){return Ni},drawing:function(){return v},init:function(){return Ri},removeTool:function(){return Vi},segmentation:function(){return G},state:function(){return qe},synchronizers:function(){return u},utilities:function(){return U}});var e={};f.r(e),f.d(e,{checkAndDefineIsLockedProperty:function(){return le},getAnnotationsLocked:function(){return oe},getAnnotationsLockedCount:function(){return ie},isAnnotationLocked:function(){return ae},setAnnotationLocked:function(){return ne},unlockAllAnnotations:function(){return re}});var t={};f.r(t),f.d(t,{deselectAnnotation:function(){return me},getAnnotationsSelected:function(){return we},getAnnotationsSelectedByToolName:function(){return Ee},getAnnotationsSelectedCount:function(){return Ie},isAnnotationSelected:function(){return ye},setAnnotationSelected:function(){return he}});var n={};f.r(n),f.d(n,{checkAndDefineIsVisibleProperty:function(){return xe},isAnnotationVisible:function(){return Se},setAnnotationVisibility:function(){return Oe},showAllAnnotations:function(){return De}});var r={};f.r(r),f.d(r,{addAnnotation:function(){return et},getAnnotation:function(){return rt},getAnnotationManager:function(){return Je},getAnnotations:function(){return Qe},getNumberOfAnnotations:function(){return tt},removeAllAnnotations:function(){return ot},removeAnnotation:function(){return nt},resetAnnotationManager:function(){return Xe},setAnnotationManager:function(){return Ze}});var o={};f.r(o),f.d(o,{triggerSegmentationDataModified:function(){return Et},triggerSegmentationModified:function(){return wt},triggerSegmentationRemoved:function(){return ht},triggerSegmentationRepresentationModified:function(){return mt},triggerSegmentationRepresentationRemoved:function(){return pt}});var a={};f.r(a),f.d(a,{addColorLUT:function(){return Ft},addSegmentation:function(){return _t},addSegmentationRepresentation:function(){return Nt},getColorLUT:function(){return Ht},getDefaultSegmentationStateManager:function(){return bt},getGlobalConfig:function(){return At},getSegmentSpecificRepresentationConfig:function(){return Pt},getSegmentation:function(){return Ct},getSegmentationRepresentationByUID:function(){return Ut},getSegmentationRepresentationSpecificConfig:function(){return Mt},getSegmentationRepresentations:function(){return Ot},getSegmentations:function(){return Tt},getToolGroupIdsWithSegmentation:function(){return Dt},getToolGroupSpecificConfig:function(){return St},removeColorLUT:function(){return jt},removeSegmentation:function(){return Vt},removeSegmentationRepresentation:function(){return Bt},setGlobalConfig:function(){return Lt},setSegmentSpecificRepresentationConfig:function(){return Rt},setSegmentationRepresentationSpecificConfig:function(){return kt},setToolGroupSpecificConfig:function(){return xt}});var i={};f.r(i),f.d(i,{copyPoints:function(){return Wn},copyPointsList:function(){return Fn},getDeltaDistance:function(){return Bn},getDeltaDistanceBetweenIPoints:function(){return Hn},getDeltaPoints:function(){return Vn},getDeltaRotation:function(){return jn},getMeanPoints:function(){return Gn},getMeanTouchPoints:function(){return qn}});var l={};f.r(l),f.d(l,{createSynchronizer:function(){return qi},destroy:function(){return zi},destroySynchronizer:function(){return $i},getAllSynchronizers:function(){return Yi},getSynchronizer:function(){return Ki},getSynchronizersForViewport:function(){return qo}});var c={};f.r(c),f.d(c,{hideElementCursor:function(){return Ul},initElementCursor:function(){return Nl},resetElementCursor:function(){return Ll},setElementCursor:function(){return Al}});var s={};f.r(s),f.d(s,{createToolGroup:function(){return zl},destroy:function(){return Mi},destroyToolGroup:function(){return xi},getAllToolGroups:function(){return Kl},getToolGroup:function(){return Zo},getToolGroupForViewport:function(){return Or},getToolGroupsWithToolName:function(){return Ye}});var d={};f.r(d),f.d(d,{COLOR_LUT:function(){return it}});var u={};f.r(u),f.d(u,{createCameraPositionSynchronizer:function(){return Jl},createStackImageSynchronizer:function(){return hc},createVOISynchronizer:function(){return Xl},createZoomPanSynchronizer:function(){return tc}});var v={};f.r(v),f.d(v,{draw:function(){return _r},drawArrow:function(){return Ac},drawCircle:function(){return Ec},drawEllipse:function(){return yc},drawHandles:function(){return Ic},drawLine:function(){return bc},drawLinkedTextBox:function(){return Rc},drawPolyline:function(){return Tc},drawRect:function(){return Nc},drawTextBox:function(){return xc}});var h={};f.r(h),f.d(h,{getActiveSegmentationRepresentation:function(){return od},setActiveSegmentationRepresentation:function(){return ad}});var p={};f.r(p),f.d(p,{getLockedSegments:function(){return cd},isSegmentIndexLocked:function(){return id},setSegmentIndexLocked:function(){return ld}});var m={};f.r(m),f.d(m,{getActiveSegmentIndex:function(){return dd},setActiveSegmentIndex:function(){return sd}});var w={};f.r(w),f.d(w,{addColorLUT:function(){return ud},getColorForSegmentIndex:function(){return fd},setColorForSegmentIndex:function(){return gd},setColorLUT:function(){return vd}});var E={};f.r(E),f.d(E,{createLabelmapVolumeForViewport:function(){return js},createMergedLabelmapForIndex:function(){return Us},floodFill:function(){return qs},getBrushSizeForToolGroup:function(){return Ed},getBrushThresholdForToolGroup:function(){return Id},getDefaultRepresentationConfig:function(){return Bs},isValidRepresentationConfig:function(){return Vs},rectangleROIThresholdVolumeByRange:function(){return Ls},setBrushSizeForToolGroup:function(){return wd},setBrushThresholdForToolGroup:function(){return yd},thresholdVolumeByRange:function(){return $c},triggerSegmentationRender:function(){return Ci}});var y={};f.r(y),f.d(y,{getTextBoxCoordsCanvas:function(){return Es}});var I={};f.r(I),f.d(I,{findClosestPoint:function(){return kc},liangBarksyClip:function(){return Td}});var b={};f.r(b),f.d(b,{getCanvasEllipseCorners:function(){return Ys},pointInEllipse:function(){return $s}});var C={};f.r(C),f.d(C,{distanceToPoint:function(){return ms},distanceToPointSquared:function(){return ps},intersectLine:function(){return Od}});var T={};f.r(T),f.d(T,{distanceToPoint:function(){return ws}});var _={};f.r(_),f.d(_,{addCanvasPointsToArray:function(){return Ad},calculateAreaOfPoints:function(){return Ud},getClosestIntersectionWithPolyline:function(){return Sd},getFirstIntersectionWithPolyline:function(){return Dd},getSubPixelSpacingAndXYDirections:function(){return Rd},pointCanProjectOnLine:function(){return Ld},pointsAreWithinCloseContourProximity:function(){return Nd}});var O={};f.r(O),f.d(O,{distanceToPoint:function(){return Vd}});var D={};f.r(D),f.d(D,{ellipse:function(){return b},lineSegment:function(){return C},point:function(){return O},polyline:function(){return _},rectangle:function(){return T},vec2:function(){return I}});var S={};f.r(S),f.d(S,{default:function(){return Gd},filterAnnotationsForDisplay:function(){return ls},filterAnnotationsWithinSlice:function(){return is},getPointInLineOfSightWithCriteria:function(){return Hd},getWorldWidthAndHeightFromCorners:function(){return ys}});var x={};f.r(x),f.d(x,{filterViewportsWithFrameOfReferenceUID:function(){return Jc},filterViewportsWithParallelNormals:function(){return ns},filterViewportsWithToolEnabled:function(){return es},getViewportIdsWithToolToRender:function(){return rs}});var k={};f.r(k),f.d(k,{getOrientationStringLPS:function(){return qd},invertOrientationStringLPS:function(){return zd}});var M={};f.r(M),f.d(M,{Events:function(){return Kd},addToolState:function(){return $d},getToolState:function(){return Jd},playClip:function(){return Xd},stopClip:function(){return Qd}});var P={};f.r(P),f.d(P,{extend2DBoundingBoxInViewAxis:function(){return Ms},getBoundingBoxAroundShape:function(){return zc}});var R={};f.r(R),f.d(R,{default:function(){return Sv},interpolateAnnotation:function(){return Dv}});var N={};f.r(N),f.d(N,{getBoundsIJKFromRectangleAnnotations:function(){return Ps}});var A={};f.r(A),f.d(A,{disable:function(){return jv},enable:function(){return Bv},getConfiguration:function(){return Hv},setConfiguration:function(){return Fv}});var L={};f.r(L),f.d(L,{isViewportPreScaled:function(){return bs},jumpToSlice:function(){return sc},jumpToWorld:function(){return Wv}});var U={};f.r(U),f.d(U,{boundingBox:function(){return P},calibrateImageSpacing:function(){return Gc},cine:function(){return M},clip:function(){return rc},debounce:function(){return Hc},deepMerge:function(){return sa},drawing:function(){return y},getAnnotationNearPoint:function(){return Uc},getAnnotationNearPointOnEnabledElement:function(){return Vc},isObject:function(){return jc},jumpToSlice:function(){return sc},math:function(){return D},orientation:function(){return k},planar:function(){return S},planarFreehandROITool:function(){return R},pointInShapeCallback:function(){return qc},pointInSurroundingSphereCallback:function(){return Yc},rectangleROITool:function(){return N},scroll:function(){return oc},segmentation:function(){return E},stackPrefetch:function(){return A},throttle:function(){return Fc},touch:function(){return i},triggerAnnotationRender:function(){return Nr},triggerAnnotationRenderForViewportIds:function(){return Ko},triggerEvent:function(){return K.triggerEvent},viewport:function(){return L},viewportFilters:function(){return x}});var V={};f.r(V),f.d(V,{CursorNames:function(){return qv},CursorSVG:function(){return hl},ImageMouseCursor:function(){return ll},MouseCursor:function(){return el},SVGMouseCursor:function(){return Dl},elementCursor:function(){return c},registerCursor:function(){return ml},setCursorForElement:function(){return Gv}});var B={};f.r(B);var j={};f.r(j),f.d(j,{getFont:function(){return zv},getState:function(){return cs},style:function(){return bl}});var H={};f.r(H),f.d(H,{FrameOfReferenceSpecificAnnotationManager:function(){return Fe},config:function(){return j},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var F={};f.r(F),f.d(F,{getSegmentationVisibility:function(){return ef},setSegmentationVisibility:function(){return Qv},setVisibilityForSegmentIndex:function(){return tf}});var W={};f.r(W),f.d(W,{color:function(){return w},getGlobalConfig:function(){return ba},getGlobalRepresentationConfig:function(){return Ta},getSegmentSpecificConfig:function(){return ka},getSegmentationRepresentationSpecificConfig:function(){return Sa},getToolGroupSpecificConfig:function(){return Oa},setGlobalConfig:function(){return Ca},setGlobalRepresentationConfig:function(){return _a},setSegmentSpecificConfig:function(){return Ma},setSegmentationRepresentationSpecificConfig:function(){return xa},setToolGroupSpecificConfig:function(){return Da},visibility:function(){return F}});var G={};f.r(G),f.d(G,{activeSegmentation:function(){return h},addSegmentationRepresentations:function(){return Xv},addSegmentations:function(){return Yv},config:function(){return W},removeSegmentationsFromToolGroup:function(){return Si},segmentIndex:function(){return m},segmentLocking:function(){return p},state:function(){return a},triggerSegmentationEvents:function(){return o}});var q={};f.r(q),f.d(q,{AnnotationStyleStates:function(){return il},Events:function(){return Y},KeyboardBindings:function(){return Yr},MouseBindings:function(){return Kr},SegmentationRepresentations:function(){return st},Swipe:function(){return Pn},ToolModes:function(){return ze}});var z,K=f(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",e.TOUCH_START="CORNERSTONE_TOOLS_TOUCH_START",e.TOUCH_START_ACTIVATE="CORNERSTONE_TOOLS_TOUCH_START_ACTIVATE",e.TOUCH_PRESS="CORNERSTONE_TOOLS_TOUCH_PRESS",e.TOUCH_DRAG="CORNERSTONE_TOOLS_TOUCH_DRAG",e.TOUCH_END="CORNERSTONE_TOOLS_TOUCH_END",e.TOUCH_TAP="CORNERSTONE_TOOLS_TAP",e.TOUCH_SWIPE="CORNERSTONE_TOOLS_SWIPE"}(z||(z={}));var Y=z;function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function J(e,t,n){return t&&$(e.prototype,t),n&&$(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Z(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function X(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Q=f(907),ee=f.n(Q),te=new Set;function ne(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=ce();e&&(t?se(e,te,n):de(e,te,n)),ue(n,te)}function re(){var e=ce();!function(e,t){e.forEach((function(n){de(n,e,t)}))}(te,e),ue(e,te)}function oe(){return Array.from(te)}function ae(e){return te.has(e)}function ie(){return te.size}function le(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==ve||t.get!==fe):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:ve,get:fe}),ne(e,t)}}function ce(){return Object.freeze({added:[],removed:[],locked:[]})}function se(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function de(e,t,n){t.delete(e)&&n.removed.push(e)}function ue(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,K.triggerEvent)(K.eventTarget,Y.ANNOTATION_LOCK_CHANGE,e))}function ve(e){ne(this,e)}function fe(){return ae(this)}var ge=new Set;function he(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?pe(e,n):me(e)}function pe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=be();t||Ce(ge,n),e&&!ge.has(e)&&(ge.add(e),n.added.push(e)),Te(n,ge)}function me(e){var t=be();e?ge.delete(e)&&t.removed.push(e):Ce(ge,t),Te(t,ge)}function we(){return Array.from(ge)}function Ee(e){return we().filter((function(t){return rt(t).metadata.toolName===e}))}function ye(e){return ge.has(e)}function Ie(){return ge.size}function be(){return Object.freeze({added:[],removed:[],selection:[]})}function Ce(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function Te(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,K.triggerEvent)(K.eventTarget,Y.ANNOTATION_SELECTION_CHANGE,e))}var _e=new Set;function Oe(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=ke();e&&(t?Me(e,_e,n):Pe(e,_e,n)),Re(n)}function De(){var e=ke();_e.forEach((function(t){Me(t,_e,e)})),Re(e)}function Se(e){if(rt(e))return!_e.has(e)}function xe(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!==Ne||t.get!==Ae):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Ne,get:Ae}),Oe(e.annotationUID,n)}}function ke(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Me(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function Pe(e,t,n){t.has(e)||(t.add(e),ye(e)&&me(e),n.lastHidden.push(e))}function Re(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(_e.forEach((function(t){e.hidden.push(t)})),(0,K.triggerEvent)(K.eventTarget,Y.ANNOTATION_VISIBILITY_CHANGE,e))}function Ne(e){Oe(this.annotationUID,e)}function Ae(){return Se(this.annotationUID)}function Le(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 Ue(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)?Ue(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 Ue(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 Ve,Be,je=J((function e(t){var n=this;Z(this,e),X(this,"annotations",void 0),X(this,"uid",void 0),X(this,"getGroupKey",(function(e){if("string"==typeof e)return e;var t=e,n=(0,K.getEnabledElement)(t);if(!n)throw new Error("Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID");return n.FrameOfReferenceUID})),X(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)}))}))})),X(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),X(this,"getAnnotations",(function(e,t){var r=n.annotations;return r[e]?t?r[e][t]:r[e]:[]})),X(this,"getAnnotation",(function(e){var t=n.annotations;for(var r in t){var o=t[r];for(var a in o){var i,l=Le(o[a]);try{for(l.s();!(i=l.n()).done;){var c=i.value;if(e===c.annotationUID)return c}}catch(e){l.e(e)}finally{l.f()}}}})),X(this,"getNumberOfAnnotations",(function(e,t){var r=n.getAnnotations(e,t);if(!r.length)return 0;if(t)return r.length;var o=0;for(var a in r)o+=r[a].length;return o})),X(this,"addAnnotation",(function(e,t){var r=e.metadata,o=r.FrameOfReferenceUID,a=r.toolName;t=t||o;var i=n.annotations,l=i[t];l||(i[t]={},l=i[t]);var c=l[a];c||(l[a]=[],c=l[a]),c.push(e),le(e),xe(e)})),X(this,"removeAnnotation",(function(e){var t=n.annotations;for(var r in t){var o=t[r];for(var a in o){var i=o[a],l=i.findIndex((function(t){return t.annotationUID===e}));-1!==l&&(i.splice(l,1),0===i.length&&delete o[a])}0===Object.keys(o).length&&delete t[r]}})),X(this,"removeAnnotations",(function(e,t){var r=n.annotations;r[e]&&(t?delete r[e][t]:delete r[e])})),X(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var a=o[t];return ee()(a)}if(e){var i=r[e];return ee()(i)}return ee()(r)})),X(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=ee()(e)})),X(this,"getNumberOfAllAnnotations",(function(){var e=0,t=n.annotations;for(var r in t){var o=t[r];for(var a in o)e+=o[a].length}return e})),X(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=K.utilities.uuidv4()),this.annotations={},this.uid=t,K.eventTarget.addEventListener(K.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)})),He=new je("DEFAULT"),Fe=je,We={},Ge={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:We,enabledElements:[],handleRadius:6},qe={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:We,enabledElements:[],handleRadius:6};(Be=Ve||(Ve={})).Active="Active",Be.Passive="Passive",Be.Enabled="Enabled",Be.Disabled="Disabled";var ze=Ve,Ke=[ze.Active,ze.Passive,ze.Enabled],Ye=function(e){return qe.toolGroups.filter((function(t){for(var n=t.toolOptions,r=Object.keys(n),o=0;o<r.length;o++)if(e===r[o]&&n[e]&&Ke.includes(n[e].mode))return!0;return!1}))},$e=He;function Je(){return $e}function Ze(e){$e=e}function Xe(){$e=He}function Qe(e,t){var n=Je(),r=n.getGroupKey(t);return n.getAnnotations(r,e)}function et(e,t){void 0===e.annotationUID&&(e.annotationUID=K.utilities.uuidv4());var n=Je(),r=n.getGroupKey(t);return n.addAnnotation(e,r),t instanceof HTMLDivElement&&function(e,t){var n=(0,K.getEnabledElement)(t),r=n.renderingEngine,o=n.viewportId,a=Y.ANNOTATION_ADDED,i={annotation:e,viewportId:o,renderingEngineId:r.id};(0,K.triggerEvent)(K.eventTarget,a,i)}(e,t),function(e){var t=e.metadata.toolName,n=Ye(t);if(n.length){var r=[];if(n.forEach((function(t){t.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,o=t.viewportId,a=(0,K.getEnabledElementByIds)(o,n).FrameOfReferenceUID;e.metadata.FrameOfReferenceUID===a&&r.push(t)}))})),r.length){var o=Y.ANNOTATION_ADDED;r.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,a={annotation:e,viewportId:r,renderingEngineId:n};(0,K.triggerEvent)(K.eventTarget,o,a)}))}}}(e),e.annotationUID}function tt(e,t){var n=Je(),r=n.getGroupKey(t);return n.getNumberOfAnnotations(r,e)}function nt(e){var t=Je(),n=t.getAnnotation(e);if(n){t.removeAnnotation(e);var r=Y.ANNOTATION_REMOVED,o={annotation:n,annotationManagerUID:t.uid};(0,K.triggerEvent)(K.eventTarget,r,o)}}function rt(e){return Je().getAnnotation(e)}function ot(){Je().removeAllAnnotations()}var at,it=[[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]],lt={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.7,fillAlphaInactive:.65,outlineOpacity:1,outlineOpacityInactive:.85},ct=function(){return lt};!function(e){e.Labelmap="LABELMAP",e.Contour="CONTOUR"}(at||(at={}));var st=at;function dt(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 ut(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dt(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var vt=ct(),ft={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:X({},st.Labelmap,vt)},toolGroups:{}},gt=new(function(){function e(t){Z(this,e),X(this,"state",void 0),X(this,"uid",void 0),t||(t=K.utilities.uuidv4()),this.state=ee()(ft),this.uid=t}return J(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=ee()(ft)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentation",value:function(e){this.state.segmentations=this.state.segmentations.filter((function(t){return t.segmentationId!==e}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"getSegmentationRepresentationSpecificConfig",value:function(e,t){var n=this.getSegmentationRepresentationByUID(e,t);if(n)return n.segmentationRepresentationSpecificConfig}},{key:"setSegmentationRepresentationSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentationRepresentationSpecificConfig=n)}},{key:"getSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);if(r)return r.segmentSpecificConfig[n]}},{key:"setSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentSpecificConfig=n)}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=ut(ut({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"removeColorLUT",value:function(e){delete this.state.colorLUT[e]}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(it,0)}}]),e}())("DEFAULT");function ht(e){var t={segmentationId:e};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_REMOVED,t)}function pt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_REPRESENTATION_REMOVED,n)}function mt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_REPRESENTATION_MODIFIED,n):(Ot(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function wt(e){(e?[e]:Tt().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_MODIFIED,t)}))}function Et(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_DATA_MODIFIED,n)}function yt(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 It(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yt(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function bt(){return gt}function Ct(e){return bt().getSegmentation(e)}function Tt(){return bt().getState().segmentations}function _t(e,t){var n=bt(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},segmentLabels:{},label:null,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:X({},n.type,It({},n.data))}}(e);n.addSegmentation(r),t||wt(r.segmentationId)}function Ot(e){return bt().getSegmentationRepresentations(e)}function Dt(e){var t=bt(),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 St(e){return bt().getToolGroupSpecificConfig(e)}function xt(e,t,n){bt().setSegmentationRepresentationConfig(e,t),n||mt(e)}function kt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=bt();o.setSegmentationRepresentationSpecificConfig(e,t,n),r||mt(e,t)}function Mt(e,t){return bt().getSegmentationRepresentationSpecificConfig(e,t)}function Pt(e,t,n){return bt().getSegmentSpecificConfig(e,t,n)}function Rt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=bt();o.setSegmentSpecificConfig(e,t,n),r||mt(e,t)}function Nt(e,t,n){bt().addSegmentationRepresentation(e,t),n||mt(e,t.segmentationRepresentationUID)}function At(){return bt().getGlobalConfig()}function Lt(e,t){bt().setGlobalConfig(e),t||wt()}function Ut(e,t){return bt().getSegmentationRepresentationByUID(e,t)}function Vt(e){bt().removeSegmentation(e),ht(e)}function Bt(e,t){bt().removeSegmentationRepresentation(e,t),pt(e,t)}function jt(e){bt().removeColorLUT(e)}function Ht(e){return bt().getColorLUT(e)}function Ft(e,t){bt().addColorLUT(e,t)}var Wt=ct();function Gt(e,t){var n=t||e.currentTarget,r=(0,K.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)}}Lt({renderInactiveSegmentations:!0,representations:X({},st.Labelmap,Wt)},!0);var qt=function(e){var t=e.currentTarget,n=(0,K.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,a=Gt(e,t),i={event:e,eventName:Y.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,K.triggerEvent)(t,Y.MOUSE_DOUBLE_CLICK,i)&&(e.stopImmediatePropagation(),e.preventDefault())},zt=Y.MOUSE_MOVE,Kt=function(e){var t=e.currentTarget,n=(0,K.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:Gt(e),eventName:zt,event:e};(0,K.triggerEvent)(t,zt,r)},Yt=Y.MOUSE_DOWN,$t=Y.MOUSE_DOWN_ACTIVATE,Jt=Y.MOUSE_CLICK,Zt=Y.MOUSE_UP,Xt=Y.MOUSE_DRAG,Qt={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]}},en={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]}},tn={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function nn(e){var t=Gt(e,en.element),n=vn(en.element,en.lastPoints),r=fn(t,n);if(tn.doubleClickTimeout){if(!an(r.canvas))return;cn()}var o={event:e,eventName:Xt,mouseButton:en.mouseButton,renderingEngineId:en.renderingEngineId,viewportId:en.viewportId,camera:{},element:en.element,startPoints:un(en.startPoints),lastPoints:un(n),currentPoints:t,deltaPoints:r};(0,K.triggerEvent)(en.element,Xt,o),en.lastPoints=un(t)}function rn(e){if(clearTimeout(en.preventClickTimeout),tn.doubleClickTimeout)tn.mouseUpEvent?dn():(tn.mouseUpEvent=e,en.element.addEventListener("mousemove",on));else{var t=en.isClickEvent?Jt:Zt,n=Gt(e,en.element),r=fn(n,en.lastPoints),o={event:e,eventName:t,mouseButton:en.mouseButton,element:en.element,renderingEngineId:en.renderingEngineId,viewportId:en.viewportId,camera:{},startPoints:un(en.startPoints),lastPoints:un(en.lastPoints),currentPoints:n,deltaPoints:r};(0,K.triggerEvent)(o.element,t,o),dn()}document.removeEventListener("mousemove",nn)}function on(e){an(fn(Gt(e,en.element),vn(en.element,en.lastPoints)).canvas)&&(cn(),Kt(e))}function an(e){return Math.abs(e[0])+Math.abs(e[1])>3}function ln(){en.isClickEvent=!1}function cn(){tn.ignoreDoubleClick=!0;var e,t,n,r=tn.mouseDownEvent,o=tn.mouseUpEvent;sn(),e=r,t=fn(en.startPoints,en.startPoints),n={event:e,eventName:Yt,element:en.element,mouseButton:en.mouseButton,renderingEngineId:en.renderingEngineId,viewportId:en.viewportId,camera:{},startPoints:en.startPoints,lastPoints:en.startPoints,currentPoints:en.startPoints,deltaPoints:t},en.lastPoints=un(n.lastPoints),(0,K.triggerEvent)(n.element,Yt,n)&&(0,K.triggerEvent)(n.element,$t,n),o&&rn(o)}function sn(){tn.doubleClickTimeout&&(clearTimeout(tn.doubleClickTimeout),tn.doubleClickTimeout=null),tn.mouseDownEvent=null,tn.mouseUpEvent=null}function dn(){var e,t;document.removeEventListener("mouseup",rn),null===(e=en.element)||void 0===e||e.removeEventListener("mousemove",on),null===(t=en.element)||void 0===t||t.addEventListener("mousemove",Kt),sn(),en=JSON.parse(JSON.stringify(Qt))}function un(e){return JSON.parse(JSON.stringify(e))}function vn(e,t){var n=(0,K.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}function fn(e,t){return{page:gn(e.page,t.page),client:gn(e.client,t.client),canvas:gn(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 gn(e,t){return[e[0]-t[0],e[1]-t[1]]}function hn(e){tn.ignoreDoubleClick?(tn.ignoreDoubleClick=!1,e.stopImmediatePropagation(),e.preventDefault()):dn()}var pn=function(e){if(!tn.doubleClickTimeout){tn.doubleClickTimeout=setTimeout(cn,400),tn.mouseDownEvent=e,tn.ignoreDoubleClick=!1,en.element=e.currentTarget,en.mouseButton=e.button;var t=(0,K.getEnabledElement)(en.element),n=t.renderingEngineId,r=t.viewportId;en.renderingEngineId=n,en.viewportId=r,en.preventClickTimeout=setTimeout(ln,en.clickDelay),en.element.removeEventListener("mousemove",Kt);var o=Gt(e,en.element);en.startPoints=un(o),en.lastPoints=un(o),document.addEventListener("mouseup",rn),document.addEventListener("mousemove",nn)}};function mn(e){e.removeEventListener("dblclick",qt),e.removeEventListener("mousedown",pn),e.removeEventListener("mousemove",Kt),e.removeEventListener("dblclick",hn,{capture:!0})}var wn={enable:function(e){mn(e),e.addEventListener("dblclick",qt),e.addEventListener("mousedown",pn),e.addEventListener("mousemove",Kt),e.addEventListener("dblclick",hn,{capture:!0})},disable:mn},En=function(e){var t=e.currentTarget,n=(0,K.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,c=a.pixelX,s=a.pixelY,d=l<0?-1:1,u={event:e,eventName:Y.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:i,spinY:l,pixelX:c,pixelY:s,direction:d},points:Gt(e)};(0,K.triggerEvent)(t,Y.MOUSE_WHEEL,u)}};function yn(e){e.removeEventListener("wheel",En)}var In,bn,Cn={enable:function(e){yn(e),e.addEventListener("wheel",En,{passive:!1})},disable:yn};function Tn(e,t){var n=Date.now();if(e!==In){if(n-bn<=2e3)return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1;In=e}bn=n}var _n=Tn.bind(null,0),On=Tn.bind(null,1);function Dn(e,t,n){var r=n?_n:On;t.forEach((function(t){e.addEventListener(t,r,{passive:!1})}))}function Sn(e,t,n){var r=n?_n:On;t.forEach((function(t){e.removeEventListener(t,r)}))}var xn=["mousedown","mouseup","mousemove"],kn=["touchstart","touchend"];function Mn(e){Sn(e,xn,0),Sn(e,kn,1)}var Pn,Rn={enable:function(e){Mn(e),Dn(e,xn,0),Dn(e,kn,1)},disable:Mn};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 An(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 Ln(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)||An(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 Un(e,t){var n=t||e.currentTarget,r="touchend"===e.type?e.changedTouches:e.touches;return Object.keys(r).map((function(e){var t=function(e){return[e.clientX,e.clientY]}(r[e]),o=function(e){return[e.pageX,e.pageY]}(r[e]),a=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,o);return{page:o,client:t,canvas:a,world:(0,K.getEnabledElement)(n).viewport.canvasToWorld(a),touch:{identifier:e,radiusX:r[e].radiusX,radiusY:r[e].radiusY,force:r[e].force,rotationAngle:r[e].rotationAngle}}}))}function Vn(e,t){var n,r,o=Gn(e),a=Gn(t);return{page:zn(o.page,a.page),client:zn(o.client,a.client),canvas:zn(o.canvas,a.canvas),world:(n=o.world,r=a.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])}}function Bn(e,t){var n=Gn(e),r=Gn(t);return{page:Yn(n.page,r.page),client:Yn(n.client,r.client),canvas:Yn(n.canvas,r.canvas),world:$n(n.world,r.world)}}function jn(e,t){}function Hn(e,t){var n=Kn(e),r=Kn(t);return{page:n.page-r.page,client:n.client-r.client,canvas:n.canvas-r.canvas,world:n.world-r.world}}function Fn(e){return JSON.parse(JSON.stringify(e))}function Wn(e){return JSON.parse(JSON.stringify(e))}function Gn(e){return e.reduce((function(t,n){return{page:[t.page[0]+n.page[0]/e.length,t.page[1]+n.page[1]/e.length],client:[t.client[0]+n.client[0]/e.length,t.client[1]+n.client[1]/e.length],canvas:[t.canvas[0]+n.canvas[0]/e.length,t.canvas[1]+n.canvas[1]/e.length],world:[t.world[0]+n.world[0]/e.length,t.world[1]+n.world[1]/e.length,t.world[2]+n.world[2]/e.length]}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]})}function qn(e){return e.reduce((function(t,n){return{page:[t.page[0]+n.page[0]/e.length,t.page[1]+n.page[1]/e.length],client:[t.client[0]+n.client[0]/e.length,t.client[1]+n.client[1]/e.length],canvas:[t.canvas[0]+n.canvas[0]/e.length,t.canvas[1]+n.canvas[1]/e.length],world:[t.world[0]+n.world[0]/e.length,t.world[1]+n.world[1]/e.length,t.world[2]+n.world[2]/e.length],touch:{identifier:null,radiusX:t.touch.radiusX+n.touch.radiusX/e.length,radiusY:t.touch.radiusY+n.touch.radiusY/e.length,force:t.touch.force+n.touch.force/e.length,rotationAngle:t.touch.rotationAngle+n.touch.rotationAngle/e.length}}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:{identifier:null,radiusX:0,radiusY:0,force:0,rotationAngle:0}})}function zn(e,t){return[e[0]-t[0],e[1]-t[1]]}function Kn(e){for(var t=[],n=0;n<e.length;n++)for(var r=0;r<e.length;r++)n<r&&t.push({page:Yn(e[n].page,e[r].page),client:Yn(e[n].client,e[r].client),canvas:Yn(e[n].canvas,e[r].canvas),world:$n(e[n].world,e[r].world)});return t.reduce((function(e,n){return{page:e.page+n.page/t.length,client:e.client+n.client/t.length,canvas:e.canvas+n.canvas/t.length,world:e.world+n.world/t.length}}),{page:0,client:0,canvas:0,world:0})}function Yn(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function $n(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2))}!function(e){e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT"}(Pn||(Pn={}));var Jn=K.Settings.getRuntimeSettings(),Zn=Y.TOUCH_START,Xn=Y.TOUCH_START_ACTIVATE,Qn=Y.TOUCH_PRESS,er=Y.TOUCH_DRAG,tr=Y.TOUCH_END,nr=Y.TOUCH_TAP,rr=Y.TOUCH_SWIPE,or={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:null}],lastPointsList:[{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:null}],touchStartTimeout:null,touchStartDelay:100,isTouchStart:!1,pressTimeout:null,pressDelay:700,pressMaxDistance:5,taps:0,tapTimeout:null,tapMaxDistance:3,swipeTimeout:null,swipeDistanceThreshold:70},ar=JSON.parse(JSON.stringify(or));function ir(e,t,n){return Jn.get("debug")&&console.debug(t,n),(0,K.triggerEvent)(e,t,n)}function lr(e){var t=Un(e,ar.element),n=sr(ar.element,ar.lastPointsList),r=t.length===n.length?Vn(t,n):Vn(t,t),o=t.length===n.length?Hn(t,n):Hn(t,t),a={event:e,eventName:er,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},element:ar.element,startPoints:qn(ar.startPointsList),lastPoints:qn(n),currentPoints:qn(t),startPointsList:Fn(ar.startPointsList),lastPointsList:Fn(n),currentPointsList:t,deltaPoints:r,deltaDistance:o};ir(ar.element,er,a),function(e,t){var n=Ln(t.canvas,2),r=n[0],o=n[1];if(Math.abs(r)>ar.swipeDistanceThreshold||Math.abs(o)>ar.swipeDistanceThreshold){var a={event:e,eventName:rr,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},element:ar.element,swipe:null};clearTimeout(ar.swipeTimeout),ar.swipeTimeout=setTimeout((function(){Math.abs(r)>Math.abs(o)?a.swipe=r>0?Pn.RIGHT:Pn.LEFT:a.swipe=o>0?Pn.DOWN:Pn.UP,ir(a.element,rr,a)}),ar.touchStartDelay)}}(e,r),ar.lastPointsList=Fn(t)}function cr(e){if(clearTimeout(ar.touchStartTimeout),clearTimeout(ar.pressTimeout),clearTimeout(ar.tapTimeout),ar.isTouchStart){var t=Un(e,ar.element),n=sr(ar.element,ar.lastPointsList),r=t.length===n.length?Vn(t,n):Vn(t,t),o=t.length===n.length?Hn(t,n):Hn(t,t),a={event:e,eventName:tr,element:ar.element,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},startPointsList:Fn(ar.startPointsList),lastPointsList:Fn(n),currentPointsList:t,startPoints:qn(ar.startPointsList),lastPoints:qn(n),currentPoints:qn(t),deltaPoints:r,deltaDistance:o};ir(a.element,tr,a),ar=JSON.parse(JSON.stringify(or)),document.removeEventListener("touchmove",lr)}else!function(e){var t=Un(e,ar.element),n=sr(ar.element,ar.lastPointsList);ar.taps>0&&Bn(t,n).canvas<ar.tapMaxDistance&&(ar.taps=ar.taps+1),0===ar.taps&&(ar.taps=ar.taps+1),ar.lastPointsList=Fn(t),ar.tapTimeout=setTimeout((function(){var n={event:e,eventName:nr,element:ar.element,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},currentPointsList:t,currentPoints:qn(t),taps:ar.taps};ir(n.element,nr,n),ar=JSON.parse(JSON.stringify(or))}),ar.touchStartDelay-10)}(e);document.removeEventListener("touchend",cr)}function sr(e,t){var n=(0,K.getEnabledElement)(e).viewport;return t.map((function(e){var t=n.canvasToWorld(e.canvas);return{page:e.page,client:e.client,canvas:e.canvas,world:t,touch:e.touch}}))}var dr=function(e){ar.element=e.currentTarget;var t=(0,K.getEnabledElement)(ar.element),n=t.renderingEngineId,r=t.viewportId;ar.renderingEngineId=n,ar.viewportId=r,ar.isTouchStart||(clearTimeout(ar.touchStartTimeout),clearTimeout(ar.pressTimeout),clearTimeout(ar.tapTimeout),ar.touchStartTimeout=setTimeout((function(){!function(e){ar.isTouchStart=!0;var t=Un(e,ar.element),n=qn(t),r=Vn(t,t),o=Hn(t,t),a={event:e,eventName:Zn,element:ar.element,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},startPointsList:t,lastPointsList:t,currentPointsList:t,startPoints:n,lastPoints:n,currentPoints:n,deltaPoints:r,deltaDistance:o};ar.startPointsList=Fn(a.startPointsList),ar.lastPointsList=Fn(a.lastPointsList),ir(a.element,Zn,a)&&ir(a.element,Xn,a),document.addEventListener("touchmove",lr)}(e)}),ar.touchStartDelay),ar.pressTimeout=setTimeout((function(){!function(e){if(Bn(ar.startPointsList,ar.lastPointsList).canvas<ar.pressMaxDistance){var t={event:e,eventName:Qn,renderingEngineId:ar.renderingEngineId,viewportId:ar.viewportId,camera:{},element:ar.element,startPointsList:Fn(ar.startPointsList),lastPointsList:Fn(ar.lastPointsList),startPoints:Wn(qn(ar.startPointsList)),lastPoints:Wn(qn(ar.lastPointsList))};ir(t.element,Qn,t)}}(e)}),ar.pressDelay),document.addEventListener("touchend",cr))};function ur(e){Rn.disable(e),e.removeEventListener("touchstart",dr)}var vr={enable:function(e){ur(e),Rn.enable(e),e.addEventListener("touchstart",dr,{passive:!1})},disable:ur},fr={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},gr={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function hr(e){gr.element=e.currentTarget;var t=(0,K.getEnabledElement)(gr.element),n=t.renderingEngineId,r=t.viewportId;gr.renderingEngineId=n,gr.viewportId=r,gr.key=e.key,gr.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:gr.renderingEngineId,viewportId:gr.viewportId,element:gr.element,key:gr.key,keyCode:gr.keyCode};(0,K.triggerEvent)(o.element,Y.KEY_DOWN,o),document.addEventListener("keyup",pr),gr.element.removeEventListener("keydown",hr)}function pr(e){var t={renderingEngineId:gr.renderingEngineId,viewportId:gr.viewportId,element:gr.element,key:gr.key,keyCode:gr.keyCode};document.removeEventListener("keyup",pr),gr.element.addEventListener("keydown",hr),gr=ee()(fr),(0,K.triggerEvent)(t.element,Y.KEY_UP,t)}var mr=hr;function wr(e){e.removeEventListener("keydown",mr)}var Er={enable:function(e){wr(e),e.addEventListener("keydown",mr)},disable:wr,getModifierKey:function(){return gr.keyCode}};function yr(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)||An(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 Ir(e,t){if(qe.svgNodeCache[e])return qe.svgNodeCache[e][t]?qe.svgNodeCache[e][t].domRef:void 0}function br(e,t,n,r){if(!qe.svgNodeCache[t])return null;qe.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function Cr(e,t){qe.svgNodeCache[e]&&qe.svgNodeCache[e][t]&&(qe.svgNodeCache[e][t].touched=!0)}function Tr(e,t){qe.svgNodeCache[t]&&Object.keys(qe.svgNodeCache[t]).forEach((function(n){var r=qe.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete qe.svgNodeCache[t][n])}))}var _r=function(e,t){var n=function(e){var t=(0,K.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),a=function(e){var t=".".concat("viewport-element");return e.querySelector(t).querySelector(".svg-layer")}(e);return Object.keys(qe.svgNodeCache[o]).forEach((function(e){qe.svgNodeCache[o][e].touched=!1})),{svgLayerElement:a,svgNodeCacheForCanvas:qe.svgNodeCache,getSvgNode:Ir.bind(this,o),appendNode:br.bind(this,a,o),setNodeTouched:Cr.bind(this,o),clearUntouched:Tr.bind(this,a,o)}}(e);t(n),n.clearUntouched()},Or=function(e,t){var n=qe.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 Dr(e,t){var n=(0,K.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,a=Or(o,r);if(!a)return[];for(var i=[],l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],d=a.toolOptions[s];if(d&&t.includes(d.mode)){var u=a.getToolInstance(s);i.push(u)}}return i}function Sr(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 xr=ze.Active,kr=ze.Passive,Mr=ze.Enabled,Pr=function(){function e(){var t=this;Z(this,e),X(this,"hasBeenDestroyed",void 0),X(this,"_needsRender",new Set),X(this,"_animationFrameSet",!1),X(this,"_animationFrameHandle",null),X(this,"_viewportElements",void 0),X(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 J(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e,t){this._viewportElements.delete(e),this._needsRender.delete(t),this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setAllViewportsToBeRenderedNextFrame",value:function(){var e=this;yr(this._viewportElements.values()).forEach((function(t){e._needsRender.add(t)})),this._renderFlaggedViewports()}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this,n=yr(this._viewportElements.values());e.forEach((function(e){-1!==n.indexOf(e)&&t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,K.getEnabledElement)(e);if(t)if((0,K.getRenderingEngine)(t.renderingEngineId)){var n=Dr(e,[xr,kr,Mr]),r=t.renderingEngineId,o=t.viewportId,a={element:e,renderingEngineId:r,viewportId:o};_r(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,K.triggerEvent)(e,Y.ANNOTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sr(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sr(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,this._setAllViewportsToBeRenderedNextFrame()}}]),e}(),Rr=new Pr,Nr=function(e){Rr.renderViewport(e)},Ar=function(e){Nr(e.detail.element)};function Lr(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=Or(a,o);if(!i)return[];for(var l=[],c=Object.keys(i.toolOptions),s=0;s<c.length;s++){var d=c[s],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 Ur=ze.Active,Vr=ze.Passive,Br=ze.Enabled,jr=function(e){Lr(e,[Ur,Vr,Br]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Hr=ze.Active,Fr=ze.Passive,Wr=ze.Enabled,Gr=function(e){Lr(e,[Hr,Fr,Wr]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},qr=ze.Active;function zr(e,t,n){if(qe.isInteractingWithTool)return!1;var r,o=n.detail,a=o.renderingEngineId,i=o.viewportId,l=Or(i,a);if(!l)return!1;for(var c=Object.keys(l.toolOptions),s=0;s<c.length;s++){var d=c[s],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===qr&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var Kr,Yr,$r=zr.bind(null,"Mouse","mouseClickCallback");function Jr(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 Zr(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)?Zr(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 Zr(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 Xr(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o="touch"===r?36:6,a=[];return t.forEach((function(t){var r,i=t.tool,l=Jr(t.annotations);try{for(l.s();!(r=l.n()).done;){var c=r.value;if(!c.isLocked&&c.isVisible){var s=i.getHandleNearImagePoint(e,c,n,o);if(s){a.push({tool:i,annotation:c,handle:s});break}}}}catch(e){l.e(e)}finally{l.f()}})),a}function Qr(e,t){for(var n=[],r=0;r<t.length;r++){var o,a=t[r];if(a){var i=Qe(a.constructor.toolName,e);null!==(o=i)&&void 0!==o&&o.length&&("function"==typeof a.filterInteractableAnnotationsForElement&&(i=a.filterInteractableAnnotationsForElement(e,i)),i.length>0&&n.push({tool:a,annotations:i}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}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}function no(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o="touch"===r?36:6,a=[];return t.forEach((function(t){var i,l=t.tool,c=eo(t.annotations);try{for(c.s();!(i=c.n()).done;){var s=i.value;if(!s.isLocked&&s.isVisible&&l.isPointNearTool(e,s,n,o,r)){a.push({tool:l,annotation:s});break}}}catch(e){c.e(e)}finally{c.f()}})),a}!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"}(Kr||(Kr={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=17]="Ctrl",e[e.Alt=18]="Alt",e[e.Meta=91]="Meta",e[e.ShiftCtrl=1617]="ShiftCtrl",e[e.ShiftAlt=1618]="ShiftAlt",e[e.ShiftMeta=1691]="ShiftMeta",e[e.CtrlAlt=1718]="CtrlAlt",e[e.CtrlMeta=1791]="CtrlMeta",e[e.AltMeta=1891]="AltMeta"}(Yr||(Yr={}));var ro=function(e){return e.shiftKey?e.ctrlKey?Yr.ShiftCtrl:e.altKey?Yr.ShiftAlt:e.metaKey?Yr.ShiftMeta:Yr.Shift:e.ctrlKey?e.altKey?Yr.CtrlAlt:e.metaKey?Yr.CtrlMeta:Yr.Ctrl:e.altKey?e.metaKey&&Yr.AltMeta||Yr.Alt:void(e.metaKey&&Yr.Meta)},oo=ze.Active;function ao(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Er.getModifierKey()||ro(o),i=Or(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],d=i.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:Kr.Primary)&&e.modifierKey===a}));if(d.mode===oo&&u)return i.getToolInstance(s)}}var io=ze.Active,lo=ze.Passive;function co(e){if(!qe.isInteractingWithTool){var t=ao(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Lr(e,[io],e.detail.event.buttons),o=n?Lr(e,[lo]):void 0,a=[].concat(yr(r||[]),yr(o||[])),i=e.detail,l=i.element,c=Qr(l,a),s=i.currentPoints.canvas,d=Xr(l,c,s,"mouse"),u=!!e.detail.event.shiftKey;if(d.length>0){var v=so(d),f=v.tool,g=v.annotation,h=v.handle;return uo(g.annotationUID,u),void f.handleSelectedCallback(e,g,h,"Mouse")}var p=no(l,c,s,"mouse");if(p.length>0){var m=so(p),w=m.tool,E=m.annotation;return uo(E.annotationUID,u),void w.toolSelectedCallback(e,E,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function so(e){return e.length>1&&e.find((function(e){return!ae(e.annotation)&&Se(e.annotation.annotationUID)}))||e[0]}function uo(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(ye(e))he(e,!1);else{var n=!0;he(e,!0,n)}else{var r=!1;he(e,!0,r)}}function vo(e){if(!qe.isInteractingWithTool){var t=ao(e);t&&(qe.isMultiPartToolActive||t.addNewAnnotation&&he(t.addNewAnnotation(e,"mouse").annotationUID))}}var fo=zr.bind(null,"Mouse","doubleClickCallback");function go(e){if(!qe.isInteractingWithTool){var t=ao(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function ho(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 po=ze.Active,mo=ze.Passive;function wo(e){if(!qe.isInteractingWithTool&&!qe.isMultiPartToolActive){var t,n=Lr(e,[po,mo]),r=e.detail.element,o=Qr(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 ho(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)?ho(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 c=t.value,s=c.tool,d=c.annotations;"function"==typeof s.mouseMoveCallback&&(i=s.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&&Nr(r)}}var Eo=zr.bind(null,"Mouse","mouseUpCallback"),yo=zr.bind(null,"MouseWheel","mouseWheelCallback"),Io=function(e){e.addEventListener(Y.MOUSE_CLICK,$r),e.addEventListener(Y.MOUSE_DOWN,co),e.addEventListener(Y.MOUSE_DOWN_ACTIVATE,vo),e.addEventListener(Y.MOUSE_DOUBLE_CLICK,fo),e.addEventListener(Y.MOUSE_DRAG,go),e.addEventListener(Y.MOUSE_MOVE,wo),e.addEventListener(Y.MOUSE_UP,Eo),e.addEventListener(Y.MOUSE_WHEEL,yo)},bo=function(e){e.removeEventListener(Y.MOUSE_CLICK,$r),e.removeEventListener(Y.MOUSE_DOWN,co),e.removeEventListener(Y.MOUSE_DOWN_ACTIVATE,vo),e.removeEventListener(Y.MOUSE_DOUBLE_CLICK,fo),e.removeEventListener(Y.MOUSE_DRAG,go),e.removeEventListener(Y.MOUSE_MOVE,wo),e.removeEventListener(Y.MOUSE_UP,Eo),e.removeEventListener(Y.MOUSE_WHEEL,yo)},Co=ze.Active;function To(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=en.mouseButton,a=Er.getModifierKey(),i=Or(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],d=i.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:Kr.Primary)&&e.modifierKey===a}));if(d.mode===Co&&u)return i.getToolInstance(s)}}function _o(e){var t=To(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Or(o,r),i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}function Oo(e){var t=To(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Or(o,r);gr.keyCode=void 0;var i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}var Do=function(e){e.addEventListener(Y.KEY_DOWN,_o),e.addEventListener(Y.KEY_UP,Oo)},So=function(e){e.removeEventListener(Y.KEY_DOWN,_o),e.removeEventListener(Y.KEY_UP,Oo)},xo=ze.Active;function ko(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Or(r,n);if(!a)return null;for(var i=Object.keys(a.toolOptions),l=Object.keys(o.touches).length,c=ro(o),s=0;s<i.length;s++){var d=i[s],u=a.toolOptions[d],v=u.bindings.length&&u.bindings.some((function(e){return(e.numTouchPoints===l||1===l&&e.mouseButton===Kr.Primary)&&e.modifierKey===c}));if(u.mode===xo&&v)return a.getToolInstance(d)}}function Mo(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=Or(a,o);if(!i)return[];for(var l=[],c=Object.keys(i.toolOptions),s=0;s<c.length;s++){var d=c[s],u=i.toolOptions[d],v=null!=n&&u.bindings.length&&u.bindings.some((function(e){return e.numTouchPoints===n}));if(t.includes(u.mode)&&(!n||v)){var f=i.getToolInstance(d);l.push(f)}}return l}var Po=ze.Active,Ro=ze.Passive;function No(e){if(!qe.isInteractingWithTool){var t=ko(e);if(t&&"function"==typeof t.preTouchStartCallback&&t.preTouchStartCallback(e))return;var n=1===Object.keys(e.detail.event.touches).length,r=Mo(e,[Po],Object.keys(e.detail.event.touches).length),o=n?Mo(e,[Ro]):void 0,a=[].concat(yr(r||[]),yr(o||[]),[t]),i=e.detail,l=i.element,c=Qr(l,a),s=i.currentPoints.canvas,d=Xr(l,c,s,"touch");if(d.length>0){var u=Ao(d),v=u.tool,f=u.annotation,g=u.handle;return Lo(f.annotationUID,!1),void v.handleSelectedCallback(e,f,g,"Touch")}var h=no(l,c,s,"touch");if(h.length>0){var p=Ao(h),m=p.tool,w=p.annotation;return Lo(w.annotationUID,!1),void m.toolSelectedCallback(e,w,"Touch")}if(t&&"function"==typeof t.postTouchStartCallback&&t.postTouchStartCallback(e))return}}function Ao(e){return e.length>1&&e.find((function(e){return!ae(e.annotation)&&Se(e.annotation.annotationUID)}))||e[0]}function Lo(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(ye(e))he(e,!1);else{var n=!0;he(e,!0,n)}else{var r=!1;he(e,!0,r)}}function Uo(e){if(!qe.isInteractingWithTool){var t=ko(e);t&&(qe.isMultiPartToolActive||t.addNewAnnotation&&he(t.addNewAnnotation(e,"touch").annotationUID))}}function Vo(e){if(!qe.isInteractingWithTool){var t=ko(e);!t||"function"!=typeof t.touchDragCallback||t.touchDragCallback(e)}}var Bo=zr.bind(null,"Touch","touchEndCallback"),jo=zr.bind(null,"Touch","touchTapCallback"),Ho=zr.bind(null,"Touch","touchPressCallback"),Fo=function(e){e.addEventListener(Y.TOUCH_START,No),e.addEventListener(Y.TOUCH_START_ACTIVATE,Uo),e.addEventListener(Y.TOUCH_DRAG,Vo),e.addEventListener(Y.TOUCH_END,Bo),e.addEventListener(Y.TOUCH_TAP,jo),e.addEventListener(Y.TOUCH_PRESS,Ho)},Wo=function(e){e.removeEventListener(Y.TOUCH_START,No),e.removeEventListener(Y.TOUCH_START_ACTIVATE,Uo),e.removeEventListener(Y.TOUCH_DRAG,Vo),e.removeEventListener(Y.TOUCH_END,Bo),e.removeEventListener(Y.TOUCH_PRESS,Ho)};function Go(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,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("filterUnits","userSpaceOnUse"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),a.setAttribute("result","matrixOut"),a.setAttribute("in","offOut"),a.setAttribute("in2","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("in","SourceGraphic"),i.setAttribute("in2","matrixOut"),i.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(a),r.appendChild(i),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);qe.svgNodeCache[o]={}}(r),t=a,r.querySelector("div.viewport-element").appendChild(t),Rr.addViewportElement(o,r),wn.enable(r),Cn.enable(r),vr.enable(r),Er.enable(r),function(e){e.addEventListener(K.Enums.Events.IMAGE_RENDERED,Ar)}(r),function(e){e.addEventListener(K.Enums.Events.CAMERA_MODIFIED,jr)}(r),function(e){e.addEventListener(K.Enums.Events.IMAGE_SPACING_CALIBRATED,Gr)}(r),Io(r),Do(r),Fo(r),qe.enabledElements.push(r)}var qo=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<qe.synchronizers.length;r++){var o=qe.synchronizers[r],a=!o.isDisabled(),i=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);a&&(i||l)&&n.push(o)}return n},zo=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 qe.svgNodeCache[o]}(n),function(e){var t=e.querySelector("div.".concat("viewport-element")),n=t.querySelector("svg");n&&t.removeChild(n)}(n),Rr.removeViewportElement(r,n),wn.disable(n),Cn.disable(n),vr.disable(n),Er.disable(n),function(e){e.removeEventListener(K.Enums.Events.IMAGE_RENDERED,Ar)}(n),function(e){e.removeEventListener(K.Enums.Events.CAMERA_MODIFIED,jr)}(n),function(e){e.removeEventListener(K.Enums.Events.IMAGE_SPACING_CALIBRATED,Gr)}(n),bo(n),So(n),Wo(n),function(e){var t=(0,K.getEnabledElement)(e);qo(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,K.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=Or(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=qe.enabledElements.findIndex((function(t){return t===e}));t>-1&&qe.enabledElements.splice(t,1)}(n)},Ko=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;Nr(n)}))},Yo=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,K.getRenderingEngine)(r);Ko(o,[n])},$o=function(e){e.detail.removed.length&&(0,K.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));Ko(e,t)}))},Jo=function(e){var t=e.detail.segmentationId;Dt(t).forEach((function(e){Ot(e).forEach((function(n){n.segmentationId===t&&mt(e,n.segmentationRepresentationUID)}))}))},Zo=function(e){return qe.toolGroups.find((function(t){return t.id===e}))};function Xo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qo(e,t){return Qo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Qo(e,t)}function ea(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&&Qo(e,t)}function ta(e){return ta="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},ta(e)}function na(e,t){if(t&&("object"===ta(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Xo(e)}function ra(e){return ra=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},ra(e)}var oa=function(e){return e&&"object"===ta(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},aa=function(e,t){var n;return t&&!0===t.clone&&oa(e)?ca((n=e,Array.isArray(n)?[]:{}),e,t):e},ia=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=aa(t,n):oa(t)?r[o]=ca(e[o],t,n):-1===e.indexOf(t)&&r.push(aa(t,n))})),r},la=function(e,t,n){var r={};return oa(e)&&Object.keys(e).forEach((function(t){r[t]=aa(e[t],n)})),Object.keys(t).forEach((function(o){oa(t[o])&&e[o]?r[o]=ca(e[o],t[o],n):r[o]=aa(t[o],n)})),r},ca=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:ia},a=o.arrayMerge||ia;return r?Array.isArray(e)?a(e,t,n):aa(t,n):la(e,t,n)},sa=ca,da=function(){function e(t,n){Z(this,e),X(this,"supportedInteractionTypes",void 0),X(this,"configuration",void 0),X(this,"toolGroupId",void 0),X(this,"mode",void 0);var r=sa(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=ze.Disabled}return J(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=sa(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){var t;if(this.configuration.volumeId)return this.configuration.volumeId;var n=e.getActors();return n?null===(t=n.find((function(e){return"vtkVolume"===e.actor.getClassName()})))||void 0===t?void 0:t.uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1],r=K.utilities.imageIdToURI(n),o=K.utilities.getViewportsWithImageURI(r,t.id);if(!o||!o.length)return;if(!(o=o.filter((function(e){return e.getCurrentImageId()===n})))||!o.length)return;return o[0].getImageData()}if(e.startsWith("volumeId:")){var a=e.split("volumeId:")[1],i=K.utilities.getViewportsWithVolumeId(a,t.id);if(!i||!i.length)return;return i[0].getImageData()}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof K.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof K.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();X(da,"toolName",void 0),da.toolName="BaseTool";var ua=da;function va(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function fa(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){va(a,r,o,i,l,"next",e)}function l(e){va(a,r,o,i,l,"throw",e)}i(void 0)}))}}var ga=f(162),ha=f.n(ga),pa=f(795),ma=f.n(pa),wa=f(441),Ea=f.n(wa);function ya(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 Ia(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ya(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ya(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ba(){return At()}function Ca(e){Lt(e)}function Ta(e){return ba().representations[e]}function _a(e,t){var n=ba();Ca(Ia(Ia({},n),{},{representations:Ia(Ia({},n.representations),{},X({},e,Ia(Ia({},n.representations[e]),t)))}))}function Oa(e){return St(e)}function Da(e,t){xt(e,t)}function Sa(e,t){return Mt(e,t)}function xa(e,t,n){kt(e,t,n)}function ka(e,t,n){return Pt(e,t,n)}function Ma(e,t,n){Rt(e,t,n)}function Pa(){return(Pa=fa(ha().mark((function e(t,n,r){var o,a,i,l,c;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,K.getEnabledElement)(t),a=o.renderingEngine,i=o.viewport,l=i.id,c=[{volumeId:n,actorUID:r,visibility:!0,blendMode:K.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}],e.next=9,(0,K.addVolumesToViewports)(a,c,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ra=function(e,t,n){return Pa.apply(this,arguments)},Na=function(e,t){(0,K.getEnabledElement)(e).viewport.removeVolumeActors([t])};function Aa(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 La(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?La(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):La(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Va=255,Ba=new Map;function ja(){return(ja=fa(ha().mark((function e(t,n,r){var o,a,i,l,c,s,d,u;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=K.utilities.uuidv4(),i=new Set,l=ma().newInstance(),(c=Ea().newInstance()).addPoint(0,0),s={segmentationId:o,segmentationRepresentationUID:a,type:st.Labelmap,segmentsHidden:i,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{cfun:l,ofun:c}},r&&(d=Oa(t),u=sa(d,r),Da(t,{renderInactiveSegmentations:u.renderInactiveSegmentations||!0,representations:Ua({},u.representations)})),Nt(t,s),e.abrupt("return",a);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ha(){return(Ha=fa(ha().mark((function e(t,n,r){var o,a,i,l,c,s,d,u,v,f,g,h,p,m,w,E;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.colorLUTIndex,a=n.active,i=n.segmentationId,l=n.segmentationRepresentationUID,c=n.visibility,s=n.segmentsHidden,d=n.config,u=Ct(i),v=u.representationData[st.Labelmap],f=v.volumeId,K.cache.getVolume(f)){e.next=7;break}throw new Error("No Labelmap found for volumeId: ".concat(f));case 7:if(g=t.getActor(l)){e.next=14;break}return h=Ct(i),p=h.representationData[st.Labelmap].volumeId,e.next=13,za(t,p,l);case 13:g=t.getActor(l);case 14:m=d.cfun,w=d.ofun,E=r.renderInactiveSegmentations,Fa(t.id,g,m,w,o,r.representations[st.Labelmap],n,a,E,s,c);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Fa(e,t,n,r,o,a,i,l,c,s){for(var d=!(arguments.length>10&&void 0!==arguments[10])||arguments[10],u=i.segmentSpecificConfig,v=i.segmentationRepresentationSpecificConfig,f=v[st.Labelmap],g=Ht(o),h=Math.min(256,g.length),p=t.actor,m=t.uid,w=Wa(a,f,l),E=w.outlineWidth,y=w.renderOutline,I=w.outlineOpacity,b=0;b<h;b++){var C,T=b,_=g[T],O=null===(C=u[T])||void 0===C?void 0:C[st.Labelmap],D=Wa(a,f,l,O),S=D.fillAlpha,x=D.outlineWidth,k=D.renderFill,M=D.renderOutline,P=Ga(e,m,T,{fillAlpha:S,renderFill:k,renderOutline:M,segmentColor:_,outlineWidth:x,segmentsHidden:s}),R=P.forceOpacityUpdate,N=P.forceColorUpdate;if(N&&n.addRGBPoint(T,_[0]/Va,_[1]/Va,_[2]/Va),R)if(k){var A=s.has(T)?0:_[3]/255*S;r.removePoint(T),r.addPointLong(T,A,.5,1)}else r.addPointLong(T,.01,.5,1)}p.getProperty().setRGBTransferFunction(0,n),r.setClamping(!1),p.getProperty().setScalarOpacity(0,r),p.getProperty().setInterpolationTypeToNearest(),p.getProperty().setUseLabelOutline(y),p.getProperty().setLabelOutlineOpacity(I),p.getProperty().setLabelOutlineThickness(E);var L=d&&(l||c);p.setVisibility(L)}function Wa(e,t,n,r){var o=r||{},a=Ua(Ua(Ua({},e),t),o);return{fillAlpha:n?a.fillAlpha:a.fillAlphaInactive,outlineWidth:n?a.outlineWidthActive:a.outlineWidthInactive,renderFill:n?a.renderFill:a.renderFillInactive,renderOutline:a.renderOutline,outlineOpacity:n?a.outlineOpacity:a.outlineOpacityInactive}}function Ga(e,t,n,r){var o=r.fillAlpha,a=r.renderFill,i=r.renderOutline,l=r.segmentColor,c=r.outlineWidth,s=r.segmentsHidden,d="".concat(e,"-").concat(t,"-").concat(n),u=Ba.get(d);if(!u)return Ba.set(d,{fillAlpha:o,renderFill:a,renderOutline:i,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:!0,forceColorUpdate:!0};var v=u.fillAlpha,f=u.renderFill,g=u.renderOutline,h=u.outlineWidth,p=u.segmentColor,m=u.segmentsHidden,w=p[0]!==l[0]||p[1]!==l[1]||p[2]!==l[2],E=p[3]!==l[3]||v!==o||f!==a||g!==i||h!==c||m.has(n)!==s.has(n);return Ba.set(d,{fillAlpha:o,renderFill:a,renderOutline:i,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:E,forceColorUpdate:w}}function qa(e,t){var n=Zo(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Aa(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)?Aa(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}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,c=(0,K.getEnabledElementByIds)(i,l);Na(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}function za(e,t,n){return Ka.apply(this,arguments)}function Ka(){return(Ka=fa(ha().mark((function e(t,n,r){return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ra(t.element,n,r);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Ya={render:function(e,t,n){return Ha.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return ja.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(qa(e,t),Bt(e,t),n){var r=Zo(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,K.getEnabledElementByIds)(t,n).viewport.render()}))}}},$a=function(e,t){var n=(0,K.getEnabledElement)(e).viewport,r=n.getActors().map((function(e){var n=e.uid;return n.startsWith(t)?n:void 0})).filter(Boolean);n.removeActors(r)},Ja=f(70),Za=f.n(Ja),Xa=f(396),Qa=f.n(Xa),ei=f(348),ti=f.n(ei),ni=f(610),ri=f.n(ni),oi=f(474),ai=f.n(oi);function ii(e,t,n){var r,o=(0,K.getEnabledElement)(e),a=(o.renderingEngine,o.viewport),i=(a.id,ai().newInstance()),l=[],c=ti().newInstance(),s=Qa().newInstance(),d=0;t.getContours().forEach((function(e){var t=e.getPoints(),n=e.getFlatPointsArray();r=e.getColor();var o=e.getType(),a=t.map((function(e,t){return t+d}));o===K.Enums.ContourType.CLOSED_PLANAR&&a.push(a[0]);var i=Float32Array.from(n);l.push.apply(l,yr(i)),s.insertNextCell(yr(a)),d+=t.length})),c.setData(l,3);var u=Za().newInstance();u.setPoints(c),u.setLines(s);var v=ri().newInstance();v.setInputData(u),i.setMapper(v),i.getProperty().setLineWidth(4);var f=r.map((function(e){return e/255}));i.getProperty().setColor(f[0],f[1],f[2]),a.addActor({actor:i,uid:n})}function li(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ci(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?li(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):li(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function si(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(){return(di=fa(ha().mark((function e(t,n,r){var o,a,i,l,c,s;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=K.utilities.uuidv4(),i=new Set,l={segmentationId:o,segmentationRepresentationUID:a,type:st.Contour,segmentsHidden:i,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{}},r&&(c=Oa(t),s=sa(c,r),Da(t,{renderInactiveSegmentations:s.renderInactiveSegmentations||!0,representations:ci({},s.representations)})),Nt(t,l),e.abrupt("return",a);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ui(){return(ui=fa(ha().mark((function e(t,n,r){var o,a,i,l,c;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n.colorLUTIndex,n.active,o=n.segmentationId,a=n.segmentationRepresentationUID,n.visibility,n.segmentsHidden,i=Ct(o),l=i.representationData[st.Contour],null!=(c=l.geometryIds)&&c.length||console.warn("No contours found for segmentationId ".concat(o,". Skipping render.")),vi(t,c,a);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function vi(e,t,n){t.forEach((function(t){var r=K.cache.getGeometry(t);if(!r)throw new Error("No contours found for geometryId ".concat(t));if(r.type!==K.Enums.GeometryType.CONTOUR)throw new Error("Geometry type ".concat(r.type," not supported for rendering."));if(r.data){var o=r.data;!function(e,t,n){if(arguments.length>3&&void 0!==arguments[3]&&arguments[3])t.getContours().forEach((function(r,o){var a="".concat(n,"_").concat(t.id,"_").concat(o,"}");fi(e,r,a)}));else{var r="".concat(n,"_").concat(t.id);if(e.getActor(r))throw new Error("Not implemented yet. (Update contour)");ii(e.element,t,r)}e.resetCamera(),e.render()}(e,o,n)}else console.warn("No contours found for geometryId ".concat(t,". Skipping render."))}))}function fi(e,t,n){var r=n;if(e.getActor(r))throw new Error("Not implemented yet. (Update contour)");!function(e,t,n){var r=(0,K.getEnabledElement)(e),o=(r.renderingEngine,r.viewport),a=(o.id,t.getPoints()),i=t.getFlatPointsArray(),l=t.getColor(),c=t.getType(),s=a.map((function(e,t){return t}));c===K.Enums.ContourType.CLOSED_PLANAR&&s.push(0);var d=Float32Array.from(i),u=Uint32Array.from([s.length].concat(yr(s))),v=l.map((function(e){return e/255})),f=ti().newInstance();f.setData(d,3);var g=Qa().newInstance();g.setData(u,3);var h=Za().newInstance();h.setPoints(f),h.setLines(g);var p=ri().newInstance();p.setInputData(h);var m=ai().newInstance();m.setMapper(p),m.getProperty().setLineWidth(4),m.getProperty().setColor(v[0],v[1],v[2]),o.addActor({actor:m,uid:n})}(e.element,t,r)}function gi(e,t){var n=Zo(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return si(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)?si(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}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,c=(0,K.getEnabledElementByIds)(i,l);$a(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}var hi={render:function(e,t,n){return ui.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return di.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(gi(e,t),Bt(e,t),n){var r=Zo(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,K.getEnabledElementByIds)(t,n).viewport.render()}))}}};function pi(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 mi(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)?mi(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 mi(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 wi=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=Zo(t);if(n){var r=Ot(t);if(r&&0!==r.length){var o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,K.getEnabledElementByIds)(n,t);if(r)return r.viewport})),a=r.map((function(n){var r,a=e._getMergedRepresentationsConfig(t),i=[],l=pi(o);try{for(l.s();!(r=l.n()).done;){var c=r.value;n.type==st.Labelmap?i.push(Ya.render(c,n,a)):n.type==st.Contour&&i.push(hi.render(c,n,a))}}catch(e){l.e(e)}finally{l.f()}return i}));Promise.allSettled(a).then((function(){o.forEach((function(e){e.render()}))}))}}})),e}return J(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=Ot(e);if(t&&0!==t.length){var n,r=pi(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,mt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=Ot(e);if(t&&0!==t.length){var n,r=pi(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,mt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=Oa(e),n=ba();return sa(n,t)}}]),o}(ua);X(wi,"toolName",void 0),wi.toolName="SegmentationDisplay";var Ei=wi;function yi(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 Ii=function(){function e(){var t=this;Z(this,e),X(this,"_needsRender",new Set),X(this,"_animationFrameSet",!1),X(this,"_animationFrameHandle",null),X(this,"hasBeenDestroyed",void 0),X(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 J(e,[{key:"removeToolGroup",value:function(e){this._needsRender.delete(e),0===this._needsRender.size&&this._reset()}},{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=Zo(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,K.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(Ei.toolName);o?(r.forEach((function(e){e.element.addEventListener(K.Enums.Events.IMAGE_RENDERED,a)})),o.renderSegmentation(e)):console.warn("No segmentation tool found inside",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(K.Enums.Events.IMAGE_RENDERED,a);var i=Or(r,o);if(i){var l={toolGroupId:i.id,viewportId:r};(0,K.triggerEvent)(K.eventTarget,Y.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yi(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},l))}else console.warn("toolGroup has been destroyed")}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),bi=new Ii;function Ci(e){bi.renderToolGroupSegmentations(e)}var Ti=Ci,_i=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=Ct(n),a=o.representationData,i=o.type;if(i!==st.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(i," not supported yet"));var l=K.cache.getVolume(a[i].volumeId);if(l){var c,s=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))c=r;else{var u=s.getDimensions()[2];c=yr(Array(u).keys())}c.forEach((function(e){d.setUpdatedFrame(e)})),s.modified(),Dt(n).forEach((function(e){Ti(e)}))}else console.warn("segmentation not found in cache")},Oi=function(e){var t=e.detail.toolGroupId;Ti(t)},Di=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,Ti(n)},Si=function(e,t,n){var r=Ot(e);if(r&&0!==r.length){var o=r.map((function(e){return e.segmentationRepresentationUID})),a=t;if(a){var i=t.filter((function(e){return!o.includes(e)}));if(i.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(i)))}else a=o;a.forEach((function(t){!function(e,t,n){var r=Ut(e,t).type;if(r===st.Labelmap)Ya.removeSegmentationRepresentation(e,t,n);else{if(r!==st.Contour)throw new Error("The representation ".concat(r," is not supported yet"));console.debug("Contour representation is not supported yet, ignoring...")}}(e,t,n)}))}},xi=function(e){var t=qe.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(bi.removeToolGroup(e),Si(e),qe.toolGroups.splice(t,1))};function ki(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 Mi=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 ki(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)?ki(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}}}}(yr(qe.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;xi(n.id)}}catch(e){t.e(e)}finally{t.f()}qe.toolGroups=[]},Pi=!1;function Ri(){Pi||(function(){Ai();var e=K.Enums.Events.ELEMENT_ENABLED,t=K.Enums.Events.ELEMENT_DISABLED;K.eventTarget.addEventListener(e,Go),K.eventTarget.addEventListener(t,zo)}(),Li(),K.eventTarget.addEventListener(Y.ANNOTATION_MODIFIED,Yo),K.eventTarget.addEventListener(Y.ANNOTATION_SELECTION_CHANGE,$o),K.eventTarget.addEventListener(Y.ANNOTATION_SELECTION_CHANGE,$o),K.eventTarget.addEventListener(Y.SEGMENTATION_MODIFIED,Jo),K.eventTarget.addEventListener(Y.SEGMENTATION_DATA_MODIFIED,_i),K.eventTarget.addEventListener(Y.SEGMENTATION_REPRESENTATION_MODIFIED,Oi),K.eventTarget.addEventListener(Y.SEGMENTATION_REPRESENTATION_REMOVED,Di),Pi=!0)}function Ni(){Ai(),Li(),Mi(),We={},qe=ee()(Ge);var e=Je(),t=bt();e.restoreAnnotations({}),t.resetState(),Pi=!1}function Ai(){var e=K.Enums.Events.ELEMENT_ENABLED,t=K.Enums.Events.ELEMENT_DISABLED;K.eventTarget.removeEventListener(e,Go),K.eventTarget.removeEventListener(t,zo)}function Li(){K.eventTarget.removeEventListener(Y.ANNOTATION_MODIFIED,Yo),K.eventTarget.removeEventListener(Y.ANNOTATION_SELECTION_CHANGE,$o),K.eventTarget.removeEventListener(Y.ANNOTATION_SELECTION_CHANGE,$o),K.eventTarget.removeEventListener(Y.SEGMENTATION_MODIFIED,Jo),K.eventTarget.removeEventListener(Y.SEGMENTATION_DATA_MODIFIED,_i),K.eventTarget.removeEventListener(Y.SEGMENTATION_REPRESENTATION_MODIFIED,Oi),K.eventTarget.removeEventListener(Y.SEGMENTATION_REPRESENTATION_REMOVED,Di)}function Ui(e){var t=e.toolName,n=void 0!==qe.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"));qe.tools[t]={toolClass:e}}function Vi(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!qe.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete qe.tools[t]}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){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 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}}}}(Qr(e,Dr(e,[ze.Active,ze.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 Hi=function(){function e(t,n,r){var o=this;Z(this,e),X(this,"_enabled",void 0),X(this,"_eventName",void 0),X(this,"_eventHandler",void 0),X(this,"_ignoreFiredEvents",void 0),X(this,"_sourceViewports",void 0),X(this,"_targetViewports",void 0),X(this,"_viewportOptions",{}),X(this,"id",void 0),X(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,K.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 J(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"setOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._viewportOptions[e]=t}},{key:"getOptions",value:function(e){return this._viewportOptions[e]}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!Wi(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,K.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){Wi(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=Fi(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,K.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=Fi(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return Wi(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return Wi(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,K.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(K.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(K.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function Fi(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function Wi(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var Gi=Hi,qi=function(e,t,n){if(qe.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new Gi(e,t,n);return qe.synchronizers.push(r),r},zi=function(){for(;qe.synchronizers.length>0;)qe.synchronizers.pop().destroy()},Ki=function(e){return qe.synchronizers.find((function(t){return t.id===e}))},Yi=function(){return qe.synchronizers},$i=function(e){var t=qe.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(qe.synchronizers[t].destroy(),qe.synchronizers.splice(t,1))},Ji=f(485),Zi=f.n(Ji),Xi=Symbol("DefinedCursors"),Qi=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"]),el=function(){function e(t,n){Z(this,e),X(this,"name",void 0),X(this,"fallback",void 0),this.name=t+"",this.fallback=n}return J(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=tl(e,Xi),r=n.get(t);return r instanceof e?r:Qi.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(tl(e,Xi).set(t,n),!0)}}]),e}();function tl(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var nl,rl=Qi.values();function ol(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=ra(e)););return e}function al(){return al="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=ol(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},al.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(nl||(nl={}));var il=nl;var ll=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(e,t,n,a,i){var l;return Z(this,o),X(Xo(l=r.call(this,a||o.getUniqueInstanceName("image-cursor"),i)),"url",void 0),X(Xo(l),"x",void 0),X(Xo(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return J(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(K.utilities.getRuntimeId(o))}}]),o}(el),cl={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 '},sl={x:127,y:60},dl='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',ul='\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',vl='<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)"/>',fl='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',gl='<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)"/>',hl={Angle:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{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:pl(cl,{iconContent:"".concat(vl," ").concat(dl),viewBox:sl}),SegmentationFreeHandFillInside:pl(cl,{iconContent:"".concat(vl," ").concat(ul),viewBox:sl}),SegmentationFreeHandEraseOutside:pl(cl,{iconContent:"".concat(vl," ").concat(dl),viewBox:sl}),SegmentationFreeHandFillOutside:pl(cl,{iconContent:"".concat(vl," ").concat(ul),viewBox:sl}),SegmentationRectangleEraseInside:pl(cl,{iconContent:"".concat(fl," ").concat(dl),viewBox:sl}),RectangleScissor:pl(cl,{iconContent:"".concat(fl," ").concat(ul),viewBox:sl}),"RectangleScissor.FILL_INSIDE":pl(cl,{iconContent:"".concat(fl," ").concat(ul),viewBox:sl}),"RectangleScissor.FILL_OUTSIDE":pl(cl,{iconContent:"".concat(fl," ").concat(ul),viewBox:sl}),"RectangleScissor.ERASE_OUTSIDE":pl(cl,{iconContent:"".concat(fl," ").concat(dl),viewBox:sl}),"RectangleScissor.ERASE_INSIDE":pl(cl,{iconContent:"".concat(fl," ").concat(dl),viewBox:sl}),CircleScissor:pl(cl,{iconContent:"".concat(gl," ").concat(ul),viewBox:sl}),"CircleScissor.FILL_INSIDE":pl(cl,{iconContent:"".concat(gl," ").concat(ul),viewBox:sl}),"CircleScissor.ERASE_OUTSIDE":pl(cl,{iconContent:"".concat(gl," ").concat(dl),viewBox:sl}),"CircleScissor.FILL_OUTSIDE":pl(cl,{iconContent:"".concat(gl," ").concat(ul),viewBox:sl})};function pl(e,t){return Object.assign(Object.create(e),t)}function ml(e,t,n){hl[e]=pl(cl,{iconContent:t,viewBox:n})}function wl(e){if(Object.prototype.hasOwnProperty.call(hl,e))return hl[e]}var El=Object.keys(hl);function yl(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 Il(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yl(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var bl=new(function(){function e(){Z(this,e),X(this,"config",void 0),this._initializeConfig({color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",shadow:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(255, 255, 0)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0})}return J(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=Il(Il({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=Il(Il({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=Il(Il({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]=t}},{key:"setDefaultToolStyles",value:function(e){this.config.default=e}},{key:"getStyleProperty",value:function(e,t){var n=t.annotationUID,r=t.viewportId,o=t.toolGroupId,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 c=this.getDefaultToolStyles();return c[o]&&c[o][e]?c[o][e]:c.global&&c.global[e]?c.global[e]:void 0}},{key:"_initializeConfig",value:function(e){var t={};for(var n in e)t[n]=e[n];this.config={default:{global:t}}}}]),e}());function Cl(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=bl.getStyleProperty(o[a],t);if(void 0!==i)return i}}var Tl="color",_l=il.Highlighted,Ol=ze.Active,Dl=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(e,t,n,a,i){return Z(this,o),r.call(this,e,t,n,a,i)}return J(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=Cl(Tl,{},_l,Ol));var r=xl(e,t,n),a=al(ra(o),"getDefinedCursor",this).call(this,r);if(!a){var i=wl(e);i&&(a=kl(i,r,t,n,al(ra(o),"getDefinedCursor",this).call(this,"default")),al(ra(o),"setDefinedCursor",this).call(this,r,a))}return a}}]),o}(ll);function Sl(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 xl(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function kl(e,t,n,r,o){var a=e.mousePoint,i=a.x,l=a.y;return new Dl(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?Pl:Ml)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),i,l,t,o)}function Ml(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return Sl('\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 Pl(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 Sl('\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 Rl=Symbol("ElementCursorsMap");function Nl(e,t){Vl(e)[0]=t,Al(e,t)}function Al(e,t){var n=Vl(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof el?t:el.getDefinedCursor("auto")).getStyleProperty()}function Ll(e){Al(e,Vl(e)[1])}function Ul(e){Al(e,el.getDefinedCursor("none"))}function Vl(e){var t=Vl[Rl];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(Vl,Rl,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}function Bl(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=ra(e);if(t){var o=ra(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return na(this,n)}}var jl=ze.Active,Hl=ze.Passive,Fl=ze.Enabled,Wl=ze.Disabled,Gl=function(){function e(t){Z(this,e),X(this,"id",void 0),X(this,"viewportsInfo",[]),X(this,"toolOptions",{}),X(this,"_toolInstances",{}),this.id=t}return J(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return this.viewportsInfo.slice()}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=qe.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. You need to use cornerstoneTools.addTool to register it."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addToolInstance",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null===(n=qe.tools[e])||void 0===n?void 0:n.toolClass;if(!o){var a=qe.tools[t].toolClass,i=function(e){ea(n,e);var t=Bl(n);function n(){return Z(this,n),t.apply(this,arguments)}return J(n)}(a);i.toolName=e,o=i,qe.tools[e]={toolClass:i}}this.addTool(o.toolName,r)}},{key:"addViewport",value:function(e,t){var n=(0,K.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.some((function(t){return t.viewportId===e}))||this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();K.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:"setActiveStrategy",value:function(e,t){var n=this._toolInstances[e];void 0!==n?n.setActiveStrategy(t):console.warn("Tool ".concat(e," not added to toolGroup, can't set tool configuration."))}},{key:"setToolMode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e?t!==ze.Active?t!==ze.Passive?t!==ze.Enabled?t!==ze.Disabled?console.warn("setToolMode: mode must be defined"):this.setToolDisabled(e):this.setToolEnabled(e):this.setToolPassive(e):this.setToolActive(e,n):console.warn("setToolMode: toolName must be defined")}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._toolInstances[e];if(void 0!==n)if(n){var r=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=t.bindings?t.bindings:[],a=[].concat(yr(r),yr(o)).reduce((function(e,t){var n=void 0!==t.numTouchPoints,r=void 0!==t.mouseButton;return e.some((function(e){return ql(e,t)}))||!n&&!r||e.push(t),e}),[]),i={bindings:a,mode:jl};this.toolOptions[e]=i,this._toolInstances[e].mode=jl;var l=K.Settings.getRuntimeSettings(),c=l.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&c)this.setViewportsCursorByToolName(e);else{var s=this.getActivePrimaryMouseButtonTool();if(!s&&c){var d=el.getDefinedCursor("default");this._setCursorForViewports(d)}}"function"==typeof n.onSetToolActive&&n.onSetToolActive(),this._renderViewports()}else console.warn("'".concat(e,"' instance ").concat(n," is not registered with this toolGroup, can't set tool mode."));else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n=this.getToolOptions(e),r=Object.assign({bindings:n?n.bindings:[]},n,{mode:Hl});r.bindings=r.bindings.filter((function(e){return e.mouseButton!==Kr.Primary||e.modifierKey}));var o=Hl;0!==r.bindings.length&&(o=jl,r.mode=o),this.toolOptions[e]=r,t.mode=o,"function"==typeof t.onSetToolPassive&&t.onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Fl};this.toolOptions[e]=n,t.mode=Fl,"function"==typeof t.onSetToolEnabled&&t.onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Wl};this.toolOptions[e]=n,t.mode=Wl,"function"==typeof t.onSetToolDisabled&&t.onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){var t=this.toolOptions[e];if(void 0!==t)return t}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===jl&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=this._getCursor(e,t);this._setCursorForViewports(n)}},{key:"_getCursor",value:function(e,t){var n,r;return t&&(n="".concat(e,".").concat(t),r=Dl.getDefinedCursor(n,!0))?r:(n="".concat(e),(r=Dl.getDefinedCursor(n,!0))?r:(n=e,(r=Dl.getDefinedCursor(n,!0))||el.getDefinedCursor("default")))}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,K.getEnabledElementByIds)(r,n);o&&Nl(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:sa(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=Zi()(this._toolInstances[e].configuration,t);return ee()(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===Kr.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,K.getRenderingEngine)(t).renderViewport(n)}))}}]),e}();function ql(e,t){return e.mouseButton===t.mouseButton&&e.modifierKey===t.modifierKey}var zl=function(e){if(!qe.toolGroups.some((function(t){return t.id===e}))){var t=new Gl(e);return qe.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},Kl=function(){return qe.toolGroups};function Yl(e,t,n,r){var o=r.detail.camera,a=(0,K.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 $l=K.Enums.Events.CAMERA_MODIFIED;function Jl(e){return qi(e,$l,Yl)}function Zl(e,t,n,r){var o=r.detail,a=o.volumeId,i=o.range,l=(0,K.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var c=l.getViewport(n.viewportId);if(c instanceof K.VolumeViewport)c.setProperties({voiRange:i},a);else{if(!(c instanceof K.StackViewport))throw new Error("Viewport type not supported.");c.setProperties({voiRange:i})}c.render()}function Xl(e){return qi(e,K.Enums.Events.VOI_MODIFIED,Zl)}function Ql(e,t,n){var r=(0,K.getRenderingEngine)(n.renderingEngineId);if(!r)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var o=e.getOptions(n.viewportId),a=r.getViewport(n.viewportId),i=r.getViewport(t.viewportId);if(!1!==(null==o?void 0:o.syncZoom)){var l=i.getZoom();a.setZoom(l)}if(!1!==(null==o?void 0:o.syncPan)){var c=i.getPan();a.setPan(c)}a.render()}var ec=K.Enums.Events.CAMERA_MODIFIED;function tc(e){return qi(e,ec,Ql)}var nc=f(976);var rc=function(e,t,n){return Math.min(Math.max(t,e),n)};function oc(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof K.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof K.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));ac(e,r,o)}}function ac(e,t,n){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal,i=r.position,l=K.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),c=l.spacingInNormalDirection,s=l.imageVolume;if(!s)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var d=e.getActor(s.volumeId);d||console.warn("No actor found for with actorUID of",s.volumeId);var u=d.actor,v=K.utilities.getSliceRange(u,a,o),f=K.utilities.snapFocalPointToSlice(o,i,v,a,c,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function ic(){return ic=fa(ha().mark((function e(t){var n,r,o,a,i,l,c,s,d,u=arguments;return ha().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,K.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:i=a.viewport,l=lc(i,o),c=l.imageIndex,s=l.numberOfSlices,d=cc(s,r),oc(i,{delta:d-c,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),ic.apply(this,arguments)}function lc(e,t){if(e instanceof K.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof K.VolumeViewport)return K.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function cc(e,t){return rc(t,0,e-1)}var sc=function(e){return ic.apply(this,arguments)};function dc(e,t){var n=e.getCamera().viewPlaneNormal,r=t.getCamera().viewPlaneNormal,o=nc.vec3.dot(n,r);return Math.abs(o)>.9}function uc(e,t,n){return vc.apply(this,arguments)}function vc(){return(vc=fa(ha().mark((function e(t,n,r){var o,a,i,l,c,s,d,u,v,f,g,h,p;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=(0,K.getRenderingEngine)(r.renderingEngineId)){e.next=3;break}throw new Error("No RenderingEngine for Id: ".concat(r.renderingEngineId));case 3:if(a=o.getViewport(n.viewportId),i=o.getViewport(r.viewportId),l=a.getFrameOfReferenceUID(),c=i.getFrameOfReferenceUID(),s=a.getCurrentImageId(),d=K.metaData.get("imagePlaneModule",s),u=d.imagePositionPatient,v=i.getImageIds(),dc(a,i)){e.next=13;break}return e.abrupt("return");case 13:if(l!==c){e.next=21;break}if(-1===(f=fc(u,v)).index||i.getCurrentImageIdIndex()===f.index){e.next=19;break}return e.next=18,sc(i.element,{imageIndex:f.index});case 18:return e.abrupt("return");case 19:e.next=29;break;case 21:if(g=K.utilities.spatialRegistrationMetadataProvider.get("spatialRegistrationModule",[r.viewportId,n.viewportId])){e.next=24;break}throw new Error("No registration matrix found for sourceViewport: ".concat(n.viewportId," and targetViewport: ").concat(r.viewportId,", viewports with different frameOfReferenceUIDs must have a registration matrix in the registrationMetadataProvider. Use calculateViewportsRegistrationMatrix to calculate the matrix."));case 24:if(h=nc.vec3.transformMat4(nc.vec3.create(),u,g),-1===(p=fc(h,v)).index||i.getCurrentImageIdIndex()===p.index){e.next=29;break}return e.next=29,sc(i.element,{imageIndex:p.index});case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fc(e,t){return t.reduce((function(t,n,r){var o=K.metaData.get("imagePlaneModule",n).imagePositionPatient,a=nc.vec3.distance(o,e);return a<t.distance?{distance:a,index:r}:t}),{distance:1/0,index:-1})}var gc=K.Enums.Events.STACK_NEW_IMAGE;function hc(e){return qi(e,gc,uc)}var pc=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},mc=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)}))},wc=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},Ec=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,c=i.fill,s=i.width,d=i.lineWidth,u=d||s,v="http://www.w3.org/2000/svg",f=pc(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:c,"stroke-width":u};if(g)mc(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");wc(h,p),e.appendNode(p,f)}},yc=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=pc(t,"ellipse",n),h=e.getSvgNode(g),p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w=Math.min(r[0],o[0]),E=Math.min(r[1],o[1]),y=[w+p/2,E+m/2],I=p/2,b=m/2,C={cx:"".concat(y[0]),cy:"".concat(y[1]),rx:"".concat(I),ry:"".concat(b),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)mc(C,h),e.setNodeTouched(g);else{var T=document.createElementNS(f,"ellipse");""!==i&&T.setAttribute("data-id",i),wc(C,T),e.appendNode(T,g)}},Ic=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,c=a.width,s=a.lineWidth,d=a.fill,u=a.type,v=s||c,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=pc(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),E=1.5*w,y=g[0]-.5*E,I=g[1]-.5*E;m={x:"".concat(y),y:"".concat(I),width:"".concat(E),height:"".concat(E),stroke:i,fill:d,"stroke-width":v,rx:"".concat(.1*E)}}var b=e.getSvgNode(p);if(b)mc(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,u);wc(m,C),e.appendNode(C,p)}}};function bc(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=l.shadow,f=d||s,g="http://www.w3.org/2000/svg",h=pc(t,"line",n),p=e.getSvgNode(h),m=v?"filter:url(#shadow);":"",w={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:c,style:m,"stroke-width":f,"stroke-dasharray":u};if(p)mc(w,p),e.setNodeTouched(h);else{var E=document.createElementNS(g,"line");""!==i&&E.setAttribute("data-id",i),wc(w,E),e.appendNode(E,h)}}}function Cc(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 Tc(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,c=i.width,s=i.lineWidth,d=i.lineDash,u=s||c,v=pc(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 Cc(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)?Cc(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)mc(w,f),e.setNodeTouched(v);else{var E=document.createElementNS("http://www.w3.org/2000/svg","polyline");wc(w,E),e.appendNode(E,v)}}}function _c(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[""],a=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,l=i.padding,c=i.color,s=i.fontFamily,d=i.fontSize,u=i.background,v=a[0]+l,f=a[1]+l,g="http://www.w3.org/2000/svg",h=pc(t,"text",n),p=e.getSvgNode(h);if(p){for(var m=p.querySelector("text"),w=Array.from(m.children),E=0;E<w.length;E++){var y=w[E],I=o[E]||"";y.textContent=I}if(o.length>w.length){for(var b=0;b<o.length-w.length;b++){var C=o[b+w.length],T=Dc(C);m.appendChild(T)}p.appendChild(m),e.appendNode(p,h)}var _={fill:c,"font-size":d,"font-family":s},O={transform:"translate(".concat(v," ").concat(f,")")};mc(_,m),mc(O,p),r=Sc(p,u),e.setNodeTouched(h)}else{var D=document.createElementNS(g,"g");D.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var S=Oc(i),x=0;x<o.length;x++){var k=o[x],M=Dc(k);S.appendChild(M)}D.appendChild(S),e.appendNode(D,h),r=Sc(D,u)}return Object.assign({},r,{x:v,y:f,height:r.height+l,width:r.width+l})}function Oc(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}function Dc(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 Sc(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 mc(o,n),r}var xc=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=_c(e,t,n,r,o,i);return l};function kc(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,a,i,l,c,s,d,u=(o=e,i=(a=Ln(t,2))[0],l=a[1],s=(c=Ln(o,2))[0],d=c[1],Math.sqrt(Math.pow(i-s,2)+Math.pow(l-d,2)));u<r&&(r=u,n=yr(e))})),n}function Mc(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 Pc=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?kc(r,o):o,c=Mc(a),s=kc(c,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},i);bc(e,t,"link-".concat(n),l,s,d)},Rc=function(e,t,n,r,o,a,i){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),s=xc(e,t,n,r,o,c);return Pc(e,t,n,a,o,s,c),s};function Nc(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=pc(t,"rect",n),h=e.getSvgNode(g),p=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],m=Math.abs(r[0]-o[0]),w=Math.abs(r[1]-o[1]),E={x:"".concat(p[0]),y:"".concat(p[1]),width:"".concat(m),height:"".concat(w),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)mc(E,h),e.setNodeTouched(g);else{var y=document.createElementNS(f,"rect");""!==i&&y.setAttribute("data-id",i),wc(E,y),e.appendNode(y,g)}}function Ac(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,c=i.width,s=i.lineWidth,d=i.lineDash;bc(e,t,n,r,o,{color:l,width:c,lineWidth:s,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};bc(e,t,"2",f.start,f.end,{color:l,width:c,lineWidth:s}),bc(e,t,"3",g.start,g.end,{color:l,width:c,lineWidth:s})}}function Lc(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 Uc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,K.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return Vc(r,t,n)}function Vc(e,t,n){var r=e.renderingEngineId,o=e.viewportId,a=Or(o,r);if(!a)return null;var i=a._toolInstances;for(var l in i){var c=Bc(i[l],e,t,n);if(c)return c}return null}function Bc(e,t,n,r){var o,a=t.viewport,i=Qe(e.constructor.toolName,null==a?void 0:a.element),l=null==a||null===(o=a.getCurrentImageId)||void 0===o?void 0:o.call(a);if(null!=i&&i.length){var c,s=t.viewport.element,d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Lc(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)?Lc(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}}}}(i);try{for(d.s();!(c=d.n()).done;){var u,v=c.value,f=null===(u=v.metadata)||void 0===u?void 0:u.referencedImageId;if(!(l&&f&&l!==f||!e.isPointNearTool)&&(e.isPointNearTool(s,v,n,r,"")||e.getHandleNearImagePoint(s,v,n,r)))return v}}catch(e){d.e(e)}finally{d.f()}}return null}var jc=function(e){var t=ta(e);return null!==e&&("object"===t||"function"===t)},Hc=function(e,t,n){var r,o,a,i,l,c,s=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,a=o;return r=o=void 0,s=t,i=e.apply(a,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return s=e,l=h(w,t),d?g(e):i}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-s>=a}function w(){var e=Date.now();if(m(e))return E(e);l=h(w,function(e){var n=e-s,r=t-(e-c);return u?Math.min(r,a-n):r}(e))}function E(e){return l=void 0,v&&r?g(e):(r=o=void 0,i)}function y(){for(var e=Date.now(),n=m(e),a=arguments.length,s=new Array(a),d=0;d<a;d++)s[d]=arguments[d];if(r=s,o=this,c=e,n){if(void 0===l)return p(c);if(u)return l=h(w,t),g(c)}return void 0===l&&(l=h(w,t)),i}return t=Number(t)||0,jc(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),y.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),s=0,r=c=o=l=void 0},y.flush=function(){return void 0===l?i:E(Date.now())},y.pending=function(){return void 0!==l},y},Fc=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return jc(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),Hc(e,t,{leading:r,trailing:o,maxWait:t})},Wc=K.utilities.calibratedPixelSpacingMetadataProvider;function Gc(e,t,n,r){r||(r=n),Wc.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function qc(e,t,n,r){var o,a,i,l,c,s,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=Ln(r,3),f=Ln(v[0],2);o=f[0],a=f[1];var g=Ln(v[1],2);i=g[0],l=g[1];var h=Ln(v[2],2);c=h[0],s=h[1]}else o=0,a=u[0],i=0,l=u[1],c=0,s=u[2];for(var p=nc.vec3.fromValues(o,i,c),m=e.getDirection(),w=m.slice(0,3),E=m.slice(3,6),y=m.slice(6,9),I=Ln(e.getSpacing(),3),b=I[0],C=I[1],T=I[2],_=e.indexToWorld(p),O=nc.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),D=nc.vec3.fromValues(E[0]*C,E[1]*C,E[2]*C),S=nc.vec3.fromValues(y[0]*T,y[1]*T,y[2]*T),x=u[0],k=u[0]*u[1],M=c;M<=s;M++)for(var P=i;P<=l;P++)for(var R=o;R<=a;R++){var N=[R,P,M],A=R-o,L=P-i,U=M-c,V=_,B=[V[0]+A*O[0]+L*D[0]+U*S[0],V[1]+A*O[1]+L*D[1]+U*S[1],V[2]+A*O[2]+L*D[2]+U*S[2]];if(t(B,N)){var j=M*k+P*x+R;n({value:d[j],index:j,pointIJK:N,pointLPS:B})}}}var zc=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 c=Ln(t,3),s=c[0],d=c[1],u=c[2];n=Math.max(0,n),r=Math.min(s-1,r),o=Math.max(0,o),a=Math.min(d-1,a),i=Math.max(0,i),l=Math.min(u-1,l)}return[[n,r],[o,a],[i,l]]},Kc=K.utilities.transformWorldToIndex;function Yc(e,t,n,r){var o=function(e,t,n){var r,o=Ln(e,2),a=o[0],i=o[1],l=nc.vec3.fromValues((a[0]+i[0])/2,(a[1]+i[1])/2,(a[2]+i[2])/2),c=nc.vec3.distance(a,i)/2;if(!n){var s=Kc(t,l),d=t.getSpacing(),u=Math.min.apply(Math,yr(d)),v=Math.ceil(c/u);return{boundsIJK:r=[[s[0]-v,s[0]+v],[s[1]-v,s[1]+v],[s[2]-v,s[2]+v]],centerWorld:l,radiusWorld:c}}return r=function(e,t,n,r,o){var a=Ln(n,2),i=a[0],l=a[1],c=e.getDimensions(),s=t.getCamera(),d=nc.vec3.fromValues(s.viewUp[0],s.viewUp[1],s.viewUp[2]),u=nc.vec3.fromValues(s.viewPlaneNormal[0],s.viewPlaneNormal[1],s.viewPlaneNormal[2]),v=nc.vec3.create();nc.vec3.cross(v,d,u);var f=nc.vec3.create(),g=nc.vec3.create();nc.vec3.scaleAndAdd(f,l,u,o),nc.vec3.scaleAndAdd(g,i,u,-o),nc.vec3.scaleAndAdd(f,f,v,-o),nc.vec3.scaleAndAdd(g,g,v,o);var h=[Kc(e,f),Kc(e,g)];return zc(h,c)}(t,n,e,0,c),{boundsIJK:r,centerWorld:l,radiusWorld:c}}(t,e,r),a=o.boundsIJK,i={center:o.centerWorld,radius:o.radiusWorld};qc(e,(function(e){return function(e,t){var n=e.center,r=e.radius;return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)<=Math.pow(r,2)}(i,e)}),n,a)}var $c=function(e,t,n){var r=e.spacing,o=e.imageData,a=e.getScalarData(),i=n.overwrite,l=n.boundsIJK,c=(null==n?void 0:n.overlapType)||0;if(i)for(var s=0;s<a.length;s++)a[s]=0;for(var d,u,v,f,g,h=[],p=0,m=0;m<t.length;m++){var w=t[m].volume,E=w.imageData,y=w.spacing,I=w.dimensions,b=t[m].volume.getScalarData().length;b===a.length&&(d=y,u=r,JSON.stringify(d)===JSON.stringify(u))&&(p=m);var C=E.getPointData().getScalars().getData(),T=t[m].lower,_=t[m].upper;h.push({imageData:E,referenceValues:C,lower:T,upper:_,spacing:y,dimensions:I,volumeSize:b})}var O=function(e,t,n){var r=e.imageData,o=e.dimensions,a=e.lower,i=e.upper,l=S(r,o,t,n);f=0,v=0,g={lower:a,upper:i};var s=!1;return qc(r,(function(){return!0}),(function(e){var t=e.value;f+=1,t>=g.lower&&t<=g.upper&&(v+=1)}),l),0===c?s=v>0:1==c&&(s=v===f),s},D=function(e,t){var n=e.imageData,r=e.referenceValues,o=e.lower,a=e.upper,i=r[n.computeOffsetIndex(t)];return!(i<=o||i>=a)},S=function(e,t,n,r){for(var o=[],a=0;a<2;a++)for(var i=0;i<2;i++)for(var l=0;l<2;l++){var c=r;c[0]=c[0]+(2*a-1)*n[0]/2,c[1]=c[1]+(2*i-1)*n[1]/2,c[2]=c[2]+(2*l-1)*n[2]/2,o.push(c)}var s=o.map((function(t){return K.utilities.transformWorldToIndex(e,t)}));return zc(s,t)};return qc(o,(function(){return!0}),(function(e){for(var t=e.index,n=e.pointIJK,r=e.pointLPS,o=h.length>0,i=0;i<h.length&&(o=h[i].volumeSize===a.length?D(h[i],n):O(h[i],h[p].spacing,r));i++);o&&(a[t]=1)}),l),Et(e.volumeId),e};function Jc(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 Zc=ze.Active,Xc=ze.Passive,Qc=ze.Enabled;function es(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o],i=Or(a.id,a.renderingEngineId);i&&ts(i,t)&&r.push(a)}return r}function ts(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===Zc||r===Xc||r===Qc}var ns=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.999;return e.filter((function(e){var r=e.getCamera();return Math.abs(nc.vec3.dot(r.viewPlaneNormal,t.viewPlaneNormal))>n}))};function rs(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,K.getEnabledElement)(e),o=r.renderingEngine,a=r.FrameOfReferenceUID,i=o.getViewports();i=es(i=Jc(i,a),t);var l=o.getViewport(r.viewportId);n&&(i=ns(i,l.getCamera()));var c=i.map((function(e){return e.id}));return c}function os(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 as=1-K.CONSTANTS.EPSILON;function is(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(nc.vec3.dot(r,t))>as;return t&&n}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return os(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)?os(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(s.s();!(a=s.n()).done;){var d=a.value,u=d.data.handles.points[0];if(d.isVisible){var v=nc.vec3.create();nc.vec3.sub(v,l,u);var f=nc.vec3.dot(v,r);Math.abs(f)<i&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}function ls(e,t){if(e instanceof K.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 K.VolumeViewport){var a=e.getCamera();return is(t,a,K.utilities.getTargetVolumeAndSpacingInNormalDir(e,a).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var cs=function(e){if(e){if(e.data&&e.highlighted)return il.Highlighted;if(ye(e.annotationUID))return il.Selected;if(ae(e))return il.Locked}return il.Default};var ss=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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 X(Xo(e=r.call.apply(r,[this].concat(n))),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,a=n.columnScale,i=n.imageId,l=n.imageData,c=n.worldToIndex;if((0,K.getEnabledElement)(r).viewport instanceof K.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var s=l.getIndexToWorld(),d=K.utilities.imageIdToURI(i),u=Je();u.getFramesOfReference().forEach((function(t){var n=u.getAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){K.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=nc.vec4.fromValues.apply(nc.vec4,yr(e).concat([1])),n=nc.vec4.fromValues(0,0,0,1),r=nc.vec4.create();nc.vec4.transformMat4(r,t,c);var i=[a*r[0],o*r[1],r[2]];return nc.vec4.transformMat4(n,nc.vec4.fromValues(i[0],i[1],i[2],1),s),n.slice(0,3)})))})),Nr(r))}))})),e}return J(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return ls((0,K.getEnabledElement)(e).viewport,t)}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,a=this.getTargetId(e);if(e instanceof K.StackViewport)o=a.split("imageId:")[1];else{var i=a.split("volumeId:")[1],l=K.cache.getVolume(i);o=K.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return Cl(e,t,cs(n),this.mode)}}]),o}(ua);X(ss,"toolName",void 0),ss.toolName="AnnotationDisplayTool";var ds=ss;function us(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 vs(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)?vs(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 vs(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 fs=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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 X(Xo(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,c=us(n);try{for(c.s();!(r=c.n()).done;){var s=r.value;if(!ae(s)&&Se(s.annotationUID)){var d=s.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(a,s,i,6),f=v&&!s.highlighted,g=!v&&s.highlighted;f||g?(s.highlighted=!s.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){c.e(e)}finally{c.f()}return l})),e}return J(o,[{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=t.data,i=a.handles,l=i.points,c=i.textBox,s=c.worldBoundingBox;if(s){var d={topLeft:o.worldToCanvas(s.topLeft),topRight:o.worldToCanvas(s.topRight),bottomLeft:o.worldToCanvas(s.bottomLeft),bottomRight:o.worldToCanvas(s.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return a.handles.activeHandleIndex=null,c}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==nc.vec2.distance(n,f)<r)return a.handles.activeHandleIndex=u,v}a.handles.activeHandleIndex=null}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle("textBoxFontFamily",e,t),fontSize:this.getStyle("textBoxFontSize",e,t),color:this.getStyle("textBoxColor",e,t),shadow:this.getStyle("textBoxShadow",e,t),background:this.getStyle("textBoxBackground",e,t),lineWidth:this.getStyle("textBoxLinkLineWidth",e,t),lineDash:this.getStyle("textBoxLinkLineDash",e,t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(ds);X(fs,"toolName",void 0),fs.toolName="AnnotationTool";var gs=fs;function hs(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function ps(e,t,n){var r=hs(e,t);if(0===r)return hs(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return hs(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function ms(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(ps(e,t,n))}function ws(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=Ln(e,4),r=n[0],o=n[1],a=n[2],i=n[3],l=655535,c=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,a,i);return Object.keys(c).forEach((function(e){var n=Ln(c[e],2),r=ms(n[0],n[1],t);r<l&&(l=r)})),l}function Es(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 ys(e,t,n,r){var o=nc.vec3.create();nc.vec3.cross(o,t,e);var a=nc.vec3.fromValues.apply(nc.vec3,yr(n)),i=nc.vec3.fromValues.apply(nc.vec3,yr(r)),l=nc.vec3.create();nc.vec3.subtract(l,a,i);var c=nc.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=nc.vec3.dot(l,o)/(c*nc.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}function Is(e,t){return"CT"===e?"HU":"PT"===e&&!0===t?"SUV":""}function bs(e,t){if(e instanceof K.BaseVolumeViewport){var n=t.split("volumeId:")[1],r=K.cache.getVolume(n);return r.scaling&&Object.keys(r.scaling).length>0}if(e instanceof K.StackViewport)return e.getImageData().preScale.scaled;throw new Error("Viewport is not a valid type")}var Cs=K.utilities.transformWorldToIndex,Ts=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:f,referencedImageId:v},data:{label:"",handles:{points:[yr(a),yr(a),yr(a),yr(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:{}}};et(g,o);var h=rs(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(c,h),g})),X(Xo(e),"isPointNearTool",(function(t,n,r,o){var a=(0,K.getEnabledElement)(t).viewport,i=n.data.handles.points,l=a.worldToCanvas(i[0]),c=a.worldToCanvas(i[3]),s=e._getRectangleImageCoordinates([l,c]),d=[r[0],r[1]];return ws([s.left,s.top,s.width,s.height],d)<=o})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Ul(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),t.preventDefault()})),X(Xo(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 c=rs(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o),Ul(o);var s=(0,K.getEnabledElement)(o).renderingEngine;Ko(s,c),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}}})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g,h,p,m,w,E,y,I,b=n.currentPoints,C=(0,K.getEnabledElement)(r).viewport,T=C.worldToCanvas,_=C.canvasToWorld,O=b.world,D=s.handles.points;switch(D[l]=yr(O),l){case 0:case 3:g=T(D[0]),h=[(m=T(D[3]))[0],g[1]],p=[g[0],m[1]],E=_(h),y=_(p),D[1]=E,D[2]=y;break;case 1:case 2:h=T(D[1]),g=[(p=T(D[2]))[0],h[1]],m=[h[0],p[1]],w=_(g),I=_(m),D[0]=w,D[3]=I}a.invalidated=!0}e.editData.hasMoved=!0;var S=(0,K.getEnabledElement)(r).renderingEngine;Ko(S,i)})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=i.getCamera(),T=C.viewPlaneNormal,_=C.viewUp;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&(e._throttledCalculateCachedStats(f,T,_,d,t),i instanceof K.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=K.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=K.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,T,_,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var O=void 0;if(Se(g)){ae(f)||e.editData||null===w||(O=[E[w]]),O&&Ic(n,g,"0",O,{color:b});var D="".concat(g,"-rect");Nc(n,g,"0",E[0],E[3],{color:b,lineDash:I,lineWidth:y},D),a=!0;var S=bs(i,s),x=e._getTextLines(h,s,S);if(x&&0!==x.length){if(!h.handles.textBox.hasMoved){var k=Es(E);h.handles.textBox.worldPosition=i.canvasToWorld(k)}var M=i.worldToCanvas(h.handles.textBox.worldPosition),P=Rc(n,g,"1",x,M,E,{},e.getLinkedTextBoxStyle(u,f)),R=P.x,N=P.y,A=P.width,L=P.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+A,N]),bottomLeft:i.canvasToWorld([R,N+L]),bottomRight:i.canvasToWorld([R+A,N+L])}}}}return a})),X(Xo(e),"_getRectangleImageCoordinates",(function(e){var t=Ln(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])}})),X(Xo(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,a=r.mean,i=r.max,l=r.stdDev,c=r.Modality,s=r.areaUnit;if(void 0!==a){var d=[],u=Is(c,n);return d.push("Area: ".concat(o.toFixed(2)," ").concat(s,"²")),d.push("Mean: ".concat(a.toFixed(2)," ").concat(u)),d.push("Max: ".concat(i.toFixed(2)," ").concat(u)),d.push("Std Dev: ".concat(l.toFixed(2)," ").concat(u)),d}})),X(Xo(e),"_calculateCachedStats",(function(t,n,r,o,a){for(var i=t.data,l=a.viewportId,c=a.renderingEngineId,s=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);if(h){var p=h.dimensions,m=h.imageData,w=h.metadata,E=h.hasPixelSpacing,y="getScalarData"in h?h.getScalarData():h.scalarData,I=Cs(m,s);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Cs(m,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]),T=Math.max(I[0],b[0]),_=Math.min(I[1],b[1]),O=Math.max(I[1],b[1]),D=Math.min(I[2],b[2]),S=Math.max(I[2],b[2]),x=ys(n,r,s,d),k=x.worldWidth*x.worldHeight,M=0,P=0,R=0,N=-1/0,A=p[0],L=p[0]*p[1],U=D;U<=S;U++)for(var V=_;V<=O;V++)for(var B=C;B<=T;B++){var j=y[U*L+V*A+B];j>N&&(N=j),M++,P+=j}P/=M;for(var H=D;H<=S;H++)for(var F=_;F<=O;F++)for(var W=C;W<=T;W++){var G=y[H*L+F*A+W]-P;R+=G*G}R/=M,R=Math.sqrt(R),u[g]={Modality:w.Modality,area:k,mean:P,stdDev:R,max:N,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,u[g]={Modality:w.Modality}}}t.invalidated=!1;var q=Y.ANNOTATION_MODIFIED,z={annotation:t,viewportId:l,renderingEngineId:c};return(0,K.triggerEvent)(K.eventTarget,q,z),u})),X(Xo(e),"_isInsideVolume",(function(e,t,n){return K.utilities.indexWithinDimensions(e,n)&&K.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(o)}(gs);X(Ts,"toolName",void 0),Ts.toolName="RectangleROI";var _s=Ts;var Os=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s,d,u=l.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getTargetId(l);if(l instanceof K.StackViewport)s=g.split("imageId:")[1];else{d=g.split("volumeId:")[1];var h=K.cache.getVolume(d);s=K.utilities.getClosestImageId(h,a,v,f)}var p=l.getFrameOfReferenceUID(),m={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:yr(v),enabledElement:i,viewUp:yr(f),FrameOfReferenceUID:p,referencedImageId:s,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null},segmentationId:null}};et(m,o);var w=rs(o,e.getToolName());return e.editData={annotation:m,viewportIdsToRender:w,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(c,w),m})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=t.renderingEngineId,c=i.element,s=Qe(e.getToolName(),c);if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.worldToCanvas(e)}));d.annotationUID=f;var w=e.getStyle("lineWidth",d,v),E=e.getStyle("lineDash",d,v),y=e.getStyle("color",d,v);if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var I=Y.ANNOTATION_MODIFIED,b={annotation:v,viewportId:i.id,renderingEngineId:l};(0,K.triggerEvent)(K.eventTarget,I,b);var C=void 0;Se(f)&&(ae(v)||e.editData||null===p||(C=[m[p]]),C&&Ic(n,f,"0",C,{color:y}),Nc(n,f,"0",m[0],m[3],{color:y,lineDash:E,lineWidth:w}),a=!0)}return a})),e}return J(o)}(_s);X(Os,"toolName",void 0),Os.toolName="RectangleROIThreshold";var Ds=Os;var Ss=K.utilities.transformWorldToIndex,xs=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s,d,u,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof K.StackViewport)throw new Error("Stack Viewport Not implemented");if(u=e.getTargetId(l).split("volumeId:")[1],d=K.cache.getVolume(u),!(s=K.utilities.getClosestImageId(d,a,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=K.utilities.getSpacingInNormalDirection(d,f),m=e._getEndSliceIndex(d,a,p,f),w=l.getFrameOfReferenceUID(),E={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:yr(f),enabledElement:i,viewUp:yr(g),FrameOfReferenceUID:w,referencedImageId:s,toolName:e.getToolName(),volumeId:u,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[s]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(E,d),et(E,o);var y=rs(o,e.getToolName());return e.editData={annotation:E,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(c,y),E})),X(Xo(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport,a=Qe(e.getToolName(),o.element);if(null==a||!a.length)return r;for(var i=o.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},c=0;c<a.length;c++){var s=a[c],d=s.annotationUID,u=s.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return o.worldToCanvas(e)}));l.annotationUID=d;var w=e.getStyle("lineWidth",l,s),E=e.getStyle("lineDash",l,s),y=e.getStyle("color",l,s);if(!(i<Math.min(v,f)||i>Math.max(v,f))){s.invalidated&&e._throttledCalculateCachedStats(s,t);var I=!1;if(i!==v&&i!==f||(I=!0),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(Se(d)){ae(s)||e.editData||null===p||!I||(b=[m[p]]),b&&Ic(n,d,"0",b,{color:y});var C=E;I||(C=2),Nc(n,d,"0",m[0],m[3],{color:y,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStatsTool,100,{trailing:!0}),e}return J(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,c=n.endSlice,s=n.handles.points,d=Ss(i,s[0]);if(d[2]!==l)throw new Error("Start slice does not match");var u=nc.vec3.fromValues(d[0],d[1],c),v=nc.vec3.create();i.indexToWorldVec3(d,v);var f=nc.vec3.create();i.indexToWorldVec3(u,f);for(var g=nc.vec3.distance(v,f),h=[],p=function(e){h.push(s.map((function(t){var n=nc.vec3.create();return nc.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=a)p(m);n.cachedStats.projectionPoints=h;for(var w=[],E=0,y=h;E<y.length;E++){var I=y[E],b=K.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),c=K.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,c),e.invalidated=!1;var s=Y.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,K.triggerEvent)(K.eventTarget,s,d),i}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,a=nc.vec3.create();nc.vec3.scaleAndAdd(a,t,r,o*n);for(var i,l=n/2,c=e.imageIds,s=0;s<c.length;s++){var d=c[s],u=K.metaData.get("imagePlaneModule",d).imagePositionPatient,v=nc.vec3.create();nc.vec3.sub(v,a,u);var f=nc.vec3.dot(v,r);Math.abs(f)<l&&(i=s)}return i}}]),o}(_s);X(xs,"toolName",void 0),xs.toolName="RectangleROIStartEndThreshold";var ks=xs,Ms=function(e,t){var n=e.findIndex((function(e){var t=Ln(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},Ps=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,c=t.imageData,s=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,yr(v))}var f=d.map((function(e){return K.utilities.transformWorldToIndex(c,e)})),g=zc(f,s);!n.numSlicesToProject||null!==(a=i.cachedStats)&&void 0!==a&&a.projectionPoints||(g=Ms(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 Rs(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 Ns(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 As(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ns(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ns(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ls=function(e,t,n,r){var o,a=e.map((function(e){return rt(e)}));!function(e){var t,n=[Ds.toolName,ks.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 Rs(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)?Rs(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);for(var i=0;i<n.length;i++)n[i].volume.getScalarData().length!==t.getScalarData().length&&0!==i||(o=Ps(a,n[i].volume,r));return $c(t,n,As(As({},r),{},{boundsIJK:o}))},Us=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(!(K.utilities.isEqual(r,e[0].dimensions)&&K.utilities.isEqual(n,e[0].direction)&&K.utilities.isEqual(a,e[0].spacing)&&K.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.getScalarData().constructor,a=new o(r.getScalarData().length);e.forEach((function(e){for(var n=e.getScalarData(),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,c=K.volumeLoader.createLocalVolume(i,n,l);return c};function Vs(e,t){if(e===st.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive&&"number"==typeof e.outlineOpacity&&"number"==typeof e.outlineOpacityInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function Bs(e){var t=e.type;if(t===st.Labelmap)return ct();throw new Error("Unknown representation type: ".concat(t))}function js(e){return Hs.apply(this,arguments)}function Hs(){return(Hs=fa(ha().mark((function e(t){var n,r,o,a,i,l,c,s,d,u,v,f;return ha().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,K.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=i.viewport)instanceof K.VolumeViewport){e.next=8;break}throw new Error("Segmentation only supports VolumeViewport");case 8:if(c=l.getDefaultActor(),s=c.uid,void 0===a&&(a="".concat(s,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:K.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,Q._cloneDeep)(o),e.next=14,K.volumeLoader.createLocalVolume(u,a);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,K.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:a});case 19:return e.abrupt("return",a);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Fs(e,t){return e===t}function Ws(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}function Gs(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}var qs=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onFlood,o=n.onBoundary,a=n.equals||Fs,i=n.diagonals||!1,l=y(t),c=b(),s=[],d=[],u={},v={};for(s.push({currentArgs:t});s.length>0;)f(s.pop());return{flooded:d,boundaries:T()};function f(e){var t=e.currentArgs,n=e.previousArgs;g(t)||(h(t),p(t)?(m(t),E(t)):w(n))}function g(e){return!0===u[e]}function h(e){u[e]=!0}function p(e){var t=I(y,[e]);return I(a,[t,l])}function m(e){d.push(e),r&&r.apply(void 0,yr(e))}function w(e){v[e]=e,o&&o.apply(void 0,yr(e))}function E(e){for(var t=0;t<c.length;t+=1){for(var n=c[t],r=e.slice(0),o=0;o<e.length;o+=1)r[o]+=n[o];s.push({currentArgs:r,previousArgs:e})}}function y(t){return e.apply(void 0,yr(t))}function I(e,t){try{return e.apply(void 0,yr(t))}catch(e){return}}function b(){return C(t.length).filter((function(e){var t=Ws(e);return 0!==t&&(1===t||i)}))}function C(e){for(var t=[],n=function(e){return e.split("").map((function(e){return parseInt(e,10)-1}))},r=0;r<Math.pow(3,e);r+=1){var o=Gs(r.toString(3),"0",e);t.push(n(o))}return t}function T(){var e=[];for(var t in v)void 0!==v[t]&&e.unshift(v[t]);return e}};function zs(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.points,c=r.imageData,s=r.dimensions,d=r.getScalarData(),u=[];Yc(c,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(d[t]=a,u.push(t))}),n);var v=s[0]*s[1],f=Math.floor(u[0]/v),g=Math.floor(u[u.length-1]/v);Et(i,Array.from({length:g-f+1},(function(e,t){return t+f})))}(e,t)}function Ks(e,t){zs(e,Object.assign({},t,{segmentIndex:0}))}function Ys(e){var t=Ln(e,4),n=t[0],r=t[1],o=t[2],a=t[3];return[[o[0],r[1]],[a[0],n[1]]]}function $s(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,a=e.zRadius,i=Ln(t,3),l=i[0],c=i[1],s=i[2],d=Ln(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(c-v)*(c-v)/(o*o)),0!==a&&(g+=(s-f)*(s-f)/(a*a)),g<=1}var Js=K.utilities.transformWorldToIndex;function Zs(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.volume,o=t.imageVolume,a=t.points,i=t.segmentsLocked,l=t.segmentIndex,c=t.segmentationId,s=t.strategySpecificConfiguration,d=r.imageData,u=r.dimensions,v=r.getScalarData(),f=e.viewport,g=nc.vec3.fromValues(0,0,0);a.forEach((function(e){nc.vec3.add(g,g,e)})),nc.vec3.scale(g,g,1/a.length);var h=a.map((function(e){return f.worldToCanvas(e)})),p=Ys(h),m=Ln(p,2),w=m[0],E=m[1],y=f.canvasToWorld(w),I=f.canvasToWorld(E),b=[Js(d,y),Js(d,I)],C=zc(b,u);if(C.every((function(e){var t=Ln(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var T={center:g,xRadius:Math.abs(y[0]-I[0])/2,yRadius:Math.abs(y[1]-I[1])/2,zRadius:Math.abs(y[2]-I[2])/2},_=new Set;qc(d,(function(e,t){return $s(T,e)}),n?function(e){var t=e.value,n=e.index,r=e.pointIJK;i.includes(t)||Xs(n,o,s)&&(v[n]=l,_.add(r[2]))}:function(e){var t=e.value,n=e.index,r=e.pointIJK;i.includes(t)||(v[n]=l,_.add(r[2]))},C);var O=Array.from(_);Et(c,O)}function Xs(e,t,n){var r=n.THRESHOLD_INSIDE_CIRCLE,o=t.getScalarData()[e],a=r.threshold;return a[0]<=o&&o<=a[1]}function Qs(e,t){Zs(e,t,!1)}function ed(e,t){var n=t.volume,r=t.imageVolume;if(!K.utilities.isEqual(n.dimensions,r.dimensions)||!K.utilities.isEqual(n.direction,r.direction))throw new Error("Only source data the same dimensions/size/orientation as the segmentation currently supported.");Zs(e,t,!0)}function td(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 nd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?td(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):td(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function rd(e,t){Qs(e,nd(nd({},t),{},{segmentIndex:0}))}function od(e){var t=bt().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function ad(e,t){bt().setActiveSegmentationRepresentation(e,t),mt(e,t)}function id(e,t){var n=Ct(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function ld(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Ct(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),wt(e)}function cd(e){var t=Ct(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function sd(e,t){var n=Ct(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,wt(e))}function dd(e){var t=Ct(e);if(t)return t.activeSegmentIndex}function ud(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");K.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])),Ft(e,t)}function vd(e,t,n){var r=Ut(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!Ht(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,mt(e,t)}function fd(e,t,n){var r=Ut(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return Ht(r.colorLUTIndex)[n]}function gd(e,t,n,r){for(var o=fd(e,t,n),a=0;a<r.length;a++)o[a]=r[a];mt(e,t)}var hd=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:Qs,THRESHOLD_INSIDE_CIRCLE:ed,ERASE_INSIDE_CIRCLE:rd,FILL_INSIDE_SPHERE:zs,ERASE_INSIDE_SPHERE:Ks},strategySpecificConfiguration:{THRESHOLD_INSIDE_CIRCLE:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",brushSize:25}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"_editData",void 0),X(Xo(e),"_hoverData",void 0),X(Xo(e),"onSetToolPassive",(function(){e.disableCursor()})),X(Xo(e),"onSetToolEnabled",(function(){e.disableCursor()})),X(Xo(e),"onSetToolDisabled",(function(){e.disableCursor()})),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail.element,r=(0,K.getEnabledElement)(n),o=r.viewport,a=r.renderingEngine;if(o instanceof K.StackViewport)throw new Error("Not implemented yet");var i=od(e.toolGroupId);if(!i)throw new Error("No active segmentation detected, create one before using the brush tool");var l=i.segmentationId,c=i.type,s=cd(l),d=Ct(l).representationData[c].volumeId,u=K.cache.getVolume(d),v=o.getActors()[0].uid,f=K.cache.getVolume(v),g=[o.id];return e._editData={segmentation:u,imageVolume:f,segmentsLocked:s},e._activateDraw(n),Ul(n),t.preventDefault(),Ko(a,g),!0})),X(Xo(e),"mouseMoveCallback",(function(t){e.mode===ze.Active&&e.updateCursor(t)})),X(Xo(e),"_dragCallback",(function(t){var n=t.detail.element,r=(0,K.getEnabledElement)(n),o=r.renderingEngine,a=e._editData,i=a.imageVolume,l=a.segmentation,c=a.segmentsLocked;e.updateCursor(t);var s=e._hoverData,d=s.segmentIndex,u=s.segmentationId,v=s.segmentationRepresentationUID,f=s.brushCursor,g=s.viewportIdsToRender,h=f.data,p=f.metadata,m=p.viewPlaneNormal,w=p.viewUp;Ko(o,g);var E={points:h.handles.points,volume:l,imageVolume:i,segmentIndex:d,segmentsLocked:c,viewPlaneNormal:m,toolGroupId:e.toolGroupId,segmentationId:u,segmentationRepresentationUID:v,viewUp:w,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(r,E)})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.imageVolume,a=r.segmentation,i=r.segmentsLocked,l=e._hoverData,c=l.segmentIndex,s=l.segmentationId,d=l.segmentationRepresentationUID,u=l.brushCursor,v=u.data,f=u.metadata,g=f.viewPlaneNormal,h=f.viewUp;e._deactivateDraw(n),Ll(n);var p=(0,K.getEnabledElement)(n),m=p.viewport;if(e._editData=null,e.updateCursor(t),m instanceof K.StackViewport)throw new Error("Not implemented yet");var w={points:v.handles.points,volume:a,imageVolume:o,segmentIndex:c,segmentsLocked:i,viewPlaneNormal:g,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:d,viewUp:h,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(p,w)})),X(Xo(e),"_activateDraw",(function(t){t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback)})),e}return J(o,[{key:"disableCursor",value:function(){this._hoverData=void 0}},{key:"updateCursor",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints.canvas,o=(0,K.getEnabledElement)(n),a=o.renderingEngine,i=o.viewport,l=i.getCamera(),c=l.viewPlaneNormal,s=l.viewUp,d=this.toolGroupId,u=od(d);if(u){var v=u.segmentationRepresentationUID,f=u.segmentationId,g=dd(f),h=fd(d,v,g),p=[i.id],m={metadata:{viewPlaneNormal:yr(c),viewUp:yr(s),FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:h},data:{}};this._hoverData={brushCursor:m,centerCanvas:r,segmentIndex:g,segmentationId:f,segmentationRepresentationUID:v,segmentColor:h,viewportIdsToRender:p},this._calculateCursor(n,r),Ko(a,p)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"_calculateCursor",value:function(e,t){var n=(0,K.getEnabledElement)(e).viewport.canvasToWorld,r=this.configuration.brushSize,o=[t[0],t[1]+r],a=[t[0],t[1]-r],i=[t[0]-r,t[1]],l=[t[0]+r,t[1]],c=this._hoverData.brushCursor.data;void 0===c.handles&&(c.handles={}),c.handles.points=[n(o),n(a),n(i),n(l)],c.invalidated=!1}},{key:"invalidateBrushCursor",value:function(){void 0!==this._hoverData&&(this._hoverData.brushCursor.data.invalidated=!0)}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor;if(!0===r.data.invalidated){var o=this._hoverData.centerCanvas,a=n.element;this._calculateCursor(a,o)}var i=r.metadata,l=i.brushCursorUID,c=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");n.getRenderingEngine()?Ec(t,l,"0",u,v,{color:f}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(ua);X(hd,"toolName",void 0),hd.toolName="Brush";var pd=hd;function md(e){var t=Zo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length)return Object.values(n).filter((function(e){return e instanceof pd}))}}function wd(e,t){var n=Zo(e);if(void 0!==n){md(e).forEach((function(e){e.configuration.brushSize=t,e.invalidateBrushCursor()}));var r=n.getViewportsInfo(),o=Object.keys(r).map((function(e){return r[e]}));if(o.length){var a=o[0].renderingEngineId,i=n.getViewportIds(),l=(0,K.getRenderingEngine)(a);Ko(l,i)}}}function Ed(e){var t=Zo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=md(e)[0];if(r)return r.configuration.brushSize}}}function yd(e,t){var n=Zo(e);if(void 0!==n){md(e).forEach((function(e){e.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold=t}));var r=n.getViewportsInfo();if(r.length){var o=r[0].renderingEngineId,a=n.getViewportIds(),i=(0,K.getRenderingEngine)(o);Ko(i,a)}}}function Id(e){var t=Zo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=md(e)[0];if(r)return r.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold}}}var bd=1e-6;function Cd(e,t,n){var r=Ln(n,2),o=r[0],a=r[1];if(Math.abs(t)<bd)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 Td(e,t,n,r,o){var a=Ln(e,2),i=a[0],l=a[1],c=Ln(t,2),s=c[0]-i,d=c[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(s)<bd&&Math.abs(d)<bd&&i>=n[0]&&i<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(Cd(n[0]-i,s,u)&&Cd(i-n[2],-s,u)&&Cd(n[1]-l,d,u)&&Cd(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=i+f*s,o[1]=l+f*d),v>0&&(r[0]+=v*s,r[1]+=v*d),1}return 0}function _d(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function Od(e,t,n,r){var o=Ln(e,2),a=o[0],i=o[1],l=Ln(t,2),c=l[0],s=l[1],d=Ln(n,2),u=d[0],v=d[1],f=Ln(r,2),g=f[0],h=f[1],p=s-i,m=a-c,w=c*i-a*s,E=p*u+m*v+w,y=p*g+m*h+w;if(0===E||0===y||_d(E)!==_d(y)){var I=h-v,b=u-g,C=g*v-u*h,T=I*a+b*i+C,_=I*c+b*s+C;if(0===T||0===_||_d(T)!==_d(_)){var O=p*b-I*m;return[(m*C-b*w)/O,(I*w-p*C)/O]}}}function Dd(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],c=e[i];if(xd(t,n,l,c))return[o,i];o=i}}function Sd(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 c=e[o],s=e[l];xd(t,n,c,s)&&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(nc.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:i[v],distance:u}}}function xd(e,t,n,r){var o=!1,a=[kd(e,t,n),kd(e,t,r),kd(n,r,e),kd(n,r,t)];return a[0]!==a[1]&&a[2]!==a[3]||((0===a[0]&&Md(e,n,t)||0===a[1]&&Md(e,r,t)||0===a[2]&&Md(n,e,r)||0===a[3]&&Md(n,t,r))&&(o=!0),o)}function kd(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 Md(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 Pd=.001,Rd=function(e,t){var n,r,o;if(e instanceof K.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,c=i.spacing,s=e.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=nc.vec3.create();nc.vec3.cross(h,u,d);var p,m=Math.abs(nc.vec3.dot(h,v)),w=Math.abs(nc.vec3.dot(h,f)),E=Math.abs(nc.vec3.dot(h,g));if(Math.abs(1-m)<Pd)p=c[0],r=v;else if(Math.abs(1-w)<Pd)p=c[1],r=f;else{if(!(Math.abs(1-E)<Pd))throw new Error("No support yet for oblique plane planar contours");p=c[2],r=g}var y,I=Math.abs(nc.vec3.dot(d,v)),b=Math.abs(nc.vec3.dot(d,f)),C=Math.abs(nc.vec3.dot(d,g));if(Math.abs(1-I)<Pd)y=c[0],o=v;else if(Math.abs(1-b)<Pd)y=c[1],o=f;else{if(!(Math.abs(1-C)<Pd))throw new Error("No support yet for oblique plane planar contours");y=c[2],o=g}n=[p,y]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},Nd=function(e,t,n){return nc.vec2.dist(e,t)<n},Ad=function(e,t,n,r){var o=r.xDir,a=r.yDir,i=r.spacing,l=(0,K.getEnabledElement)(e).viewport,c=l.canvasToWorld(t[t.length-1]),s=l.canvasToWorld(n),d=nc.vec3.create();nc.vec3.subtract(d,s,c);var u=Math.abs(nc.vec3.dot(d,o)),v=Math.abs(nc.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=nc.vec2.dist(g,n),p=nc.vec2.create();nc.vec2.subtract(p,n,g),nc.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},Ld=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 c=i/l,s=[a[0]/l,a[1]/l],d=[s[0]*c,s[1]*c],u=[t[0]+d[0],t[1]+d[1]];return!(nc.vec2.distance(e,u)>r||nc.vec2.distance(t,u)>nc.vec2.distance(t,n))};function Ud(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 Vd(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=Ln(e,2),r=n[0],o=n[1],a=Ln(t,2),i=a[0],l=a[1];return Math.sqrt(Math.pow(r-i,2)+Math.pow(o-l,2))}var Bd=f(807),jd=f.n(Bd);function Hd(e,t,n,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,i=e.getCamera(),l=i.position,c=K.utilities.getTargetVolumeAndSpacingInNormalDir(e,i,n),s=c.spacingInNormalDirection,d=s*a,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];jd().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],Wd(h,u)){var w=e.getIntensityFromWorld(h),E=r(w,h);E&&(o=E)}}return o}var Fd,Wd=function(e,t){var n=Ln(t,6),r=n[0],o=n[1],a=n[2],i=n[3],l=n[4],c=n[5];return e[0]>r&&e[0]<o&&e[1]>a&&e[1]<i&&e[2]>l&&e[2]<c},Gd={filterAnnotationsWithinSlice:is,getWorldWidthAndHeightFromCorners:ys,filterAnnotationsForDisplay:ls,getPointInLineOfSightWithCriteria:Hd};function qd(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 zd(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"}(Fd||(Fd={}));var Kd=Fd,Yd={};function $d(e,t){var n=(0,K.getEnabledElement)(e).viewportId;Yd[n]=t}function Jd(e){var t=(0,K.getEnabledElement)(e).viewportId;return Yd[t]}var Zd=K.utilities.triggerEvent;function Xd(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,K.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var a=o.viewport;if(!(a instanceof K.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var i,l,c,s,d=a.getTargetImageIdIndex(),u=a.getImageIds(),v=Jd(e);if(v?eu(v):(v={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!==(c=t.reverse)&&void 0!==c&&c,loop:null===(s=t.loop)||void 0===s||s},$d(e,v)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(v.framesPerSecond=Number(t.framesPerSecond),v.reverse=v.framesPerSecond<0,v.ignoreFrameTimeVector=!0),!0!==v.ignoreFrameTimeVector&&v.frameTimeVector&&v.frameTimeVector.length===u.length){var f=function(e,t){var n,r,o,a=0,i=e.length,l=[],c=!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&&(c=!0),a+=o;return l.length>0&&(o=c?a/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:c}}(v.frameTimeVector,v.speed),g=f.timeouts,h=f.isTimeVarying;n=g,r=h}var p=function(){var t={targetImageIdIndex:a.getTargetImageIdIndex(),imageIds:a.getImageIds()},n=t.targetImageIdIndex,r=t.imageIds.length;if(v.reverse?n--:n++,v.loop||!(n<0||n>=r)){if(n>=r&&(n=0),n<0&&(n=r-1),n!==t.targetImageIdIndex){var o=n-t.targetImageIdIndex;a.scroll(o,!0,!0)}}else{eu(v);var i={element:e};Zd(e,Kd.CLIP_STOPPED,i)}};n&&n.length>0&&r?(v.usingFrameTimeVector=!0,v.intervalId=window.setTimeout((function e(){v.intervalId=window.setTimeout(e,n[d]),p()}),0)):(v.usingFrameTimeVector=!1,v.intervalId=window.setInterval(p,1e3/Math.abs(v.framesPerSecond)));var m={element:e};Zd(e,Kd.CLIP_STARTED,m)}function Qd(e){var t=Jd((0,K.getEnabledElement)(e).viewport.element);t&&eu(t)}function eu(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function tu(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 nu(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function ru(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,ou),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 ou(e){return e.length}function au(){return ru(arguments)}function iu(e,t,n,r){var o,a,i=n-t+1,l=null!==(o=Math.floor(r/100*i))&&void 0!==o?o:1,c=null!==(a=Math.floor(i/l))&&void 0!==a?a:1;if(isNaN(i)||!i||!c)return e;if(i/c<2)return e;var s=Math.max(0,t),d=Math.min(e.length-1,n),u=e.slice(0,s),v=e.slice(d+1,e.length),f=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n,r=t[t.length-1]-t[0]+1,o=tu(t.map((function(t){return e[t][0]}))),a=tu(t.map((function(t){return e[t][1]})));if(3===(null===(n=e[0])||void 0===n?void 0:n.length)){var i=tu(t.map((function(t){return e[t][2]})));return au(nu(o,r),nu(a,r),nu(i,r))}return au(nu(o,r),nu(a,r))}(e,function(e,t){for(var n=[],r=Ln(t,2),o=r[0],a=r[1],i=a-o+1,l=Math.floor(i/e),c=0,s=Math.round((i-1)/(l-1)*c)+o;s<=a;)n.push(s),c++,s=Math.round((i-1)/(l-1)*c)+o;return n}(c,[s,d]));return[].concat(yr(u),yr(f),yr(v))}function lu(e){var t,n;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.interpolateOnAdd)||!0===(null==e||null===(n=e.interpolation)||void 0===n?void 0:n.interpolateOnEdit)}function cu(e,t,n){return(e+t+n)%t}function su(e,t,n,r){var o=Ln(e,3),a=o[1],i=o[2],l=Ln(t,3),c=l[1],s=l[2],d=i.length,u=s.length,v=e[0],f=t[0];if(!(i[v]&&s[f]&&i[a]&&s[c]))return[void 0,void 0];for(;v!==a&&f!==c;){if(n(s[f],i[v]))return[v,f];v=cu(v,d,r),f=cu(f,u,r)}return[void 0,void 0]}function du(e,t,n){var r=e.interpolation,o=t;if(r){var a=r.knotsRatioPercentageOnAdd,i=r.knotsRatioPercentageOnEdit,l=r.interpolateOnAdd,c=void 0!==l&&l,s=r.interpolateOnEdit,d=n?i:a;if(n?void 0!==s&&s:c){var u=Ln(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===Vd(e[n],t[r]))return[n,r]}(e,t)||[],r=Ln(n,2),o=r[0],a=r[1],i=function(e,t){return!1===function(e,t){return Vd(e,t)<.001}(e,t)},l=Ln(su([cu(o,e.length,1),o,e],[cu(a,t.length,1),a,t],i,1),2),c=l[0],s=l[1];return[c,Ln(su([cu(c,e.length,-1),c,e],[cu(s,t.length,-1),s,t],i,-1),1)[0]]}(t,n):[0,t.length-1],2),v=u[0],f=u[1];return t[v]&&t[f]?iu(t,v,f,d):t}}return o}function uu(e,t){var n=e[0],r=e[e.length-1],o=nc.vec2.create();nc.vec2.set(o,r[0]-n[0],r[1]-n[1]),nc.vec2.normalize(o,o);var a=nc.vec2.create(),i=nc.vec2.create();nc.vec2.set(a,-o[1],o[0]),nc.vec2.set(i,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],c={dist:0,index:null},s=0;s<e.length;s++){var d=e[s],u=nc.vec2.dist(d,l);u>c.dist&&(c.dist=u,c.index=s)}return[e[c.index],l].map(t.canvasToWorld)}var vu=Ad,fu=Nd,gu=Dd,hu=Rd;function pu(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,K.getEnabledElement)(a).viewport,c=hu(l,this.configuration.subPixelResolution),s=c.spacing,d=c.xDir,u=c.yDir;this.drawData={canvasPoints:[i],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:s,xDir:d,yDir:u},qe.isInteractingWithTool=!0,a.addEventListener(Y.MOUSE_UP,this.mouseUpDrawCallback),a.addEventListener(Y.MOUSE_DRAG,this.mouseDragDrawCallback),a.addEventListener(Y.MOUSE_CLICK,this.mouseUpDrawCallback),a.addEventListener(Y.TOUCH_END,this.mouseUpDrawCallback),a.addEventListener(Y.TOUCH_DRAG,this.mouseDragDrawCallback),a.addEventListener(Y.TOUCH_TAP,this.mouseUpDrawCallback),Ul(a)}function mu(e){qe.isInteractingWithTool=!1,e.removeEventListener(Y.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(Y.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(Y.MOUSE_CLICK,this.mouseUpDrawCallback),e.removeEventListener(Y.TOUCH_END,this.mouseUpDrawCallback),e.removeEventListener(Y.TOUCH_DRAG,this.mouseDragDrawCallback),e.removeEventListener(Y.TOUCH_TAP,this.mouseUpDrawCallback),Ll(e)}function wu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,K.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=c.canvasToWorld(m),E=nc.vec3.create();nc.vec3.subtract(E,o,w);var y=Math.abs(nc.vec3.dot(E,u)),I=Math.abs(nc.vec3.dot(E,v));if(!(y<=f[0]&&I<=f[1])){var b=this.findCrossingIndexDuringCreate(e);if(void 0!==b)this.applyCreateOnCross(e,b);else{var C=vu(r,p,a,this.commonData);this.drawData.polylineIndex=h+C}Ko(l,d)}}function Eu(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],a=e.detail.element;t&&!fu(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(a):this.completeDrawClosedContour(a)}function yu(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,K.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine;vu(e,t,t[0],this.commonData),t.pop();var c=(lu(this.configuration)?du(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Ko(l,o),this.deactivateDraw(e),!0}function Iu(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=gu(r,n[0],n[1],!1);if(o){var a=o[1];this.drawData.canvasPoints=e.splice(0,a)}}function bu(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,K.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine,c=(lu(this.configuration)?du(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!0,r.data.handles.points=[c[0],c[c.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=uu(t,i)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Ko(l,o),this.deactivateDraw(e),!0}function Cu(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=gu(i,o,a,!1);if(void 0!==l)return l[0]}function Tu(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender;vu(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 _u(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!fu(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Ou(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,K.getEnabledElement)(e).renderingEngine;return nt(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Ko(a,o),this.deactivateDraw(e),!0}return!1}var Du=function(e){e.activateDraw=pu.bind(e),e.deactivateDraw=mu.bind(e),e.applyCreateOnCross=Tu.bind(e),e.findCrossingIndexDuringCreate=Cu.bind(e),e.completeDrawOpenContour=bu.bind(e),e.removeCrossedLinesOnCompleteDraw=Iu.bind(e),e.mouseDragDrawCallback=wu.bind(e),e.mouseUpDrawCallback=Eu.bind(e),e.completeDrawClosedContour=yu.bind(e),e.cancelDrawing=_u.bind(e),e.haltDrawing=Ou.bind(e)},Su=Ad,xu=Dd;function ku(e,t){var n=e.detail,r=n.element,o=n.currentPoints,a=n.lastPoints,i=o.canvas,l=a.canvas,c=this.editData,s=c.editCanvasPoints,d=c.prevCanvasPoints,u=xu(d,i,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(s.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=s[0],f=[],g=0;g<d.length;g++){var h=d[g],p=nc.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 E=nc.vec2.create();nc.vec2.subtract(E,s[1],s[0]),nc.vec2.normalize(E,E);var y=[s[0][0]-6*E[0],s[0][1]-6*E[1]],I=xu(d,y,s[0],t);if(I){var b=[y];Su(r,b,s[0],this.commonData),s.unshift.apply(s,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=s.length-1,this.editData.startCrossingIndex=I[0]}}}function Mu(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++,xu(r,i[0],i[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Pu(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,a=r.canvas,i=o.canvas,l=this.editData.prevCanvasPoints;return!!xu(l,a,i,t)}function Ru(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=!!xu(n,a[0],a[1],e);if(r.pop(),i)break}}function Nu(){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=nc.vec2.distance(i,r);o.push({distance:l,index:a})}o.sort((function(e,t){return e.distance-t.distance}));for(var c=t.slice(0,-1),s=0;s<o.length;s++){var d=o[s].index,u=n[d],v=t[t.length-1];if(!xu(c,u,v,!1))return d}return-1}}function Au(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),c=xu(l,o,a,!1);if(c)for(var s=c[0],d=i.length-s,u=0;u<d;u++)i.pop()}var Lu=function(e){e.checkForFirstCrossing=ku.bind(e),e.removePointsUpUntilFirstCrossing=Mu.bind(e),e.checkForSecondCrossing=Pu.bind(e),e.findSnapIndex=Nu.bind(e),e.removePointsAfterSecondCrossing=Ru.bind(e),e.checkAndRemoveCrossesOnEditLine=Au.bind(e)},Uu=Rd,Vu=Ad,Bu=Ud;function ju(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,K.getEnabledElement)(a).viewport,c=t.data.polyline.map(l.worldToCanvas),s=Uu(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},qe.isInteractingWithTool=!0,a.addEventListener(Y.MOUSE_UP,this.mouseUpClosedContourEditCallback),a.addEventListener(Y.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener(Y.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),a.addEventListener(Y.TOUCH_END,this.mouseUpClosedContourEditCallback),a.addEventListener(Y.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener(Y.TOUCH_TAP,this.mouseUpClosedContourEditCallback),Ul(a)}function Hu(e){qe.isInteractingWithTool=!1,e.removeEventListener(Y.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(Y.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(Y.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),e.removeEventListener(Y.TOUCH_END,this.mouseUpClosedContourEditCallback),e.removeEventListener(Y.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(Y.TOUCH_TAP,this.mouseUpClosedContourEditCallback),Ll(e)}function Fu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,K.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=c.canvasToWorld(w),y=nc.vec3.create();nc.vec3.subtract(y,o,E);var I=Math.abs(nc.vec3.dot(y,u)),b=Math.abs(nc.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Vu(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)),Ko(l,d)):this.finishEditAndStartNewEdit(e)}}function Wu(e){var t=e.detail.element,n=(0,K.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.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:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},Ko(o,l)}function Gu(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,c=e.detail.element,s=yr(r);Vu(c,s,n[a],this.commonData),s.length>r.length&&s.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=nc.vec2.distance(n[i],s[0]),u=nc.vec2.distance(n[i],s[s.length-1]),v=nc.vec2.distance(n[l],s[0]),f=nc.vec2.distance(n[l],s[s.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 E=0;E<s.length;E++){var y=s[E];g.push([y[0],y[1]])}else for(var I=s.length-1;I>=0;I--){var b=s[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var T=n[C];g.push([T[0],T[1]])}for(var _=[],O=i;O<l;O++){var D=n[O];_.push([D[0],D[1]])}if((m=v+u)<(w=f+d))for(var S=0;S<s.length;S++){var x=s[S];_.push([x[0],x[1]])}else for(var k=s.length-1;k>=0;k--){var M=s[k];_.push([M[0],M[1]])}return Bu(g)>Bu(_)?g:_}}function qu(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function zu(e){var t=(0,K.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(lu(this.configuration)?du(this.configuration,c,s):c).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,Ko(r,i),this.deactivateClosedContourEdit(e)}function Ku(e){this.completeClosedContourEdit(e)}var Yu=function(e){e.activateClosedContourEdit=ju.bind(e),e.deactivateClosedContourEdit=Hu.bind(e),e.mouseDragClosedContourEditCallback=Fu.bind(e),e.mouseUpClosedContourEditCallback=qu.bind(e),e.finishEditAndStartNewEdit=Wu.bind(e),e.fuseEditPointsWithClosedContour=Gu.bind(e),e.cancelClosedContourEdit=Ku.bind(e),e.completeClosedContourEdit=zu.bind(e)},$u=Ad,Ju=Rd;function Zu(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,K.getEnabledElement)(a).viewport,c=t.data.polyline.map(l.worldToCanvas),s=Ju(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},qe.isInteractingWithTool=!0,a.addEventListener(Y.MOUSE_UP,this.mouseUpOpenContourEditCallback),a.addEventListener(Y.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener(Y.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),a.addEventListener(Y.TOUCH_END,this.mouseUpOpenContourEditCallback),a.addEventListener(Y.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener(Y.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Ul(a)}function Xu(e){qe.isInteractingWithTool=!1,e.removeEventListener(Y.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener(Y.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(Y.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),e.removeEventListener(Y.TOUCH_END,this.mouseUpOpenContourEditCallback),e.removeEventListener(Y.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener(Y.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Ll(e)}function Qu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,K.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=c.canvasToWorld(w),y=nc.vec3.create();nc.vec3.subtract(y,o,E);var I=Math.abs(nc.vec3.dot(y,u)),b=Math.abs(nc.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+$u(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),Ko(l,d)}}function ev(e){var t=e.detail.element,n=(0,K.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 tv(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData,l=i.snapIndex,c=i.prevCanvasPoints;if(void 0===i.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==c.length-1)return!1;var s=o,d=a,u=c[l],v=nc.vec2.create(),f=nc.vec2.create();nc.vec2.set(v,s[0]-d[0],s[1]-d[1]),nc.vec2.set(f,s[0]-u[0],s[1]-u[1]);var g=nc.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 nv(){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 c=0;c<o;c++){var s=n[c];a.push([s[0],s[1]])}if(nc.vec2.distance(n[o],r[0])<nc.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 rv(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,c=e.detail.element,s=yr(r);$u(c,s,n[a],this.commonData),s.length>r.length&&s.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=nc.vec2.distance(n[i],s[0]),u=nc.vec2.distance(n[i],s[s.length-1]),v=nc.vec2.distance(n[l],s[0]),f=nc.vec2.distance(n[l],s[s.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<s.length;m++){var w=s[m];g.push([w[0],w[1]])}else for(var E=s.length-1;E>=0;E--){var y=s[E];g.push([y[0],y[1]])}for(var I=l;I<n.length;I++){var b=n[I];g.push([b[0],b[1]])}return g}}function ov(e){var t=e.detail.element,n=(0,K.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.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:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},Ko(o,l)}function av(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function iv(e){var t=(0,K.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(lu(this.configuration)?du(this.configuration,c,s):c).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=uu(c,n)),this.triggerAnnotationModified(a,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,Ko(r,i),this.deactivateOpenContourEdit(e)}function lv(e){this.completeOpenContourEdit(e)}var cv=function(e){e.activateOpenContourEdit=Zu.bind(e),e.deactivateOpenContourEdit=Xu.bind(e),e.mouseDragOpenContourEditCallback=Qu.bind(e),e.mouseUpOpenContourEditCallback=av.bind(e),e.fuseEditPointsWithOpenContour=rv.bind(e),e.finishEditOpenOnSecondCrossing=ov.bind(e),e.checkIfShouldOverwriteAnEnd=tv.bind(e),e.fuseEditPointsForOpenContourEndEdit=nv.bind(e),e.openContourEditOverwriteEnd=ev.bind(e),e.cancelOpenContourEdit=lv.bind(e),e.completeOpenContourEdit=iv.bind(e)},sv=Rd;function dv(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,K.getEnabledElement)(r).viewport,a=sv(o,this.configuration.subPixelResolution),i=a.spacing,l=a.xDir,c=a.yDir,s=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&s.reverse(),this.drawData={canvasPoints:s,polylineIndex:s.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:i,xDir:l,yDir:c},qe.isInteractingWithTool=!0,r.addEventListener(Y.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener(Y.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener(Y.MOUSE_CLICK,this.mouseUpDrawCallback),r.addEventListener(Y.TOUCH_END,this.mouseUpDrawCallback),r.addEventListener(Y.TOUCH_DRAG,this.mouseDragDrawCallback),r.addEventListener(Y.TOUCH_TAP,this.mouseUpDrawCallback),Ul(r)}var uv=function(e){e.activateOpenContourEndEdit=dv.bind(e)},vv=Nd;function fv(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 gv(e,t,n){var r;null!=e&&null!==(r=e.viewport)&&void 0!==r&&r.getImageData()&&(n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return uu(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 hv(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));Tc(t,n.annotationUID,"1",a,o)}function pv(e,t,n){var r,o=e.viewport,a=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));Tc(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 c=this.configuration.alwaysRenderOpenContourHandles.radius,s=[i[0],i[i.length-1]];0===l?s.shift():1===l&&s.pop(),Ic(t,n.annotationUID,"0",s,{color:a.color,handleRadius:c})}if(null!==l){var d=i[0===l?0:i.length-1];Ic(t,n.annotationUID,"1",[d],{color:a.color})}}function mv(e,t,n){var r=e.viewport,o=n.data,a=o.polyline,i=o.openUShapeContourVectorToPeak;if(this.renderOpenContour(e,t,n),i){var l=r.worldToCanvas(a[0]),c=r.worldToCanvas(a[a.length-1]),s=[r.worldToCanvas(i[0]),r.worldToCanvas(i[1])],d=this._getRenderingOptions(e,n);Tc(t,n.annotationUID,"first-to-last",[l,c],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"}),Tc(t,n.annotationUID,"midpoint-to-open-contour",[s[0],s[1]],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"})}}function wv(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,a=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,Tc(t,n.annotationUID,"1",a,r),o){var i=a[0],l=a[a.length-1];vv(i,l,this.configuration.closeContourProximity)?Tc(t,n.annotationUID,"2",[l,i],r):Ic(t,n.annotationUID,"0",[i],{color:r.color,handleRadius:2})}}function Ev(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Tc(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function yv(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);Tc(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var Iv=function(e){e.renderContour=gv.bind(e),e.renderClosedContour=hv.bind(e),e.renderOpenContour=pv.bind(e),e.renderOpenUShapedContour=mv.bind(e),e.renderContourBeingDrawn=wv.bind(e),e.renderClosedContourBeingEdited=Ev.bind(e),e.renderOpenContourBeingEdited=yv.bind(e),e._getRenderingOptions=fv.bind(e)};function bv(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 Cv=Ld,Tv=1-K.CONSTANTS.EPSILON,_v=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,subPixelResolution:4,interpolation:{interpolateOnAdd:!1,interpolateOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40}}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"commonData",void 0),X(Xo(e),"isDrawing",!1),X(Xo(e),"isEditingClosed",!1),X(Xo(e),"isEditingOpen",!1),X(Xo(e),"activateDraw",void 0),X(Xo(e),"activateClosedContourEdit",void 0),X(Xo(e),"activateOpenContourEdit",void 0),X(Xo(e),"activateOpenContourEndEdit",void 0),X(Xo(e),"cancelDrawing",void 0),X(Xo(e),"cancelClosedContourEdit",void 0),X(Xo(e),"cancelOpenContourEdit",void 0),X(Xo(e),"renderContour",void 0),X(Xo(e),"renderContourBeingDrawn",void 0),X(Xo(e),"renderClosedContourBeingEdited",void 0),X(Xo(e),"renderOpenContourBeingEdited",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine,s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=rs(o,e.getToolName()),g=l.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:g,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:[yr(a)],label:""}};return et(h,o),e.activateDraw(t,h,f),t.preventDefault(),Ko(c,f),h})),X(Xo(e),"handleSelectedCallback",(function(t,n){var r=rs(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,r)})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=rs(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,r):e.activateClosedContourEdit(t,n,r)})),X(Xo(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,K.getEnabledElement)(e).viewport,a=t.data.polyline,i=o.worldToCanvas(a[0]),l=1;l<a.length;l++){var c=i,s=o.worldToCanvas(a[l]);if(!0===Cv(n,c,s,r))return!0;i=s}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(a[0]),u=o.worldToCanvas(a[a.length-1]);return!0===Cv(n,d,u,r)})),X(Xo(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)})),X(Xo(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=Y.ANNOTATION_MODIFIED,a={annotation:e,viewportId:n,renderingEngineId:r};(0,K.triggerEvent)(K.eventTarget,o,a)})),X(Xo(e),"triggerAnnotationCompleted",(function(e){var t=Y.ANNOTATION_COMPLETED,n={annotation:e};(0,K.triggerEvent)(K.eventTarget,t,n)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport.element,l=Qe(e.getToolName(),i);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 c=e.isDrawing,s=e.isEditingOpen,d=e.isEditingClosed;if(!(c||s||d))return l.forEach((function(r){r&&e.renderContour(t,n,r)})),a;var u=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===u)if(c)e.renderContourBeingDrawn(t,n,r);else if(d)e.renderClosedContourBeingEdited(t,n,r);else{if(!s)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),Du(Xo(e)),Lu(Xo(e)),Yu(Xo(e)),cv(Xo(e)),uv(Xo(e)),Iv(Xo(e)),e}return J(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,K.getEnabledElement)(e).viewport;if(r instanceof K.StackViewport)n=ls(r,t);else{if(!(r instanceof K.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),a=K.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,n=Math.abs(nc.vec3.dot(r,t))>Tv;return t&&n}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return bv(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)?bv(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(s.s();!(a=s.n()).done;){var d=a.value,u=d.data.polyline[0];if(d.isVisible){var v=nc.vec3.create();nc.vec3.sub(v,l,u);var f=nc.vec3.dot(v,r);Math.abs(f)<i&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}}]),o}(gs);X(_v,"toolName",void 0),_v.toolName="PlanarFreehandROI";var Ov=_v;function Dv(e,t,n){if(function(e,t,n){var r;if(null==t||null===(r=t.data)||void 0===r||!r.polyline||n<=0)return!0;if(!e.viewport)return!0;var o=e.renderingEngineId,a=e.viewportId,i=e.FrameOfReferenceUID,l=Or(a,o);if(t.metadata.FrameOfReferenceUID!==i)return!0;if(!l)return!0;var c=l.getToolInstance(t.metadata.toolName);return!(c instanceof Ov)||c.isDrawing||c.isEditingOpen||c.isEditingClosed}(e,t,n))return!1;var r=e.viewport,o=t.data.polyline.map(r.worldToCanvas),a=iu(o,0,o.length,n);return a!==o&&(t.data.polyline=a.map(r.canvasToWorld),!0)}var Sv={interpolateAnnotation:Dv},xv={};function kv(e){var t=(0,K.getEnabledElement)(e).viewportId;return xv[t]}var Mv,Pv=K.Enums.RequestType.Prefetch,Rv={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Nv(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 Av(e){var t=(0,K.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof K.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function Lv(e){var t=kv(e);if(t){var n=t||{},r=Av(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&&K.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){Rv.preserveExistingPool||K.imageLoadPoolManager.clearRequestStack(Pv);for(var o,a,i,l,c,s,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]>Rv.maxImagesToPrefetch)&&u>=0,p=!(n.indicesToRequest[v]-g>Rv.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(s=n.indicesToRequest[u--],c=r.imageIds[s],f.push(c)),p&&(s=n.indicesToRequest[v++],c=r.imageIds[s],f.push(c))}var m=function(e,t){return K.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{enabled:!0},requestType:Pv};K.imageLoadPoolManager.addRequest(m.bind(null,e,t),Pv,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function Uv(e){return function(t){var n,r=t.detail;try{n=Av(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var a=kv(e);a&&a.data&&a.data.length&&a.indicesToRequest.push(o)}}}}function Vv(e){clearTimeout(Mv),Mv=setTimeout((function(){var t=e.target;try{Lv(t)}catch(e){return}}),10)}function Bv(e){var t=Av(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Nv(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,K.getEnabledElement)(e).viewportId;xv[n]=t}(e,n),Lv(e),e.removeEventListener(K.Enums.Events.STACK_NEW_IMAGE,Vv),e.addEventListener(K.Enums.Events.STACK_NEW_IMAGE,Vv);var o=Uv(e);K.eventTarget.removeEventListener(K.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),K.eventTarget.addEventListener(K.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function jv(e){clearTimeout(Mv),e.removeEventListener(K.Enums.Events.STACK_NEW_IMAGE,Vv);var t=Uv(e);K.eventTarget.removeEventListener(K.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=kv(e);n&&n.data.length&&(n.enabled=!1,K.imageLoadPoolManager.clearRequestStack(Pv))}function Hv(){return Rv}function Fv(e){Rv=e}function Wv(e,t){if(e instanceof K.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];return nc.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=nc.vec3.dot(t,r),a=nc.vec3.fromValues(r[0],r[1],r[2]);if(nc.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];nc.vec3.add(i,n.focalPoint,a),nc.vec3.add(l,n.position,a),e.setCamera({focalPoint:i,position:l}),e.render()}}(e,r),!0}}var Gv=function(e,t){var n=Dl.getDefinedCursor(t,!0);n||(n=el.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=el.getDefinedCursor(t)),Al(e,n)},qv=[].concat(yr(El),yr(rl)),zv=function(e,t,n){var r=Cl("textBoxFontSize",e,t,n),o=Cl("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},Kv=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===st.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(!K.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)}))},Yv=function(e){Kv(e),e.map((function(e){_t(ee()(e))}))};function $v(){return($v=fa(ha().mark((function e(t,n,r){var o,a;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Zo(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 Jv(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 Jv(e,t,n){return Zv.apply(this,arguments)}function Zv(){return(Zv=fa(ha().mark((function e(t,n,r){var o;return ha().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==st.Labelmap){e.next=6;break}return e.next=3,Ya.addSegmentationRepresentation(t,n,r);case 3:case 9:o=e.sent,e.next=13;break;case 6:if(n.type!==st.Contour){e.next=12;break}return e.next=9,hi.addSegmentationRepresentation(t,n,r);case 12:throw new Error("The representation type ".concat(n.type," is not supported"));case 13:return e.abrupt("return",o);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Xv=function(e,t,n){return $v.apply(this,arguments)};function Qv(e,t,n){var r=Ot(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,mt(e,r.segmentationRepresentationUID))}))}function ef(e,t){var n=Ot(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function tf(e,t,n,r){var o=Ut(e,t);o&&(r?o.segmentsHidden.delete(n):o.segmentsHidden.add(n),mt(e,t))}var nf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return Z(this,o),r.call(this,e,t)}return J(o,[{key:"touchDragCallback",value:function(e){this._dragCallback(e)}},{key:"mouseDragCallback",value:function(e){this._dragCallback(e)}},{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,K.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,c=i.position,s=[c[0]-a[0],c[1]-a[1],c[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:s}),o.viewport.render()}}]),o}(ua);X(nf,"toolName",void 0),nf.toolName="Pan";var rf=nf;var of=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),a=o.getViewUp(),i=o.getFocalPoint(),l=o.getPosition(),c=[0,0,0],s=[0,0,0],d=[0,0,0],u=nc.mat4.identity(new Float32Array(16));nc.mat4.translate(u,u,t),nc.mat4.rotate(u,u,r,n),nc.mat4.translate(u,u,[-t[0],-t[1],-t[2]]),nc.vec3.transformMat4(c,l,u),nc.vec3.transformMat4(s,i,u),nc.mat4.identity(u),nc.mat4.rotate(u,u,r,n),nc.vec3.transformMat4(d,a,u),e.setCamera({position:c,viewUp:d,focalPoint:s})})),e.touchDragCallback=e._dragCallback.bind(Xo(e)),e.mouseDragCallback=e._dragCallback.bind(Xo(e)),e}return J(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,c=(0,K.getEnabledElement)(n).viewport,s=c.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=c.canvasToWorld(g),p=Math.pow(1+Math.abs(.5),2),m=[f[0],0,0],w=[v[0],0,0],E=Math.pow(m[0],2),y=Math.pow(w[0],2),I=E>p?0:Math.sqrt(p-E),b=y>p?0:Math.sqrt(p-y),C=[m[0],0,I];jd().normalize(C);var T=[w[0],0,b];jd().normalize(T);var _=jd().dot(C,T);if(Math.abs(_)>1e-4){var O=-2*Math.acos(jd().clampValue(_,-1,1))*Math.sign(v[0]-f[0])*l,D=s.viewUp,S=s.viewPlaneNormal,x=[0,0,0],k=[0,0,0];jd().cross(D,S,x),jd().normalize(x),jd().cross(S,x,k),jd().normalize(k),jd().normalize(D),this.rotateCamera(c,h,k,O);var M=(f[1]-v[1])*l;this.rotateCamera(c,h,x,M),c.render()}}}]),o}(ua);X(of,"toolName",void 0),of.toolName="TrackballRotate";var af=of;function lf(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 cf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lf(Object(n),!0).forEach((function(t){X(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var sf=K.utilities.transformWorldToIndex,df=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"eventDispatchDetail",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:f,referencedImageId:v},data:{label:"",handles:{points:[yr(a)]},cachedStats:{}}};et(g,o);var h=rs(o,e.getToolName());return e.editData={annotation:g,newAnnotation:!0,viewportIdsToRender:h},e._activateModify(o),Ul(o),t.preventDefault(),Ko(c,h),g})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=(0,K.getEnabledElement)(n),c=l.renderingEngine,s=l.viewportId;if(e.eventDispatchDetail={viewportId:s,renderingEngineId:c.id},e._deactivateModify(n),Ll(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(c,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=e.editData,l=i.annotation,c=i.viewportIdsToRender;l.data.handles.points[0]=yr(a),l.invalidated=!0;var s=(0,K.getEnabledElement)(o).renderingEngine;Ko(s,c)})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=i.worldToCanvas(p);u.annotationUID=g;var w=e.getStyle("color",u,f);if(h.cachedStats[s]?f.invalidated&&(e._calculateCachedStats(f,d,t),i instanceof K.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=K.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=K.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,index:null,value:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;Ic(n,g,"0",[m],{color:w}),a=!0;var E=bs(i,s),y=e._getTextLines(h,s,E);if(y){var I=[m[0]+6,m[1]-6];xc(n,g,"0",y,[I[0],I[1]],e.getLinkedTextBoxStyle(u,f))}}return a})),e}return J(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=t.data.handles.points[0],i=o.worldToCanvas(a);if(!0==nc.vec2.distance(n,i)<r)return a}},{key:"handleSelectedCallback",value:function(e,t){var n=e.detail.element;t.highlighted=!0;var r=rs(n,this.getToolName());this.editData={annotation:t,viewportIdsToRender:r},this._activateModify(n),Ul(n);var o=(0,K.getEnabledElement)(n).renderingEngine;Ko(o,r),e.preventDefault()}},{key:"_getTextLines",value:function(e,t,n){var r=e.cachedStats[t],o=r.index,a=r.Modality,i=r.value,l=r.SUVBw,c=r.SUVLbm,s=r.SUVBsa;if(void 0!==i||void 0!==l){var d=[],u=Is(a,n);return d.push("(".concat(o[0],", ").concat(o[1],", ").concat(o[2],")")),"PT"===a&&!0===n&&void 0!==l?(d.push("".concat(l.toFixed(2)," SUV bw")),c&&d.push("".concat(c.toFixed(2)," SUV lbm")),s&&d.push("".concat(s.toFixed(2)," SUV bsa"))):d.push("".concat(i.toFixed(2)," ").concat(u)),d}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if(r.value=e,"PT"===n&&t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,a=o.suvbwToSuvlbm,i=o.suvbwToSuvbsa;if(r.SUVBw=e,a){var l=e*a;r.SUVLbm=l}if(i){var c=e*i;r.SUVBsa=c}}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,c=Object.keys(l),s=0;s<c.length;s++){var d=c[s],u=this.getTargetIdImage(d,t);if(u){var v=u.dimensions,f=u.imageData,g=u.metadata,h="getScalarData"in u?u.getScalarData():u.scalarData,p=g.Modality,m=sf(f,i);if(m[0]=Math.round(m[0]),m[1]=Math.round(m[1]),m[2]=Math.round(m[2]),K.utilities.indexWithinDimensions(m,v)){this.isHandleOutsideImage=!1;var w=v[0],E=v[0]*v[1],y=h[m[2]*E+m[1]*w+m[0]];if(d.startsWith("imageId:")){var I=d.split("imageId:")[1],b=K.utilities.imageIdToURI(I),C=K.utilities.getViewportsWithImageURI(b,a)[0];m[2]=C.getCurrentImageIdIndex()}var T=this._getValueForModality(y,u,p);l[d]=cf(cf({index:m},T),{},{Modality:p})}else this.isHandleOutsideImage=!0,l[d]={index:m,Modality:p};e.invalidated=!1;var _=Y.ANNOTATION_MODIFIED,O={annotation:e,viewportId:o,renderingEngineId:a};(0,K.triggerEvent)(K.eventTarget,_,O)}}return l}}]),o}(gs);X(df,"toolName",void 0),df.toolName="Probe";var uf=df;var vf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"eventDispatchDetail",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[yr(a)]},cachedStats:{}}},g=rs(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Ul(o),t.preventDefault(),Ko(c,g),f})),X(Xo(e),"postTouchStartCallback",(function(t){return e.postMouseDownCallback(t)})),X(Xo(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var a=e.filterInteractableAnnotationsForElement(o.element,[e.editData.annotation]);if(null==a||!a.length)return r;var i=e.getTargetId(o),l=o.getRenderingEngine(),c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,d=s.annotationUID,u=s.data,v=u.handles.points[0],f=o.worldToCanvas(v);c.annotationUID=d;var g=e.getStyle("color",c,s);if(u.cachedStats[i]?s.invalidated&&e._calculateCachedStats(s,l,t):(u.cachedStats[i]={Modality:null,index:null,value:null},e._calculateCachedStats(s,l,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;Ic(n,d,"0",[f],{color:g}),r=!0;var h=bs(o,i),p=e._getTextLines(u,i,h);if(p){var m=[f[0]+6,f[1]-6];xc(n,d,"0",p,[m[0],m[1]],e.getLinkedTextBoxStyle(c,s))}return r})),e}return J(o)}(uf);X(vf,"toolName",void 0),vf.toolName="DragProbe";var ff=vf;var gf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_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),c=e._getMinMax(l,i);return c.max-c.min})),e}return J(o,[{key:"touchDragCallback",value:function(e){this.mouseDragCallback(e)}},{key:"mouseDragCallback",value:function(e){var t,n,r,o,a,i,l=e.detail,c=l.element,s=l.deltaPoints,d=(0,K.getEnabledElement)(c),u=d.renderingEngine,v=d.viewport,f=!1;if(v instanceof K.VolumeViewport){t=this.getTargetId(v).split("volumeId:")[1],i=K.utilities.getViewportsWithVolumeId(t,u.id);var g=v.getProperties().voiRange;n=g.lower,r=g.upper;var h=K.cache.getVolume(t);o=h.metadata.Modality,f=h.scaling&&Object.keys(h.scaling).length>0}else{if(!(v instanceof K.StackViewport))throw new Error("Viewport is not a valid type");var p=v.getProperties();o=v.modality;var m=p.voiRange;n=m.lower,r=m.upper,f=v.getImageData().preScale.scaled}return a="PT"===o&&f?this.getPTNewRange({deltaPointsCanvas:s.canvas,lower:n,upper:r,clientHeight:c.clientHeight}):this.getNewRange({viewport:v,deltaPointsCanvas:s.canvas,volumeId:t,lower:n,upper:r}),v instanceof K.StackViewport?(v.setProperties({voiRange:a}),void v.render()):v instanceof K.VolumeViewport?(v.setProperties({voiRange:a}),void i.forEach((function(e){e.render()}))):void 0}},{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,c=n[1]*i,s=K.utilities.windowLevel.toWindowLevel(o,a),d=s.windowWidth,u=s.windowCenter;return d+=l,u+=c,d=Math.max(d,1),K.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=K.cache.getVolume(t),o=r.dimensions,a=r.getScalarData();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}(ua);X(gf,"toolName",void 0),gf.toolName="WindowLevel";var hf=gf;var pf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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,pinchToZoom:!0,pan:!0}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"initialMousePosWorld",void 0),X(Xo(e),"dirVec",void 0),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints.world,a=(0,K.getEnabledElement)(r).viewport.getCamera().focalPoint;e.initialMousePosWorld=o;var i=nc.vec3.fromValues(a[0]-o[0],a[1]-o[1],a[2]-o[2]);return i=nc.vec3.normalize(nc.vec3.create(),i),e.dirVec=i,!1})),X(Xo(e),"preTouchStartCallback",(function(t){if(!e.configuration.pinchToZoom)return e.preMouseDownCallback(t)})),X(Xo(e),"_dragParallelProjection",(function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=t.detail,i=a.element,l=a.deltaPoints,c=o?t.detail.deltaDistance.canvas:l.canvas[1],s=[i.clientWidth,i.clientHeight],d=r.parallelScale,u=r.focalPoint,v=r.position,f=1.5/s[1],g=c*f,h=(1-g)*d,p=u,m=v;if(!e.configuration.zoomToCenter){var w=nc.vec3.distance(u,e.initialMousePosWorld),E=5/s[1],y=c*E;h=(1-y)*d,m=nc.vec3.scaleAndAdd(nc.vec3.create(),v,e.dirVec,-w*y),p=nc.vec3.scaleAndAdd(nc.vec3.create(),u,e.dirVec,-w*y)}var I=n.getImageData(),b=[1,1,1];I&&(b=I.spacing);var C=e.configuration,T=C.minZoomScale,_=C.maxZoomScale,O=i.clientHeight*b[1]*.5,D=O/h,S=h,x=!1;I&&(D<T?(S=O/T,x=!0):D>=_&&(S=O/_,x=!0)),n.setCamera({parallelScale:S,focalPoint:x?u:p,position:x?v:m})})),X(Xo(e),"_dragPerspectiveProjection",(function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=e.detail,a=o.element,i=o.deltaPoints,l=r?e.detail.deltaDistance.canvas:i.canvas[1],c=[a.clientWidth,a.clientHeight],s=n.position,d=n.focalPoint,u=n.viewPlaneNormal,v=jd().distance2BetweenPoints(s,d),f=Math.sqrt(v)/c[1],g=[-u[0],-u[1],-u[2]],h=l*f,p=h*g[0];s[0]+=p,d[0]+=p,p=h*g[1],s[1]+=p,d[1]+=p,p=h*g[2],s[2]+=p,d[2]+=p,t.setCamera({position:s,focalPoint:d})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.configuration.pinchToZoom?e.touchDragCallback=e._pinchCallback.bind(Xo(e)):e.touchDragCallback=e._dragCallback.bind(Xo(e)),e.mouseDragCallback=e._dragCallback.bind(Xo(e)),e}return J(o,[{key:"_pinchCallback",value:function(e){if(e.detail.currentPointsList.length>1){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,K.getEnabledElement)(n).viewport,a=o.getCamera(),i=r.world,l=a.focalPoint;this.initialMousePosWorld=i;var c=nc.vec3.fromValues(l[0]-i[0],l[1]-i[1],l[2]-i[2]);c=nc.vec3.normalize(nc.vec3.create(),c),this.dirVec=c,a.parallelProjection?this._dragParallelProjection(e,o,a,!0):this._dragPerspectiveProjection(e,o,a,!0),o.render()}this.configuration.pan&&this._panCallback(e)}},{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,K.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}},{key:"_panCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,K.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,c=i.position,s=[c[0]-a[0],c[1]-a[1],c[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:s}),o.viewport.render()}}]),o}(ua);X(pf,"toolName",void 0),pf.toolName="Zoom";var mf=pf;var wf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"deltaY",void 0),e.deltaY=1,e}return J(o,[{key:"mouseDragCallback",value:function(e){this._dragCallback(e)}},{key:"touchDragCallback",value:function(e){this._dragCallback(e)}},{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,a=n.renderingEngineId,i=(0,K.getEnabledElementByIds)(o,a).viewport,l=this.getTargetId(i),c=this.configuration,s=c.debounceIfNotLoaded,d=c.invert,u=r.canvas[1];i instanceof K.VolumeViewport&&(t=l.split("volumeId:")[1]);var v=this._getPixelPerImage(i),f=u+this.deltaY;if(v)if(Math.abs(f)>=v){var g=Math.round(f/v);oc(i,{delta:d?-g:g,volumeId:t,debounceLoading:s}),this.deltaY=f%v}else this.deltaY=f}},{key:"_getPixelPerImage",value:function(e){var t=e.element,n=this._getNumberOfSlices(e);return Math.max(2,t.offsetHeight/Math.max(n,8))}},{key:"_getNumberOfSlices",value:function(e){return e instanceof K.VolumeViewport?K.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof K.StackViewport?e.getImageIds().length:void 0}}]),o}(ua);X(wf,"toolName",void 0),wf.toolName="StackScroll";var Ef=wf;function yf(e,t){var n=Ln(e,2),r=n[0],o=n[1],a=Ln(t,2),i=a[0],l=a[1],c=nc.vec3.sub(nc.vec3.create(),o,r),s=nc.vec3.sub(nc.vec3.create(),i,l),d=nc.vec3.dot(c,s)/(nc.vec3.length(c)*nc.vec3.length(s));return 180*Math.acos(d)/Math.PI}var If=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(Xo(e)),e.mouseDragCallback=e._dragCallback.bind(Xo(e)),e}return J(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.startPoints,a=r.world,i=o.world,l=(0,K.getEnabledElement)(n).viewport,c=l.getCamera(),s=[.5*n.clientWidth,.5*n.clientHeight],d=l.canvasToWorld(s),u=yf([i,d],[d,a]),v=c.viewPlaneNormal,f=c.viewUp,g=nc.vec3.sub(nc.vec3.create(),d,i),h=nc.vec3.sub(nc.vec3.create(),d,a),p=nc.vec3.cross(nc.vec3.create(),g,h);if(nc.vec3.dot(v,p)>0&&(u=-u),!Number.isNaN(u)){if(l instanceof K.BaseVolumeViewport){var m=u*Math.PI/180,w=nc.mat4.identity(new Float32Array(16));nc.mat4.rotate(w,w,m,v);var E=nc.vec3.transformMat4(nc.vec3.create(),f,w);l.setCamera({viewUp:E})}else{var y=l.getProperties().rotation;l.setProperties({rotation:y+u})}l.render()}}}]),o}(ua);X(If,"toolName",void 0),If.toolName="PlanarRotate";var bf=If;var Cf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_configuration",void 0),e}return J(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,K.getEnabledElement)(r).viewport,l=o*(a?-1:1);if(i instanceof K.StackViewport)i.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(i instanceof K.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");ac(i,this.getTargetId(i).split("volumeId:")[1],l)}}}]),o}(ua);X(Cf,"toolName",void 0),Cf.toolName="StackScrollMouseWheel";var Tf=Cf;var _f={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Of=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:_f.Z,rotateIncrementDegrees:.5}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"_configuration",void 0),e}return J(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,K.getEnabledElement)(n).viewport,a=this.configuration,i=a.direction,l=a.rotateIncrementDegrees,c=o.getCamera(),s=c.viewUp,d=c.position,u=c.focalPoint,v=r.direction,f=Ln(u,3),g=f[0],h=f[1],p=f[2],m=Ln(i,3),w=m[0],E=m[1],y=m[2],I=v*l,b=[0,0,0],C=[0,0,0],T=[0,0,0],_=nc.mat4.identity(new Float32Array(16));nc.mat4.translate(_,_,[g,h,p]),nc.mat4.rotate(_,_,I,[w,E,y]),nc.mat4.translate(_,_,[-g,-h,-p]),nc.vec3.transformMat4(b,d,_),nc.vec3.transformMat4(C,u,_),nc.mat4.identity(_),nc.mat4.rotate(_,_,I,[w,E,y]),nc.vec3.transformMat4(T,s,_),o.setCamera({position:b,viewUp:T,focalPoint:C}),o.render()}}]),o}(ua);X(Of,"toolName",void 0),Of.toolName="VolumeRotateMouseWheel";var Df=Of;var Sf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_bounds",void 0),e}return J(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,K.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 c=l.split("volumeId:")[1],s=-1/0,d=Hd(a,r.world,c,(function(e,t){if(e>s)return s=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=i.getViewport(e);t instanceof K.VolumeViewport?Wv(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(ua);X(Sf,"toolName",void 0),Sf.toolName="MIPJumpToClickTool";var xf=Sf;var kf=K.utilities.transformWorldToIndex,Mf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Ul(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[yr(a),yr(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:{}}};et(g,o);var h=rs(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Ko(c,h),g})),X(Xo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=Ln(t.data.handles.points,2),i=a[0],l=a[1],c=o.worldToCanvas(i),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return ms([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Ul(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=yr(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,K.getEnabledElement)(r).renderingEngine;Ko(h,i)})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),y=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=e.getStyle("shadow",u,f),C=m.map((function(e){return i.worldToCanvas(e)})),T=void 0;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,unit:null},e._calculateCachedStats(f,d,t)),Se(g)){ae(f)||e.editData||null===w||(T=[C[w]]),T&&Ic(n,g,"0",C,{color:I,lineDash:y,lineWidth:E});var _="".concat(g,"-line");if(bc(n,g,"1",C[0],C[1],{color:I,width:E,lineDash:y,shadow:b},_),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var O=e._getTextLines(h,s);if(!h.handles.textBox.hasMoved){var D=Es(C);h.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(h.handles.textBox.worldPosition),x=Rc(n,g,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,f)),k=x.x,M=x.y,P=x.width,R=x.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(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=rs(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Ul(r);var c=(0,K.getEnabledElement)(r).renderingEngine;Ko(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(null!=r&&!isNaN(r))return["".concat(r.toFixed(2)," ").concat(o)]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.handles.points[1],c=r.cachedStats,s=Object.keys(c),d=0;d<s.length;d++){var u=s[d],v=this.getTargetIdImage(u,t);if(v){var f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(i,l),m=kf(f,i),w=kf(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,c[u]={length:p,unit:h?"mm":"px"}}}e.invalidated=!1;var E=Y.ANNOTATION_MODIFIED,y={annotation:e,viewportId:o,renderingEngineId:a};return(0,K.triggerEvent)(K.eventTarget,E,y),c}},{key:"_isInsideVolume",value:function(e,t,n){return K.utilities.indexWithinDimensions(e,n)&&K.utilities.indexWithinDimensions(t,n)}}]),o}(gs);X(Mf,"toolName",void 0),Mf.toolName="Length";var Pf=Mf,Rf=f(847),Nf=f.n(Rf);var Af=K.CONSTANTS.RENDERING_DEFAULTS;function Lf(){return"rgb(0, 200, 0)"}function Uf(){return!0}function Vf(){return!0}function Bf(){return!0}var jf=.001,Hf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t,n,a,i,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:K.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return Z(this,o),X(Xo(i=r.call(this,l,c)),"toolCenter",[0,0,0]),X(Xo(i),"_getReferenceLineColor",void 0),X(Xo(i),"_getReferenceLineControllable",void 0),X(Xo(i),"_getReferenceLineDraggableRotatable",void 0),X(Xo(i),"_getReferenceLineSlabThicknessControlsOn",void 0),X(Xo(i),"editData",void 0),X(Xo(i),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,K.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,a=r.viewport,l=a.element,c=a.getCamera(),s=c.position,d=c.focalPoint,u=c.viewPlaneNormal,v=i._getAnnotations(r);return(v=i.filterInteractableAnnotationsForElement(l,v)).length&&nt(v[0].annotationUID),et({highlighted:!1,metadata:{cameraPosition:yr(s),cameraFocalPoint:yr(d),FrameOfReferenceUID:o,toolName:i.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:i.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}},l),{normal:u,point:a.canvasToWorld([a.canvas.clientWidth/2,a.canvas.clientHeight/2])}})),X(Xo(i),"_getViewportsInfo",(function(){return Zo(i.toolGroupId).viewportsInfo})),X(Xo(i),"computeToolCenter",(function(e){if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=Ln(e,3),n=t[0],r=t[1],o=t[2],a=i.initializeViewport(n),l=a.normal,c=a.point,s=i.initializeViewport(r),d=s.normal,u=s.point,v=[0,0,0],f=nc.vec3.create();if(o){var g=i.initializeViewport(o);v=g.normal,f=g.point}else nc.vec3.add(f,c,u),nc.vec3.scale(f,f,.5),nc.vec3.cross(v,l,d);var h=K.utilities.planar.planeEquation(l,c),p=K.utilities.planar.planeEquation(d,u),m=K.utilities.planar.planeEquation(v,f);i.toolCenter=K.utilities.planar.threePlaneIntersection(h,p,m);var w=(0,K.getEnabledElementByIds)(e[0].viewportId,e[0].renderingEngineId).renderingEngine;Ko(w,e.map((function(e){return e.viewportId})))})),X(Xo(i),"addNewAnnotation",(function(e){var t=e.detail,n=t.element,r=t.currentPoints.world,o=(0,K.getEnabledElement)(n),a=o.viewport;i._jump(o,r);for(var l=i._getAnnotations(o),c=i.filterInteractableAnnotationsForElement(a.element,l),s=c[0].data,d=s.handles.rotationPoints,u=[],v=0;v<d.length-1;++v){var f=d[v][1],g=i._getReferenceLineControllable(f.id),h=i._getReferenceLineDraggableRotatable(f.id);g&&h&&(u.push(f.id),v++)}return s.activeViewportIds=[].concat(u),s.handles.activeOperation=1,e.preventDefault(),Ul(n),i._activateModify(n),c[0]})),X(Xo(i),"cancel",(function(){console.log("Not implemented yet")})),X(Xo(i),"handleSelectedCallback",(function(e,t){var n=e.detail.element;t.highlighted=!0,i._activateModify(n),Ul(n),e.preventDefault()})),X(Xo(i),"isPointNearTool",(function(e,t,n,r){return!!i._pointNearTool(e,t,n,6)})),X(Xo(i),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),Ul(r),e.preventDefault()})),X(Xo(i),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,K.getEnabledElement)(n),o=r.renderingEngine,a=r.viewport,l=i._getAnnotations(r),c=i.filterInteractableAnnotationsForElement(n,l)[0];if(c){var s=a.getCamera(),d=c.metadata.cameraPosition,u=[0,0,0];jd().subtract(s.position,d,u);var v=c.metadata.cameraFocalPoint,f=[0,0,0];jd().subtract(s.focalPoint,v,f),c.metadata.cameraPosition=yr(s.position),c.metadata.cameraFocalPoint=yr(s.focalPoint);var g=i._getReferenceLineControllable(a.id),h=i._getReferenceLineDraggableRotatable(a.id);if(!K.utilities.isEqual(s.position,d,.001)&&g&&h){var p=!1;K.utilities.isEqual(u,f,.001)||(p=!0);var m=Math.abs(jd().dot(u,s.viewPlaneNormal))<.01;p||m||(i.toolCenter[0]+=u[0],i.toolCenter[1]+=u[1],i.toolCenter[2]+=u[2])}null!==(t=i.configuration.autoPan)&&void 0!==t&&t.enabled&&Or(a.id,o.id).getViewportIds().filter((function(e){return e!==a.id})).forEach((function(e){i._autoPanViewportIfNecessary(e,o)}));var w=rs(n,i.getToolName(),!1);Ko(o,w)}})),X(Xo(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 c=t[l];if(!ae(c)){var s=c.data,d=c.highlighted;if(s.handles){var u=s.handles.activeOperation,v=s.activeViewportIds&&s.activeViewportIds.length>0?yr(s.activeViewportIds):[];s.activeViewportIds=[],s.handles.activeOperation=null;var f;(f=!!i.getHandleNearImagePoint(r,c,o,6)||i._pointNearTool(r,c,o,6))&&!d||!f&&d?(c.highlighted=!d,a=!0):s.handles.activeOperation===u&&i._areViewportIdArraysEqual(s.activeViewportIds,v)||(a=!0)}}}return a})),X(Xo(i),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,K.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),X(Xo(i),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,a=r.element,l=i._getAnnotations(e),c=r.getCamera(),s=i.filterInteractableAnnotationsForElement(a,l)[0];if(null==l||!l.length||null==s||!s.data)return n;var d=s.annotationUID,u=r.canvas,v=u.clientWidth,f=u.clientHeight,g=Math.sqrt(v*v+f*f),h=s.data,p=r.worldToCanvas(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),s=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),E=[.5*v,.5*f],y=n.canvasToWorld(E),I=[0,0,0];jd().cross(c.viewPlaneNormal,a.viewPlaneNormal,I),jd().normalize(I),jd().multiplyScalar(I,h);var b=[0,0,0];jd().add(y,I,b);var C=[0,0,0];jd().subtract(y,I,C);var T=[0,0,v,f],_=r.worldToCanvas(b),O=r.worldToCanvas(y),D=nc.vec2.create();nc.vec2.subtract(D,_,O),nc.vec2.normalize(D,D);var S=nc.vec2.create();nc.vec2.scale(S,D,100*g);var x=nc.vec2.create();nc.vec2.scale(x,D,.25*g);var k=nc.vec2.create();nc.vec2.scale(k,D,.15*g);var M=nc.vec2.create();nc.vec2.scale(M,D,2===m.length?.04*g:0);var P=nc.vec2.create(),R=nc.vec2.create(),N=nc.vec2.create(),A=nc.vec2.create(),L=nc.vec2.clone(p);s&&l||(L=nc.vec2.clone(O)),nc.vec2.add(P,L,M),nc.vec2.add(R,L,S),nc.vec2.subtract(N,L,M),nc.vec2.subtract(A,L,S),Td(P,R,T),Td(N,A,T);var U=nc.vec2.create();nc.vec2.subtract(U,p,x);var V=nc.vec2.create();nc.vec2.add(V,p,x);var B=nc.vec2.clone(p);!s&&d&&(B=nc.vec2.clone(O));var j=yr(i.toolCenter);!s&&d&&(j=yr(y));var H=[0,0,0];jd().subtract(b,C,H),jd().normalize(H);var F=c.viewPlaneNormal,W=Nf().buildFromDegree().rotate(90,F).matrix,G=[0,0,0];nc.vec3.transformMat4(G,H,W);var q=n.getSlabThickness(),z=[].concat(G);jd().multiplyScalar(z,q);var K=[0,0,0];jd().add(j,z,K);var Y=r.worldToCanvas(K),$=nc.vec2.create();nc.vec2.subtract($,B,Y);var J=nc.vec2.create();nc.vec2.subtract(J,B,S),nc.vec2.add(J,J,$);var Z=nc.vec2.create();nc.vec2.add(Z,B,S),nc.vec2.add(Z,Z,$),Td(J,Z,T);var X=nc.vec2.create();nc.vec2.add(X,B,S),nc.vec2.subtract(X,X,$);var Q=nc.vec2.create();nc.vec2.subtract(Q,B,S),nc.vec2.subtract(Q,Q,$),Td(X,Q,T);var ee=nc.vec2.create(),te=nc.vec2.create(),ne=nc.vec2.create(),re=nc.vec2.create();nc.vec2.subtract(ee,B,k),nc.vec2.add(ee,ee,$),nc.vec2.add(te,B,k),nc.vec2.add(te,te,$),nc.vec2.subtract(ne,B,k),nc.vec2.subtract(ne,ne,$),nc.vec2.add(re,B,k),nc.vec2.subtract(re,re,$),w.push([n,P,R,N,A,J,Z,X,Q,U,V,ee,te,ne,re])}));var E=[],y=[],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),c=i._getReferenceLineDraggableRotatable(o.id),s=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&&c?(p="".concat(n,"One"),bc(t,d,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),bc(t,d,p,e[3],e[4],{color:v,lineWidth:f})):bc(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]];E.push(I,b);var C=3===h.handles.activeOperation,T=[e[11],e[12],e[13],e[14]],_=[r.canvasToWorld(e[11]),o,e[5],e[6]],O=[r.canvasToWorld(e[12]),o,e[5],e[6]],D=[r.canvasToWorld(e[13]),o,e[7],e[8]],S=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(y.push(_,O,D,S),g&&!m&&!C&&c&&s){var x="".concat(n,"One");Ic(t,d,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),Ic(t,d,x,T,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&c){var k="".concat(n);Ic(t,d,k,w,{color:v,handleRadius:3,type:"circle"})}else if(u&&!m&&!C&&s){var M="".concat(n);Ic(t,d,M,T,{color:v,handleRadius:3,type:"rect"})}else if(m&&c){var P="".concat(n);Ic(t,d,P,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&s&&Ic(t,d,p,T,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&s&&(p="".concat(n,"STOne"),bc(t,d,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),bc(t,d,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=E,h.handles.slabThicknessPoints=y,i.configuration.viewportIndicators&&Ec(t,d,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),X(Xo(i),"_getAnnotations",(function(e){var t=e.viewport;return Qe(i.getToolName(),t.element)})),X(Xo(i),"_onNewVolume",(function(e){var t=i._getViewportsInfo();i.computeToolCenter(t)})),X(Xo(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)})),X(Xo(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,c=i.position,s=a.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(K.utilities.isEqual(n.viewPlaneNormal,l,.01)&&K.utilities.isEqual(n.position,c,1))}));return s})),X(Xo(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 c=a.getCamera(),s=c.viewPlaneNormal;return jd().normalize(s),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return jd().normalize(o),K.utilities.isEqual(s,o,.01)&&K.utilities.isEqual(c.viewUp,n.viewUp,.01)}))})),X(Xo(i),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;jd().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=[],c=0;c<a.length;++c){var s=a[c],d=s.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(jd().normalize(v),!K.utilities.isEqual(o,v,.01)&&!K.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();K.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&K.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(s)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0!==a})),w=0;w<m.length;++w){var E=m[w],y=E.data.viewportId,I=n.getViewport(y).getCamera(),b=I.viewPlaneNormal;if(jd().normalize(b),!K.utilities.isEqual(o,b,.01)&&!K.utilities.isOpposite(o,b,.01)){for(var C=!1,T=0;T<l.length;++T){var _=l[T].data.viewportId,O=n.getViewport(_).getCamera();K.utilities.isEqual(O.viewPlaneNormal,I.viewPlaneNormal,.01)&&K.utilities.isEqual(O.position,I.position,1)&&(C=!0)}C||l.push(E)}}for(var D=i._getAnnotationsForViewportsWithDifferentCameras(e,t),S=function(e){var t=D[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(jd().normalize(i),K.utilities.isEqual(o,i,.01)||K.utilities.isOpposite(o,i,.01))return"continue";for(var c=!1,s=0;s<l.length;++s){var d=l[s].data.viewportId,u=n.getViewport(d).getCamera();K.utilities.isEqual(u.viewPlaneNormal,a.viewPlaneNormal,.01)&&K.utilities.isEqual(u.position,a.position,1)&&(c=!0)}c||l.push(t)},x=0;x<D.length;++x)S(x);return l})),X(Xo(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})),X(Xo(i),"_jump",(function(e,t){qe.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=i._getAnnotations(e),a=[0,0,0];jd().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?(qe.isInteractingWithTool=!1,!1):(i._applyDeltaShiftToSelectedViewportCameras(r,l,a),qe.isInteractingWithTool=!1,!0)})),X(Xo(i),"_activateModify",(function(e){qe.isInteractingWithTool=!0,e.addEventListener(Y.MOUSE_UP,i._endCallback),e.addEventListener(Y.MOUSE_DRAG,i._dragCallback),e.addEventListener(Y.MOUSE_CLICK,i._endCallback),e.addEventListener(Y.TOUCH_END,i._endCallback),e.addEventListener(Y.TOUCH_DRAG,i._dragCallback),e.addEventListener(Y.TOUCH_TAP,i._endCallback)})),X(Xo(i),"_deactivateModify",(function(e){qe.isInteractingWithTool=!1,e.removeEventListener(Y.MOUSE_UP,i._endCallback),e.removeEventListener(Y.MOUSE_DRAG,i._dragCallback),e.removeEventListener(Y.MOUSE_CLICK,i._endCallback),e.removeEventListener(Y.TOUCH_END,i._endCallback),e.removeEventListener(Y.TOUCH_DRAG,i._dragCallback),e.removeEventListener(Y.TOUCH_TAP,i._endCallback)})),X(Xo(i),"_endCallback",(function(e){var t=e.detail.element;i.editData.annotation.data.handles.activeOperation=null,i.editData.annotation.data.activeViewportIds=[],i._deactivateModify(t),Ll(t),i.editData=null;var n=(0,K.getEnabledElement)(t).renderingEngine,r=rs(t,i.getToolName(),!1);Ko(n,r)})),X(Xo(i),"_dragCallback",(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,K.getEnabledElement)(r),a=o.renderingEngine,l=o.viewport,c=i._getAnnotations(o),s=i.filterInteractableAnnotationsForElement(r,c)[0];if(s){var d=s.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));i._applyDeltaShiftToSelectedViewportCameras(a,v,n)}else if(2===d.activeOperation){var f=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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=nc.vec2.create(),h=nc.vec2.create(),p=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,E=nc.vec2.create();nc.vec2.sub(E,w,t.deltaPoints.canvas),nc.vec2.sub(g,E,m),nc.vec2.sub(h,w,m);var y=nc.vec2.angle(g,h);i._isClockWise(m,E,w)&&(y*=-1),y=Math.round(100*y)/100;var I=l.getCamera().viewPlaneNormal,b=Nf().buildFromRadian().translate(p[0],p[1],p[2]).rotate(y,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],nc.vec3.transformMat4(l,l,b),nc.vec3.transformMat4(i,i,b),nc.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 T=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===T.length)return;var _=i._filterViewportWithSameOrientation(o,T[0],c),O=[];O.push(l.id),_.forEach((function(e){var r=e.data,o=a.getViewport(r.viewportId),c=o.getCamera().viewPlaneNormal,d=jd().dot(n,c),v=yr(c);if(jd().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]),E=l.canvasToWorld(m[1][3]);jd().add(w,E,p),jd().multiplyScalar(p,.5)}}jd().subtract(g,p,h);var y=jd().dot(h,c),I=yr(c);jd().multiplyScalar(I,y);var b=[I[0],I[1],I[2]];nc.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];nc.vec3.normalize(C,C);var T=o.getSlabThickness();K.utilities.isOpposite(b,C,.001)?T-=f:T+=f,T=Math.abs(T),T=Math.max(Af.MINIMUM_SLAB_THICKNESS,T),i._pointNearReferenceLine(s,u,6,o)&&(T=Af.MINIMUM_SLAB_THICKNESS),Or(o.id,a.id).getToolInstance(i.getToolName()).setSlabThickness(o,T),O.push(o.id)}})),a.renderViewports(O)}}}})),X(Xo(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 c={start:{x:o[a][2][0],y:o[a][2][1]},end:{x:o[a][3][0],y:o[a][3][1]}},s=ms([c.start.x,c.start.y],[c.end.x,c.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=ms([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(s<=n||u<=n)return!0;a++}}return!1})),i._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||Lf,i._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Uf,i._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||Vf,i._getReferenceLineSlabThicknessControlsOn=(null===(a=l.configuration)||void 0===a?void 0:a.getReferenceLineSlabThicknessControlsOn)||Bf,i}return J(o,[{key:"onSetToolActive",value:function(){var e=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(e),this._subscribeToViewportNewVolumeSet(e),this.computeToolCenter(e)}},{key:"onSetToolPassive",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolEnabled",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolDisabled",value:function(){var e=this,t=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(t),t.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,K.getEnabledElementByIds)(r,n);if(o){var a=e._getAnnotations(o);null!=a&&a.length&&a.forEach((function(e){nt(e.annotationUID)}))}}))}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,K.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:"_unsubscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,K.getEnabledElementByIds)(n,r).viewport.element.removeEventListener(K.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_subscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,K.getEnabledElementByIds)(n,r).viewport.element.addEventListener(K.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{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]),c=r.canvasToWorld([a,i]),s=r.canvasToWorld([a,0]),d=r.canvasToWorld([0,i]),u=Math.min(l[0],c[0],s[0],d[0]),v=Math.max(l[0],c[0],s[0],d[0]),f=Math.min(l[1],c[1],s[1],d[1]),g=Math.max(l[1],c[1],s[1],d[1]),h=Math.min(l[2],c[2],s[2],d[2]),p=Math.max(l[2],c[2],s[2],d[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-jf)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+jf)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-jf)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+jf)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-jf)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+jf))return;n=[0,0,p-this.toolCenter[2]-m]}var w=r.getCamera(),E=w.focalPoint,y=w.position,I=[y[0]-n[0],y[1]-n[1],y[2]-n[2]],b=[E[0]-n[0],E[1]-n[1],E[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===Af.MINIMUM_SLAB_THICKNESS&&(o=K.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=jd().dot(n,i),c=yr(i);if(jd().multiplyScalar(c,l),Math.abs(c[0])>.001||Math.abs(c[1])>.001||Math.abs(c[2])>.001){var s=[0,0,0],d=[0,0,0];jd().add(a.focalPoint,c,s),jd().add(a.position,c,d),o.setCamera({focalPoint:s,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],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineDraggableRotatable(c.id)){var s=e.worldToCanvas(l);if(nc.vec2.distance(n,s)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.slabThicknessPoints,i=0;i<a.length;i++){var l=a[i][0],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineSlabThicknessControlsOn(c.id)){var s=e.worldToCanvas(l);if(nc.vec2.distance(n,s)<r)return o.handles.activeOperation=3,o.activeViewportIds=[c.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,a=(0,K.getEnabledElement)(e).viewport.canvas,i=a.clientWidth,l=a.clientHeight,c=Math.sqrt(i*i+l*l),s=t.data,d=s.handles.rotationPoints,u=s.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=ms([m.start.x,m.start.y],[m.end.x,m.end.y],[n[0],n[1]]),E={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]}},y=ms([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(w<=r||y<=r)&&(v.push(g.id),s.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var 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=nc.vec2.create();nc.vec2.add(f,l,d),nc.vec2.scale(f,f,.5);var g=nc.vec2.create();nc.vec2.subtract(g,l,f),nc.vec2.normalize(g,g);var h=nc.vec2.create();nc.vec2.scale(h,g,.05*c);var p=nc.vec2.create(),m=nc.vec2.create();nc.vec2.add(p,f,h),nc.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},E=ms([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]),y={start:{x:m[0],y:m[1]},end:{x:d[0],y:d[1]}},I=ms([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(E<=r||I<=r)&&(v.push(t.id),s.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return s.activeViewportIds=[].concat(v),this.editData={annotation:t},1===s.handles.activeOperation}}]),o}(gs);X(Hf,"toolName",void 0),Hf.toolName="Crosshairs";var Ff=Hf;var Wf=K.CONSTANTS.EPSILON,Gf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:""}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",{}),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"_init",(function(){var t=(0,K.getRenderingEngines)()[0];if(t){var n=t.getViewports();n=es(n,e.getToolName());var r=t.getViewport(e.configuration.sourceViewportId);if(r&&r.getImageData()){var o=r.element,a=r.getCamera(),i=a.viewUp,l=a.viewPlaneNormal,c=K.utilities.getViewportImageCornersInWorld(r),s=e.editData.annotation,d=r.getFrameOfReferenceUID();if(s)e.editData.annotation.data.handles.points=c;else{var u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(l),viewUp:yr(i),FrameOfReferenceUID:d,referencedImageId:null},data:{handles:{points:c}}};et(u,o),s=u}e.editData={sourceViewport:r,renderingEngine:t,annotation:s},Ko(t,n.filter((function(e){return e.id!==r.id})).map((function(e){return e.id})))}}})),X(Xo(e),"onSetToolEnabled",(function(){e._init()})),X(Xo(e),"onCameraModified",(function(t){e._init()})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=t.viewport,i=e.editData,l=i.annotation,c=i.sourceViewport,s=!1;if(!c)return s;if(c.id===a.id)return s;if(!l||null==l||null===(r=l.data)||void 0===r||null===(o=r.handles)||void 0===o||!o.points)return s;var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=l.data.handles.points[0],v=l.data.handles.points[1],f=l.data.handles.points[2],g=l.data.handles.points[3],h=a.getCamera(),p=h.focalPoint,m=h.viewPlaneNormal,w=c.getCamera().viewPlaneNormal;if(e.isParallel(m,w))return s;var E=K.utilities.planar.planeEquation(m,p),y=[u,f,v,g],I=[u,v,f,g],b=y,C=nc.vec3.subtract(nc.vec3.create(),y[0],y[1]);C=nc.vec3.normalize(nc.vec3.create(),C);var T=nc.vec3.subtract(nc.vec3.create(),y[2],y[0]);T=nc.vec3.normalize(nc.vec3.create(),T);var _=nc.vec3.cross(nc.vec3.create(),C,T);if(e.isParallel(_,m))return s;e.isPerpendicular(C,m)&&(b=I);var O=K.utilities.planar.linePlaneIntersection(b[0],b[1],E),D=K.utilities.planar.linePlaneIntersection(b[2],b[3],E),S=l.annotationUID;d.annotationUID=S;var x=e.getStyle("lineWidth",d,l),k=e.getStyle("lineDash",d,l),M=e.getStyle("color",d,l),P=e.getStyle("shadow",d,l),R=[O,D].map((function(e){return a.worldToCanvas(e)})),N="".concat(S,"-line");return bc(n,S,"1",R[0],R[1],{color:M,width:x,lineDash:k,shadow:P},N),!0})),X(Xo(e),"isPerpendicular",(function(e,t){var n=nc.vec3.dot(e,t);return Math.abs(n)<Wf})),e}return J(o,[{key:"isParallel",value:function(e,t){return Math.abs(nc.vec3.dot(e,t))>1-Wf}}]),o}(ds);X(Gf,"toolName",void 0),Gf.toolName="ReferenceLines";var qf=Gf;function zf(e,t,n,r){var o=nc.vec3.create();nc.vec3.cross(o,t,e);var a=nc.vec3.fromValues.apply(nc.vec3,yr(n)),i=nc.vec3.fromValues.apply(nc.vec3,yr(r)),l=nc.vec3.create();nc.vec3.subtract(l,a,i);var c=nc.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=nc.vec3.dot(l,o)/(c*nc.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}var Kf=K.utilities.transformWorldToIndex,Yf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,centerPointRadius:0}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",!1),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,K.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(c,a,u,v),g=c.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(u),viewUp:yr(v),FrameOfReferenceUID:g,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:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null},cachedStats:{}}};et(h,o);var p=rs(o,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:p,centerCanvas:i,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(s,p),h})),X(Xo(e),"isPointNearTool",(function(t,n,r,o){var a=(0,K.getEnabledElement)(t).viewport,i=Ln(Ys(n.data.handles.points.map((function(e){return a.worldToCanvas(e)}))),2),l=i[0],c=i[1],s={left:Math.min(l[0],c[0])+o/2,top:Math.min(l[1],c[1])+o/2,width:Math.abs(l[0]-c[0])-o,height:Math.abs(l[1]-c[1])-o},d={left:Math.min(l[0],c[0])-o/2,top:Math.min(l[1],c[1])-o/2,width:Math.abs(l[0]-c[0])+o,height:Math.abs(l[1]-c[1])+o},u=e._pointInEllipseCanvas(s,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},Ul(r),e._activateModify(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),t.preventDefault()})),X(Xo(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l,c,s,d,u=!1;if(r.worldPosition)u=!0;else{var v=a.handles.points,f=(0,K.getEnabledElement)(o).viewport.worldToCanvas;i=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[i],c=Math.abs(g[2][0]-g[3][0]),s=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=rs(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:i,canvasWidth:c,canvasHeight:s,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),Ul(o);var p=(0,K.getEnabledElement)(o).renderingEngine;Ko(p,h),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}}})),X(Xo(e),"_dragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,K.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,Ko(i,d)})),X(Xo(e),"_dragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else e._dragHandle(t),a.invalidated=!0;var g=(0,K.getEnabledElement)(r).renderingEngine;Ko(g,i)})),X(Xo(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,K.getEnabledElement)(r).viewport.canvasToWorld,a=e.editData,i=a.annotation,l=a.canvasWidth,c=a.canvasHeight,s=a.handleIndex,d=a.centerCanvas,u=a.originalHandleCanvas,v=i.data.handles.points,f=n.currentPoints.canvas;if(0===s||1===s){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],E=[d[0]+m,d[1]];v[2]=o(w),v[3]=o(E)}else{var y=Math.abs(f[0]-d[0]),I=[d[0]-y,d[1]],b=[d[0]+y,d[1]];v[2]=o(I),v[3]=o(b);var C=c/2+(f[1]-u[1]),T=[d[0],d[1]-C],_=[d[0],d[1]+C];v[0]=o(T),v[1]=o(_)}})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragModifyCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragModifyCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragModifyCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragModifyCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragDrawCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragDrawCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragDrawCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragDrawCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragDrawCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragDrawCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),y=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=m.map((function(e){return i.worldToCanvas(e)})),C=Ys(b),T=e.configuration.centerPointRadius;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].areaUnit?f.invalidated&&(e._throttledCalculateCachedStats(f,i,d,t),i instanceof K.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=K.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=K.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,i,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=void 0;if(Se(g)){ae(f)||e.editData||null===w||(_=[b[w]]),_&&Ic(n,g,"0",_,{color:I});var O="".concat(g,"-ellipse");if(yc(n,g,"0",C[0],C[1],{color:I,lineDash:y,lineWidth:E},O),T>0&&Math.min(Math.abs(C[0][0]-C[1][0])/2,Math.abs(C[0][1]-C[1][1])/2)>3*T){var D=e._getCanvasEllipseCenter(b);Ec(n,g,"0",D,T,{color:I,lineDash:y,lineWidth:E})}a=!0;var S=bs(i,s),x=e._getTextLines(h,s,S);if(x&&0!==x.length){var k=void 0;h.handles.textBox.hasMoved||(k=Es(C),h.handles.textBox.worldPosition=i.canvasToWorld(k));var M=i.worldToCanvas(h.handles.textBox.worldPosition),P=Rc(n,g,"1",x,M,b,{},e.getLinkedTextBoxStyle(u,f)),R=P.x,N=P.y,A=P.width,L=P.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+A,N]),bottomLeft:i.canvasToWorld([R,N+L]),bottomRight:i.canvasToWorld([R+A,N+L])}}}}return a})),X(Xo(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,a=r.mean,i=r.stdDev,l=r.max,c=r.isEmptyArea,s=r.Modality,d=r.areaUnit,u=[],v=Is(s,n);if(o){var f=c?"Area: Oblique not supported":"Area: ".concat(o.toFixed(2)," ").concat(d,"²");u.push(f)}return a&&u.push("Mean: ".concat(a.toFixed(2)," ").concat(v)),l&&u.push("Max: ".concat(l.toFixed(2)," ").concat(v)),i&&u.push("Std Dev: ".concat(i.toFixed(2)," ").concat(v)),u})),X(Xo(e),"_calculateCachedStats",(function(t,n,r,o){for(var a=t.data,i=o.viewportId,l=o.renderingEngineId,c=a.handles.points.map((function(e){return n.worldToCanvas(e)})),s=n.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=Ln(Ys(c),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=a.cachedStats,w=Object.keys(m),E=h,y=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r);if(C){var T=C.dimensions,_=C.imageData,O=C.metadata,D=C.hasPixelSpacing,S=Kf(_,E);S[0]=Math.floor(S[0]),S[1]=Math.floor(S[1]),S[2]=Math.floor(S[2]);var x=Kf(_,y);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(S,x,T)?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=zf(d,u,E,y),r=n.worldWidth,o=n.worldHeight,a=0===r&&0===o,i=Math.PI*(r/2)*(o/2),l=0,c=0,s=0,v=-1/0;qc(_,(function(e,n){return $s(t,e)}),(function(e){var t=e.value;t>v&&(v=t),c+=t,l+=1}),e),c/=l,qc(_,(function(e,n){return $s(t,e)}),(function(e){var t=e.value-c;s+=t*t}),e),s/=l,s=Math.sqrt(s),m[b]={Modality:O.Modality,area:i,mean:c,max:v,stdDev:s,isEmptyArea:a,areaUnit:D?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:O.Modality})}}t.invalidated=!1;var k=Y.ANNOTATION_MODIFIED,M={annotation:t,viewportId:i,renderingEngineId:l};return(0,K.triggerEvent)(K.eventTarget,k,M),m})),X(Xo(e),"_isInsideVolume",(function(e,t,n){return K.utilities.indexWithinDimensions(e,n)&&K.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(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}},{key:"_getCanvasEllipseCenter",value:function(e){var t=Ln(e,4),n=t[0],r=t[1],o=t[2],a=t[3],i=[o[0],r[1]],l=[a[0],n[1]];return[(i[0]+l[0])/2,(i[1]+l[1])/2]}}]),o}(gs);X(Yf,"toolName",void 0),Yf.toolName="EllipticalROI";var $f=Yf;var Jf=K.utilities.transformWorldToIndex,Zf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"preventHandleOutsideImage",void 0),X(Xo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=t.data.handles.points,i=o.worldToCanvas(a[0]),l=o.worldToCanvas(a[1]),c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}},s=ms([c.start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]);return s<=r||(i=o.worldToCanvas(a[2]),l=o.worldToCanvas(a[3]),(s=ms([(c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}}).start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]))<=r)})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),Ul(r),t.preventDefault()})),X(Xo(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 c=rs(o,e.getToolName());Ul(o),e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o);var s=(0,K.getEnabledElement)(o).renderingEngine;Ko(s,c),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=c.handles.points,u=nc.vec3.distance(d[0],d[1]);if(nc.vec3.distance(d[2],d[3])>u){var v=[yr(d[2]),yr(d[3])],f=yr(d[0]),g=yr(d[1]),h=nc.vec2.create();nc.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=nc.vec2.create();nc.vec2.set(p,-h[1],h[0]);var m,w=nc.vec2.create();nc.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=nc.vec2.dot(w,p)>0?[f,g]:[g,f],c.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var E=Y.ANNOTATION_COMPLETED,y={annotation:o};(0,K.triggerEvent)(K.eventTarget,E,y)}e.editData=null,e.isDrawing=!1}})),X(Xo(e),"_dragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=(0,K.getEnabledElement)(o),i=a.renderingEngine,l=a.viewport,c=l.worldToCanvas,s=e.editData,d=s.annotation,u=s.viewportIdsToRender,v=s.handleIndex,f=d.data,g=r.world;f.handles.points[v]=yr(g);var h=f.handles.points.map(c),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],nc.vec2.distance(h[0],h[1])/3),E=p.x-m.x,y=p.y-m.y,I=Math.sqrt(E*E+y*y),b=E/I,C=y/I,T=(p.x+m.x)/2,_=(p.y+m.y)/2,O=T+w*C,D=_-w*b,S=T-w*C,x=_+w*b;f.handles.points[2]=l.canvasToWorld([O,D]),f.handles.points[3]=l.canvasToWorld([S,x]),d.invalidated=!0,Ko(i,u),e.editData.hasMoved=!0})),X(Xo(e),"_dragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,K.getEnabledElement)(r).renderingEngine,a=e.editData,i=a.annotation,l=a.viewportIdsToRender,c=a.handleIndex,s=a.movingTextBox,d=i.data;if(s){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===c){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),i.invalidated=!0}else e._dragModifyHandle(t),i.invalidated=!0;Ko(o,l)})),X(Xo(e),"_dragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,K.getEnabledElement)(o).viewport,i=e.editData,l=i.annotation,c=i.handleIndex,s=l.data,d=r.world,u=[a.worldToCanvas(s.handles.points[0]),a.worldToCanvas(s.handles.points[1]),a.worldToCanvas(s.handles.points[2]),a.worldToCanvas(s.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=yr(d),h=a.worldToCanvas(g);if(0===c||1===c){var p=u[0===c?1:0],m=nc.vec2.set(nc.vec2.create(),h[0]-p[0],h[1]-p[1]),w=nc.vec2.set(nc.vec2.create(),u[c][0]-p[0],u[c][1]-p[1]);nc.vec2.normalize(m,m),nc.vec2.normalize(w,w);var E={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(E,f))return;var y=p,I=e._getSignedAngle(w,m),b=u[2][0],C=u[2][1],T=u[3][0],_=u[3][1];b-=y[0],C-=y[1],T-=y[0],_-=y[1];var O=b*Math.cos(I)-C*Math.sin(I),D=b*Math.sin(I)+C*Math.cos(I),S=T*Math.cos(I)-_*Math.sin(I),x=T*Math.sin(I)+_*Math.cos(I);b=O+y[0],C=D+y[1],T=S+y[0],_=x+y[1];var k=a.canvasToWorld([b,C]),M=a.canvasToWorld([T,_]);s.handles.points[c]=g,s.handles.points[2]=k,s.handles.points[3]=M}else{var P=2===c?3:2,R={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},N=nc.vec2.subtract(nc.vec2.create(),[R.longLineSegment.end.x,R.longLineSegment.end.y],[R.longLineSegment.start.x,R.longLineSegment.start.y]),A=nc.vec2.normalize(nc.vec2.create(),N),L=nc.vec2.subtract(nc.vec2.create(),[h[0],h[1]],[u[c][0],u[c][1]]),U=nc.vec2.length(L),V=e._getSignedAngle(A,L),B=Math.cos(V)*U,j=nc.vec2.scaleAndAdd(nc.vec2.create(),[u[P][0],u[P][1]],A,B);if(e._movingLongAxisWouldPutItThroughShortAxis({start:{x:h[0],y:h[1]},end:{x:j[0],y:j[1]}},{start:{x:R.longLineSegment.start.x,y:R.longLineSegment.start.y},end:{x:R.longLineSegment.end.x,y:R.longLineSegment.end.y}}))return;if(!Od([h[0],h[1]],[j[0],j[1]],[v.start.x,v.start.y],[v.end.x,v.end.y]))return;s.handles.points[P]=a.canvasToWorld(j),s.handles.points[c]=g}})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragDrawCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragDrawCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragDrawCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragDrawCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragDrawCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragDrawCallback)})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragModifyCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragModifyCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragModifyCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragModifyCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!0,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=e.getStyle("shadow",u,f);if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,width:null,unit:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var T=void 0;if(Se(g)){ae(f)||e.editData||null===w||(T=[E[w]]),T&&Ic(n,g,"0",T,{color:b});var _="".concat(g,"-line-1"),O="".concat(g,"-line-2");bc(n,g,"0",E[0],E[1],{color:b,lineDash:I,lineWidth:y,shadow:C},_),bc(n,g,"1",E[2],E[3],{color:b,lineDash:I,lineWidth:y,shadow:C},O),a=!0;var D=e._getTextLines(h,s);if(D&&0!==D.length){var S=void 0;h.handles.textBox.hasMoved||(S=Es(E),h.handles.textBox.worldPosition=i.canvasToWorld(S));var x=i.worldToCanvas(h.handles.textBox.worldPosition),k=Rc(n,g,"1",D,x,E,{},e.getLinkedTextBoxStyle(u,f)),M=k.x,P=k.y,R=k.width,N=k.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([M,P]),topRight:i.canvasToWorld([M+R,P]),bottomLeft:i.canvasToWorld([M,P+N]),bottomRight:i.canvasToWorld([M+R,P+N])}}}}return a})),X(Xo(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=nc.vec2.create();nc.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),nc.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!Od([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),X(Xo(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)]})),X(Xo(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,a=r.viewportId,i=r.renderingEngineId,l=o.handles.points[0],c=o.handles.points[1],s=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n);if(h){var p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,E=e._calculateLength(l,c),y=e._calculateLength(s,d),I=E>y?E:y,b=E>y?y:E,C=Jf(p,l),T=Jf(p,c),_=Jf(p,s),O=Jf(p,d);e._isInsideVolume(C,T,_,O,m)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,u[g]={length:I,width:b,unit:w?"mm":"px"}}}t.invalidated=!1;var D=Y.ANNOTATION_MODIFIED,S={annotation:t,viewportId:a,renderingEngineId:i};return(0,K.triggerEvent)(K.eventTarget,D,S),u})),X(Xo(e),"_isInsideVolume",(function(e,t,n,r,o){return K.utilities.indexWithinDimensions(e,o)&&K.utilities.indexWithinDimensions(t,o)&&K.utilities.indexWithinDimensions(n,o)&&K.utilities.indexWithinDimensions(r,o)})),X(Xo(e),"_getSignedAngle",(function(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],e[0]*t[0]+e[1]*t[1])})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=(0,K.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;this.isDrawing=!0;var c=i.getCamera(),s=c.viewPlaneNormal,d=c.viewUp,u=this.getReferencedImageId(i,o,s,d),v=i.getFrameOfReferenceUID(),f={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:yr(s),viewUp:yr(d),FrameOfReferenceUID:v,referencedImageId:u},data:{handles:{points:[yr(o),yr(o),yr(o),yr(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:{}}};et(f,r);var g=rs(r,this.getToolName());return this.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),Ul(r),e.preventDefault(),Ko(l,g),f}},{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}(gs);X(Zf,"toolName",void 0),Zf.toolName="Bidirectional";var Xf=Zf;var Qf=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:eg,changeTextCallback:tg,preventHandleOutsideImage:!1,arrowFirst:!0}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Ul(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=e.configuration.arrowFirst,g=l.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:g,referencedImageId:v},data:{text:"",handles:{points:[yr(a),yr(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:""}};et(h,o);var p=rs(o,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:p,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Ko(c,p),h})),X(Xo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=Ln(t.data.handles.points,2),i=a[0],l=a[1],c=o.worldToCanvas(i),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return ms([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Ul(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),i&&e.configuration.getTextCallback((function(t){if(!t)return nt(o.annotationUID),Ko(s,a),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var n=Y.ANNOTATION_COMPLETED,r={annotation:o};(0,K.triggerEvent)(K.eventTarget,n,r),Ko(s,a)})),e.editData=null,e.isDrawing=!1}})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=yr(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,K.getEnabledElement)(r).renderingEngine;Ko(h,i)})),X(Xo(e),"touchTapCallback",(function(t){2==t.detail.taps&&e.doubleClickCallback(t)})),X(Xo(e),"doubleClickCallback",(function(t){var n,r=t.detail,o=r.element,a=Qe(e.getToolName(),o);if(null!==(n=a=e.filterInteractableAnnotationsForElement(o,a))&&void 0!==n&&n.length){var i=a.find((function(t){return e.isPointNearTool(o,t,r.currentPoints.canvas,6)}));if(i){var l=i;e.configuration.changeTextCallback(i,t.detail,e._doneChangingTextCallback.bind(Xo(e),o,l)),e.editData=null,e.isDrawing=!1,t.stopImmediatePropagation(),t.preventDefault()}}})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<c.length;d++){var u=c[d],v=u.annotationUID,f=u.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;s.annotationUID=v;var w=e.getStyle("lineWidth",s,u),E=e.getStyle("lineDash",s,u),y=e.getStyle("color",s,u),I=p.map((function(e){return i.worldToCanvas(e)})),b=void 0;if(ae(u)||e.editData||null===m||(b=[I[m]]),b&&Ic(n,v,"0",I,{color:y,lineWidth:w}),e.configuration.arrowFirst?Ac(n,v,"1",I[1],I[0],{color:y,width:w,lineDash:E}):Ac(n,v,"1",I[0],I[1],{color:y,width:w,lineDash:E}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(h){if(!f.handles.textBox.hasMoved){var C=Es(I);f.handles.textBox.worldPosition=i.canvasToWorld(C)}var T=i.worldToCanvas(f.handles.textBox.worldPosition),_=Rc(n,v,"1",[h],T,I,{},e.getLinkedTextBoxStyle(s,u)),O=_.x,D=_.y,S=_.width,x=_.height;f.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([O,D]),topRight:i.canvasToWorld([O+S,D]),bottomLeft:i.canvasToWorld([O,D+x]),bottomRight:i.canvasToWorld([O+S,D+x])}}}return a})),e}return J(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=rs(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Ul(r);var c=(0,K.getEnabledElement)(r).renderingEngine;Ko(c,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,K.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=r.renderingEngineId,l=rs(e,this.getToolName());Ko(o,l);var c=Y.ANNOTATION_MODIFIED;(0,K.triggerEvent)(K.eventTarget,c,{annotation:t,viewportId:a,renderingEngineId:i})}},{key:"_isInsideVolume",value:function(e,t,n){return K.utilities.indexWithinDimensions(e,n)&&K.utilities.indexWithinDimensions(t,n)}}]),o}(gs);function eg(e){return e(prompt("Enter your annotation:"))}function tg(e,t,n){return n(prompt("Enter your annotation:"))}X(Qf,"toolName",void 0),Qf.toolName="ArrowAnnotate";var ng=Qf;var rg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"angleStartedNotYetCompleted",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(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,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Ul(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[yr(a),yr(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:{}}};et(g,o);var h=rs(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Ko(c,h),g}})),X(Xo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=Ln(t.data.handles.points,3),i=a[0],l=a[1],c=a[2],s=o.worldToCanvas(i),d=o.worldToCanvas(l),u=o.worldToCanvas(c),v={start:{x:s[0],y:s[1]},end:{x:d[0],y:d[1]}},f={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},g=ms([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=ms([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),X(Xo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=rs(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Ul(r);var a=(0,K.getEnabledElement)(r).renderingEngine;Ko(a,o),t.preventDefault()})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l)if(e.angleStartedNotYetCompleted&&2===c.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=yr(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,K.getEnabledElement)(r).renderingEngine;Ko(h,i)})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_MOVE,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_MOVE,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,E=m.activeHandleIndex;u.annotationUID=h;var y=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[s]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,d,t));var T=void 0;if(ae(g)||e.editData||null===E||(T=[C[E]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;T&&Ic(n,h,"0",C,{color:b,lineDash:I,lineWidth:y});var _="1";if(bc(n,h,_,C[0],C[1],{color:b,width:y,lineDash:I}),a=!0,3!==C.length)return a;if(bc(n,h,_="2",C[1],C[2],{color:b,width:y,lineDash:I}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var O=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var D=Es(C);p.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=Rc(n,h,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,g)),k=x.x,M=x.y,P=x.width,R=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(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=rs(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Ul(r);var c=(0,K.getEnabledElement)(r).renderingEngine;Ko(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,a=n.renderingEngineId;if(3===r.handles.points.length){for(var i=r.handles.points[0],l=r.handles.points[1],c=r.handles.points[2],s=r.cachedStats,d=Object.keys(s),u=0;u<d.length;u++){var v=d[u],f=yf([i,l],[l,c]);s[v]={angle:f}}e.invalidated=!1;var g=Y.ANNOTATION_MODIFIED,h={annotation:e,viewportId:o,renderingEngineId:a};return(0,K.triggerEvent)(K.eventTarget,g,h),s}}}]),o}(gs);X(rg,"toolName",void 0),rg.toolName="Angle";var og=rg,ag=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=2===t[0].length?[0,0]:[0,0,0],o=t.length,a=0,i=t;a<i.length;a++){var l=i[a];r[0]+=l[0]/o,r[1]+=l[1]/o,3===r.length&&(r[2]+=l[2]/o)}return r};var ig=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"angleStartedNotYetCompleted",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(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,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Ul(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[yr(a),yr(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:{}}};et(g,o);var h=rs(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Ko(c,h),g}})),X(Xo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,K.getEnabledElement)(e).viewport,a=Ln(t.data.handles.points,4),i=a[0],l=a[1],c=a[2],s=a[3],d=o.worldToCanvas(i),u=o.worldToCanvas(l),v=o.worldToCanvas(c),f=o.worldToCanvas(s),g={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},h={start:{x:v[0],y:v[1]},end:{x:f[0],y:f[1]}},p=ms([g.start.x,g.start.y],[g.end.x,g.end.y],[n[0],n[1]]),m=ms([h.start.x,h.start.y],[h.end.x,h.end.y],[n[0],n[1]]);return p<=r||m<=r})),X(Xo(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=rs(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Ul(o);var i=(0,K.getEnabledElement)(o).renderingEngine;Ko(i,a),t.preventDefault()})),X(Xo(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){if(e.angleStartedNotYetCompleted&&c.handles.points.length<4)return Ll(n),void(e.editData.handleIndex=c.handles.points.length);e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ll(n);var s=(0,K.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&nt(o.annotationUID),Ko(s,a),i){var d=Y.ANNOTATION_COMPLETED,u={annotation:o};(0,K.triggerEvent)(K.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),X(Xo(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,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=yr(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,K.getEnabledElement)(r).renderingEngine;Ko(h,i)})),X(Xo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ll(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,K.getEnabledElement)(t).renderingEngine;if(Ko(l,o),a){var c=Y.ANNOTATION_COMPLETED,s={annotation:r};(0,K.triggerEvent)(K.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),X(Xo(e),"_activateModify",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._mouseUpCallback),t.addEventListener(Y.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(Y.MOUSE_CLICK,e._mouseUpCallback)})),X(Xo(e),"_deactivateModify",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(Y.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._mouseUpCallback)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._mouseUpCallback),t.addEventListener(Y.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener(Y.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener(Y.MOUSE_CLICK,e._mouseUpCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._mouseUpCallback),t.removeEventListener(Y.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener(Y.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._mouseUpCallback)})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=Qe(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,E=m.activeHandleIndex;u.annotationUID=h;var y=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[s]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,d,t));var T=void 0;if(ae(g)||e.editData||null===E||(T=[C[E]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;T&&Ic(n,h,"0",C,{color:b,lineDash:I,lineWidth:y});var _="1";if(bc(n,h,_,C[0],C[1],{color:b,width:y,lineDash:I}),a=!0,C.length<4)return a;if(bc(n,h,_="2",C[2],C[3],{color:b,width:y,lineDash:I}),bc(n,h,_="3",ag(C[0],C[1]),ag(C[2],C[3]),{color:b,lineWidth:"1",lineDash:"1,4"}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var O=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var D=Es(C);p.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=Rc(n,h,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,g)),k=x.x,M=x.y,P=x.width,R=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Fc(e._calculateCachedStats,100,{trailing:!0}),e}return J(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=rs(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Ul(r);var c=(0,K.getEnabledElement)(r).renderingEngine;Ko(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,a=n.renderingEngineId;if(4===r.handles.points.length){for(var i=r.handles.points[0],l=r.handles.points[1],c=r.handles.points[2],s=r.handles.points[3],d=r.cachedStats,u=Object.keys(d),v=0;v<u.length;v++){var f=u[v],g=yf([i,l],[c,s]);d[f]={angle:g}}e.invalidated=!1;var h=Y.ANNOTATION_MODIFIED,p={annotation:e,viewportId:o,renderingEngineId:a};return(0,K.triggerEvent)(K.eventTarget,h,p),d}}}]),o}(gs);X(ig,"toolName",void 0),ig.toolName="CobbAngle";var lg=ig;var cg="magnify-viewport",sg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"_bounds",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints,a=(0,K.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;if(!(i instanceof K.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var c=e._getReferencedImageId(i);if(!c)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var s=rs(r,e.getToolName());return e.editData={referencedImageId:c,viewportIdsToRender:s,enabledElement:a,renderingEngine:l,currentPoints:o},e._createMagnificationViewport(),e._activateDraw(r),Ul(r),t.preventDefault(),Ko(l,s),!0})),X(Xo(e),"preTouchStartCallback",(function(t){e.preMouseDownCallback(t)})),X(Xo(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,a=n.viewportIdsToRender,i=n.renderingEngine,l=n.currentPoints,c=r.viewport,s=c.element,d=c.getProperties().voiRange,u=l.canvas,v=l.world;if(null===(t=s.querySelector(".magnifyTool"))){var f=document.createElement("div");f.classList.add("magnifyTool"),f.style.display="block",f.style.width="".concat(e.configuration.magnifyWidth,"px"),f.style.height="".concat(e.configuration.magnifyHeight,"px"),f.style.position="absolute",t=f,s.querySelector(".viewport-element").appendChild(f);var g={viewportId:cg,type:K.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(cg);h.setStack([o]).then((function(){h.setProperties({voiRange:d});var t=c.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]],s=[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:s}),h.render()})),t.style.display="block",Ko(i,a)})),X(Xo(e),"_dragCallback",(function(t){var n=t.detail,r=n.deltaPoints,o=n.element,a=n.currentPoints,i=r.world,l=a.canvas,c=(0,K.getEnabledElement)(o).renderingEngine.getViewport(cg),s=o.querySelector(".magnifyTool");if(s){s.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),s.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var d=c.getCamera(),u=d.focalPoint,v=d.position,f=[v[0]+i[0],v[1]+i[1],v[2]+i[2]],g=[u[0]+i[0],u[1]+i[1],u[2]+i[2]];c.setCamera({focalPoint:g,position:f}),c.render()}})),X(Xo(e),"_dragEndCallback",(function(t){var n=t.detail.element;(0,K.getEnabledElement)(n).renderingEngine.disableElement(cg);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),Ll(n)})),X(Xo(e),"_activateDraw",(function(t){qe.isInteractingWithTool=!0,t.addEventListener(Y.MOUSE_UP,e._dragEndCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._dragEndCallback),t.addEventListener(Y.TOUCH_END,e._dragEndCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateDraw",(function(t){qe.isInteractingWithTool=!1,t.removeEventListener(Y.MOUSE_UP,e._dragEndCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._dragEndCallback),t.removeEventListener(Y.TOUCH_END,e._dragEndCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback)})),e}return J(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof K.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(ua);X(sg,"toolName",void 0),sg.toolName="Magnify";var dg=sg;var ug=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"isDrawing",!1),X(Xo(e),"isHandleOutsideImage",!1),X(Xo(e),"_elementWithCursor",null),X(Xo(e),"_currentCursorWorldPosition",null),X(Xo(e),"_currentCanvasPosition",null),X(Xo(e),"_disableCursorEnabled",!1),X(Xo(e),"mouseMoveCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints;e._currentCursorWorldPosition=o.world,e._currentCanvasPosition=o.canvas,e._elementWithCursor=r;var a=e.getActiveAnnotation(r);return null===a?(e.createInitialAnnotation(o.world,r),!1):(e.updateAnnotationPosition(r,a),!1)})),X(Xo(e),"createInitialAnnotation",(function(t,n){var r=(0,K.getEnabledElement)(n);if(!r)throw new Error("No enabled element found");var o=r.viewport,a=r.renderingEngine;e.isDrawing=!0;var i=o.getCamera(),l=i.viewPlaneNormal,c=i.viewUp;if(!l||!c)throw new Error("Camera not found");var s=e.getReferencedImageId(o,t,l,c),d=o.getFrameOfReferenceUID(),u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(l),viewUp:yr(c),FrameOfReferenceUID:d,referencedImageId:s},data:{label:"",handles:{points:[yr(t)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(Qe(e.getToolName(),n).length>0)return null;if(null!==et(u,n)){var v=rs(n,e.getToolName(),!1);Ko(a,v)}})),X(Xo(e),"onCameraModified",(function(t){var n=t.detail,r=n.element,o=n.previousCamera,a=n.camera,i=(0,K.getEnabledElement)(r).viewport;if(r===e._elementWithCursor){var l=o.focalPoint,c=a.viewPlaneNormal,s=a.focalPoint,d=[0,0,0];if(jd().subtract(s,l,d),0!==d.reduce((function(e,t){return e+t}),0)){var u=jd().dot(d,c);if(!(Math.abs(u)<.01)&&e._currentCanvasPosition){var v=i.canvasToWorld(e._currentCanvasPosition);e._currentCursorWorldPosition=v,e.updateAnnotationPosition(r,e.getActiveAnnotation(r))}}}})),X(Xo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=(t.FrameOfReferenceUID,e._elementWithCursor===i.element);e.configuration.positionSync&&!l&&e.updateViewportImage(i);var c=i.element,s=Qe(e.getToolName(),c);if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles.points;if(!f)return a;d.annotationUID=f;var h=parseFloat(e.getStyle("lineWidth",d,v)),p=e.getStyle("lineDash",d,v),m=e.getStyle("color",d,v);if(g[0].some((function(e){return isNaN(e)})))return a;var w=g.map((function(e){return i.worldToCanvas(e)}));if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(Se(f)){var E={upper:"upper",right:"right",lower:"lower",left:"left"},y=Ln(w[0],2),I=y[0],b=y[1],C=l?20:7,T=l?5:7;bc(n,f,E.upper,[I,b-(C/2+T)],[I,b-C/2],{color:m,lineDash:p,lineWidth:h}),bc(n,f,E.lower,[I,b+(C/2+T)],[I,b+C/2],{color:m,lineDash:p,lineWidth:h}),bc(n,f,E.right,[I+(C/2+T),b],[I+C/2,b],{color:m,lineDash:p,lineWidth:h}),bc(n,f,E.left,[I-(C/2+T),b],[I-C/2,b],{color:m,lineDash:p,lineWidth:h}),a=!0}}return a})),e._disableCursorEnabled=e.configuration.disableCursor,e}return J(o,[{key:"onSetToolActive",value:function(){if(this._disableCursorEnabled=this.configuration.disableCursor,this._disableCursorEnabled){var e=Zo(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,K.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Ul(e.viewport.element)}))}}},{key:"onSetToolDisabled",value:function(){if(this._disableCursorEnabled){var e=Zo(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,K.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Ll(e.viewport.element)}))}}},{key:"getActiveAnnotation",value:function(e){var t=Qe(this.getToolName(),e);return t.length?t[0]:null}},{key:"updateAnnotationPosition",value:function(e,t){var n,r,o=this._currentCursorWorldPosition;if(o&&null!==(n=t.data)&&void 0!==n&&null!==(r=n.handles)&&void 0!==r&&r.points){t.data.handles.points=[yr(o)],t.invalidated=!0;var a=rs(e,this.getToolName(),!1),i=(0,K.getEnabledElement)(e);if(i){var l=i.renderingEngine;Ko(l,a)}}}},{key:"filterInteractableAnnotationsForElement",value:function(e,t){var n,r,o;if(!(t instanceof Array)||0===t.length)return[];var a=t[0],i=null===(n=(0,K.getEnabledElement)(e))||void 0===n?void 0:n.viewport;if(!i)return[];var l=i.getCamera(),c=l.viewPlaneNormal,s=l.focalPoint;if(!c||!s)return[];var d=null===(r=a.data)||void 0===r||null===(o=r.handles)||void 0===o?void 0:o.points;if(!(d instanceof Array)||1!==d.length)return[];var u=d[0],v=K.utilities.planar.planeEquation(c,s);return K.utilities.planar.planeDistanceToPoint(v,u)<this.configuration.displayThreshold?[a]:[]}},{key:"updateViewportImage",value:function(e){var t=this._currentCursorWorldPosition;if(t&&!t.some((function(e){return isNaN(e)})))if(e instanceof K.StackViewport){var n=K.utilities.getClosestStackImageIndexForPoint(t,e);if(null===n)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof K.VolumeViewport){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal;if(!o||!a)return;var i=K.utilities.planar.planeEquation(a,o),l=K.utilities.planar.planeDistanceToPoint(i,t,!0);if(Math.abs(l)<.5)return;var c=nc.vec3.normalize(nc.vec3.create(),nc.vec3.fromValues.apply(nc.vec3,yr(a))),s=nc.vec3.scale(nc.vec3.create(),c,l),d=nc.vec3.add(nc.vec3.create(),nc.vec3.fromValues.apply(nc.vec3,yr(o)),s);e.setCamera({focalPoint:d});var u=e.getRenderingEngine();u&&u.renderViewport(e.id)}}}]),o}(ds);X(ug,"toolName",void 0),ug.toolName="ReferenceCursors";var vg=ug;var fg=[],gg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:{viewportId:"",scaleLocation:"bottom"}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"touchDragCallback",void 0),X(Xo(e),"mouseDragCallback",void 0),X(Xo(e),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",{}),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"_init",(function(){var t=(0,K.getRenderingEngines)()[0];if(t){var n=Zo(e.toolGroupId).viewportsInfo;if(n){var r=n.map((function(e){return(0,K.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})),o=r[0].viewport,a=r[0].FrameOfReferenceUID;if(e.configuration.viewportId&&r.forEach((function(t){t.viewport.id==e.configuration.viewportId&&(o=t.viewport)})),o){var i=o.getCamera(),l=i.viewUp,c=i.viewPlaneNormal,s=K.utilities.getViewportImageCornersInWorld(o),d=e.editData.annotation,u=Qe(e.getToolName(),o.element);if(u.length&&(d=u.filter((function(e){return e.data.viewportId==o.id}))[0]),fg.includes(o.id))e.editData.annotation.data.viewportId==o.id&&(e.editData.annotation.data.handles.points=s,e.editData.annotation.data.viewportId=o.id);else{var v={metadata:{toolName:e.getToolName(),viewPlaneNormal:yr(c),viewUp:yr(l),FrameOfReferenceUID:a,referencedImageId:null},data:{handles:{points:s},viewportId:o.id}};fg.push(o.id),et(v,o.element),d=v}e.editData={viewport:o,renderingEngine:t,annotation:d}}}}})),X(Xo(e),"onSetToolEnabled",(function(){e._init()})),X(Xo(e),"onCameraModified",(function(t){e.configuration.viewportId=t.detail.viewportId,e._init()})),X(Xo(e),"computeScaleSize",(function(e,t,n){var r=[16e3,8e3,4e3,2e3,1e3,500,250,100,50,25,10,5,2];return("top"==n||"bottom"==n?r.filter((function(t){return t<.6*e&&t>.2*e})):r.filter((function(e){return e<.6*t&&e>.2*t})))[0]})),X(Xo(e),"computeEndScaleTicks",(function(e,t){var n={bottom:[[0,-10],[0,-10]],top:[[0,10],[0,10]],left:[[0,0],[10,0]],right:[[0,0],[-10,0]]};return{endTick1:[[e[1][0]+n[t][0][0],e[1][1]+n[t][0][0]],[e[1][0]+n[t][1][0],e[1][1]+n[t][1][1]]],endTick2:[[e[0][0]+n[t][0][0],e[0][1]+n[t][0][0]],[e[0][0]+n[t][1][0],e[0][1]+n[t][1][1]]]}})),X(Xo(e),"computeInnerScaleTicks",(function(e,t,n,r,o){var a;"bottom"==t||"top"==t?a=o[0][0]-r[0][0]:"left"!=t&&"right"!=t||(a=o[0][1]-r[0][1]);var i=[],l=[],c=[],s=e;e>=50&&(s=e/10);for(var d=a/s,u=0;u<s-1;u++){var v={bottom:[[d*(u+1),0],[d*(u+1),5]],top:[[d*(u+1),0],[d*(u+1),-5]],left:[[0,d*(u+1)],[-5,d*(u+1)]],right:[[0,d*(u+1)],[5,d*(u+1)]]};i.push("".concat(n,"-tick").concat(u)),l.push("tick".concat(u)),(u+1)%5==0?c.push([[r[0][0]+v[t][0][0],r[0][1]+v[t][0][1]],[r[1][0]+v[t][0][0],r[1][1]+v[t][0][1]]]):c.push([[r[0][0]+v[t][0][0],r[0][1]+v[t][0][1]],[r[1][0]+v[t][1][0],r[1][1]+v[t][1][1]]])}return{tickIds:i,tickUIDs:l,tickCoordinates:c}})),X(Xo(e),"computeWorldScaleCoordinates",(function(e,t,n){var r,o=nc.vec3.subtract(nc.vec3.create(),n[0],n[1]);o=nc.vec3.normalize(nc.vec3.create(),o);var a=nc.vec3.subtract(nc.vec3.create(),n[2],n[0]);a=nc.vec3.normalize(nc.vec3.create(),a);var i={bottom:[n[1],n[2]],top:[n[0],n[3]],right:[n[2],n[3]],left:[n[0],n[1]]},l=nc.vec3.add(nc.vec3.create(),i[t][0],i[t][0]).map((function(e){return e/2})),c=e/2/Math.sqrt(Math.pow(o[0],2)+Math.pow(o[1],2)+Math.pow(o[2],2));return"top"==t||"bottom"==t?r=[nc.vec3.subtract(nc.vec3.create(),l,a.map((function(e){return e*c}))),nc.vec3.add(nc.vec3.create(),l,a.map((function(e){return e*c})))]:"left"!=t&&"right"!=t||(r=[nc.vec3.add(nc.vec3.create(),l,o.map((function(e){return e*c}))),nc.vec3.subtract(nc.vec3.create(),l,o.map((function(e){return e*c})))]),r})),X(Xo(e),"computeCanvasScaleCoordinates",(function(e,t,n,r,o){var a;if("top"==o||"bottom"==o){var i=t[0][0]-t[1][0];a=[[e.width/2-i/2,n.height],[e.width/2+i/2,n.height]]}else if("left"==o||"right"==o){var l=t[0][1]-t[1][1];a=[[r.width,e.height/2-l/2],[r.width,e.height/2+l/2]]}return a})),X(Xo(e),"computeScaleBounds",(function(e,t,n,r){var o=t*Math.min(1e3,e.width),a=n*Math.min(1e3,e.height),i={bottom:[-a,-o],top:[a,o],left:[a,o],right:[-a,-o]},l={bottom:[e.height,e.width],top:[0,e.width],left:[e.height,0],right:[e.height,e.width]};return{height:l[r][0]+i[r][0],width:l[r][1]+i[r][1]}})),e}return J(o,[{key:"renderAnnotation",value:function(e,t){if(this.editData.viewport){var n=this.configuration.scaleLocation,r=e.viewport,o=Qe(this.getToolName(),r.element).filter((function(e){return e.data.viewportId==r.id}))[0],a=e.viewport.canvas;if(!r)return!1;var i={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id},l={width:a.width,height:a.height},c=o.data.handles.points[0],s=o.data.handles.points[1],d=o.data.handles.points[2],u=o.data.handles.points[3],v=[c,d,s,u],f=nc.vec3.distance(d,u),g=nc.vec3.distance(c,d),h=this.computeScaleBounds(l,.05,.05,n),p=this.computeScaleBounds(l,.05,.05,n),m=this.computeScaleSize(f,g,n),w=this.computeWorldScaleCoordinates(m,n,v).map((function(e){return r.worldToCanvas(e)})),E=this.computeCanvasScaleCoordinates(l,w,p,h,n),y=this.computeEndScaleTicks(E,n),I=o.annotationUID;i.annotationUID=I;var b=this.getStyle("lineWidth",i,o),C=this.getStyle("lineDash",i,o),T=this.getStyle("color",i,o),_=this.getStyle("shadow",i,o),O="".concat(I,"-scaleline");bc(t,I,"1",E[0],E[1],{color:T,width:b,lineDash:C,shadow:_},O);var D="".concat(I,"-left");bc(t,I,"2",y.endTick1[0],y.endTick1[1],{color:T,width:b,lineDash:C,shadow:_},D);var S="".concat(I,"-right");bc(t,I,"3",y.endTick2[0],y.endTick2[1],{color:T,width:b,lineDash:C,shadow:_},S);for(var x={bottom:[-10,-42],top:[-12,-35],left:[-40,-20],right:[-50,-20]},k=[E[0][0]+x[n][0],E[0][1]+x[n][1]],M=this._getTextLines(m),P=this.computeInnerScaleTicks(m,n,I,y.endTick1,y.endTick2),R=P.tickIds,N=P.tickUIDs,A=P.tickCoordinates,L=0;L<N.length;L++)bc(t,I,N[L],A[L][0],A[L][1],{color:T,width:b,lineDash:C,shadow:_},R[L]);return xc(t,I,"text0",M,[k[0],k[1]],{fontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",fontSize:"14px",lineDash:"2,3",lineWidth:"1",shadow:!0,color:T}),!1}}},{key:"_getTextLines",value:function(e){var t,n;return e>=50?(t=e/10,n=" cm"):(t=e,n=" mm"),[t.toString().concat(n)]}}]),o}(ds);X(gg,"toolName",void 0),gg.toolName="ScaleOverlay";var hg=gg,pg=K.utilities.transformWorldToIndex;function mg(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.constraintFn,c=n.imageData,s=n.dimensions,d=n.getScalarData(),u=r.map((function(e){return pg(c,e)}));u=u.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=zc(u,s);if(v.every((function(e){var t=Ln(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");qc(c,(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),Et(i)}(0,t)}var wg=K.utilities.transformWorldToIndex;function Eg(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentationId,i=n.imageData,l=n.dimensions,c=n.getScalarData(),s=r.map((function(e){return wg(i,e)})),d=zc(s,l);if(d.every((function(e){var t=Ln(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");qc(i,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(c[n]=0)}),d),Et(a)}(0,t)}var yg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:mg,ERASE_INSIDE:Eg},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),X(Xo(e),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.toolGroupId,f=od(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=dd(h),w=cd(h),E=fd(v,g,m),y=Ct(h).representationData[p].volumeId,I=K.cache.getVolume(y),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:yr(d),viewUp:yr(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null}}},C=rs(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:m,segmentsLocked:w,segmentColor:E,segmentationId:h,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(c,C),!0})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n,r,o,a,i,l,c,s,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,K.getEnabledElement)(u),E=w.viewport,y=E.worldToCanvas,I=E.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=yr(b),h){case 0:case 3:n=y(C[0]),r=[(a=y(C[3]))[0],n[1]],o=[n[0],a[1]],l=I(r),c=I(o),C[1]=l,C[2]=c;break;case 1:case 2:r=y(C[1]),n=[(o=y(C[2]))[0],r[1]],a=[r[0],o[1]],i=I(n),s=I(a),C[0]=i,C[3]=s}f.invalidated=!0,e.editData.hasMoved=!0;var T=w.renderingEngine;Ko(T,g)})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentationId,s=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!a||i){u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ll(n);var v=(0,K.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof K.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:c,segmentIndex:s,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),X(Xo(e),"_activateDraw",(function(t){t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Nc(n,l,"0",c[0],c[3],{color:s}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return J(o)}(ua);X(yg,"toolName",void 0),yg.toolName="RectangleScissor";var Ig=yg;var bg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:Qs},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,K.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=od(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=dd(p),E=cd(p),y=fd(f,h,w),I=Ct(p).representationData[m].volumeId,b=K.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:yr(u),viewUp:yr(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},T=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentationId:p,segmentsLocked:E,segmentColor:y,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(s,T),!0})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,K.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],s.invalidated=!0,e.editData.hasMoved=!0,Ko(i,d)})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ll(n);var h=(0,K.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof K.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),X(Xo(e),"_activateDraw",(function(t){t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback),t.addEventListener(Y.TOUCH_END,e._endCallback)})),X(Xo(e),"_deactivateDraw",(function(t){t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Ec(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return J(o)}(ua);X(bg,"toolName",void 0),bg.toolName="CircleScissor";var Cg=bg;var Tg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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:zs},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return Z(this,o),X(Xo(e=r.call(this,t,n)),"editData",void 0),X(Xo(e),"isDrawing",void 0),X(Xo(e),"isHandleOutsideImage",void 0),X(Xo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,K.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=od(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=dd(p),E=cd(p),y=fd(f,h,w),I=Ct(p).representationData[m].volumeId,b=K.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:yr(u),viewUp:yr(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{invalidated:!0,handles:{points:[yr(a),yr(a),yr(a),yr(a)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},T=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentsLocked:E,segmentColor:y,segmentationId:p,toolGroupId:f,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Ul(o),t.preventDefault(),Ko(s,T),!0})),X(Xo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,K.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],s.invalidated=!0,e.editData.hasMoved=!0,Ko(i,d)})),X(Xo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ll(n);var h=(0,K.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof K.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),X(Xo(e),"_activateDraw",(function(t){t.addEventListener(Y.MOUSE_UP,e._endCallback),t.addEventListener(Y.MOUSE_DRAG,e._dragCallback),t.addEventListener(Y.MOUSE_CLICK,e._endCallback),t.addEventListener(Y.TOUCH_END,e._endCallback),t.addEventListener(Y.TOUCH_TAP,e._endCallback),t.addEventListener(Y.TOUCH_DRAG,e._dragCallback)})),X(Xo(e),"_deactivateDraw",(function(t){t.removeEventListener(Y.MOUSE_UP,e._endCallback),t.removeEventListener(Y.MOUSE_DRAG,e._dragCallback),t.removeEventListener(Y.MOUSE_CLICK,e._endCallback),t.removeEventListener(Y.TOUCH_END,e._endCallback),t.removeEventListener(Y.TOUCH_DRAG,e._dragCallback),t.removeEventListener(Y.TOUCH_TAP,e._endCallback)})),X(Xo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Ec(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return J(o)}(ua);X(Tg,"toolName",void 0),Tg.toolName="SphereScissor";var _g=Tg;var Og=K.utilities.transformWorldToIndex,Dg=K.utilities.isEqual,Sg=function(e){ea(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=ra(t);if(n){var o=ra(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return na(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),X(Xo(e=r.call(this,t,n)),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,K.getEnabledElement)(o).viewport.getCamera().viewPlaneNormal,l=od(e.toolGroupId);if(!l)throw new Error("No active segmentation detected, create one before using scissors tool");var c=l.segmentationId,s=l.type,d=dd(c),u=cd(c),v=Ct(c).representationData[s].volumeId,f=K.cache.getVolume(v),g=f.dimensions,h=f.direction,p=f.getScalarData(),m=Og(f.imageData,a),w=e.getFixedDimension(i,h);if(void 0!==w){var E=e.generateHelpers(p,g,m,w),y=E.floodFillGetter,I=E.getLabelValue,b=E.getScalarDataPositionFromPlane,C=E.inPlaneSeedPoint,T=E.fixedDimensionValue;if(!(m[0]<0||m[0]>=g[0]||m[1]<0||m[1]>=g[1]||m[2]<0||m[2]>=g[2])){var _=I(m[0],m[1],m[2]);if(!u.includes(_)){var O=qs(y,C);return O.flooded.forEach((function(e){var t=b(e[0],e[1]);p[t]=d})),Et(c,e.getFramesModified(w,T,O)),!0}}}else console.warn("Oblique paint fill not yet supported")})),X(Xo(e),"getFramesModified",(function(e,t,n){var r=n.boundaries;if(2===e)return[t];for(var o=1/0,a=-1/0,i=0;i<r.length;i++){var l=r[i][1];l<o&&(o=l),l>a&&(a=l)}for(var c=[],s=o;s<=a;s++)c.push(s);return c})),X(Xo(e),"generateHelpers",(function(t,n,r){var o,a,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2;switch(i){case 0:o=r[0],a=[r[1],r[2]];break;case 1:o=r[1],a=[r[0],r[2]];break;case 2:o=r[2],a=[r[0],r[1]];break;default:throw new Error("Invalid fixedDimension: ".concat(i))}var l=function(e,t,r){return r*n[1]*n[0]+t*n[0]+e},c=function(e,n,r){return t[l(e,n,r)]},s=e.generateFloodFillGetter(n,i,o,c),d=e.generateGetScalarDataPositionFromPlane(l,i,o);return{getScalarDataPositionFromPlane:d,getLabelValue:c,floodFillGetter:s,inPlaneSeedPoint:a,fixedDimensionValue:o}})),X(Xo(e),"generateFloodFillGetter",(function(e,t,n,r){var o;switch(t){case 0:o=function(t,o){if(!(t>=e[1]||t<0||o>=e[2]||o<0))return r(n,t,o)};break;case 1:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[2]||o<0))return r(t,n,o)};break;case 2:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[1]||o<0))return r(t,o,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return o})),X(Xo(e),"generateGetScalarDataPositionFromPlane",(function(e,t,n){var r;switch(t){case 0:r=function(t,r){return e(n,t,r)};break;case 1:r=function(t,r){return e(t,n,r)};break;case 2:r=function(t,r){return e(t,r,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return r})),e}return J(o,[{key:"getFixedDimension",value:function(e,t){var n=t.slice(0,3),r=t.slice(3,6),o=t.slice(6,9),a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],i=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(Dg(a,i))return 0;var l=[Math.abs(r[0]),Math.abs(r[1]),Math.abs(r[2])];if(Dg(a,l))return 1;var c=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];return Dg(a,c)?2:void 0}}]),o}(ua);X(Sg,"toolName",void 0),Sg.toolName="PaintFill";var xg=Sg}(),g}()}));
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("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Common/Core/CellArray"),require("@kitware/vtk.js/Common/Core/Points"),require("@kitware/vtk.js/Rendering/Core/Mapper"),require("@kitware/vtk.js/Rendering/Core/Actor"),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","@kitware/vtk.js/Common/DataModel/PolyData","@kitware/vtk.js/Common/Core/CellArray","@kitware/vtk.js/Common/Core/Points","@kitware/vtk.js/Rendering/Core/Mapper","@kitware/vtk.js/Rendering/Core/Actor","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("@kitware/vtk.js/Common/DataModel/PolyData"),require("@kitware/vtk.js/Common/Core/CellArray"),require("@kitware/vtk.js/Common/Core/Points"),require("@kitware/vtk.js/Rendering/Core/Mapper"),require("@kitware/vtk.js/Rendering/Core/Actor"),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["@kitware/vtk.js/Common/DataModel/PolyData"],e["@kitware/vtk.js/Common/Core/CellArray"],e["@kitware/vtk.js/Common/Core/Points"],e["@kitware/vtk.js/Rendering/Core/Mapper"],e["@kitware/vtk.js/Rendering/Core/Actor"],e.window,e["@kitware/vtk.js/Common/Core/Math"],e["@kitware/vtk.js/Common/Core/MatrixBuilder"])}(self,(function(e,t,n,r,o,a,i,l,c,s,d){return function(){var u={162:function(e,t,n){e.exports=n(47)},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]",c="[object Function]",s="[object GeneratorFunction]",d="[object Map]",u="[object Number]",v="[object Object]",f="[object Promise]",g="[object RegExp]",h="[object Set]",p="[object String]",m="[object Symbol]",w="[object WeakMap]",E="[object ArrayBuffer]",y="[object DataView]",I="[object Float32Array]",b="[object Float64Array]",C="[object Int8Array]",T="[object Int16Array]",_="[object Int32Array]",O="[object Uint8Array]",D="[object Uint8ClampedArray]",S="[object Uint16Array]",x="[object Uint32Array]",k=/\w*$/,M=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,R={};R[a]=R["[object Array]"]=R[E]=R[y]=R[i]=R[l]=R[I]=R[b]=R[C]=R[T]=R[_]=R[d]=R[u]=R[v]=R[g]=R[h]=R[p]=R[m]=R[O]=R[D]=R[S]=R[x]=!0,R["[object Error]"]=R[c]=R[w]=!1;var N="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,A="object"==typeof self&&self&&self.Object===Object&&self,L=N||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 H(e,t){return e.add(t),e}function F(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 W(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}function G(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function q(e,t){return function(n){return e(t(n))}}function z(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}var K,Y=Array.prototype,$=Function.prototype,J=Object.prototype,Z=L["__core-js_shared__"],X=(K=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||""))?"Symbol(src)_1."+K:"",Q=$.toString,ee=J.hasOwnProperty,te=J.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=q(Object.getPrototypeOf,Object),le=Object.create,ce=J.propertyIsEnumerable,se=Y.splice,de=Object.getOwnPropertySymbols,ue=re?re.isBuffer:void 0,ve=q(Object.keys,Object),fe=Le(L,"DataView"),ge=Le(L,"Map"),he=Le(L,"Promise"),pe=Le(L,"Set"),me=Le(L,"WeakMap"),we=Le(Object,"create"),Ee=He(fe),ye=He(ge),Ie=He(he),be=He(pe),Ce=He(me),Te=oe?oe.prototype:void 0,_e=Te?Te.valueOf:void 0;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 De(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function Se(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function xe(e){this.__data__=new De(e)}function ke(e,t,n){var r=e[t];ee.call(e,t)&&Fe(r,n)&&(void 0!==n||t in e)||(e[t]=n)}function Me(e,t){for(var n=e.length;n--;)if(Fe(e[n][0],t))return n;return-1}function Pe(e,t,n,r,o,f,w){var M;if(r&&(M=f?r(e,o,f,w):r(e)),void 0!==M)return M;if(!Ke(e))return e;var P=We(e);if(P){if(M=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,M)}else{var N=Ve(e),A=N==c||N==s;if(qe(e))return function(e,t){if(t)return e.slice();var n=new e.constructor(e.length);return e.copy(n),n}(e,t);if(N==v||N==a||A&&!f){if(W(e))return f?e:{};if(M=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 Ne(e,Ue(e),t)}(e,function(e,t){return e&&Ne(t,Ye(t),e)}(M,e))}else{if(!R[N])return f?e:{};M=function(e,t,n,r){var o,a=e.constructor;switch(t){case E:return Re(e);case i:case l:return new a(+e);case y:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,r);case I:case b:case C:case T:case _:case O:case D:case S:case x:return function(e,t){var n=t?Re(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}(e,r);case d:return function(e,t,n){return F(t?n(G(e),!0):G(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,k.exec(e));return t.lastIndex=e.lastIndex,t}(e);case h:return function(e,t,n){return F(t?n(z(e),!0):z(e),H,new e.constructor)}(e,r,n);case m:return o=e,_e?Object(_e.call(o)):{}}}(e,N,Pe,t)}}w||(w=new xe);var L=w.get(e);if(L)return L;if(w.set(e,M),!P)var U=n?function(e){return function(e,t,n){var r=t(e);return We(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]),ke(M,a,Pe(o,t,n,r,a,e,w))})),M}function Re(e){var t=new e.constructor(e.byteLength);return new ae(t).set(new ae(e)),t}function Ne(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;ke(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)||W(e)?ne:M).test(He(e));var t}(n)?n:void 0}Oe.prototype.clear=function(){this.__data__=we?we(null):{}},Oe.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},Oe.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},Oe.prototype.has=function(e){var t=this.__data__;return we?void 0!==t[e]:ee.call(t,e)},Oe.prototype.set=function(e,t){return this.__data__[e]=we&&void 0===t?r:t,this},De.prototype.clear=function(){this.__data__=[]},De.prototype.delete=function(e){var t=this.__data__,n=Me(t,e);return!(n<0||(n==t.length-1?t.pop():se.call(t,n,1),0))},De.prototype.get=function(e){var t=this.__data__,n=Me(t,e);return n<0?void 0:t[n][1]},De.prototype.has=function(e){return Me(this.__data__,e)>-1},De.prototype.set=function(e,t){var n=this.__data__,r=Me(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Se.prototype.clear=function(){this.__data__={hash:new Oe,map:new(ge||De),string:new Oe}},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 De},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 De){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?q(de,Object):function(){return[]},Ve=function(e){return te.call(e)};function Be(e,t){return!!(t=null==t?o:t)&&("number"==typeof e||P.test(e))&&e>-1&&e%1==0&&e<t}function je(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||J)}function He(e){if(null!=e){try{return Q.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function Fe(e,t){return e===t||e!=e&&t!=t}(fe&&Ve(new fe(new ArrayBuffer(1)))!=y||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?He(n):void 0;if(r)switch(r){case Ee:return y;case ye:return d;case Ie:return f;case be:return h;case Ce:return w}return t});var We=Array.isArray;function Ge(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}(e.length)&&!ze(e)}var qe=ue||function(){return!1};function ze(e){var t=Ke(e)?te.call(e):"";return t==c||t==s}function Ke(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function Ye(e){return Ge(e)?function(e,t){var n=We(e)||function(e){return function(e){return function(e){return!!e&&"object"==typeof e}(e)&&Ge(e)}(e)&&ee.call(e,"callee")&&(!ce.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 Pe(e,!0,!0)}},485:function(e,t,n){var r,o="__lodash_hash_undefined__",a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/,l=/^\./,c=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,d=/^\[object .+?Constructor\]$/,u="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,v="object"==typeof self&&self&&self.Object===Object&&self,f=u||v||Function("return this")(),g=Array.prototype,h=Function.prototype,p=Object.prototype,m=f["__core-js_shared__"],w=(r=/[^.]+$/.exec(m&&m.keys&&m.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"",E=h.toString,y=p.hasOwnProperty,I=p.toString,b=RegExp("^"+E.call(y).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),C=f.Symbol,T=g.splice,_=N(f,"Map"),O=N(Object,"create"),D=C?C.prototype:void 0,S=D?D.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 k(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 P(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 R(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 N(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 E.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}(n)?n:void 0}x.prototype.clear=function(){this.__data__=O?O(null):{}},x.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},x.prototype.get=function(e){var t=this.__data__;if(O){var n=t[e];return n===o?void 0:n}return y.call(t,e)?t[e]:void 0},x.prototype.has=function(e){var t=this.__data__;return O?void 0!==t[e]:y.call(t,e)},x.prototype.set=function(e,t){return this.__data__[e]=O&&void 0===t?o:t,this},k.prototype.clear=function(){this.__data__=[]},k.prototype.delete=function(e){var t=this.__data__,n=P(t,e);return!(n<0||(n==t.length-1?t.pop():T.call(t,n,1),0))},k.prototype.get=function(e){var t=this.__data__,n=P(t,e);return n<0?void 0:t[n][1]},k.prototype.has=function(e){return P(this.__data__,e)>-1},k.prototype.set=function(e,t){var n=this.__data__,r=P(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},M.prototype.clear=function(){this.__data__={hash:new x,map:new(_||k),string:new x}},M.prototype.delete=function(e){return R(this,e).delete(e)},M.prototype.get=function(e){return R(this,e).get(e)},M.prototype.has=function(e){return R(this,e).has(e)},M.prototype.set=function(e,t){return R(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(c,(function(e,t,r,o){n.push(r?o.replace(s,"$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||M),n}U.Cache=M;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}},47:function(e){var t=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function c(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{c({},"")}catch(e){c=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var o=t&&t.prototype instanceof p?t:p,a=Object.create(o.prototype),i=new S(r||[]);return a._invoke=function(e,t,n){var r=u;return function(o,a){if(r===f)throw new Error("Generator is already running");if(r===g){if("throw"===o)throw a;return k()}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var l=_(i,n);if(l){if(l===h)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===u)throw r=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var c=d(e,t,n);if("normal"===c.type){if(r=n.done?g:v,c.arg===h)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=g,n.method="throw",n.arg=c.arg)}}}(e,n,i),a}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var u="suspendedStart",v="suspendedYield",f="executing",g="completed",h={};function p(){}function m(){}function w(){}var E={};c(E,a,(function(){return this}));var y=Object.getPrototypeOf,I=y&&y(y(x([])));I&&I!==n&&r.call(I,a)&&(E=I);var b=w.prototype=p.prototype=Object.create(E);function C(e){["next","throw","return"].forEach((function(t){c(e,t,(function(e){return this._invoke(t,e)}))}))}function T(e,t){function n(o,a,i,l){var c=d(e[o],e,a);if("throw"!==c.type){var s=c.arg,u=s.value;return u&&"object"==typeof u&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(u).then((function(e){s.value=e,i(s)}),(function(e){return n("throw",e,i,l)}))}l(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 _(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,_(e,n),"throw"===n.method))return h;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=d(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,h;var a=o.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,h):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function O(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 D(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var n=e[a];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return i.next=i}}return{next:k}}function k(){return{value:t,done:!0}}return m.prototype=w,c(b,"constructor",w),c(w,"constructor",m),m.displayName=c(w,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===m||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,w):(e.__proto__=w,c(e,l,"GeneratorFunction")),e.prototype=Object.create(b),e},e.awrap=function(e){return{__await:e}},C(T.prototype),c(T.prototype,i,(function(){return this})),e.AsyncIterator=T,e.async=function(t,n,r,o,a){void 0===a&&(a=Promise);var i=new T(s(t,n,r,o),a);return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},C(b),c(b,l,"Generator"),c(b,a,(function(){return this})),c(b,"toString",(function(){return"[object Generator]"})),e.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}},e.values=x,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(D),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},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 n=this;function o(r,o){return l.type="throw",l.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),s=r.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):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),h},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),D(n),h}},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;D(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:x(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),h}},e}(e.exports);try{regeneratorRuntime=t}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=t:Function("r","regeneratorRuntime = r")(t)}},396:function(e){"use strict";e.exports=o},807:function(e){"use strict";e.exports=s},847:function(e){"use strict";e.exports=d},348:function(e){"use strict";e.exports=a},441:function(e){"use strict";e.exports=n},70:function(e){"use strict";e.exports=r},474:function(e){"use strict";e.exports=l},795:function(e){"use strict";e.exports=t},610:function(e){"use strict";e.exports=i},953:function(t){"use strict";t.exports=e},976:function(e){"use strict";e.exports=c}},v={};function f(e){var t=v[e];if(void 0!==t)return t.exports;var n=v[e]={id:e,loaded:!1,exports:{}};return u[e](n,n.exports,f),n.loaded=!0,n.exports}f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var g={};return function(){"use strict";f.r(g),f.d(g,{AngleTool:function(){return ig},AnnotationTool:function(){return hs},ArrowAnnotateTool:function(){return og},BaseTool:function(){return va},BidirectionalTool:function(){return eg},BrushTool:function(){return md},CONSTANTS:function(){return d},CircleScissorsTool:function(){return _g},CobbAngleTool:function(){return sg},CrosshairsTool:function(){return Gf},DragProbeTool:function(){return hf},EllipticalROITool:function(){return Zf},Enums:function(){return z},LengthTool:function(){return Nf},MIPJumpToClickTool:function(){return Mf},MagnifyTool:function(){return vg},PaintFillTool:function(){return Mg},PanTool:function(){return af},PlanarFreehandROITool:function(){return Dv},PlanarRotateTool:function(){return Tf},ProbeTool:function(){return ff},RectangleROIStartEndThresholdTool:function(){return Ms},RectangleROIThresholdTool:function(){return Ss},RectangleROITool:function(){return Os},RectangleScissorsTool:function(){return Cg},ReferenceCursors:function(){return gg},ReferenceLines:function(){return Kf},ReferenceLinesTool:function(){return Kf},ScaleOverlayTool:function(){return mg},SegmentationDisplayTool:function(){return yi},SphereScissorsTool:function(){return Dg},StackScrollMouseWheelTool:function(){return Of},StackScrollTool:function(){return If},Synchronizer:function(){return qi},SynchronizerManager:function(){return l},ToolGroupManager:function(){return s},TrackballRotateTool:function(){return cf},Types:function(){return j},VolumeRotateMouseWheelTool:function(){return xf},WindowLevelTool:function(){return mf},ZoomTool:function(){return Ef},addTool:function(){return Vi},annotation:function(){return F},cancelActiveManipulations:function(){return Hi},cursors:function(){return B},destroy:function(){return Ai},drawing:function(){return v},init:function(){return Ni},removeTool:function(){return Bi},segmentation:function(){return q},state:function(){return ze},synchronizers:function(){return u},utilities:function(){return V}});var e={};f.r(e),f.d(e,{checkAndDefineIsLockedProperty:function(){return ce},getAnnotationsLocked:function(){return ae},getAnnotationsLockedCount:function(){return le},isAnnotationLocked:function(){return ie},setAnnotationLocked:function(){return re},unlockAllAnnotations:function(){return oe}});var t={};f.r(t),f.d(t,{deselectAnnotation:function(){return we},getAnnotationsSelected:function(){return Ee},getAnnotationsSelectedByToolName:function(){return ye},getAnnotationsSelectedCount:function(){return be},isAnnotationSelected:function(){return Ie},setAnnotationSelected:function(){return pe}});var n={};f.r(n),f.d(n,{checkAndDefineIsVisibleProperty:function(){return ke},isAnnotationVisible:function(){return xe},setAnnotationVisibility:function(){return De},showAllAnnotations:function(){return Se}});var r={};f.r(r),f.d(r,{addAnnotation:function(){return tt},getAnnotation:function(){return ot},getAnnotationManager:function(){return Ze},getAnnotations:function(){return et},getNumberOfAnnotations:function(){return nt},removeAllAnnotations:function(){return at},removeAnnotation:function(){return rt},resetAnnotationManager:function(){return Qe},setAnnotationManager:function(){return Xe}});var o={};f.r(o),f.d(o,{triggerSegmentationDataModified:function(){return yt},triggerSegmentationModified:function(){return Et},triggerSegmentationRemoved:function(){return pt},triggerSegmentationRepresentationModified:function(){return wt},triggerSegmentationRepresentationRemoved:function(){return mt}});var a={};f.r(a),f.d(a,{addColorLUT:function(){return Wt},addSegmentation:function(){return Ot},addSegmentationRepresentation:function(){return At},getColorLUT:function(){return Ft},getDefaultSegmentationStateManager:function(){return Ct},getGlobalConfig:function(){return Lt},getSegmentSpecificRepresentationConfig:function(){return Rt},getSegmentation:function(){return Tt},getSegmentationRepresentationByUID:function(){return Vt},getSegmentationRepresentationSpecificConfig:function(){return Pt},getSegmentationRepresentations:function(){return Dt},getSegmentations:function(){return _t},getToolGroupIdsWithSegmentation:function(){return St},getToolGroupSpecificConfig:function(){return xt},removeColorLUT:function(){return Ht},removeSegmentation:function(){return Bt},removeSegmentationRepresentation:function(){return jt},setGlobalConfig:function(){return Ut},setSegmentSpecificRepresentationConfig:function(){return Nt},setSegmentationRepresentationSpecificConfig:function(){return Mt},setToolGroupSpecificConfig:function(){return kt}});var i={};f.r(i),f.d(i,{copyPoints:function(){return Gn},copyPointsList:function(){return Wn},getDeltaDistance:function(){return jn},getDeltaDistanceBetweenIPoints:function(){return Fn},getDeltaPoints:function(){return Bn},getDeltaRotation:function(){return Hn},getMeanPoints:function(){return qn},getMeanTouchPoints:function(){return zn}});var l={};f.r(l),f.d(l,{createSynchronizer:function(){return zi},destroy:function(){return Ki},destroySynchronizer:function(){return Ji},getAllSynchronizers:function(){return $i},getSynchronizer:function(){return Yi},getSynchronizersForViewport:function(){return zo}});var c={};f.r(c),f.d(c,{hideElementCursor:function(){return Vl},initElementCursor:function(){return Al},resetElementCursor:function(){return Ul},setElementCursor:function(){return Ll}});var s={};f.r(s),f.d(s,{createToolGroup:function(){return Kl},destroy:function(){return Pi},destroyToolGroup:function(){return ki},getAllToolGroups:function(){return Yl},getToolGroup:function(){return Xo},getToolGroupForViewport:function(){return Dr},getToolGroupsWithToolName:function(){return $e}});var d={};f.r(d),f.d(d,{COLOR_LUT:function(){return lt}});var u={};f.r(u),f.d(u,{createCameraPositionSynchronizer:function(){return Zl},createStackImageSynchronizer:function(){return pc},createVOISynchronizer:function(){return Ql},createZoomPanSynchronizer:function(){return nc}});var v={};f.r(v),f.d(v,{draw:function(){return Or},drawArrow:function(){return Lc},drawCircle:function(){return yc},drawEllipse:function(){return Ic},drawHandles:function(){return bc},drawLine:function(){return Cc},drawLinkedTextBox:function(){return Nc},drawPolyline:function(){return _c},drawRect:function(){return Ac},drawTextBox:function(){return kc}});var h={};f.r(h),f.d(h,{getActiveSegmentationRepresentation:function(){return ad},setActiveSegmentationRepresentation:function(){return id}});var p={};f.r(p),f.d(p,{getLockedSegments:function(){return sd},isSegmentIndexLocked:function(){return ld},setSegmentIndexLocked:function(){return cd}});var m={};f.r(m),f.d(m,{getActiveSegmentIndex:function(){return ud},setActiveSegmentIndex:function(){return dd}});var w={};f.r(w),f.d(w,{addColorLUT:function(){return vd},getColorForSegmentIndex:function(){return gd},setColorForSegmentIndex:function(){return hd},setColorLUT:function(){return fd}});var E={};f.r(E),f.d(E,{createLabelmapVolumeForViewport:function(){return Hs},createMergedLabelmapForIndex:function(){return Vs},floodFill:function(){return zs},getBrushSizeForToolGroup:function(){return yd},getBrushThresholdForToolGroup:function(){return bd},getDefaultRepresentationConfig:function(){return js},isValidRepresentationConfig:function(){return Bs},rectangleROIThresholdVolumeByRange:function(){return Us},setBrushSizeForToolGroup:function(){return Ed},setBrushThresholdForToolGroup:function(){return Id},thresholdVolumeByRange:function(){return Jc},triggerSegmentationRender:function(){return Ti}});var y={};f.r(y),f.d(y,{getTextBoxCoordsCanvas:function(){return ys}});var I={};f.r(I),f.d(I,{findClosestPoint:function(){return Mc},liangBarksyClip:function(){return _d}});var b={};f.r(b),f.d(b,{getCanvasEllipseCorners:function(){return $s},pointInEllipse:function(){return Js}});var C={};f.r(C),f.d(C,{distanceToPoint:function(){return ws},distanceToPointSquared:function(){return ms},intersectLine:function(){return Dd}});var T={};f.r(T),f.d(T,{distanceToPoint:function(){return Es}});var _={};f.r(_),f.d(_,{addCanvasPointsToArray:function(){return Ld},calculateAreaOfPoints:function(){return Vd},getClosestIntersectionWithPolyline:function(){return xd},getFirstIntersectionWithPolyline:function(){return Sd},getSubPixelSpacingAndXYDirections:function(){return Nd},pointCanProjectOnLine:function(){return Ud},pointsAreWithinCloseContourProximity:function(){return Ad}});var O={};f.r(O),f.d(O,{distanceToPoint:function(){return Bd}});var D={};f.r(D),f.d(D,{ellipse:function(){return b},lineSegment:function(){return C},point:function(){return O},polyline:function(){return _},rectangle:function(){return T},vec2:function(){return I}});var S={};f.r(S),f.d(S,{default:function(){return qd},filterAnnotationsForDisplay:function(){return cs},filterAnnotationsWithinSlice:function(){return ls},getPointInLineOfSightWithCriteria:function(){return Fd},getWorldWidthAndHeightFromCorners:function(){return Is}});var x={};f.r(x),f.d(x,{filterViewportsWithFrameOfReferenceUID:function(){return Zc},filterViewportsWithParallelNormals:function(){return rs},filterViewportsWithToolEnabled:function(){return ts},getViewportIdsWithToolToRender:function(){return os}});var k={};f.r(k),f.d(k,{getOrientationStringLPS:function(){return zd},invertOrientationStringLPS:function(){return Kd}});var M={};f.r(M),f.d(M,{Events:function(){return Yd},addToolState:function(){return Jd},getToolState:function(){return Zd},playClip:function(){return Qd},stopClip:function(){return eu}});var P={};f.r(P),f.d(P,{extend2DBoundingBoxInViewAxis:function(){return Ps},getBoundingBoxAroundShape:function(){return Kc}});var R={};f.r(R),f.d(R,{default:function(){return xv},interpolateAnnotation:function(){return Sv}});var N={};f.r(N),f.d(N,{getBoundsIJKFromRectangleAnnotations:function(){return Rs}});var A={};f.r(A),f.d(A,{disable:function(){return Hv},enable:function(){return jv},getConfiguration:function(){return Fv},setConfiguration:function(){return Wv}});var L={};f.r(L),f.d(L,{isViewportPreScaled:function(){return Cs},jumpToSlice:function(){return dc},jumpToWorld:function(){return Gv}});var U={};f.r(U),f.d(U,{getDataInTime:function(){return qv}});var V={};f.r(V),f.d(V,{boundingBox:function(){return P},calibrateImageSpacing:function(){return qc},cine:function(){return M},clip:function(){return oc},debounce:function(){return Fc},deepMerge:function(){return da},drawing:function(){return y},dynamicVolume:function(){return U},getAnnotationNearPoint:function(){return Vc},getAnnotationNearPointOnEnabledElement:function(){return Bc},isObject:function(){return Hc},jumpToSlice:function(){return dc},math:function(){return D},orientation:function(){return k},planar:function(){return S},planarFreehandROITool:function(){return R},pointInShapeCallback:function(){return zc},pointInSurroundingSphereCallback:function(){return $c},rectangleROITool:function(){return N},scroll:function(){return ac},segmentation:function(){return E},stackPrefetch:function(){return A},throttle:function(){return Wc},touch:function(){return i},triggerAnnotationRender:function(){return Ar},triggerAnnotationRenderForViewportIds:function(){return Yo},triggerEvent:function(){return Y.triggerEvent},viewport:function(){return L},viewportFilters:function(){return x}});var B={};f.r(B),f.d(B,{CursorNames:function(){return Kv},CursorSVG:function(){return pl},ImageMouseCursor:function(){return cl},MouseCursor:function(){return tl},SVGMouseCursor:function(){return Sl},elementCursor:function(){return c},registerCursor:function(){return wl},setCursorForElement:function(){return zv}});var j={};f.r(j);var H={};f.r(H),f.d(H,{getFont:function(){return Yv},getState:function(){return ss},style:function(){return Cl}});var F={};f.r(F),f.d(F,{FrameOfReferenceSpecificAnnotationManager:function(){return We},config:function(){return H},locking:function(){return e},selection:function(){return t},state:function(){return r},visibility:function(){return n}});var W={};f.r(W),f.d(W,{getSegmentationVisibility:function(){return nf},setSegmentationVisibility:function(){return tf},setVisibilityForSegmentIndex:function(){return rf}});var G={};f.r(G),f.d(G,{color:function(){return w},getGlobalConfig:function(){return Ca},getGlobalRepresentationConfig:function(){return _a},getSegmentSpecificConfig:function(){return Ma},getSegmentationRepresentationSpecificConfig:function(){return xa},getToolGroupSpecificConfig:function(){return Da},setGlobalConfig:function(){return Ta},setGlobalRepresentationConfig:function(){return Oa},setSegmentSpecificConfig:function(){return Pa},setSegmentationRepresentationSpecificConfig:function(){return ka},setToolGroupSpecificConfig:function(){return Sa},visibility:function(){return W}});var q={};f.r(q),f.d(q,{activeSegmentation:function(){return h},addSegmentationRepresentations:function(){return ef},addSegmentations:function(){return Jv},config:function(){return G},removeSegmentationsFromToolGroup:function(){return xi},segmentIndex:function(){return m},segmentLocking:function(){return p},state:function(){return a},triggerSegmentationEvents:function(){return o}});var z={};f.r(z),f.d(z,{AnnotationStyleStates:function(){return ll},Events:function(){return $},KeyboardBindings:function(){return $r},MouseBindings:function(){return Yr},SegmentationRepresentations:function(){return dt},Swipe:function(){return Rn},ToolModes:function(){return Ke}});var K,Y=f(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",e.TOUCH_START="CORNERSTONE_TOOLS_TOUCH_START",e.TOUCH_START_ACTIVATE="CORNERSTONE_TOOLS_TOUCH_START_ACTIVATE",e.TOUCH_PRESS="CORNERSTONE_TOOLS_TOUCH_PRESS",e.TOUCH_DRAG="CORNERSTONE_TOOLS_TOUCH_DRAG",e.TOUCH_END="CORNERSTONE_TOOLS_TOUCH_END",e.TOUCH_TAP="CORNERSTONE_TOOLS_TAP",e.TOUCH_SWIPE="CORNERSTONE_TOOLS_SWIPE"}(K||(K={}));var $=K;function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Z(e,t,n){return t&&J(e.prototype,t),n&&J(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function X(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=f(907),te=f.n(ee),ne=new Set;function re(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=se();e&&(t?de(e,ne,n):ue(e,ne,n)),ve(n,ne)}function oe(){var e=se();!function(e,t){e.forEach((function(n){ue(n,e,t)}))}(ne,e),ve(e,ne)}function ae(){return Array.from(ne)}function ie(e){return ne.has(e)}function le(){return ne.size}function ce(e){if(e){var t=!!e.isLocked;(function(e){var t=Object.getOwnPropertyDescriptor(e,"isLocked");return t?t.configurable&&(t.set!==fe||t.get!==ge):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isLocked",{configurable:!1,enumerable:!0,set:fe,get:ge}),re(e,t)}}function se(){return Object.freeze({added:[],removed:[],locked:[]})}function de(e,t,n){t.has(e)||(t.add(e),n.added.push(e))}function ue(e,t,n){t.delete(e)&&n.removed.push(e)}function ve(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.locked.push(t)})),(0,Y.triggerEvent)(Y.eventTarget,$.ANNOTATION_LOCK_CHANGE,e))}function fe(e){re(this,e)}function ge(){return ie(this)}var he=new Set;function pe(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t?me(e,n):we(e)}function me(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ce();t||Te(he,n),e&&!he.has(e)&&(he.add(e),n.added.push(e)),_e(n,he)}function we(e){var t=Ce();e?he.delete(e)&&t.removed.push(e):Te(he,t),_e(t,he)}function Ee(){return Array.from(he)}function ye(e){return Ee().filter((function(t){return ot(t).metadata.toolName===e}))}function Ie(e){return he.has(e)}function be(){return he.size}function Ce(){return Object.freeze({added:[],removed:[],selection:[]})}function Te(e,t){e.forEach((function(n){e.delete(n)&&t.removed.push(n)}))}function _e(e,t){(e.added.length>0||e.removed.length>0)&&(t.forEach((function(t){e.selection.push(t)})),(0,Y.triggerEvent)(Y.eventTarget,$.ANNOTATION_SELECTION_CHANGE,e))}var Oe=new Set;function De(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=Me();e&&(t?Pe(e,Oe,n):Re(e,Oe,n)),Ne(n)}function Se(){var e=Me();Oe.forEach((function(t){Pe(t,Oe,e)})),Ne(e)}function xe(e){if(ot(e))return!Oe.has(e)}function ke(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!==Ae||t.get!==Le):Object.isExtensible(e)})(e)&&Object.defineProperty(e,"isVisible",{configurable:!1,enumerable:!0,set:Ae,get:Le}),De(e.annotationUID,n)}}function Me(){return Object.freeze({lastVisible:[],lastHidden:[],hidden:[]})}function Pe(e,t,n){t.delete(e)&&n.lastVisible.push(e)}function Re(e,t,n){t.has(e)||(t.add(e),Ie(e)&&we(e),n.lastHidden.push(e))}function Ne(e){(e.lastHidden.length>0||e.lastVisible.length>0)&&(Oe.forEach((function(t){e.hidden.push(t)})),(0,Y.triggerEvent)(Y.eventTarget,$.ANNOTATION_VISIBILITY_CHANGE,e))}function Ae(e){De(this.annotationUID,e)}function Le(){return xe(this.annotationUID)}function Ue(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 Ve(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)?Ve(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 Ve(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 Be,je,He=Z((function e(t){var n=this;X(this,e),Q(this,"annotations",void 0),Q(this,"uid",void 0),Q(this,"getGroupKey",(function(e){if("string"==typeof e)return e;var t=e,n=(0,Y.getEnabledElement)(t);if(!n)throw new Error("Element not enabled, you must have an enabled element if you are not providing a FrameOfReferenceUID");return n.FrameOfReferenceUID})),Q(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)}))}))})),Q(this,"getFramesOfReference",(function(){return Object.keys(n.annotations)})),Q(this,"getAnnotations",(function(e,t){var r=n.annotations;return r[e]?t?r[e][t]:r[e]:[]})),Q(this,"getAnnotation",(function(e){var t=n.annotations;for(var r in t){var o=t[r];for(var a in o){var i,l=Ue(o[a]);try{for(l.s();!(i=l.n()).done;){var c=i.value;if(e===c.annotationUID)return c}}catch(e){l.e(e)}finally{l.f()}}}})),Q(this,"getNumberOfAnnotations",(function(e,t){var r=n.getAnnotations(e,t);if(!r.length)return 0;if(t)return r.length;var o=0;for(var a in r)o+=r[a].length;return o})),Q(this,"addAnnotation",(function(e,t){var r=e.metadata,o=r.FrameOfReferenceUID,a=r.toolName;t=t||o;var i=n.annotations,l=i[t];l||(i[t]={},l=i[t]);var c=l[a];c||(l[a]=[],c=l[a]),c.push(e),ce(e),ke(e)})),Q(this,"removeAnnotation",(function(e){var t=n.annotations;for(var r in t){var o=t[r];for(var a in o){var i=o[a],l=i.findIndex((function(t){return t.annotationUID===e}));-1!==l&&(i.splice(l,1),0===i.length&&delete o[a])}0===Object.keys(o).length&&delete t[r]}})),Q(this,"removeAnnotations",(function(e,t){var r=n.annotations;r[e]&&(t?delete r[e][t]:delete r[e])})),Q(this,"saveAnnotations",(function(e,t){var r=n.annotations;if(e&&t){var o=r[e];if(!o)return;var a=o[t];return te()(a)}if(e){var i=r[e];return te()(i)}return te()(r)})),Q(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=te()(e)})),Q(this,"getNumberOfAllAnnotations",(function(){var e=0,t=n.annotations;for(var r in t){var o=t[r];for(var a in o)e+=o[a].length}return e})),Q(this,"removeAllAnnotations",(function(){n.annotations={}})),t||(t=Y.utilities.uuidv4()),this.annotations={},this.uid=t,Y.eventTarget.addEventListener(Y.Enums.Events.IMAGE_VOLUME_MODIFIED,this._imageVolumeModifiedHandler)})),Fe=new He("DEFAULT"),We=He,Ge={},qe={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Ge,enabledElements:[],handleRadius:6},ze={isInteractingWithTool:!1,isMultiPartToolActive:!1,tools:{},toolGroups:[],synchronizers:[],svgNodeCache:Ge,enabledElements:[],handleRadius:6};(je=Be||(Be={})).Active="Active",je.Passive="Passive",je.Enabled="Enabled",je.Disabled="Disabled";var Ke=Be,Ye=[Ke.Active,Ke.Passive,Ke.Enabled],$e=function(e){return ze.toolGroups.filter((function(t){for(var n=t.toolOptions,r=Object.keys(n),o=0;o<r.length;o++)if(e===r[o]&&n[e]&&Ye.includes(n[e].mode))return!0;return!1}))},Je=Fe;function Ze(){return Je}function Xe(e){Je=e}function Qe(){Je=Fe}function et(e,t){var n=Ze(),r=n.getGroupKey(t);return n.getAnnotations(r,e)}function tt(e,t){void 0===e.annotationUID&&(e.annotationUID=Y.utilities.uuidv4());var n=Ze(),r=n.getGroupKey(t);return n.addAnnotation(e,r),t instanceof HTMLDivElement&&function(e,t){var n=(0,Y.getEnabledElement)(t),r=n.renderingEngine,o=n.viewportId,a=$.ANNOTATION_ADDED,i={annotation:e,viewportId:o,renderingEngineId:r.id};(0,Y.triggerEvent)(Y.eventTarget,a,i)}(e,t),function(e){var t=e.metadata.toolName,n=$e(t);if(n.length){var r=[];if(n.forEach((function(t){t.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,o=t.viewportId,a=(0,Y.getEnabledElementByIds)(o,n).FrameOfReferenceUID;e.metadata.FrameOfReferenceUID===a&&r.push(t)}))})),r.length){var o=$.ANNOTATION_ADDED;r.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,a={annotation:e,viewportId:r,renderingEngineId:n};(0,Y.triggerEvent)(Y.eventTarget,o,a)}))}}}(e),e.annotationUID}function nt(e,t){var n=Ze(),r=n.getGroupKey(t);return n.getNumberOfAnnotations(r,e)}function rt(e){var t=Ze(),n=t.getAnnotation(e);if(n){t.removeAnnotation(e);var r=$.ANNOTATION_REMOVED,o={annotation:n,annotationManagerUID:t.uid};(0,Y.triggerEvent)(Y.eventTarget,r,o)}}function ot(e){return Ze().getAnnotation(e)}function at(){Ze().removeAllAnnotations()}var it,lt=[[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]],ct={renderOutline:!0,outlineWidthActive:3,outlineWidthInactive:2,renderFill:!0,renderFillInactive:!0,fillAlpha:.7,fillAlphaInactive:.65,outlineOpacity:1,outlineOpacityInactive:.85},st=function(){return ct};!function(e){e.Labelmap="LABELMAP",e.Contour="CONTOUR"}(it||(it={}));var dt=it;function ut(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 vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ft=st(),gt={colorLUT:[],segmentations:[],globalConfig:{renderInactiveSegmentations:!0,representations:Q({},dt.Labelmap,ft)},toolGroups:{}},ht=new(function(){function e(t){X(this,e),Q(this,"state",void 0),Q(this,"uid",void 0),t||(t=Y.utilities.uuidv4()),this.state=te()(gt),this.uid=t}return Z(e,[{key:"getState",value:function(){return this.state}},{key:"getToolGroups",value:function(){return Object.keys(this.state.toolGroups)}},{key:"getColorLUT",value:function(e){return this.state.colorLUT[e]}},{key:"resetState",value:function(){this.state=te()(gt)}},{key:"getSegmentation",value:function(e){return this.state.segmentations.find((function(t){return t.segmentationId===e}))}},{key:"addSegmentation",value:function(e){if(this._initDefaultColorLUTIfNecessary(),this.getSegmentation(e.segmentationId))throw new Error("Segmentation with id ".concat(e.segmentationId," already exists"));this.state.segmentations.push(e)}},{key:"getSegmentationRepresentations",value:function(e){var t=this.state.toolGroups[e];if(t)return t.segmentationRepresentations}},{key:"addSegmentationRepresentation",value:function(e,t){this.state.toolGroups[e]||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{}}),this.state.toolGroups[e].segmentationRepresentations.push(t),this._handleActiveSegmentation(e,t)}},{key:"getGlobalConfig",value:function(){return this.state.globalConfig}},{key:"setGlobalConfig",value:function(e){this.state.globalConfig=e}},{key:"getSegmentationRepresentationByUID",value:function(e,t){return this.getSegmentationRepresentations(e).find((function(e){return e.segmentationRepresentationUID===t}))}},{key:"removeSegmentation",value:function(e){this.state.segmentations=this.state.segmentations.filter((function(t){return t.segmentationId!==e}))}},{key:"removeSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No viewport specific segmentation state found for viewport ".concat(e));var r=n.findIndex((function(e){return e.segmentationRepresentationUID===t}));-1===r&&console.warn("No viewport specific segmentation state data found for viewport ".concat(e," and segmentation data UID ").concat(t));var o=n[r];n.splice(r,1),this._handleActiveSegmentation(e,o)}},{key:"setActiveSegmentationRepresentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);if(!n||!n.length)throw new Error("No segmentation data found for toolGroupId: ".concat(e));var r=n.find((function(e){return e.segmentationRepresentationUID===t}));if(!r)throw new Error("No segmentation data found for segmentation data UID ".concat(t));r.active=!0,this._handleActiveSegmentation(e,r)}},{key:"getToolGroupSpecificConfig",value:function(e){var t=this.state.toolGroups[e];if(t)return t.config}},{key:"getSegmentationRepresentationSpecificConfig",value:function(e,t){var n=this.getSegmentationRepresentationByUID(e,t);if(n)return n.segmentationRepresentationSpecificConfig}},{key:"setSegmentationRepresentationSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentationRepresentationSpecificConfig=n)}},{key:"getSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);if(r)return r.segmentSpecificConfig[n]}},{key:"setSegmentSpecificConfig",value:function(e,t,n){var r=this.getSegmentationRepresentationByUID(e,t);r&&(r.segmentSpecificConfig=n)}},{key:"setSegmentationRepresentationConfig",value:function(e,t){var n=this.state.toolGroups[e];n||(this.state.toolGroups[e]={segmentationRepresentations:[],config:{renderInactiveSegmentations:!0,representations:{}}},n=this.state.toolGroups[e]),n.config=vt(vt({},n.config),t)}},{key:"addColorLUT",value:function(e,t){this.state.colorLUT[t]&&console.log("Color LUT table already exists, overwriting"),this.state.colorLUT[t]=e}},{key:"removeColorLUT",value:function(e){delete this.state.colorLUT[e]}},{key:"_handleActiveSegmentation",value:function(e,t){var n=this.getSegmentationRepresentations(e);0!==n.length&&(1!==n.length&&0!==n.filter((function(e){return e.active})).length?t.active&&n.forEach((function(e){e.segmentationRepresentationUID!==t.segmentationRepresentationUID&&(e.active=!1)})):n[0].active=!0)}},{key:"_initDefaultColorLUTIfNecessary",value:function(){0!==this.state.colorLUT.length&&this.state.colorLUT[0]||this.addColorLUT(lt,0)}}]),e}())("DEFAULT");function pt(e){var t={segmentationId:e};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_REMOVED,t)}function mt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_REPRESENTATION_REMOVED,n)}function wt(e,t){var n={toolGroupId:e,segmentationRepresentationUID:t};t?(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_REPRESENTATION_MODIFIED,n):(Dt(e)||[]).forEach((function(t){var n=t.segmentationRepresentationUID,r={toolGroupId:e,segmentationRepresentationUID:n};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_REPRESENTATION_MODIFIED,r)}))}function Et(e){(e?[e]:_t().map((function(e){return e.segmentationId}))).forEach((function(e){var t={segmentationId:e};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_MODIFIED,t)}))}function yt(e,t){var n={segmentationId:e,modifiedSlicesToUse:t};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_DATA_MODIFIED,n)}function It(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 bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?It(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):It(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ct(){return ht}function Tt(e){return Ct().getSegmentation(e)}function _t(){return Ct().getState().segmentations}function Ot(e,t){var n=Ct(),r=function(e){var t=e.segmentationId,n=e.representation;return{segmentationId:t,cachedStats:{},segmentLabels:{},label:null,segmentsLocked:new Set,type:n.type,activeSegmentIndex:1,representationData:Q({},n.type,bt({},n.data))}}(e);n.addSegmentation(r),t||Et(r.segmentationId)}function Dt(e){return Ct().getSegmentationRepresentations(e)}function St(e){var t=Ct(),n=t.getState(),r=Object.keys(n.toolGroups),o=[];return r.forEach((function(n){t.getSegmentationRepresentations(n).forEach((function(t){t.segmentationId===e&&o.push(n)}))})),o}function xt(e){return Ct().getToolGroupSpecificConfig(e)}function kt(e,t,n){Ct().setSegmentationRepresentationConfig(e,t),n||wt(e)}function Mt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=Ct();o.setSegmentationRepresentationSpecificConfig(e,t,n),r||wt(e,t)}function Pt(e,t){return Ct().getSegmentationRepresentationSpecificConfig(e,t)}function Rt(e,t,n){return Ct().getSegmentSpecificConfig(e,t,n)}function Nt(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=Ct();o.setSegmentSpecificConfig(e,t,n),r||wt(e,t)}function At(e,t,n){Ct().addSegmentationRepresentation(e,t),n||wt(e,t.segmentationRepresentationUID)}function Lt(){return Ct().getGlobalConfig()}function Ut(e,t){Ct().setGlobalConfig(e),t||Et()}function Vt(e,t){return Ct().getSegmentationRepresentationByUID(e,t)}function Bt(e){Ct().removeSegmentation(e),pt(e)}function jt(e,t){Ct().removeSegmentationRepresentation(e,t),mt(e,t)}function Ht(e){Ct().removeColorLUT(e)}function Ft(e){return Ct().getColorLUT(e)}function Wt(e,t){Ct().addColorLUT(e,t)}var Gt=st();function qt(e,t){var n=t||e.currentTarget,r=(0,Y.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)}}Ut({renderInactiveSegmentations:!0,representations:Q({},dt.Labelmap,Gt)},!0);var zt=function(e){var t=e.currentTarget,n=(0,Y.getEnabledElement)(t),r=n.viewportId,o=n.renderingEngineId,a=qt(e,t),i={event:e,eventName:$.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,Y.triggerEvent)(t,$.MOUSE_DOUBLE_CLICK,i)&&(e.stopImmediatePropagation(),e.preventDefault())},Kt=$.MOUSE_MOVE,Yt=function(e){var t=e.currentTarget,n=(0,Y.getEnabledElement)(t),r={renderingEngineId:n.renderingEngineId,viewportId:n.viewportId,camera:{},element:t,currentPoints:qt(e),eventName:Kt,event:e};(0,Y.triggerEvent)(t,Kt,r)},$t=$.MOUSE_DOWN,Jt=$.MOUSE_DOWN_ACTIVATE,Zt=$.MOUSE_CLICK,Xt=$.MOUSE_UP,Qt=$.MOUSE_DRAG,en={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]}},tn={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]}},nn={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function rn(e){var t=qt(e,tn.element),n=fn(tn.element,tn.lastPoints),r=gn(t,n);if(nn.doubleClickTimeout){if(!ln(r.canvas))return;sn()}var o={event:e,eventName:Qt,mouseButton:tn.mouseButton,renderingEngineId:tn.renderingEngineId,viewportId:tn.viewportId,camera:{},element:tn.element,startPoints:vn(tn.startPoints),lastPoints:vn(n),currentPoints:t,deltaPoints:r};(0,Y.triggerEvent)(tn.element,Qt,o),tn.lastPoints=vn(t)}function on(e){if(clearTimeout(tn.preventClickTimeout),nn.doubleClickTimeout)nn.mouseUpEvent?un():(nn.mouseUpEvent=e,tn.element.addEventListener("mousemove",an));else{var t=tn.isClickEvent?Zt:Xt,n=qt(e,tn.element),r=gn(n,tn.lastPoints),o={event:e,eventName:t,mouseButton:tn.mouseButton,element:tn.element,renderingEngineId:tn.renderingEngineId,viewportId:tn.viewportId,camera:{},startPoints:vn(tn.startPoints),lastPoints:vn(tn.lastPoints),currentPoints:n,deltaPoints:r};(0,Y.triggerEvent)(o.element,t,o),un()}document.removeEventListener("mousemove",rn)}function an(e){ln(gn(qt(e,tn.element),fn(tn.element,tn.lastPoints)).canvas)&&(sn(),Yt(e))}function ln(e){return Math.abs(e[0])+Math.abs(e[1])>3}function cn(){tn.isClickEvent=!1}function sn(){nn.ignoreDoubleClick=!0;var e,t,n,r=nn.mouseDownEvent,o=nn.mouseUpEvent;dn(),e=r,t=gn(tn.startPoints,tn.startPoints),n={event:e,eventName:$t,element:tn.element,mouseButton:tn.mouseButton,renderingEngineId:tn.renderingEngineId,viewportId:tn.viewportId,camera:{},startPoints:tn.startPoints,lastPoints:tn.startPoints,currentPoints:tn.startPoints,deltaPoints:t},tn.lastPoints=vn(n.lastPoints),(0,Y.triggerEvent)(n.element,$t,n)&&(0,Y.triggerEvent)(n.element,Jt,n),o&&on(o)}function dn(){nn.doubleClickTimeout&&(clearTimeout(nn.doubleClickTimeout),nn.doubleClickTimeout=null),nn.mouseDownEvent=null,nn.mouseUpEvent=null}function un(){var e,t;document.removeEventListener("mouseup",on),null===(e=tn.element)||void 0===e||e.removeEventListener("mousemove",an),null===(t=tn.element)||void 0===t||t.addEventListener("mousemove",Yt),dn(),tn=JSON.parse(JSON.stringify(en))}function vn(e){return JSON.parse(JSON.stringify(e))}function fn(e,t){var n=(0,Y.getEnabledElement)(e).viewport.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:n}}function gn(e,t){return{page:hn(e.page,t.page),client:hn(e.client,t.client),canvas:hn(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 hn(e,t){return[e[0]-t[0],e[1]-t[1]]}function pn(e){nn.ignoreDoubleClick?(nn.ignoreDoubleClick=!1,e.stopImmediatePropagation(),e.preventDefault()):un()}var mn=function(e){if(!nn.doubleClickTimeout){nn.doubleClickTimeout=setTimeout(sn,400),nn.mouseDownEvent=e,nn.ignoreDoubleClick=!1,tn.element=e.currentTarget,tn.mouseButton=e.button;var t=(0,Y.getEnabledElement)(tn.element),n=t.renderingEngineId,r=t.viewportId;tn.renderingEngineId=n,tn.viewportId=r,tn.preventClickTimeout=setTimeout(cn,tn.clickDelay),tn.element.removeEventListener("mousemove",Yt);var o=qt(e,tn.element);tn.startPoints=vn(o),tn.lastPoints=vn(o),document.addEventListener("mouseup",on),document.addEventListener("mousemove",rn)}};function wn(e){e.removeEventListener("dblclick",zt),e.removeEventListener("mousedown",mn),e.removeEventListener("mousemove",Yt),e.removeEventListener("dblclick",pn,{capture:!0})}var En={enable:function(e){wn(e),e.addEventListener("dblclick",zt),e.addEventListener("mousedown",mn),e.addEventListener("mousemove",Yt),e.addEventListener("dblclick",pn,{capture:!0})},disable:wn},yn=function(e){var t=e.currentTarget,n=(0,Y.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,c=a.pixelX,s=a.pixelY,d=l<0?-1:1,u={event:e,eventName:$.MOUSE_WHEEL,renderingEngineId:r,viewportId:o,element:t,camera:{},detail:e,wheel:{spinX:i,spinY:l,pixelX:c,pixelY:s,direction:d},points:qt(e)};(0,Y.triggerEvent)(t,$.MOUSE_WHEEL,u)}};function In(e){e.removeEventListener("wheel",yn)}var bn,Cn,Tn={enable:function(e){In(e),e.addEventListener("wheel",yn,{passive:!1})},disable:In};function _n(e,t){var n=Date.now();if(e!==bn){if(n-Cn<=2e3)return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1;bn=e}Cn=n}var On=_n.bind(null,0),Dn=_n.bind(null,1);function Sn(e,t,n){var r=n?On:Dn;t.forEach((function(t){e.addEventListener(t,r,{passive:!1})}))}function xn(e,t,n){var r=n?On:Dn;t.forEach((function(t){e.removeEventListener(t,r)}))}var kn=["mousedown","mouseup","mousemove"],Mn=["touchstart","touchend"];function Pn(e){xn(e,kn,0),xn(e,Mn,1)}var Rn,Nn={enable:function(e){Pn(e),Sn(e,kn,0),Sn(e,Mn,1)},disable:Pn};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){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}}function Un(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)||Ln(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 Vn(e,t){var n=t||e.currentTarget,r="touchend"===e.type?e.changedTouches:e.touches;return Object.keys(r).map((function(e){var t=function(e){return[e.clientX,e.clientY]}(r[e]),o=function(e){return[e.pageX,e.pageY]}(r[e]),a=function(e,t){var n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,o);return{page:o,client:t,canvas:a,world:(0,Y.getEnabledElement)(n).viewport.canvasToWorld(a),touch:{identifier:e,radiusX:r[e].radiusX,radiusY:r[e].radiusY,force:r[e].force,rotationAngle:r[e].rotationAngle}}}))}function Bn(e,t){var n,r,o=qn(e),a=qn(t);return{page:Kn(o.page,a.page),client:Kn(o.client,a.client),canvas:Kn(o.canvas,a.canvas),world:(n=o.world,r=a.world,[n[0]-r[0],n[1]-r[1],n[2]-r[2]])}}function jn(e,t){var n=qn(e),r=qn(t);return{page:$n(n.page,r.page),client:$n(n.client,r.client),canvas:$n(n.canvas,r.canvas),world:Jn(n.world,r.world)}}function Hn(e,t){}function Fn(e,t){var n=Yn(e),r=Yn(t);return{page:n.page-r.page,client:n.client-r.client,canvas:n.canvas-r.canvas,world:n.world-r.world}}function Wn(e){return JSON.parse(JSON.stringify(e))}function Gn(e){return JSON.parse(JSON.stringify(e))}function qn(e){return e.reduce((function(t,n){return{page:[t.page[0]+n.page[0]/e.length,t.page[1]+n.page[1]/e.length],client:[t.client[0]+n.client[0]/e.length,t.client[1]+n.client[1]/e.length],canvas:[t.canvas[0]+n.canvas[0]/e.length,t.canvas[1]+n.canvas[1]/e.length],world:[t.world[0]+n.world[0]/e.length,t.world[1]+n.world[1]/e.length,t.world[2]+n.world[2]/e.length]}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]})}function zn(e){return e.reduce((function(t,n){return{page:[t.page[0]+n.page[0]/e.length,t.page[1]+n.page[1]/e.length],client:[t.client[0]+n.client[0]/e.length,t.client[1]+n.client[1]/e.length],canvas:[t.canvas[0]+n.canvas[0]/e.length,t.canvas[1]+n.canvas[1]/e.length],world:[t.world[0]+n.world[0]/e.length,t.world[1]+n.world[1]/e.length,t.world[2]+n.world[2]/e.length],touch:{identifier:null,radiusX:t.touch.radiusX+n.touch.radiusX/e.length,radiusY:t.touch.radiusY+n.touch.radiusY/e.length,force:t.touch.force+n.touch.force/e.length,rotationAngle:t.touch.rotationAngle+n.touch.rotationAngle/e.length}}}),{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:{identifier:null,radiusX:0,radiusY:0,force:0,rotationAngle:0}})}function Kn(e,t){return[e[0]-t[0],e[1]-t[1]]}function Yn(e){for(var t=[],n=0;n<e.length;n++)for(var r=0;r<e.length;r++)n<r&&t.push({page:$n(e[n].page,e[r].page),client:$n(e[n].client,e[r].client),canvas:$n(e[n].canvas,e[r].canvas),world:Jn(e[n].world,e[r].world)});return t.reduce((function(e,n){return{page:e.page+n.page/t.length,client:e.client+n.client/t.length,canvas:e.canvas+n.canvas/t.length,world:e.world+n.world/t.length}}),{page:0,client:0,canvas:0,world:0})}function $n(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function Jn(e,t){return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2))}!function(e){e.UP="UP",e.DOWN="DOWN",e.LEFT="LEFT",e.RIGHT="RIGHT"}(Rn||(Rn={}));var Zn=Y.Settings.getRuntimeSettings(),Xn=$.TOUCH_START,Qn=$.TOUCH_START_ACTIVATE,er=$.TOUCH_PRESS,tr=$.TOUCH_DRAG,nr=$.TOUCH_END,rr=$.TOUCH_TAP,or=$.TOUCH_SWIPE,ar={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:null}],lastPointsList:[{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0],touch:null}],touchStartTimeout:null,touchStartDelay:100,isTouchStart:!1,pressTimeout:null,pressDelay:700,pressMaxDistance:5,taps:0,tapTimeout:null,tapMaxDistance:3,swipeTimeout:null,swipeDistanceThreshold:70},ir=JSON.parse(JSON.stringify(ar));function lr(e,t,n){return Zn.get("debug")&&console.debug(t,n),(0,Y.triggerEvent)(e,t,n)}function cr(e){var t=Vn(e,ir.element),n=dr(ir.element,ir.lastPointsList),r=t.length===n.length?Bn(t,n):Bn(t,t),o=t.length===n.length?Fn(t,n):Fn(t,t),a={event:e,eventName:tr,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},element:ir.element,startPoints:zn(ir.startPointsList),lastPoints:zn(n),currentPoints:zn(t),startPointsList:Wn(ir.startPointsList),lastPointsList:Wn(n),currentPointsList:t,deltaPoints:r,deltaDistance:o};lr(ir.element,tr,a),function(e,t){var n=Un(t.canvas,2),r=n[0],o=n[1];if(Math.abs(r)>ir.swipeDistanceThreshold||Math.abs(o)>ir.swipeDistanceThreshold){var a={event:e,eventName:or,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},element:ir.element,swipe:null};clearTimeout(ir.swipeTimeout),ir.swipeTimeout=setTimeout((function(){Math.abs(r)>Math.abs(o)?a.swipe=r>0?Rn.RIGHT:Rn.LEFT:a.swipe=o>0?Rn.DOWN:Rn.UP,lr(a.element,or,a)}),ir.touchStartDelay)}}(e,r),ir.lastPointsList=Wn(t)}function sr(e){if(clearTimeout(ir.touchStartTimeout),clearTimeout(ir.pressTimeout),clearTimeout(ir.tapTimeout),ir.isTouchStart){var t=Vn(e,ir.element),n=dr(ir.element,ir.lastPointsList),r=t.length===n.length?Bn(t,n):Bn(t,t),o=t.length===n.length?Fn(t,n):Fn(t,t),a={event:e,eventName:nr,element:ir.element,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},startPointsList:Wn(ir.startPointsList),lastPointsList:Wn(n),currentPointsList:t,startPoints:zn(ir.startPointsList),lastPoints:zn(n),currentPoints:zn(t),deltaPoints:r,deltaDistance:o};lr(a.element,nr,a),ir=JSON.parse(JSON.stringify(ar)),document.removeEventListener("touchmove",cr)}else!function(e){var t=Vn(e,ir.element),n=dr(ir.element,ir.lastPointsList);ir.taps>0&&jn(t,n).canvas<ir.tapMaxDistance&&(ir.taps=ir.taps+1),0===ir.taps&&(ir.taps=ir.taps+1),ir.lastPointsList=Wn(t),ir.tapTimeout=setTimeout((function(){var n={event:e,eventName:rr,element:ir.element,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},currentPointsList:t,currentPoints:zn(t),taps:ir.taps};lr(n.element,rr,n),ir=JSON.parse(JSON.stringify(ar))}),ir.touchStartDelay-10)}(e);document.removeEventListener("touchend",sr)}function dr(e,t){var n=(0,Y.getEnabledElement)(e).viewport;return t.map((function(e){var t=n.canvasToWorld(e.canvas);return{page:e.page,client:e.client,canvas:e.canvas,world:t,touch:e.touch}}))}var ur=function(e){ir.element=e.currentTarget;var t=(0,Y.getEnabledElement)(ir.element),n=t.renderingEngineId,r=t.viewportId;ir.renderingEngineId=n,ir.viewportId=r,ir.isTouchStart||(clearTimeout(ir.touchStartTimeout),clearTimeout(ir.pressTimeout),clearTimeout(ir.tapTimeout),ir.touchStartTimeout=setTimeout((function(){!function(e){ir.isTouchStart=!0;var t=Vn(e,ir.element),n=zn(t),r=Bn(t,t),o=Fn(t,t),a={event:e,eventName:Xn,element:ir.element,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},startPointsList:t,lastPointsList:t,currentPointsList:t,startPoints:n,lastPoints:n,currentPoints:n,deltaPoints:r,deltaDistance:o};ir.startPointsList=Wn(a.startPointsList),ir.lastPointsList=Wn(a.lastPointsList),lr(a.element,Xn,a)&&lr(a.element,Qn,a),document.addEventListener("touchmove",cr)}(e)}),ir.touchStartDelay),ir.pressTimeout=setTimeout((function(){!function(e){if(jn(ir.startPointsList,ir.lastPointsList).canvas<ir.pressMaxDistance){var t={event:e,eventName:er,renderingEngineId:ir.renderingEngineId,viewportId:ir.viewportId,camera:{},element:ir.element,startPointsList:Wn(ir.startPointsList),lastPointsList:Wn(ir.lastPointsList),startPoints:Gn(zn(ir.startPointsList)),lastPoints:Gn(zn(ir.lastPointsList))};lr(t.element,er,t)}}(e)}),ir.pressDelay),document.addEventListener("touchend",sr))};function vr(e){Nn.disable(e),e.removeEventListener("touchstart",ur)}var fr={enable:function(e){vr(e),Nn.enable(e),e.addEventListener("touchstart",ur,{passive:!1})},disable:vr},gr={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null},hr={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function pr(e){hr.element=e.currentTarget;var t=(0,Y.getEnabledElement)(hr.element),n=t.renderingEngineId,r=t.viewportId;hr.renderingEngineId=n,hr.viewportId=r,hr.key=e.key,hr.keyCode=e.keyCode,e.preventDefault();var o={renderingEngineId:hr.renderingEngineId,viewportId:hr.viewportId,element:hr.element,key:hr.key,keyCode:hr.keyCode};(0,Y.triggerEvent)(o.element,$.KEY_DOWN,o),document.addEventListener("keyup",mr),hr.element.removeEventListener("keydown",pr)}function mr(e){var t={renderingEngineId:hr.renderingEngineId,viewportId:hr.viewportId,element:hr.element,key:hr.key,keyCode:hr.keyCode};document.removeEventListener("keyup",mr),hr.element.addEventListener("keydown",pr),hr=te()(gr),(0,Y.triggerEvent)(t.element,$.KEY_UP,t)}var wr=pr;function Er(e){e.removeEventListener("keydown",wr)}var yr={enable:function(e){Er(e),e.addEventListener("keydown",wr)},disable:Er,getModifierKey:function(){return hr.keyCode}};function Ir(e){return function(e){if(Array.isArray(e))return An(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Ln(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 br(e,t){if(ze.svgNodeCache[e])return ze.svgNodeCache[e][t]?ze.svgNodeCache[e][t].domRef:void 0}function Cr(e,t,n,r){if(!ze.svgNodeCache[t])return null;ze.svgNodeCache[t][r]={touched:!0,domRef:n},e.appendChild(n)}function Tr(e,t){ze.svgNodeCache[e]&&ze.svgNodeCache[e][t]&&(ze.svgNodeCache[e][t].touched=!0)}function _r(e,t){ze.svgNodeCache[t]&&Object.keys(ze.svgNodeCache[t]).forEach((function(n){var r=ze.svgNodeCache[t][n];!r.touched&&r.domRef&&(e.removeChild(r.domRef),delete ze.svgNodeCache[t][n])}))}var Or=function(e,t){var n=function(e){var t=(0,Y.getEnabledElement)(e),n=t.viewportId,r=t.renderingEngineId,o="".concat(n,":").concat(r),a=function(e){var t=".".concat("viewport-element");return e.querySelector(t).querySelector(".svg-layer")}(e);return Object.keys(ze.svgNodeCache[o]).forEach((function(e){ze.svgNodeCache[o][e].touched=!1})),{svgLayerElement:a,svgNodeCacheForCanvas:ze.svgNodeCache,getSvgNode:br.bind(this,o),appendNode:Cr.bind(this,a,o),setNodeTouched:Tr.bind(this,o),clearUntouched:_r.bind(this,a,o)}}(e);t(n),n.clearUntouched()},Dr=function(e,t){var n=ze.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 Sr(e,t){var n=(0,Y.getEnabledElement)(e),r=n.renderingEngineId,o=n.viewportId,a=Dr(o,r);if(!a)return[];for(var i=[],l=Object.keys(a.toolOptions),c=0;c<l.length;c++){var s=l[c],d=a.toolOptions[s];if(d&&t.includes(d.mode)){var u=a.getToolInstance(s);i.push(u)}}return i}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}var kr=Ke.Active,Mr=Ke.Passive,Pr=Ke.Enabled,Rr=function(){function e(){var t=this;X(this,e),Q(this,"hasBeenDestroyed",void 0),Q(this,"_needsRender",new Set),Q(this,"_animationFrameSet",!1),Q(this,"_animationFrameHandle",null),Q(this,"_viewportElements",void 0),Q(this,"_renderFlaggedViewports",(function(){t._throwIfDestroyed();for(var e=Array.from(t._viewportElements.values()),n=0;n<e.length;n++){var r=e[n];if(t._needsRender.has(r)&&(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size))return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}})),this._viewportElements=new Map}return Z(e,[{key:"addViewportElement",value:function(e,t){this._viewportElements.set(e,t)}},{key:"removeViewportElement",value:function(e,t){this._viewportElements.delete(e),this._needsRender.delete(t),this._reset()}},{key:"renderViewport",value:function(e){this._setViewportsToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setAllViewportsToBeRenderedNextFrame",value:function(){var e=this;Ir(this._viewportElements.values()).forEach((function(t){e._needsRender.add(t)})),this._renderFlaggedViewports()}},{key:"_setViewportsToBeRenderedNextFrame",value:function(e){var t=this,n=Ir(this._viewportElements.values());e.forEach((function(e){-1!==n.indexOf(e)&&t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=(0,Y.getEnabledElement)(e);if(t)if((0,Y.getRenderingEngine)(t.renderingEngineId)){var n=Sr(e,[kr,Mr,Pr]),r=t.renderingEngineId,o=t.viewportId,a={element:e,renderingEngineId:r,viewportId:o};Or(e,(function(r){var o=!1;n.forEach((function(e){if(e.renderAnnotation){var n=e.renderAnnotation(t,r);o=o||n}})),o&&(0,Y.triggerEvent)(e,$.ANNOTATION_RENDERED,function(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){Q(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}({},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,this._setAllViewportsToBeRenderedNextFrame()}}]),e}(),Nr=new Rr,Ar=function(e){Nr.renderViewport(e)},Lr=function(e){Ar(e.detail.element)};function Ur(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=Dr(a,o);if(!i)return[];for(var l=[],c=Object.keys(i.toolOptions),s=0;s<c.length;s++){var d=c[s],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 Vr=Ke.Active,Br=Ke.Passive,jr=Ke.Enabled,Hr=function(e){Ur(e,[Vr,Br,jr]).forEach((function(t){t.onCameraModified&&t.onCameraModified(e)}))},Fr=Ke.Active,Wr=Ke.Passive,Gr=Ke.Enabled,qr=function(e){Ur(e,[Fr,Wr,Gr]).forEach((function(t){t.onImageSpacingCalibrated&&t.onImageSpacingCalibrated(e)}))},zr=Ke.Active;function Kr(e,t,n){if(ze.isInteractingWithTool)return!1;var r,o=n.detail,a=o.renderingEngineId,i=o.viewportId,l=Dr(i,a);if(!l)return!1;for(var c=Object.keys(l.toolOptions),s=0;s<c.length;s++){var d=c[s],u=l.toolOptions[d],v=l.getToolInstance(d);if(u.mode===zr&&"function"==typeof v[t]){r=l.getToolInstance(d);break}}r&&r[t](n)}var Yr,$r,Jr=Kr.bind(null,"Mouse","mouseClickCallback");function Zr(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 Xr(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)?Xr(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 Xr(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 Qr(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o="touch"===r?36:6,a=[];return t.forEach((function(t){var r,i=t.tool,l=Zr(t.annotations);try{for(l.s();!(r=l.n()).done;){var c=r.value;if(!c.isLocked&&c.isVisible){var s=i.getHandleNearImagePoint(e,c,n,o);if(s){a.push({tool:i,annotation:c,handle:s});break}}}}catch(e){l.e(e)}finally{l.f()}})),a}function eo(e,t){for(var n=[],r=0;r<t.length;r++){var o,a=t[r];if(a){var i=et(a.constructor.toolName,e);null!==(o=i)&&void 0!==o&&o.length&&("function"==typeof a.filterInteractableAnnotationsForElement&&(i=a.filterInteractableAnnotationsForElement(e,i)),i.length>0&&n.push({tool:a,annotations:i}))}else console.warn("undefined tool in filterToolsWithAnnotationsForElement")}return n}function to(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return no(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)?no(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 no(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 ro(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"mouse",o="touch"===r?36:6,a=[];return t.forEach((function(t){var i,l=t.tool,c=to(t.annotations);try{for(c.s();!(i=c.n()).done;){var s=i.value;if(!s.isLocked&&s.isVisible&&l.isPointNearTool(e,s,n,o,r)){a.push({tool:l,annotation:s});break}}}catch(e){c.e(e)}finally{c.f()}})),a}!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"}(Yr||(Yr={})),function(e){e[e.Shift=16]="Shift",e[e.Ctrl=17]="Ctrl",e[e.Alt=18]="Alt",e[e.Meta=91]="Meta",e[e.ShiftCtrl=1617]="ShiftCtrl",e[e.ShiftAlt=1618]="ShiftAlt",e[e.ShiftMeta=1691]="ShiftMeta",e[e.CtrlAlt=1718]="CtrlAlt",e[e.CtrlMeta=1791]="CtrlMeta",e[e.AltMeta=1891]="AltMeta"}($r||($r={}));var oo=function(e){return e.shiftKey?e.ctrlKey?$r.ShiftCtrl:e.altKey?$r.ShiftAlt:e.metaKey?$r.ShiftMeta:$r.Shift:e.ctrlKey?e.altKey?$r.CtrlAlt:e.metaKey?$r.CtrlMeta:$r.Ctrl:e.altKey?e.metaKey&&$r.AltMeta||$r.Alt:void(e.metaKey&&$r.Meta)},ao=Ke.Active;function io(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=yr.getModifierKey()||oo(o),i=Dr(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],d=i.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(o?o.buttons:Yr.Primary)&&e.modifierKey===a}));if(d.mode===ao&&u)return i.getToolInstance(s)}}var lo=Ke.Active,co=Ke.Passive;function so(e){if(!ze.isInteractingWithTool){var t=io(e);if(t&&"function"==typeof t.preMouseDownCallback&&t.preMouseDownCallback(e))return;var n=1===e.detail.event.buttons,r=Ur(e,[lo],e.detail.event.buttons),o=n?Ur(e,[co]):void 0,a=[].concat(Ir(r||[]),Ir(o||[])),i=e.detail,l=i.element,c=eo(l,a),s=i.currentPoints.canvas,d=Qr(l,c,s,"mouse"),u=!!e.detail.event.shiftKey;if(d.length>0){var v=uo(d),f=v.tool,g=v.annotation,h=v.handle;return vo(g.annotationUID,u),void f.handleSelectedCallback(e,g,h,"Mouse")}var p=ro(l,c,s,"mouse");if(p.length>0){var m=uo(p),w=m.tool,E=m.annotation;return vo(E.annotationUID,u),void w.toolSelectedCallback(e,E,"Mouse")}if(t&&"function"==typeof t.postMouseDownCallback&&t.postMouseDownCallback(e))return}}function uo(e){return e.length>1&&e.find((function(e){return!ie(e.annotation)&&xe(e.annotation.annotationUID)}))||e[0]}function vo(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(Ie(e))pe(e,!1);else{var n=!0;pe(e,!0,n)}else{var r=!1;pe(e,!0,r)}}function fo(e){if(!ze.isInteractingWithTool){var t=io(e);t&&(ze.isMultiPartToolActive||t.addNewAnnotation&&pe(t.addNewAnnotation(e,"mouse").annotationUID))}}var go=Kr.bind(null,"Mouse","doubleClickCallback");function ho(e){if(!ze.isInteractingWithTool){var t=io(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}}function po(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var mo=Ke.Active,wo=Ke.Passive;function Eo(e){if(!ze.isInteractingWithTool&&!ze.isMultiPartToolActive){var t,n=Ur(e,[mo,wo]),r=e.detail.element,o=eo(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 po(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?po(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var 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 c=t.value,s=c.tool,d=c.annotations;"function"==typeof s.mouseMoveCallback&&(i=s.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&&Ar(r)}}var yo=Kr.bind(null,"Mouse","mouseUpCallback"),Io=Kr.bind(null,"MouseWheel","mouseWheelCallback"),bo=function(e){e.addEventListener($.MOUSE_CLICK,Jr),e.addEventListener($.MOUSE_DOWN,so),e.addEventListener($.MOUSE_DOWN_ACTIVATE,fo),e.addEventListener($.MOUSE_DOUBLE_CLICK,go),e.addEventListener($.MOUSE_DRAG,ho),e.addEventListener($.MOUSE_MOVE,Eo),e.addEventListener($.MOUSE_UP,yo),e.addEventListener($.MOUSE_WHEEL,Io)},Co=function(e){e.removeEventListener($.MOUSE_CLICK,Jr),e.removeEventListener($.MOUSE_DOWN,so),e.removeEventListener($.MOUSE_DOWN_ACTIVATE,fo),e.removeEventListener($.MOUSE_DOUBLE_CLICK,go),e.removeEventListener($.MOUSE_DRAG,ho),e.removeEventListener($.MOUSE_MOVE,Eo),e.removeEventListener($.MOUSE_UP,yo),e.removeEventListener($.MOUSE_WHEEL,Io)},To=Ke.Active;function _o(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=tn.mouseButton,a=yr.getModifierKey(),i=Dr(r,n);if(!i)return null;for(var l=Object.keys(i.toolOptions),c=0;c<l.length;c++){var s=l[c],d=i.toolOptions[s],u=d.bindings.length&&d.bindings.some((function(e){return e.mouseButton===(null!=o?o:Yr.Primary)&&e.modifierKey===a}));if(d.mode===To&&u)return i.getToolInstance(s)}}function Oo(e){var t=_o(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Dr(o,r),i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}function Do(e){var t=_o(e);if(t){var n=e.detail,r=n.renderingEngineId,o=n.viewportId,a=Dr(o,r);hr.keyCode=void 0;var i=t.getToolName();Object.keys(a.toolOptions).includes(i)&&a.setViewportsCursorByToolName(i)}}var So=function(e){e.addEventListener($.KEY_DOWN,Oo),e.addEventListener($.KEY_UP,Do)},xo=function(e){e.removeEventListener($.KEY_DOWN,Oo),e.removeEventListener($.KEY_UP,Do)},ko=Ke.Active;function Mo(e){var t=e.detail,n=t.renderingEngineId,r=t.viewportId,o=e.detail.event,a=Dr(r,n);if(!a)return null;for(var i=Object.keys(a.toolOptions),l=Object.keys(o.touches).length,c=oo(o),s=0;s<i.length;s++){var d=i[s],u=a.toolOptions[d],v=u.bindings.length&&u.bindings.some((function(e){return(e.numTouchPoints===l||1===l&&e.mouseButton===Yr.Primary)&&e.modifierKey===c}));if(u.mode===ko&&v)return a.getToolInstance(d)}}function Po(e,t,n){var r=e.detail,o=r.renderingEngineId,a=r.viewportId,i=Dr(a,o);if(!i)return[];for(var l=[],c=Object.keys(i.toolOptions),s=0;s<c.length;s++){var d=c[s],u=i.toolOptions[d],v=null!=n&&u.bindings.length&&u.bindings.some((function(e){return e.numTouchPoints===n}));if(t.includes(u.mode)&&(!n||v)){var f=i.getToolInstance(d);l.push(f)}}return l}var Ro=Ke.Active,No=Ke.Passive;function Ao(e){if(!ze.isInteractingWithTool){var t=Mo(e);if(t&&"function"==typeof t.preTouchStartCallback&&t.preTouchStartCallback(e))return;var n=1===Object.keys(e.detail.event.touches).length,r=Po(e,[Ro],Object.keys(e.detail.event.touches).length),o=n?Po(e,[No]):void 0,a=[].concat(Ir(r||[]),Ir(o||[]),[t]),i=e.detail,l=i.element,c=eo(l,a),s=i.currentPoints.canvas,d=Qr(l,c,s,"touch");if(d.length>0){var u=Lo(d),v=u.tool,f=u.annotation,g=u.handle;return Uo(f.annotationUID,!1),void v.handleSelectedCallback(e,f,g,"Touch")}var h=ro(l,c,s,"touch");if(h.length>0){var p=Lo(h),m=p.tool,w=p.annotation;return Uo(w.annotationUID,!1),void m.toolSelectedCallback(e,w,"Touch")}if(t&&"function"==typeof t.postTouchStartCallback&&t.postTouchStartCallback(e))return}}function Lo(e){return e.length>1&&e.find((function(e){return!ie(e.annotation)&&xe(e.annotation.annotationUID)}))||e[0]}function Uo(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t)if(Ie(e))pe(e,!1);else{var n=!0;pe(e,!0,n)}else{var r=!1;pe(e,!0,r)}}function Vo(e){if(!ze.isInteractingWithTool){var t=Mo(e);t&&(ze.isMultiPartToolActive||t.addNewAnnotation&&pe(t.addNewAnnotation(e,"touch").annotationUID))}}function Bo(e){if(!ze.isInteractingWithTool){var t=Mo(e);!t||"function"!=typeof t.touchDragCallback||t.touchDragCallback(e)}}var jo=Kr.bind(null,"Touch","touchEndCallback"),Ho=Kr.bind(null,"Touch","touchTapCallback"),Fo=Kr.bind(null,"Touch","touchPressCallback"),Wo=function(e){e.addEventListener($.TOUCH_START,Ao),e.addEventListener($.TOUCH_START_ACTIVATE,Vo),e.addEventListener($.TOUCH_DRAG,Bo),e.addEventListener($.TOUCH_END,jo),e.addEventListener($.TOUCH_TAP,Ho),e.addEventListener($.TOUCH_PRESS,Fo)},Go=function(e){e.removeEventListener($.TOUCH_START,Ao),e.removeEventListener($.TOUCH_START_ACTIVATE,Vo),e.removeEventListener($.TOUCH_DRAG,Bo),e.removeEventListener($.TOUCH_END,jo),e.removeEventListener($.TOUCH_PRESS,Fo)};function qo(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,"feBlend");return r.setAttribute("id","shadow"),r.setAttribute("filterUnits","userSpaceOnUse"),o.setAttribute("result","offOut"),o.setAttribute("in","SourceGraphic"),o.setAttribute("dx","0.5"),o.setAttribute("dy","0.5"),a.setAttribute("result","matrixOut"),a.setAttribute("in","offOut"),a.setAttribute("in2","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("in","SourceGraphic"),i.setAttribute("in2","matrixOut"),i.setAttribute("mode","normal"),r.appendChild(o),r.appendChild(a),r.appendChild(i),n.appendChild(r),t.appendChild(n),t}();!function(e){var t=e.dataset,n=t.viewportUid,r=t.renderingEngineUid,o="".concat(n,":").concat(r);ze.svgNodeCache[o]={}}(r),t=a,r.querySelector("div.viewport-element").appendChild(t),Nr.addViewportElement(o,r),En.enable(r),Tn.enable(r),fr.enable(r),yr.enable(r),function(e){e.addEventListener(Y.Enums.Events.IMAGE_RENDERED,Lr)}(r),function(e){e.addEventListener(Y.Enums.Events.CAMERA_MODIFIED,Hr)}(r),function(e){e.addEventListener(Y.Enums.Events.IMAGE_SPACING_CALIBRATED,qr)}(r),bo(r),So(r),Wo(r),ze.enabledElements.push(r)}var zo=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<ze.synchronizers.length;r++){var o=ze.synchronizers[r],a=!o.isDisabled(),i=o.hasSourceViewport(t,e),l=o.hasTargetViewport(t,e);a&&(i||l)&&n.push(o)}return n},Ko=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 ze.svgNodeCache[o]}(n),function(e){var t=e.querySelector("div.".concat("viewport-element")),n=t.querySelector("svg");n&&t.removeChild(n)}(n),Nr.removeViewportElement(r,n),En.disable(n),Tn.disable(n),fr.disable(n),yr.disable(n),function(e){e.removeEventListener(Y.Enums.Events.IMAGE_RENDERED,Lr)}(n),function(e){e.removeEventListener(Y.Enums.Events.CAMERA_MODIFIED,Hr)}(n),function(e){e.removeEventListener(Y.Enums.Events.IMAGE_SPACING_CALIBRATED,qr)}(n),Co(n),xo(n),Go(n),function(e){var t=(0,Y.getEnabledElement)(e);zo(t.viewportId,t.renderingEngineId).forEach((function(e){e.remove(t)}))}(n),function(e){var t=(0,Y.getEnabledElement)(e),n=t.renderingEngineId,r=t.viewportId,o=Dr(r,n);o&&o.removeViewports(n,r)}(n),function(e){var t=ze.enabledElements.findIndex((function(t){return t===e}));t>-1&&ze.enabledElements.splice(t,1)}(n)},Yo=function(e,t){t.length&&t.forEach((function(t){var n=e.getViewport(t).element;Ar(n)}))},$o=function(e){var t=e.detail,n=t.viewportId,r=t.renderingEngineId,o=(0,Y.getRenderingEngine)(r);Yo(o,[n])},Jo=function(e){e.detail.removed.length&&(0,Y.getRenderingEngines)().forEach((function(e){var t=e.getViewports().map((function(e){return e.id}));Yo(e,t)}))},Zo=function(e){var t=e.detail.segmentationId;St(t).forEach((function(e){Dt(e).forEach((function(n){n.segmentationId===t&&wt(e,n.segmentationRepresentationUID)}))}))},Xo=function(e){return ze.toolGroups.find((function(t){return t.id===e}))};function Qo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ea(e,t){return ea=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},ea(e,t)}function ta(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&&ea(e,t)}function na(e){return na="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},na(e)}function ra(e,t){if(t&&("object"===na(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return Qo(e)}function oa(e){return oa=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},oa(e)}var aa=function(e){return e&&"object"===na(e)&&"[object RegExp]"!==Object.prototype.toString.call(e)&&"[object Date]"!==Object.prototype.toString.call(e)},ia=function(e,t){var n;return t&&!0===t.clone&&aa(e)?sa((n=e,Array.isArray(n)?[]:{}),e,t):e},la=function(e,t,n){var r=e.slice();return t.forEach((function(t,o){void 0===r[o]?r[o]=ia(t,n):aa(t)?r[o]=sa(e[o],t,n):-1===e.indexOf(t)&&r.push(ia(t,n))})),r},ca=function(e,t,n){var r={};return aa(e)&&Object.keys(e).forEach((function(t){r[t]=ia(e[t],n)})),Object.keys(t).forEach((function(o){aa(t[o])&&e[o]?r[o]=sa(e[o],t[o],n):r[o]=ia(t[o],n)})),r},sa=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:la},a=o.arrayMerge||la;return r?Array.isArray(e)?a(e,t,n):ia(t,n):ca(e,t,n)},da=sa,ua=function(){function e(t,n){X(this,e),Q(this,"supportedInteractionTypes",void 0),Q(this,"configuration",void 0),Q(this,"toolGroupId",void 0),Q(this,"mode",void 0);var r=da(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=Ke.Disabled}return Z(e,[{key:"getToolName",value:function(){return this.constructor.toolName}},{key:"applyActiveStrategy",value:function(e,t){var n=this.configuration;return n.strategies[n.activeStrategy].call(this,e,t)}},{key:"setConfiguration",value:function(e){this.configuration=da(this.configuration,e)}},{key:"setActiveStrategy",value:function(e){this.setConfiguration({activeStrategy:e})}},{key:"getTargetVolumeId",value:function(e){var t;if(this.configuration.volumeId)return this.configuration.volumeId;var n=e.getActors();return n?null===(t=n.find((function(e){return"vtkVolume"===e.actor.getClassName()})))||void 0===t?void 0:t.uid:void 0}},{key:"getTargetIdImage",value:function(e,t){if(e.startsWith("imageId:")){var n=e.split("imageId:")[1],r=Y.utilities.imageIdToURI(n),o=Y.utilities.getViewportsWithImageURI(r,t.id);if(!o||!o.length)return;if(!(o=o.filter((function(e){return e.getCurrentImageId()===n})))||!o.length)return;return o[0].getImageData()}if(e.startsWith("volumeId:")){var a=e.split("volumeId:")[1],i=Y.utilities.getViewportsWithVolumeId(a,t.id);if(!i||!i.length)return;return i[0].getImageData()}throw new Error('getTargetIdImage: targetId must start with "imageId:" or "volumeId:"')}},{key:"getTargetId",value:function(e){if(e instanceof Y.StackViewport)return"imageId:".concat(e.getCurrentImageId());if(e instanceof Y.VolumeViewport)return"volumeId:".concat(this.getTargetVolumeId(e));throw new Error("getTargetId: viewport must be a StackViewport or VolumeViewport")}}]),e}();Q(ua,"toolName",void 0),ua.toolName="BaseTool";var va=ua;function fa(e,t,n,r,o,a,i){try{var l=e[a](i),c=l.value}catch(e){return void n(e)}l.done?t(c):Promise.resolve(c).then(r,o)}function ga(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function i(e){fa(a,r,o,i,l,"next",e)}function l(e){fa(a,r,o,i,l,"throw",e)}i(void 0)}))}}var ha=f(162),pa=f.n(ha),ma=f(795),wa=f.n(ma),Ea=f(441),ya=f.n(Ea);function Ia(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 ba(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ia(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ia(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ca(){return Lt()}function Ta(e){Ut(e)}function _a(e){return Ca().representations[e]}function Oa(e,t){var n=Ca();Ta(ba(ba({},n),{},{representations:ba(ba({},n.representations),{},Q({},e,ba(ba({},n.representations[e]),t)))}))}function Da(e){return xt(e)}function Sa(e,t){kt(e,t)}function xa(e,t){return Pt(e,t)}function ka(e,t,n){Mt(e,t,n)}function Ma(e,t,n){return Rt(e,t,n)}function Pa(e,t,n){Nt(e,t,n)}function Ra(){return(Ra=ga(pa().mark((function e(t,n,r){var o,a,i,l,c;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=(0,Y.getEnabledElement)(t),a=o.renderingEngine,i=o.viewport,l=i.id,c=[{volumeId:n,actorUID:r,visibility:!0,blendMode:Y.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}],e.next=9,(0,Y.addVolumesToViewports)(a,c,[l],!1,!0);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Na=function(e,t,n){return Ra.apply(this,arguments)},Aa=function(e,t){(0,Y.getEnabledElement)(e).viewport.removeVolumeActors([t])};function La(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 Ua(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 Va(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ua(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ua(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ba=255,ja=new Map;function Ha(){return(Ha=ga(pa().mark((function e(t,n,r){var o,a,i,l,c,s,d,u;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=Y.utilities.uuidv4(),i=new Set,l=wa().newInstance(),(c=ya().newInstance()).addPoint(0,0),s={segmentationId:o,segmentationRepresentationUID:a,type:dt.Labelmap,segmentsHidden:i,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{cfun:l,ofun:c}},r&&(d=Da(t),u=da(d,r),Sa(t,{renderInactiveSegmentations:u.renderInactiveSegmentations||!0,representations:Va({},u.representations)})),At(t,s),e.abrupt("return",a);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Fa(){return(Fa=ga(pa().mark((function e(t,n,r){var o,a,i,l,c,s,d,u,v,f,g,h,p,m,w,E;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.colorLUTIndex,a=n.active,i=n.segmentationId,l=n.segmentationRepresentationUID,c=n.visibility,s=n.segmentsHidden,d=n.config,u=Tt(i),v=u.representationData[dt.Labelmap],f=v.volumeId,Y.cache.getVolume(f)){e.next=7;break}throw new Error("No Labelmap found for volumeId: ".concat(f));case 7:if(g=t.getActor(l)){e.next=14;break}return h=Tt(i),p=h.representationData[dt.Labelmap].volumeId,e.next=13,Ka(t,p,l);case 13:g=t.getActor(l);case 14:m=d.cfun,w=d.ofun,E=r.renderInactiveSegmentations,Wa(t.id,g,m,w,o,r.representations[dt.Labelmap],n,a,E,s,c);case 17:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Wa(e,t,n,r,o,a,i,l,c,s){for(var d=!(arguments.length>10&&void 0!==arguments[10])||arguments[10],u=i.segmentSpecificConfig,v=i.segmentationRepresentationSpecificConfig,f=v[dt.Labelmap],g=Ft(o),h=Math.min(256,g.length),p=t.actor,m=t.uid,w=Ga(a,f,l),E=w.outlineWidth,y=w.renderOutline,I=w.outlineOpacity,b=0;b<h;b++){var C,T=b,_=g[T],O=null===(C=u[T])||void 0===C?void 0:C[dt.Labelmap],D=Ga(a,f,l,O),S=D.fillAlpha,x=D.outlineWidth,k=D.renderFill,M=D.renderOutline,P=qa(e,m,T,{fillAlpha:S,renderFill:k,renderOutline:M,segmentColor:_,outlineWidth:x,segmentsHidden:s}),R=P.forceOpacityUpdate,N=P.forceColorUpdate;if(N&&n.addRGBPoint(T,_[0]/Ba,_[1]/Ba,_[2]/Ba),R)if(k){var A=s.has(T)?0:_[3]/255*S;r.removePoint(T),r.addPointLong(T,A,.5,1)}else r.addPointLong(T,.01,.5,1)}p.getProperty().setRGBTransferFunction(0,n),r.setClamping(!1),p.getProperty().setScalarOpacity(0,r),p.getProperty().setInterpolationTypeToNearest(),p.getProperty().setUseLabelOutline(y),p.getProperty().setLabelOutlineOpacity(I),p.getProperty().setLabelOutlineThickness(E);var L=d&&(l||c);p.setVisibility(L)}function Ga(e,t,n,r){var o=r||{},a=Va(Va(Va({},e),t),o);return{fillAlpha:n?a.fillAlpha:a.fillAlphaInactive,outlineWidth:n?a.outlineWidthActive:a.outlineWidthInactive,renderFill:n?a.renderFill:a.renderFillInactive,renderOutline:a.renderOutline,outlineOpacity:n?a.outlineOpacity:a.outlineOpacityInactive}}function qa(e,t,n,r){var o=r.fillAlpha,a=r.renderFill,i=r.renderOutline,l=r.segmentColor,c=r.outlineWidth,s=r.segmentsHidden,d="".concat(e,"-").concat(t,"-").concat(n),u=ja.get(d);if(!u)return ja.set(d,{fillAlpha:o,renderFill:a,renderOutline:i,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:!0,forceColorUpdate:!0};var v=u.fillAlpha,f=u.renderFill,g=u.renderOutline,h=u.outlineWidth,p=u.segmentColor,m=u.segmentsHidden,w=p[0]!==l[0]||p[1]!==l[1]||p[2]!==l[2],E=p[3]!==l[3]||v!==o||f!==a||g!==i||h!==c||m.has(n)!==s.has(n);return ja.set(d,{fillAlpha:o,renderFill:a,renderOutline:i,outlineWidth:c,segmentColor:l,segmentsHidden:new Set(s)}),{forceOpacityUpdate:E,forceColorUpdate:w}}function za(e,t){var n=Xo(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return La(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)?La(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}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,c=(0,Y.getEnabledElementByIds)(i,l);Aa(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}function Ka(e,t,n){return Ya.apply(this,arguments)}function Ya(){return(Ya=ga(pa().mark((function e(t,n,r){return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Na(t.element,n,r);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var $a={render:function(e,t,n){return Fa.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return Ha.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(za(e,t),jt(e,t),n){var r=Xo(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,Y.getEnabledElementByIds)(t,n).viewport.render()}))}}},Ja=function(e,t){var n=(0,Y.getEnabledElement)(e).viewport,r=n.getActors().map((function(e){var n=e.uid;return n.startsWith(t)?n:void 0})).filter(Boolean);n.removeActors(r)},Za=f(70),Xa=f.n(Za),Qa=f(396),ei=f.n(Qa),ti=f(348),ni=f.n(ti),ri=f(610),oi=f.n(ri),ai=f(474),ii=f.n(ai);function li(e,t,n){var r,o=(0,Y.getEnabledElement)(e),a=(o.renderingEngine,o.viewport),i=(a.id,ii().newInstance()),l=[],c=ni().newInstance(),s=ei().newInstance(),d=0;t.getContours().forEach((function(e){var t=e.getPoints(),n=e.getFlatPointsArray();r=e.getColor();var o=e.getType(),a=t.map((function(e,t){return t+d}));o===Y.Enums.ContourType.CLOSED_PLANAR&&a.push(a[0]);var i=Float32Array.from(n);l.push.apply(l,Ir(i)),s.insertNextCell(Ir(a)),d+=t.length})),c.setData(l,3);var u=Xa().newInstance();u.setPoints(c),u.setLines(s);var v=oi().newInstance();v.setInputData(u),i.setMapper(v),i.getProperty().setLineWidth(4);var f=r.map((function(e){return e/255}));i.getProperty().setColor(f[0],f[1],f[2]),a.addActor({actor:i,uid:n})}function ci(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 si(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ci(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ci(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function di(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 ui(){return(ui=ga(pa().mark((function e(t,n,r){var o,a,i,l,c,s;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.segmentationId,a=Y.utilities.uuidv4(),i=new Set,l={segmentationId:o,segmentationRepresentationUID:a,type:dt.Contour,segmentsHidden:i,visibility:!0,colorLUTIndex:0,active:!0,segmentationRepresentationSpecificConfig:{},segmentSpecificConfig:{},config:{}},r&&(c=Da(t),s=da(c,r),Sa(t,{renderInactiveSegmentations:s.renderInactiveSegmentations||!0,representations:si({},s.representations)})),At(t,l),e.abrupt("return",a);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function vi(){return(vi=ga(pa().mark((function e(t,n,r){var o,a,i,l,c;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n.colorLUTIndex,n.active,o=n.segmentationId,a=n.segmentationRepresentationUID,n.visibility,n.segmentsHidden,i=Tt(o),l=i.representationData[dt.Contour],null!=(c=l.geometryIds)&&c.length||console.warn("No contours found for segmentationId ".concat(o,". Skipping render.")),fi(t,c,a);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fi(e,t,n){t.forEach((function(t){var r=Y.cache.getGeometry(t);if(!r)throw new Error("No contours found for geometryId ".concat(t));if(r.type!==Y.Enums.GeometryType.CONTOUR)throw new Error("Geometry type ".concat(r.type," not supported for rendering."));if(r.data){var o=r.data;!function(e,t,n){if(arguments.length>3&&void 0!==arguments[3]&&arguments[3])t.getContours().forEach((function(r,o){var a="".concat(n,"_").concat(t.id,"_").concat(o,"}");gi(e,r,a)}));else{var r="".concat(n,"_").concat(t.id);if(e.getActor(r))throw new Error("Not implemented yet. (Update contour)");li(e.element,t,r)}e.resetCamera(),e.render()}(e,o,n)}else console.warn("No contours found for geometryId ".concat(t,". Skipping render."))}))}function gi(e,t,n){var r=n;if(e.getActor(r))throw new Error("Not implemented yet. (Update contour)");!function(e,t,n){var r=(0,Y.getEnabledElement)(e),o=(r.renderingEngine,r.viewport),a=(o.id,t.getPoints()),i=t.getFlatPointsArray(),l=t.getColor(),c=t.getType(),s=a.map((function(e,t){return t}));c===Y.Enums.ContourType.CLOSED_PLANAR&&s.push(0);var d=Float32Array.from(i),u=Uint32Array.from([s.length].concat(Ir(s))),v=l.map((function(e){return e/255})),f=ni().newInstance();f.setData(d,3);var g=ei().newInstance();g.setData(u,3);var h=Xa().newInstance();h.setPoints(f),h.setLines(g);var p=oi().newInstance();p.setInputData(h);var m=ii().newInstance();m.setMapper(p),m.getProperty().setLineWidth(4),m.getProperty().setColor(v[0],v[1],v[2]),o.addActor({actor:m,uid:n})}(e.element,t,r)}function hi(e,t){var n=Xo(e);if(void 0===n)throw new Error("ToolGroup with ToolGroupId ".concat(e," does not exist"));var r,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return di(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)?di(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}}}}(n.viewportsInfo);try{for(o.s();!(r=o.n()).done;){var a=r.value,i=a.viewportId,l=a.renderingEngineId,c=(0,Y.getEnabledElementByIds)(i,l);Ja(c.viewport.element,t)}}catch(e){o.e(e)}finally{o.f()}}var pi={render:function(e,t,n){return vi.apply(this,arguments)},addSegmentationRepresentation:function(e,t,n){return ui.apply(this,arguments)},removeSegmentationRepresentation:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(hi(e,t),jt(e,t),n){var r=Xo(e).getViewportsInfo();r.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId;(0,Y.getEnabledElementByIds)(t,n).viewport.render()}))}}};function mi(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 Ei=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"renderSegmentation",(function(t){var n=Xo(t);if(n){var r=Dt(t);if(r&&0!==r.length){var o=n.viewportsInfo.map((function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,Y.getEnabledElementByIds)(n,t);if(r)return r.viewport})),a=r.map((function(n){var r,a=e._getMergedRepresentationsConfig(t),i=[],l=mi(o);try{for(l.s();!(r=l.n()).done;){var c=r.value;n.type==dt.Labelmap?i.push($a.render(c,n,a)):n.type==dt.Contour&&i.push(pi.render(c,n,a))}}catch(e){l.e(e)}finally{l.f()}return i}));Promise.allSettled(a).then((function(){o.forEach((function(e){e.render()}))}))}}})),e}return Z(o,[{key:"onSetToolEnabled",value:function(){var e=this.toolGroupId,t=Dt(e);if(t&&0!==t.length){var n,r=mi(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!0,wt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"onSetToolDisabled",value:function(){var e=this.toolGroupId,t=Dt(e);if(t&&0!==t.length){var n,r=mi(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;o.visibility=!1,wt(e,o.segmentationRepresentationUID)}}catch(e){r.e(e)}finally{r.f()}}}},{key:"_getMergedRepresentationsConfig",value:function(e){var t=Da(e),n=Ca();return da(n,t)}}]),o}(va);Q(Ei,"toolName",void 0),Ei.toolName="SegmentationDisplay";var yi=Ei;function Ii(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 bi=function(){function e(){var t=this;X(this,e),Q(this,"_needsRender",new Set),Q(this,"_animationFrameSet",!1),Q(this,"_animationFrameHandle",null),Q(this,"hasBeenDestroyed",void 0),Q(this,"_renderFlaggedToolGroups",(function(){t._throwIfDestroyed();for(var e=0,n=Array.from(t._needsRender.values());e<n.length;e++){var r=n[e];if(t._triggerRender(r),t._needsRender.delete(r),0===t._needsRender.size)return t._animationFrameSet=!1,void(t._animationFrameHandle=null)}}))}return Z(e,[{key:"removeToolGroup",value:function(e){this._needsRender.delete(e),0===this._needsRender.size&&this._reset()}},{key:"renderToolGroupSegmentations",value:function(e){this._setToolGroupSegmentationToBeRenderedNextFrame([e])}},{key:"_throwIfDestroyed",value:function(){if(this.hasBeenDestroyed)throw new Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}},{key:"_setToolGroupSegmentationToBeRenderedNextFrame",value:function(e){var t=this;e.forEach((function(e){t._needsRender.add(e)})),this._render()}},{key:"_render",value:function(){this._needsRender.size>0&&!1===this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedToolGroups),this._animationFrameSet=!0)}},{key:"_triggerRender",value:function(e){var t=Xo(e);if(t){var n=t.viewportsInfo,r=[];n.forEach((function(e){var t=e.viewportId,n=e.renderingEngineId,o=(0,Y.getRenderingEngine)(n);o?r.push(o.getViewport(t)):console.warn("rendering Engine has been destroyed")}));var o=t.getToolInstance(yi.toolName);o?(r.forEach((function(e){e.element.addEventListener(Y.Enums.Events.IMAGE_RENDERED,a)})),o.renderSegmentation(e)):console.warn("No segmentation tool found inside",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(Y.Enums.Events.IMAGE_RENDERED,a);var i=Dr(r,o);if(i){var l={toolGroupId:i.id,viewportId:r};(0,Y.triggerEvent)(Y.eventTarget,$.SEGMENTATION_RENDERED,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ii(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ii(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},l))}else console.warn("toolGroup has been destroyed")}}},{key:"_reset",value:function(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}}]),e}(),Ci=new bi;function Ti(e){Ci.renderToolGroupSegmentations(e)}var _i=Ti,Oi=function(e){var t=e.detail,n=t.segmentationId,r=t.modifiedSlicesToUse,o=Tt(n),a=o.representationData,i=o.type;if(i!==dt.Labelmap)throw new Error("onSegmentationDataModified: representationType ".concat(i," not supported yet"));var l=Y.cache.getVolume(a[i].volumeId);if(l){var c,s=l.imageData,d=l.vtkOpenGLTexture;if(r&&Array.isArray(r))c=r;else{var u=s.getDimensions()[2];c=Ir(Array(u).keys())}c.forEach((function(e){d.setUpdatedFrame(e)})),s.modified(),St(n).forEach((function(e){_i(e)}))}else console.warn("segmentation not found in cache")},Di=function(e){var t=e.detail.toolGroupId;_i(t)},Si=function(e){var t=e.detail,n=t.toolGroupId;t.segmentationRepresentationUID,_i(n)},xi=function(e,t,n){var r=Dt(e);if(r&&0!==r.length){var o=r.map((function(e){return e.segmentationRepresentationUID})),a=t;if(a){var i=t.filter((function(e){return!o.includes(e)}));if(i.length>0)throw new Error("The following segmentationRepresentationUIDs are not part of the toolGroup: ".concat(JSON.stringify(i)))}else a=o;a.forEach((function(t){!function(e,t,n){var r=Vt(e,t).type;if(r===dt.Labelmap)$a.removeSegmentationRepresentation(e,t,n);else{if(r!==dt.Contour)throw new Error("The representation ".concat(r," is not supported yet"));console.debug("Contour representation is not supported yet, ignoring...")}}(e,t,n)}))}},ki=function(e){var t=ze.toolGroups.findIndex((function(t){return t.id===e}));t>-1&&(Ci.removeToolGroup(e),xi(e),ze.toolGroups.splice(t,1))};function Mi(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 Pi=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 Mi(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)?Mi(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}}}}(Ir(ze.toolGroups));try{for(t.s();!(e=t.n()).done;){var n=e.value;ki(n.id)}}catch(e){t.e(e)}finally{t.f()}ze.toolGroups=[]},Ri=!1;function Ni(){Ri||(function(){Li();var e=Y.Enums.Events.ELEMENT_ENABLED,t=Y.Enums.Events.ELEMENT_DISABLED;Y.eventTarget.addEventListener(e,qo),Y.eventTarget.addEventListener(t,Ko)}(),Ui(),Y.eventTarget.addEventListener($.ANNOTATION_MODIFIED,$o),Y.eventTarget.addEventListener($.ANNOTATION_SELECTION_CHANGE,Jo),Y.eventTarget.addEventListener($.ANNOTATION_SELECTION_CHANGE,Jo),Y.eventTarget.addEventListener($.SEGMENTATION_MODIFIED,Zo),Y.eventTarget.addEventListener($.SEGMENTATION_DATA_MODIFIED,Oi),Y.eventTarget.addEventListener($.SEGMENTATION_REPRESENTATION_MODIFIED,Di),Y.eventTarget.addEventListener($.SEGMENTATION_REPRESENTATION_REMOVED,Si),Ri=!0)}function Ai(){Li(),Ui(),Pi(),Ge={},ze=te()(qe);var e=Ze(),t=Ct();e.restoreAnnotations({}),t.resetState(),Ri=!1}function Li(){var e=Y.Enums.Events.ELEMENT_ENABLED,t=Y.Enums.Events.ELEMENT_DISABLED;Y.eventTarget.removeEventListener(e,qo),Y.eventTarget.removeEventListener(t,Ko)}function Ui(){Y.eventTarget.removeEventListener($.ANNOTATION_MODIFIED,$o),Y.eventTarget.removeEventListener($.ANNOTATION_SELECTION_CHANGE,Jo),Y.eventTarget.removeEventListener($.ANNOTATION_SELECTION_CHANGE,Jo),Y.eventTarget.removeEventListener($.SEGMENTATION_MODIFIED,Zo),Y.eventTarget.removeEventListener($.SEGMENTATION_DATA_MODIFIED,Oi),Y.eventTarget.removeEventListener($.SEGMENTATION_REPRESENTATION_MODIFIED,Di),Y.eventTarget.removeEventListener($.SEGMENTATION_REPRESENTATION_REMOVED,Si)}function Vi(e){var t=e.toolName,n=void 0!==ze.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"));ze.tools[t]={toolClass:e}}function Bi(e){var t=e.toolName;if(!t)throw new Error("No tool found for: ".concat(e.name));if(void 0===!ze.tools[t])throw new Error("".concat(t," cannot be removed because it has not been added"));delete ze.tools[t]}function ji(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 Hi(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 ji(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)?ji(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}}}}(eo(e,Sr(e,[Ke.Active,Ke.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 Fi=function(){function e(t,n,r){var o=this;X(this,e),Q(this,"_enabled",void 0),Q(this,"_eventName",void 0),Q(this,"_eventHandler",void 0),Q(this,"_ignoreFiredEvents",void 0),Q(this,"_sourceViewports",void 0),Q(this,"_targetViewports",void 0),Q(this,"_viewportOptions",{}),Q(this,"id",void 0),Q(this,"_onEvent",(function(e){if(!0!==o._ignoreFiredEvents&&o._targetViewports.length){var t=(0,Y.getEnabledElement)(e.currentTarget);if(t){var n=t.renderingEngineId,r=t.viewportId;o._sourceViewports.find((function(e){return e.viewportId===r}))&&o.fireEvent({renderingEngineId:n,viewportId:r},e)}}})),this._enabled=!0,this._eventName=n,this._eventHandler=r,this._ignoreFiredEvents=!1,this._sourceViewports=[],this._targetViewports=[],this.id=t}return Z(e,[{key:"isDisabled",value:function(){return!this._enabled||!this._hasSourceElements()}},{key:"setOptions",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._viewportOptions[e]=t}},{key:"getOptions",value:function(e){return this._viewportOptions[e]}},{key:"add",value:function(e){this.addTarget(e),this.addSource(e)}},{key:"addSource",value:function(e){if(!Gi(this._sourceViewports,e)){var t=e.renderingEngineId,n=e.viewportId;(0,Y.getRenderingEngine)(t).getViewport(n).element.addEventListener(this._eventName,this._onEvent.bind(this)),this._updateDisableHandlers(),this._sourceViewports.push(e)}}},{key:"addTarget",value:function(e){Gi(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=Wi(this._sourceViewports,e);if(-1!==t){var n=function(e){var t=(0,Y.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=Wi(this._targetViewports,e);-1!==t&&(this._targetViewports.splice(t,1),this._updateDisableHandlers())}},{key:"hasSourceViewport",value:function(e,t){return Gi(this._sourceViewports,{renderingEngineId:e,viewportId:t})}},{key:"hasTargetViewport",value:function(e,t){return Gi(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,Y.getRenderingEngine)(e.renderingEngineId).getViewport(e.viewportId).element;t.removeEventListener(Y.Enums.Events.ELEMENT_DISABLED,n),t.addEventListener(Y.Enums.Events.ELEMENT_DISABLED,n)}))}}]),e}();function Wi(e,t){return e.findIndex((function(e){return t.renderingEngineId===e.renderingEngineId&&t.viewportId===e.viewportId}))}function Gi(e,t){return e.some((function(e){return e.renderingEngineId===t.renderingEngineId&&e.viewportId===t.viewportId}))}var qi=Fi,zi=function(e,t,n){if(ze.synchronizers.some((function(t){return t.id===e})))throw new Error("Synchronizer with id '".concat(e,"' already exists."));var r=new qi(e,t,n);return ze.synchronizers.push(r),r},Ki=function(){for(;ze.synchronizers.length>0;)ze.synchronizers.pop().destroy()},Yi=function(e){return ze.synchronizers.find((function(t){return t.id===e}))},$i=function(){return ze.synchronizers},Ji=function(e){var t=ze.synchronizers.findIndex((function(t){return t.id===e}));t>-1&&(ze.synchronizers[t].destroy(),ze.synchronizers.splice(t,1))},Zi=f(485),Xi=f.n(Zi),Qi=Symbol("DefinedCursors"),el=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"]),tl=function(){function e(t,n){X(this,e),Q(this,"name",void 0),Q(this,"fallback",void 0),this.name=t+"",this.fallback=n}return Z(e,[{key:"getName",value:function(){return this.name+""}},{key:"addFallbackStyleProperty",value:function(t){var n=this.fallback;return n instanceof e?"".concat(t,", ").concat(n.getStyleProperty()):t+""}},{key:"getStyleProperty",value:function(){return this.addFallbackStyleProperty(this.name)+""}}],[{key:"getDefinedCursor",value:function(t){var n=nl(e,Qi),r=n.get(t);return r instanceof e?r:el.has(t)?(r=new e(t),n.set(t,r),r):void 0}},{key:"setDefinedCursor",value:function(t,n){return n instanceof e&&(nl(e,Qi).set(t,n),!0)}}]),e}();function nl(e,t){var n=e[t];return n instanceof Map||(n=new Map,Object.defineProperty(e,t,{value:n})),n}var rl,ol=el.values();function al(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=oa(e)););return e}function il(){return il="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=al(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},il.apply(this,arguments)}!function(e){e.Default="",e.Highlighted="Highlighted",e.Selected="Selected",e.Locked="Locked"}(rl||(rl={}));var ll=rl;var cl=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(e,t,n,a,i){var l;return X(this,o),Q(Qo(l=r.call(this,a||o.getUniqueInstanceName("image-cursor"),i)),"url",void 0),Q(Qo(l),"x",void 0),Q(Qo(l),"y",void 0),l.url=e,l.x=Number(t)||0,l.y=Number(n)||0,l}return Z(o,[{key:"getStyleProperty",value:function(){var e=this.url,t=this.x,n=this.y,r="url('".concat(e,"')");return t>=0&&n>=0&&(t>0||n>0)&&(r+=" ".concat(t," ").concat(n)),this.addFallbackStyleProperty(r)}}],[{key:"getUniqueInstanceName",value:function(e){return"".concat(e,"-").concat(Y.utilities.getRuntimeId(o))}}]),o}(tl),sl={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 '},dl={x:127,y:60},ul='\n<rect fill="{{color}}" x="80.19" y="25.03" width="47.14" height="15.85"/>\n',vl='\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',fl='<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)"/>',gl='<path fill="{{color}}" d="M8.86,2.25V66.08H72.69V2.25H8.86ZM65.28,58.67h-49v-49h49v49Z" transform="translate(-8.86 -2.25)"/>',hl='<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)"/>',pl={Angle:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{iconContent:'<circle stroke="{{color}}" fill="none" stroke-width="3" cx="16" cy="16" r="14" />',viewBox:{x:32,y:32}}),EllipticalROI:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{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:ml(sl,{iconContent:"".concat(fl," ").concat(ul),viewBox:dl}),SegmentationFreeHandFillInside:ml(sl,{iconContent:"".concat(fl," ").concat(vl),viewBox:dl}),SegmentationFreeHandEraseOutside:ml(sl,{iconContent:"".concat(fl," ").concat(ul),viewBox:dl}),SegmentationFreeHandFillOutside:ml(sl,{iconContent:"".concat(fl," ").concat(vl),viewBox:dl}),SegmentationRectangleEraseInside:ml(sl,{iconContent:"".concat(gl," ").concat(ul),viewBox:dl}),RectangleScissor:ml(sl,{iconContent:"".concat(gl," ").concat(vl),viewBox:dl}),"RectangleScissor.FILL_INSIDE":ml(sl,{iconContent:"".concat(gl," ").concat(vl),viewBox:dl}),"RectangleScissor.FILL_OUTSIDE":ml(sl,{iconContent:"".concat(gl," ").concat(vl),viewBox:dl}),"RectangleScissor.ERASE_OUTSIDE":ml(sl,{iconContent:"".concat(gl," ").concat(ul),viewBox:dl}),"RectangleScissor.ERASE_INSIDE":ml(sl,{iconContent:"".concat(gl," ").concat(ul),viewBox:dl}),CircleScissor:ml(sl,{iconContent:"".concat(hl," ").concat(vl),viewBox:dl}),"CircleScissor.FILL_INSIDE":ml(sl,{iconContent:"".concat(hl," ").concat(vl),viewBox:dl}),"CircleScissor.ERASE_OUTSIDE":ml(sl,{iconContent:"".concat(hl," ").concat(ul),viewBox:dl}),"CircleScissor.FILL_OUTSIDE":ml(sl,{iconContent:"".concat(hl," ").concat(vl),viewBox:dl})};function ml(e,t){return Object.assign(Object.create(e),t)}function wl(e,t,n){pl[e]=ml(sl,{iconContent:t,viewBox:n})}function El(e){if(Object.prototype.hasOwnProperty.call(pl,e))return pl[e]}var yl=Object.keys(pl);function Il(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 bl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Il(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Il(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Cl=new(function(){function e(){X(this,e),Q(this,"config",void 0),this._initializeConfig({color:"rgb(255, 255, 0)",colorHighlighted:"rgb(0, 255, 0)",colorSelected:"rgb(0, 220, 0)",colorLocked:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"",shadow:!0,textBoxFontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",textBoxFontSize:"14px",textBoxColor:"rgb(255, 255, 0)",textBoxColorHighlighted:"rgb(0, 255, 0)",textBoxColorSelected:"rgb(0, 255, 0)",textBoxColorLocked:"rgb(255, 255, 0)",textBoxBackground:"",textBoxLinkLineWidth:"1",textBoxLinkLineDash:"2,3",textBoxShadow:!0})}return Z(e,[{key:"getAnnotationToolStyles",value:function(e){return this.config.annotations&&this.config.annotations[e]}},{key:"getViewportToolStyles",value:function(e){return this.config.viewports&&this.config.viewports[e]}},{key:"getToolGroupToolStyles",value:function(e){return this.config.toolGroups&&this.config.toolGroups[e]}},{key:"getDefaultToolStyles",value:function(){return this.config.default}},{key:"setAnnotationStyles",value:function(e,t){var n=this.config.annotations;n||(this.config=bl(bl({},this.config),{},{annotations:{}}),n=this.config.annotations),n[e]=t}},{key:"setViewportToolStyles",value:function(e,t){var n=this.config.viewports;n||(this.config=bl(bl({},this.config),{},{viewports:{}}),n=this.config.viewports),n[e]=t}},{key:"setToolGroupToolStyles",value:function(e,t){var n=this.config.toolGroups;n||(this.config=bl(bl({},this.config),{},{toolGroups:{}}),n=this.config.toolGroups),n[e]=t}},{key:"setDefaultToolStyles",value:function(e){this.config.default=e}},{key:"getStyleProperty",value:function(e,t){var n=t.annotationUID,r=t.viewportId,o=t.toolGroupId,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 c=this.getDefaultToolStyles();return c[o]&&c[o][e]?c[o][e]:c.global&&c.global[e]?c.global[e]:void 0}},{key:"_initializeConfig",value:function(e){var t={};for(var n in e)t[n]=e[n];this.config={default:{global:t}}}}]),e}());function Tl(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=Cl.getStyleProperty(o[a],t);if(void 0!==i)return i}}var _l="color",Ol=ll.Highlighted,Dl=Ke.Active,Sl=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(e,t,n,a,i){return X(this,o),r.call(this,e,t,n,a,i)}return Z(o,null,[{key:"getDefinedCursor",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2?arguments[2]:void 0;n||(n=Tl(_l,{},Ol,Dl));var r=kl(e,t,n),a=il(oa(o),"getDefinedCursor",this).call(this,r);if(!a){var i=El(e);i&&(a=Ml(i,r,t,n,il(oa(o),"getDefinedCursor",this).call(this,"default")),il(oa(o),"setDefinedCursor",this).call(this,r,a))}return a}}]),o}(cl);function xl(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 kl(e,t,n){return"".concat(t?"pointer":"cursor",":").concat(e,"/").concat(n)}function Ml(e,t,n,r,o){var a=e.mousePoint,i=a.x,l=a.y;return new Sl(function(e,t,n){return URL.createObjectURL(function(e,t,n){var r=(t?Rl:Pl)(e,n);return new Blob([r],{type:"image/svg+xml"})}(e,t,n))}(e,n,{color:r}),i,l,t,o)}function Pl(e,t){var n=e.iconContent,r=e.iconSize,o=e.viewBox;return xl('\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 Rl(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 xl('\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 Nl=Symbol("ElementCursorsMap");function Al(e,t){Bl(e)[0]=t,Ll(e,t)}function Ll(e,t){var n=Bl(e);n[1]=n[0],n[0]=t,e.style.cursor=(t instanceof tl?t:tl.getDefinedCursor("auto")).getStyleProperty()}function Ul(e){Ll(e,Bl(e)[1])}function Vl(e){Ll(e,tl.getDefinedCursor("none"))}function Bl(e){var t=Bl[Nl];t instanceof WeakMap||(t=new WeakMap,Object.defineProperty(Bl,Nl,{value:t}));var n=t.get(e);return n||(n=[null,null],t.set(e,n)),n}function jl(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=oa(e);if(t){var o=oa(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return ra(this,n)}}var Hl=Ke.Active,Fl=Ke.Passive,Wl=Ke.Enabled,Gl=Ke.Disabled,ql=function(){function e(t){X(this,e),Q(this,"id",void 0),Q(this,"viewportsInfo",[]),Q(this,"toolOptions",{}),Q(this,"_toolInstances",{}),this.id=t}return Z(e,[{key:"getViewportIds",value:function(){return this.viewportsInfo.map((function(e){return e.viewportId}))}},{key:"getViewportsInfo",value:function(){return this.viewportsInfo.slice()}},{key:"getToolInstance",value:function(e){var t=this._toolInstances[e];if(t)return t;console.warn("'".concat(e,"' is not registered with this toolGroup."))}},{key:"addTool",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=ze.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. You need to use cornerstoneTools.addTool to register it."));else console.warn("Tool with configuration did not produce a toolName: ",t)}},{key:"addToolInstance",value:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=null===(n=ze.tools[e])||void 0===n?void 0:n.toolClass;if(!o){var a=ze.tools[t].toolClass,i=function(e){ta(n,e);var t=jl(n);function n(){return X(this,n),t.apply(this,arguments)}return Z(n)}(a);i.toolName=e,o=i,ze.tools[e]={toolClass:i}}this.addTool(o.toolName,r)}},{key:"addViewport",value:function(e,t){var n=(0,Y.getRenderingEngines)();if(!t&&n.length>1)throw new Error("You must specify a renderingEngineId when there are multiple rendering engines.");var r=t||n[0].id;this.viewportsInfo.some((function(t){return t.viewportId===e}))||this.viewportsInfo.push({viewportId:e,renderingEngineId:r});var o=this.getActivePrimaryMouseButtonTool();Y.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:"setActiveStrategy",value:function(e,t){var n=this._toolInstances[e];void 0!==n?n.setActiveStrategy(t):console.warn("Tool ".concat(e," not added to toolGroup, can't set tool configuration."))}},{key:"setToolMode",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e?t!==Ke.Active?t!==Ke.Passive?t!==Ke.Enabled?t!==Ke.Disabled?console.warn("setToolMode: mode must be defined"):this.setToolDisabled(e):this.setToolEnabled(e):this.setToolPassive(e):this.setToolActive(e,n):console.warn("setToolMode: toolName must be defined")}},{key:"setToolActive",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this._toolInstances[e];if(void 0!==n)if(n){var r=this.toolOptions[e]?this.toolOptions[e].bindings:[],o=t.bindings?t.bindings:[],a=[].concat(Ir(r),Ir(o)).reduce((function(e,t){var n=void 0!==t.numTouchPoints,r=void 0!==t.mouseButton;return e.some((function(e){return zl(e,t)}))||!n&&!r||e.push(t),e}),[]),i={bindings:a,mode:Hl};this.toolOptions[e]=i,this._toolInstances[e].mode=Hl;var l=Y.Settings.getRuntimeSettings(),c=l.get("useCursors");if(this._hasMousePrimaryButtonBinding(t)&&c)this.setViewportsCursorByToolName(e);else{var s=this.getActivePrimaryMouseButtonTool();if(!s&&c){var d=tl.getDefinedCursor("default");this._setCursorForViewports(d)}}"function"==typeof n.onSetToolActive&&n.onSetToolActive(),this._renderViewports()}else console.warn("'".concat(e,"' instance ").concat(n," is not registered with this toolGroup, can't set tool mode."));else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolPassive",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n=this.getToolOptions(e),r=Object.assign({bindings:n?n.bindings:[]},n,{mode:Fl});r.bindings=r.bindings.filter((function(e){return e.mouseButton!==Yr.Primary||e.modifierKey}));var o=Fl;0!==r.bindings.length&&(o=Hl,r.mode=o),this.toolOptions[e]=r,t.mode=o,"function"==typeof t.onSetToolPassive&&t.onSetToolPassive(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolEnabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Wl};this.toolOptions[e]=n,t.mode=Wl,"function"==typeof t.onSetToolEnabled&&t.onSetToolEnabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"setToolDisabled",value:function(e){var t=this._toolInstances[e];if(void 0!==t){var n={bindings:[],mode:Gl};this.toolOptions[e]=n,t.mode=Gl,"function"==typeof t.onSetToolDisabled&&t.onSetToolDisabled(),this._renderViewports()}else console.warn("Tool ".concat(e," not added to toolGroup, can't set tool mode."))}},{key:"getToolOptions",value:function(e){var t=this.toolOptions[e];if(void 0!==t)return t}},{key:"getActivePrimaryMouseButtonTool",value:function(){var e=this;return Object.keys(this.toolOptions).find((function(t){var n=e.toolOptions[t];return n.mode===Hl&&e._hasMousePrimaryButtonBinding(n)}))}},{key:"setViewportsCursorByToolName",value:function(e,t){var n=this._getCursor(e,t);this._setCursorForViewports(n)}},{key:"_getCursor",value:function(e,t){var n,r;return t&&(n="".concat(e,".").concat(t),r=Sl.getDefinedCursor(n,!0))?r:(n="".concat(e),(r=Sl.getDefinedCursor(n,!0))?r:(n=e,(r=Sl.getDefinedCursor(n,!0))||tl.getDefinedCursor("default")))}},{key:"_setCursorForViewports",value:function(e){this.viewportsInfo.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,Y.getEnabledElementByIds)(r,n);o&&Al(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:da(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=Xi()(this._toolInstances[e].configuration,t);return te()(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===Yr.Primary&&void 0===e.modifierKey}))}},{key:"_renderViewports",value:function(){this.viewportsInfo.forEach((function(e){var t=e.renderingEngineId,n=e.viewportId;(0,Y.getRenderingEngine)(t).renderViewport(n)}))}}]),e}();function zl(e,t){return e.mouseButton===t.mouseButton&&e.modifierKey===t.modifierKey}var Kl=function(e){if(!ze.toolGroups.some((function(t){return t.id===e}))){var t=new ql(e);return ze.toolGroups.push(t),t}console.warn("'".concat(e,"' already exists."))},Yl=function(){return ze.toolGroups};function $l(e,t,n,r){var o=r.detail.camera,a=(0,Y.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 Jl=Y.Enums.Events.CAMERA_MODIFIED;function Zl(e){return zi(e,Jl,$l)}function Xl(e,t,n,r){var o=r.detail,a=o.volumeId,i=o.range,l=(0,Y.getRenderingEngine)(n.renderingEngineId);if(!l)throw new Error("Rendering Engine does not exist: ".concat(n.renderingEngineId));var c=l.getViewport(n.viewportId);if(c instanceof Y.VolumeViewport)c.setProperties({voiRange:i},a);else{if(!(c instanceof Y.StackViewport))throw new Error("Viewport type not supported.");c.setProperties({voiRange:i})}c.render()}function Ql(e){return zi(e,Y.Enums.Events.VOI_MODIFIED,Xl)}function ec(e,t,n){var r=(0,Y.getRenderingEngine)(n.renderingEngineId);if(!r)throw new Error("No RenderingEngine for Id: ".concat(n.renderingEngineId));var o=e.getOptions(n.viewportId),a=r.getViewport(n.viewportId),i=r.getViewport(t.viewportId);if(!1!==(null==o?void 0:o.syncZoom)){var l=i.getZoom();a.setZoom(l)}if(!1!==(null==o?void 0:o.syncPan)){var c=i.getPan();a.setPan(c)}a.render()}var tc=Y.Enums.Events.CAMERA_MODIFIED;function nc(e){return zi(e,tc,ec)}var rc=f(976);var oc=function(e,t,n){return Math.min(Math.max(t,e),n)};function ac(e,t){var n=e.type,r=t.volumeId,o=t.delta;if(e instanceof Y.StackViewport)e.scroll(o,t.debounceLoading);else{if(!(e instanceof Y.VolumeViewport))throw new Error("Not implemented for Viewport Type: ".concat(n));ic(e,r,o)}}function ic(e,t,n){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal,i=r.position,l=Y.utilities.getTargetVolumeAndSpacingInNormalDir(e,r,t),c=l.spacingInNormalDirection,s=l.imageVolume;if(!s)throw new Error("Could not find image volume with id ".concat(t," in the viewport"));var d=e.getActor(s.volumeId);d||console.warn("No actor found for with actorUID of",s.volumeId);var u=d.actor,v=Y.utilities.getSliceRange(u,a,o),f=Y.utilities.snapFocalPointToSlice(o,i,v,a,c,n),g=f.newFocalPoint,h=f.newPosition;e.setCamera({focalPoint:g,position:h}),e.render()}function lc(){return lc=ga(pa().mark((function e(t){var n,r,o,a,i,l,c,s,d,u=arguments;return pa().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,Y.getEnabledElement)(t)){e.next=5;break}throw new Error("Element has been disabled");case 5:i=a.viewport,l=cc(i,o),c=l.imageIndex,s=l.numberOfSlices,d=sc(s,r),ac(i,{delta:d-c,debounceLoading:o});case 10:case"end":return e.stop()}}),e)}))),lc.apply(this,arguments)}function cc(e,t){if(e instanceof Y.StackViewport)return{numberOfSlices:e.getImageIds().length,imageIndex:t?e.getTargetImageIdIndex():e.getCurrentImageIdIndex()};if(e instanceof Y.VolumeViewport)return Y.utilities.getImageSliceDataForVolumeViewport(e);throw new Error("Unsupported viewport type")}function sc(e,t){return oc(t,0,e-1)}var dc=function(e){return lc.apply(this,arguments)};function uc(e,t){var n=e.getCamera().viewPlaneNormal,r=t.getCamera().viewPlaneNormal,o=rc.vec3.dot(n,r);return Math.abs(o)>.9}function vc(e,t,n){return fc.apply(this,arguments)}function fc(){return(fc=ga(pa().mark((function e(t,n,r){var o,a,i,l,c,s,d,u,v,f,g,h,p;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=(0,Y.getRenderingEngine)(r.renderingEngineId)){e.next=3;break}throw new Error("No RenderingEngine for Id: ".concat(r.renderingEngineId));case 3:if(a=o.getViewport(n.viewportId),i=o.getViewport(r.viewportId),l=a.getFrameOfReferenceUID(),c=i.getFrameOfReferenceUID(),s=a.getCurrentImageId(),d=Y.metaData.get("imagePlaneModule",s),u=d.imagePositionPatient,v=i.getImageIds(),uc(a,i)){e.next=13;break}return e.abrupt("return");case 13:if(l!==c){e.next=21;break}if(-1===(f=gc(u,v)).index||i.getCurrentImageIdIndex()===f.index){e.next=19;break}return e.next=18,dc(i.element,{imageIndex:f.index});case 18:return e.abrupt("return");case 19:e.next=29;break;case 21:if(g=Y.utilities.spatialRegistrationMetadataProvider.get("spatialRegistrationModule",[r.viewportId,n.viewportId])){e.next=24;break}throw new Error("No registration matrix found for sourceViewport: ".concat(n.viewportId," and targetViewport: ").concat(r.viewportId,", viewports with different frameOfReferenceUIDs must have a registration matrix in the registrationMetadataProvider. Use calculateViewportsRegistrationMatrix to calculate the matrix."));case 24:if(h=rc.vec3.transformMat4(rc.vec3.create(),u,g),-1===(p=gc(h,v)).index||i.getCurrentImageIdIndex()===p.index){e.next=29;break}return e.next=29,dc(i.element,{imageIndex:p.index});case 29:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function gc(e,t){return t.reduce((function(t,n,r){var o=Y.metaData.get("imagePlaneModule",n).imagePositionPatient,a=rc.vec3.distance(o,e);return a<t.distance?{distance:a,index:r}:t}),{distance:1/0,index:-1})}var hc=Y.Enums.Events.STACK_NEW_IMAGE;function pc(e){return zi(e,hc,vc)}var mc=function(e,t,n){return"".concat(e,"::").concat(t,"::").concat(n)},wc=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)}))},Ec=function(e,t){Object.keys(e).forEach((function(n){var r=e[n];void 0!==r&&""!==r&&t.setAttribute(n,r)}))},yc=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,c=i.fill,s=i.width,d=i.lineWidth,u=d||s,v="http://www.w3.org/2000/svg",f=mc(t,"circle",n),g=e.getSvgNode(f),h={cx:"".concat(r[0]),cy:"".concat(r[1]),r:"".concat(o),stroke:l,fill:c,"stroke-width":u};if(g)wc(h,g),e.setNodeTouched(f);else{var p=document.createElementNS(v,"circle");Ec(h,p),e.appendNode(p,f)}},Ic=function(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=mc(t,"ellipse",n),h=e.getSvgNode(g),p=Math.abs(r[0]-o[0]),m=Math.abs(r[1]-o[1]),w=Math.min(r[0],o[0]),E=Math.min(r[1],o[1]),y=[w+p/2,E+m/2],I=p/2,b=m/2,C={cx:"".concat(y[0]),cy:"".concat(y[1]),rx:"".concat(I),ry:"".concat(b),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)wc(C,h),e.setNodeTouched(g);else{var T=document.createElementNS(f,"ellipse");""!==i&&T.setAttribute("data-id",i),Ec(C,T),e.appendNode(T,g)}},bc=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,c=a.width,s=a.lineWidth,d=a.fill,u=a.type,v=s||c,f=0;f<r.length;f++){var g=r[f],h="http://www.w3.org/2000/svg",p=mc(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),E=1.5*w,y=g[0]-.5*E,I=g[1]-.5*E;m={x:"".concat(y),y:"".concat(I),width:"".concat(E),height:"".concat(E),stroke:i,fill:d,"stroke-width":v,rx:"".concat(.1*E)}}var b=e.getSvgNode(p);if(b)wc(m,b),e.setNodeTouched(p);else{var C=document.createElementNS(h,u);Ec(m,C),e.appendNode(C,p)}}};function Cc(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";if(!(isNaN(r[0])||isNaN(r[1])||isNaN(o[0])||isNaN(o[1]))){var l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0,shadow:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=l.shadow,f=d||s,g="http://www.w3.org/2000/svg",h=mc(t,"line",n),p=e.getSvgNode(h),m=v?"filter:url(#shadow);":"",w={x1:"".concat(r[0]),y1:"".concat(r[1]),x2:"".concat(o[0]),y2:"".concat(o[1]),stroke:c,style:m,"stroke-width":f,"stroke-dasharray":u};if(p)wc(w,p),e.setNodeTouched(h);else{var E=document.createElementNS(g,"line");""!==i&&E.setAttribute("data-id",i),Ec(w,E),e.appendNode(E,h)}}}function Tc(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 _c(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,c=i.width,s=i.lineWidth,d=i.lineDash,u=s||c,v=mc(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 Tc(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)?Tc(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)wc(w,f),e.setNodeTouched(v);else{var E=document.createElementNS("http://www.w3.org/2000/svg","polyline");Ec(w,E),e.appendNode(E,v)}}}function Oc(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[""],a=arguments.length>4?arguments[4]:void 0,i=arguments.length>5?arguments[5]:void 0,l=i.padding,c=i.color,s=i.fontFamily,d=i.fontSize,u=i.background,v=a[0]+l,f=a[1]+l,g="http://www.w3.org/2000/svg",h=mc(t,"text",n),p=e.getSvgNode(h);if(p){for(var m=p.querySelector("text"),w=Array.from(m.children),E=0;E<w.length;E++){var y=w[E],I=o[E]||"";y.textContent=I}if(o.length>w.length){for(var b=0;b<o.length-w.length;b++){var C=o[b+w.length],T=Sc(C);m.appendChild(T)}p.appendChild(m),e.appendNode(p,h)}var _={fill:c,"font-size":d,"font-family":s},O={transform:"translate(".concat(v," ").concat(f,")")};wc(_,m),wc(O,p),r=xc(p,u),e.setNodeTouched(h)}else{var D=document.createElementNS(g,"g");D.setAttribute("transform","translate(".concat(v," ").concat(f,")"));for(var S=Dc(i),x=0;x<o.length;x++){var k=o[x],M=Sc(k);S.appendChild(M)}D.appendChild(S),e.appendNode(D,h),r=xc(D,u)}return Object.assign({},r,{x:v,y:f,height:r.height+l,width:r.width+l})}function Dc(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}function Sc(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 xc(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 wc(o,n),r}var kc=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=Oc(e,t,n,r,o,i);return l};function Mc(e,t){var n=[0,0],r=Number.MAX_SAFE_INTEGER;return e.forEach((function(e){var o,a,i,l,c,s,d,u=(o=e,i=(a=Un(t,2))[0],l=a[1],s=(c=Un(o,2))[0],d=c[1],Math.sqrt(Math.pow(i-s,2)+Math.pow(l-d,2)));u<r&&(r=u,n=Ir(e))})),n}function Pc(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 Rc=function(e,t,n,r,o,a){var i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{},l=r.length>0?Mc(r,o):o,c=Pc(a),s=Mc(c,l),d=Object.assign({color:"rgb(255, 255, 0)",lineWidth:"1",lineDash:"2,3"},i);Cc(e,t,"link-".concat(n),l,s,d)},Nc=function(e,t,n,r,o,a,i){var l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},c=Object.assign({handleRadius:"6",centering:{x:!1,y:!0}},l),s=kc(e,t,n,r,o,c);return Rc(e,t,n,a,o,s,c),s};function Ac(e,t,n,r,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"",l=Object.assign({color:"dodgerblue",width:"2",lineWidth:void 0,lineDash:void 0},a),c=l.color,s=l.width,d=l.lineWidth,u=l.lineDash,v=d||s,f="http://www.w3.org/2000/svg",g=mc(t,"rect",n),h=e.getSvgNode(g),p=[Math.min(r[0],o[0]),Math.min(r[1],o[1])],m=Math.abs(r[0]-o[0]),w=Math.abs(r[1]-o[1]),E={x:"".concat(p[0]),y:"".concat(p[1]),width:"".concat(m),height:"".concat(w),stroke:c,fill:"transparent","stroke-width":v,"stroke-dasharray":u};if(h)wc(E,h),e.setNodeTouched(g);else{var y=document.createElementNS(f,"rect");""!==i&&y.setAttribute("data-id",i),Ec(E,y),e.appendNode(y,g)}}function Lc(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,c=i.width,s=i.lineWidth,d=i.lineDash;Cc(e,t,n,r,o,{color:l,width:c,lineWidth:s,lineDash:d});var u=10,v=Math.atan2(o[1]-r[1],o[0]-r[0]),f={start:[o[0]-u*Math.cos(v-Math.PI/7),o[1]-u*Math.sin(v-Math.PI/7)],end:o},g={start:[o[0]-u*Math.cos(v+Math.PI/7),o[1]-u*Math.sin(v+Math.PI/7)],end:o};Cc(e,t,"2",f.start,f.end,{color:l,width:c,lineWidth:s}),Cc(e,t,"3",g.start,g.end,{color:l,width:c,lineWidth:s})}}function Uc(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 Vc(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5,r=(0,Y.getEnabledElement)(e);if(!r)throw new Error("getAnnotationNearPoint: enabledElement not found");return Bc(r,t,n)}function Bc(e,t,n){var r=e.renderingEngineId,o=e.viewportId,a=Dr(o,r);if(!a)return null;var i=a._toolInstances;for(var l in i){var c=jc(i[l],e,t,n);if(c)return c}return null}function jc(e,t,n,r){var o,a=t.viewport,i=et(e.constructor.toolName,null==a?void 0:a.element),l=null==a||null===(o=a.getCurrentImageId)||void 0===o?void 0:o.call(a);if(null!=i&&i.length){var c,s=t.viewport.element,d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Uc(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)?Uc(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}}}}(i);try{for(d.s();!(c=d.n()).done;){var u,v=c.value,f=null===(u=v.metadata)||void 0===u?void 0:u.referencedImageId;if(!(l&&f&&l!==f||!e.isPointNearTool)&&(e.isPointNearTool(s,v,n,r,"")||e.getHandleNearImagePoint(s,v,n,r)))return v}}catch(e){d.e(e)}finally{d.f()}}return null}var Hc=function(e){var t=na(e);return null!==e&&("object"===t||"function"===t)},Fc=function(e,t,n){var r,o,a,i,l,c,s=0,d=!1,u=!1,v=!0,f=!t&&0!==t&&"function"==typeof window.requestAnimationFrame;if("function"!=typeof e)throw new TypeError("Expected a function");function g(t){var n=r,a=o;return r=o=void 0,s=t,i=e.apply(a,n)}function h(e,t){return f?window.requestAnimationFrame(e):setTimeout(e,t)}function p(e){return s=e,l=h(w,t),d?g(e):i}function m(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-s>=a}function w(){var e=Date.now();if(m(e))return E(e);l=h(w,function(e){var n=e-s,r=t-(e-c);return u?Math.min(r,a-n):r}(e))}function E(e){return l=void 0,v&&r?g(e):(r=o=void 0,i)}function y(){for(var e=Date.now(),n=m(e),a=arguments.length,s=new Array(a),d=0;d<a;d++)s[d]=arguments[d];if(r=s,o=this,c=e,n){if(void 0===l)return p(c);if(u)return l=h(w,t),g(c)}return void 0===l&&(l=h(w,t)),i}return t=Number(t)||0,Hc(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),y.cancel=function(){void 0!==l&&function(e){if(f)return window.cancelAnimationFrame(e);clearTimeout(e)}(l),s=0,r=c=o=l=void 0},y.flush=function(){return void 0===l?i:E(Date.now())},y.pending=function(){return void 0!==l},y},Wc=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return Hc(n)&&(r="leading"in n?Boolean(n.leading):r,o="trailing"in n?Boolean(n.trailing):o),Fc(e,t,{leading:r,trailing:o,maxWait:t})},Gc=Y.utilities.calibratedPixelSpacingMetadataProvider;function qc(e,t,n,r){r||(r=n),Gc.add(e,[n,r]),t.getStackViewports().forEach((function(t){t.getImageIds().includes(e)&&t.calibrateSpacing(e)}))}function zc(e,t,n,r){var o,a,i,l,c,s,d;d=e.getScalarData?e.getScalarData():e.getPointData().getScalars().getData();var u=e.getDimensions();if(r){var v=Un(r,3),f=Un(v[0],2);o=f[0],a=f[1];var g=Un(v[1],2);i=g[0],l=g[1];var h=Un(v[2],2);c=h[0],s=h[1]}else o=0,a=u[0],i=0,l=u[1],c=0,s=u[2];for(var p=rc.vec3.fromValues(o,i,c),m=e.getDirection(),w=m.slice(0,3),E=m.slice(3,6),y=m.slice(6,9),I=Un(e.getSpacing(),3),b=I[0],C=I[1],T=I[2],_=e.indexToWorld(p),O=rc.vec3.fromValues(w[0]*b,w[1]*b,w[2]*b),D=rc.vec3.fromValues(E[0]*C,E[1]*C,E[2]*C),S=rc.vec3.fromValues(y[0]*T,y[1]*T,y[2]*T),x=u[0],k=u[0]*u[1],M=c;M<=s;M++)for(var P=i;P<=l;P++)for(var R=o;R<=a;R++){var N=[R,P,M],A=R-o,L=P-i,U=M-c,V=_,B=[V[0]+A*O[0]+L*D[0]+U*S[0],V[1]+A*O[1]+L*D[1]+U*S[1],V[2]+A*O[2]+L*D[2]+U*S[2]];if(t(B,N)){var j=M*k+P*x+R;n({value:d[j],index:j,pointIJK:N,pointLPS:B})}}}var Kc=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 c=Un(t,3),s=c[0],d=c[1],u=c[2];n=Math.max(0,n),r=Math.min(s-1,r),o=Math.max(0,o),a=Math.min(d-1,a),i=Math.max(0,i),l=Math.min(u-1,l)}return[[n,r],[o,a],[i,l]]},Yc=Y.utilities.transformWorldToIndex;function $c(e,t,n,r){var o=function(e,t,n){var r,o=Un(e,2),a=o[0],i=o[1],l=rc.vec3.fromValues((a[0]+i[0])/2,(a[1]+i[1])/2,(a[2]+i[2])/2),c=rc.vec3.distance(a,i)/2;if(!n){var s=Yc(t,l),d=t.getSpacing(),u=Math.min.apply(Math,Ir(d)),v=Math.ceil(c/u);return{boundsIJK:r=[[s[0]-v,s[0]+v],[s[1]-v,s[1]+v],[s[2]-v,s[2]+v]],centerWorld:l,radiusWorld:c}}return r=function(e,t,n,r,o){var a=Un(n,2),i=a[0],l=a[1],c=e.getDimensions(),s=t.getCamera(),d=rc.vec3.fromValues(s.viewUp[0],s.viewUp[1],s.viewUp[2]),u=rc.vec3.fromValues(s.viewPlaneNormal[0],s.viewPlaneNormal[1],s.viewPlaneNormal[2]),v=rc.vec3.create();rc.vec3.cross(v,d,u);var f=rc.vec3.create(),g=rc.vec3.create();rc.vec3.scaleAndAdd(f,l,u,o),rc.vec3.scaleAndAdd(g,i,u,-o),rc.vec3.scaleAndAdd(f,f,v,-o),rc.vec3.scaleAndAdd(g,g,v,o);var h=[Yc(e,f),Yc(e,g)];return Kc(h,c)}(t,n,e,0,c),{boundsIJK:r,centerWorld:l,radiusWorld:c}}(t,e,r),a=o.boundsIJK,i={center:o.centerWorld,radius:o.radiusWorld};zc(e,(function(e){return function(e,t){var n=e.center,r=e.radius;return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)<=Math.pow(r,2)}(i,e)}),n,a)}var Jc=function(e,t,n){var r=e.spacing,o=e.imageData,a=e.getScalarData(),i=n.overwrite,l=n.boundsIJK,c=(null==n?void 0:n.overlapType)||0;if(i)for(var s=0;s<a.length;s++)a[s]=0;for(var d,u,v,f,g,h=[],p=0,m=0;m<t.length;m++){var w=t[m].volume,E=w.imageData,y=w.spacing,I=w.dimensions,b=t[m].volume.getScalarData().length;b===a.length&&(d=y,u=r,JSON.stringify(d)===JSON.stringify(u))&&(p=m);var C=E.getPointData().getScalars().getData(),T=t[m].lower,_=t[m].upper;h.push({imageData:E,referenceValues:C,lower:T,upper:_,spacing:y,dimensions:I,volumeSize:b})}var O=function(e,t,n){var r=e.imageData,o=e.dimensions,a=e.lower,i=e.upper,l=S(r,o,t,n);f=0,v=0,g={lower:a,upper:i};var s=!1;return zc(r,(function(){return!0}),(function(e){var t=e.value;f+=1,t>=g.lower&&t<=g.upper&&(v+=1)}),l),0===c?s=v>0:1==c&&(s=v===f),s},D=function(e,t){var n=e.imageData,r=e.referenceValues,o=e.lower,a=e.upper,i=r[n.computeOffsetIndex(t)];return!(i<=o||i>=a)},S=function(e,t,n,r){for(var o=[],a=0;a<2;a++)for(var i=0;i<2;i++)for(var l=0;l<2;l++){var c=r;c[0]=c[0]+(2*a-1)*n[0]/2,c[1]=c[1]+(2*i-1)*n[1]/2,c[2]=c[2]+(2*l-1)*n[2]/2,o.push(c)}var s=o.map((function(t){return Y.utilities.transformWorldToIndex(e,t)}));return Kc(s,t)};return zc(o,(function(){return!0}),(function(e){for(var t=e.index,n=e.pointIJK,r=e.pointLPS,o=h.length>0,i=0;i<h.length&&(o=h[i].volumeSize===a.length?D(h[i],n):O(h[i],h[p].spacing,r));i++);o&&(a[t]=1)}),l),yt(e.volumeId),e};function Zc(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 Xc=Ke.Active,Qc=Ke.Passive,es=Ke.Enabled;function ts(e,t){for(var n=e.length,r=[],o=0;o<n;o++){var a=e[o],i=Dr(a.id,a.renderingEngineId);i&&ns(i,t)&&r.push(a)}return r}function ns(e,t){var n=e.toolOptions[t];if(!n)return!1;var r=n.mode;return r===Xc||r===Qc||r===es}var rs=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.999;return e.filter((function(e){var r=e.getCamera();return Math.abs(rc.vec3.dot(r.viewPlaneNormal,t.viewPlaneNormal))>n}))};function os(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=(0,Y.getEnabledElement)(e),o=r.renderingEngine,a=r.FrameOfReferenceUID,i=o.getViewports();i=ts(i=Zc(i,a),t);var l=o.getViewport(r.viewportId);n&&(i=rs(i,l.getCamera()));var c=i.map((function(e){return e.id}));return c}function as(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 is=1-Y.CONSTANTS.EPSILON;function ls(e,t,n){var r=t.viewPlaneNormal,o=e.filter((function(e){var t=e.metadata.viewPlaneNormal,n=Math.abs(rc.vec3.dot(r,t))>is;return t&&n}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return as(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)?as(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(s.s();!(a=s.n()).done;){var d=a.value,u=d.data.handles.points[0];if(d.isVisible){var v=rc.vec3.create();rc.vec3.sub(v,l,u);var f=rc.vec3.dot(v,r);Math.abs(f)<i&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}function cs(e,t){if(e instanceof Y.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 Y.VolumeViewport){var a=e.getCamera();return ls(t,a,Y.utilities.getTargetVolumeAndSpacingInNormalDir(e,a).spacingInNormalDirection)}throw new Error("Viewport Type ".concat(e.type," not supported"))}var ss=function(e){if(e){if(e.data&&e.highlighted)return ll.Highlighted;if(Ie(e.annotationUID))return ll.Selected;if(ie(e))return ll.Locked}return ll.Default};var ds=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e;X(this,o);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return Q(Qo(e=r.call.apply(r,[this].concat(n))),"onImageSpacingCalibrated",(function(t){var n=t.detail,r=n.element,o=n.rowScale,a=n.columnScale,i=n.imageId,l=n.imageData,c=n.worldToIndex;if((0,Y.getEnabledElement)(r).viewport instanceof Y.VolumeViewport)throw new Error("Cannot calibrate a volume viewport");var s=l.getIndexToWorld(),d=Y.utilities.imageIdToURI(i),u=Ze();u.getFramesOfReference().forEach((function(t){var n=u.getAnnotations(t)[e.getToolName()];n&&n.length&&(n.forEach((function(e){Y.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=rc.vec4.fromValues.apply(rc.vec4,Ir(e).concat([1])),n=rc.vec4.fromValues(0,0,0,1),r=rc.vec4.create();rc.vec4.transformMat4(r,t,c);var i=[a*r[0],o*r[1],r[2]];return rc.vec4.transformMat4(n,rc.vec4.fromValues(i[0],i[1],i[2],1),s),n.slice(0,3)})))})),Ar(r))}))})),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length)return cs((0,Y.getEnabledElement)(e).viewport,t)}},{key:"getReferencedImageId",value:function(e,t,n,r){var o,a=this.getTargetId(e);if(e instanceof Y.StackViewport)o=a.split("imageId:")[1];else{var i=a.split("volumeId:")[1],l=Y.cache.getVolume(i);o=Y.utilities.getClosestImageId(l,t,n,r)}return o}},{key:"getStyle",value:function(e,t,n){return Tl(e,t,ss(n),this.mode)}}]),o}(va);Q(ds,"toolName",void 0),ds.toolName="AnnotationDisplayTool";var us=ds;function vs(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 fs(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)?fs(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 fs(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 gs=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e;X(this,o);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return Q(Qo(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,c=vs(n);try{for(c.s();!(r=c.n()).done;){var s=r.value;if(!ie(s)&&xe(s.annotationUID)){var d=s.data,u=d.handles?d.handles.activeHandleIndex:void 0,v=e._imagePointNearToolOrHandle(a,s,i,6),f=v&&!s.highlighted,g=!v&&s.highlighted;f||g?(s.highlighted=!s.highlighted,l=!0):d.handles&&d.handles.activeHandleIndex!==u&&(l=!0)}}}catch(e){c.e(e)}finally{c.f()}return l})),e}return Z(o,[{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=t.data,i=a.handles,l=i.points,c=i.textBox,s=c.worldBoundingBox;if(s){var d={topLeft:o.worldToCanvas(s.topLeft),topRight:o.worldToCanvas(s.topRight),bottomLeft:o.worldToCanvas(s.bottomLeft),bottomRight:o.worldToCanvas(s.bottomRight)};if(n[0]>=d.topLeft[0]&&n[0]<=d.bottomRight[0]&&n[1]>=d.topLeft[1]&&n[1]<=d.bottomRight[1])return a.handles.activeHandleIndex=null,c}for(var u=0;u<l.length;u++){var v=l[u],f=o.worldToCanvas(v);if(!0==rc.vec2.distance(n,f)<r)return a.handles.activeHandleIndex=u,v}a.handles.activeHandleIndex=null}},{key:"getLinkedTextBoxStyle",value:function(e,t){return{fontFamily:this.getStyle("textBoxFontFamily",e,t),fontSize:this.getStyle("textBoxFontSize",e,t),color:this.getStyle("textBoxColor",e,t),shadow:this.getStyle("textBoxShadow",e,t),background:this.getStyle("textBoxBackground",e,t),lineWidth:this.getStyle("textBoxLinkLineWidth",e,t),lineDash:this.getStyle("textBoxLinkLineDash",e,t)}}},{key:"_imagePointNearToolOrHandle",value:function(e,t,n,r){return!!this.getHandleNearImagePoint(e,t,n,r)||!!this.isPointNearTool(e,t,n,r,"mouse")||void 0}}]),o}(us);Q(gs,"toolName",void 0),gs.toolName="AnnotationTool";var hs=gs;function ps(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}function ms(e,t,n){var r=ps(e,t);if(0===r)return ps(n,e);var o=((n[0]-e[0])*(t[0]-e[0])+(n[1]-e[1])*(t[1]-e[1]))/r;return ps(n,o<0?e:o>1?t:[e[0]+o*(t[0]-e[0]),e[1]+o*(t[1]-e[1])])}function ws(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(ms(e,t,n))}function Es(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=Un(e,4),r=n[0],o=n[1],a=n[2],i=n[3],l=655535,c=function(e,t,n,r){return{top:[[e,t],[e+n,t]],right:[[e+n,t],[e+n,t+r]],bottom:[[e+n,t+r],[e,t+r]],left:[[e,t+r],[e,t]]}}(r,o,a,i);return Object.keys(c).forEach((function(e){var n=Un(c[e],2),r=ws(n[0],n[1],t);r<l&&(l=r)})),l}function ys(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 Is(e,t,n,r){var o=rc.vec3.create();rc.vec3.cross(o,t,e);var a=rc.vec3.fromValues.apply(rc.vec3,Ir(n)),i=rc.vec3.fromValues.apply(rc.vec3,Ir(r)),l=rc.vec3.create();rc.vec3.subtract(l,a,i);var c=rc.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=rc.vec3.dot(l,o)/(c*rc.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}function bs(e,t){return"CT"===e?"HU":"PT"===e&&!0===t?"SUV":""}function Cs(e,t){if(e instanceof Y.BaseVolumeViewport){var n=t.split("volumeId:")[1],r=Y.cache.getVolume(n);return r.scaling&&Object.keys(r.scaling).length>0}if(e instanceof Y.StackViewport)return e.getImageData().preScale.scaled;throw new Error("Viewport is not a valid type")}var Ts=Y.utilities.transformWorldToIndex,_s=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:f,referencedImageId:v},data:{label:"",handles:{points:[Ir(a),Ir(a),Ir(a),Ir(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:{}}};tt(g,o);var h=os(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(c,h),g})),Q(Qo(e),"isPointNearTool",(function(t,n,r,o){var a=(0,Y.getEnabledElement)(t).viewport,i=n.data.handles.points,l=a.worldToCanvas(i[0]),c=a.worldToCanvas(i[3]),s=e._getRectangleImageCoordinates([l,c]),d=[r[0],r[1]];return Es([s.left,s.top,s.width,s.height],d)<=o})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Vl(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),t.preventDefault()})),Q(Qo(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 c=os(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o),Vl(o);var s=(0,Y.getEnabledElement)(o).renderingEngine;Yo(s,c),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}}})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g,h,p,m,w,E,y,I,b=n.currentPoints,C=(0,Y.getEnabledElement)(r).viewport,T=C.worldToCanvas,_=C.canvasToWorld,O=b.world,D=s.handles.points;switch(D[l]=Ir(O),l){case 0:case 3:g=T(D[0]),h=[(m=T(D[3]))[0],g[1]],p=[g[0],m[1]],E=_(h),y=_(p),D[1]=E,D[2]=y;break;case 1:case 2:h=T(D[1]),g=[(p=T(D[2]))[0],h[1]],m=[h[0],p[1]],w=_(g),I=_(m),D[0]=w,D[3]=I}a.invalidated=!0}e.editData.hasMoved=!0;var S=(0,Y.getEnabledElement)(r).renderingEngine;Yo(S,i)})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_MOVE,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_MOVE,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=i.getCamera(),T=C.viewPlaneNormal,_=C.viewUp;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&(e._throttledCalculateCachedStats(f,T,_,d,t),i instanceof Y.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=Y.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=Y.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,T,_,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var O=void 0;if(xe(g)){ie(f)||e.editData||null===w||(O=[E[w]]),O&&bc(n,g,"0",O,{color:b});var D="".concat(g,"-rect");Ac(n,g,"0",E[0],E[3],{color:b,lineDash:I,lineWidth:y},D),a=!0;var S=Cs(i,s),x=e._getTextLines(h,s,S);if(x&&0!==x.length){if(!h.handles.textBox.hasMoved){var k=ys(E);h.handles.textBox.worldPosition=i.canvasToWorld(k)}var M=i.worldToCanvas(h.handles.textBox.worldPosition),P=Nc(n,g,"1",x,M,E,{},e.getLinkedTextBoxStyle(u,f)),R=P.x,N=P.y,A=P.width,L=P.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+A,N]),bottomLeft:i.canvasToWorld([R,N+L]),bottomRight:i.canvasToWorld([R+A,N+L])}}}}return a})),Q(Qo(e),"_getRectangleImageCoordinates",(function(e){var t=Un(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])}})),Q(Qo(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,a=r.mean,i=r.max,l=r.stdDev,c=r.Modality,s=r.areaUnit;if(void 0!==a){var d=[],u=bs(c,n);return d.push("Area: ".concat(o.toFixed(2)," ").concat(s,"²")),d.push("Mean: ".concat(a.toFixed(2)," ").concat(u)),d.push("Max: ".concat(i.toFixed(2)," ").concat(u)),d.push("Std Dev: ".concat(l.toFixed(2)," ").concat(u)),d}})),Q(Qo(e),"_calculateCachedStats",(function(t,n,r,o,a){for(var i=t.data,l=a.viewportId,c=a.renderingEngineId,s=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);if(h){var p=h.dimensions,m=h.imageData,w=h.metadata,E=h.hasPixelSpacing,y="getScalarData"in h?h.getScalarData():h.scalarData,I=Ts(m,s);I[0]=Math.floor(I[0]),I[1]=Math.floor(I[1]),I[2]=Math.floor(I[2]);var b=Ts(m,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]),T=Math.max(I[0],b[0]),_=Math.min(I[1],b[1]),O=Math.max(I[1],b[1]),D=Math.min(I[2],b[2]),S=Math.max(I[2],b[2]),x=Is(n,r,s,d),k=x.worldWidth*x.worldHeight,M=0,P=0,R=0,N=-1/0,A=p[0],L=p[0]*p[1],U=D;U<=S;U++)for(var V=_;V<=O;V++)for(var B=C;B<=T;B++){var j=y[U*L+V*A+B];j>N&&(N=j),M++,P+=j}P/=M;for(var H=D;H<=S;H++)for(var F=_;F<=O;F++)for(var W=C;W<=T;W++){var G=y[H*L+F*A+W]-P;R+=G*G}R/=M,R=Math.sqrt(R),u[g]={Modality:w.Modality,area:k,mean:P,stdDev:R,max:N,areaUnit:E?"mm":"px"}}else e.isHandleOutsideImage=!0,u[g]={Modality:w.Modality}}}t.invalidated=!1;var q=$.ANNOTATION_MODIFIED,z={annotation:t,viewportId:l,renderingEngineId:c};return(0,Y.triggerEvent)(Y.eventTarget,q,z),u})),Q(Qo(e),"_isInsideVolume",(function(e,t,n){return Y.utilities.indexWithinDimensions(e,n)&&Y.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o)}(hs);Q(_s,"toolName",void 0),_s.toolName="RectangleROI";var Os=_s;var Ds=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s,d,u=l.getCamera(),v=u.viewPlaneNormal,f=u.viewUp,g=e.getTargetId(l);if(l instanceof Y.StackViewport)s=g.split("imageId:")[1];else{d=g.split("volumeId:")[1];var h=Y.cache.getVolume(d);s=Y.utilities.getClosestImageId(h,a,v,f)}var p=l.getFrameOfReferenceUID(),m={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Ir(v),enabledElement:i,viewUp:Ir(f),FrameOfReferenceUID:p,referencedImageId:s,toolName:e.getToolName(),volumeId:d},data:{label:"",handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null},segmentationId:null}};tt(m,o);var w=os(o,e.getToolName());return e.editData={annotation:m,viewportIdsToRender:w,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(c,w),m})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=t.renderingEngineId,c=i.element,s=et(e.getToolName(),c);if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return i.worldToCanvas(e)}));d.annotationUID=f;var w=e.getStyle("lineWidth",d,v),E=e.getStyle("lineDash",d,v),y=e.getStyle("color",d,v);if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var I=$.ANNOTATION_MODIFIED,b={annotation:v,viewportId:i.id,renderingEngineId:l};(0,Y.triggerEvent)(Y.eventTarget,I,b);var C=void 0;xe(f)&&(ie(v)||e.editData||null===p||(C=[m[p]]),C&&bc(n,f,"0",C,{color:y}),Ac(n,f,"0",m[0],m[3],{color:y,lineDash:E,lineWidth:w}),a=!0)}return a})),e}return Z(o)}(Os);Q(Ds,"toolName",void 0),Ds.toolName="RectangleROIThreshold";var Ss=Ds;var xs=Y.utilities.transformWorldToIndex,ks=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s,d,u,v=l.getCamera(),f=v.viewPlaneNormal,g=v.viewUp;if(l instanceof Y.StackViewport)throw new Error("Stack Viewport Not implemented");if(u=e.getTargetId(l).split("volumeId:")[1],d=Y.cache.getVolume(u),!(s=Y.utilities.getClosestImageId(d,a,f,g)))throw new Error("This tool does not work on non-acquisition planes");var h=l.getCurrentImageIdIndex(),p=Y.utilities.getSpacingInNormalDirection(d,f),m=e._getEndSliceIndex(d,a,p,f),w=l.getFrameOfReferenceUID(),E={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Ir(f),enabledElement:i,viewUp:Ir(g),FrameOfReferenceUID:w,referencedImageId:s,toolName:e.getToolName(),volumeId:u,spacingInNormal:p},data:{label:"",startSlice:h,endSlice:m,cachedStats:{projectionPoints:[],projectionPointsImageIds:[s]},handles:{textBox:{hasMoved:!1,worldPosition:null,worldBoundingBox:null},points:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null},labelmapUID:null}};e._computeProjectionPoints(E,d),tt(E,o);var y=os(o,e.getToolName());return e.editData={annotation:E,viewportIdsToRender:y,handleIndex:3,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(c,y),E})),Q(Qo(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport,a=et(e.getToolName(),o.element);if(null==a||!a.length)return r;for(var i=o.getCurrentImageIdIndex(),l={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},c=0;c<a.length;c++){var s=a[c],d=s.annotationUID,u=s.data,v=u.startSlice,f=u.endSlice,g=u.handles,h=g.points,p=g.activeHandleIndex,m=h.map((function(e){return o.worldToCanvas(e)}));l.annotationUID=d;var w=e.getStyle("lineWidth",l,s),E=e.getStyle("lineDash",l,s),y=e.getStyle("color",l,s);if(!(i<Math.min(v,f)||i>Math.max(v,f))){s.invalidated&&e._throttledCalculateCachedStats(s,t);var I=!1;if(i!==v&&i!==f||(I=!0),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;var b=void 0;if(xe(d)){ie(s)||e.editData||null===p||!I||(b=[m[p]]),b&&bc(n,d,"0",b,{color:y});var C=E;I||(C=2),Ac(n,d,"0",m[0],m[3],{color:y,lineDash:C,lineWidth:w}),r=!0}}}return r})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStatsTool,100,{trailing:!0}),e}return Z(o,[{key:"_computeProjectionPoints",value:function(e,t){var n=e.data,r=e.metadata,o=r.viewPlaneNormal,a=r.spacingInNormal,i=t.imageData,l=n.startSlice,c=n.endSlice,s=n.handles.points,d=xs(i,s[0]);if(d[2]!==l)throw new Error("Start slice does not match");var u=rc.vec3.fromValues(d[0],d[1],c),v=rc.vec3.create();i.indexToWorldVec3(d,v);var f=rc.vec3.create();i.indexToWorldVec3(u,f);for(var g=rc.vec3.distance(v,f),h=[],p=function(e){h.push(s.map((function(t){var n=rc.vec3.create();return rc.vec3.scaleAndAdd(n,t,o,e),Array.from(n)})))},m=0;m<g;m+=a)p(m);n.cachedStats.projectionPoints=h;for(var w=[],E=0,y=h;E<y.length;E++){var I=y[E],b=Y.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),c=Y.cache.getVolume(l.split("volumeId:")[1]);this._computeProjectionPoints(e,c),e.invalidated=!1;var s=$.ANNOTATION_MODIFIED,d={annotation:e,viewportId:r,renderingEngineId:o};return(0,Y.triggerEvent)(Y.eventTarget,s,d),i}},{key:"_getEndSliceIndex",value:function(e,t,n,r){var o=this.configuration.numSlicesToPropagate,a=rc.vec3.create();rc.vec3.scaleAndAdd(a,t,r,o*n);for(var i,l=n/2,c=e.imageIds,s=0;s<c.length;s++){var d=c[s],u=Y.metaData.get("imagePlaneModule",d).imagePositionPatient,v=rc.vec3.create();rc.vec3.sub(v,a,u);var f=rc.vec3.dot(v,r);Math.abs(f)<l&&(i=s)}return i}}]),o}(Os);Q(ks,"toolName",void 0),ks.toolName="RectangleROIStartEndThreshold";var Ms=ks,Ps=function(e,t){var n=e.findIndex((function(e){var t=Un(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},Rs=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,c=t.imageData,s=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,Ir(v))}var f=d.map((function(e){return Y.utilities.transformWorldToIndex(c,e)})),g=Kc(f,s);!n.numSlicesToProject||null!==(a=i.cachedStats)&&void 0!==a&&a.projectionPoints||(g=Ps(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 Ns(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 As(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 Ls(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?As(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):As(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Us=function(e,t,n,r){var o,a=e.map((function(e){return ot(e)}));!function(e){var t,n=[Ss.toolName,Ms.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 Ns(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)?Ns(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);for(var i=0;i<n.length;i++)n[i].volume.getScalarData().length!==t.getScalarData().length&&0!==i||(o=Rs(a,n[i].volume,r));return Jc(t,n,Ls(Ls({},r),{},{boundsIJK:o}))},Vs=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(!(Y.utilities.isEqual(r,e[0].dimensions)&&Y.utilities.isEqual(n,e[0].direction)&&Y.utilities.isEqual(a,e[0].spacing)&&Y.utilities.isEqual(o,e[0].origin)))throw new Error("labelmaps must have the same size and shape")}));var r=e[0],o=r.getScalarData().constructor,a=new o(r.getScalarData().length);e.forEach((function(e){for(var n=e.getScalarData(),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,c=Y.volumeLoader.createLocalVolume(i,n,l);return c};function Bs(e,t){if(e===dt.Labelmap)return function(e){return e&&"boolean"==typeof e.renderOutline&&"number"==typeof e.outlineWidthActive&&"number"==typeof e.outlineWidthInactive&&"boolean"==typeof e.renderFill&&"boolean"==typeof e.renderFillInactive&&"number"==typeof e.fillAlpha&&"number"==typeof e.fillAlphaInactive&&"number"==typeof e.outlineOpacity&&"number"==typeof e.outlineOpacityInactive}(t);throw new Error("Unknown representation type: ".concat(e))}function js(e){var t=e.type;if(t===dt.Labelmap)return st();throw new Error("Unknown representation type: ".concat(t))}function Hs(e){return Fs.apply(this,arguments)}function Fs(){return(Fs=ga(pa().mark((function e(t){var n,r,o,a,i,l,c,s,d,u,v,f;return pa().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,Y.getEnabledElementByIds)(n,r)){e.next=5;break}throw new Error("element disabled");case 5:if((l=i.viewport)instanceof Y.VolumeViewport){e.next=8;break}throw new Error("Segmentation only supports VolumeViewport");case 8:if(c=l.getDefaultActor(),s=c.uid,void 0===a&&(a="".concat(s,"-based-segmentation-").concat(null!==(d=null==o?void 0:o.volumeId)&&void 0!==d?d:Y.utilities.uuidv4().slice(0,8))),!o){e.next=16;break}return u=(0,ee._cloneDeep)(o),e.next=14,Y.volumeLoader.createLocalVolume(u,a);case 14:e.next=19;break;case 16:return v=l.getDefaultActor(),f=v.uid,e.next=19,Y.volumeLoader.createAndCacheDerivedVolume(f,{volumeId:a});case 19:return e.abrupt("return",a);case 20:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ws(e,t){return e===t}function Gs(e){for(var t=0,n=0;n<e.length;n+=1)0!==e[n]&&(t+=1);return t}function qs(e,t,n){return(new Array(n+1).join(t)+e).slice(-n)}var zs=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.onFlood,o=n.onBoundary,a=n.equals||Ws,i=n.diagonals||!1,l=y(t),c=b(),s=[],d=[],u={},v={};for(s.push({currentArgs:t});s.length>0;)f(s.pop());return{flooded:d,boundaries:T()};function f(e){var t=e.currentArgs,n=e.previousArgs;g(t)||(h(t),p(t)?(m(t),E(t)):w(n))}function g(e){return!0===u[e]}function h(e){u[e]=!0}function p(e){var t=I(y,[e]);return I(a,[t,l])}function m(e){d.push(e),r&&r.apply(void 0,Ir(e))}function w(e){v[e]=e,o&&o.apply(void 0,Ir(e))}function E(e){for(var t=0;t<c.length;t+=1){for(var n=c[t],r=e.slice(0),o=0;o<e.length;o+=1)r[o]+=n[o];s.push({currentArgs:r,previousArgs:e})}}function y(t){return e.apply(void 0,Ir(t))}function I(e,t){try{return e.apply(void 0,Ir(t))}catch(e){return}}function b(){return C(t.length).filter((function(e){var t=Gs(e);return 0!==t&&(1===t||i)}))}function C(e){for(var t=[],n=function(e){return e.split("").map((function(e){return parseInt(e,10)-1}))},r=0;r<Math.pow(3,e);r+=1){var o=qs(r.toString(3),"0",e);t.push(n(o))}return t}function T(){var e=[];for(var t in v)void 0!==v[t]&&e.unshift(v[t]);return e}};function Ks(e,t){!function(e,t){var n=e.viewport,r=t.volume,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.points,c=r.imageData,s=r.dimensions,d=r.getScalarData(),u=[];$c(c,[l[0],l[1]],(function(e){var t=e.index,n=e.value;o.includes(n)||(d[t]=a,u.push(t))}),n);var v=s[0]*s[1],f=Math.floor(u[0]/v),g=Math.floor(u[u.length-1]/v);yt(i,Array.from({length:g-f+1},(function(e,t){return t+f})))}(e,t)}function Ys(e,t){Ks(e,Object.assign({},t,{segmentIndex:0}))}function $s(e){var t=Un(e,4),n=t[0],r=t[1],o=t[2],a=t[3];return[[o[0],r[1]],[a[0],n[1]]]}function Js(e,t){var n=e.center,r=e.xRadius,o=e.yRadius,a=e.zRadius,i=Un(t,3),l=i[0],c=i[1],s=i[2],d=Un(n,3),u=d[0],v=d[1],f=d[2],g=0;return 0!==r&&(g+=(l-u)*(l-u)/(r*r)),0!==o&&(g+=(c-v)*(c-v)/(o*o)),0!==a&&(g+=(s-f)*(s-f)/(a*a)),g<=1}var Zs=Y.utilities.transformWorldToIndex;function Xs(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=t.volume,o=t.imageVolume,a=t.points,i=t.segmentsLocked,l=t.segmentIndex,c=t.segmentationId,s=t.strategySpecificConfiguration,d=r.imageData,u=r.dimensions,v=r.getScalarData(),f=e.viewport,g=rc.vec3.fromValues(0,0,0);a.forEach((function(e){rc.vec3.add(g,g,e)})),rc.vec3.scale(g,g,1/a.length);var h=a.map((function(e){return f.worldToCanvas(e)})),p=$s(h),m=Un(p,2),w=m[0],E=m[1],y=f.canvasToWorld(w),I=f.canvasToWorld(E),b=[Zs(d,y),Zs(d,I)],C=Kc(b,u);if(C.every((function(e){var t=Un(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");var T={center:g,xRadius:Math.abs(y[0]-I[0])/2,yRadius:Math.abs(y[1]-I[1])/2,zRadius:Math.abs(y[2]-I[2])/2},_=new Set;zc(d,(function(e,t){return Js(T,e)}),n?function(e){var t=e.value,n=e.index,r=e.pointIJK;i.includes(t)||Qs(n,o,s)&&(v[n]=l,_.add(r[2]))}:function(e){var t=e.value,n=e.index,r=e.pointIJK;i.includes(t)||(v[n]=l,_.add(r[2]))},C);var O=Array.from(_);yt(c,O)}function Qs(e,t,n){var r=n.THRESHOLD_INSIDE_CIRCLE,o=t.getScalarData()[e],a=r.threshold;return a[0]<=o&&o<=a[1]}function ed(e,t){Xs(e,t,!1)}function td(e,t){var n=t.volume,r=t.imageVolume;if(!Y.utilities.isEqual(n.dimensions,r.dimensions)||!Y.utilities.isEqual(n.direction,r.direction))throw new Error("Only source data the same dimensions/size/orientation as the segmentation currently supported.");Xs(e,t,!0)}function nd(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 rd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nd(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function od(e,t){ed(e,rd(rd({},t),{},{segmentIndex:0}))}function ad(e){var t=Ct().getSegmentationRepresentations(e);if(t)return t.find((function(e){return e.active}))}function id(e,t){Ct().setActiveSegmentationRepresentation(e,t),wt(e,t)}function ld(e,t){var n=Tt(e);if(!n)throw new Error("No segmentation state found for ".concat(e));return n.segmentsLocked.has(t)}function cd(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Tt(e);if(!r)throw new Error("No segmentation state found for ".concat(e));var o=r.segmentsLocked;n?o.add(t):o.delete(t),Et(e)}function sd(e){var t=Tt(e);if(!t)throw new Error("No segmentation state found for ".concat(e));var n=t.segmentsLocked;return Array.from(n)}function dd(e,t){var n=Tt(e);(null==n?void 0:n.activeSegmentIndex)!==t&&(n.activeSegmentIndex=t,Et(e))}function ud(e){var t=Tt(e);if(t)return t.activeSegmentIndex}function vd(e,t){if(!e)throw new Error("addColorLUT: colorLUT is required");Y.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])),Wt(e,t)}function fd(e,t,n){var r=Vt(e,t);if(!r)throw new Error("setColorLUT: could not find segmentation representation with UID ".concat(t));if(!Ft(n))throw new Error("setColorLUT: could not find colorLUT with index ".concat(n));r.colorLUTIndex=n,wt(e,t)}function gd(e,t,n){var r=Vt(e,t);if(!r)throw new Error("segmentation representation with UID ".concat(t," does not exist for tool group ").concat(e));return Ft(r.colorLUTIndex)[n]}function hd(e,t,n,r){for(var o=gd(e,t,n),a=0;a<r.length;a++)o[a]=r[a];wt(e,t)}var pd=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{strategies:{FILL_INSIDE_CIRCLE:ed,THRESHOLD_INSIDE_CIRCLE:td,ERASE_INSIDE_CIRCLE:od,FILL_INSIDE_SPHERE:Ks,ERASE_INSIDE_SPHERE:Ys},strategySpecificConfiguration:{THRESHOLD_INSIDE_CIRCLE:{threshold:[-150,-70]}},defaultStrategy:"FILL_INSIDE_CIRCLE",activeStrategy:"FILL_INSIDE_CIRCLE",brushSize:25}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"_editData",void 0),Q(Qo(e),"_hoverData",void 0),Q(Qo(e),"onSetToolPassive",(function(){e.disableCursor()})),Q(Qo(e),"onSetToolEnabled",(function(){e.disableCursor()})),Q(Qo(e),"onSetToolDisabled",(function(){e.disableCursor()})),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail.element,r=(0,Y.getEnabledElement)(n),o=r.viewport,a=r.renderingEngine;if(o instanceof Y.StackViewport)throw new Error("Not implemented yet");var i=ad(e.toolGroupId);if(!i)throw new Error("No active segmentation detected, create one before using the brush tool");var l=i.segmentationId,c=i.type,s=sd(l),d=Tt(l).representationData[c].volumeId,u=Y.cache.getVolume(d),v=o.getActors()[0].uid,f=Y.cache.getVolume(v),g=[o.id];return e._editData={segmentation:u,imageVolume:f,segmentsLocked:s},e._activateDraw(n),Vl(n),t.preventDefault(),Yo(a,g),!0})),Q(Qo(e),"mouseMoveCallback",(function(t){e.mode===Ke.Active&&e.updateCursor(t)})),Q(Qo(e),"_dragCallback",(function(t){var n=t.detail.element,r=(0,Y.getEnabledElement)(n),o=r.renderingEngine,a=e._editData,i=a.imageVolume,l=a.segmentation,c=a.segmentsLocked;e.updateCursor(t);var s=e._hoverData,d=s.segmentIndex,u=s.segmentationId,v=s.segmentationRepresentationUID,f=s.brushCursor,g=s.viewportIdsToRender,h=f.data,p=f.metadata,m=p.viewPlaneNormal,w=p.viewUp;Yo(o,g);var E={points:h.handles.points,volume:l,imageVolume:i,segmentIndex:d,segmentsLocked:c,viewPlaneNormal:m,toolGroupId:e.toolGroupId,segmentationId:u,segmentationRepresentationUID:v,viewUp:w,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(r,E)})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e._editData,o=r.imageVolume,a=r.segmentation,i=r.segmentsLocked,l=e._hoverData,c=l.segmentIndex,s=l.segmentationId,d=l.segmentationRepresentationUID,u=l.brushCursor,v=u.data,f=u.metadata,g=f.viewPlaneNormal,h=f.viewUp;e._deactivateDraw(n),Ul(n);var p=(0,Y.getEnabledElement)(n),m=p.viewport;if(e._editData=null,e.updateCursor(t),m instanceof Y.StackViewport)throw new Error("Not implemented yet");var w={points:v.handles.points,volume:a,imageVolume:o,segmentIndex:c,segmentsLocked:i,viewPlaneNormal:g,toolGroupId:e.toolGroupId,segmentationId:s,segmentationRepresentationUID:d,viewUp:h,strategySpecificConfiguration:e.configuration.strategySpecificConfiguration};e.applyActiveStrategy(p,w)})),Q(Qo(e),"_activateDraw",(function(t){t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback)})),e}return Z(o,[{key:"disableCursor",value:function(){this._hoverData=void 0}},{key:"updateCursor",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints.canvas,o=(0,Y.getEnabledElement)(n),a=o.renderingEngine,i=o.viewport,l=i.getCamera(),c=l.viewPlaneNormal,s=l.viewUp,d=this.toolGroupId,u=ad(d);if(u){var v=u.segmentationRepresentationUID,f=u.segmentationId,g=ud(f),h=gd(d,v,g),p=[i.id],m={metadata:{viewPlaneNormal:Ir(c),viewUp:Ir(s),FrameOfReferenceUID:i.getFrameOfReferenceUID(),referencedImageId:"",toolName:this.getToolName(),segmentColor:h},data:{}};this._hoverData={brushCursor:m,centerCanvas:r,segmentIndex:g,segmentationId:f,segmentationRepresentationUID:v,segmentColor:h,viewportIdsToRender:p},this._calculateCursor(n,r),Yo(a,p)}else console.warn("No active segmentation detected, create one before using the brush tool")}},{key:"_calculateCursor",value:function(e,t){var n=(0,Y.getEnabledElement)(e).viewport.canvasToWorld,r=this.configuration.brushSize,o=[t[0],t[1]+r],a=[t[0],t[1]-r],i=[t[0]-r,t[1]],l=[t[0]+r,t[1]],c=this._hoverData.brushCursor.data;void 0===c.handles&&(c.handles={}),c.handles.points=[n(o),n(a),n(i),n(l)],c.invalidated=!1}},{key:"invalidateBrushCursor",value:function(){void 0!==this._hoverData&&(this._hoverData.brushCursor.data.invalidated=!0)}},{key:"renderAnnotation",value:function(e,t){if(this._hoverData){var n=e.viewport;if(this._hoverData.viewportIdsToRender.includes(n.id)){var r=this._hoverData.brushCursor;if(!0===r.data.invalidated){var o=this._hoverData.centerCanvas,a=n.element;this._calculateCursor(a,o)}var i=r.metadata,l=i.brushCursorUID,c=r.data.handles.points.map((function(e){return n.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");n.getRenderingEngine()?yc(t,l,"0",u,v,{color:f}):console.warn("Rendering Engine has been destroyed")}}}}]),o}(va);Q(pd,"toolName",void 0),pd.toolName="Brush";var md=pd;function wd(e){var t=Xo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length)return Object.values(n).filter((function(e){return e instanceof md}))}}function Ed(e,t){var n=Xo(e);if(void 0!==n){wd(e).forEach((function(e){e.configuration.brushSize=t,e.invalidateBrushCursor()}));var r=n.getViewportsInfo(),o=Object.keys(r).map((function(e){return r[e]}));if(o.length){var a=o[0].renderingEngineId,i=n.getViewportIds(),l=(0,Y.getRenderingEngine)(a);Yo(l,i)}}}function yd(e){var t=Xo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=wd(e)[0];if(r)return r.configuration.brushSize}}}function Id(e,t){var n=Xo(e);if(void 0!==n){wd(e).forEach((function(e){e.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold=t}));var r=n.getViewportsInfo();if(r.length){var o=r[0].renderingEngineId,a=n.getViewportIds(),i=(0,Y.getRenderingEngine)(o);Yo(i,a)}}}function bd(e){var t=Xo(e);if(void 0!==t){var n=t._toolInstances;if(Object.keys(n).length){var r=wd(e)[0];if(r)return r.configuration.strategySpecificConfiguration.THRESHOLD_INSIDE_CIRCLE.threshold}}}var Cd=1e-6;function Td(e,t,n){var r=Un(n,2),o=r[0],a=r[1];if(Math.abs(t)<Cd)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 _d(e,t,n,r,o){var a=Un(e,2),i=a[0],l=a[1],c=Un(t,2),s=c[0]-i,d=c[1]-l;if(void 0===r||void 0===o?(r=e,o=t):(r[0]=e[0],r[1]=e[1],o[0]=t[0],o[1]=t[1]),Math.abs(s)<Cd&&Math.abs(d)<Cd&&i>=n[0]&&i<=n[2]&&l>=n[1]&&l<=n[3])return 1;var u=[0,1];if(Td(n[0]-i,s,u)&&Td(i-n[2],-s,u)&&Td(n[1]-l,d,u)&&Td(l-n[3],-d,u)){var v=u[0],f=u[1];return f<1&&(o[0]=i+f*s,o[1]=l+f*d),v>0&&(r[0]+=v*s,r[1]+=v*d),1}return 0}function Od(e){return"number"==typeof e?e?e<0?-1:1:e==e?0:NaN:NaN}function Dd(e,t,n,r){var o=Un(e,2),a=o[0],i=o[1],l=Un(t,2),c=l[0],s=l[1],d=Un(n,2),u=d[0],v=d[1],f=Un(r,2),g=f[0],h=f[1],p=s-i,m=a-c,w=c*i-a*s,E=p*u+m*v+w,y=p*g+m*h+w;if(0===E||0===y||Od(E)!==Od(y)){var I=h-v,b=u-g,C=g*v-u*h,T=I*a+b*i+C,_=I*c+b*s+C;if(0===T||0===_||Od(T)!==Od(_)){var O=p*b-I*m;return[(m*C-b*w)/O,(I*w-p*C)/O]}}}function Sd(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],c=e[i];if(kd(t,n,l,c))return[o,i];o=i}}function xd(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 c=e[o],s=e[l];kd(t,n,c,s)&&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(rc.vec2.distance(o,t))}));var u=Math.min.apply(Math,d),v=d.indexOf(u);return{segment:i[v],distance:u}}}function kd(e,t,n,r){var o=!1,a=[Md(e,t,n),Md(e,t,r),Md(n,r,e),Md(n,r,t)];return a[0]!==a[1]&&a[2]!==a[3]||((0===a[0]&&Pd(e,n,t)||0===a[1]&&Pd(e,r,t)||0===a[2]&&Pd(n,e,r)||0===a[3]&&Pd(n,t,r))&&(o=!0),o)}function Md(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 Pd(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 Rd=.001,Nd=function(e,t){var n,r,o;if(e instanceof Y.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,c=i.spacing,s=e.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=l.slice(0,3),f=l.slice(3,6),g=l.slice(6,9),h=rc.vec3.create();rc.vec3.cross(h,u,d);var p,m=Math.abs(rc.vec3.dot(h,v)),w=Math.abs(rc.vec3.dot(h,f)),E=Math.abs(rc.vec3.dot(h,g));if(Math.abs(1-m)<Rd)p=c[0],r=v;else if(Math.abs(1-w)<Rd)p=c[1],r=f;else{if(!(Math.abs(1-E)<Rd))throw new Error("No support yet for oblique plane planar contours");p=c[2],r=g}var y,I=Math.abs(rc.vec3.dot(d,v)),b=Math.abs(rc.vec3.dot(d,f)),C=Math.abs(rc.vec3.dot(d,g));if(Math.abs(1-I)<Rd)y=c[0],o=v;else if(Math.abs(1-b)<Rd)y=c[1],o=f;else{if(!(Math.abs(1-C)<Rd))throw new Error("No support yet for oblique plane planar contours");y=c[2],o=g}n=[p,y]}return{spacing:[n[0]/t,n[1]/t],xDir:r,yDir:o}},Ad=function(e,t,n){return rc.vec2.dist(e,t)<n},Ld=function(e,t,n,r){var o=r.xDir,a=r.yDir,i=r.spacing,l=(0,Y.getEnabledElement)(e).viewport,c=l.canvasToWorld(t[t.length-1]),s=l.canvasToWorld(n),d=rc.vec3.create();rc.vec3.subtract(d,s,c);var u=Math.abs(rc.vec3.dot(d,o)),v=Math.abs(rc.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=rc.vec2.dist(g,n),p=rc.vec2.create();rc.vec2.subtract(p,n,g),rc.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},Ud=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 c=i/l,s=[a[0]/l,a[1]/l],d=[s[0]*c,s[1]*c],u=[t[0]+d[0],t[1]+d[1]];return!(rc.vec2.distance(e,u)>r||rc.vec2.distance(t,u)>rc.vec2.distance(t,n))};function Vd(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 Bd(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=Un(e,2),r=n[0],o=n[1],a=Un(t,2),i=a[0],l=a[1];return Math.sqrt(Math.pow(r-i,2)+Math.pow(o-l,2))}var jd=f(807),Hd=f.n(jd);function Fd(e,t,n,r){var o,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.25,i=e.getCamera(),l=i.position,c=Y.utilities.getTargetVolumeAndSpacingInNormalDir(e,i,n),s=c.spacingInNormalDirection,d=s*a,u=e.getBounds(),v=u[0],f=u[1],g=[0,0,0],h=[0,0,0];Hd().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],Gd(h,u)){var w=e.getIntensityFromWorld(h),E=r(w,h);E&&(o=E)}}return o}var Wd,Gd=function(e,t){var n=Un(t,6),r=n[0],o=n[1],a=n[2],i=n[3],l=n[4],c=n[5];return e[0]>r&&e[0]<o&&e[1]>a&&e[1]<i&&e[2]>l&&e[2]<c},qd={filterAnnotationsWithinSlice:ls,getWorldWidthAndHeightFromCorners:Is,filterAnnotationsForDisplay:cs,getPointInLineOfSightWithCriteria:Fd};function zd(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 Kd(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"}(Wd||(Wd={}));var Yd=Wd,$d={};function Jd(e,t){var n=(0,Y.getEnabledElement)(e).viewportId;$d[n]=t}function Zd(e){var t=(0,Y.getEnabledElement)(e).viewportId;return $d[t]}var Xd=Y.utilities.triggerEvent;function Qd(e,t){var n,r;if(void 0===e)throw new Error("playClip: element must not be undefined");var o=(0,Y.getEnabledElement)(e);if(!o)throw new Error("playClip: element must be a valid Cornerstone enabled element");var a=o.viewport;if(!(a instanceof Y.StackViewport))throw new Error("playClip: element must be a stack viewport, volume viewport playClip not yet implemented");var i,l,c,s,d=a.getTargetImageIdIndex(),u=a.getImageIds(),v=Zd(e);if(v?tu(v):(v={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!==(c=t.reverse)&&void 0!==c&&c,loop:null===(s=t.loop)||void 0===s||s},Jd(e,v)),(t.framesPerSecond<0||t.framesPerSecond>0)&&(v.framesPerSecond=Number(t.framesPerSecond),v.reverse=v.framesPerSecond<0,v.ignoreFrameTimeVector=!0),!0!==v.ignoreFrameTimeVector&&v.frameTimeVector&&v.frameTimeVector.length===u.length){var f=function(e,t){var n,r,o,a=0,i=e.length,l=[],c=!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&&(c=!0),a+=o;return l.length>0&&(o=c?a/l.length|0:l[0],l.push(o)),{timeouts:l,isTimeVarying:c}}(v.frameTimeVector,v.speed),g=f.timeouts,h=f.isTimeVarying;n=g,r=h}var p=function(){var t={targetImageIdIndex:a.getTargetImageIdIndex(),imageIds:a.getImageIds()},n=t.targetImageIdIndex,r=t.imageIds.length;if(v.reverse?n--:n++,v.loop||!(n<0||n>=r)){if(n>=r&&(n=0),n<0&&(n=r-1),n!==t.targetImageIdIndex){var o=n-t.targetImageIdIndex;a.scroll(o,!0,!0)}}else{tu(v);var i={element:e};Xd(e,Yd.CLIP_STOPPED,i)}};n&&n.length>0&&r?(v.usingFrameTimeVector=!0,v.intervalId=window.setTimeout((function e(){v.intervalId=window.setTimeout(e,n[d]),p()}),0)):(v.usingFrameTimeVector=!1,v.intervalId=window.setInterval(p,1e3/Math.abs(v.framesPerSecond)));var m={element:e};Xd(e,Yd.CLIP_STARTED,m)}function eu(e){var t=Zd((0,Y.getEnabledElement)(e).viewport.element);t&&tu(t)}function tu(e){var t=e.intervalId;void 0!==t&&(e.intervalId=void 0,e.usingFrameTimeVector?clearTimeout(t):clearInterval(t))}function nu(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 ru(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e(r/(t-1));return n}function ou(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,au),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 au(e){return e.length}function iu(){return ou(arguments)}function lu(e,t,n,r){var o,a,i=n-t+1,l=null!==(o=Math.floor(r/100*i))&&void 0!==o?o:1,c=null!==(a=Math.floor(i/l))&&void 0!==a?a:1;if(isNaN(i)||!i||!c)return e;if(i/c<2)return e;var s=Math.max(0,t),d=Math.min(e.length-1,n),u=e.slice(0,s),v=e.slice(d+1,e.length),f=function(e,t){if(!t||0===t.length||t.length===e.length)return e;var n,r=t[t.length-1]-t[0]+1,o=nu(t.map((function(t){return e[t][0]}))),a=nu(t.map((function(t){return e[t][1]})));if(3===(null===(n=e[0])||void 0===n?void 0:n.length)){var i=nu(t.map((function(t){return e[t][2]})));return iu(ru(o,r),ru(a,r),ru(i,r))}return iu(ru(o,r),ru(a,r))}(e,function(e,t){for(var n=[],r=Un(t,2),o=r[0],a=r[1],i=a-o+1,l=Math.floor(i/e),c=0,s=Math.round((i-1)/(l-1)*c)+o;s<=a;)n.push(s),c++,s=Math.round((i-1)/(l-1)*c)+o;return n}(c,[s,d]));return[].concat(Ir(u),Ir(f),Ir(v))}function cu(e){var t,n;return!0===(null==e||null===(t=e.interpolation)||void 0===t?void 0:t.interpolateOnAdd)||!0===(null==e||null===(n=e.interpolation)||void 0===n?void 0:n.interpolateOnEdit)}function su(e,t,n){return(e+t+n)%t}function du(e,t,n,r){var o=Un(e,3),a=o[1],i=o[2],l=Un(t,3),c=l[1],s=l[2],d=i.length,u=s.length,v=e[0],f=t[0];if(!(i[v]&&s[f]&&i[a]&&s[c]))return[void 0,void 0];for(;v!==a&&f!==c;){if(n(s[f],i[v]))return[v,f];v=su(v,d,r),f=su(f,u,r)}return[void 0,void 0]}function uu(e,t,n){var r=e.interpolation,o=t;if(r){var a=r.knotsRatioPercentageOnAdd,i=r.knotsRatioPercentageOnEdit,l=r.interpolateOnAdd,c=void 0!==l&&l,s=r.interpolateOnEdit,d=n?i:a;if(n?void 0!==s&&s:c){var u=Un(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===Bd(e[n],t[r]))return[n,r]}(e,t)||[],r=Un(n,2),o=r[0],a=r[1],i=function(e,t){return!1===function(e,t){return Bd(e,t)<.001}(e,t)},l=Un(du([su(o,e.length,1),o,e],[su(a,t.length,1),a,t],i,1),2),c=l[0],s=l[1];return[c,Un(du([su(c,e.length,-1),c,e],[su(s,t.length,-1),s,t],i,-1),1)[0]]}(t,n):[0,t.length-1],2),v=u[0],f=u[1];return t[v]&&t[f]?lu(t,v,f,d):t}}return o}function vu(e,t){var n=e[0],r=e[e.length-1],o=rc.vec2.create();rc.vec2.set(o,r[0]-n[0],r[1]-n[1]),rc.vec2.normalize(o,o);var a=rc.vec2.create(),i=rc.vec2.create();rc.vec2.set(a,-o[1],o[0]),rc.vec2.set(i,o[1],-o[0]);for(var l=[(n[0]+r[0])/2,(n[1]+r[1])/2],c={dist:0,index:null},s=0;s<e.length;s++){var d=e[s],u=rc.vec2.dist(d,l);u>c.dist&&(c.dist=u,c.index=s)}return[e[c.index],l].map(t.canvasToWorld)}var fu=Ld,gu=Ad,hu=Sd,pu=Nd;function mu(e,t,n){this.isDrawing=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,Y.getEnabledElement)(a).viewport,c=pu(l,this.configuration.subPixelResolution),s=c.spacing,d=c.xDir,u=c.yDir;this.drawData={canvasPoints:[i],polylineIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:s,xDir:d,yDir:u},ze.isInteractingWithTool=!0,a.addEventListener($.MOUSE_UP,this.mouseUpDrawCallback),a.addEventListener($.MOUSE_DRAG,this.mouseDragDrawCallback),a.addEventListener($.MOUSE_CLICK,this.mouseUpDrawCallback),a.addEventListener($.TOUCH_END,this.mouseUpDrawCallback),a.addEventListener($.TOUCH_DRAG,this.mouseDragDrawCallback),a.addEventListener($.TOUCH_TAP,this.mouseUpDrawCallback),Vl(a)}function wu(e){ze.isInteractingWithTool=!1,e.removeEventListener($.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener($.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener($.MOUSE_CLICK,this.mouseUpDrawCallback),e.removeEventListener($.TOUCH_END,this.mouseUpDrawCallback),e.removeEventListener($.TOUCH_DRAG,this.mouseDragDrawCallback),e.removeEventListener($.TOUCH_TAP,this.mouseUpDrawCallback),Ul(e)}function Eu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,Y.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.drawData,h=g.polylineIndex,p=g.canvasPoints,m=p[p.length-1],w=c.canvasToWorld(m),E=rc.vec3.create();rc.vec3.subtract(E,o,w);var y=Math.abs(rc.vec3.dot(E,u)),I=Math.abs(rc.vec3.dot(E,v));if(!(y<=f[0]&&I<=f[1])){var b=this.findCrossingIndexDuringCreate(e);if(void 0!==b)this.applyCreateOnCross(e,b);else{var C=fu(r,p,a,this.commonData);this.drawData.polylineIndex=h+C}Yo(l,d)}}function yu(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1],a=e.detail.element;t&&!gu(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(a):this.completeDrawClosedContour(a)}function Iu(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,Y.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine;fu(e,t,t[0],this.commonData),t.pop();var c=(cu(this.configuration)?uu(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!1,this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Yo(l,o),this.deactivateDraw(e),!0}function bu(){var e=this.drawData.canvasPoints,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),o=hu(r,n[0],n[1],!1);if(o){var a=o[1];this.drawData.canvasPoints=e.splice(0,a)}}function Cu(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,Y.getEnabledElement)(e),i=a.viewport,l=a.renderingEngine,c=(cu(this.configuration)?uu(this.configuration,t):t).map((function(e){return i.canvasToWorld(e)}));return r.data.polyline=c,r.data.isOpenContour=!0,r.data.handles.points=[c[0],c[c.length-1]],r.data.isOpenUShapeContour&&(r.data.openUShapeContourVectorToPeak=vu(t,i)),this.triggerAnnotationCompleted(r),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Yo(l,o),this.deactivateDraw(e),!0}function Tu(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=hu(i,o,a,!1);if(void 0!==l)return l[0]}function _u(e,t){var n=e.detail.element,r=this.drawData.canvasPoints,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender;fu(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 Ou(e){var t=this.configuration.allowOpenContours,n=this.drawData.canvasPoints,r=n[0],o=n[n.length-1];t&&!gu(r,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e):this.completeDrawClosedContour(e)}function Du(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,Y.getEnabledElement)(e).renderingEngine;return rt(r.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,Yo(a,o),this.deactivateDraw(e),!0}return!1}var Su=function(e){e.activateDraw=mu.bind(e),e.deactivateDraw=wu.bind(e),e.applyCreateOnCross=_u.bind(e),e.findCrossingIndexDuringCreate=Tu.bind(e),e.completeDrawOpenContour=Cu.bind(e),e.removeCrossedLinesOnCompleteDraw=bu.bind(e),e.mouseDragDrawCallback=Eu.bind(e),e.mouseUpDrawCallback=yu.bind(e),e.completeDrawClosedContour=Iu.bind(e),e.cancelDrawing=Ou.bind(e),e.haltDrawing=Du.bind(e)},xu=Ld,ku=Sd;function Mu(e,t){var n=e.detail,r=n.element,o=n.currentPoints,a=n.lastPoints,i=o.canvas,l=a.canvas,c=this.editData,s=c.editCanvasPoints,d=c.prevCanvasPoints,u=ku(d,i,l,t);if(u)this.editData.startCrossingIndex=u[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(s.length>this.configuration.checkCanvasEditFallbackProximity){for(var v=s[0],f=[],g=0;g<d.length;g++){var h=d[g],p=rc.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 E=rc.vec2.create();rc.vec2.subtract(E,s[1],s[0]),rc.vec2.normalize(E,E);var y=[s[0][0]-6*E[0],s[0][1]-6*E[1]],I=ku(d,y,s[0],t);if(I){var b=[y];xu(r,b,s[0],this.commonData),s.unshift.apply(s,b),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=s.length-1,this.editData.startCrossingIndex=I[0]}}}function Pu(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++,ku(r,i[0],i[1],e))break}n.splice(0,o),this.editData.editIndex=n.length-1}function Ru(e,t){var n=e.detail,r=n.currentPoints,o=n.lastPoints,a=r.canvas,i=o.canvas,l=this.editData.prevCanvasPoints;return!!ku(l,a,i,t)}function Nu(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=!!ku(n,a[0],a[1],e);if(r.pop(),i)break}}function Au(){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=rc.vec2.distance(i,r);o.push({distance:l,index:a})}o.sort((function(e,t){return e.distance-t.distance}));for(var c=t.slice(0,-1),s=0;s<o.length;s++){var d=o[s].index,u=n[d],v=t[t.length-1];if(!ku(c,u,v,!1))return d}return-1}}function Lu(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),c=ku(l,o,a,!1);if(c)for(var s=c[0],d=i.length-s,u=0;u<d;u++)i.pop()}var Uu=function(e){e.checkForFirstCrossing=Mu.bind(e),e.removePointsUpUntilFirstCrossing=Pu.bind(e),e.checkForSecondCrossing=Ru.bind(e),e.findSnapIndex=Au.bind(e),e.removePointsAfterSecondCrossing=Nu.bind(e),e.checkAndRemoveCrossesOnEditLine=Lu.bind(e)},Vu=Nd,Bu=Ld,ju=Vd;function Hu(e,t,n){this.isEditingClosed=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,Y.getEnabledElement)(a).viewport,c=t.data.polyline.map(l.worldToCanvas),s=Vu(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},ze.isInteractingWithTool=!0,a.addEventListener($.MOUSE_UP,this.mouseUpClosedContourEditCallback),a.addEventListener($.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener($.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),a.addEventListener($.TOUCH_END,this.mouseUpClosedContourEditCallback),a.addEventListener($.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),a.addEventListener($.TOUCH_TAP,this.mouseUpClosedContourEditCallback),Vl(a)}function Fu(e){ze.isInteractingWithTool=!1,e.removeEventListener($.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener($.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener($.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),e.removeEventListener($.TOUCH_END,this.mouseUpClosedContourEditCallback),e.removeEventListener($.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener($.TOUCH_TAP,this.mouseUpClosedContourEditCallback),Ul(e)}function Wu(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,Y.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=c.canvasToWorld(w),y=rc.vec3.create();rc.vec3.subtract(y,o,E);var I=Math.abs(rc.vec3.dot(y,u)),b=Math.abs(rc.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Bu(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)),Yo(l,d)):this.finishEditAndStartNewEdit(e)}}function Gu(e){var t=e.detail.element,n=(0,Y.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.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:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},Yo(o,l)}function qu(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,c=e.detail.element,s=Ir(r);Bu(c,s,n[a],this.commonData),s.length>r.length&&s.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=rc.vec2.distance(n[i],s[0]),u=rc.vec2.distance(n[i],s[s.length-1]),v=rc.vec2.distance(n[l],s[0]),f=rc.vec2.distance(n[l],s[s.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 E=0;E<s.length;E++){var y=s[E];g.push([y[0],y[1]])}else for(var I=s.length-1;I>=0;I--){var b=s[I];g.push([b[0],b[1]])}for(var C=l;C<n.length;C++){var T=n[C];g.push([T[0],T[1]])}for(var _=[],O=i;O<l;O++){var D=n[O];_.push([D[0],D[1]])}if((m=v+u)<(w=f+d))for(var S=0;S<s.length;S++){var x=s[S];_.push([x[0],x[1]])}else for(var k=s.length-1;k>=0;k--){var M=s[k];_.push([M[0],M[1]])}return ju(g)>ju(_)?g:_}}function zu(e){var t=e.detail.element;this.completeClosedContourEdit(t)}function Ku(e){var t=(0,Y.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(cu(this.configuration)?uu(this.configuration,c,s):c).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,Yo(r,i),this.deactivateClosedContourEdit(e)}function Yu(e){this.completeClosedContourEdit(e)}var $u=function(e){e.activateClosedContourEdit=Hu.bind(e),e.deactivateClosedContourEdit=Fu.bind(e),e.mouseDragClosedContourEditCallback=Wu.bind(e),e.mouseUpClosedContourEditCallback=zu.bind(e),e.finishEditAndStartNewEdit=Gu.bind(e),e.fuseEditPointsWithClosedContour=qu.bind(e),e.cancelClosedContourEdit=Yu.bind(e),e.completeClosedContourEdit=Ku.bind(e)},Ju=Ld,Zu=Nd;function Xu(e,t,n){this.isEditingOpen=!0;var r=e.detail,o=r.currentPoints,a=r.element,i=o.canvas,l=(0,Y.getEnabledElement)(a).viewport,c=t.data.polyline.map(l.worldToCanvas),s=Zu(l,this.configuration.subPixelResolution),d=s.spacing,u=s.xDir,v=s.yDir;this.editData={prevCanvasPoints:c,editCanvasPoints:[i],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:d,xDir:u,yDir:v},ze.isInteractingWithTool=!0,a.addEventListener($.MOUSE_UP,this.mouseUpOpenContourEditCallback),a.addEventListener($.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener($.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),a.addEventListener($.TOUCH_END,this.mouseUpOpenContourEditCallback),a.addEventListener($.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),a.addEventListener($.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Vl(a)}function Qu(e){ze.isInteractingWithTool=!1,e.removeEventListener($.MOUSE_UP,this.mouseUpOpenContourEditCallback),e.removeEventListener($.MOUSE_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener($.MOUSE_CLICK,this.mouseUpOpenContourEditCallback),e.removeEventListener($.TOUCH_END,this.mouseUpOpenContourEditCallback),e.removeEventListener($.TOUCH_DRAG,this.mouseDragOpenContourEditCallback),e.removeEventListener($.TOUCH_TAP,this.mouseUpOpenContourEditCallback),Ul(e)}function ev(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=n.canvas,i=(0,Y.getEnabledElement)(r),l=i.renderingEngine,c=i.viewport,s=this.commonData,d=s.viewportIdsToRender,u=s.xDir,v=s.yDir,f=s.spacing,g=this.editData,h=g.editIndex,p=g.editCanvasPoints,m=g.startCrossingIndex,w=p[p.length-1],E=c.canvasToWorld(w),y=rc.vec3.create();rc.vec3.subtract(y,o,E);var I=Math.abs(rc.vec3.dot(y,u)),b=Math.abs(rc.vec3.dot(y,v));if(!(I<=f[0]&&b<=f[1])){void 0!==m&&this.checkAndRemoveCrossesOnEditLine(e);var C=h+Ju(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),Yo(l,d)}}function tv(e){var t=e.detail.element,n=(0,Y.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 nv(e){var t=e.detail,n=t.currentPoints,r=t.lastPoints,o=n.canvas,a=r.canvas,i=this.editData,l=i.snapIndex,c=i.prevCanvasPoints;if(void 0===i.startCrossingIndex||void 0===l)return!1;if(-1===l)return!0;if(0!==l&&l!==c.length-1)return!1;var s=o,d=a,u=c[l],v=rc.vec2.create(),f=rc.vec2.create();rc.vec2.set(v,s[0]-d[0],s[1]-d[1]),rc.vec2.set(f,s[0]-u[0],s[1]-u[1]);var g=rc.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 rv(){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 c=0;c<o;c++){var s=n[c];a.push([s[0],s[1]])}if(rc.vec2.distance(n[o],r[0])<rc.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 ov(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,c=e.detail.element,s=Ir(r);Ju(c,s,n[a],this.commonData),s.length>r.length&&s.pop(),o>a?(i=a,l=o):(i=o,l=a);for(var d=rc.vec2.distance(n[i],s[0]),u=rc.vec2.distance(n[i],s[s.length-1]),v=rc.vec2.distance(n[l],s[0]),f=rc.vec2.distance(n[l],s[s.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<s.length;m++){var w=s[m];g.push([w[0],w[1]])}else for(var E=s.length-1;E>=0;E--){var y=s[E];g.push([y[0],y[1]])}for(var I=l;I<n.length;I++){var b=n[I];g.push([b[0],b[1]])}return g}}function av(e){var t=e.detail.element,n=(0,Y.getEnabledElement)(t),r=n.viewport,o=n.renderingEngine,a=this.commonData,i=a.annotation,l=a.viewportIdsToRender,c=this.editData,s=c.fusedCanvasPoints,d=c.editCanvasPoints,u=s.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:s,editCanvasPoints:[v],startCrossingIndex:void 0,editIndex:0},Yo(o,l)}function iv(e){var t=e.detail.element;this.completeOpenContourEdit(t)}function lv(e){var t=(0,Y.getEnabledElement)(e),n=t.viewport,r=t.renderingEngine,o=this.commonData,a=o.annotation,i=o.viewportIdsToRender,l=this.editData,c=l.fusedCanvasPoints,s=l.prevCanvasPoints;if(c){var d=(cu(this.configuration)?uu(this.configuration,c,s):c).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=vu(c,n)),this.triggerAnnotationModified(a,t)}this.isEditingOpen=!1,this.editData=void 0,this.commonData=void 0,Yo(r,i),this.deactivateOpenContourEdit(e)}function cv(e){this.completeOpenContourEdit(e)}var sv=function(e){e.activateOpenContourEdit=Xu.bind(e),e.deactivateOpenContourEdit=Qu.bind(e),e.mouseDragOpenContourEditCallback=ev.bind(e),e.mouseUpOpenContourEditCallback=iv.bind(e),e.fuseEditPointsWithOpenContour=ov.bind(e),e.finishEditOpenOnSecondCrossing=av.bind(e),e.checkIfShouldOverwriteAnEnd=nv.bind(e),e.fuseEditPointsForOpenContourEndEdit=rv.bind(e),e.openContourEditOverwriteEnd=tv.bind(e),e.cancelOpenContourEdit=cv.bind(e),e.completeOpenContourEdit=lv.bind(e)},dv=Nd;function uv(e,t,n){this.isDrawing=!0;var r=e.detail.element,o=(0,Y.getEnabledElement)(r).viewport,a=dv(o,this.configuration.subPixelResolution),i=a.spacing,l=a.xDir,c=a.yDir,s=t.data.polyline.map(o.worldToCanvas);0===t.data.handles.activeHandleIndex&&s.reverse(),this.drawData={canvasPoints:s,polylineIndex:s.length-1},this.commonData={annotation:t,viewportIdsToRender:n,spacing:i,xDir:l,yDir:c},ze.isInteractingWithTool=!0,r.addEventListener($.MOUSE_UP,this.mouseUpDrawCallback),r.addEventListener($.MOUSE_DRAG,this.mouseDragDrawCallback),r.addEventListener($.MOUSE_CLICK,this.mouseUpDrawCallback),r.addEventListener($.TOUCH_END,this.mouseUpDrawCallback),r.addEventListener($.TOUCH_DRAG,this.mouseDragDrawCallback),r.addEventListener($.TOUCH_TAP,this.mouseUpDrawCallback),Vl(r)}var vv=function(e){e.activateOpenContourEndEdit=uv.bind(e)},fv=Ad;function gv(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 hv(e,t,n){var r;null!=e&&null!==(r=e.viewport)&&void 0!==r&&r.getImageData()&&(n.data.isOpenContour?n.data.isOpenUShapeContour?(function(e,t){t.data.openUShapeContourVectorToPeak||(t.data.openUShapeContourVectorToPeak=function(e,t){var n=e.viewport;return vu(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 pv(e,t,n){var r=e.viewport,o=this._getRenderingOptions(e,n),a=n.data.polyline.map((function(e){return r.worldToCanvas(e)}));_c(t,n.annotationUID,"1",a,o)}function mv(e,t,n){var r,o=e.viewport,a=this._getRenderingOptions(e,n),i=n.data.polyline.map((function(e){return o.worldToCanvas(e)}));_c(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 c=this.configuration.alwaysRenderOpenContourHandles.radius,s=[i[0],i[i.length-1]];0===l?s.shift():1===l&&s.pop(),bc(t,n.annotationUID,"0",s,{color:a.color,handleRadius:c})}if(null!==l){var d=i[0===l?0:i.length-1];bc(t,n.annotationUID,"1",[d],{color:a.color})}}function wv(e,t,n){var r=e.viewport,o=n.data,a=o.polyline,i=o.openUShapeContourVectorToPeak;if(this.renderOpenContour(e,t,n),i){var l=r.worldToCanvas(a[0]),c=r.worldToCanvas(a[a.length-1]),s=[r.worldToCanvas(i[0]),r.worldToCanvas(i[1])],d=this._getRenderingOptions(e,n);_c(t,n.annotationUID,"first-to-last",[l,c],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"}),_c(t,n.annotationUID,"midpoint-to-open-contour",[s[0],s[1]],{color:d.color,width:d.width,connectLastToFirst:!1,lineDash:"2,2"})}}function Ev(e,t,n){var r=this._getRenderingOptions(e,n),o=this.configuration.allowOpenContours,a=this.drawData.canvasPoints;if(r.connectLastToFirst=!1,_c(t,n.annotationUID,"1",a,r),o){var i=a[0],l=a[a.length-1];fv(i,l,this.configuration.closeContourProximity)?_c(t,n.annotationUID,"2",[l,i],r):bc(t,n.annotationUID,"0",[i],{color:r.color,handleRadius:2})}}function yv(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);_c(t,n.annotationUID,"preview-1",r,o)}else this.renderClosedContour(e,t,n)}function Iv(e,t,n){var r=this.editData.fusedCanvasPoints;if(void 0!==r){var o=this._getRenderingOptions(e,n);_c(t,n.annotationUID,"preview-1",r,o)}else this.renderOpenContour(e,t,n)}var bv=function(e){e.renderContour=hv.bind(e),e.renderClosedContour=pv.bind(e),e.renderOpenContour=mv.bind(e),e.renderOpenUShapedContour=wv.bind(e),e.renderContourBeingDrawn=Ev.bind(e),e.renderClosedContourBeingEdited=yv.bind(e),e.renderOpenContourBeingEdited=Iv.bind(e),e._getRenderingOptions=gv.bind(e)};function Cv(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 Tv=Ud,_v=1-Y.CONSTANTS.EPSILON,Ov=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,alwaysRenderOpenContourHandles:{enabled:!1,radius:2},allowOpenContours:!0,closeContourProximity:10,checkCanvasEditFallbackProximity:6,subPixelResolution:4,interpolation:{interpolateOnAdd:!1,interpolateOnEdit:!1,knotsRatioPercentageOnAdd:40,knotsRatioPercentageOnEdit:40}}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"commonData",void 0),Q(Qo(e),"isDrawing",!1),Q(Qo(e),"isEditingClosed",!1),Q(Qo(e),"isEditingOpen",!1),Q(Qo(e),"activateDraw",void 0),Q(Qo(e),"activateClosedContourEdit",void 0),Q(Qo(e),"activateOpenContourEdit",void 0),Q(Qo(e),"activateOpenContourEndEdit",void 0),Q(Qo(e),"cancelDrawing",void 0),Q(Qo(e),"cancelClosedContourEdit",void 0),Q(Qo(e),"cancelOpenContourEdit",void 0),Q(Qo(e),"renderContour",void 0),Q(Qo(e),"renderContourBeingDrawn",void 0),Q(Qo(e),"renderClosedContourBeingEdited",void 0),Q(Qo(e),"renderOpenContourBeingEdited",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine,s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=os(o,e.getToolName()),g=l.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:g,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:[Ir(a)],label:""}};return tt(h,o),e.activateDraw(t,h,f),t.preventDefault(),Yo(c,f),h})),Q(Qo(e),"handleSelectedCallback",(function(t,n){var r=os(t.detail.element,e.getToolName());e.activateOpenContourEndEdit(t,n,r)})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=os(t.detail.element,e.getToolName());n.data.isOpenContour?e.activateOpenContourEdit(t,n,r):e.activateClosedContourEdit(t,n,r)})),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){for(var o=(0,Y.getEnabledElement)(e).viewport,a=t.data.polyline,i=o.worldToCanvas(a[0]),l=1;l<a.length;l++){var c=i,s=o.worldToCanvas(a[l]);if(!0===Tv(n,c,s,r))return!0;i=s}if(t.data.isOpenContour)return!1;var d=o.worldToCanvas(a[0]),u=o.worldToCanvas(a[a.length-1]);return!0===Tv(n,d,u,r)})),Q(Qo(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)})),Q(Qo(e),"triggerAnnotationModified",(function(e,t){var n=t.viewportId,r=t.renderingEngineId,o=$.ANNOTATION_MODIFIED,a={annotation:e,viewportId:n,renderingEngineId:r};(0,Y.triggerEvent)(Y.eventTarget,o,a)})),Q(Qo(e),"triggerAnnotationCompleted",(function(e){var t=$.ANNOTATION_COMPLETED,n={annotation:e};(0,Y.triggerEvent)(Y.eventTarget,t,n)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport.element,l=et(e.getToolName(),i);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 c=e.isDrawing,s=e.isEditingOpen,d=e.isEditingClosed;if(!(c||s||d))return l.forEach((function(r){r&&e.renderContour(t,n,r)})),a;var u=e.commonData.annotation.annotationUID;return l.forEach((function(r){if(r.annotationUID===u)if(c)e.renderContourBeingDrawn(t,n,r);else if(d)e.renderClosedContourBeingEdited(t,n,r);else{if(!s)throw new Error("Unknown ".concat(e.getToolName()," annotation rendering state"));e.renderOpenContourBeingEdited(t,n,r)}else e.renderContour(t,n,r)})),!0})),Su(Qo(e)),Uu(Qo(e)),$u(Qo(e)),sv(Qo(e)),vv(Qo(e)),bv(Qo(e)),e}return Z(o,[{key:"filterInteractableAnnotationsForElement",value:function(e,t){if(t&&t.length){var n,r=(0,Y.getEnabledElement)(e).viewport;if(r instanceof Y.StackViewport)n=cs(r,t);else{if(!(r instanceof Y.VolumeViewport))throw new Error("Viewport Type ".concat(r.type," not supported"));var o=r.getCamera(),a=Y.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,n=Math.abs(rc.vec3.dot(r,t))>_v;return t&&n}));if(!o.length)return[];var a,i=n/2,l=t.focalPoint,c=[],s=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Cv(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)?Cv(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(s.s();!(a=s.n()).done;){var d=a.value,u=d.data.polyline[0];if(d.isVisible){var v=rc.vec3.create();rc.vec3.sub(v,l,u);var f=rc.vec3.dot(v,r);Math.abs(f)<i&&c.push(d)}}}catch(e){s.e(e)}finally{s.f()}return c}}]),o}(hs);Q(Ov,"toolName",void 0),Ov.toolName="PlanarFreehandROI";var Dv=Ov;function Sv(e,t,n){if(function(e,t,n){var r;if(null==t||null===(r=t.data)||void 0===r||!r.polyline||n<=0)return!0;if(!e.viewport)return!0;var o=e.renderingEngineId,a=e.viewportId,i=e.FrameOfReferenceUID,l=Dr(a,o);if(t.metadata.FrameOfReferenceUID!==i)return!0;if(!l)return!0;var c=l.getToolInstance(t.metadata.toolName);return!(c instanceof Dv)||c.isDrawing||c.isEditingOpen||c.isEditingClosed}(e,t,n))return!1;var r=e.viewport,o=t.data.polyline.map(r.worldToCanvas),a=lu(o,0,o.length,n);return a!==o&&(t.data.polyline=a.map(r.canvasToWorld),!0)}var xv={interpolateAnnotation:Sv},kv={};function Mv(e){var t=(0,Y.getEnabledElement)(e).viewportId;return kv[t]}var Pv,Rv=Y.Enums.RequestType.Prefetch,Nv={maxImagesToPrefetch:1/0,preserveExistingPool:!1};function Av(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 Lv(e){var t=(0,Y.getEnabledElement)(e);if(!t)throw new Error("stackPrefetch: element must be a valid Cornerstone enabled element");var n=t.viewport;if(!(n instanceof Y.StackViewport))throw new Error("stackPrefetch: element must be a StackViewport, VolumeViewport stackPrefetch not yet implemented");return{currentImageIdIndex:n.getCurrentImageIdIndex(),imageIds:n.getImageIds()}}function Uv(e){var t=Mv(e);if(t){var n=t||{},r=Lv(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&&Y.cache.getImageLoadObject(t)&&function(e){var t=n.indicesToRequest.indexOf(e);t>-1&&n.indicesToRequest.splice(t,1)}(e)})),n.indicesToRequest.length)){Nv.preserveExistingPool||Y.imageLoadPoolManager.clearRequestStack(Rv);for(var o,a,i,l,c,s,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]>Nv.maxImagesToPrefetch)&&u>=0,p=!(n.indicesToRequest[v]-g>Nv.maxImagesToPrefetch)&&v<n.indicesToRequest.length;if(!p&&!h)break;h&&(s=n.indicesToRequest[u--],c=r.imageIds[s],f.push(c)),p&&(s=n.indicesToRequest[v++],c=r.imageIds[s],f.push(c))}var m=function(e,t){return Y.imageLoader.loadAndCacheImage(e,t)};f.forEach((function(e){var t={targetBuffer:{type:"Float32Array",offset:null,length:null},preScale:{enabled:!0},requestType:Rv};Y.imageLoadPoolManager.addRequest(m.bind(null,e,t),Rv,{imageId:e},0)}))}}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}}function Vv(e){return function(t){var n,r=t.detail;try{n=Lv(e)}catch(e){return}if(n&&n.imageIds&&0!==n.imageIds.length){var o=n.imageIds.indexOf(r.imageId);if(!(o<0)){var a=Mv(e);a&&a.data&&a.data.length&&a.indicesToRequest.push(o)}}}}function Bv(e){clearTimeout(Pv),Pv=setTimeout((function(){var t=e.target;try{Uv(t)}catch(e){return}}),10)}function jv(e){var t=Lv(e);if(t&&t.imageIds&&0!==t.imageIds.length){var n={indicesToRequest:Av(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,Y.getEnabledElement)(e).viewportId;kv[n]=t}(e,n),Uv(e),e.removeEventListener(Y.Enums.Events.STACK_NEW_IMAGE,Bv),e.addEventListener(Y.Enums.Events.STACK_NEW_IMAGE,Bv);var o=Vv(e);Y.eventTarget.removeEventListener(Y.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o),Y.eventTarget.addEventListener(Y.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,o)}else console.warn("CornerstoneTools.stackPrefetch: No images in stack.")}function Hv(e){clearTimeout(Pv),e.removeEventListener(Y.Enums.Events.STACK_NEW_IMAGE,Bv);var t=Vv(e);Y.eventTarget.removeEventListener(Y.Enums.Events.IMAGE_CACHE_IMAGE_REMOVED,t);var n=Mv(e);n&&n.data.length&&(n.enabled=!1,Y.imageLoadPoolManager.clearRequestStack(Rv))}function Fv(){return Nv}function Wv(e){Nv=e}function Gv(e,t){if(e instanceof Y.VolumeViewport){var n=e.getCamera().focalPoint,r=[0,0,0];return rc.vec3.sub(r,t,n),function(e,t){var n=e.getCamera(),r=n.viewPlaneNormal,o=rc.vec3.dot(t,r),a=rc.vec3.fromValues(r[0],r[1],r[2]);if(rc.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];rc.vec3.add(i,n.focalPoint,a),rc.vec3.add(l,n.position,a),e.setCamera({focalPoint:i,position:l}),e.render()}}(e,r),!0}}var qv=function(e,t){var n=t.frameNumbers||Ir(Array(e.numTimePoints).keys());if(!t.maskVolumeId&&!t.imageCoordinate)throw new Error("No ROI provided");if(t.maskVolumeId&&t.imageCoordinate)throw new Error("Please provide only one ROI");if(t.maskVolumeId){var r=Y.cache.getVolume(t.maskVolumeId),o=function(e,t,n){for(var r=n.getScalarDataArrays(),o=[],a=0;a<t.length;a++){for(var i=[],l=e[0];l<e[0]+e.length;l++){var c=r[l];i.push(c[t[a]])}o.push(i)}return o}(n,r.getScalarData().map((function(e,t){return t})).filter((function(e){return 0!==r.getScalarData()[e]})),e);return o}if(t.imageCoordinate){var a=function(e,t,n){var r=n.dimensions,o=n.imageData.worldToIndex(t);if(o[0]=Math.floor(o[0]),o[1]=Math.floor(o[1]),o[2]=Math.floor(o[2]),!Y.utilities.indexWithinDimensions(o,r))throw new Error("outside bounds");for(var a=r[0],i=r[0]*r[1],l=n.getScalarDataArrays(),c=[],s=e[0];s<e[0]+e.length;s++){var d=l[s],u=o[2]*i+o[1]*a+o[0];c.push(d[u])}return c}(n,t.imageCoordinate,e);return a}},zv=function(e,t){var n=Sl.getDefinedCursor(t,!0);n||(n=tl.getDefinedCursor(t)),n||(console.log("Cursor ".concat(t," is not defined either as SVG or as a standard cursor.")),n=tl.getDefinedCursor(t)),Ll(e,n)},Kv=[].concat(Ir(yl),Ir(ol)),Yv=function(e,t,n){var r=Tl("textBoxFontSize",e,t,n),o=Tl("textBoxFontFamily",e,t,n);return"".concat(r,"px ").concat(o)},$v=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===dt.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(!Y.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)}))},Jv=function(e){$v(e),e.map((function(e){Ot(te()(e))}))};function Zv(){return(Zv=ga(pa().mark((function e(t,n,r){var o,a;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(Xo(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 Xv(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 Xv(e,t,n){return Qv.apply(this,arguments)}function Qv(){return(Qv=ga(pa().mark((function e(t,n,r){var o;return pa().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type!==dt.Labelmap){e.next=6;break}return e.next=3,$a.addSegmentationRepresentation(t,n,r);case 3:case 9:o=e.sent,e.next=13;break;case 6:if(n.type!==dt.Contour){e.next=12;break}return e.next=9,pi.addSegmentationRepresentation(t,n,r);case 12:throw new Error("The representation type ".concat(n.type," is not supported"));case 13:return e.abrupt("return",o);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ef=function(e,t,n){return Zv.apply(this,arguments)};function tf(e,t,n){var r=Dt(e);r&&r.forEach((function(r){r.segmentationRepresentationUID===t&&(r.visibility=n,wt(e,r.segmentationRepresentationUID))}))}function nf(e,t){var n=Dt(e).find((function(e){return e.segmentationRepresentationUID===t}));if(n)return n.visibility}function rf(e,t,n,r){var o=Vt(e,t);o&&(r?o.segmentsHidden.delete(n):o.segmentsHidden.add(n),wt(e,t))}var of=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"]};return X(this,o),r.call(this,e,t)}return Z(o,[{key:"touchDragCallback",value:function(e){this._dragCallback(e)}},{key:"mouseDragCallback",value:function(e){this._dragCallback(e)}},{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,Y.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,c=i.position,s=[c[0]-a[0],c[1]-a[1],c[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:s}),o.viewport.render()}}]),o}(va);Q(of,"toolName",void 0),of.toolName="Pan";var af=of;var lf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"rotateCamera",(function(e,t,n,r){var o=e.getVtkActiveCamera(),a=o.getViewUp(),i=o.getFocalPoint(),l=o.getPosition(),c=[0,0,0],s=[0,0,0],d=[0,0,0],u=rc.mat4.identity(new Float32Array(16));rc.mat4.translate(u,u,t),rc.mat4.rotate(u,u,r,n),rc.mat4.translate(u,u,[-t[0],-t[1],-t[2]]),rc.vec3.transformMat4(c,l,u),rc.vec3.transformMat4(s,i,u),rc.mat4.identity(u),rc.mat4.rotate(u,u,r,n),rc.vec3.transformMat4(d,a,u),e.setCamera({position:c,viewUp:d,focalPoint:s})})),e.touchDragCallback=e._dragCallback.bind(Qo(e)),e.mouseDragCallback=e._dragCallback.bind(Qo(e)),e}return Z(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,c=(0,Y.getEnabledElement)(n).viewport,s=c.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=c.canvasToWorld(g),p=Math.pow(1+Math.abs(.5),2),m=[f[0],0,0],w=[v[0],0,0],E=Math.pow(m[0],2),y=Math.pow(w[0],2),I=E>p?0:Math.sqrt(p-E),b=y>p?0:Math.sqrt(p-y),C=[m[0],0,I];Hd().normalize(C);var T=[w[0],0,b];Hd().normalize(T);var _=Hd().dot(C,T);if(Math.abs(_)>1e-4){var O=-2*Math.acos(Hd().clampValue(_,-1,1))*Math.sign(v[0]-f[0])*l,D=s.viewUp,S=s.viewPlaneNormal,x=[0,0,0],k=[0,0,0];Hd().cross(D,S,x),Hd().normalize(x),Hd().cross(S,x,k),Hd().normalize(k),Hd().normalize(D),this.rotateCamera(c,h,k,O);var M=(f[1]-v[1])*l;this.rotateCamera(c,h,x,M),c.render()}}}]),o}(va);Q(lf,"toolName",void 0),lf.toolName="TrackballRotate";var cf=lf;function sf(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 df(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sf(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var uf=Y.utilities.transformWorldToIndex,vf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"eventDispatchDetail",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={invalidated:!0,highlighted:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:f,referencedImageId:v},data:{label:"",handles:{points:[Ir(a)]},cachedStats:{}}};tt(g,o);var h=os(o,e.getToolName());return e.editData={annotation:g,newAnnotation:!0,viewportIdsToRender:h},e._activateModify(o),Vl(o),t.preventDefault(),Yo(c,h),g})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=(0,Y.getEnabledElement)(n),c=l.renderingEngine,s=l.viewportId;if(e.eventDispatchDetail={viewportId:s,renderingEngineId:c.id},e._deactivateModify(n),Ul(n),e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(c,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=e.editData,l=i.annotation,c=i.viewportIdsToRender;l.data.handles.points[0]=Ir(a),l.invalidated=!0;var s=(0,Y.getEnabledElement)(o).renderingEngine;Yo(s,c)})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles.points[0],m=i.worldToCanvas(p);u.annotationUID=g;var w=e.getStyle("color",u,f);if(h.cachedStats[s]?f.invalidated&&(e._calculateCachedStats(f,d,t),i instanceof Y.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=Y.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=Y.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,index:null,value:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;bc(n,g,"0",[m],{color:w}),a=!0;var E=Cs(i,s),y=e._getTextLines(h,s,E);if(y){var I=[m[0]+6,m[1]-6];kc(n,g,"0",y,[I[0],I[1]],e.getLinkedTextBoxStyle(u,f))}}return a})),e}return Z(o,[{key:"isPointNearTool",value:function(){return!1}},{key:"toolSelectedCallback",value:function(){}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=t.data.handles.points[0],i=o.worldToCanvas(a);if(!0==rc.vec2.distance(n,i)<r)return a}},{key:"handleSelectedCallback",value:function(e,t){var n=e.detail.element;t.highlighted=!0;var r=os(n,this.getToolName());this.editData={annotation:t,viewportIdsToRender:r},this._activateModify(n),Vl(n);var o=(0,Y.getEnabledElement)(n).renderingEngine;Yo(o,r),e.preventDefault()}},{key:"_getTextLines",value:function(e,t,n){var r=e.cachedStats[t],o=r.index,a=r.Modality,i=r.value,l=r.SUVBw,c=r.SUVLbm,s=r.SUVBsa;if(void 0!==i||void 0!==l){var d=[],u=bs(a,n);return d.push("(".concat(o[0],", ").concat(o[1],", ").concat(o[2],")")),"PT"===a&&!0===n&&void 0!==l?(d.push("".concat(l.toFixed(2)," SUV bw")),c&&d.push("".concat(c.toFixed(2)," SUV lbm")),s&&d.push("".concat(s.toFixed(2)," SUV bsa"))):d.push("".concat(i.toFixed(2)," ").concat(u)),d}}},{key:"_getValueForModality",value:function(e,t,n){var r={};if(r.value=e,"PT"===n&&t.scaling.PET&&(t.scaling.PET.suvbwToSuvbsa||t.scaling.PET.suvbwToSuvlbm)){var o=t.scaling.PET,a=o.suvbwToSuvlbm,i=o.suvbwToSuvbsa;if(r.SUVBw=e,a){var l=e*a;r.SUVLbm=l}if(i){var c=e*i;r.SUVBsa=c}}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,c=Object.keys(l),s=0;s<c.length;s++){var d=c[s],u=this.getTargetIdImage(d,t);if(u){var v=u.dimensions,f=u.imageData,g=u.metadata,h="getScalarData"in u?u.getScalarData():u.scalarData,p=g.Modality,m=uf(f,i);if(m[0]=Math.round(m[0]),m[1]=Math.round(m[1]),m[2]=Math.round(m[2]),Y.utilities.indexWithinDimensions(m,v)){this.isHandleOutsideImage=!1;var w=v[0],E=v[0]*v[1],y=h[m[2]*E+m[1]*w+m[0]];if(d.startsWith("imageId:")){var I=d.split("imageId:")[1],b=Y.utilities.imageIdToURI(I),C=Y.utilities.getViewportsWithImageURI(b,a)[0];m[2]=C.getCurrentImageIdIndex()}var T=this._getValueForModality(y,u,p);l[d]=df(df({index:m},T),{},{Modality:p})}else this.isHandleOutsideImage=!0,l[d]={index:m,Modality:p};e.invalidated=!1;var _=$.ANNOTATION_MODIFIED,O={annotation:e,viewportId:o,renderingEngineId:a};(0,Y.triggerEvent)(Y.eventTarget,_,O)}}return l}}]),o}(hs);Q(vf,"toolName",void 0),vf.toolName="Probe";var ff=vf;var gf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"eventDispatchDetail",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"postMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f={invalidated:!0,highlighted:!0,isVisible:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:v},data:{label:"",handles:{points:[Ir(a)]},cachedStats:{}}},g=os(o,e.getToolName());return e.editData={annotation:f,newAnnotation:!0,viewportIdsToRender:g},e._activateModify(o),Vl(o),t.preventDefault(),Yo(c,g),f})),Q(Qo(e),"postTouchStartCallback",(function(t){return e.postMouseDownCallback(t)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r=!1,o=t.viewport;if(!e.editData)return r;var a=e.filterInteractableAnnotationsForElement(o.element,[e.editData.annotation]);if(null==a||!a.length)return r;var i=e.getTargetId(o),l=o.getRenderingEngine(),c={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},s=e.editData.annotation,d=s.annotationUID,u=s.data,v=u.handles.points[0],f=o.worldToCanvas(v);c.annotationUID=d;var g=e.getStyle("color",c,s);if(u.cachedStats[i]?s.invalidated&&e._calculateCachedStats(s,l,t):(u.cachedStats[i]={Modality:null,index:null,value:null},e._calculateCachedStats(s,l,t)),!o.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),r;bc(n,d,"0",[f],{color:g}),r=!0;var h=Cs(o,i),p=e._getTextLines(u,i,h);if(p){var m=[f[0]+6,f[1]-6];kc(n,d,"0",p,[m[0],m[1]],e.getLinkedTextBoxStyle(c,s))}return r})),e}return Z(o)}(ff);Q(gf,"toolName",void 0),gf.toolName="DragProbe";var hf=gf;var pf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_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),c=e._getMinMax(l,i);return c.max-c.min})),e}return Z(o,[{key:"touchDragCallback",value:function(e){this.mouseDragCallback(e)}},{key:"mouseDragCallback",value:function(e){var t,n,r,o,a,i,l=e.detail,c=l.element,s=l.deltaPoints,d=(0,Y.getEnabledElement)(c),u=d.renderingEngine,v=d.viewport,f=!1;if(v instanceof Y.VolumeViewport){t=this.getTargetId(v).split("volumeId:")[1],i=Y.utilities.getViewportsWithVolumeId(t,u.id);var g=v.getProperties().voiRange;n=g.lower,r=g.upper;var h=Y.cache.getVolume(t);o=h.metadata.Modality,f=h.scaling&&Object.keys(h.scaling).length>0}else{if(!(v instanceof Y.StackViewport))throw new Error("Viewport is not a valid type");var p=v.getProperties();o=v.modality;var m=p.voiRange;n=m.lower,r=m.upper,f=v.getImageData().preScale.scaled}return a="PT"===o&&f?this.getPTNewRange({deltaPointsCanvas:s.canvas,lower:n,upper:r,clientHeight:c.clientHeight}):this.getNewRange({viewport:v,deltaPointsCanvas:s.canvas,volumeId:t,lower:n,upper:r}),v instanceof Y.StackViewport?(v.setProperties({voiRange:a}),void v.render()):v instanceof Y.VolumeViewport?(v.setProperties({voiRange:a}),void i.forEach((function(e){e.render()}))):void 0}},{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,c=n[1]*i,s=Y.utilities.windowLevel.toWindowLevel(o,a),d=s.windowWidth,u=s.windowCenter;return d+=l,u+=c,d=Math.max(d,1),Y.utilities.windowLevel.toLowHighRange(d,u)}},{key:"_getMultiplierFromDynamicRange",value:function(e,t){var n;if(t){var r=Y.cache.getVolume(t),o=r.dimensions,a=r.getScalarData();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}(va);Q(pf,"toolName",void 0),pf.toolName="WindowLevel";var mf=pf;var wf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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,pinchToZoom:!0,pan:!0}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"initialMousePosWorld",void 0),Q(Qo(e),"dirVec",void 0),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints.world,a=(0,Y.getEnabledElement)(r).viewport.getCamera().focalPoint;e.initialMousePosWorld=o;var i=rc.vec3.fromValues(a[0]-o[0],a[1]-o[1],a[2]-o[2]);return i=rc.vec3.normalize(rc.vec3.create(),i),e.dirVec=i,!1})),Q(Qo(e),"preTouchStartCallback",(function(t){if(!e.configuration.pinchToZoom)return e.preMouseDownCallback(t)})),Q(Qo(e),"_dragParallelProjection",(function(t,n,r){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=t.detail,i=a.element,l=a.deltaPoints,c=o?t.detail.deltaDistance.canvas:l.canvas[1],s=[i.clientWidth,i.clientHeight],d=r.parallelScale,u=r.focalPoint,v=r.position,f=1.5/s[1],g=c*f,h=(1-g)*d,p=u,m=v;if(!e.configuration.zoomToCenter){var w=rc.vec3.distance(u,e.initialMousePosWorld),E=5/s[1],y=c*E;h=(1-y)*d,m=rc.vec3.scaleAndAdd(rc.vec3.create(),v,e.dirVec,-w*y),p=rc.vec3.scaleAndAdd(rc.vec3.create(),u,e.dirVec,-w*y)}var I=n.getImageData(),b=[1,1,1];I&&(b=I.spacing);var C=e.configuration,T=C.minZoomScale,_=C.maxZoomScale,O=i.clientHeight*b[1]*.5,D=O/h,S=h,x=!1;I&&(D<T?(S=O/T,x=!0):D>=_&&(S=O/_,x=!0)),n.setCamera({parallelScale:S,focalPoint:x?u:p,position:x?v:m})})),Q(Qo(e),"_dragPerspectiveProjection",(function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=e.detail,a=o.element,i=o.deltaPoints,l=r?e.detail.deltaDistance.canvas:i.canvas[1],c=[a.clientWidth,a.clientHeight],s=n.position,d=n.focalPoint,u=n.viewPlaneNormal,v=Hd().distance2BetweenPoints(s,d),f=Math.sqrt(v)/c[1],g=[-u[0],-u[1],-u[2]],h=l*f,p=h*g[0];s[0]+=p,d[0]+=p,p=h*g[1],s[1]+=p,d[1]+=p,p=h*g[2],s[2]+=p,d[2]+=p,t.setCamera({position:s,focalPoint:d})})),e.initialMousePosWorld=[0,0,0],e.dirVec=[0,0,0],e.configuration.pinchToZoom?e.touchDragCallback=e._pinchCallback.bind(Qo(e)):e.touchDragCallback=e._dragCallback.bind(Qo(e)),e.mouseDragCallback=e._dragCallback.bind(Qo(e)),e}return Z(o,[{key:"_pinchCallback",value:function(e){if(e.detail.currentPointsList.length>1){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,Y.getEnabledElement)(n).viewport,a=o.getCamera(),i=r.world,l=a.focalPoint;this.initialMousePosWorld=i;var c=rc.vec3.fromValues(l[0]-i[0],l[1]-i[1],l[2]-i[2]);c=rc.vec3.normalize(rc.vec3.create(),c),this.dirVec=c,a.parallelProjection?this._dragParallelProjection(e,o,a,!0):this._dragPerspectiveProjection(e,o,a,!0),o.render()}this.configuration.pan&&this._panCallback(e)}},{key:"_dragCallback",value:function(e){var t=e.detail.element,n=(0,Y.getEnabledElement)(t).viewport,r=n.getCamera();r.parallelProjection?this._dragParallelProjection(e,n,r):this._dragPerspectiveProjection(e,n,r),n.render()}},{key:"_panCallback",value:function(e){var t=e.detail,n=t.element,r=t.deltaPoints,o=(0,Y.getEnabledElement)(n),a=r.world,i=o.viewport.getCamera(),l=i.focalPoint,c=i.position,s=[c[0]-a[0],c[1]-a[1],c[2]-a[2]],d=[l[0]-a[0],l[1]-a[1],l[2]-a[2]];o.viewport.setCamera({focalPoint:d,position:s}),o.viewport.render()}}]),o}(va);Q(wf,"toolName",void 0),wf.toolName="Zoom";var Ef=wf;var yf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"deltaY",void 0),e.deltaY=1,e}return Z(o,[{key:"mouseDragCallback",value:function(e){this._dragCallback(e)}},{key:"touchDragCallback",value:function(e){this._dragCallback(e)}},{key:"_dragCallback",value:function(e){var t,n=e.detail,r=n.deltaPoints,o=n.viewportId,a=n.renderingEngineId,i=(0,Y.getEnabledElementByIds)(o,a).viewport,l=this.getTargetId(i),c=this.configuration,s=c.debounceIfNotLoaded,d=c.invert,u=r.canvas[1];i instanceof Y.VolumeViewport&&(t=l.split("volumeId:")[1]);var v=this._getPixelPerImage(i),f=u+this.deltaY;if(v)if(Math.abs(f)>=v){var g=Math.round(f/v);ac(i,{delta:d?-g:g,volumeId:t,debounceLoading:s}),this.deltaY=f%v}else this.deltaY=f}},{key:"_getPixelPerImage",value:function(e){var t=e.element,n=this._getNumberOfSlices(e);return Math.max(2,t.offsetHeight/Math.max(n,8))}},{key:"_getNumberOfSlices",value:function(e){return e instanceof Y.VolumeViewport?Y.utilities.getImageSliceDataForVolumeViewport(e).numberOfSlices:e instanceof Y.StackViewport?e.getImageIds().length:void 0}}]),o}(va);Q(yf,"toolName",void 0),yf.toolName="StackScroll";var If=yf;function bf(e,t){var n=Un(e,2),r=n[0],o=n[1],a=Un(t,2),i=a[0],l=a[1],c=rc.vec3.sub(rc.vec3.create(),o,r),s=rc.vec3.sub(rc.vec3.create(),i,l),d=rc.vec3.dot(c,s)/(rc.vec3.length(c)*rc.vec3.length(s));return 180*Math.acos(d)/Math.PI}var Cf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),e.touchDragCallback=e._dragCallback.bind(Qo(e)),e.mouseDragCallback=e._dragCallback.bind(Qo(e)),e}return Z(o,[{key:"_dragCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=t.startPoints,a=r.world,i=o.world,l=(0,Y.getEnabledElement)(n).viewport,c=l.getCamera(),s=[.5*n.clientWidth,.5*n.clientHeight],d=l.canvasToWorld(s),u=bf([i,d],[d,a]),v=c.viewPlaneNormal,f=c.viewUp,g=rc.vec3.sub(rc.vec3.create(),d,i),h=rc.vec3.sub(rc.vec3.create(),d,a),p=rc.vec3.cross(rc.vec3.create(),g,h);if(rc.vec3.dot(v,p)>0&&(u=-u),!Number.isNaN(u)){if(l instanceof Y.BaseVolumeViewport){var m=u*Math.PI/180,w=rc.mat4.identity(new Float32Array(16));rc.mat4.rotate(w,w,m,v);var E=rc.vec3.transformMat4(rc.vec3.create(),f,w);l.setCamera({viewUp:E})}else{var y=l.getProperties().rotation;l.setProperties({rotation:y+u})}l.render()}}}]),o}(va);Q(Cf,"toolName",void 0),Cf.toolName="PlanarRotate";var Tf=Cf;var _f=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.wheel,r=t.element,o=n.direction,a=this.configuration.invert,i=(0,Y.getEnabledElement)(r).viewport,l=o*(a?-1:1);if(i instanceof Y.StackViewport)i.scroll(l,this.configuration.debounceIfNotLoaded);else{if(!(i instanceof Y.VolumeViewport))throw new Error("StackScrollMouseWheelTool: Unsupported viewport type");ic(i,this.getTargetId(i).split("volumeId:")[1],l)}}}]),o}(va);Q(_f,"toolName",void 0),_f.toolName="StackScrollMouseWheel";var Of=_f;var Df={X:[1,0,0],Y:[0,1,0],Z:[0,0,1],CUSTOM:[]},Sf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:Df.Z,rotateIncrementDegrees:.5}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"_configuration",void 0),e}return Z(o,[{key:"mouseWheelCallback",value:function(e){var t=e.detail,n=t.element,r=t.wheel,o=(0,Y.getEnabledElement)(n).viewport,a=this.configuration,i=a.direction,l=a.rotateIncrementDegrees,c=o.getCamera(),s=c.viewUp,d=c.position,u=c.focalPoint,v=r.direction,f=Un(u,3),g=f[0],h=f[1],p=f[2],m=Un(i,3),w=m[0],E=m[1],y=m[2],I=v*l,b=[0,0,0],C=[0,0,0],T=[0,0,0],_=rc.mat4.identity(new Float32Array(16));rc.mat4.translate(_,_,[g,h,p]),rc.mat4.rotate(_,_,I,[w,E,y]),rc.mat4.translate(_,_,[-g,-h,-p]),rc.vec3.transformMat4(b,d,_),rc.vec3.transformMat4(C,u,_),rc.mat4.identity(_),rc.mat4.rotate(_,_,I,[w,E,y]),rc.vec3.transformMat4(T,s,_),o.setCamera({position:b,viewUp:T,focalPoint:C}),o.render()}}]),o}(va);Q(Sf,"toolName",void 0),Sf.toolName="VolumeRotateMouseWheel";var xf=Sf;var kf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_bounds",void 0),e}return Z(o,[{key:"mouseClickCallback",value:function(e){var t=e.detail,n=t.element,r=t.currentPoints,o=(0,Y.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 c=l.split("volumeId:")[1],s=-1/0,d=Fd(a,r.world,c,(function(e,t){if(e>s)return s=e,t}));d&&d.length&&this.configuration.targetViewportIds.forEach((function(e){var t=i.getViewport(e);t instanceof Y.VolumeViewport?Gv(t,d):console.warn("Cannot jump to specified world coordinates for a viewport that is not a VolumeViewport")}))}}]),o}(va);Q(kf,"toolName",void 0),kf.toolName="MIPJumpToClickTool";var Mf=kf;var Pf=Y.utilities.transformWorldToIndex,Rf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Vl(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[Ir(a),Ir(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:{}}};tt(g,o);var h=os(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Yo(c,h),g})),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=Un(t.data.handles.points,2),i=a[0],l=a[1],c=o.worldToCanvas(i),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return ws([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Vl(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=Ir(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,Y.getEnabledElement)(r).renderingEngine;Yo(h,i)})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_MOVE,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_MOVE,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),y=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=e.getStyle("shadow",u,f),C=m.map((function(e){return i.worldToCanvas(e)})),T=void 0;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,unit:null},e._calculateCachedStats(f,d,t)),xe(g)){ie(f)||e.editData||null===w||(T=[C[w]]),T&&bc(n,g,"0",C,{color:I,lineDash:y,lineWidth:E});var _="".concat(g,"-line");if(Cc(n,g,"1",C[0],C[1],{color:I,width:E,lineDash:y,shadow:b},_),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var O=e._getTextLines(h,s);if(!h.handles.textBox.hasMoved){var D=ys(C);h.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(h.handles.textBox.worldPosition),x=Nc(n,g,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,f)),k=x.x,M=x.y,P=x.width,R=x.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=os(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Vl(r);var c=(0,Y.getEnabledElement)(r).renderingEngine;Yo(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t],r=n.length,o=n.unit;if(null!=r&&!isNaN(r))return["".concat(r.toFixed(2)," ").concat(o)]}},{key:"_calculateLength",value:function(e,t){var n=e[0]-t[0],r=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(n*n+r*r+o*o)}},{key:"_calculateCachedStats",value:function(e,t,n){for(var r=e.data,o=n.viewportId,a=n.renderingEngineId,i=r.handles.points[0],l=r.handles.points[1],c=r.cachedStats,s=Object.keys(c),d=0;d<s.length;d++){var u=s[d],v=this.getTargetIdImage(u,t);if(v){var f=v.imageData,g=v.dimensions,h=v.hasPixelSpacing,p=this._calculateLength(i,l),m=Pf(f,i),w=Pf(f,l);this._isInsideVolume(m,w,g)?this.isHandleOutsideImage=!1:this.isHandleOutsideImage=!0,c[u]={length:p,unit:h?"mm":"px"}}}e.invalidated=!1;var E=$.ANNOTATION_MODIFIED,y={annotation:e,viewportId:o,renderingEngineId:a};return(0,Y.triggerEvent)(Y.eventTarget,E,y),c}},{key:"_isInsideVolume",value:function(e,t,n){return Y.utilities.indexWithinDimensions(e,n)&&Y.utilities.indexWithinDimensions(t,n)}}]),o}(hs);Q(Rf,"toolName",void 0),Rf.toolName="Length";var Nf=Rf,Af=f(847),Lf=f.n(Af);var Uf=Y.CONSTANTS.RENDERING_DEFAULTS;function Vf(){return"rgb(0, 200, 0)"}function Bf(){return!0}function jf(){return!0}function Hf(){return!0}var Ff=.001,Wf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t,n,a,i,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse"],configuration:{shadow:!0,viewportIndicators:!0,autoPan:{enabled:!1,panSize:10},filterActorUIDsToSetSlabThickness:[],slabThicknessBlendMode:Y.Enums.BlendModes.MAXIMUM_INTENSITY_BLEND}};return X(this,o),Q(Qo(i=r.call(this,l,c)),"toolCenter",[0,0,0]),Q(Qo(i),"_getReferenceLineColor",void 0),Q(Qo(i),"_getReferenceLineControllable",void 0),Q(Qo(i),"_getReferenceLineDraggableRotatable",void 0),Q(Qo(i),"_getReferenceLineSlabThicknessControlsOn",void 0),Q(Qo(i),"editData",void 0),Q(Qo(i),"initializeViewport",(function(e){var t=e.renderingEngineId,n=e.viewportId,r=(0,Y.getEnabledElementByIds)(n,t),o=r.FrameOfReferenceUID,a=r.viewport,l=a.element,c=a.getCamera(),s=c.position,d=c.focalPoint,u=c.viewPlaneNormal,v=i._getAnnotations(r);return(v=i.filterInteractableAnnotationsForElement(l,v)).length&&rt(v[0].annotationUID),tt({highlighted:!1,metadata:{cameraPosition:Ir(s),cameraFocalPoint:Ir(d),FrameOfReferenceUID:o,toolName:i.getToolName()},data:{handles:{rotationPoints:[],slabThicknessPoints:[],toolCenter:i.toolCenter},activeOperation:null,activeViewportIds:[],viewportId:n}},l),{normal:u,point:a.canvasToWorld([a.canvas.clientWidth/2,a.canvas.clientHeight/2])}})),Q(Qo(i),"_getViewportsInfo",(function(){return Xo(i.toolGroupId).viewportsInfo})),Q(Qo(i),"computeToolCenter",(function(e){if(!e.length||1===e.length)throw new Error("For crosshairs to operate, at least two viewports must be given.");var t=Un(e,3),n=t[0],r=t[1],o=t[2],a=i.initializeViewport(n),l=a.normal,c=a.point,s=i.initializeViewport(r),d=s.normal,u=s.point,v=[0,0,0],f=rc.vec3.create();if(o){var g=i.initializeViewport(o);v=g.normal,f=g.point}else rc.vec3.add(f,c,u),rc.vec3.scale(f,f,.5),rc.vec3.cross(v,l,d);var h=Y.utilities.planar.planeEquation(l,c),p=Y.utilities.planar.planeEquation(d,u),m=Y.utilities.planar.planeEquation(v,f);i.toolCenter=Y.utilities.planar.threePlaneIntersection(h,p,m);var w=(0,Y.getEnabledElementByIds)(e[0].viewportId,e[0].renderingEngineId).renderingEngine;Yo(w,e.map((function(e){return e.viewportId})))})),Q(Qo(i),"addNewAnnotation",(function(e){var t=e.detail,n=t.element,r=t.currentPoints.world,o=(0,Y.getEnabledElement)(n),a=o.viewport;i._jump(o,r);for(var l=i._getAnnotations(o),c=i.filterInteractableAnnotationsForElement(a.element,l),s=c[0].data,d=s.handles.rotationPoints,u=[],v=0;v<d.length-1;++v){var f=d[v][1],g=i._getReferenceLineControllable(f.id),h=i._getReferenceLineDraggableRotatable(f.id);g&&h&&(u.push(f.id),v++)}return s.activeViewportIds=[].concat(u),s.handles.activeOperation=1,e.preventDefault(),Vl(n),i._activateModify(n),c[0]})),Q(Qo(i),"cancel",(function(){console.log("Not implemented yet")})),Q(Qo(i),"handleSelectedCallback",(function(e,t){var n=e.detail.element;t.highlighted=!0,i._activateModify(n),Vl(n),e.preventDefault()})),Q(Qo(i),"isPointNearTool",(function(e,t,n,r){return!!i._pointNearTool(e,t,n,6)})),Q(Qo(i),"toolSelectedCallback",(function(e,t,n){var r=e.detail.element;t.highlighted=!0,i._activateModify(r),Vl(r),e.preventDefault()})),Q(Qo(i),"onCameraModified",(function(e){var t,n=e.detail.element,r=(0,Y.getEnabledElement)(n),o=r.renderingEngine,a=r.viewport,l=i._getAnnotations(r),c=i.filterInteractableAnnotationsForElement(n,l)[0];if(c){var s=a.getCamera(),d=c.metadata.cameraPosition,u=[0,0,0];Hd().subtract(s.position,d,u);var v=c.metadata.cameraFocalPoint,f=[0,0,0];Hd().subtract(s.focalPoint,v,f),c.metadata.cameraPosition=Ir(s.position),c.metadata.cameraFocalPoint=Ir(s.focalPoint);var g=i._getReferenceLineControllable(a.id),h=i._getReferenceLineDraggableRotatable(a.id);if(!Y.utilities.isEqual(s.position,d,.001)&&g&&h){var p=!1;Y.utilities.isEqual(u,f,.001)||(p=!0);var m=Math.abs(Hd().dot(u,s.viewPlaneNormal))<.01;p||m||(i.toolCenter[0]+=u[0],i.toolCenter[1]+=u[1],i.toolCenter[2]+=u[2])}null!==(t=i.configuration.autoPan)&&void 0!==t&&t.enabled&&Dr(a.id,o.id).getViewportIds().filter((function(e){return e!==a.id})).forEach((function(e){i._autoPanViewportIfNecessary(e,o)}));var w=os(n,i.getToolName(),!1);Yo(o,w)}})),Q(Qo(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 c=t[l];if(!ie(c)){var s=c.data,d=c.highlighted;if(s.handles){var u=s.handles.activeOperation,v=s.activeViewportIds&&s.activeViewportIds.length>0?Ir(s.activeViewportIds):[];s.activeViewportIds=[],s.handles.activeOperation=null;var f;(f=!!i.getHandleNearImagePoint(r,c,o,6)||i._pointNearTool(r,c,o,6))&&!d||!f&&d?(c.highlighted=!d,a=!0):s.handles.activeOperation===u&&i._areViewportIdArraysEqual(s.activeViewportIds,v)||(a=!0)}}}return a})),Q(Qo(i),"filterInteractableAnnotationsForElement",(function(e,t){if(!t||!t.length)return[];var n=(0,Y.getEnabledElement)(e).viewportId;return t.filter((function(e){return e.data.viewportId===n}))})),Q(Qo(i),"renderAnnotation",(function(e,t){var n=!1,r=e.viewport,o=e.renderingEngine,a=r.element,l=i._getAnnotations(e),c=r.getCamera(),s=i.filterInteractableAnnotationsForElement(a,l)[0];if(null==l||!l.length||null==s||!s.data)return n;var d=s.annotationUID,u=r.canvas,v=u.clientWidth,f=u.clientHeight,g=Math.sqrt(v*v+f*f),h=s.data,p=r.worldToCanvas(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),s=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),E=[.5*v,.5*f],y=n.canvasToWorld(E),I=[0,0,0];Hd().cross(c.viewPlaneNormal,a.viewPlaneNormal,I),Hd().normalize(I),Hd().multiplyScalar(I,h);var b=[0,0,0];Hd().add(y,I,b);var C=[0,0,0];Hd().subtract(y,I,C);var T=[0,0,v,f],_=r.worldToCanvas(b),O=r.worldToCanvas(y),D=rc.vec2.create();rc.vec2.subtract(D,_,O),rc.vec2.normalize(D,D);var S=rc.vec2.create();rc.vec2.scale(S,D,100*g);var x=rc.vec2.create();rc.vec2.scale(x,D,.25*g);var k=rc.vec2.create();rc.vec2.scale(k,D,.15*g);var M=rc.vec2.create();rc.vec2.scale(M,D,2===m.length?.04*g:0);var P=rc.vec2.create(),R=rc.vec2.create(),N=rc.vec2.create(),A=rc.vec2.create(),L=rc.vec2.clone(p);s&&l||(L=rc.vec2.clone(O)),rc.vec2.add(P,L,M),rc.vec2.add(R,L,S),rc.vec2.subtract(N,L,M),rc.vec2.subtract(A,L,S),_d(P,R,T),_d(N,A,T);var U=rc.vec2.create();rc.vec2.subtract(U,p,x);var V=rc.vec2.create();rc.vec2.add(V,p,x);var B=rc.vec2.clone(p);!s&&d&&(B=rc.vec2.clone(O));var j=Ir(i.toolCenter);!s&&d&&(j=Ir(y));var H=[0,0,0];Hd().subtract(b,C,H),Hd().normalize(H);var F=c.viewPlaneNormal,W=Lf().buildFromDegree().rotate(90,F).matrix,G=[0,0,0];rc.vec3.transformMat4(G,H,W);var q=n.getSlabThickness(),z=[].concat(G);Hd().multiplyScalar(z,q);var K=[0,0,0];Hd().add(j,z,K);var Y=r.worldToCanvas(K),$=rc.vec2.create();rc.vec2.subtract($,B,Y);var J=rc.vec2.create();rc.vec2.subtract(J,B,S),rc.vec2.add(J,J,$);var Z=rc.vec2.create();rc.vec2.add(Z,B,S),rc.vec2.add(Z,Z,$),_d(J,Z,T);var X=rc.vec2.create();rc.vec2.add(X,B,S),rc.vec2.subtract(X,X,$);var Q=rc.vec2.create();rc.vec2.subtract(Q,B,S),rc.vec2.subtract(Q,Q,$),_d(X,Q,T);var ee=rc.vec2.create(),te=rc.vec2.create(),ne=rc.vec2.create(),re=rc.vec2.create();rc.vec2.subtract(ee,B,k),rc.vec2.add(ee,ee,$),rc.vec2.add(te,B,k),rc.vec2.add(te,te,$),rc.vec2.subtract(ne,B,k),rc.vec2.subtract(ne,ne,$),rc.vec2.add(re,B,k),rc.vec2.subtract(re,re,$),w.push([n,P,R,N,A,J,Z,X,Q,U,V,ee,te,ne,re])}));var E=[],y=[],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),c=i._getReferenceLineDraggableRotatable(o.id),s=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&&c?(p="".concat(n,"One"),Cc(t,d,p,e[1],e[2],{color:v,lineWidth:f}),p="".concat(n,"Two"),Cc(t,d,p,e[3],e[4],{color:v,lineWidth:f})):Cc(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]];E.push(I,b);var C=3===h.handles.activeOperation,T=[e[11],e[12],e[13],e[14]],_=[r.canvasToWorld(e[11]),o,e[5],e[6]],O=[r.canvasToWorld(e[12]),o,e[5],e[6]],D=[r.canvasToWorld(e[13]),o,e[7],e[8]],S=[r.canvasToWorld(e[14]),o,e[7],e[8]];if(y.push(_,O,D,S),g&&!m&&!C&&c&&s){var x="".concat(n,"One");bc(t,d,x,w,{color:v,handleRadius:3,type:"circle"}),x="".concat(n,"Two"),bc(t,d,x,T,{color:v,handleRadius:3,type:"rect"})}else if(g&&!m&&!C&&c){var k="".concat(n);bc(t,d,k,w,{color:v,handleRadius:3,type:"circle"})}else if(u&&!m&&!C&&s){var M="".concat(n);bc(t,d,M,T,{color:v,handleRadius:3,type:"rect"})}else if(m&&c){var P="".concat(n);bc(t,d,P,w,{color:v,handleRadius:2,fill:v,type:"circle"})}else C&&u&&s&&bc(t,d,p,T,{color:v,handleRadius:2,fill:v,type:"rect"});o.getSlabThickness()>.5&&s&&(p="".concat(n,"STOne"),Cc(t,d,p,e[5],e[6],{color:v,width:1,lineDash:[2,3]}),p="".concat(n,"STTwo"),Cc(t,d,p,e[7],e[8],{color:v,width:e,lineDash:[2,3]}))}})),n=!0,h.handles.rotationPoints=E,h.handles.slabThicknessPoints=y,i.configuration.viewportIndicators&&yc(t,d,"0",[.95*v,.05*f],.01*g,{color:b,fill:b}),n})),Q(Qo(i),"_getAnnotations",(function(e){var t=e.viewport;return et(i.getToolName(),t.element)})),Q(Qo(i),"_onNewVolume",(function(e){var t=i._getViewportsInfo();i.computeToolCenter(t)})),Q(Qo(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)})),Q(Qo(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,c=i.position,s=a.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera();return!(Y.utilities.isEqual(n.viewPlaneNormal,l,.01)&&Y.utilities.isEqual(n.position,c,1))}));return s})),Q(Qo(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 c=a.getCamera(),s=c.viewPlaneNormal;return Hd().normalize(s),l.filter((function(e){var t=e.data.viewportId,n=r.getViewport(t).getCamera(),o=n.viewPlaneNormal;return Hd().normalize(o),Y.utilities.isEqual(s,o,.01)&&Y.utilities.isEqual(c.viewUp,n.viewUp,.01)}))})),Q(Qo(i),"_filterAnnotationsByUniqueViewportOrientations",(function(e,t){var n=e.renderingEngine,r=e.viewport,o=r.getCamera().viewPlaneNormal;Hd().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=[],c=0;c<a.length;++c){var s=a[c],d=s.data.viewportId,u=n.getViewport(d).getCamera(),v=u.viewPlaneNormal;if(Hd().normalize(v),!Y.utilities.isEqual(o,v,.01)&&!Y.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();Y.utilities.isEqual(p.viewPlaneNormal,u.viewPlaneNormal,.01)&&Y.utilities.isEqual(p.position,u.position,1)&&(f=!0)}f||l.push(s)}}for(var m=t.filter((function(e){var t=e.data,o=n.getViewport(t.viewportId),a=i._getReferenceLineControllable(o.id);return r!==o&&!0!==a})),w=0;w<m.length;++w){var E=m[w],y=E.data.viewportId,I=n.getViewport(y).getCamera(),b=I.viewPlaneNormal;if(Hd().normalize(b),!Y.utilities.isEqual(o,b,.01)&&!Y.utilities.isOpposite(o,b,.01)){for(var C=!1,T=0;T<l.length;++T){var _=l[T].data.viewportId,O=n.getViewport(_).getCamera();Y.utilities.isEqual(O.viewPlaneNormal,I.viewPlaneNormal,.01)&&Y.utilities.isEqual(O.position,I.position,1)&&(C=!0)}C||l.push(E)}}for(var D=i._getAnnotationsForViewportsWithDifferentCameras(e,t),S=function(e){var t=D[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(Hd().normalize(i),Y.utilities.isEqual(o,i,.01)||Y.utilities.isOpposite(o,i,.01))return"continue";for(var c=!1,s=0;s<l.length;++s){var d=l[s].data.viewportId,u=n.getViewport(d).getCamera();Y.utilities.isEqual(u.viewPlaneNormal,a.viewPlaneNormal,.01)&&Y.utilities.isEqual(u.position,a.position,1)&&(c=!0)}c||l.push(t)},x=0;x<D.length;++x)S(x);return l})),Q(Qo(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})),Q(Qo(i),"_jump",(function(e,t){ze.isInteractingWithTool=!0;var n=e.viewport,r=e.renderingEngine,o=i._getAnnotations(e),a=[0,0,0];Hd().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?(ze.isInteractingWithTool=!1,!1):(i._applyDeltaShiftToSelectedViewportCameras(r,l,a),ze.isInteractingWithTool=!1,!0)})),Q(Qo(i),"_activateModify",(function(e){ze.isInteractingWithTool=!0,e.addEventListener($.MOUSE_UP,i._endCallback),e.addEventListener($.MOUSE_DRAG,i._dragCallback),e.addEventListener($.MOUSE_CLICK,i._endCallback),e.addEventListener($.TOUCH_END,i._endCallback),e.addEventListener($.TOUCH_DRAG,i._dragCallback),e.addEventListener($.TOUCH_TAP,i._endCallback)})),Q(Qo(i),"_deactivateModify",(function(e){ze.isInteractingWithTool=!1,e.removeEventListener($.MOUSE_UP,i._endCallback),e.removeEventListener($.MOUSE_DRAG,i._dragCallback),e.removeEventListener($.MOUSE_CLICK,i._endCallback),e.removeEventListener($.TOUCH_END,i._endCallback),e.removeEventListener($.TOUCH_DRAG,i._dragCallback),e.removeEventListener($.TOUCH_TAP,i._endCallback)})),Q(Qo(i),"_endCallback",(function(e){var t=e.detail.element;i.editData.annotation.data.handles.activeOperation=null,i.editData.annotation.data.activeViewportIds=[],i._deactivateModify(t),Ul(t),i.editData=null;var n=(0,Y.getEnabledElement)(t).renderingEngine,r=os(t,i.getToolName(),!1);Yo(n,r)})),Q(Qo(i),"_dragCallback",(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,Y.getEnabledElement)(r),a=o.renderingEngine,l=o.viewport,c=i._getAnnotations(o),s=i.filterInteractableAnnotationsForElement(r,c)[0];if(s){var d=s.data.handles,u=e.detail.currentPoints.canvas;if(1===d.activeOperation){var v=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));i._applyDeltaShiftToSelectedViewportCameras(a,v,n)}else if(2===d.activeOperation){var f=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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=rc.vec2.create(),h=rc.vec2.create(),p=[i.toolCenter[0],i.toolCenter[1],i.toolCenter[2]],m=l.worldToCanvas(p),w=t.currentPoints.canvas,E=rc.vec2.create();rc.vec2.sub(E,w,t.deltaPoints.canvas),rc.vec2.sub(g,E,m),rc.vec2.sub(h,w,m);var y=rc.vec2.angle(g,h);i._isClockWise(m,E,w)&&(y*=-1),y=Math.round(100*y)/100;var I=l.getCamera().viewPlaneNormal,b=Lf().buildFromRadian().translate(p[0],p[1],p[2]).rotate(y,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],rc.vec3.transformMat4(l,l,b),rc.vec3.transformMat4(i,i,b),rc.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 T=i._getAnnotationsForViewportsWithDifferentCameras(o,c).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&&s.data.activeViewportIds.find((function(e){return e===n.id}))}));if(0===T.length)return;var _=i._filterViewportWithSameOrientation(o,T[0],c),O=[];O.push(l.id),_.forEach((function(e){var r=e.data,o=a.getViewport(r.viewportId),c=o.getCamera().viewPlaneNormal,d=Hd().dot(n,c),v=Ir(c);if(Hd().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]),E=l.canvasToWorld(m[1][3]);Hd().add(w,E,p),Hd().multiplyScalar(p,.5)}}Hd().subtract(g,p,h);var y=Hd().dot(h,c),I=Ir(c);Hd().multiplyScalar(I,y);var b=[I[0],I[1],I[2]];rc.vec3.normalize(b,b);var C=[v[0],v[1],v[2]];rc.vec3.normalize(C,C);var T=o.getSlabThickness();Y.utilities.isOpposite(b,C,.001)?T-=f:T+=f,T=Math.abs(T),T=Math.max(Uf.MINIMUM_SLAB_THICKNESS,T),i._pointNearReferenceLine(s,u,6,o)&&(T=Uf.MINIMUM_SLAB_THICKNESS),Dr(o.id,a.id).getToolInstance(i.getToolName()).setSlabThickness(o,T),O.push(o.id)}})),a.renderViewports(O)}}}})),Q(Qo(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 c={start:{x:o[a][2][0],y:o[a][2][1]},end:{x:o[a][3][0],y:o[a][3][1]}},s=ws([c.start.x,c.start.y],[c.end.x,c.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=ws([d.start.x,d.start.y],[d.end.x,d.end.y],[t[0],t[1]]);if(s<=n||u<=n)return!0;a++}}return!1})),i._getReferenceLineColor=(null===(e=l.configuration)||void 0===e?void 0:e.getReferenceLineColor)||Vf,i._getReferenceLineControllable=(null===(t=l.configuration)||void 0===t?void 0:t.getReferenceLineControllable)||Bf,i._getReferenceLineDraggableRotatable=(null===(n=l.configuration)||void 0===n?void 0:n.getReferenceLineDraggableRotatable)||jf,i._getReferenceLineSlabThicknessControlsOn=(null===(a=l.configuration)||void 0===a?void 0:a.getReferenceLineSlabThicknessControlsOn)||Hf,i}return Z(o,[{key:"onSetToolActive",value:function(){var e=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(e),this._subscribeToViewportNewVolumeSet(e),this.computeToolCenter(e)}},{key:"onSetToolPassive",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolEnabled",value:function(){var e=this._getViewportsInfo();this.computeToolCenter(e)}},{key:"onSetToolDisabled",value:function(){var e=this,t=this._getViewportsInfo();this._unsubscribeToViewportNewVolumeSet(t),t.forEach((function(t){var n=t.renderingEngineId,r=t.viewportId,o=(0,Y.getEnabledElementByIds)(r,n);if(o){var a=e._getAnnotations(o);null!=a&&a.length&&a.forEach((function(e){rt(e.annotationUID)}))}}))}},{key:"getHandleNearImagePoint",value:function(e,t,n,r){var o=(0,Y.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:"_unsubscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,Y.getEnabledElementByIds)(n,r).viewport.element.removeEventListener(Y.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{key:"_subscribeToViewportNewVolumeSet",value:function(e){var t=this;e.forEach((function(e){var n=e.viewportId,r=e.renderingEngineId;(0,Y.getEnabledElementByIds)(n,r).viewport.element.addEventListener(Y.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,t._onNewVolume)}))}},{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]),c=r.canvasToWorld([a,i]),s=r.canvasToWorld([a,0]),d=r.canvasToWorld([0,i]),u=Math.min(l[0],c[0],s[0],d[0]),v=Math.max(l[0],c[0],s[0],d[0]),f=Math.min(l[1],c[1],s[1],d[1]),g=Math.max(l[1],c[1],s[1],d[1]),h=Math.min(l[2],c[2],s[2],d[2]),p=Math.max(l[2],c[2],s[2],d[2]),m=this.configuration.autoPan.panSize;if(this.toolCenter[0]<u-Ff)n=[u-this.toolCenter[0]+m,0,0];else if(this.toolCenter[0]>v+Ff)n=[v-this.toolCenter[0]-m,0,0];else if(this.toolCenter[1]<f-Ff)n=[0,f-this.toolCenter[1]+m,0];else if(this.toolCenter[1]>g+Ff)n=[0,g-this.toolCenter[1]-m,0];else if(this.toolCenter[2]<h-Ff)n=[0,0,h-this.toolCenter[2]+m];else{if(!(this.toolCenter[2]>p+Ff))return;n=[0,0,p-this.toolCenter[2]-m]}var w=r.getCamera(),E=w.focalPoint,y=w.position,I=[y[0]-n[0],y[1]-n[1],y[2]-n[2]],b=[E[0]-n[0],E[1]-n[1],E[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===Uf.MINIMUM_SLAB_THICKNESS&&(o=Y.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=Hd().dot(n,i),c=Ir(i);if(Hd().multiplyScalar(c,l),Math.abs(c[0])>.001||Math.abs(c[1])>.001||Math.abs(c[2])>.001){var s=[0,0,0],d=[0,0,0];Hd().add(a.focalPoint,c,s),Hd().add(a.position,c,d),o.setCamera({focalPoint:s,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],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineDraggableRotatable(c.id)){var s=e.worldToCanvas(l);if(rc.vec2.distance(n,s)<r)return o.handles.activeOperation=2,this.editData={annotation:t},l}}return null}},{key:"_getSlabThicknessHandleNearImagePoint",value:function(e,t,n,r){for(var o=t.data,a=o.handles.slabThicknessPoints,i=0;i<a.length;i++){var l=a[i][0],c=a[i][1];if(this._getReferenceLineControllable(c.id)&&this._getReferenceLineSlabThicknessControlsOn(c.id)){var s=e.worldToCanvas(l);if(rc.vec2.distance(n,s)<r)return o.handles.activeOperation=3,o.activeViewportIds=[c.id],this.editData={annotation:t},l}}return null}},{key:"_pointNearTool",value:function(e,t,n,r){for(var o=this,a=(0,Y.getEnabledElement)(e).viewport.canvas,i=a.clientWidth,l=a.clientHeight,c=Math.sqrt(i*i+l*l),s=t.data,d=s.handles.rotationPoints,u=s.handles.slabThicknessPoints,v=[],f=0;f<d.length-1;++f){var g=d[f][1],h=this._getReferenceLineControllable(g.id),p=this._getReferenceLineDraggableRotatable(g.id);if(h&&p){var m={start:{x:d[f][2][0],y:d[f][2][1]},end:{x:d[f][3][0],y:d[f][3][1]}},w=ws([m.start.x,m.start.y],[m.end.x,m.end.y],[n[0],n[1]]),E={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]}},y=ws([E.start.x,E.start.y],[E.end.x,E.end.y],[n[0],n[1]]);(w<=r||y<=r)&&(v.push(g.id),s.handles.activeOperation=1),f++}}for(var I=function(e){var t=u[e][1];if(v.find((function(e){return e===t.id})))return b=e,"continue";var 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=rc.vec2.create();rc.vec2.add(f,l,d),rc.vec2.scale(f,f,.5);var g=rc.vec2.create();rc.vec2.subtract(g,l,f),rc.vec2.normalize(g,g);var h=rc.vec2.create();rc.vec2.scale(h,g,.05*c);var p=rc.vec2.create(),m=rc.vec2.create();rc.vec2.add(p,f,h),rc.vec2.subtract(m,f,h);var w={start:{x:p[0],y:p[1]},end:{x:l[0],y:l[1]}},E=ws([w.start.x,w.start.y],[w.end.x,w.end.y],[n[0],n[1]]),y={start:{x:m[0],y:m[1]},end:{x:d[0],y:d[1]}},I=ws([y.start.x,y.start.y],[y.end.x,y.end.y],[n[0],n[1]]);(E<=r||I<=r)&&(v.push(t.id),s.handles.activeOperation=null),e++,b=e},b=0;b<u.length-1;++b)I(b);return s.activeViewportIds=[].concat(v),this.editData={annotation:t},1===s.handles.activeOperation}}]),o}(hs);Q(Wf,"toolName",void 0),Wf.toolName="Crosshairs";var Gf=Wf;var qf=Y.CONSTANTS.EPSILON,zf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{sourceViewportId:""}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",{}),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"_init",(function(){var t=(0,Y.getRenderingEngines)()[0];if(t){var n=t.getViewports();n=ts(n,e.getToolName());var r=t.getViewport(e.configuration.sourceViewportId);if(r&&r.getImageData()){var o=r.element,a=r.getCamera(),i=a.viewUp,l=a.viewPlaneNormal,c=Y.utilities.getViewportImageCornersInWorld(r),s=e.editData.annotation,d=r.getFrameOfReferenceUID();if(s)e.editData.annotation.data.handles.points=c;else{var u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(l),viewUp:Ir(i),FrameOfReferenceUID:d,referencedImageId:null},data:{handles:{points:c}}};tt(u,o),s=u}e.editData={sourceViewport:r,renderingEngine:t,annotation:s},Yo(t,n.filter((function(e){return e.id!==r.id})).map((function(e){return e.id})))}}})),Q(Qo(e),"onSetToolEnabled",(function(){e._init()})),Q(Qo(e),"onCameraModified",(function(t){e._init()})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=t.viewport,i=e.editData,l=i.annotation,c=i.sourceViewport,s=!1;if(!c)return s;if(c.id===a.id)return s;if(!l||null==l||null===(r=l.data)||void 0===r||null===(o=r.handles)||void 0===o||!o.points)return s;var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=l.data.handles.points[0],v=l.data.handles.points[1],f=l.data.handles.points[2],g=l.data.handles.points[3],h=a.getCamera(),p=h.focalPoint,m=h.viewPlaneNormal,w=c.getCamera().viewPlaneNormal;if(e.isParallel(m,w))return s;var E=Y.utilities.planar.planeEquation(m,p),y=[u,f,v,g],I=[u,v,f,g],b=y,C=rc.vec3.subtract(rc.vec3.create(),y[0],y[1]);C=rc.vec3.normalize(rc.vec3.create(),C);var T=rc.vec3.subtract(rc.vec3.create(),y[2],y[0]);T=rc.vec3.normalize(rc.vec3.create(),T);var _=rc.vec3.cross(rc.vec3.create(),C,T);if(e.isParallel(_,m))return s;e.isPerpendicular(C,m)&&(b=I);var O=Y.utilities.planar.linePlaneIntersection(b[0],b[1],E),D=Y.utilities.planar.linePlaneIntersection(b[2],b[3],E),S=l.annotationUID;d.annotationUID=S;var x=e.getStyle("lineWidth",d,l),k=e.getStyle("lineDash",d,l),M=e.getStyle("color",d,l),P=e.getStyle("shadow",d,l),R=[O,D].map((function(e){return a.worldToCanvas(e)})),N="".concat(S,"-line");return Cc(n,S,"1",R[0],R[1],{color:M,width:x,lineDash:k,shadow:P},N),!0})),Q(Qo(e),"isPerpendicular",(function(e,t){var n=rc.vec3.dot(e,t);return Math.abs(n)<qf})),e}return Z(o,[{key:"isParallel",value:function(e,t){return Math.abs(rc.vec3.dot(e,t))>1-qf}}]),o}(us);Q(zf,"toolName",void 0),zf.toolName="ReferenceLines";var Kf=zf;function Yf(e,t,n,r){var o=rc.vec3.create();rc.vec3.cross(o,t,e);var a=rc.vec3.fromValues.apply(rc.vec3,Ir(n)),i=rc.vec3.fromValues.apply(rc.vec3,Ir(r)),l=rc.vec3.create();rc.vec3.subtract(l,a,i);var c=rc.vec3.length(l);if(c<1e-4)return{worldWidth:0,worldHeight:0};var s=rc.vec3.dot(l,o)/(c*rc.vec3.length(o));return{worldWidth:Math.sqrt(1-s*s)*c,worldHeight:s*c}}var $f=Y.utilities.transformWorldToIndex,Jf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,centerPointRadius:0}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",!1),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,Y.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.getReferencedImageId(c,a,u,v),g=c.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(u),viewUp:Ir(v),FrameOfReferenceUID:g,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:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null},cachedStats:{}}};tt(h,o);var p=os(o,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:p,centerCanvas:i,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(s,p),h})),Q(Qo(e),"isPointNearTool",(function(t,n,r,o){var a=(0,Y.getEnabledElement)(t).viewport,i=Un($s(n.data.handles.points.map((function(e){return a.worldToCanvas(e)}))),2),l=i[0],c=i[1],s={left:Math.min(l[0],c[0])+o/2,top:Math.min(l[1],c[1])+o/2,width:Math.abs(l[0]-c[0])-o,height:Math.abs(l[1]-c[1])-o},d={left:Math.min(l[0],c[0])-o/2,top:Math.min(l[1],c[1])-o/2,width:Math.abs(l[0]-c[0])+o,height:Math.abs(l[1]-c[1])+o},u=e._pointInEllipseCanvas(s,r);return!(!e._pointInEllipseCanvas(d,r)||u)})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},Vl(r),e._activateModify(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),t.preventDefault()})),Q(Qo(e),"handleSelectedCallback",(function(t,n,r){var o=t.detail.element,a=n.data;n.highlighted=!0;var i,l,c,s,d,u=!1;if(r.worldPosition)u=!0;else{var v=a.handles.points,f=(0,Y.getEnabledElement)(o).viewport.worldToCanvas;i=v.findIndex((function(e){return e===r}));var g=v.map(f);d=g[i],c=Math.abs(g[2][0]-g[3][0]),s=Math.abs(g[0][1]-g[1][1]),l=[(g[2][0]+g[3][0])/2,(g[0][1]+g[1][1])/2]}var h=os(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:h,handleIndex:i,canvasWidth:c,canvasHeight:s,centerCanvas:l,originalHandleCanvas:d,movingTextBox:u},e._activateModify(o),Vl(o);var p=(0,Y.getEnabledElement)(o).renderingEngine;Yo(p,h),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){o.highlighted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(e.editData=null,e.isDrawing=!1,e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}}})),Q(Qo(e),"_dragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,Y.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=[u[0],u[1]-g],p=[u[0],u[1]+g],m=[u[0]-f,u[1]],w=[u[0]+f,u[1]];v.handles.points=[l(h),l(p),l(m),l(w)],s.invalidated=!0,e.editData.hasMoved=!0,Yo(i,d)})),Q(Qo(e),"_dragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else e._dragHandle(t),a.invalidated=!0;var g=(0,Y.getEnabledElement)(r).renderingEngine;Yo(g,i)})),Q(Qo(e),"_dragHandle",(function(t){var n=t.detail,r=n.element,o=(0,Y.getEnabledElement)(r).viewport.canvasToWorld,a=e.editData,i=a.annotation,l=a.canvasWidth,c=a.canvasHeight,s=a.handleIndex,d=a.centerCanvas,u=a.originalHandleCanvas,v=i.data.handles.points,f=n.currentPoints.canvas;if(0===s||1===s){var g=Math.abs(f[1]-d[1]),h=[d[0],d[1]-g],p=[d[0],d[1]+g];v[0]=o(h),v[1]=o(p);var m=l/2+(f[0]-u[0]),w=[d[0]-m,d[1]],E=[d[0]+m,d[1]];v[2]=o(w),v[3]=o(E)}else{var y=Math.abs(f[0]-d[0]),I=[d[0]-y,d[1]],b=[d[0]+y,d[1]];v[2]=o(I),v[3]=o(b);var C=c/2+(f[1]-u[1]),T=[d[0],d[1]-C],_=[d[0],d[1]+C];v[0]=o(T),v[1]=o(_)}})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragModifyCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragModifyCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragModifyCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragModifyCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragDrawCallback),t.addEventListener($.MOUSE_MOVE,e._dragDrawCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragDrawCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragDrawCallback),t.removeEventListener($.MOUSE_MOVE,e._dragDrawCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragDrawCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex;u.annotationUID=g;var E=e.getStyle("lineWidth",u,f),y=e.getStyle("lineDash",u,f),I=e.getStyle("color",u,f),b=m.map((function(e){return i.worldToCanvas(e)})),C=$s(b),T=e.configuration.centerPointRadius;if(h.cachedStats[s]&&void 0!==h.cachedStats[s].areaUnit?f.invalidated&&(e._throttledCalculateCachedStats(f,i,d,t),i instanceof Y.VolumeViewport&&function(){var e=f.metadata.referencedImageId;for(var t in h.cachedStats)t.startsWith("imageId")&&d.getStackViewports().find((function(t){var n=Y.utilities.imageIdToURI(e),r=t.hasImageURI(n),o=Y.utilities.imageIdToURI(t.getCurrentImageId());return r&&o!==n}))&&delete h.cachedStats[t]}()):(h.cachedStats[s]={Modality:null,area:null,max:null,mean:null,stdDev:null,areaUnit:null},e._calculateCachedStats(f,i,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var _=void 0;if(xe(g)){ie(f)||e.editData||null===w||(_=[b[w]]),_&&bc(n,g,"0",_,{color:I});var O="".concat(g,"-ellipse");if(Ic(n,g,"0",C[0],C[1],{color:I,lineDash:y,lineWidth:E},O),T>0&&Math.min(Math.abs(C[0][0]-C[1][0])/2,Math.abs(C[0][1]-C[1][1])/2)>3*T){var D=e._getCanvasEllipseCenter(b);yc(n,g,"0",D,T,{color:I,lineDash:y,lineWidth:E})}a=!0;var S=Cs(i,s),x=e._getTextLines(h,s,S);if(x&&0!==x.length){var k=void 0;h.handles.textBox.hasMoved||(k=ys(C),h.handles.textBox.worldPosition=i.canvasToWorld(k));var M=i.worldToCanvas(h.handles.textBox.worldPosition),P=Nc(n,g,"1",x,M,b,{},e.getLinkedTextBoxStyle(u,f)),R=P.x,N=P.y,A=P.width,L=P.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([R,N]),topRight:i.canvasToWorld([R+A,N]),bottomLeft:i.canvasToWorld([R,N+L]),bottomRight:i.canvasToWorld([R+A,N+L])}}}}return a})),Q(Qo(e),"_getTextLines",(function(e,t,n){var r=e.cachedStats[t],o=r.area,a=r.mean,i=r.stdDev,l=r.max,c=r.isEmptyArea,s=r.Modality,d=r.areaUnit,u=[],v=bs(s,n);if(o){var f=c?"Area: Oblique not supported":"Area: ".concat(o.toFixed(2)," ").concat(d,"²");u.push(f)}return a&&u.push("Mean: ".concat(a.toFixed(2)," ").concat(v)),l&&u.push("Max: ".concat(l.toFixed(2)," ").concat(v)),i&&u.push("Std Dev: ".concat(i.toFixed(2)," ").concat(v)),u})),Q(Qo(e),"_calculateCachedStats",(function(t,n,r,o){for(var a=t.data,i=o.viewportId,l=o.renderingEngineId,c=a.handles.points.map((function(e){return n.worldToCanvas(e)})),s=n.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=Un($s(c),2),f=v[0],g=v[1],h=n.canvasToWorld(f),p=n.canvasToWorld(g),m=a.cachedStats,w=Object.keys(m),E=h,y=p,I=0;I<w.length;I++){var b=w[I],C=e.getTargetIdImage(b,r);if(C){var T=C.dimensions,_=C.imageData,O=C.metadata,D=C.hasPixelSpacing,S=$f(_,E);S[0]=Math.floor(S[0]),S[1]=Math.floor(S[1]),S[2]=Math.floor(S[2]);var x=$f(_,y);x[0]=Math.floor(x[0]),x[1]=Math.floor(x[1]),x[2]=Math.floor(x[2]),e._isInsideVolume(S,x,T)?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=Yf(d,u,E,y),r=n.worldWidth,o=n.worldHeight,a=0===r&&0===o,i=Math.PI*(r/2)*(o/2),l=0,c=0,s=0,v=-1/0;zc(_,(function(e,n){return Js(t,e)}),(function(e){var t=e.value;t>v&&(v=t),c+=t,l+=1}),e),c/=l,zc(_,(function(e,n){return Js(t,e)}),(function(e){var t=e.value-c;s+=t*t}),e),s/=l,s=Math.sqrt(s),m[b]={Modality:O.Modality,area:i,mean:c,max:v,stdDev:s,isEmptyArea:a,areaUnit:D?"mm":"px"}}():(e.isHandleOutsideImage=!0,m[b]={Modality:O.Modality})}}t.invalidated=!1;var k=$.ANNOTATION_MODIFIED,M={annotation:t,viewportId:i,renderingEngineId:l};return(0,Y.triggerEvent)(Y.eventTarget,k,M),m})),Q(Qo(e),"_isInsideVolume",(function(e,t,n){return Y.utilities.indexWithinDimensions(e,n)&&Y.utilities.indexWithinDimensions(t,n)})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"_pointInEllipseCanvas",value:function(e,t){var n=e.width/2,r=e.height/2;if(n<=0||r<=0)return!1;var o=[e.left+n,e.top+r],a=[t[0]-o[0],t[1]-o[1]];return a[0]*a[0]/(n*n)+a[1]*a[1]/(r*r)<=1}},{key:"_getCanvasEllipseCenter",value:function(e){var t=Un(e,4),n=t[0],r=t[1],o=t[2],a=t[3],i=[o[0],r[1]],l=[a[0],n[1]];return[(i[0]+l[0])/2,(i[1]+l[1])/2]}}]),o}(hs);Q(Jf,"toolName",void 0),Jf.toolName="EllipticalROI";var Zf=Jf;var Xf=Y.utilities.transformWorldToIndex,Qf=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{preventHandleOutsideImage:!1}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"preventHandleOutsideImage",void 0),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=t.data.handles.points,i=o.worldToCanvas(a[0]),l=o.worldToCanvas(a[1]),c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}},s=ws([c.start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]);return s<=r||(i=o.worldToCanvas(a[2]),l=o.worldToCanvas(a[3]),(s=ws([(c={start:{x:i[0],y:i[1]},end:{x:l[0],y:l[1]}}).start.x,c.start.y],[c.end.x,c.end.y],[n[0],n[1]]))<=r)})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),Vl(r),t.preventDefault()})),Q(Qo(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 c=os(o,e.getToolName());Vl(o),e.editData={annotation:n,viewportIdsToRender:c,handleIndex:i,movingTextBox:l},e._activateModify(o);var s=(0,Y.getEnabledElement)(o).renderingEngine;Yo(s,c),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(void 0!==e.editData.handleIndex){var d=c.handles.points,u=rc.vec3.distance(d[0],d[1]);if(rc.vec3.distance(d[2],d[3])>u){var v=[Ir(d[2]),Ir(d[3])],f=Ir(d[0]),g=Ir(d[1]),h=rc.vec2.create();rc.vec2.set(h,v[1][0]-v[0][0],v[1][1]-v[1][0]);var p=rc.vec2.create();rc.vec2.set(p,-h[1],h[0]);var m,w=rc.vec2.create();rc.vec2.set(w,g[0]-f[0],g[1]-f[0]),m=rc.vec2.dot(w,p)>0?[f,g]:[g,f],c.handles.points=[v[0],v[1],m[0],m[1]]}}if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var E=$.ANNOTATION_COMPLETED,y={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,E,y)}e.editData=null,e.isDrawing=!1}})),Q(Qo(e),"_dragDrawCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.currentPoints,o=n.element,a=(0,Y.getEnabledElement)(o),i=a.renderingEngine,l=a.viewport,c=l.worldToCanvas,s=e.editData,d=s.annotation,u=s.viewportIdsToRender,v=s.handleIndex,f=d.data,g=r.world;f.handles.points[v]=Ir(g);var h=f.handles.points.map(c),p={x:h[0][0],y:h[0][1]},m={x:h[1][0],y:h[1][1]},w=(h[2][0],h[2][1],h[3][0],h[3][1],rc.vec2.distance(h[0],h[1])/3),E=p.x-m.x,y=p.y-m.y,I=Math.sqrt(E*E+y*y),b=E/I,C=y/I,T=(p.x+m.x)/2,_=(p.y+m.y)/2,O=T+w*C,D=_-w*b,S=T-w*C,x=_+w*b;f.handles.points[2]=l.canvasToWorld([O,D]),f.handles.points[3]=l.canvasToWorld([S,x]),d.invalidated=!0,Yo(i,u),e.editData.hasMoved=!0})),Q(Qo(e),"_dragModifyCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=(0,Y.getEnabledElement)(r).renderingEngine,a=e.editData,i=a.annotation,l=a.viewportIdsToRender,c=a.handleIndex,s=a.movingTextBox,d=i.data;if(s){var u=n.deltaPoints.world,v=d.handles.textBox,f=v.worldPosition;f[0]+=u[0],f[1]+=u[1],f[2]+=u[2],v.hasMoved=!0}else if(void 0===c){var g=n.deltaPoints.world;d.handles.points.forEach((function(e){e[0]+=g[0],e[1]+=g[1],e[2]+=g[2]})),i.invalidated=!0}else e._dragModifyHandle(t),i.invalidated=!0;Yo(o,l)})),Q(Qo(e),"_dragModifyHandle",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=(0,Y.getEnabledElement)(o).viewport,i=e.editData,l=i.annotation,c=i.handleIndex,s=l.data,d=r.world,u=[a.worldToCanvas(s.handles.points[0]),a.worldToCanvas(s.handles.points[1]),a.worldToCanvas(s.handles.points[2]),a.worldToCanvas(s.handles.points[3])],v={start:{x:u[0][0],y:u[0][1]},end:{x:u[1][0],y:u[1][1]}},f={start:{x:u[2][0],y:u[2][1]},end:{x:u[3][0],y:u[3][1]}},g=Ir(d),h=a.worldToCanvas(g);if(0===c||1===c){var p=u[0===c?1:0],m=rc.vec2.set(rc.vec2.create(),h[0]-p[0],h[1]-p[1]),w=rc.vec2.set(rc.vec2.create(),u[c][0]-p[0],u[c][1]-p[1]);rc.vec2.normalize(m,m),rc.vec2.normalize(w,w);var E={start:{x:p[0],y:p[1]},end:{x:h[0],y:h[1]}};if(e._movingLongAxisWouldPutItThroughShortAxis(E,f))return;var y=p,I=e._getSignedAngle(w,m),b=u[2][0],C=u[2][1],T=u[3][0],_=u[3][1];b-=y[0],C-=y[1],T-=y[0],_-=y[1];var O=b*Math.cos(I)-C*Math.sin(I),D=b*Math.sin(I)+C*Math.cos(I),S=T*Math.cos(I)-_*Math.sin(I),x=T*Math.sin(I)+_*Math.cos(I);b=O+y[0],C=D+y[1],T=S+y[0],_=x+y[1];var k=a.canvasToWorld([b,C]),M=a.canvasToWorld([T,_]);s.handles.points[c]=g,s.handles.points[2]=k,s.handles.points[3]=M}else{var P=2===c?3:2,R={longLineSegment:{start:v.start,end:v.end},shortLineSegment:{start:f.start,end:f.end}},N=rc.vec2.subtract(rc.vec2.create(),[R.longLineSegment.end.x,R.longLineSegment.end.y],[R.longLineSegment.start.x,R.longLineSegment.start.y]),A=rc.vec2.normalize(rc.vec2.create(),N),L=rc.vec2.subtract(rc.vec2.create(),[h[0],h[1]],[u[c][0],u[c][1]]),U=rc.vec2.length(L),V=e._getSignedAngle(A,L),B=Math.cos(V)*U,j=rc.vec2.scaleAndAdd(rc.vec2.create(),[u[P][0],u[P][1]],A,B);if(e._movingLongAxisWouldPutItThroughShortAxis({start:{x:h[0],y:h[1]},end:{x:j[0],y:j[1]}},{start:{x:R.longLineSegment.start.x,y:R.longLineSegment.start.y},end:{x:R.longLineSegment.end.x,y:R.longLineSegment.end.y}}))return;if(!Dd([h[0],h[1]],[j[0],j[1]],[v.start.x,v.start.y],[v.end.x,v.end.y]))return;s.handles.points[P]=a.canvasToWorld(j),s.handles.points[c]=g}})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragDrawCallback),t.addEventListener($.MOUSE_MOVE,e._dragDrawCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragDrawCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragDrawCallback),t.removeEventListener($.MOUSE_MOVE,e._dragDrawCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragDrawCallback)})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragModifyCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragModifyCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragModifyCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragModifyCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!0,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f=c[v],g=f.annotationUID,h=f.data,p=h.handles,m=p.points,w=p.activeHandleIndex,E=m.map((function(e){return i.worldToCanvas(e)}));u.annotationUID=g;var y=e.getStyle("lineWidth",u,f),I=e.getStyle("lineDash",u,f),b=e.getStyle("color",u,f),C=e.getStyle("shadow",u,f);if(h.cachedStats[s]&&void 0!==h.cachedStats[s].unit?f.invalidated&&e._throttledCalculateCachedStats(f,d,t):(h.cachedStats[s]={length:null,width:null,unit:null},e._calculateCachedStats(f,d,t)),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;var T=void 0;if(xe(g)){ie(f)||e.editData||null===w||(T=[E[w]]),T&&bc(n,g,"0",T,{color:b});var _="".concat(g,"-line-1"),O="".concat(g,"-line-2");Cc(n,g,"0",E[0],E[1],{color:b,lineDash:I,lineWidth:y,shadow:C},_),Cc(n,g,"1",E[2],E[3],{color:b,lineDash:I,lineWidth:y,shadow:C},O),a=!0;var D=e._getTextLines(h,s);if(D&&0!==D.length){var S=void 0;h.handles.textBox.hasMoved||(S=ys(E),h.handles.textBox.worldPosition=i.canvasToWorld(S));var x=i.worldToCanvas(h.handles.textBox.worldPosition),k=Nc(n,g,"1",D,x,E,{},e.getLinkedTextBoxStyle(u,f)),M=k.x,P=k.y,R=k.width,N=k.height;h.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([M,P]),topRight:i.canvasToWorld([M+R,P]),bottomLeft:i.canvasToWorld([M,P+N]),bottomRight:i.canvasToWorld([M+R,P+N])}}}}return a})),Q(Qo(e),"_movingLongAxisWouldPutItThroughShortAxis",(function(e,t){var n=rc.vec2.create();rc.vec2.set(n,t.end.x-t.start.x,t.end.y-t.start.y),rc.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!Dd([r.start.x,r.start.y],[r.end.x,r.end.y],[e.start.x,e.start.y],[e.end.x,e.end.y])})),Q(Qo(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)]})),Q(Qo(e),"_calculateCachedStats",(function(t,n,r){for(var o=t.data,a=r.viewportId,i=r.renderingEngineId,l=o.handles.points[0],c=o.handles.points[1],s=o.handles.points[2],d=o.handles.points[3],u=o.cachedStats,v=Object.keys(u),f=0;f<v.length;f++){var g=v[f],h=e.getTargetIdImage(g,n);if(h){var p=h.imageData,m=h.dimensions,w=h.hasPixelSpacing,E=e._calculateLength(l,c),y=e._calculateLength(s,d),I=E>y?E:y,b=E>y?y:E,C=Xf(p,l),T=Xf(p,c),_=Xf(p,s),O=Xf(p,d);e._isInsideVolume(C,T,_,O,m)?e.isHandleOutsideImage=!1:e.isHandleOutsideImage=!0,u[g]={length:I,width:b,unit:w?"mm":"px"}}}t.invalidated=!1;var D=$.ANNOTATION_MODIFIED,S={annotation:t,viewportId:a,renderingEngineId:i};return(0,Y.triggerEvent)(Y.eventTarget,D,S),u})),Q(Qo(e),"_isInsideVolume",(function(e,t,n,r,o){return Y.utilities.indexWithinDimensions(e,o)&&Y.utilities.indexWithinDimensions(t,o)&&Y.utilities.indexWithinDimensions(n,o)&&Y.utilities.indexWithinDimensions(r,o)})),Q(Qo(e),"_getSignedAngle",(function(e,t){return Math.atan2(e[0]*t[1]-e[1]*t[0],e[0]*t[0]+e[1]*t[1])})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"addNewAnnotation",value:function(e){var t=e.detail,n=t.currentPoints,r=t.element,o=n.world,a=(0,Y.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;this.isDrawing=!0;var c=i.getCamera(),s=c.viewPlaneNormal,d=c.viewUp,u=this.getReferencedImageId(i,o,s,d),v=i.getFrameOfReferenceUID(),f={highlighted:!0,invalidated:!0,metadata:{toolName:this.getToolName(),viewPlaneNormal:Ir(s),viewUp:Ir(d),FrameOfReferenceUID:v,referencedImageId:u},data:{handles:{points:[Ir(o),Ir(o),Ir(o),Ir(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:{}}};tt(f,r);var g=os(r,this.getToolName());return this.editData={annotation:f,viewportIdsToRender:g,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},this._activateDraw(r),Vl(r),e.preventDefault(),Yo(l,g),f}},{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}(hs);Q(Qf,"toolName",void 0),Qf.toolName="Bidirectional";var eg=Qf;var tg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:ng,changeTextCallback:rg,preventHandleOutsideImage:!1,arrowFirst:!0}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"addNewAnnotation",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Vl(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=e.configuration.arrowFirst,g=l.getFrameOfReferenceUID(),h={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:g,referencedImageId:v},data:{text:"",handles:{points:[Ir(a),Ir(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:""}};tt(h,o);var p=os(o,e.getToolName());return e.editData={annotation:h,viewportIdsToRender:p,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Yo(c,p),h})),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=Un(t.data.handles.points,2),i=a[0],l=a[1],c=o.worldToCanvas(i),s=o.worldToCanvas(l),d={start:{x:c[0],y:c[1]},end:{x:s[0],y:s[1]}};return ws([d.start.x,d.start.y],[d.end.x,d.end.y],[n[0],n[1]])<=r})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Vl(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),i&&e.configuration.getTextCallback((function(t){if(!t)return rt(o.annotationUID),Yo(s,a),e.editData=null,void(e.isDrawing=!1);o.data.text=t;var n=$.ANNOTATION_COMPLETED,r={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,n,r),Yo(s,a)})),e.editData=null,e.isDrawing=!1}})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=Ir(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,Y.getEnabledElement)(r).renderingEngine;Yo(h,i)})),Q(Qo(e),"touchTapCallback",(function(t){2==t.detail.taps&&e.doubleClickCallback(t)})),Q(Qo(e),"doubleClickCallback",(function(t){var n,r=t.detail,o=r.element,a=et(e.getToolName(),o);if(null!==(n=a=e.filterInteractableAnnotationsForElement(o,a))&&void 0!==n&&n.length){var i=a.find((function(t){return e.isPointNearTool(o,t,r.currentPoints.canvas,6)}));if(i){var l=i;e.configuration.changeTextCallback(i,t.detail,e._doneChangingTextCallback.bind(Qo(e),o,l)),e.editData=null,e.isDrawing=!1,t.stopImmediatePropagation(),t.preventDefault()}}})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_END,e._endCallback)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_MOVE,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_MOVE,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},d=0;d<c.length;d++){var u=c[d],v=u.annotationUID,f=u.data,g=f.handles,h=f.text,p=g.points,m=g.activeHandleIndex;s.annotationUID=v;var w=e.getStyle("lineWidth",s,u),E=e.getStyle("lineDash",s,u),y=e.getStyle("color",s,u),I=p.map((function(e){return i.worldToCanvas(e)})),b=void 0;if(ie(u)||e.editData||null===m||(b=[I[m]]),b&&bc(n,v,"0",I,{color:y,lineWidth:w}),e.configuration.arrowFirst?Lc(n,v,"1",I[1],I[0],{color:y,width:w,lineDash:E}):Lc(n,v,"1",I[0],I[1],{color:y,width:w,lineDash:E}),a=!0,!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(h){if(!f.handles.textBox.hasMoved){var C=ys(I);f.handles.textBox.worldPosition=i.canvasToWorld(C)}var T=i.worldToCanvas(f.handles.textBox.worldPosition),_=Nc(n,v,"1",[h],T,I,{},e.getLinkedTextBoxStyle(s,u)),O=_.x,D=_.y,S=_.width,x=_.height;f.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([O,D]),topRight:i.canvasToWorld([O+S,D]),bottomLeft:i.canvasToWorld([O,D+x]),bottomRight:i.canvasToWorld([O+S,D+x])}}}return a})),e}return Z(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=os(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Vl(r);var c=(0,Y.getEnabledElement)(r).renderingEngine;Yo(c,l),e.preventDefault()}},{key:"_doneChangingTextCallback",value:function(e,t,n){t.data.text=n;var r=(0,Y.getEnabledElement)(e),o=r.renderingEngine,a=r.viewportId,i=r.renderingEngineId,l=os(e,this.getToolName());Yo(o,l);var c=$.ANNOTATION_MODIFIED;(0,Y.triggerEvent)(Y.eventTarget,c,{annotation:t,viewportId:a,renderingEngineId:i})}},{key:"_isInsideVolume",value:function(e,t,n){return Y.utilities.indexWithinDimensions(e,n)&&Y.utilities.indexWithinDimensions(t,n)}}]),o}(hs);function ng(e){return e(prompt("Enter your annotation:"))}function rg(e,t,n){return n(prompt("Enter your annotation:"))}Q(tg,"toolName",void 0),tg.toolName="ArrowAnnotate";var og=tg;var ag=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"angleStartedNotYetCompleted",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(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,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Vl(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[Ir(a),Ir(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:{}}};tt(g,o);var h=os(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Yo(c,h),g}})),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=Un(t.data.handles.points,3),i=a[0],l=a[1],c=a[2],s=o.worldToCanvas(i),d=o.worldToCanvas(l),u=o.worldToCanvas(c),v={start:{x:s[0],y:s[1]},end:{x:d[0],y:d[1]}},f={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},g=ws([v.start.x,v.start.y],[v.end.x,v.end.y],[n[0],n[1]]),h=ws([f.start.x,f.start.y],[f.end.x,f.end.y],[n[0],n[1]]);return g<=r||h<=r})),Q(Qo(e),"toolSelectedCallback",(function(t,n){var r=t.detail.element;n.highlighted=!0;var o=os(r,e.getToolName());e.editData={annotation:n,viewportIdsToRender:o,movingTextBox:!1},e._activateModify(r),Vl(r);var a=(0,Y.getEnabledElement)(r).renderingEngine;Yo(a,o),t.preventDefault()})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l)if(e.angleStartedNotYetCompleted&&2===c.handles.points.length)e.editData.handleIndex=2;else{e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=e.editData,a=o.annotation,i=o.viewportIdsToRender,l=o.handleIndex,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=Ir(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,Y.getEnabledElement)(r).renderingEngine;Yo(h,i)})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_MOVE,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_MOVE,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,E=m.activeHandleIndex;u.annotationUID=h;var y=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[s]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,d,t));var T=void 0;if(ie(g)||e.editData||null===E||(T=[C[E]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;T&&bc(n,h,"0",C,{color:b,lineDash:I,lineWidth:y});var _="1";if(Cc(n,h,_,C[0],C[1],{color:b,width:y,lineDash:I}),a=!0,3!==C.length)return a;if(Cc(n,h,_="2",C[1],C[2],{color:b,width:y,lineDash:I}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var O=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var D=ys(C);p.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=Nc(n,h,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,g)),k=x.x,M=x.y,P=x.width,R=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=os(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Vl(r);var c=(0,Y.getEnabledElement)(r).renderingEngine;Yo(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,a=n.renderingEngineId;if(3===r.handles.points.length){for(var i=r.handles.points[0],l=r.handles.points[1],c=r.handles.points[2],s=r.cachedStats,d=Object.keys(s),u=0;u<d.length;u++){var v=d[u],f=bf([i,l],[l,c]);s[v]={angle:f}}e.invalidated=!1;var g=$.ANNOTATION_MODIFIED,h={annotation:e,viewportId:o,renderingEngineId:a};return(0,Y.triggerEvent)(Y.eventTarget,g,h),s}}}]),o}(hs);Q(ag,"toolName",void 0),ag.toolName="Angle";var ig=ag,lg=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=2===t[0].length?[0,0]:[0,0,0],o=t.length,a=0,i=t;a<i.length;a++){var l=i[a];r[0]+=l[0]/o,r[1]+=l[1]/o,3===r.length&&(r[2]+=l[2]/o)}return r};var cg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"angleStartedNotYetCompleted",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(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,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;Vl(o),e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.getReferencedImageId(l,a,d,u),f=l.getFrameOfReferenceUID(),g={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:f,referencedImageId:v},data:{handles:{points:[Ir(a),Ir(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:{}}};tt(g,o);var h=os(o,e.getToolName());return e.editData={annotation:g,viewportIdsToRender:h,handleIndex:1,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),t.preventDefault(),Yo(c,h),g}})),Q(Qo(e),"isPointNearTool",(function(e,t,n,r){var o=(0,Y.getEnabledElement)(e).viewport,a=Un(t.data.handles.points,4),i=a[0],l=a[1],c=a[2],s=a[3],d=o.worldToCanvas(i),u=o.worldToCanvas(l),v=o.worldToCanvas(c),f=o.worldToCanvas(s),g={start:{x:d[0],y:d[1]},end:{x:u[0],y:u[1]}},h={start:{x:v[0],y:v[1]},end:{x:f[0],y:f[1]}},p=ws([g.start.x,g.start.y],[g.end.x,g.end.y],[n[0],n[1]]),m=ws([h.start.x,h.start.y],[h.end.x,h.end.y],[n[0],n[1]]);return p<=r||m<=r})),Q(Qo(e),"toolSelectedCallback",(function(t,n,r){var o=t.detail.element;n.highlighted=!0;var a=os(o,e.getToolName());e.editData={annotation:n,viewportIdsToRender:a,movingTextBox:!1},e._activateModify(o),Vl(o);var i=(0,Y.getEnabledElement)(o).renderingEngine;Yo(i,a),t.preventDefault()})),Q(Qo(e),"_mouseUpCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.viewportIdsToRender,i=r.newAnnotation,l=r.hasMoved,c=o.data;if(!i||l){if(e.angleStartedNotYetCompleted&&c.handles.points.length<4)return Ul(n),void(e.editData.handleIndex=c.handles.points.length);e.angleStartedNotYetCompleted=!1,c.handles.activeHandleIndex=null,e._deactivateModify(n),e._deactivateDraw(n),Ul(n);var s=(0,Y.getEnabledElement)(n).renderingEngine;if(e.isHandleOutsideImage&&e.configuration.preventHandleOutsideImage&&rt(o.annotationUID),Yo(s,a),i){var d=$.ANNOTATION_COMPLETED,u={annotation:o};(0,Y.triggerEvent)(Y.eventTarget,d,u)}e.editData=null,e.isDrawing=!1}})),Q(Qo(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,c=o.movingTextBox,s=a.data;if(c){var d=n.deltaPoints.world,u=s.handles.textBox,v=u.worldPosition;v[0]+=d[0],v[1]+=d[1],v[2]+=d[2],u.hasMoved=!0}else if(void 0===l){var f=n.deltaPoints.world;s.handles.points.forEach((function(e){e[0]+=f[0],e[1]+=f[1],e[2]+=f[2]})),a.invalidated=!0}else{var g=n.currentPoints.world;s.handles.points[l]=Ir(g),a.invalidated=!0}e.editData.hasMoved=!0;var h=(0,Y.getEnabledElement)(r).renderingEngine;Yo(h,i)})),Q(Qo(e),"cancel",(function(t){if(e.isDrawing){e.isDrawing=!1,e._deactivateDraw(t),e._deactivateModify(t),Ul(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,Y.getEnabledElement)(t).renderingEngine;if(Yo(l,o),a){var c=$.ANNOTATION_COMPLETED,s={annotation:r};(0,Y.triggerEvent)(Y.eventTarget,c,s)}return e.editData=null,e.angleStartedNotYetCompleted=!1,r.annotationUID}})),Q(Qo(e),"_activateModify",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._mouseUpCallback),t.addEventListener($.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener($.MOUSE_CLICK,e._mouseUpCallback)})),Q(Qo(e),"_deactivateModify",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._mouseUpCallback),t.removeEventListener($.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener($.MOUSE_CLICK,e._mouseUpCallback)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._mouseUpCallback),t.addEventListener($.MOUSE_DRAG,e._mouseDragCallback),t.addEventListener($.MOUSE_MOVE,e._mouseDragCallback),t.addEventListener($.MOUSE_CLICK,e._mouseUpCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._mouseUpCallback),t.removeEventListener($.MOUSE_DRAG,e._mouseDragCallback),t.removeEventListener($.MOUSE_MOVE,e._mouseDragCallback),t.removeEventListener($.MOUSE_CLICK,e._mouseUpCallback)})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=i.element,c=et(e.getToolName(),l);if(null===(r=c)||void 0===r||!r.length)return a;if(null===(o=c=e.filterInteractableAnnotationsForElement(l,c))||void 0===o||!o.length)return a;for(var s=e.getTargetId(i),d=i.getRenderingEngine(),u={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},v=0;v<c.length;v++){var f,g=c[v],h=g.annotationUID,p=g.data,m=p.handles,w=m.points,E=m.activeHandleIndex;u.annotationUID=h;var y=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[s]?g.invalidated&&e._throttledCalculateCachedStats(g,d,t):(p.cachedStats[s]={angle:null},e._calculateCachedStats(g,d,t));var T=void 0;if(ie(g)||e.editData||null===E||(T=[C[E]]),!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;T&&bc(n,h,"0",C,{color:b,lineDash:I,lineWidth:y});var _="1";if(Cc(n,h,_,C[0],C[1],{color:b,width:y,lineDash:I}),a=!0,C.length<4)return a;if(Cc(n,h,_="2",C[2],C[3],{color:b,width:y,lineDash:I}),Cc(n,h,_="3",lg(C[0],C[1]),lg(C[2],C[3]),{color:b,lineWidth:"1",lineDash:"1,4"}),null!==(f=p.cachedStats[s])&&void 0!==f&&f.angle){var O=e._getTextLines(p,s);if(!p.handles.textBox.hasMoved){var D=ys(C);p.handles.textBox.worldPosition=i.canvasToWorld(D)}var S=i.worldToCanvas(p.handles.textBox.worldPosition),x=Nc(n,h,"1",O,S,C,{},e.getLinkedTextBoxStyle(u,g)),k=x.x,M=x.y,P=x.width,R=x.height;p.handles.textBox.worldBoundingBox={topLeft:i.canvasToWorld([k,M]),topRight:i.canvasToWorld([k+P,M]),bottomLeft:i.canvasToWorld([k,M+R]),bottomRight:i.canvasToWorld([k+P,M+R])}}}return a})),e._throttledCalculateCachedStats=Wc(e._calculateCachedStats,100,{trailing:!0}),e}return Z(o,[{key:"handleSelectedCallback",value:function(e,t,n){var r=e.detail.element,o=t.data;t.highlighted=!0;var a,i=!1;n.worldPosition?i=!0:a=o.handles.points.findIndex((function(e){return e===n}));var l=os(r,this.getToolName());this.editData={annotation:t,viewportIdsToRender:l,handleIndex:a,movingTextBox:i},this._activateModify(r),Vl(r);var c=(0,Y.getEnabledElement)(r).renderingEngine;Yo(c,l),e.preventDefault()}},{key:"_getTextLines",value:function(e,t){var n=e.cachedStats[t].angle;if(void 0!==n)return["".concat(n.toFixed(2)," ").concat(String.fromCharCode(176))]}},{key:"_calculateCachedStats",value:function(e,t,n){var r=e.data,o=n.viewportId,a=n.renderingEngineId;if(4===r.handles.points.length){for(var i=r.handles.points[0],l=r.handles.points[1],c=r.handles.points[2],s=r.handles.points[3],d=r.cachedStats,u=Object.keys(d),v=0;v<u.length;v++){var f=u[v],g=bf([i,l],[c,s]);d[f]={angle:g}}e.invalidated=!1;var h=$.ANNOTATION_MODIFIED,p={annotation:e,viewportId:o,renderingEngineId:a};return(0,Y.triggerEvent)(Y.eventTarget,h,p),d}}}]),o}(hs);Q(cg,"toolName",void 0),cg.toolName="CobbAngle";var sg=cg;var dg="magnify-viewport",ug=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"_bounds",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints,a=(0,Y.getEnabledElement)(r),i=a.viewport,l=a.renderingEngine;if(!(i instanceof Y.StackViewport))throw new Error("MagnifyTool only works on StackViewports");var c=e._getReferencedImageId(i);if(!c)throw new Error("MagnifyTool: No referenced image id found, reconstructed planes not supported yet");var s=os(r,e.getToolName());return e.editData={referencedImageId:c,viewportIdsToRender:s,enabledElement:a,renderingEngine:l,currentPoints:o},e._createMagnificationViewport(),e._activateDraw(r),Vl(r),t.preventDefault(),Yo(l,s),!0})),Q(Qo(e),"preTouchStartCallback",(function(t){e.preMouseDownCallback(t)})),Q(Qo(e),"_createMagnificationViewport",(function(){var t,n=e.editData,r=n.enabledElement,o=n.referencedImageId,a=n.viewportIdsToRender,i=n.renderingEngine,l=n.currentPoints,c=r.viewport,s=c.element,d=c.getProperties().voiRange,u=l.canvas,v=l.world;if(null===(t=s.querySelector(".magnifyTool"))){var f=document.createElement("div");f.classList.add("magnifyTool"),f.style.display="block",f.style.width="".concat(e.configuration.magnifyWidth,"px"),f.style.height="".concat(e.configuration.magnifyHeight,"px"),f.style.position="absolute",t=f,s.querySelector(".viewport-element").appendChild(f);var g={viewportId:dg,type:Y.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(dg);h.setStack([o]).then((function(){h.setProperties({voiRange:d});var t=c.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]],s=[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:s}),h.render()})),t.style.display="block",Yo(i,a)})),Q(Qo(e),"_dragCallback",(function(t){var n=t.detail,r=n.deltaPoints,o=n.element,a=n.currentPoints,i=r.world,l=a.canvas,c=(0,Y.getEnabledElement)(o).renderingEngine.getViewport(dg),s=o.querySelector(".magnifyTool");if(s){s.style.top="".concat(l[1]-e.configuration.magnifyHeight/2,"px"),s.style.left="".concat(l[0]-e.configuration.magnifyWidth/2,"px");var d=c.getCamera(),u=d.focalPoint,v=d.position,f=[v[0]+i[0],v[1]+i[1],v[2]+i[2]],g=[u[0]+i[0],u[1]+i[1],u[2]+i[2]];c.setCamera({focalPoint:g,position:f}),c.render()}})),Q(Qo(e),"_dragEndCallback",(function(t){var n=t.detail.element;(0,Y.getEnabledElement)(n).renderingEngine.disableElement(dg);var r=n.querySelector(".viewport-element"),o=r.querySelector(".magnifyTool");r.removeChild(o),e._deactivateDraw(n),Ul(n)})),Q(Qo(e),"_activateDraw",(function(t){ze.isInteractingWithTool=!0,t.addEventListener($.MOUSE_UP,e._dragEndCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._dragEndCallback),t.addEventListener($.TOUCH_END,e._dragEndCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){ze.isInteractingWithTool=!1,t.removeEventListener($.MOUSE_UP,e._dragEndCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._dragEndCallback),t.removeEventListener($.TOUCH_END,e._dragEndCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback)})),e}return Z(o,[{key:"_getReferencedImageId",value:function(e){var t,n=this.getTargetId(e);return e instanceof Y.StackViewport&&(t=n.split("imageId:")[1]),t}}]),o}(va);Q(ug,"toolName",void 0),ug.toolName="Magnify";var vg=ug;var fg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(this,e)});function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{supportedInteractionTypes:["Mouse","Touch"],configuration:{shadow:!0,preventHandleOutsideImage:!1,displayThreshold:5,positionSync:!0,disableCursor:!1}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"isDrawing",!1),Q(Qo(e),"isHandleOutsideImage",!1),Q(Qo(e),"_elementWithCursor",null),Q(Qo(e),"_currentCursorWorldPosition",null),Q(Qo(e),"_currentCanvasPosition",null),Q(Qo(e),"_disableCursorEnabled",!1),Q(Qo(e),"mouseMoveCallback",(function(t){var n=t.detail,r=n.element,o=n.currentPoints;e._currentCursorWorldPosition=o.world,e._currentCanvasPosition=o.canvas,e._elementWithCursor=r;var a=e.getActiveAnnotation(r);return null===a?(e.createInitialAnnotation(o.world,r),!1):(e.updateAnnotationPosition(r,a),!1)})),Q(Qo(e),"createInitialAnnotation",(function(t,n){var r=(0,Y.getEnabledElement)(n);if(!r)throw new Error("No enabled element found");var o=r.viewport,a=r.renderingEngine;e.isDrawing=!0;var i=o.getCamera(),l=i.viewPlaneNormal,c=i.viewUp;if(!l||!c)throw new Error("Camera not found");var s=e.getReferencedImageId(o,t,l,c),d=o.getFrameOfReferenceUID(),u={highlighted:!0,invalidated:!0,metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(l),viewUp:Ir(c),FrameOfReferenceUID:d,referencedImageId:s},data:{label:"",handles:{points:[Ir(t)],activeHandleIndex:null,textBox:{hasMoved:!1,worldPosition:[0,0,0],worldBoundingBox:{topLeft:[0,0,0],topRight:[0,0,0],bottomLeft:[0,0,0],bottomRight:[0,0,0]}}}}};if(et(e.getToolName(),n).length>0)return null;if(null!==tt(u,n)){var v=os(n,e.getToolName(),!1);Yo(a,v)}})),Q(Qo(e),"onCameraModified",(function(t){var n=t.detail,r=n.element,o=n.previousCamera,a=n.camera,i=(0,Y.getEnabledElement)(r).viewport;if(r===e._elementWithCursor){var l=o.focalPoint,c=a.viewPlaneNormal,s=a.focalPoint,d=[0,0,0];if(Hd().subtract(s,l,d),0!==d.reduce((function(e,t){return e+t}),0)){var u=Hd().dot(d,c);if(!(Math.abs(u)<.01)&&e._currentCanvasPosition){var v=i.canvasToWorld(e._currentCanvasPosition);e._currentCursorWorldPosition=v,e.updateAnnotationPosition(r,e.getActiveAnnotation(r))}}}})),Q(Qo(e),"renderAnnotation",(function(t,n){var r,o,a=!1,i=t.viewport,l=(t.FrameOfReferenceUID,e._elementWithCursor===i.element);e.configuration.positionSync&&!l&&e.updateViewportImage(i);var c=i.element,s=et(e.getToolName(),c);if(null===(r=s)||void 0===r||!r.length)return a;if(null===(o=s=e.filterInteractableAnnotationsForElement(c,s))||void 0===o||!o.length)return a;for(var d={toolGroupId:e.toolGroupId,toolName:e.getToolName(),viewportId:t.viewport.id},u=0;u<s.length;u++){var v=s[u],f=v.annotationUID,g=v.data.handles.points;if(!f)return a;d.annotationUID=f;var h=parseFloat(e.getStyle("lineWidth",d,v)),p=e.getStyle("lineDash",d,v),m=e.getStyle("color",d,v);if(g[0].some((function(e){return isNaN(e)})))return a;var w=g.map((function(e){return i.worldToCanvas(e)}));if(!i.getRenderingEngine())return console.warn("Rendering Engine has been destroyed"),a;if(xe(f)){var E={upper:"upper",right:"right",lower:"lower",left:"left"},y=Un(w[0],2),I=y[0],b=y[1],C=l?20:7,T=l?5:7;Cc(n,f,E.upper,[I,b-(C/2+T)],[I,b-C/2],{color:m,lineDash:p,lineWidth:h}),Cc(n,f,E.lower,[I,b+(C/2+T)],[I,b+C/2],{color:m,lineDash:p,lineWidth:h}),Cc(n,f,E.right,[I+(C/2+T),b],[I+C/2,b],{color:m,lineDash:p,lineWidth:h}),Cc(n,f,E.left,[I-(C/2+T),b],[I-C/2,b],{color:m,lineDash:p,lineWidth:h}),a=!0}}return a})),e._disableCursorEnabled=e.configuration.disableCursor,e}return Z(o,[{key:"onSetToolActive",value:function(){if(this._disableCursorEnabled=this.configuration.disableCursor,this._disableCursorEnabled){var e=Xo(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,Y.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Vl(e.viewport.element)}))}}},{key:"onSetToolDisabled",value:function(){if(this._disableCursorEnabled){var e=Xo(this.toolGroupId).viewportsInfo;e&&e.map((function(e){return(0,Y.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})).forEach((function(e){e&&Ul(e.viewport.element)}))}}},{key:"getActiveAnnotation",value:function(e){var t=et(this.getToolName(),e);return t.length?t[0]:null}},{key:"updateAnnotationPosition",value:function(e,t){var n,r,o=this._currentCursorWorldPosition;if(o&&null!==(n=t.data)&&void 0!==n&&null!==(r=n.handles)&&void 0!==r&&r.points){t.data.handles.points=[Ir(o)],t.invalidated=!0;var a=os(e,this.getToolName(),!1),i=(0,Y.getEnabledElement)(e);if(i){var l=i.renderingEngine;Yo(l,a)}}}},{key:"filterInteractableAnnotationsForElement",value:function(e,t){var n,r,o;if(!(t instanceof Array)||0===t.length)return[];var a=t[0],i=null===(n=(0,Y.getEnabledElement)(e))||void 0===n?void 0:n.viewport;if(!i)return[];var l=i.getCamera(),c=l.viewPlaneNormal,s=l.focalPoint;if(!c||!s)return[];var d=null===(r=a.data)||void 0===r||null===(o=r.handles)||void 0===o?void 0:o.points;if(!(d instanceof Array)||1!==d.length)return[];var u=d[0],v=Y.utilities.planar.planeEquation(c,s);return Y.utilities.planar.planeDistanceToPoint(v,u)<this.configuration.displayThreshold?[a]:[]}},{key:"updateViewportImage",value:function(e){var t=this._currentCursorWorldPosition;if(t&&!t.some((function(e){return isNaN(e)})))if(e instanceof Y.StackViewport){var n=Y.utilities.getClosestStackImageIndexForPoint(t,e);if(null===n)return;n!==e.getCurrentImageIdIndex()&&e.setImageIdIndex(n)}else if(e instanceof Y.VolumeViewport){var r=e.getCamera(),o=r.focalPoint,a=r.viewPlaneNormal;if(!o||!a)return;var i=Y.utilities.planar.planeEquation(a,o),l=Y.utilities.planar.planeDistanceToPoint(i,t,!0);if(Math.abs(l)<.5)return;var c=rc.vec3.normalize(rc.vec3.create(),rc.vec3.fromValues.apply(rc.vec3,Ir(a))),s=rc.vec3.scale(rc.vec3.create(),c,l),d=rc.vec3.add(rc.vec3.create(),rc.vec3.fromValues.apply(rc.vec3,Ir(o)),s);e.setCamera({focalPoint:d});var u=e.getRenderingEngine();u&&u.renderViewport(e.id)}}}]),o}(us);Q(fg,"toolName",void 0),fg.toolName="ReferenceCursors";var gg=fg;var hg=[],pg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:{viewportId:"",scaleLocation:"bottom"}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"touchDragCallback",void 0),Q(Qo(e),"mouseDragCallback",void 0),Q(Qo(e),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",{}),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"_init",(function(){var t=(0,Y.getRenderingEngines)()[0];if(t){var n=Xo(e.toolGroupId).viewportsInfo;if(n){var r=n.map((function(e){return(0,Y.getEnabledElementByIds)(e.viewportId,e.renderingEngineId)})),o=r[0].viewport,a=r[0].FrameOfReferenceUID;if(e.configuration.viewportId&&r.forEach((function(t){t.viewport.id==e.configuration.viewportId&&(o=t.viewport)})),o){var i=o.getCamera(),l=i.viewUp,c=i.viewPlaneNormal,s=Y.utilities.getViewportImageCornersInWorld(o),d=e.editData.annotation,u=et(e.getToolName(),o.element);if(u.length&&(d=u.filter((function(e){return e.data.viewportId==o.id}))[0]),hg.includes(o.id))e.editData.annotation.data.viewportId==o.id&&(e.editData.annotation.data.handles.points=s,e.editData.annotation.data.viewportId=o.id);else{var v={metadata:{toolName:e.getToolName(),viewPlaneNormal:Ir(c),viewUp:Ir(l),FrameOfReferenceUID:a,referencedImageId:null},data:{handles:{points:s},viewportId:o.id}};hg.push(o.id),tt(v,o.element),d=v}e.editData={viewport:o,renderingEngine:t,annotation:d}}}}})),Q(Qo(e),"onSetToolEnabled",(function(){e._init()})),Q(Qo(e),"onCameraModified",(function(t){e.configuration.viewportId=t.detail.viewportId,e._init()})),Q(Qo(e),"computeScaleSize",(function(e,t,n){var r=[16e3,8e3,4e3,2e3,1e3,500,250,100,50,25,10,5,2];return("top"==n||"bottom"==n?r.filter((function(t){return t<.6*e&&t>.2*e})):r.filter((function(e){return e<.6*t&&e>.2*t})))[0]})),Q(Qo(e),"computeEndScaleTicks",(function(e,t){var n={bottom:[[0,-10],[0,-10]],top:[[0,10],[0,10]],left:[[0,0],[10,0]],right:[[0,0],[-10,0]]};return{endTick1:[[e[1][0]+n[t][0][0],e[1][1]+n[t][0][0]],[e[1][0]+n[t][1][0],e[1][1]+n[t][1][1]]],endTick2:[[e[0][0]+n[t][0][0],e[0][1]+n[t][0][0]],[e[0][0]+n[t][1][0],e[0][1]+n[t][1][1]]]}})),Q(Qo(e),"computeInnerScaleTicks",(function(e,t,n,r,o){var a;"bottom"==t||"top"==t?a=o[0][0]-r[0][0]:"left"!=t&&"right"!=t||(a=o[0][1]-r[0][1]);var i=[],l=[],c=[],s=e;e>=50&&(s=e/10);for(var d=a/s,u=0;u<s-1;u++){var v={bottom:[[d*(u+1),0],[d*(u+1),5]],top:[[d*(u+1),0],[d*(u+1),-5]],left:[[0,d*(u+1)],[-5,d*(u+1)]],right:[[0,d*(u+1)],[5,d*(u+1)]]};i.push("".concat(n,"-tick").concat(u)),l.push("tick".concat(u)),(u+1)%5==0?c.push([[r[0][0]+v[t][0][0],r[0][1]+v[t][0][1]],[r[1][0]+v[t][0][0],r[1][1]+v[t][0][1]]]):c.push([[r[0][0]+v[t][0][0],r[0][1]+v[t][0][1]],[r[1][0]+v[t][1][0],r[1][1]+v[t][1][1]]])}return{tickIds:i,tickUIDs:l,tickCoordinates:c}})),Q(Qo(e),"computeWorldScaleCoordinates",(function(e,t,n){var r,o=rc.vec3.subtract(rc.vec3.create(),n[0],n[1]);o=rc.vec3.normalize(rc.vec3.create(),o);var a=rc.vec3.subtract(rc.vec3.create(),n[2],n[0]);a=rc.vec3.normalize(rc.vec3.create(),a);var i={bottom:[n[1],n[2]],top:[n[0],n[3]],right:[n[2],n[3]],left:[n[0],n[1]]},l=rc.vec3.add(rc.vec3.create(),i[t][0],i[t][0]).map((function(e){return e/2})),c=e/2/Math.sqrt(Math.pow(o[0],2)+Math.pow(o[1],2)+Math.pow(o[2],2));return"top"==t||"bottom"==t?r=[rc.vec3.subtract(rc.vec3.create(),l,a.map((function(e){return e*c}))),rc.vec3.add(rc.vec3.create(),l,a.map((function(e){return e*c})))]:"left"!=t&&"right"!=t||(r=[rc.vec3.add(rc.vec3.create(),l,o.map((function(e){return e*c}))),rc.vec3.subtract(rc.vec3.create(),l,o.map((function(e){return e*c})))]),r})),Q(Qo(e),"computeCanvasScaleCoordinates",(function(e,t,n,r,o){var a;if("top"==o||"bottom"==o){var i=t[0][0]-t[1][0];a=[[e.width/2-i/2,n.height],[e.width/2+i/2,n.height]]}else if("left"==o||"right"==o){var l=t[0][1]-t[1][1];a=[[r.width,e.height/2-l/2],[r.width,e.height/2+l/2]]}return a})),Q(Qo(e),"computeScaleBounds",(function(e,t,n,r){var o=t*Math.min(1e3,e.width),a=n*Math.min(1e3,e.height),i={bottom:[-a,-o],top:[a,o],left:[a,o],right:[-a,-o]},l={bottom:[e.height,e.width],top:[0,e.width],left:[e.height,0],right:[e.height,e.width]};return{height:l[r][0]+i[r][0],width:l[r][1]+i[r][1]}})),e}return Z(o,[{key:"renderAnnotation",value:function(e,t){if(this.editData.viewport){var n=this.configuration.scaleLocation,r=e.viewport,o=et(this.getToolName(),r.element).filter((function(e){return e.data.viewportId==r.id}))[0],a=e.viewport.canvas;if(!r)return!1;var i={toolGroupId:this.toolGroupId,toolName:this.getToolName(),viewportId:e.viewport.id},l={width:a.width,height:a.height},c=o.data.handles.points[0],s=o.data.handles.points[1],d=o.data.handles.points[2],u=o.data.handles.points[3],v=[c,d,s,u],f=rc.vec3.distance(d,u),g=rc.vec3.distance(c,d),h=this.computeScaleBounds(l,.05,.05,n),p=this.computeScaleBounds(l,.05,.05,n),m=this.computeScaleSize(f,g,n),w=this.computeWorldScaleCoordinates(m,n,v).map((function(e){return r.worldToCanvas(e)})),E=this.computeCanvasScaleCoordinates(l,w,p,h,n),y=this.computeEndScaleTicks(E,n),I=o.annotationUID;i.annotationUID=I;var b=this.getStyle("lineWidth",i,o),C=this.getStyle("lineDash",i,o),T=this.getStyle("color",i,o),_=this.getStyle("shadow",i,o),O="".concat(I,"-scaleline");Cc(t,I,"1",E[0],E[1],{color:T,width:b,lineDash:C,shadow:_},O);var D="".concat(I,"-left");Cc(t,I,"2",y.endTick1[0],y.endTick1[1],{color:T,width:b,lineDash:C,shadow:_},D);var S="".concat(I,"-right");Cc(t,I,"3",y.endTick2[0],y.endTick2[1],{color:T,width:b,lineDash:C,shadow:_},S);for(var x={bottom:[-10,-42],top:[-12,-35],left:[-40,-20],right:[-50,-20]},k=[E[0][0]+x[n][0],E[0][1]+x[n][1]],M=this._getTextLines(m),P=this.computeInnerScaleTicks(m,n,I,y.endTick1,y.endTick2),R=P.tickIds,N=P.tickUIDs,A=P.tickCoordinates,L=0;L<N.length;L++)Cc(t,I,N[L],A[L][0],A[L][1],{color:T,width:b,lineDash:C,shadow:_},R[L]);return kc(t,I,"text0",M,[k[0],k[1]],{fontFamily:"Helvetica Neue, Helvetica, Arial, sans-serif",fontSize:"14px",lineDash:"2,3",lineWidth:"1",shadow:!0,color:T}),!1}}},{key:"_getTextLines",value:function(e){var t,n;return e>=50?(t=e/10,n=" cm"):(t=e,n=" mm"),[t.toString().concat(n)]}}]),o}(us);Q(pg,"toolName",void 0),pg.toolName="ScaleOverlay";var mg=pg,wg=Y.utilities.transformWorldToIndex;function Eg(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentIndex,i=t.segmentationId,l=t.constraintFn,c=n.imageData,s=n.dimensions,d=n.getScalarData(),u=r.map((function(e){return wg(c,e)}));u=u.map((function(e){return e.map((function(e){return Math.round(e)}))}));var v=Kc(u,s);if(v.every((function(e){var t=Un(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");zc(c,(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),yt(i)}(0,t)}var yg=Y.utilities.transformWorldToIndex;function Ig(e,t){!function(e,t){var n=t.volume,r=t.points,o=t.segmentsLocked,a=t.segmentationId,i=n.imageData,l=n.dimensions,c=n.getScalarData(),s=r.map((function(e){return yg(i,e)})),d=Kc(s,l);if(d.every((function(e){var t=Un(e,2);return t[0]!==t[1]})))throw new Error("Oblique segmentation tools are not supported yet");zc(i,(function(){return!0}),(function(e){var t=e.value,n=e.index;o.includes(t)||(c[n]=0)}),d),yt(a)}(0,t)}var bg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:Eg,ERASE_INSIDE:Ig},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"_throttledCalculateCachedStats",void 0),Q(Qo(e),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o),l=i.viewport,c=i.renderingEngine;e.isDrawing=!0;var s=l.getCamera(),d=s.viewPlaneNormal,u=s.viewUp,v=e.toolGroupId,f=ad(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=ud(h),w=sd(h),E=gd(v,g,m),y=Tt(h).representationData[p].volumeId,I=Y.cache.getVolume(y),b={highlighted:!0,invalidated:!0,metadata:{viewPlaneNormal:Ir(d),viewUp:Ir(u),FrameOfReferenceUID:l.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:E},data:{handles:{points:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null}}},C=os(o,e.getToolName());return e.editData={annotation:b,segmentation:I,segmentIndex:m,segmentsLocked:w,segmentColor:E,segmentationId:h,viewportIdsToRender:C,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(c,C),!0})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n,r,o,a,i,l,c,s,d=t.detail,u=d.element,v=e.editData,f=v.annotation,g=v.viewportIdsToRender,h=v.handleIndex,p=f.data,m=d.currentPoints,w=(0,Y.getEnabledElement)(u),E=w.viewport,y=E.worldToCanvas,I=E.canvasToWorld,b=m.world,C=p.handles.points;switch(C[h]=Ir(b),h){case 0:case 3:n=y(C[0]),r=[(a=y(C[3]))[0],n[1]],o=[n[0],a[1]],l=I(r),c=I(o),C[1]=l,C[2]=c;break;case 1:case 2:r=y(C[1]),n=[(o=y(C[2]))[0],r[1]],a=[r[0],o[1]],i=I(n),s=I(a),C[0]=i,C[3]=s}f.invalidated=!0,e.editData.hasMoved=!0;var T=w.renderingEngine;Yo(T,g)})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentationId,s=r.segmentIndex,d=r.segmentsLocked,u=o.data;if(!a||i){u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ul(n);var v=(0,Y.getEnabledElement)(n),f=v.viewport;if(e.editData=null,e.isDrawing=!1,f instanceof Y.StackViewport)throw new Error("Not implemented yet");var g={points:u.handles.points,volume:l,segmentationId:c,segmentIndex:s,segmentsLocked:d};e.applyActiveStrategy(v,g)}})),Q(Qo(e),"_activateDraw",(function(t){t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(Ac(n,l,"0",c[0],c[3],{color:s}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(va);Q(bg,"toolName",void 0),bg.toolName="RectangleScissor";var Cg=bg;var Tg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:ed},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,Y.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ad(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=ud(p),E=sd(p),y=gd(f,h,w),I=Tt(p).representationData[m].volumeId,b=Y.cache.getVolume(I),C={invalidated:!0,highlighted:!0,metadata:{viewPlaneNormal:Ir(u),viewUp:Ir(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{handles:{points:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null},isDrawing:!0,cachedStats:{}}},T=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentationId:p,segmentsLocked:E,segmentColor:y,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(s,T),!0})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,Y.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],s.invalidated=!0,e.editData.hasMoved=!0,Yo(i,d)})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ul(n);var h=(0,Y.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof Y.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,viewPlaneNormal:f,segmentationId:d,viewUp:g};e.applyActiveStrategy(h,m)}})),Q(Qo(e),"_activateDraw",(function(t){t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback),t.addEventListener($.TOUCH_END,e._endCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(yc(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(va);Q(Tg,"toolName",void 0),Tg.toolName="CircleScissor";var _g=Tg;var Og=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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:Ks},defaultStrategy:"FILL_INSIDE",activeStrategy:"FILL_INSIDE"}};return X(this,o),Q(Qo(e=r.call(this,t,n)),"editData",void 0),Q(Qo(e),"isDrawing",void 0),Q(Qo(e),"isHandleOutsideImage",void 0),Q(Qo(e),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=r.canvas,l=(0,Y.getEnabledElement)(o),c=l.viewport,s=l.renderingEngine;e.isDrawing=!0;var d=c.getCamera(),u=d.viewPlaneNormal,v=d.viewUp,f=e.toolGroupId,g=ad(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=ud(p),E=sd(p),y=gd(f,h,w),I=Tt(p).representationData[m].volumeId,b=Y.cache.getVolume(I);e.isDrawing=!0;var C={metadata:{viewPlaneNormal:Ir(u),viewUp:Ir(v),FrameOfReferenceUID:c.getFrameOfReferenceUID(),referencedImageId:"",toolName:e.getToolName(),segmentColor:y},data:{invalidated:!0,handles:{points:[Ir(a),Ir(a),Ir(a),Ir(a)],activeHandleIndex:null},cachedStats:{},highlighted:!0}},T=[c.id];return e.editData={annotation:C,segmentation:b,centerCanvas:i,segmentIndex:w,segmentsLocked:E,segmentColor:y,segmentationId:p,toolGroupId:f,viewportIdsToRender:T,handleIndex:3,movingTextBox:!1,newAnnotation:!0,hasMoved:!1},e._activateDraw(o),Vl(o),t.preventDefault(),Yo(s,T),!0})),Q(Qo(e),"_dragCallback",(function(t){e.isDrawing=!0;var n=t.detail,r=n.element,o=n.currentPoints.canvas,a=(0,Y.getEnabledElement)(r),i=a.renderingEngine,l=a.viewport.canvasToWorld,c=e.editData,s=c.annotation,d=c.viewportIdsToRender,u=c.centerCanvas,v=s.data,f=Math.abs(o[0]-u[0]),g=Math.abs(o[1]-u[1]),h=Math.sqrt(f*f+g*g),p=[u[0],u[1]+h],m=[u[0],u[1]-h],w=[u[0]-h,u[1]],E=[u[0]+h,u[1]];v.handles.points=[l(p),l(m),l(w),l(E)],s.invalidated=!0,e.editData.hasMoved=!0,Yo(i,d)})),Q(Qo(e),"_endCallback",(function(t){var n=t.detail.element,r=e.editData,o=r.annotation,a=r.newAnnotation,i=r.hasMoved,l=r.segmentation,c=r.segmentIndex,s=r.segmentsLocked,d=r.segmentationId,u=o.data,v=o.metadata,f=v.viewPlaneNormal,g=v.viewUp;if(!a||i){o.highlighted=!1,u.handles.activeHandleIndex=null,e._deactivateDraw(n),Ul(n);var h=(0,Y.getEnabledElement)(n),p=h.viewport;if(e.editData=null,e.isDrawing=!1,p instanceof Y.StackViewport)throw new Error("Not implemented yet");var m={points:u.handles.points,volume:l,segmentIndex:c,segmentsLocked:s,segmentationId:d,viewPlaneNormal:f,viewUp:g};e.applyActiveStrategy(h,m)}})),Q(Qo(e),"_activateDraw",(function(t){t.addEventListener($.MOUSE_UP,e._endCallback),t.addEventListener($.MOUSE_DRAG,e._dragCallback),t.addEventListener($.MOUSE_CLICK,e._endCallback),t.addEventListener($.TOUCH_END,e._endCallback),t.addEventListener($.TOUCH_TAP,e._endCallback),t.addEventListener($.TOUCH_DRAG,e._dragCallback)})),Q(Qo(e),"_deactivateDraw",(function(t){t.removeEventListener($.MOUSE_UP,e._endCallback),t.removeEventListener($.MOUSE_DRAG,e._dragCallback),t.removeEventListener($.MOUSE_CLICK,e._endCallback),t.removeEventListener($.TOUCH_END,e._endCallback),t.removeEventListener($.TOUCH_DRAG,e._dragCallback),t.removeEventListener($.TOUCH_TAP,e._endCallback)})),Q(Qo(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,c=a.data.handles.points.map((function(e){return o.worldToCanvas(e)})),s=c[0],d=c[1],u=[Math.floor((s[0]+d[0])/2),Math.floor((s[1]+d[1])/2)],v=Math.abs(s[1]-Math.floor((s[1]+d[1])/2)),f="rgb(".concat(i.segmentColor.slice(0,3),")");return o.getRenderingEngine()?(yc(n,l,"0",u,v,{color:f}),!0):(console.warn("Rendering Engine has been destroyed"),r)})),e}return Z(o)}(va);Q(Og,"toolName",void 0),Og.toolName="SphereScissor";var Dg=Og;var Sg=Y.utilities.transformWorldToIndex,xg=Y.utilities.isEqual,kg=function(e){ta(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=oa(t);if(n){var o=oa(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ra(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 X(this,o),Q(Qo(e=r.call(this,t,n)),"preMouseDownCallback",(function(t){var n=t.detail,r=n.currentPoints,o=n.element,a=r.world,i=(0,Y.getEnabledElement)(o).viewport.getCamera().viewPlaneNormal,l=ad(e.toolGroupId);if(!l)throw new Error("No active segmentation detected, create one before using scissors tool");var c=l.segmentationId,s=l.type,d=ud(c),u=sd(c),v=Tt(c).representationData[s].volumeId,f=Y.cache.getVolume(v),g=f.dimensions,h=f.direction,p=f.getScalarData(),m=Sg(f.imageData,a),w=e.getFixedDimension(i,h);if(void 0!==w){var E=e.generateHelpers(p,g,m,w),y=E.floodFillGetter,I=E.getLabelValue,b=E.getScalarDataPositionFromPlane,C=E.inPlaneSeedPoint,T=E.fixedDimensionValue;if(!(m[0]<0||m[0]>=g[0]||m[1]<0||m[1]>=g[1]||m[2]<0||m[2]>=g[2])){var _=I(m[0],m[1],m[2]);if(!u.includes(_)){var O=zs(y,C);return O.flooded.forEach((function(e){var t=b(e[0],e[1]);p[t]=d})),yt(c,e.getFramesModified(w,T,O)),!0}}}else console.warn("Oblique paint fill not yet supported")})),Q(Qo(e),"getFramesModified",(function(e,t,n){var r=n.boundaries;if(2===e)return[t];for(var o=1/0,a=-1/0,i=0;i<r.length;i++){var l=r[i][1];l<o&&(o=l),l>a&&(a=l)}for(var c=[],s=o;s<=a;s++)c.push(s);return c})),Q(Qo(e),"generateHelpers",(function(t,n,r){var o,a,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2;switch(i){case 0:o=r[0],a=[r[1],r[2]];break;case 1:o=r[1],a=[r[0],r[2]];break;case 2:o=r[2],a=[r[0],r[1]];break;default:throw new Error("Invalid fixedDimension: ".concat(i))}var l=function(e,t,r){return r*n[1]*n[0]+t*n[0]+e},c=function(e,n,r){return t[l(e,n,r)]},s=e.generateFloodFillGetter(n,i,o,c),d=e.generateGetScalarDataPositionFromPlane(l,i,o);return{getScalarDataPositionFromPlane:d,getLabelValue:c,floodFillGetter:s,inPlaneSeedPoint:a,fixedDimensionValue:o}})),Q(Qo(e),"generateFloodFillGetter",(function(e,t,n,r){var o;switch(t){case 0:o=function(t,o){if(!(t>=e[1]||t<0||o>=e[2]||o<0))return r(n,t,o)};break;case 1:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[2]||o<0))return r(t,n,o)};break;case 2:o=function(t,o){if(!(t>=e[0]||t<0||o>=e[1]||o<0))return r(t,o,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return o})),Q(Qo(e),"generateGetScalarDataPositionFromPlane",(function(e,t,n){var r;switch(t){case 0:r=function(t,r){return e(n,t,r)};break;case 1:r=function(t,r){return e(t,n,r)};break;case 2:r=function(t,r){return e(t,r,n)};break;default:throw new Error("Invalid fixedDimension: ".concat(t))}return r})),e}return Z(o,[{key:"getFixedDimension",value:function(e,t){var n=t.slice(0,3),r=t.slice(3,6),o=t.slice(6,9),a=[Math.abs(e[0]),Math.abs(e[1]),Math.abs(e[2])],i=[Math.abs(n[0]),Math.abs(n[1]),Math.abs(n[2])];if(xg(a,i))return 0;var l=[Math.abs(r[0]),Math.abs(r[1]),Math.abs(r[2])];if(xg(a,l))return 1;var c=[Math.abs(o[0]),Math.abs(o[1]),Math.abs(o[2])];return xg(a,c)?2:void 0}}]),o}(va);Q(kg,"toolName",void 0),kg.toolName="PaintFill";var Mg=kg}(),g}()}));
3
3
  //# sourceMappingURL=index.js.map