modified-dicom-pacs
Version:
A modified version of DICOM PACS implementation
2 lines • 772 kB
JavaScript
/*! For license information please see 203.bundle.d9cd79e7446fc5487b59.js.LICENSE.txt */
(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[203],{93858:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,L:()=>d});var r=n(61738),i=n(84901),o=n(60878),a=n(37054);const{Active:s}=i.ToolModes;function u(e){const{renderingEngineId:t,viewportId:n}=e.detail,i=(0,a.kg)(),u=o.kt.getModifierKey(),l=r.dU.getToolGroupForViewport(n,t);if(!l)return null;const c=Object.keys(l.toolOptions),h=l.getDefaultMousePrimary();for(let e=0;e<c.length;e++){const t=c[e],n=l.toolOptions[t];if(n.mode!==s)continue;if(n.bindings.length&&n.bindings.some((e=>e.mouseButton===(i??h)&&e.modifierKey===u)))return l.getToolInstance(t)}}var l=n(12468);function c(e){const t=u(e);if(t){const{renderingEngineId:n,viewportId:i}=e.detail,o=r.dU.getToolGroupForViewport(i,n),a=t.getToolName();Object.keys(o.toolOptions).includes(a)&&o.setViewportsCursorByToolName(a)}const n=function(e,t){const n=new Map,{renderingEngineId:i,viewportId:o}=e.detail,a=r.dU.getToolGroupForViewport(o,i);if(!a)return n;const s=Object.keys(a.toolOptions),u=e.detail.key;for(let e=0;e<s.length;e++){const r=s[e],i=a.getToolInstance(r),o=i.configuration?.actions;if(!o)continue;const l=Object.values(o);if(!l?.length||!t.includes(i.mode))continue;const c=l.find((e=>e.bindings.some((e=>e.key===u))));c&&n.set(i,c)}return n}(e,[l.A.Active]);if(n?.size){const{element:t}=e.detail;for(const[r,i]of[...n.entries()]){("function"==typeof i.method?i.method:r[i.method]).call(r,t,i,e)}}}var h=n(13272);function d(e){const t=u(e);if(!t)return;const{renderingEngineId:n,viewportId:i}=e.detail,o=r.dU.getToolGroupForViewport(i,n);(0,h.Ud)();const a=t.getToolName();Object.keys(o.toolOptions).includes(a)&&o.setViewportsCursorByToolName(a)}},39375:(e,t,n)=>{"use strict";n.d(t,{q_:()=>i,LM:()=>o,cT:()=>C,Xd:()=>T,al:()=>N,tG:()=>k,Je:()=>F,rO:()=>M});var r=n(44758);const i=r.A.bind(null,"Mouse","mouseClickCallback"),o=r.A.bind(null,"Mouse","doubleClickCallback");var a=n(61738),s=n(84901),u=n(42351),l=n(48428),c=n(21009),h=n(44174),d=n(9933),p=n(85956),f=n(60878),m=n(94750);const{Active:v}=s.ToolModes;function g(e){const{renderingEngineId:t,viewportId:n}=e.detail,r=e.detail.event,i=(0,m.A)(r)||f.kt.getModifierKey(),o=a.dU.getToolGroupForViewport(n,t);if(!o)return null;const s=Object.keys(o.toolOptions),u=o.getDefaultMousePrimary();for(let e=0;e<s.length;e++){const t=s[e],n=o.toolOptions[t],a=n.bindings.length&&n.bindings.some((e=>e.mouseButton===(r?r.buttons:u)&&e.modifierKey===i));if(n.mode===v&&a)return o.getToolInstance(t)}}var y=n(31437),_=n(92136);const{Active:b,Passive:x}=s.ToolModes;function w(e){if(a.wk.isInteractingWithTool)return!1;const t=e.detail,{element:n}=t,r=(0,_.getEnabledElement)(n),{canvas:i}=t.currentPoints;if(!r)return!1;const o=function(e,t){const n=new Map,{renderingEngineId:r,viewportId:i}=e.detail,o=a.dU.getToolGroupForViewport(i,r);if(!o)return n;const s=Object.keys(o.toolOptions),u=o.getDefaultMousePrimary(),l=e.detail.event,c=l?.buttons??u,h=(0,m.A)(l)||f.kt.getModifierKey();for(let e=0;e<s.length;e++){const r=s[e],i=o.getToolInstance(r),a=i.configuration?.actions??{},u=Object.values(a);if(!u?.length||!t.includes(i.mode))continue;const l=u.find((e=>e.bindings.length&&e.bindings.some((e=>e.mouseButton===c&&e.modifierKey===h))));l&&n.set(i,l)}return n}(e,[b,x]),s=Array.from(o.keys()),u=(0,d.A)(n,s),l=(0,p.A)(n,u,i);if(l.length>0){const{tool:t,annotation:n}=l[0],r=o.get(t);return("string"==typeof r.method?t[r.method]:r.method).call(t,e,n),!0}return!1}const{Active:E,Passive:D}=s.ToolModes;function C(e){if(a.wk.isInteractingWithTool)return;const t=g(e);if(t&&"function"==typeof t.preMouseDownCallback){if(t.preMouseDownCallback(e))return}const n=1===e.detail.event.buttons,r=[...(0,y.A)(e,[E],e.detail.event.buttons)||[],...(n?(0,y.A)(e,[D]):void 0)||[]];if(w(e))return;const i=e.detail,{element:o}=i,s=(0,d.A)(o,r),u=i.currentPoints.canvas,l=(0,h.A)(o,s,u,"mouse"),c=!!e.detail.event.shiftKey;if(l.length>0){const{tool:t,annotation:n,handle:r}=S(l);return A(n.annotationUID,c),void t.handleSelectedCallback(e,n,r,"Mouse")}const f=(0,p.A)(o,s,u,"mouse");if(f.length>0){const{tool:t,annotation:n}=S(f);return A(n.annotationUID,c),void t.toolSelectedCallback(e,n,"Mouse",u)}if(t&&"function"==typeof t.postMouseDownCallback){if(t.postMouseDownCallback(e))return}}function S(e){return e.length>1&&e.find((e=>!(0,l.isAnnotationLocked)(e.annotation)&&(0,c.isAnnotationVisible)(e.annotation.annotationUID)))||e[0]}function A(e,t=!1){if(t)if((0,u.isAnnotationSelected)(e))(0,u.setAnnotationSelected)(e,!1);else{const t=!0;(0,u.setAnnotationSelected)(e,!0,t)}else{const t=!1;(0,u.setAnnotationSelected)(e,!0,t)}}function T(e){if(a.wk.isInteractingWithTool)return;const t=g(e);if(t&&!a.wk.isMultiPartToolActive&&t.addNewAnnotation){const n=t.addNewAnnotation(e,"mouse");(0,u.setAnnotationSelected)(n.annotationUID)}}function N(e){if(a.wk.isInteractingWithTool)return;const t=g(e);!t||"function"!=typeof t.mouseDragCallback||t.mouseDragCallback(e)}var I=n(6805);const{Active:P,Passive:O}=s.ToolModes;function k(e){if(a.wk.isInteractingWithTool||a.wk.isMultiPartToolActive)return;const t=(0,y.A)(e,[P,O]),n=e.detail,{element:r}=n,i=(0,d.A)(r,t),o=t.filter((e=>!i.some((t=>t.tool.getToolName()===e.getToolName()))));let s=!1;for(const{tool:t,annotations:n}of i)"function"==typeof t.mouseMoveCallback&&(s=t.mouseMoveCallback(e,n)||s);o.forEach((t=>{"function"==typeof t.mouseMoveCallback&&t.mouseMoveCallback(e)})),!0===s&&(0,I.Ay)(r)}const F=r.A.bind(null,"Mouse","mouseUpCallback"),M=r.A.bind(null,"MouseWheel","mouseWheelCallback")},44758:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(61738),i=n(12468);const{Active:o}=i.A;function a(e,t,n){if(r.wk.isInteractingWithTool)return!1;const{renderingEngineId:i,viewportId:a}=n.detail,s=r.dU.getToolGroupForViewport(a,i);if(!s)return!1;let u;const l=Object.keys(s.toolOptions);for(let e=0;e<l.length;e++){const n=l[e],r=s.toolOptions[n],i=s.getToolInstance(n);if(r.mode===o&&"function"==typeof i[t]){u=s.getToolInstance(n);break}}u&&u[t](n)}},94750:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(84901);const i=e=>e.shiftKey?e.ctrlKey?r.KeyboardBindings.ShiftCtrl:e.altKey?r.KeyboardBindings.ShiftAlt:e.metaKey?r.KeyboardBindings.ShiftMeta:r.KeyboardBindings.Shift:e.ctrlKey?e.altKey?r.KeyboardBindings.CtrlAlt:e.metaKey?r.KeyboardBindings.CtrlMeta:r.KeyboardBindings.Ctrl:e.altKey?e.metaKey&&r.KeyboardBindings.AltMeta||r.KeyboardBindings.Alt:e.metaKey?r.KeyboardBindings.Meta:void 0},31437:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(61738);function i(e,t,n){const{renderingEngineId:i,viewportId:o}=e.detail,a=r.dU.getToolGroupForViewport(o,i);if(!a)return[];const s=[],u=Object.keys(a.toolOptions);for(let e=0;e<u.length;e++){const r=u[e],i=a.toolOptions[r],o=null!=n&&i.bindings.length&&i.bindings.some((e=>e.mouseButton===n));if(t.includes(i.mode)&&(!n||o)){const e=a.getToolInstance(r);s.push(e)}}return s}},50734:(e,t,n)=>{"use strict";n.d(t,{Oz:()=>w,ls:()=>D,x5:()=>S,gX:()=>y,$F:()=>x,lI:()=>C});var r=n(61738),i=n(84901),o=n(42351),a=n(48428),s=n(21009),u=n(44174),l=n(9933),c=n(85956),h=n(94750),d=n(60878);const{Active:p}=i.ToolModes;function f(e){const{renderingEngineId:t,viewportId:n}=e.detail,i=e.detail.event,o=r.dU.getToolGroupForViewport(n,t);if(!o)return null;const a=Object.keys(o.toolOptions),s=Object.keys(i.touches).length,u=(0,h.A)(i)||d.kt.getModifierKey(),l=o.getDefaultMousePrimary();for(let e=0;e<a.length;e++){const t=a[e],n=o.toolOptions[t],r=n.bindings.length&&n.bindings.some((e=>(e.numTouchPoints===s||1===s&&e.mouseButton===l)&&e.modifierKey===u));if(n.mode===p&&r)return o.getToolInstance(t)}}function m(e,t,n){const{renderingEngineId:i,viewportId:o}=e.detail,a=r.dU.getToolGroupForViewport(o,i);if(!a)return[];const s=[],u=Object.keys(a.toolOptions);for(let e=0;e<u.length;e++){const r=u[e],i=a.toolOptions[r],o=null!=n&&i.bindings.length&&i.bindings.some((e=>e.numTouchPoints===n));if(t.includes(i.mode)&&(!n||o)){const e=a.getToolInstance(r);s.push(e)}}return s}const{Active:v,Passive:g}=i.ToolModes;function y(e){if(r.wk.isInteractingWithTool)return;const t=f(e);if(t&&"function"==typeof t.preTouchStartCallback){if(t.preTouchStartCallback(e))return}const n=1===Object.keys(e.detail.event.touches).length,i=[...m(e,[v],Object.keys(e.detail.event.touches).length)||[],...(n?m(e,[g]):void 0)||[],t],o=e.detail,{element:a}=o,s=(0,l.A)(a,i),h=o.currentPoints.canvas,d=(0,u.A)(a,s,h,"touch"),p=!1;if(d.length>0){const{tool:t,annotation:n,handle:r}=_(d);return b(n.annotationUID,p),void t.handleSelectedCallback(e,n,r,"Touch")}const y=(0,c.A)(a,s,h,"touch");if(y.length>0){const{tool:t,annotation:n}=_(y);return b(n.annotationUID,p),void t.toolSelectedCallback(e,n,"Touch")}if(t&&"function"==typeof t.postTouchStartCallback){if(t.postTouchStartCallback(e))return}}function _(e){return e.length>1&&e.find((e=>!(0,a.isAnnotationLocked)(e.annotation)&&(0,s.isAnnotationVisible)(e.annotation.annotationUID)))||e[0]}function b(e,t=!1){if(t)if((0,o.isAnnotationSelected)(e))(0,o.setAnnotationSelected)(e,!1);else{const t=!0;(0,o.setAnnotationSelected)(e,!0,t)}else{const t=!1;(0,o.setAnnotationSelected)(e,!0,t)}}function x(e){if(r.wk.isInteractingWithTool)return;const t=f(e);if(t&&!r.wk.isMultiPartToolActive&&t.addNewAnnotation){const n=t.addNewAnnotation(e,"touch");(0,o.setAnnotationSelected)(n.annotationUID)}}function w(e){if(r.wk.isInteractingWithTool)return;const t=f(e);!t||"function"!=typeof t.touchDragCallback||t.touchDragCallback(e)}var E=n(44758);const D=E.A.bind(null,"Touch","touchEndCallback"),C=E.A.bind(null,"Touch","touchTapCallback"),S=E.A.bind(null,"Touch","touchPressCallback")},9147:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(13272);function i(e){e.removeEventListener("keydown",r.Ay)}const o={enable:function(e){i(e),e.addEventListener("keydown",r.Ay)},disable:i,getModifierKey:r.vh}},13272:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>f,Ud:()=>p,vh:()=>d});var r=n(92136),i=n(48463),o=n.n(i),a=n(28117);const s={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};let u={renderingEngineId:void 0,viewportId:void 0,key:void 0,keyCode:void 0,element:null};function l(e){u.element=e.currentTarget;const t=(0,r.getEnabledElement)(u.element),{renderingEngineId:n,viewportId:i}=t;u.renderingEngineId=n,u.viewportId=i,u.key=e.key,u.keyCode=e.keyCode,e.preventDefault();const o={renderingEngineId:u.renderingEngineId,viewportId:u.viewportId,element:u.element,key:u.key,keyCode:u.keyCode};(0,r.triggerEvent)(o.element,a.A.KEY_DOWN,o),document.addEventListener("keyup",h),document.addEventListener("visibilitychange",c),u.element.removeEventListener("keydown",l)}function c(){document.removeEventListener("visibilitychange",c),"hidden"===document.visibilityState&&p()}function h(e){const t={renderingEngineId:u.renderingEngineId,viewportId:u.viewportId,element:u.element,key:u.key,keyCode:u.keyCode};document.removeEventListener("keyup",h),document.removeEventListener("visibilitychange",c),u.element.addEventListener("keydown",l),u=o()(s),(0,r.triggerEvent)(t.element,a.A.KEY_UP,t)}function d(){return u.keyCode}function p(){u.keyCode=void 0}const f=l},3995:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(92136);function i(e,t){const n=t||e.currentTarget,{viewport:i}=(0,r.getEnabledElement)(n),o=function(e){return[e.clientX,e.clientY]}(e),a=function(e){return[e.pageX,e.pageY]}(e),s=function(e,t){const n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,a);return{page:a,client:o,canvas:s,world:i.canvasToWorld(s)}}},81387:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(92136),i=n(28117),o=n(3995);const a=function(e){const t=e.currentTarget,{viewportId:n,renderingEngineId:a}=(0,r.getEnabledElement)(t),s=(0,o.A)(e,t),u={event:e,eventName:i.A.MOUSE_DOUBLE_CLICK,viewportId:n,renderingEngineId:a,camera:{},element:t,startPoints:s,lastPoints:s,currentPoints:s,deltaPoints:{page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]}};!(0,r.triggerEvent)(t,i.A.MOUSE_DOUBLE_CLICK,u)&&(e.stopImmediatePropagation(),e.preventDefault())}},37054:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>I,DF:()=>N,kg:()=>T});var r=n(92136),i=n(28117),o=n(65263),a=n(3995);const{MOUSE_DOWN:s,MOUSE_DOWN_ACTIVATE:u,MOUSE_CLICK:l,MOUSE_UP:c,MOUSE_DRAG:h}=i.A,d=3,p={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]}};let f={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]}};const m={doubleClickTimeout:null,mouseDownEvent:null,mouseUpEvent:null,ignoreDoubleClick:!1};function v(e){const t=(0,a.A)(e,f.element),n=C(f.element,f.lastPoints),i=S(t,n);if(m.doubleClickTimeout){if(!_(i.canvas))return;x()}const o={event:e,eventName:h,mouseButton:f.mouseButton,renderingEngineId:f.renderingEngineId,viewportId:f.viewportId,camera:{},element:f.element,startPoints:D(f.startPoints),lastPoints:D(n),currentPoints:t,deltaPoints:i};!(0,r.triggerEvent)(f.element,h,o)&&(e.stopImmediatePropagation(),e.preventDefault()),f.lastPoints=D(t)}function g(e){if(clearTimeout(f.preventClickTimeout),m.doubleClickTimeout)m.mouseUpEvent?E():(m.mouseUpEvent=e,f.element.addEventListener("mousemove",y));else{const t=f.isClickEvent?l:c,n=(0,a.A)(e,f.element),i=S(n,f.lastPoints),o={event:e,eventName:t,mouseButton:f.mouseButton,element:f.element,renderingEngineId:f.renderingEngineId,viewportId:f.viewportId,camera:{},startPoints:D(f.startPoints),lastPoints:D(f.lastPoints),currentPoints:n,deltaPoints:i};(0,r.triggerEvent)(o.element,t,o),E()}document.removeEventListener("mousemove",v)}function y(e){_(S((0,a.A)(e,f.element),C(f.element,f.lastPoints)).canvas)&&(x(),(0,o.A)(e))}function _(e){return Math.abs(e[0])+Math.abs(e[1])>d}function b(){f.isClickEvent=!1}function x(){m.ignoreDoubleClick=!0;const e=m.mouseDownEvent,t=m.mouseUpEvent;w(),function(e){const t=S(f.startPoints,f.startPoints),n={event:e,eventName:s,element:f.element,mouseButton:f.mouseButton,renderingEngineId:f.renderingEngineId,viewportId:f.viewportId,camera:{},startPoints:f.startPoints,lastPoints:f.startPoints,currentPoints:f.startPoints,deltaPoints:t};f.lastPoints=D(n.lastPoints),(0,r.triggerEvent)(n.element,s,n)&&(0,r.triggerEvent)(n.element,u,n)}(e),t&&g(t)}function w(){m.doubleClickTimeout&&(clearTimeout(m.doubleClickTimeout),m.doubleClickTimeout=null),m.mouseDownEvent=null,m.mouseUpEvent=null}function E(){document.removeEventListener("mouseup",g),f.element?.removeEventListener("mousemove",y),f.element?.addEventListener("mousemove",o.A),w(),f=JSON.parse(JSON.stringify(p))}function D(e){return JSON.parse(JSON.stringify(e))}function C(e,t){const{viewport:n}=(0,r.getEnabledElement)(e),i=n.canvasToWorld(t.canvas);return{page:t.page,client:t.client,canvas:t.canvas,world:i}}function S(e,t){return{page:A(e.page,t.page),client:A(e.client,t.client),canvas:A(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 A(e,t){return[e[0]-t[0],e[1]-t[1]]}function T(){return f.mouseButton}function N(e){m.ignoreDoubleClick?(m.ignoreDoubleClick=!1,e.stopImmediatePropagation(),e.preventDefault()):E()}const I=function(e){if(m.doubleClickTimeout){if(e.buttons===m.mouseDownEvent.buttons)return;return m.mouseDownEvent=e,void x()}m.doubleClickTimeout=setTimeout(x,1===e.buttons?400:150),m.mouseDownEvent=e,m.ignoreDoubleClick=!1,f.element=e.currentTarget,f.mouseButton=e.buttons;const t=(0,r.getEnabledElement)(f.element),{renderingEngineId:n,viewportId:i}=t;f.renderingEngineId=n,f.viewportId=i,f.preventClickTimeout=setTimeout(b,f.clickDelay),f.element.removeEventListener("mousemove",o.A);const s=(0,a.A)(e,f.element);f.startPoints=D(s),f.lastPoints=D(s),document.addEventListener("mouseup",g),document.addEventListener("mousemove",v)}},65263:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(92136),i=n(28117),o=n(3995);const a=i.A.MOUSE_MOVE;const s=function(e){const t=e.currentTarget,n=(0,r.getEnabledElement)(t),{renderingEngineId:i,viewportId:s}=n,u={renderingEngineId:i,viewportId:s,camera:{},element:t,currentPoints:(0,o.A)(e),eventName:a,event:e};!(0,r.triggerEvent)(t,a,u)&&(e.stopImmediatePropagation(),e.preventDefault())}},38738:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});const r={mouse:0,touch:1};let i,o;function a(e,t){const n=Date.now();if(e!==i){if(n-o<=2e3)return t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!1;i=e}o=n}const s=a.bind(null,r.mouse),u=a.bind(null,r.touch);function l(e,t,n){const r=n?s:u;t.forEach((function(t){e.addEventListener(t,r,{passive:!1})}))}function c(e,t,n){const r=n?s:u;t.forEach((function(t){e.removeEventListener(t,r)}))}const h=["mousedown","mouseup","mousemove"],d=["touchstart","touchend"];function p(e){c(e,h,r.mouse),c(e,d,r.touch)}const f={enable:function(e){p(e),l(e,h,r.mouse),l(e,d,r.touch)},disable:p}},80285:(e,t,n)=>{"use strict";n.d(t,{A:()=>C});var r=n(92136),i=n(28117),o=n(79825);function a(e,t){const n=t||e.currentTarget,i="touchend"===e.type?e.changedTouches:e.touches;return Object.keys(i).map((e=>{const t=function(e){return[e.clientX,e.clientY]}(i[e]),o=function(e){return[e.pageX,e.pageY]}(i[e]),a=function(e,t){const n=e.getBoundingClientRect();return[t[0]-n.left-window.pageXOffset,t[1]-n.top-window.pageYOffset]}(n,o),{viewport:s}=(0,r.getEnabledElement)(n);return{page:o,client:t,canvas:a,world:s.canvasToWorld(a),touch:{identifier:e,radiusX:i[e].radiusX,radiusY:i[e].radiusY,force:i[e].force,rotationAngle:i[e].rotationAngle}}}))}var s=n(54868);r.Settings.getRuntimeSettings();const{TOUCH_START:u,TOUCH_START_ACTIVATE:l,TOUCH_PRESS:c,TOUCH_DRAG:h,TOUCH_END:d,TOUCH_TAP:p,TOUCH_SWIPE:f}=i.A,m={page:[0,0],client:[0,0],canvas:[0,0],world:[0,0,0]},v={page:0,client:0,canvas:0,world:0},g={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...m,touch:null}],lastPointsList:[{...m,touch:null}],isTouchStart:!1,startTime:null,pressTimeout:null,pressDelay:700,pressMaxDistance:5,accumulatedDistance:v,swipeDistanceThreshold:48,swiped:!1,swipeToleranceMs:300},y={renderingEngineId:void 0,viewportId:void 0,element:null,startPointsList:[{...m,touch:null}],taps:0,tapTimeout:null,tapMaxDistance:24,tapToleranceMs:300};let _=JSON.parse(JSON.stringify(g)),b=JSON.parse(JSON.stringify(y));function x(e,t,n){return(0,r.triggerEvent)(e,t,n)}function w(e){const t=a(e,_.element),n=D(_.element,_.lastPointsList),r=t.length===n.length?(0,s.getDeltaPoints)(t,n):m,i=t.length===n.length?(0,s.getDeltaDistanceBetweenIPoints)(t,n):v,u=t.length===n.length?(0,s.getDeltaDistance)(t,_.lastPointsList):v;_.accumulatedDistance={page:_.accumulatedDistance.page+u.page,client:_.accumulatedDistance.client+u.client,canvas:_.accumulatedDistance.canvas+u.canvas,world:_.accumulatedDistance.world+u.world};const l={event:e,eventName:h,renderingEngineId:_.renderingEngineId,viewportId:_.viewportId,camera:{},element:_.element,startPoints:(0,s.getMeanTouchPoints)(_.startPointsList),lastPoints:(0,s.getMeanTouchPoints)(n),currentPoints:(0,s.getMeanTouchPoints)(t),startPointsList:(0,s.copyPointsList)(_.startPointsList),lastPointsList:(0,s.copyPointsList)(n),currentPointsList:t,deltaPoints:r,deltaDistance:i};x(_.element,h,l),function(e,t){const n=(new Date).getTime(),r=_.startTime.getTime();if(_.swiped||n-r>_.swipeToleranceMs)return;const[i,a]=t.canvas,s={event:e,eventName:f,renderingEngineId:_.renderingEngineId,viewportId:_.viewportId,camera:{},element:_.element,swipe:null};Math.abs(i)>_.swipeDistanceThreshold&&(s.swipe=i>0?o.H.RIGHT:o.H.LEFT,x(s.element,f,s),_.swiped=!0);Math.abs(a)>_.swipeDistanceThreshold&&(s.swipe=a>0?o.H.DOWN:o.H.UP,x(s.element,f,s),_.swiped=!0)}(e,r),_.lastPointsList=(0,s.copyPointsList)(t)}function E(e){clearTimeout(_.pressTimeout);const t=a(e,_.element),n=D(_.element,_.lastPointsList),r=t.length===n.length?(0,s.getDeltaPoints)(t,n):(0,s.getDeltaPoints)(t,t),i=t.length===n.length?(0,s.getDeltaDistanceBetweenIPoints)(t,n):(0,s.getDeltaDistanceBetweenIPoints)(t,t),o={event:e,eventName:d,element:_.element,renderingEngineId:_.renderingEngineId,viewportId:_.viewportId,camera:{},startPointsList:(0,s.copyPointsList)(_.startPointsList),lastPointsList:(0,s.copyPointsList)(n),currentPointsList:t,startPoints:(0,s.getMeanTouchPoints)(_.startPointsList),lastPoints:(0,s.getMeanTouchPoints)(n),currentPoints:(0,s.getMeanTouchPoints)(t),deltaPoints:r,deltaDistance:i};x(o.element,d,o),function(e){const t=(new Date).getTime(),n=_.startTime.getTime();if(t-n>b.tapToleranceMs)return;0===b.taps&&(b.element=_.element,b.renderingEngineId=_.renderingEngineId,b.viewportId=_.viewportId,b.startPointsList=_.startPointsList);if(b.taps>0&&(b.element!=_.element||b.renderingEngineId!=_.renderingEngineId||b.viewportId!=_.viewportId))return;const r=a(e,b.element),i=(0,s.getDeltaDistance)(r,b.startPointsList).canvas;if(i>b.tapMaxDistance)return;clearTimeout(b.tapTimeout),b.taps+=1,b.tapTimeout=setTimeout((()=>{const t={event:e,eventName:p,element:b.element,renderingEngineId:b.renderingEngineId,viewportId:b.viewportId,camera:{},currentPointsList:r,currentPoints:(0,s.getMeanTouchPoints)(r),taps:b.taps};x(t.element,p,t),b=JSON.parse(JSON.stringify(y))}),b.tapToleranceMs)}(e),_=JSON.parse(JSON.stringify(g)),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",E)}function D(e,t){const{viewport:n}=(0,r.getEnabledElement)(e);return t.map((e=>{const t=n.canvasToWorld(e.canvas);return{page:e.page,client:e.client,canvas:e.canvas,world:t,touch:e.touch}}))}const C=function(e){_.element=e.currentTarget;const t=(0,r.getEnabledElement)(_.element),{renderingEngineId:n,viewportId:i}=t;_.renderingEngineId=n,_.viewportId=i,_.isTouchStart||(clearTimeout(_.pressTimeout),_.pressTimeout=setTimeout((()=>function(e){if(_.accumulatedDistance.canvas>_.pressMaxDistance)return;const t={event:e,eventName:c,renderingEngineId:_.renderingEngineId,viewportId:_.viewportId,camera:{},element:_.element,startPointsList:(0,s.copyPointsList)(_.startPointsList),lastPointsList:(0,s.copyPointsList)(_.lastPointsList),startPoints:(0,s.copyPoints)((0,s.getMeanTouchPoints)(_.startPointsList)),lastPoints:(0,s.copyPoints)((0,s.getMeanTouchPoints)(_.lastPointsList))};x(t.element,c,t)}(e)),_.pressDelay),function(e){_.isTouchStart=!0,_.startTime=new Date;const t=a(e,_.element),n=(0,s.getMeanTouchPoints)(t),r=m,i=v,o={event:e,eventName:u,element:_.element,renderingEngineId:_.renderingEngineId,viewportId:_.viewportId,camera:{},startPointsList:t,lastPointsList:t,currentPointsList:t,startPoints:n,lastPoints:n,currentPoints:n,deltaPoints:r,deltaDistance:i};_.startPointsList=(0,s.copyPointsList)(o.startPointsList),_.lastPointsList=(0,s.copyPointsList)(o.lastPointsList);x(o.element,u,o)&&x(o.element,l,o)}(e),document.addEventListener("touchmove",w),document.addEventListener("touchend",E))}},79445:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(92136);const i=10,o=40,a=800;var s=n(28117),u=n(3995);const l=function(e){const t=e.currentTarget,n=(0,r.getEnabledElement)(t),{renderingEngineId:l,viewportId:c}=n;if(e.deltaY>-1&&e.deltaY<1)return;e.preventDefault();const{spinX:h,spinY:d,pixelX:p,pixelY:f}=function(e){let t=0,n=0,r=0,s=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=t*i,s=n*i,"deltaY"in e&&(s=e.deltaY),"deltaX"in e&&(r=e.deltaX),(r||s)&&e.deltaMode&&(1===e.deltaMode?(r*=o,s*=o):(r*=a,s*=a)),r&&!t&&(t=r<1?-1:1),s&&!n&&(n=s<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:s}}(e),m=d<0?-1:1,v={event:e,eventName:s.A.MOUSE_WHEEL,renderingEngineId:l,viewportId:c,element:t,camera:{},detail:e,wheel:{spinX:h,spinY:d,pixelX:p,pixelY:f,direction:m},points:(0,u.A)(e)};(0,r.triggerEvent)(t,s.A.MOUSE_WHEEL,v)}},95778:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>r.getParentAnnotation,O8:()=>r.removeAnnotation,Rh:()=>r.getAnnotations,gw:()=>r.getAnnotation,lC:()=>r.addAnnotation,zH:()=>r.invalidateAnnotation});n(22581),n(48428),n(42351);var r=n(38296);n(63421)},85956:(e,t,n)=>{"use strict";function r(e,t,n,r="mouse"){const i="touch"===r?36:6,o=[];return t.forEach((({tool:t,annotations:a})=>{for(const s of a){if(s.isLocked||!s.isVisible)continue;if(t.isPointNearTool(e,s,n,i,r)){o.push({tool:t,annotation:s});break}}})),o}n.d(t,{A:()=>r})},9933:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(38296);function i(e,t){const n=[];for(let i=0;i<t.length;i++){const o=t[i];if(!o){console.warn("undefined tool in filterToolsWithAnnotationsForElement");continue}let a=(0,r.getAnnotations)(o.constructor.toolName,e);a?.length&&("function"==typeof o.filterInteractableAnnotationsForElement&&(a=o.filterInteractableAnnotationsForElement(e,a)),a.length>0&&n.push({tool:o,annotations:a}))}return n}},44174:(e,t,n)=>{"use strict";function r(e,t,n,r="mouse"){const i="touch"===r?36:6,o=[];return t.forEach((({tool:t,annotations:r})=>{for(const a of r){if(a.isLocked||!a.isVisible)continue;const r=t.getHandleNearImagePoint(e,a,n,i);if(r){o.push({tool:t,annotation:a,handle:r});break}}})),o}n.d(t,{A:()=>r})},69847:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(44753),i=n(92136),o=n(84901),a=n(61738),s=n(74119),u=n(39371),l=n(81848),c=n(14846);const h=e=>e.uid!==e.referenceId;class d{constructor({magnifyViewportId:e,sourceEnabledElement:t,radius:n=125,position:r=[0,0],zoomFactor:o,autoPan:a}){this._enabledElement=null,this._sourceToolGroup=null,this._magnifyToolGroup=null,this._isViewportReady=!1,this._radius=0,this._resized=!1,this._canAutoPan=!1,this._viewportId=e??i.utilities.uuidv4(),this._sourceEnabledElement=t,this._autoPan=a,this.radius=n,this.position=r,this.zoomFactor=o,this.visible=!0,this._browserMouseDownCallback=this._browserMouseDownCallback.bind(this),this._browserMouseUpCallback=this._browserMouseUpCallback.bind(this),this._handleToolModeChanged=this._handleToolModeChanged.bind(this),this._mouseDragCallback=this._mouseDragCallback.bind(this),this._resizeViewportAsync=(0,s.debounce)(this._resizeViewport.bind(this),1),this._initialize()}get sourceEnabledElement(){return this._sourceEnabledElement}get viewportId(){return this._viewportId}get radius(){return this._radius}set radius(e){Math.abs(this._radius-e)>1e-5&&(this._radius=e,this._resized=!0)}update(){const{radius:e,position:t,visible:n}=this,{viewport:r}=this._enabledElement,{element:i}=r,o=2*e,[a,s]=t;this._resized&&(this._resizeViewportAsync(),this._resized=!1),Object.assign(i.style,{display:n?"block":"hidden",width:`${o}px`,height:`${o}px`,left:-e+"px",top:-e+"px",transform:`translate(${a}px, ${s}px)`}),this._isViewportReady&&(this._syncViewports(),r.render())}dispose(){const{viewport:e}=this._enabledElement,{element:t}=e,n=e.getRenderingEngine();this._removeEventListeners(t),n.disableElement(e.id),t.parentNode&&t.parentNode.removeChild(t)}_handleToolModeChanged(e){const{_magnifyToolGroup:t}=this,{toolGroupId:n,toolName:r,mode:i,toolBindingsOptions:a}=e.detail;if(this._sourceToolGroup?.id===n)switch(i){case o.ToolModes.Active:t.setToolActive(r,a);break;case o.ToolModes.Passive:t.setToolPassive(r);break;case o.ToolModes.Enabled:t.setToolEnabled(r);break;case o.ToolModes.Disabled:t.setToolDisabled(r);break;default:throw new Error(`Unknow tool mode (${i})`)}}_inheritBorderRadius(e){const t=e.querySelector(".viewport-element"),n=e.querySelector(".cornerstone-canvas");t.style.borderRadius="inherit",n.style.borderRadius="inherit"}_createViewportNode(){const e=document.createElement("div"),{radius:t}=this,n=2*t;return e.classList.add("advancedMagnifyTool"),Object.assign(e.style,{display:"block",width:`${n}px`,height:`${n}px`,position:"absolute",overflow:"hidden",borderRadius:"50%",boxSizing:"border-box",left:-t+"px",top:-t+"px",transform:"translate(-1000px, -1000px)"}),e}_convertZoomFactorToParallelScale(e,t,n){const{parallelScale:r}=e.getCamera();return r*(1/n)*(t.canvas.offsetWidth/e.canvas.offsetWidth)}_isStackViewport(e){return"setStack"in e}_isVolumeViewport(e){return"addVolumes"in e}_cloneToolGroups(e,t){const n=e.getActors(),r=`${t.id}-toolGroup`,i=a.dU.getToolGroupForViewport(e.id,e.renderingEngineId),s=i.clone(r,(e=>{const t=i.getToolInstance(e);return t instanceof l.EC&&!(t instanceof l.M$)||e===l.t0.toolName}));return s.addViewport(t.id,t.renderingEngineId),n.filter(h).forEach((e=>{u.segmentation.addSegmentationRepresentations(r,[{segmentationId:e.referenceId,type:o.SegmentationRepresentations.Labelmap}])})),{sourceToolGroup:i,magnifyToolGroup:s}}_cloneStack(e,t){const n=e.getImageIds();t.setStack(n).then((()=>{this._isViewportReady=!0,this.update()}))}_cloneVolumes(e,t){const n=e.getActors().filter((e=>!h(e))).map((e=>({volumeId:e.uid})));return t.setVolumes(n).then((()=>{this._isViewportReady=!0,this.update()})),t}_cloneViewport(e,t){const{viewportId:n}=this,r=e.getRenderingEngine(),{options:i}=e,o={element:t,viewportId:n,type:e.type,defaultOptions:{...i}};r.enableElement(o);const a=r.getViewport(n);this._isStackViewport(e)?this._cloneStack(e,a):this._isVolumeViewport(e)&&this._cloneVolumes(e,a),this._inheritBorderRadius(t);const s=this._cloneToolGroups(e,a);this._sourceToolGroup=s.sourceToolGroup,this._magnifyToolGroup=s.magnifyToolGroup}_cancelMouseEventCallback(e){e.stopPropagation(),e.preventDefault()}_browserMouseUpCallback(e){const{element:t}=this._enabledElement.viewport;document.removeEventListener("mouseup",this._browserMouseUpCallback),t.addEventListener("mouseup",this._cancelMouseEventCallback),t.addEventListener("mousemove",this._cancelMouseEventCallback)}_browserMouseDownCallback(e){const{element:t}=this._enabledElement.viewport;this._canAutoPan=!!e.target?.closest(".advancedMagnifyTool"),document.addEventListener("mouseup",this._browserMouseUpCallback),t.removeEventListener("mouseup",this._cancelMouseEventCallback),t.removeEventListener("mousemove",this._cancelMouseEventCallback)}_mouseDragCallback(e){if(!a.wk.isInteractingWithTool)return;const{_autoPan:t}=this;if(!t.enabled||!this._canAutoPan)return;const{currentPoints:n}=e.detail,{viewport:i}=this._enabledElement,{canvasToWorld:o}=i,{canvas:s}=n,{radius:u}=this,l=[u,u],h=(0,c.distanceToPoint)(l,s),d=u-t.padding;if(h<=d)return;const p=h-d,f=r.Zc.sub(r.Zc.create(),s,l);r.Zc.normalize(f,f),r.Zc.scale(f,f,p);const m=r.Zc.add(r.Zc.create(),this.position,f),v=o(this.position),g=o(m),y=r.eR.sub(r.eR.create(),g,v),_={points:{currentPosition:{canvas:this.position,world:v},newPosition:{canvas:m,world:g}},delta:{canvas:f,world:y}};t.callback(_)}_addBrowserEventListeners(e){document.addEventListener("mousedown",this._browserMouseDownCallback,!0),e.addEventListener("mousedown",this._cancelMouseEventCallback),e.addEventListener("mouseup",this._cancelMouseEventCallback),e.addEventListener("mousemove",this._cancelMouseEventCallback),e.addEventListener("dblclick",this._cancelMouseEventCallback)}_removeBrowserEventListeners(e){document.removeEventListener("mousedown",this._browserMouseDownCallback,!0),document.removeEventListener("mouseup",this._browserMouseUpCallback),e.removeEventListener("mousedown",this._cancelMouseEventCallback),e.removeEventListener("mouseup",this._cancelMouseEventCallback),e.removeEventListener("mousemove",this._cancelMouseEventCallback),e.removeEventListener("dblclick",this._cancelMouseEventCallback)}_addEventListeners(e){i.eventTarget.addEventListener(o.Events.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(o.Events.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(o.Events.MOUSE_DRAG,this._mouseDragCallback),this._addBrowserEventListeners(e)}_removeEventListeners(e){i.eventTarget.removeEventListener(o.Events.TOOL_MODE_CHANGED,this._handleToolModeChanged),e.addEventListener(o.Events.MOUSE_MOVE,this._mouseDragCallback),e.addEventListener(o.Events.MOUSE_DRAG,this._mouseDragCallback),this._removeBrowserEventListeners(e)}_initialize(){const{_sourceEnabledElement:e}=this,{viewport:t}=e,{canvas:n}=t,r=this._createViewportNode();n.parentNode.appendChild(r),this._addEventListeners(r),this._cloneViewport(t,r),this._enabledElement=(0,i.getEnabledElement)(r)}_syncViewportsCameras(e,t){const n=e.canvasToWorld(this.position),r=this._convertZoomFactorToParallelScale(e,t,this.zoomFactor),{focalPoint:i,position:o,viewPlaneNormal:a}=t.getCamera(),s=Math.sqrt(Math.pow(i[0]-o[0],2)+Math.pow(i[1]-o[1],2)+Math.pow(i[2]-o[2],2)),u=[n[0],n[1],n[2]],l=[u[0]+s*a[0],u[1]+s*a[1],u[2]+s*a[2]];t.setCamera({parallelScale:r,focalPoint:u,position:l})}_syncStackViewports(e,t){t.setImageIdIndex(e.getCurrentImageIdIndex())}_syncViewports(){const{viewport:e}=this._sourceEnabledElement,{viewport:t}=this._enabledElement,n=e.getProperties();t.getImageData()&&(t.setProperties(n),this._syncViewportsCameras(e,t),this._isStackViewport(e)&&this._syncStackViewports(e,t),this._syncViewportsCameras(e,t),t.render())}_resizeViewport(){const{viewport:e}=this._enabledElement;e.getRenderingEngine().resize()}}const p=1-i.CONSTANTS.EPSILON,{Events:f}=i.Enums;class m{constructor(){this.createViewport=(e,t)=>{const{magnifyViewportId:n,sourceEnabledElement:r,position:i,radius:o,zoomFactor:a,autoPan:s}=t,{viewport:u}=r,{element:l}=u,c=new d({magnifyViewportId:n,sourceEnabledElement:r,radius:o,position:i,zoomFactor:a,autoPan:s});return this._addSourceElementEventListener(l),this._magnifyViewportsMap.set(c.viewportId,{annotation:e,magnifyViewport:c,magnifyViewportInfo:t}),c},this._annotationRemovedCallback=e=>{const{annotation:t}=e.detail;"AdvancedMagnify"===t.metadata.toolName&&this.destroyViewport(t.data.magnifyViewportId)},this._newStackImageCallback=e=>{const{viewportId:t,imageId:n}=e.detail,r=this._getMagnifyViewportsMapEntriesBySourceViewportId(t),{viewport:o}=(0,i.getEnabledElementByViewportId)(t);o.stackActorReInitialized&&this._reset(t),r.forEach((({annotation:e})=>{e.metadata.referencedImageId=n,e.invalidated=!0}))},this._newVolumeImageCallback=e=>{const{renderingEngineId:t,viewportId:n}=e.detail,o=(0,i.getRenderingEngine)(t).getViewport(n),{viewPlaneNormal:a}=o.getCamera();this._getMagnifyViewportsMapEntriesBySourceViewportId(n).forEach((({annotation:e})=>{const{viewPlaneNormal:t}=e.metadata;if(!(Math.abs(r.eR.dot(t,a))>p))return;const{handles:n}=e.data,i=o.canvasToWorld([0,0]),s=r.eR.sub(r.eR.create(),i,n.points[0]),u=r.eR.dot(s,a),l=r.eR.scale(r.eR.create(),a,u);for(let e=0,t=n.points.length;e<t;e++){const t=n.points[e];t[0]+=l[0],t[1]+=l[1],t[2]+=l[2]}e.invalidated=!0}))},this._magnifyViewportsMap=new Map,this._initialize()}static getInstance(){return m._singleton=m._singleton??new m,m._singleton}getViewport(e){return this._magnifyViewportsMap.get(e)?.magnifyViewport}dispose(){this._removeEventListeners(),this._destroyViewports()}destroyViewport(e){const t=this._magnifyViewportsMap.get(e);if(t){const{magnifyViewport:n}=t,{viewport:r}=n.sourceEnabledElement,{element:i}=r;this._removeSourceElementEventListener(i),n.dispose(),this._magnifyViewportsMap.delete(e)}}_destroyViewports(){Array.from(this._magnifyViewportsMap.keys()).forEach((e=>this.destroyViewport(e)))}_getMagnifyViewportsMapEntriesBySourceViewportId(e){return Array.from(this._magnifyViewportsMap.values()).filter((({magnifyViewport:t})=>{const{viewport:n}=t.sourceEnabledElement;return n.id===e}))}_reset(e){this._getMagnifyViewportsMapEntriesBySourceViewportId(e).forEach((({magnifyViewport:t,annotation:n,magnifyViewportInfo:r})=>{this.destroyViewport(t.viewportId);const o=(0,i.getEnabledElementByViewportId)(e);this.createViewport(n,{...r,sourceEnabledElement:{...o}})}))}_addEventListeners(){i.eventTarget.addEventListener(o.Events.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_removeEventListeners(){i.eventTarget.removeEventListener(o.Events.ANNOTATION_REMOVED,this._annotationRemovedCallback)}_addSourceElementEventListener(e){e.addEventListener(f.STACK_NEW_IMAGE,this._newStackImageCallback);const t=e=>{const{viewportId:t}=e.detail;this._reset(t)};e.addEventListener(f.STACK_VIEWPORT_NEW_STACK,t);const n=e=>{const{viewportId:t}=e.detail;this._reset(t)};e.addEventListener(f.VOLUME_VIEWPORT_NEW_VOLUME,n),e.addEventListener(f.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.newStackHandler=t,e.newVolumeHandler=n}_removeSourceElementEventListener(e){e.removeEventListener(f.STACK_NEW_IMAGE,this._newStackImageCallback),e.removeEventListener(f.VOLUME_NEW_IMAGE,this._newVolumeImageCallback),e.removeEventListener(f.STACK_VIEWPORT_NEW_STACK,e.newStackHandler),e.removeEventListener(f.VOLUME_VIEWPORT_NEW_VOLUME,e.newVolumeHandler),delete e.newStackHandler,delete e.newVolumeHandler}_initialize(){this._addEventListeners()}}},30911:(e,t,n)=>{"use strict";n.d(t,{A:()=>C});var r=n(44753),i=n(92136),o=n(61738),a=n(84901),s=n(40233),u=n(73047),l=n(96950),c=n(36605),h=n(23072),d=n(89111),p=n(54177);const{getSubPixelSpacingAndXYDirections:f,addCanvasPointsToArray:m,getArea:v}=u.polyline;function g(e,t,n){this.isEditingClosed=!0;const r=e.detail,{currentPoints:u,element:l}=r,c=u.canvas,h=(0,i.getEnabledElement)(l);if(!h)return;const{viewport:d}=h,p=t.data.contour.polyline.map(d.worldToCanvas),{spacing:m,xDir:v,yDir:g}=f(d,this.configuration.subPixelResolution);this.editData={prevCanvasPoints:p,editCanvasPoints:[c],startCrossingIndex:void 0,editIndex:0},this.commonData={annotation:t,viewportIdsToRender:n,spacing:m,xDir:v,yDir:g,movingTextBox:!1},o.wk.isInteractingWithTool=!0,l.addEventListener(a.Events.MOUSE_UP,this.mouseUpClosedContourEditCallback),l.addEventListener(a.Events.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),l.addEventListener(a.Events.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),l.addEventListener(a.Events.TOUCH_END,this.mouseUpClosedContourEditCallback),l.addEventListener(a.Events.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),l.addEventListener(a.Events.TOUCH_TAP,this.mouseUpClosedContourEditCallback),(0,s.hideElementCursor)(l)}function y(e){o.wk.isInteractingWithTool=!1,e.removeEventListener(a.Events.MOUSE_UP,this.mouseUpClosedContourEditCallback),e.removeEventListener(a.Events.MOUSE_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(a.Events.MOUSE_CLICK,this.mouseUpClosedContourEditCallback),e.removeEventListener(a.Events.TOUCH_END,this.mouseUpClosedContourEditCallback),e.removeEventListener(a.Events.TOUCH_DRAG,this.mouseDragClosedContourEditCallback),e.removeEventListener(a.Events.TOUCH_TAP,this.mouseUpClosedContourEditCallback),(0,s.resetElementCursor)(e)}function _(e){const t=e.detail,{currentPoints:n,element:o}=t,a=n.world,s=n.canvas,u=(0,i.getEnabledElement)(o),{renderingEngine:l,viewport:c}=u,{viewportIdsToRender:d,xDir:p,yDir:f,spacing:v}=this.commonData,{editIndex:g,editCanvasPoints:y,startCrossingIndex:_}=this.editData,b=y[y.length-1],x=c.canvasToWorld(b),w=r.eR.create();r.eR.subtract(w,a,x);const E=Math.abs(r.eR.dot(w,p)),D=Math.abs(r.eR.dot(w,f));if(E<=v[0]&&D<=v[1])return;void 0!==_&&this.checkAndRemoveCrossesOnEditLine(e);const C=g+m(o,y,s,this.commonData);this.editData.editIndex=C,void 0===_&&y.length>1&&this.checkForFirstCrossing(e,!0),this.editData.snapIndex=this.findSnapIndex(),-1!==this.editData.snapIndex?(this.editData.fusedCanvasPoints=this.fuseEditPointsWithClosedContour(e),void 0!==_&&this.checkForSecondCrossing(e,!0)&&(this.removePointsAfterSecondCrossing(!0),this.finishEditAndStartNewEdit(e)),(0,h.A)(l,d)):this.finishEditAndStartNewEdit(e)}function b(e){const t=e.detail,{element:n}=t,r=(0,i.getEnabledElement)(n),{viewport:o,renderingEngine:a}=r,{annotation:s,viewportIdsToRender:u}=this.commonData,{fusedCanvasPoints:c,editCanvasPoints:f}=this.editData;(0,d.A)(s,{points:c,closed:!0,targetWindingDirection:l.W.Clockwise},o),s.autoGenerated&&(s.autoGenerated=!1),(0,p.XF)(s,n);const m=f.pop();this.editData={prevCanvasPoints:c,editCanvasPoints:[m],startCrossingIndex:void 0,editIndex:0,snapIndex:void 0},(0,h.A)(a,u)}function x(e){const{prevCanvasPoints:t,editCanvasPoints:n,startCrossingIndex:i,snapIndex:o}=this.editData;if(void 0===i||void 0===o)return;const a=e.detail,{element:s}=a,u=[...n];let l,c;m(s,u,t[o],this.commonData),u.length>n.length&&u.pop(),i>o?(l=o,c=i):(l=i,c=o);const h=r.Zc.distance(t[l],u[0]),d=r.Zc.distance(t[l],u[u.length-1]),p=r.Zc.distance(t[c],u[0]),f=r.Zc.distance(t[c],u[u.length-1]),g=[];for(let e=0;e<l;e++){const n=t[e];g.push([n[0],n[1]])}let y=h+f,_=d+p;if(y<_)for(let e=0;e<u.length;e++){const t=u[e];g.push([t[0],t[1]])}else for(let e=u.length-1;e>=0;e--){const t=u[e];g.push([t[0],t[1]])}for(let e=c;e<t.length;e++){const n=t[e];g.push([n[0],n[1]])}const b=[];for(let e=l;e<c;e++){const n=t[e];b.push([n[0],n[1]])}if(y=p+d,_=f+h,y<_)for(let e=0;e<u.length;e++){const t=u[e];b.push([t[0],t[1]])}else for(let e=u.length-1;e>=0;e--){const t=u[e];b.push([t[0],t[1]])}return v(g)>v(b)?g:b}function w(e){const t=e.detail,{element:n}=t;this.completeClosedContourEdit(n)}function E(e){const t=(0,i.getEnabledElement)(e),{viewport:n,renderingEngine:r}=t,{annotation:o,viewportIdsToRender:a}=this.commonData,{fusedCanvasPoints:s,prevCanvasPoints:u}=this.editData;if(s){const t=(0,c.Q)(this.configuration,o)?(0,c.p)(this.configuration,s,u):s;(0,d.A)(o,{points:t,closed:!0,targetWindingDirection:l.W.Clockwise},n),o.autoGenerated&&(o.autoGenerated=!1),(0,p.XF)(o,e)}this.isEditingClosed=!1,this.editData=void 0,this.commonData=void 0,(0,h.A)(r,a),this.deactivateClosedContourEdit(e)}function D(e){this.completeClosedContourEdit(e)}const C=function(e){e.activateClosedContourEdit=g.bind(e),e.deactivateClosedContourEdit=y.bind(e),e.mouseDragClosedContourEditCallback=_.bind(e),e.mouseUpClosedContourEditCallback=w.bind(e),e.finishEditAndStartNewEdit=b.bind(e),e.fuseEditPointsWithClosedContour=x.bind(e),e.cancelClosedContourEdit=D.bind(e),e.completeClosedContourEdit=E.bind(e)}},14695:(e,t,n)=>{"use strict";n.d(t,{A:()=>P});var r=n(92136),i=n(40233),o=n(84901),a=n(61738),s=n(44753),u=n(36605),l=n(94750),c=n(23072),h=n(54177),d=n(51051),p=n(73047),f=n(38296),m=n(96950);const{addCanvasPointsToArray:v,pointsAreWithinCloseContourProximity:g,getFirstLineSegmentIntersectionIndexes:y,getSubPixelSpacingAndXYDirections:_}=p.polyline;function b(e,t,n){this.isDrawing=!0;const s=e.detail,{currentPoints:u,element:c}=s,h=u.canvas,d=(0,r.getEnabledElement)(c),{viewport:p}=d,f=(0,l.A)(e.detail.event)===this.configuration.contourHoleAdditionModifierKey,{spacing:m,xDir:v,yDir:g}=_(p,this.configuration.subPixelResolution);this.drawData={canvasPoints:[h],polylineIndex:0,contourHoleProcessingEnabled:f},this.commonData={annotation:t,viewportIdsToRender:n,spacing:m,xDir:v,yDir:g,movingTextBox:!1},a.wk.isInteractingWithTool=!0,c.addEventListener(o.Events.MOUSE_UP,this.mouseUpDrawCallback),c.addEventListener(o.Events.MOUSE_DRAG,this.mouseDragDrawCallback),c.addEventListener(o.Events.MOUSE_CLICK,this.mouseUpDrawCallback),c.addEventListener(o.Events.TOUCH_END,this.mouseUpDrawCallback),c.addEventListener(o.Events.TOUCH_DRAG,this.mouseDragDrawCallback),c.addEventListener(o.Events.TOUCH_TAP,this.mouseUpDrawCallback),(0,i.hideElementCursor)(c)}function x(e){a.wk.isInteractingWithTool=!1,e.removeEventListener(o.Events.MOUSE_UP,this.mouseUpDrawCallback),e.removeEventListener(o.Events.MOUSE_DRAG,this.mouseDragDrawCallback),e.removeEventListener(o.Events.MOUSE_CLICK,this.mouseUpDrawCallback),e.removeEventListener(o.Events.TOUCH_END,this.mouseUpDrawCallback),e.removeEventListener(o.Events.TOUCH_DRAG,this.mouseDragDrawCallback),e.removeEventListener(o.Events.TOUCH_TAP,this.mouseUpDrawCallback),(0,i.resetElementCursor)(e)}function w(e){const t=e.detail,{currentPoints:n,element:i}=t,o=n.world,a=n.canvas,u=(0,r.getEnabledElement)(i),{renderingEngine:l,viewport:h}=u,{annotation:d,viewportIdsToRender:p,xDir:f,yDir:m,spacing:g,movingTextBox:y}=this.commonData,{polylineIndex:_,canvasPoints:b}=this.drawData,x=b[b.length-1],w=h.canvasToWorld(x),E=s.eR.create();s.eR.subtract(E,o,w);const D=Math.abs(s.eR.dot(E,f)),C=Math.abs(s.eR.dot(E,m));if(!(D<=g[0]&&C<=g[1])){if(y){this.isDrawing=!1;const{deltaPoints:e}=t,n=e.world,{textBox:r}=d.data.handles,{worldPosition:i}=r;i[0]+=n[0],i[1]+=n[1],i[2]+=n[2],r.hasMoved=!0}else{const t=this.findCrossingIndexDuringCreate(e);if(void 0!==t)this.applyCreateOnCross(e,t);else{const e=v(i,b,a,this.commonData);this.drawData.polylineIndex=_+e}}(0,c.A)(l,p)}}function E(e){const{allowOpenContours:t}=this.configuration,{canvasPoints:n,contourHoleProcessingEnabled:r}=this.drawData,i=n[0],o=n[n.length-1],a=e.detail,{element:s}=a;t&&!g(i,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(s,{contourHoleProcessingEnabled:r}):this.completeDrawClosedContour(s,{contourHoleProcessingEnabled:r})}function D(e,t){this.removeCrossedLinesOnCompleteDraw();const{canvasPoints:n}=this.drawData,{contourHoleProcessingEnabled:i,minPointsToSave:o}=t??{};if(o&&n.length<o)return!1;if(this.haltDrawing(e,n))return!1;const{annotation:a,viewportIdsToRender:s}=this.commonData,l=(0,r.getEnabledElement)(e),{viewport:d,renderingEngine:p}=l;v(e,n,n[0],this.commonData),n.pop();const f=(0,u.Q)(this.configuration,a)?(0,u.p)(this.configuration,n):n;this.updateContourPolyline(a,{points:f,closed:!0,targetWindingDirection:m.W.Clockwise},d);const{textBox:g}=a.data.handles;return g?.hasMoved||(0,h.PS)(a,i),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,(0,c.A)(p,s),this.deactivateDraw(e),!0}function C(){const{canvasPoints:e}=this.drawData,t=e.length,n=[e[0],e[t-1]],r=e.slice(0,-1).slice(1),i=y(r,n[0],n[1],!1);if(i){const t=i[1];this.drawData.canvasPoints=1===t?e.splice(1):e.splice(0,t)}}function S(e,t){const{canvasPoints:n}=this.drawData,{contourHoleProcessingEnabled:i}=t??{};if(this.haltDrawing(e,n))return!1;const{annotation:o,viewportIdsToRender:a}=this.commonData,s=(0,r.getEnabledElement)(e),{viewport:l,renderingEngine:p}=s,f=(0,u.Q)(this.configuration,o)?(0,u.p)(this.configuration,n):n;this.updateContourPolyline(o,{points:f,closed:!1},l);const{textBox:m}=o.data.handles,v=o.data.contour.polyline;return o.data.handles.points=[v[0],v[v.length-1]],o.data.isOpenUShapeContour&&(o.data.openUShapeContourVectorToPeak=(0,d.A)(n,l)),m.hasMoved||(0,h.PS)(o,i),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,(0,c.A)(p,a),this.deactivateDraw(e),!0}function A(e){const t=e.detail,{currentPoints:n,lastPoints:r}=t,i=n.canvas,o=r.canvas,{canvasPoints:a}=this.drawData,s=a.slice(0,-1),u=y(s,i,o,!1);if(void 0===u)return;return u[0]}function T(e,t){const n=e.detail,{element:i}=n,{canvasPoints:o,contourHoleProcessingEnabled:a}=this.drawData,{annotation:s,viewportIdsToRender:u}=this.commonData;v(i,o,o[t],this.commonData),o.pop();const l=o.slice(t),c=p.polyline.getArea(l);if(r.utilities.isEqual(c,0))return void o.splice(t+1);o.splice(0,t);const h={contourHoleProcessingEnabled:a,minPointsToSave:3};this.completeDrawClosedContour(i,h)&&this.activateClosedContourEdit(e,s,u)}function N(e){const{allowOpenContours:t}=this.configuration,{canvasPoints:n,contourHoleProcessingEnabled:r}=this.drawData,i=n[0],o=n[n.length-1];t&&!g(i,o,this.configuration.closeContourProximity)?this.completeDrawOpenContour(e,{contourHoleProcessingEnabled:r}):this.completeDrawClosedContour(e,{contourHoleProcessingEnabled:r})}function I(e,t){const{subPixelResolution:n}=this.configuration;if(function(e,t){const n=Math.max(3*t,3);return e.length<n}(t,n)){const{annotation:t,viewportIdsToRender:n}=this.commonData,i=(0,r.getEnabledElement)(e),{renderingEngine:o}=i;return(0,f.removeAnnotation)(t.annotationUID),this.isDrawing=!1,this.drawData=void 0,this.commonData=void 0,(0,c.A)(o,n),this.deactivateDraw(e),!0}return!1}const P=function(e){e.activateDraw=b.bind(e),e.deactivateDraw=x.bind(e),e.applyCreateOnCross=T.bind(e),e.findCrossingIndexDuringCreate=A.bind(e),e.completeDrawOpenContour=S.bind(e),e.removeCrossedLinesOnCompleteDraw=C.bind(e),e.mouseDragDrawCallback=w.bind(e),e.mouseUpDrawCallback=E.bind(e),e.completeDrawClosedContour=D.bind(e),e.cancelDrawing=N.bind(e),e.haltDrawing=I.bind(e)}},1344:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(44753),i=n(73047);const{addCanvasPointsToArray:o,getFirstLineSegmentIntersectionIndexes:a}=i.polyline;function s(e,t){const n=e.detail,{element:i,currentPoints:s,lastPoints:u}=n,l=s.canvas,c=u.canvas,{editCanvasPoints:h,prevCanvasPoints:d}=this.editData,p=a(d,l,c,t);if(p)this.editData.startCrossingIndex=p[0],this.removePointsUpUntilFirstCrossing(t);else if(d.length>=2)if(h.length>this.configuration.checkCanvasEditFallbackProximity){const e=h[0],t=[];for(let n=0;n<d.length;n++){const i=d[n],o=r.Zc.distance(i,e);t.push({distance:o,index:n})}t.sort(((e,t)=>e.distance-t.distance));const n=[t[0],t[1]],i=Math.min(n[0].index,n[1].index);this.editData.startCrossingIndex=i}else{const e=r.Zc.create();r.Zc.subtract(e,h[1],h[0]),r.Zc.normalize(e,e);const n=6,s=[h[0][0]-e[0]*n,h[0][1]-e[1]*n],u=a(d,s,h[0],t);if(u){const e=[s];o(i,e,h[0],this.commonData),h.unshift(...e),this.removePointsUpUntilFirstCrossing(t),this.editData.editIndex=h.length-1,this.editData.startCrossingIndex=u[0]}}}function u(e){const{editCanvasPoints:t,prevCanvasPoints:n}=this.editData;let r=0;for(let i=0;i<t.length-1;i++){const o=[t[i],t[i+1]];if(r++,!!a(n,o[0],o[1],e))break}t.splice(0,r),this.editData.editIndex=t.length-1}function l(e,t){const n=e.detail,{currentPoints:r,lastPoints:i}=n,o=r.canvas,s=i.canvas,{prevCanvasPoints:u}=this.editData;return!!a(u,o,s,t)}function c(e){const{prevCanvasPoints:t,editCanvasPoints:n}=this.editData;for(let r=n.length-1;r>0;r--){const i=[n[r],n[r-1]],o=!!a(t,i[0],i[1],e);if(n.pop(),o)break}}function h(){const{editCanvasPoints:e,prevCanvasPoints:t,startCrossingIndex:n}=this.editData;if(void 0===n)return;const i=e[e.length-1],o=[];for(let e=0;e<t.length;e++){const n=t[e],a=r.Zc.distance(n,i);o.push({distance:a,index:e})}o.sort(((e,t)=>e.distance-t.distance));const s=e.slice(0,-1);for(let n=0;n<o.length;n++){const{index:r}=o[n],i=t[r],u=e[e.length-1];if(!a(s,i,u,!1))return r}return-1}function d(e){const t=e.detail,{currentPoints:n,lastPoints:r}=t,i=n.canvas,o=r.canvas,{editCanvasPoints:s}=this.e