@ohif/ui-next 3.13.0-beta.133 → 3.13.0-beta.134
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/ohif-ui-next.umd.js +1 -1
- package/package.json +1 -1
package/dist/ohif-ui-next.umd.js
CHANGED
|
@@ -1834,7 +1834,7 @@ fn main(
|
|
|
1834
1834
|
flex-direction:column;
|
|
1835
1835
|
flex:0 1 auto;
|
|
1836
1836
|
min-width:0;
|
|
1837
|
-
`,this.dom.appendChild(this.metricsColumn),this.dom.appendChild(this.bindingsColumn)}isMemoryAvailable(){return void 0!==performance.memory}addPanel(e,t){((e===exT.RENDER_MODES?this.bindingsColumn:this.metricsColumn)??this.dom).appendChild(t.dom),this.panels.set(e,t)}startLoop(){let e=()=>{this.update(),this.animationFrameId=requestAnimationFrame(e)};this.animationFrameId=requestAnimationFrame(e)}stopLoop(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}updateStats(){this.frameCount++;let e=performance.now(),t=e-this.startTime,r=this.panels.get(exT.MS);if(r&&r.update(t,200),e>=this.lastUpdateTime+1e3){let t=1e3*this.frameCount/(e-this.lastUpdateTime),r=this.panels.get(exT.FPS);r&&r.update(t,300),this.lastUpdateTime=e,this.frameCount=0,this.updateMemoryPanel(),this.updateRenderModesPanel()}return e}updateRenderModesPanel(){let e=this.panels.get(exT.RENDER_MODES);if(!(e instanceof epq))return;let t=[];for(let e of ja())if(e&&!e.hasBeenDestroyed)for(let r of e.getViewports()){let n=r._debug?.renderModes;t.push({renderingEngineId:e.id,viewportId:r.id,viewportType:r.type,bindings:this.getViewportBindingDebugEntries(r,n??{})})}e.setContent(t)}getViewportBindingDebugEntries(e,t){let r=e.getActors?.()??[],n=e.getSourceDataId?.(),a=Object.entries(t);return a.length?a.map(([t,a])=>{var i,o;let l=ep0(e,t,n),s="source"===l?e.getDefaultActor?.():(i=r,o=t,i.find(e=>e.uid===o||e.representationUID===o||e.referencedId===o));return{actorUID:s?.uid,dataId:t,referencedId:s?.referencedId,renderMode:a,role:l,...ep1(s)}}):r.map(t=>{let r=t.representationUID??t.uid??"";return{actorUID:t.uid,dataId:r,referencedId:t.referencedId,renderMode:"-",role:ep0(e,r,n),...ep1(t)}})}updateMemoryPanel(){let e=this.panels.get(exT.MEMORY);if(!e)return;let t=performance;if(t.memory){let r=t.memory.usedJSHeapSize/1048576,n=t.memory.jsHeapSizeLimit/1048576;e.update(r,n)}}attachDragHandlers(){this.dom?.addEventListener("pointerdown",this.handlePointerDown)}detachDragHandlers(){this.dom?.removeEventListener("pointerdown",this.handlePointerDown),window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointercancel",this.handlePointerUp)}onPointerDown(e){if(!this.dom||0!==e.button)return;this.dragPointerId=e.pointerId;let t=this.dom.getBoundingClientRect();this.dragOffsetX=e.clientX-t.left,this.dragOffsetY=e.clientY-t.top,this.setPosition(t.left,t.top),window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp),window.addEventListener("pointercancel",this.handlePointerUp),e.preventDefault()}onPointerMove(e){this.dragPointerId===e.pointerId&&this.dom&&this.setPosition(e.clientX-this.dragOffsetX,e.clientY-this.dragOffsetY)}onPointerUp(e){if(this.dragPointerId!==e.pointerId||!this.dom)return;this.dragPointerId=null,window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointercancel",this.handlePointerUp);let t=this.dom.getBoundingClientRect();this.savePosition(t.left,t.top)}setPosition(e,t){if(!this.dom)return;let r=this.clampToViewport(e,t);this.dom.style.left=`${r.left}px`,this.dom.style.top=`${r.top}px`,this.dom.style.right="auto",this.dom.style.bottom="auto"}clampToViewport(e,t){if(!this.dom)return{left:e,top:t};let r=this.dom.offsetWidth,n=this.dom.offsetHeight;return{left:Math.min(Math.max(0,e),Math.max(0,window.innerWidth-r)),top:Math.min(Math.max(0,t),Math.max(0,window.innerHeight-n))}}restorePosition(){let e=this.readSavedPosition();e&&this.setPosition(e.left,e.top)}readSavedPosition(){try{let e=window.localStorage.getItem(epH);if(!e)return null;let t=JSON.parse(e);if("number"!=typeof t?.left||"number"!=typeof t?.top||!Number.isFinite(t.left)||!Number.isFinite(t.top))return null;return{left:t.left,top:t.top}}catch{return null}}savePosition(e,t){try{window.localStorage.setItem(epH,JSON.stringify({left:e,top:t}))}catch{}}}function ep0(e,t,r){let n=e.getDisplaySetRole?.(t);return"source"===n||"overlay"===n?n:r&&t===r?"source":"data"}function ep1(e){let t=e?.actor?.getMapper?.()?.getInputData?.();if(!t)return{};try{let e=t.getPointData?.()?.getScalars?.();if(e?.getDataType){let t=e.getNumberOfComponents?.()??1,r=t>1?e.getRange?.(0):e.getRange?.();return{scalarType:e.getDataType(),scalarRange:ep2(r),numberOfComponents:t}}let r=t.getScalarData?.();if(r?.constructor?.name){let e=Number.isFinite(t.minPixelValue)&&Number.isFinite(t.maxPixelValue)?[t.minPixelValue,t.maxPixelValue]:void 0;return{scalarType:r.constructor.name,scalarRange:ep2(e)}}}catch{}return{}}function ep2(e){if(e&&!(e.length<2)&&Number.isFinite(e[0])&&Number.isFinite(e[1]))return[e[0],e[1]]}epQ.instance=null;let ep5=epQ.getInstance();class ep3{constructor(e){throw this._needsRender=new Set,this._animationFrameSet=!1,this._animationFrameHandle=null,this.renderFrameOfReference=e=>{let t=this._getViewportsAsArray().map(t=>{if(t.getFrameOfReferenceUID()===e)return t.id});this.renderViewports(t)},this.id=e||jE(),this.useCPURendering=j9(),(e=>{jr[e.id]=e})(this),Error("@cornerstonejs/core is not initialized, run init() first")}enableElement(e){let t=this._normalizeViewportInputEntry(e);this._throwIfDestroyed();let{element:r,viewportId:n}=t;if(!r)throw Error("No element provided");this.getViewport(n)&&this.disableElement(n);let{type:a}=t;epW(a)?this.addCustomViewport(t):this.enableVTKjsDrivenViewport(t);let i=$v(r),{background:o}=t.defaultOptions;this.fillCanvasWithBackgroundColor(i,o)}disableElement(e){this._throwIfDestroyed();let t=this.getViewport(e);t?(this._resetViewport(t),!epW(t.type)&&this.offscreenMultiRenderWindow&&this.offscreenMultiRenderWindow.removeRenderer(e),this._removeViewport(e),t.isDisabled=!0,this._needsRender.delete(e),this.getViewports().length||this._clearAnimationFrame()):console.warn(`viewport ${e} does not exist`)}disableViewport(e){this.disableElement(e)}setViewports(e){let t=this._normalizeViewportInputEntries(e);this._throwIfDestroyed(),this._reset();let r=[],n=[];t.forEach(e=>{epW(e.type)?n.push(e):r.push(e)}),this.setVtkjsDrivenViewports(r),this.setCustomViewports(n),t.forEach(e=>{let t=$v(e.element),{background:r}=e.defaultOptions;this.fillCanvasWithBackgroundColor(t,r)})}resize(e=!0,t=!0){this._throwIfDestroyed();let r=this._getViewportsAsArray(),n=[],a=[];r.forEach(e=>{epU(e)?a.push(e):n.push(e)}),n.length&&this._resizeVTKViewports(n,t,e),a.length&&this._resizeUsingCustomResizeHandler(a,t,e)}getViewport(e){return this._viewports?.get(e)}getViewports(){return this._throwIfDestroyed(),this._getViewportsAsArray()}render(){let e=this.getViewports().map(e=>e.id);this._setViewportsToBeRenderedNextFrame(e)}renderViewports(e){this._setViewportsToBeRenderedNextFrame(e)}renderViewport(e){this._setViewportsToBeRenderedNextFrame([e])}destroy(){let e;if(this.hasBeenDestroyed)return;ep5.cleanup();let t=this._getViewportsAsArray();this._reset(),this.offscreenMultiRenderWindow&&(t.forEach(e=>{this.offscreenMultiRenderWindow&&!epU(e)&&this.offscreenMultiRenderWindow.getRenderer(e.id)&&this.offscreenMultiRenderWindow.removeRenderer(e.id)}),this.offscreenMultiRenderWindow.delete(),delete this.offscreenMultiRenderWindow),e=this.id,delete jr[e],this.hasBeenDestroyed=!0}fillCanvasWithBackgroundColor(e,t){let r=e.getContext("2d");r.fillStyle=t?Array.isArray(t)?`rgb(${t.map(e=>Math.round(255*e)).join(",")})`:t:"black",r.fillRect(0,0,e.width,e.height)}_normalizeViewportInputEntry(e){let t=e.type,{type:r}=e,{defaultOptions:n}=e;if(j7()){let e=ep3.NEXT_TYPE_REMAP[r];e&&(r=e)}let a=n;return a&&0!==Object.keys(a).length||(a={background:[0,0,0],orientation:null,displayArea:null},t===Fg.ORTHOGRAPHIC&&(a={...a,orientation:Fk.AXIAL})),{...e,requestedType:t!==r||j7()?t:void 0,type:r,defaultOptions:a}}_normalizeViewportInputEntries(e){let t=[];return e.forEach(e=>{t.push(this._normalizeViewportInputEntry(e))}),t}_resizeUsingCustomResizeHandler(e,t=!0,r=!0){e.forEach(e=>{e.resizeForRenderingEngine({keepCamera:t})}),r&&this.render()}_removeViewport(e){this.getViewport(e)?this._viewports.delete(e):console.warn(`viewport ${e} does not exist`)}addCustomViewport(e){let{element:t,viewportId:r,type:n,defaultOptions:a}=e;t.tabIndex=-1;let i=$v(t),{clientWidth:o,clientHeight:l}=i;(i.width!==o||i.height!==l)&&(i.width=o,i.height=l);let s={id:r,renderingEngineId:this.id,element:t,type:n,canvas:i,sx:0,sy:0,sWidth:o,sHeight:l,defaultOptions:a||{}},d=new(epj(e))(s);d.requestedType=n,this._viewports.set(r,d);let u={element:t,viewportId:r,renderingEngineId:this.id};jq(jG,Fm.ELEMENT_ENABLED,u)}getRenderer(e){return this.offscreenMultiRenderWindow.getRenderer(e)}getOffscreenMultiRenderWindow(e){if(!this.offscreenMultiRenderWindow)throw Error("Offscreen multi render window is not available.");return this.offscreenMultiRenderWindow}setCustomViewports(e){e.forEach(e=>{this.addCustomViewport(e)})}_getViewportsAsArray(){return Array.from(this._viewports.values())}_setViewportsToBeRenderedNextFrame(e){e.forEach(e=>{this._needsRender.add(e);let t=this._viewports.get(e);t&&(t.viewportStatus=B0.NEEDS_RENDER)}),this._render()}_render(){this._needsRender.size>0&&!this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}_resetViewport(e){let t=this.id,{element:r,canvas:n,id:a}=e;e.removeWidgets(),jq(jG,Fm.ELEMENT_DISABLED,{element:r,viewportId:a,renderingEngineId:t}),e.destroy?.(),r.removeAttribute("data-viewport-uid"),r.removeAttribute("data-rendering-engine-uid"),n.getContext("2d").clearRect(0,0,n.width,n.height)}_clearAnimationFrame(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}_reset(){this._getViewportsAsArray().forEach(e=>{this._resetViewport(e)}),this._clearAnimationFrame(),this._viewports=new Map}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}}ep3.NEXT_TYPE_REMAP={[Fg.STACK]:Fg.PLANAR_NEXT,[Fg.ORTHOGRAPHIC]:Fg.PLANAR_NEXT,[Fg.VIDEO]:Fg.VIDEO_NEXT,[Fg.WHOLE_SLIDE]:Fg.WHOLE_SLIDE_NEXT,[Fg.ECG]:Fg.ECG_NEXT,[Fg.VOLUME_3D]:Fg.VOLUME_3D_NEXT},(ewj=exI||(exI={}))[ewj.None=0]="None",ewj[ewj.Capture=1]="Capture",ewj[ewj.Bubble=2]="Bubble",Symbol("LastRuntimeId");let ep4=Bf;function ep8(e){return Array.isArray(e)?e:[e]}new class{constructor(e="Tools",t=50){this.position=-1,this.redoAvailable=0,this.undoAvailable=0,this.ring=[],this.isRecordingGrouped=!1,this.label=e,this._size=t}get size(){return this._size}set size(e){this.ring=Array(e),this._size=e,this.position=-1,this.redoAvailable=0,this.undoAvailable=0}get canUndo(){return this.undoAvailable>0}get canRedo(){return this.redoAvailable>0}undo(e=1){for(;e>0&&this.undoAvailable>0;){for(let e of ep8(this.ring[this.position]).reverse())e.restoreMemo(!0),this.dispatchHistoryEvent({item:e,isUndo:!0});e--,this.redoAvailable++,this.undoAvailable--,this.position=(this.position-1+this.size)%this.size}}undoIf(e){return!!(this.undoAvailable>0&&e(this.ring[this.position]))&&(this.undo(),!0)}dispatchHistoryEvent({item:e,isUndo:t}){e.id&&jG.dispatchEvent(new CustomEvent(t?"CORNERSTONE_TOOLS_HISTORY_UNDO":"CORNERSTONE_TOOLS_HISTORY_REDO",{detail:{isUndo:t,id:e.id,operationType:e.operationType||"annotation",memo:e}}))}redo(e=1){for(;e>0&&this.redoAvailable>0;){let t=(this.position+1)%this.size;for(let e of ep8(this.ring[t]).reverse())e.restoreMemo(!1),this.dispatchHistoryEvent({item:e,isUndo:!1});e--,this.position=t,this.undoAvailable++,this.redoAvailable--}}initializeGroupItem(){this.redoAvailable=0,this.undoAvailable<this._size&&this.undoAvailable++,this.position=(this.position+1)%this._size,this.ring[this.position]=[]}startGroupRecording(){this.isRecordingGrouped=!0,this.initializeGroupItem()}rollbackUnusedGroupItem(){this.ring[this.position]=void 0,this.position=(this.position-1)%this._size,this.undoAvailable--}endGroupRecording(){this.isRecordingGrouped=!1;let e=this.ring[this.position];Array.isArray(e)&&0===e.length&&this.rollbackUnusedGroupItem()}pushGrouped(e){let t=this.ring[this.position];if(Array.isArray(t))return t.push(e),e;throw Error("Last item should be an array for grouped memos.")}push(e){if(!e)return;let t=e.restoreMemo?e:e.createMemo?.();if(t)return this.isRecordingGrouped?this.pushGrouped(t):(this.redoAvailable=0,this.undoAvailable<this._size&&this.undoAvailable++,this.position=(this.position+1)%this._size,this.ring[this.position]=t,t)}};let ep6={},ep9={add:(e,t)=>{let[r,n]=e,a=`${r}_${n}`;ep6[a]||(ep6[a]={}),ep6[a]=t},get:(e,t,r)=>{if("spatialRegistrationModule"!==e)return;let n=`${t}_${r}`;if(ep6[n])return ep6[n];let a=`${r}_${t}`;if(ep6[a])return LJ.mat4.invert(LJ.mat4.create(),ep6[a])}};qa(ep9.get.bind(ep9));let{Cc:ep7,VD:eme,lJ:emt}=F,emr=new jT("imageRetrievalPool");emr.setMaxSimultaneousRequests(Ff.Interaction,200),emr.setMaxSimultaneousRequests(Ff.Thumbnail,200),emr.setMaxSimultaneousRequests(Ff.Prefetch,200),emr.grabDelay=0;let emn=Symbol("DefaultSettings"),ema=Symbol("RuntimeSettings"),emi=Symbol("ObjectSettingsMap"),emo=Symbol("Dictionary");class eml{constructor(e){const t=Object.create(e instanceof eml&&emo in e?e[emo]:null);Object.seal(Object.defineProperty(this,emo,{value:t}))}set(e,t){return emd(this[emo],e,t,null)}get(e){var t;return t=this[emo],t[e]}unset(e){return function(e,t){if(t.endsWith(".")){let r=0,n=t.slice(0,-1),a=0===n.length;for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(a||i.startsWith(t)||i===n)&&(delete e[i],++r);return r>0}return delete e[t]}(this[emo],e+"")}forEach(e){ems(this[emo],e)}extend(){return new eml(this)}import(e){emu(e)&&Object.keys(e).forEach(t=>{emd(this[emo],t,e[t],null)})}dump(){let e={};return ems(this[emo],(t,r)=>{void 0!==r&&function e(t,r,n){let a=r.indexOf(".");if(a>=0){let i=r.slice(0,a),o=t[i];if("object"!=typeof o||null===o){let e=o;o={},void 0!==e&&(o[""]=e),t[i]=o}e(o,r.slice(a+1,r.length),n)}else t[r]=n}(e,t,r)}),e}static assert(e){return e instanceof eml?e:eml.getRuntimeSettings()}static getDefaultSettings(e=null){let t=eml[emn];if(t instanceof eml||(t=new eml,eml[emn]=t),e){let r={};return t.forEach(n=>{n.startsWith(e)&&(r[n.split(`${e}.`)[1]]=t.get(n))}),r}return t}static getRuntimeSettings(){let e=eml[ema];return e instanceof eml||(e=new eml(eml.getDefaultSettings()),eml[ema]=e),e}static getObjectSettings(e,t){let r=null;if(e instanceof eml)r=e;else if("object"==typeof e&&null!==e){let n=eml[emi];n instanceof WeakMap||(n=new WeakMap,eml[emi]=n),(r=n.get(e))instanceof eml||(r=new eml(eml.assert(eml.getObjectSettings(t))),n.set(e,r))}return r}static extendRuntimeSettings(){return eml.getRuntimeSettings().extend()}}function ems(e,t){for(let r in e)t(r,e[r])}function emd(e,t,r,n){if(function(e){let t,r,n;if("string"!=typeof e||(t=e.length-1)<0)return!1;for(n=-1;(r=e.indexOf(".",n+1))>=0;){if(r-n<2||r===t)return!1;n=r}return!0}(t)){if(emu(r)){let i;var a=n instanceof WeakSet?n:new WeakSet;if(a.has(r))return emd(e,t,null,a);for(let n in a.add(r),i=0,r)Object.prototype.hasOwnProperty.call(r,n)&&!emd(e,0===n.length?t:`${t}.${n}`,r[n],a)&&++i;return a.delete(r),0===i}return e[t]=r,!0}return!1}function emu(e){if("object"==typeof e&&null!==e){let t=Object.getPrototypeOf(e);if(t===Object.prototype||null===t)return!0}return!1}function emc(e,t,r){let{PaletteColorLookupTableUID:n}=e;if(void 0!==e[t]||void 0!==n)return function(e,t){let r=t[0]||65536,n=t[2];if(!e)return;let a=e=>{let t=e.buffer||e,a=t.byteLength===2*r||n>8?new Uint16Array(t):new Uint8Array(t),i=[];for(let e=0;e<r;e++)i[e]=a[e];return i};if(e.palette)return e.palette;if(e.InlineBinary)try{let t=Uint8Array.from(atob(e.InlineBinary),e=>e.charCodeAt(0));return e.palette=a(t)}catch(t){console.log("Couldn't decode",e.InlineBinary,t);return}let i=Array.isArray(e)?e[0]:e;return i instanceof ArrayBuffer?e.palette=a(i):e.retrieveBulkData?e.retrieveBulkData().then(t=>e.palette=a(t)):void console.error(`No data found for ${e} palette`)}(e[t],e[r])}function emh(e,t,r){if(e[r])return e[r];let n=Object.create(e);return Object.defineProperty(e,r,{value:n,writable:!1,enumerable:!1}),t&&[...t?Object.values(t).filter(Boolean).map(e=>e[0]).filter(e=>"object"==typeof e):[]].forEach(e=>{e.SOPInstanceUID||Object.entries(e).forEach(([e,t])=>{n[e]=t})}),n}eml.getDefaultSettings().set("useCursors",!0);let{ZX:emp,Cc:emm}=z,{nw:emf}=F,emg=new class{constructor(){this.imageURIToUIDs=new Map,this.customMetadata=new Map}addImageIdToUIDs(e,t){if(!e)throw Error("MetadataProvider::Empty imageId");let r=L0(e);this.imageURIToUIDs.set(r,t)}addCustomMetadata(e,t,r){let n=L0(e);this.customMetadata.has(t)||this.customMetadata.set(t,{}),this.customMetadata.get(t)[n]=r}_getInstance(e){if(!e)throw Error("MetadataProvider::Empty imageId");let t=this.getUIDsFromImageID(e);if(!t)return;let{StudyInstanceUID:r,SeriesInstanceUID:n,SOPInstanceUID:a,frameNumber:i}=t,o=Ll.getInstance(r,n,a);if(!o)return;let l=i&&((e,t)=>{let{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,ImageType:i}=t;if(a<2)return t;t.ImageType=Array.isArray(i)&&i||"string"==typeof i&&i.split("\\")||i;let o=Number.parseInt(e||1),l=t.DetectorInformationSequence&&(!t.ImagePositionPatient||!t.ImageOrientationPatient);if(r&&n||l||a>1){!t.ImageOrientationPatient&&t.DetectorInformationSequence&&(t.ImageOrientationPatient=t.DetectorInformationSequence[0].ImageOrientationPatient);let e=t.ImagePositionPatient;if(!t.ImagePositionPatient&&t.DetectorInformationSequence){let r=t.DetectorInformationSequence[0].ImagePositionPatient,n=t.ImageOrientationPatient;r=r?.map(e=>Number(e)),n=n?.map(e=>Number(e));let a=Number(t.SpacingBetweenSlices);if(n&&a){let t=LJ.vec3.fromValues(n[0],n[1],n[2]),i=LJ.vec3.fromValues(n[3],n[4],n[5]),l=LJ.vec3.cross(LJ.vec3.create(),t,i),s=LJ.vec3.scaleAndAdd(LJ.vec3.create(),r,l,a*(o-1));e=[s[0],s[1],s[2]]}}t._parentInstance||Object.defineProperty(t,"_parentInstance",{value:{...t},enumerable:!1,writable:!1,configurable:!1});let a=emh(t._parentInstance,n?.[0],"_shared"),i=emh(a,r?.[o-1],o);return i.ImagePositionPatient=e??i.ImagePositionPatient??[0,0,o],Object.defineProperty(i,"frameNumber",{value:o,writable:!0,enumerable:!1,configurable:!0}),i}if(t.GridFrameOffsetVector){t._parentInstance||Object.defineProperty(t,"_parentInstance",{value:{...t},enumerable:!1,writable:!1,configurable:!1});let e=emh(t._parentInstance,n?.[0],"_shared"),a=emh(e,r?.[o-1],o),i=a.ImagePositionPatient?.map(Number),l=a.ImageOrientationPatient?.map(Number),s=Number(t.GridFrameOffsetVector[o-1]);if(i&&l&&!Number.isNaN(s)){let e=LJ.vec3.fromValues(l[0],l[1],l[2]),t=LJ.vec3.fromValues(l[3],l[4],l[5]),r=LJ.vec3.cross(LJ.vec3.create(),e,t),n=LJ.vec3.scaleAndAdd(LJ.vec3.create(),LJ.vec3.fromValues(...i),r,s);a.ImagePositionPatient=[n[0],n[1],n[2]]}return Object.defineProperty(a,"frameNumber",{value:o,writable:!0,enumerable:!1,configurable:!0}),a}return t})(i,o)||o;return l&&Object.defineProperty(l,"imageId",{value:e,writable:!0,enumerable:!1,configurable:!0}),l}get(e,t,r={fallback:!1}){if(Array.isArray(t))return;let n=this._getInstance(t);if(e===emb)return n;if(this.customMetadata.has(e)){let r=this.customMetadata.get(e),n=L0(t);if(r[n])return r[n]}return this.getTagFromInstance(e,n,r)}getTag(e,t,r){return this.get(e,t,r)}getInstance(e){return this.get(emb,e)}getTagFromInstance(e,t,r={fallback:!1}){if(t)return t[e]?t[e]:this._getCornerstoneDICOMImageLoaderTag(e,t)}addHandler(e,t){emv[e]=t}_getCornerstoneDICOMImageLoaderTag(e,t){let r=emv[e]?.(t);if(r)return r;switch(e){case emy.GENERAL_SERIES_MODULE:r={modality:t.Modality,seriesInstanceUID:t.SeriesInstanceUID,seriesNumber:LX(t.SeriesNumber),studyInstanceUID:t.StudyInstanceUID,seriesDescription:t.SeriesDescription,seriesDate:t.SeriesDate,seriesTime:t.SeriesTime};break;case emy.PATIENT_STUDY_MODULE:r={patientAge:t.PatientAge,patientSize:t.PatientSize,patientWeight:t.PatientWeight};break;case emy.PATIENT_DEMOGRAPHIC_MODULE:r={patientSex:t.PatientSex};break;case emy.IMAGE_PIXEL_MODULE:r={samplesPerPixel:LX(t.SamplesPerPixel),photometricInterpretation:t.PhotometricInterpretation,rows:LX(t.Rows),columns:LX(t.Columns),bitsAllocated:LX(t.BitsAllocated),bitsStored:LX(t.BitsStored),highBit:LX(t.HighBit),pixelRepresentation:LX(t.PixelRepresentation),planarConfiguration:LX(t.PlanarConfiguration),pixelAspectRatio:LX(t.PixelAspectRatio),smallestPixelValue:LX(t.SmallestPixelValue),largestPixelValue:LX(t.LargestPixelValue),redPaletteColorLookupTableDescriptor:LX(t.RedPaletteColorLookupTableDescriptor),greenPaletteColorLookupTableDescriptor:LX(t.GreenPaletteColorLookupTableDescriptor),bluePaletteColorLookupTableDescriptor:LX(t.BluePaletteColorLookupTableDescriptor),redPaletteColorLookupTableData:emc(t,"RedPaletteColorLookupTableData","RedPaletteColorLookupTableDescriptor"),greenPaletteColorLookupTableData:emc(t,"GreenPaletteColorLookupTableData","GreenPaletteColorLookupTableDescriptor"),bluePaletteColorLookupTableData:emc(t,"BluePaletteColorLookupTableData","BluePaletteColorLookupTableDescriptor")};break;case emy.VOI_LUT_MODULE:let{WindowCenter:n,WindowWidth:a,VOILUTFunction:i}=t;if(null==n||null==a)return;let o=Array.isArray(n)?n:[n],l=Array.isArray(a)?a:[a];r={windowCenter:LX(o),windowWidth:LX(l),voiLUTFunction:i};break;case emy.MODALITY_LUT_MODULE:let{RescaleIntercept:s,RescaleSlope:d}=t;if(null==s||null==d)return;r={rescaleIntercept:LX(t.RescaleIntercept),rescaleSlope:LX(t.RescaleSlope),rescaleType:t.RescaleType};break;case emy.SOP_COMMON_MODULE:r={sopClassUID:t.SOPClassUID,sopInstanceUID:t.SOPInstanceUID};break;case emy.PET_IMAGE_MODULE:r={frameReferenceTime:t.FrameReferenceTime,actualFrameDuration:t.ActualFrameDuration};break;case emy.PET_ISOTOPE_MODULE:let{RadiopharmaceuticalInformationSequence:u}=t;if(u){let{RadiopharmaceuticalStartTime:e,RadionuclideTotalDose:t,RadionuclideHalfLife:n}=Array.isArray(u)?u[0]:u;r={radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:Fp().parseTM(e),radionuclideTotalDose:t,radionuclideHalfLife:n}}}break;case emy.OVERLAY_PLANE_MODULE:let c=[];for(let e=0;e<=30;e+=2){let r=`60${e.toString(16)}`;3===r.length&&(r=`600${e.toString(16)}`);let n=t[`${r}3000`];if(!n)continue;let a=`${r}0010`,i=`${r}0011`,o=`${r}0040`,l=`${r}0050`,s=`${r}0022`,d=`${r}1500`,u=`${r}1301`,h=`${r}1302`,p=`${r}1303`,m=t[l],f=0;f=t[a]instanceof Array?new Uint16Array(t[a][0])[0]:t[a];let g=0;g=t[i]instanceof Array?new Uint16Array(t[i][0])[0]:t[i];let y=0,v=0;if(1===m.length){let e=new Int16Array(m[0]);y=e[0],v=e[1]}else y=m[0],v=m[1];let b={rows:f,columns:g,type:t[o],x:y,y:v,pixelData:n,description:t[s],label:t[d],roiArea:t[u],roiMean:t[h],roiStandardDeviation:t[p]};c.push(b)}r={overlays:c};break;case emy.PATIENT_MODULE:r={patientName:t.PatientName,patientId:t.PatientID,patientSex:t.PatientSex,patientBirthDate:t.PatientBirthDate,issuerOfPatientId:t.IssuerOfPatientID,otherPatientIDsSequence:t.OtherPatientIDsSequence};break;case emy.GENERAL_IMAGE_MODULE:r={sopInstanceUID:t.SOPInstanceUID,instanceNumber:LX(t.InstanceNumber),lossyImageCompression:t.LossyImageCompression,lossyImageCompressionRatio:t.LossyImageCompressionRatio,lossyImageCompressionMethod:t.LossyImageCompressionMethod};break;case emy.GENERAL_STUDY_MODULE:r={studyDescription:t.StudyDescription,studyInstanceUID:t.StudyInstanceUID,studyDate:t.StudyDate,studyTime:t.StudyTime,accessionNumber:t.AccessionNumber,studyId:t.StudyID};break;case emy.CINE_MODULE:r={frameTime:t.FrameTime,numberOfFrames:t.NumberOfFrames?Number(t.NumberOfFrames):1};break;case emy.PET_SERIES_MODULE:r={correctedImage:t.CorrectedImage,units:t.Units,decayCorrection:t.DecayCorrection};break;case emy.CALIBRATION_MODULE:r={sequenceOfUltrasoundRegions:t.SequenceOfUltrasoundRegions?.map(e=>({regionSpatialFormat:e.RegionSpatialFormat,regionDataType:e.RegionDataType,regionFlags:e.RegionFlags,regionLocationMinX0:e.RegionLocationMinX0,regionLocationMinY0:e.RegionLocationMinY0,regionLocationMaxX1:e.RegionLocationMaxX1,regionLocationMaxY1:e.RegionLocationMaxY1,referencePixelX0:e.ReferencePixelX0,referencePixelY0:e.ReferencePixelY0,referencePixelPhysicalValueX:e.ReferencePixelPhysicalValueX,referencePixelPhysicalValueY:e.ReferencePixelPhysicalValueY,physicalUnitsXDirection:e.PhysicalUnitsXDirection,physicalUnitsYDirection:e.PhysicalUnitsYDirection,physicalDeltaX:e.PhysicalDeltaX,physicalDeltaY:e.PhysicalDeltaY}))};break;case"temporalPositionIdentifier":r={temporalPositionIdentifier:t.TemporalPositionIdentifier};break;default:return}return r}getUIDsFromImageID(e){if(e.startsWith("wadors:")){let t=e.split("/studies/")[1].split("/");return{StudyInstanceUID:t[0],SeriesInstanceUID:t[2],SOPInstanceUID:t[4],frameNumber:t[6]}}if(e.includes("?requestType=WADO")){let t=Lz.parse(e),r=t.frameNumber||t.frame;return{StudyInstanceUID:t.studyUID,SeriesInstanceUID:t.seriesUID,SOPInstanceUID:t.objectUID,frameNumber:r}}let t=L0(e),r=this.imageURIToUIDs.get(t);if(!r)return;let n=emf(e)?.framesString||r.frameNumber||"1";return{...r,frameNumber:n}}};Ll.setMetaDataProvider(emg);let emy={GENERAL_SERIES_MODULE:"generalSeriesModule",PATIENT_STUDY_MODULE:"patientStudyModule",IMAGE_PIXEL_MODULE:"imagePixelModule",VOI_LUT_MODULE:"voiLutModule",MODALITY_LUT_MODULE:"modalityLutModule",SOP_COMMON_MODULE:"sopCommonModule",PET_IMAGE_MODULE:"petImageModule",PET_ISOTOPE_MODULE:"petIsotopeModule",PET_SERIES_MODULE:"petSeriesModule",OVERLAY_PLANE_MODULE:"overlayPlaneModule",PATIENT_DEMOGRAPHIC_MODULE:"patientDemographicModule",PATIENT_MODULE:"patientModule",GENERAL_IMAGE_MODULE:"generalImageModule",GENERAL_STUDY_MODULE:"generalStudyModule",CINE_MODULE:"cineModule",CALIBRATION_MODULE:"calibrationModule"},emv={frameModule:e=>{let{frameNumber:t=1,numberOfFrames:r=1,SOPClassUID:n,SOPInstanceUID:a,SeriesInstanceUID:i,StudyInstanceUID:o}=e;return{frameNumber:t,numberOfFrames:r,sopClassUID:n,sopInstanceUID:a,seriesInstanceUID:i,studyInstanceUID:o}},imagePlaneModule:e=>{let t,r,n,a,i,{ImageOrientationPatient:o,ImagePositionPatient:l}=e,{PixelSpacing:s,type:d}=emm(e)||{},u=!1,c=!1,h=!1;s?([t,r]=s,ep4.get("calibratedPixelSpacing",e.imageId)||emp.add(e.imageId,{rowPixelSpacing:parseFloat(s[0]),columnPixelSpacing:parseFloat(s[1]),type:d})):(t=r=1,u=!0),o?(n=LX(o.slice(0,3)),a=LX(o.slice(3,6)),i=LX(o)):(n=[1,0,0],a=[0,1,0],i=[1,0,0,0,1,0],u=!0,c=!0,h=!0);let p=LX(l)||[0,0,0];return l||(u=!0),{frameOfReferenceUID:e.FrameOfReferenceUID,rows:LX(e.Rows),columns:LX(e.Columns),spacingBetweenSlices:LX(e.SpacingBetweenSlices),imageOrientationPatient:i,rowCosines:n,isDefaultValueSetForRowCosine:c,columnCosines:a,isDefaultValueSetForColumnCosine:h,imagePositionPatient:p,sliceThickness:LX(e.SliceThickness),sliceLocation:LX(e.SliceLocation),pixelSpacing:LX(s||1),rowPixelSpacing:t?LX(t):null,columnPixelSpacing:r?LX(r):null,usingDefaultValues:u}}},emb="instance";d(6642),{...Lq,defaults:{hotkeyBindings:Fd}};let emw={activeViewportId:null,layout:{numRows:0,numCols:0,layoutType:"grid"},isHangingProtocolLayout:!1,viewports:new Map(Object.entries({default:{viewportId:"default",displaySetInstanceUIDs:[],isReady:!1,viewportOptions:{viewportId:"default"},displaySetSelectors:[],displaySetOptions:[{}],x:0,y:0,width:100,height:100,viewportLabel:null}}))},emx=(0,tg.createContext)([emw,{}]);function emC({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,r)=>{switch(r.type){case"SET_ACTIVE_VIEWPORT_ID":return{...e,...{activeViewportId:r.payload}};case"SET_DISPLAYSETS_FOR_VIEWPORTS":{let{payload:n}=r,a=new Map(e.viewports);return n.forEach(r=>{let{viewportId:n,displaySetInstanceUIDs:i}=r;if(!n)throw Error("ViewportId is required to set display sets for viewport");let o=a.get(n);if(o?.viewportOptions?.initialImageOptions){let{useOnce:e}=o.viewportOptions.initialImageOptions;e&&(o.viewportOptions.initialImageOptions=null)}let l=NK()({},o?.viewportOptions,r?.viewportOptions),s=r?.displaySetOptions||[];!s.length&&(e.isHangingProtocolLayout&&s.push(...o.displaySetOptions||[]),s.length||s.push({})),r.viewportOptions||e.isHangingProtocolLayout||(l={viewportId:l.viewportId});let d={...o,displaySetInstanceUIDs:i,viewportOptions:l,displaySetOptions:s};l.presentationIds=t.getPresentationIds({viewport:d,viewports:a}),a.set(n,{...a.get(n),...d})}),{...e,viewports:a}}case"SET_LAYOUT":{let{numCols:n,numRows:a,layoutOptions:i,layoutType:o="grid",activeViewportId:l,findOrCreateViewport:s,isHangingProtocolLayout:d}=r.payload,u=i?.length,c=new Map,h={},p=l;for(let e=0;e<a;e++)for(let r=0;r<n;r++){let o,l,d,p,m=r+e*n,f=i[m];i&&i[m]?{x:o,y:l,width:d,height:p}=i[m]:(d=1/n,p=1/a,o=r*d,l=e*p);let g=Math.round(o*n),y=Math.round(l*a),v=f?.positionId||`${g}-${y}`;if(u&&m>=i.length)continue;let b=s(m,v,h);if(b){if(b.positionId=v,!b.viewportOptions?.viewportId){let e=LU().substring(0,8);b.viewportOptions=b.viewportOptions||{},b.viewportOptions.viewportId=`viewport-${e}`}if(b.viewportId=b.viewportOptions.viewportId,c.set(b.viewportId,b),Object.assign(b,{width:d,height:p,x:o,y:l}),b.isReady=!1,!b.viewportOptions.presentationIds){let e=t.getPresentationIds({viewport:b,viewports:c});b.viewportOptions.presentationIds=e}}}return p=p??((e,t)=>{let{activeViewportId:r}=e,n=e.viewports.get(r);if(!n)return t.values().next().value.viewportOptions.viewportId;let a=n.displaySetInstanceUIDs,i=n.viewportOptions.orientation,o=Array.from(Array.from(t.values()).filter(e=>e.displaySetInstanceUIDs?.length>0).values()).sort((e,t)=>{let r=e.viewportOptions.orientation===i,n=t.viewportOptions.orientation===i;if(r!==n)return n-r;let o=e.displaySetInstanceUIDs.some(e=>a.includes(e)),l=t.displaySetInstanceUIDs.some(e=>a.includes(e));return o!==l?l-o:0});return o?.length?o[0].viewportId:null})(e,c),{...e,activeViewportId:p,layout:{...e.layout,numCols:n,numRows:a,layoutType:o},viewports:c,isHangingProtocolLayout:d}}case"RESET":return emw;case"SET":return{...e,...r.payload};case"VIEWPORT_IS_READY":{let{viewportId:t,isReady:n}=r.payload,a=new Map(e.viewports),i=a.get(t);if(!i)return;return a.set(t,{...i,isReady:n}),{...e,viewports:a}}default:return r.payload}},emw),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_ACTIVE_VIEWPORT_ID",payload:e}),[n]),o=(0,tg.useCallback)(e=>n({type:"SET_DISPLAYSETS_FOR_VIEWPORTS",payload:e}),[n]),l=(0,tg.useCallback)((e,t)=>{n({type:"VIEWPORT_IS_READY",payload:{viewportId:e,isReady:t}})},[n,r]),s=(0,tg.useCallback)(()=>{let{viewports:e}=r,t=Array.from(e.values()).filter(e=>e.displaySetInstanceUIDs?.length>0);return 0!==t.length&&t.filter(e=>e.isReady).length===t.length},[r]),d=(0,tg.useCallback)(({layoutType:e,numRows:t,numCols:r,layoutOptions:a=[],activeViewportId:i,findOrCreateViewport:o,isHangingProtocolLayout:l})=>n({type:"SET_LAYOUT",payload:{layoutType:e,numRows:t,numCols:r,layoutOptions:a,activeViewportId:i,findOrCreateViewport:o,isHangingProtocolLayout:l}}),[n]),u=(0,tg.useCallback)(()=>n({type:"RESET",payload:{}}),[n]),c=(0,tg.useCallback)(e=>n({type:"SET",payload:e}),[n]),h=(0,tg.useCallback)(e=>{let{viewports:t}=r;return t.get(e)},[r]),p=(0,tg.useCallback)(()=>{let{layout:e,viewports:t}=r,{numRows:n,numCols:a}=e;return Math.min(t.size,a*n)},[r]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setActiveViewportId:i,setDisplaySetsForViewports:o,isReferenceViewable:()=>!1,setLayout:d,reset:u,onModeExit:u,set:c,getNumViewportPanes:p,setViewportIsReady:l,getViewportState:h,getGridViewportsReady:s})},[a,t,i,o,d,u,c,p,l,s,h]),tv().createElement(emx.Provider,{value:[r,{getState:a,setActiveViewportId:e=>t.setActiveViewportId(e),setDisplaySetsForViewport:e=>t.setDisplaySetsForViewports([e]),setDisplaySetsForViewports:e=>t.setDisplaySetsForViewports(e),isReferenceViewable:(e,r,n)=>t.isReferenceViewable(e,r,n),setLayout:e=>t.setLayout(e),getViewportState:e=>t.getViewportState(e),reset:()=>t.reset(),set:e=>t.setState(e),getNumViewportPanes:p,setViewportIsReady:l,getGridViewportsReady:s,getActiveViewportOptionByKey:e=>{let{viewports:t,activeViewportId:n}=r;return t.get(n)?.viewportOptions?.[e]},setViewportGridSizeChanged:e=>t.setViewportGridSizeChanged(e),publishViewportsReady:()=>t.publishViewportsReady(),getLayoutOptionsFromState:e=>t.getLayoutOptionsFromState(e),getDisplaySetsUIDsForViewport:e=>t.getDisplaySetsUIDsForViewport(e)}]},e)}emC.propTypes={children:MA().any,service:MA().instanceOf(L_).isRequired};let emk=()=>(0,tg.useContext)(emx);function emM(){return(emM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let emS=(0,tg.createContext)(null),emE=()=>{let e=(0,tg.useContext)(emS);if(!e)throw Error("useModal must be used within a ModalProvider");return e},emT={title:"",shouldCloseOnEsc:!0},emI=({children:e,modal:t,service:r=null})=>{let{t:n}=vQ("Modals"),[a,i]=(0,tg.useState)(emT),o=a.content,l=(0,tg.useCallback)(e=>{i(t=>({...t,...e}))},[]),s=(0,tg.useCallback)(()=>{i(emT)},[]);(0,tg.useEffect)(()=>{r&&r.setServiceImplementation({show:l,hide:s})},[s,r,l]);let{title:d}=a,u=r?.getCustomComponent();return tv().createElement(emS.Provider,{value:{show:l,hide:s}},o&&tv().createElement(u||t,emM({isOpen:!0,onClose:s,title:n(d)},a),tv().createElement(o,emM({},a.contentProps,{show:l,hide:s}))),e)};function emP(){return(emP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}emS.Consumer;let emD=(e,t,r)=>{if(!e)return;let n=e.getBoundingClientRect();n.bottom>window.innerHeight&&(t.y=t.y-n.height),n.right>window.innerWidth&&(t.x=t.x-n.width),r(t)},em_=(0,tg.forwardRef)(({id:e,isOpen:t,title:r,content:n,contentProps:a,isDraggable:i,shouldCloseOnEsc:o=!1,shouldCloseOnOverlayClick:l=!1,showOverlay:s=!0,defaultPosition:d,onClose:u,unstyled:c,containerClassName:h},p)=>{let[m,f]=(0,tg.useState)(d),[g,y]=(0,tg.useState)(null);(0,tg.useImperativeHandle)(p,()=>({updatePosition:e=>{emD(g,e,f)}}),[]),(0,tg.useEffect)(()=>{f(d)},[d]);let[v,b]=(0,tg.useState)(d?"invisible":"visible"),w=(0,tg.useCallback)(e=>{e&&(y(e),emD(e,d,f),b("visible"))},[d]);return tv().createElement(aT,{open:t,modal:!1,onOpenChange:t=>{t||u(e)},isDraggable:i,shouldCloseOnEsc:o,shouldCloseOnOverlayClick:l,showOverlay:s},tv().createElement(aA,{ref:w,className:eN(c?"p-0":"",h,v),unstyled:c,style:{...m?{position:"fixed",left:`${m.x}px`,top:`${m.y}px`,transform:"translate(0, 0)",margin:0,animation:"none",transition:"none"}:{}}},!c&&tv().createElement(aO,null,r&&tv().createElement(aN,null,r)),tv().createElement(n,emP({},a,{hide:()=>u(e)}))))});em_.displayName="ManagedDialog";let emA=em_;function emO(){return(emO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let emR=(0,tg.createContext)(null),emN=()=>{let e=(0,tg.useContext)(emR);if(!e)throw Error("useDialog must be used within a DialogProvider");return e},emL=({children:e,dialog:t=emA,service:r=null})=>{let[n,a]=(0,tg.useState)([]),i=(0,tg.useRef)(new Map),o=(0,tg.useCallback)(e=>{let t=e.id;return a(r=>[...r,{...e,id:t}]),t},[]),l=(0,tg.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e)),i.current.delete(e)},[]),s=(0,tg.useCallback)(()=>{a([]),i.current.clear()},[]),d=(0,tg.useCallback)(()=>0===n.length,[n]),u=(0,tg.useCallback)((e,t)=>{let r=i.current.get(e);r&&r.updatePosition(t)},[]),c=(0,tg.useMemo)(()=>({show:o,hide:l,hideAll:s,isEmpty:d,updatePosition:u}),[o,l,s,d,u]);(0,tg.useEffect)(()=>{r&&r.setServiceImplementation(c)},[r,c]);let h=r?.getCustomComponent?.()||t;return tv().createElement(emR.Provider,{value:c},n.map(e=>tv().createElement(h,emO({key:e.id,ref:t=>{t&&i.current.set(e.id,t)},onClose:l,isOpen:!0},e))),e)},emV={message:void 0,type:"info",actions:void 0,onSubmit:()=>{console.log("btn value?")},onOutsideClick:()=>{console.warn("default: onOutsideClick")},onDismiss:()=>{console.log("dismiss? -1")},onKeyPress:()=>{console.log("key pressed?")}},emF=(0,tg.createContext)(null),{Provider:emB}=emF,emj=()=>(0,tg.useContext)(emF),emW=({children:e,service:t})=>{let[r,n]=(0,tg.useState)(emV),a=(0,tg.useCallback)(e=>n({...r,...e}),[r]),i=(0,tg.useCallback)(()=>n(emV),[]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({hide:i,show:a})},[i,t,a]),tv().createElement(emB,{value:[r,{show:a,hide:i}]},e)};emW.propTypes={children:MA().oneOfType([MA().arrayOf(MA().node),MA().node]).isRequired,service:MA().shape({setServiceImplementation:MA().func})};let emU=emW,emz={user:null,enabled:!1},emH=(0,tg.createContext)(emz);function emG({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,t)=>{switch(t.type){case"SET_USER":return{...e,...{user:t.payload.user}};case"RESET":return{user:null};case"SET":return{...e,...t.payload};default:return t.payload}},emz),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_USER",payload:{user:e}}),[n]),o=(0,tg.useCallback)(()=>r.user,[r]),l=(0,tg.useCallback)(()=>n({type:"RESET",payload:{}}),[n]),s=(0,tg.useCallback)(e=>n({type:"SET",payload:e}),[n]);(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setUser:i,getUser:o,reset:l,set:s})},[a,t,i,o,l,s]),t&&t.setServiceImplementation({getState:a,setUser:i,getUser:o,reset:l,set:s});let d={getState:a,setUser:i,getUser:o,getAuthorizationHeader:t.getAuthorizationHeader,handleUnauthenticated:t.handleUnauthenticated,reset:l,set:s};return tv().createElement(emH.Provider,{value:[r,d]},e)}emH.Consumer,emG.propTypes={children:MA().any,service:MA().shape({setServiceImplementation:MA().func}).isRequired};let emq=()=>(0,tg.useContext)(emH),em$=(0,tg.createContext)(null),emK=()=>(0,tg.useContext)(em$);function emY({StudyInstanceUIDs:e,children:t}){let r=(0,tg.useMemo)(()=>({StudyInstanceUIDs:e}),[e]);return tv().createElement(em$.Provider,{value:r},t)}function emZ(e){var t=null;return function(){return null==t&&(t=e()),t}}var emX=function(){var e;function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.entered=[],this.isNodeInDocument=e}return e=[{key:"enter",value:function(e){var t,r,n,a,i,o=this,l=this.entered.length;return this.entered=(t=this.entered.filter(function(t){return o.isNodeInDocument(t)&&(!t.contains||t.contains(e))}),r=[e],n=new Set,a=function(e){return n.add(e)},t.forEach(a),r.forEach(a),i=[],n.forEach(function(e){return i.push(e)}),i),0===l&&this.entered.length>0}},{key:"leave",value:function(e){var t,r=this.entered.length;return this.entered=(t=this.entered.filter(this.isNodeInDocument),t.filter(function(t){return t!==e})),r>0&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),emJ=emZ(function(){return/firefox/i.test(navigator.userAgent)}),emQ=emZ(function(){return!!window.safari}),em0=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");for(var n,a,i,o=e.length,l=[],s=0;s<o;s++)l.push(s);l.sort(function(t,r){return e[t]<e[r]?-1:1});for(var d=[],u=[],c=[],h=0;h<o-1;h++)n=e[h+1]-e[h],a=r[h+1]-r[h],u.push(n),d.push(a),c.push(a/n);for(var p=[c[0]],m=0;m<u.length-1;m++){var f=c[m],g=c[m+1];if(f*g<=0)p.push(0);else{n=u[m];var y=u[m+1],v=n+y;p.push(3*v/((v+y)/f+(v+n)/g))}}p.push(c[c.length-1]);for(var b=[],w=[],x=0;x<p.length-1;x++){i=c[x];var C=p[x],k=1/u[x],M=C+p[x+1]-i-i;b.push((i-C-M)*k),w.push(M*k*k)}this.xs=e,this.ys=r,this.c1s=p,this.c2s=b,this.c3s=w}return e=[{key:"interpolate",value:function(e){var t,r=this.xs,n=this.ys,a=this.c1s,i=this.c2s,o=this.c3s,l=r.length-1;if(e===r[l])return n[l];for(var s=0,d=o.length-1;s<=d;){var u=r[t=Math.floor(.5*(s+d))];if(u<e)s=t+1;else{if(!(u>e))return n[t];d=t-1}}var c=e-r[l=Math.max(0,d)],h=c*c;return n[l]+a[l]*c+i[l]*h+o[l]*c*h}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function em1(e){var t=1===e.nodeType?e:e.parentElement;if(!t)return null;var r=t.getBoundingClientRect(),n=r.top;return{x:r.left,y:n}}function em2(e){return{x:e.clientX,y:e.clientY}}var em5="__NATIVE_FILE__",em3="__NATIVE_URL__",em4="__NATIVE_TEXT__",em8="__NATIVE_HTML__";function em6(e,t,r){var n=t.reduce(function(t,r){return t||e.getData(r)},"");return null!=n?n:r}function em9(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var em7=(em9(exP={},em5,{exposeProperties:{files:function(e){return Array.prototype.slice.call(e.files)},items:function(e){return e.items}},matchesTypes:["Files"]}),em9(exP,em8,{exposeProperties:{html:function(e,t){return em6(e,t,"")}},matchesTypes:["Html","text/html"]}),em9(exP,em3,{exposeProperties:{urls:function(e,t){return em6(e,t,"").split("\n")}},matchesTypes:["Url","text/uri-list"]}),em9(exP,em4,{exposeProperties:{text:function(e,t){return em6(e,t,"")}},matchesTypes:["Text","text/plain"]}),exP),efe=function(){var e;function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.config=e,this.item={},this.initializeExposedProperties()}return e=[{key:"initializeExposedProperties",value:function(){var e=this;Object.keys(this.config.exposeProperties).forEach(function(t){Object.defineProperty(e.item,t,{configurable:!0,enumerable:!0,get:function(){return console.warn("Browser doesn't allow reading \"".concat(t,'" until the drop event.')),null}})})}},{key:"loadDataTransfer",value:function(e){var t=this;if(e){var r={};Object.keys(this.config.exposeProperties).forEach(function(n){r[n]={value:t.config.exposeProperties[n](e,t.config.matchesTypes),configurable:!0,enumerable:!0}}),Object.defineProperties(this.item,r)}}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function eft(e){if(!e)return null;var t=Array.prototype.slice.call(e.types||[]);return Object.keys(em7).filter(function(e){return em7[e].matchesTypes.some(function(e){return t.indexOf(e)>-1})})[0]||null}var efr=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.ownerDocument=null,this.globalContext=e,this.optionsArgs=r}return e=[{key:"window",get:function(){return this.globalContext?this.globalContext:"u">typeof window?window:void 0}},{key:"document",get:function(){var e;return null!=(e=this.globalContext)&&e.document?this.globalContext.document:this.window?this.window.document:void 0}},{key:"rootElement",get:function(){var e;return(null==(e=this.optionsArgs)?void 0:e.rootElement)||this.window}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function efn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function efa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?efn(Object(r),!0).forEach(function(t){var n,a,i;n=e,a=t,i=r[t],a in n?Object.defineProperty(n,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):efn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var efi=function(){var e;function t(e,r,n){var a=this;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.getSourceClientOffset=function(e){var t=a.sourceNodes.get(e);return t&&em1(t)||null},this.endDragNativeItem=function(){a.isDraggingNativeItem()&&(a.actions.endDrag(),a.currentNativeHandle&&a.registry.removeSource(a.currentNativeHandle),a.currentNativeHandle=null,a.currentNativeSource=null)},this.isNodeInDocument=function(e){return!!(e&&a.document&&a.document.body&&document.body.contains(e))},this.endDragIfSourceWasRemovedFromDOM=function(){var e=a.currentDragSourceNode;!(null==e||a.isNodeInDocument(e))&&a.clearCurrentDragSourceNode()&&a.monitor.isDragging()&&a.actions.endDrag()},this.handleTopDragStartCapture=function(){a.clearCurrentDragSourceNode(),a.dragStartSourceIds=[]},this.handleTopDragStart=function(e){if(!e.defaultPrevented){var t=a.dragStartSourceIds;a.dragStartSourceIds=null;var r=em2(e);a.monitor.isDragging()&&a.actions.endDrag(),a.actions.beginDrag(t||[],{publishSource:!1,getSourceClientOffset:a.getSourceClientOffset,clientOffset:r});var n=e.dataTransfer,i=eft(n);if(a.monitor.isDragging()){if(n&&"function"==typeof n.setDragImage){var o=a.monitor.getSourceId(),l=a.sourceNodes.get(o),s=a.sourcePreviewNodes.get(o)||l;if(s){var d,u,c,h,p,m,f,g,y,v,b,w,x,C,k,M,S,E,T=a.getCurrentSourcePreviewNodeOptions(),I=T.anchorX,P=T.anchorY,D=T.offsetX,_=T.offsetY,A=(d={anchorX:I,anchorY:P},u={offsetX:D,offsetY:_},p=em1((h="IMG"===s.nodeName&&(emJ()||!(null!=(c=document.documentElement)&&c.contains(s))))?l:s),m={x:r.x-p.x,y:r.y-p.y},f=l.offsetWidth,g=l.offsetHeight,y=d.anchorX,v=d.anchorY,C=(b=h?s.width:f,w=h?s.height:g,emQ()&&h&&(w/=window.devicePixelRatio,b/=window.devicePixelRatio),x={dragPreviewWidth:b,dragPreviewHeight:w}).dragPreviewWidth,k=x.dragPreviewHeight,M=u.offsetX,S=u.offsetY,{x:0===M||M?M:new em0([0,.5,1],[m.x,m.x/f*C,m.x+C-f]).interpolate(y),y:0===S||S?S:(E=new em0([0,.5,1],[m.y,m.y/g*k,m.y+k-g]).interpolate(v),emQ()&&h&&(E+=(window.devicePixelRatio-1)*k),E)});n.setDragImage(s,A.x,A.y)}}try{null==n||n.setData("application/json",{})}catch(e){}a.setCurrentDragSourceNode(e.target),a.getCurrentSourcePreviewNodeOptions().captureDraggingState?a.actions.publishDragSource():setTimeout(function(){return a.actions.publishDragSource()},0)}else if(i)a.beginDragNativeItem(i);else{if(n&&!n.types&&(e.target&&!e.target.hasAttribute||!e.target.hasAttribute("draggable")))return;e.preventDefault()}}},this.handleTopDragEndCapture=function(){a.clearCurrentDragSourceNode()&&a.monitor.isDragging()&&a.actions.endDrag()},this.handleTopDragEnterCapture=function(e){if(a.dragEnterTargetIds=[],!(!a.enterLeaveCounter.enter(e.target)||a.monitor.isDragging())){var t=e.dataTransfer,r=eft(t);r&&a.beginDragNativeItem(r,t)}},this.handleTopDragEnter=function(e){var t=a.dragEnterTargetIds;a.dragEnterTargetIds=[],a.monitor.isDragging()&&(a.altKeyPressed=e.altKey,t.length>0&&a.actions.hover(t,{clientOffset:em2(e)}),t.some(function(e){return a.monitor.canDropOnTarget(e)})&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=a.getCurrentDropEffect())))},this.handleTopDragOverCapture=function(){a.dragOverTargetIds=[]},this.handleTopDragOver=function(e){var t=a.dragOverTargetIds;if(a.dragOverTargetIds=[],!a.monitor.isDragging()){e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none");return}a.altKeyPressed=e.altKey,a.actions.hover(t||[],{clientOffset:em2(e)}),(t||[]).some(function(e){return a.monitor.canDropOnTarget(e)})?(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=a.getCurrentDropEffect())):a.isDraggingNativeItem()?e.preventDefault():(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=function(e){a.isDraggingNativeItem()&&e.preventDefault(),a.enterLeaveCounter.leave(e.target)&&a.isDraggingNativeItem()&&setTimeout(function(){return a.endDragNativeItem()},0)},this.handleTopDropCapture=function(e){if(a.dropTargetIds=[],a.isDraggingNativeItem()){var t;e.preventDefault(),null==(t=a.currentNativeSource)||t.loadDataTransfer(e.dataTransfer)}a.enterLeaveCounter.reset()},this.handleTopDrop=function(e){var t=a.dropTargetIds;a.dropTargetIds=[],a.actions.hover(t,{clientOffset:em2(e)}),a.actions.drop({dropEffect:a.getCurrentDropEffect()}),a.isDraggingNativeItem()?a.endDragNativeItem():a.monitor.isDragging()&&a.actions.endDrag()},this.handleSelectStart=function(e){var t=e.target;"function"!=typeof t.dragDrop||"INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop())},this.options=new efr(r,n),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.enterLeaveCounter=new emX(this.isNodeInDocument)}return e=[{key:"profile",value:function(){var e,t;return{sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,sourceNodeOptions:this.sourceNodeOptions.size,sourceNodes:this.sourceNodes.size,dragStartSourceIds:(null==(e=this.dragStartSourceIds)?void 0:e.length)||0,dropTargetIds:this.dropTargetIds.length,dragEnterTargetIds:this.dragEnterTargetIds.length,dragOverTargetIds:(null==(t=this.dragOverTargetIds)?void 0:t.length)||0}}},{key:"window",get:function(){return this.options.window}},{key:"document",get:function(){return this.options.document}},{key:"rootElement",get:function(){return this.options.rootElement}},{key:"setup",value:function(){var e=this.rootElement;if(void 0!==e){if(e.__isReactDndBackendSetUp)throw Error("Cannot have two HTML5 backends at the same time.");e.__isReactDndBackendSetUp=!0,this.addEventListeners(e)}}},{key:"teardown",value:function(){var e,t=this.rootElement;void 0!==t&&(t.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.rootElement),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&(null==(e=this.window)||e.cancelAnimationFrame(this.asyncEndDragFrameId)))}},{key:"connectDragPreview",value:function(e,t,r){var n=this;return this.sourcePreviewNodeOptions.set(e,r),this.sourcePreviewNodes.set(e,t),function(){n.sourcePreviewNodes.delete(e),n.sourcePreviewNodeOptions.delete(e)}}},{key:"connectDragSource",value:function(e,t,r){var n=this;this.sourceNodes.set(e,t),this.sourceNodeOptions.set(e,r);var a=function(t){return n.handleDragStart(t,e)},i=function(e){return n.handleSelectStart(e)};return t.setAttribute("draggable","true"),t.addEventListener("dragstart",a),t.addEventListener("selectstart",i),function(){n.sourceNodes.delete(e),n.sourceNodeOptions.delete(e),t.removeEventListener("dragstart",a),t.removeEventListener("selectstart",i),t.setAttribute("draggable","false")}}},{key:"connectDropTarget",value:function(e,t){var r=this,n=function(t){return r.handleDragEnter(t,e)},a=function(t){return r.handleDragOver(t,e)},i=function(t){return r.handleDrop(t,e)};return t.addEventListener("dragenter",n),t.addEventListener("dragover",a),t.addEventListener("drop",i),function(){t.removeEventListener("dragenter",n),t.removeEventListener("dragover",a),t.removeEventListener("drop",i)}}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),t=this.sourceNodeOptions.get(e);return efa({dropEffect:this.altKeyPressed?"copy":"move"},t||{})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId();return efa({anchorX:.5,anchorY:.5,captureDraggingState:!1},this.sourcePreviewNodeOptions.get(e)||{})}},{key:"isDraggingNativeItem",value:function(){var e=this.monitor.getItemType();return Object.keys(H).some(function(t){return H[t]===e})}},{key:"beginDragNativeItem",value:function(e,t){var r;this.clearCurrentDragSourceNode(),this.currentNativeSource=((r=new efe(em7[e])).loadDataTransfer(t),r),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"setCurrentDragSourceNode",value:function(e){var t=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.mouseMoveTimeoutTimer=setTimeout(function(){var e;return null==(e=t.rootElement)?void 0:e.addEventListener("mousemove",t.endDragIfSourceWasRemovedFromDOM,!0)},1e3)}},{key:"clearCurrentDragSourceNode",value:function(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var e;null==(e=this.window)||e.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}},{key:"handleDragStart",value:function(e,t){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(t))}},{key:"handleDragEnter",value:function(e,t){this.dragEnterTargetIds.unshift(t)}},{key:"handleDragOver",value:function(e,t){null===this.dragOverTargetIds&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(t)}},{key:"handleDrop",value:function(e,t){this.dropTargetIds.unshift(t)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),efo=function(e,t,r){return new efi(e,t,r)};let efl="u">typeof window&&!!("ontouchstart"in window||navigator.maxTouchPoints);function efs({children:e}){return console.log("using... touch backend?",efl),tv().createElement(Pq,{backend:efo,opts:{}},e)}efs.propTypes={children:MA().any};let efd=efs,efu={isCineEnabled:!1,cines:{}},efc={isPlaying:!1,frameRate:24},efh=(0,tg.createContext)(null);function efp({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,r)=>{switch(r.type){case"SET_CINE":{let{id:n,frameRate:a,isPlaying:i}=r.payload,o=e.cines,l=t.getSyncedViewports(n).map(({viewportId:e})=>e);return[n,...l].filter(e=>{let t=o[e]??{},r=t.frameRate!==(a??t.frameRate),n=t.isPlaying!==(i??t.isPlaying);return r||n}).forEach(e=>{let t=o[e];t||(t={id:n,...efc},o[e]=t),t.frameRate=a??t.frameRate,t.isPlaying=i??t.isPlaying}),{...e,...o}}case"SET_IS_CINE_ENABLED":return{...e,...{isCineEnabled:r.payload}};default:return r.payload}},efu),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_IS_CINE_ENABLED",payload:e}),[n]),o=(0,tg.useCallback)(({id:e,frameRate:t,isPlaying:r})=>n({type:"SET_CINE",payload:{id:e,frameRate:t,isPlaying:r}}),[n]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setIsCineEnabled:i,setCine:o})},[a,t,o,i]),tv().createElement(efh.Provider,{value:[r,{getState:a,setCine:o,setIsCineEnabled:e=>t.setIsCineEnabled(e),playClip:(e,r)=>t.playClip(e,r),stopClip:(e,r)=>t.stopClip(e,r),setViewportCineClosed:e=>t.setViewportCineClosed(e),clearViewportCineClosed:e=>t.clearViewportCineClosed(e),isViewportCineClosed:e=>t.isViewportCineClosed(e)}]},e)}let efm=()=>(0,tg.useContext)(efh),eff={tiny:16,small:20,medium:24,large:28},efg=(e="medium")=>"number"==typeof e?e:eff[e]||eff.medium,efy=(e="medium",t="")=>{let r=efg(e);return eN(`h-[${r}px] w-[${r}px]`,t)},efv=(0,tg.createContext)({size:"medium",getSizeValue:efg,getSizeClassName:efy,IconContainer:tR,containerProps:{variant:"ghost",size:"icon"},className:""}),efb=({size:e,children:t,IconContainer:r=tR,containerProps:n={}})=>{let a=efy(e),i={variant:"ghost",size:"icon",...n};return tv().createElement(efv.Provider,{value:{size:e,getSizeValue:efg,getSizeClassName:efy,IconContainer:r,containerProps:i,className:a}},t)},efw=()=>(0,tg.useContext)(efv),efx=[JSON.parse('{"name":"orchid","label":"Tonal: Orchid","cssVars":{"dark":{"highlight":"292 75% 62%","neutral":"270 18% 55%","neutral-light":"275 35% 75%","neutral-dark":"268 20% 24%","background":"270 45% 6%","foreground":"280 15% 96%","card":"268 40% 10%","card-foreground":"280 15% 96%","popover":"264 48% 13%","popover-foreground":"280 15% 96%","primary":"270 85% 65%","primary-foreground":"0 0% 98%","secondary":"268 45% 32%","secondary-foreground":"275 45% 88%","muted":"268 40% 10%","muted-foreground":"272 30% 60%","accent":"268 50% 20%","accent-foreground":"280 15% 96%","destructive":"0 65% 40%","destructive-foreground":"0 0% 98%","border":"268 30% 18%","input":"268 40% 25%","ring":"270 80% 60%"}}}'),JSON.parse('{"name":"arctic","label":"Tonal: Arctic","cssVars":{"dark":{"highlight":"173 81% 52%","neutral":"185 20% 55%","neutral-light":"180 40% 78%","neutral-dark":"190 18% 22%","background":"0 0% 0%","foreground":"180 10% 97%","card":"203 39% 9%","card-foreground":"180 10% 97%","popover":"202 54% 11%","popover-foreground":"180 10% 97%","primary":"175 85% 42%","primary-foreground":"185 50% 8%","secondary":"180 45% 28%","secondary-foreground":"175 50% 88%","muted":"203 39% 9%","muted-foreground":"185 30% 60%","accent":"185 55% 18%","accent-foreground":"180 10% 97%","destructive":"0 65% 35%","destructive-foreground":"0 0% 98%","border":"190 25% 17%","input":"223 40% 24%","ring":"175 85% 42%"}}}'),JSON.parse('{"name":"verdant","label":"Tonal: Verdant","cssVars":{"dark":{"highlight":"152 79% 52%","neutral":"150 15% 52%","neutral-light":"145 30% 72%","neutral-dark":"155 18% 24%","background":"155 40% 5%","foreground":"140 15% 95%","card":"152 35% 9%","card-foreground":"140 15% 95%","popover":"167 65% 10%","popover-foreground":"140 15% 95%","primary":"152 75% 40%","primary-foreground":"155 50% 8%","secondary":"150 40% 26%","secondary-foreground":"145 40% 85%","muted":"152 35% 9%","muted-foreground":"148 25% 55%","accent":"150 45% 16%","accent-foreground":"140 15% 95%","destructive":"0 65% 38%","destructive-foreground":"0 0% 98%","border":"150 25% 16%","input":"150 35% 22%","ring":"152 75% 40%"}}}'),JSON.parse('{"name":"midnight","label":"Neutral: Midnight","cssVars":{"dark":{"highlight":"188 90% 58%","neutral":"213 22% 59%","neutral-light":"214 69% 81%","neutral-dark":"214 16% 21%","background":"240 15% 3%","foreground":"0 0% 99%","card":"240 12% 8%","card-foreground":"0 0% 99%","popover":"225 45% 13%","popover-foreground":"0 0% 99%","primary":"210 100% 62%","primary-foreground":"0 0% 99%","secondary":"215 55% 32%","secondary-foreground":"200 60% 88%","muted":"240 12% 8%","muted-foreground":"210 40% 70%","accent":"220 65% 20%","accent-foreground":"0 0% 99%","destructive":"0 70% 35%","destructive-foreground":"0 0% 99%","border":"240 10% 18%","input":"225 35% 24%","ring":"210 100% 62%"}}}'),JSON.parse('{"name":"slate","label":"Neutral: Slate","cssVars":{"dark":{"highlight":"217 97% 52%","neutral":"0 0% 55%","neutral-light":"0 0% 75%","neutral-dark":"0 0% 25%","background":"0 0% 0%","foreground":"0 0% 96%","card":"0 0% 7%","card-foreground":"0 0% 96%","popover":"0 0% 9%","popover-foreground":"0 0% 96%","primary":"230 75% 55%","primary-foreground":"0 0% 98%","secondary":"0 0% 25%","secondary-foreground":"0 0% 85%","muted":"0 0% 7%","muted-foreground":"0 0% 60%","accent":"0 0% 18%","accent-foreground":"0 0% 96%","destructive":"0 65% 40%","destructive-foreground":"0 0% 98%","border":"0 0% 18%","input":"0 0% 22%","ring":"215 75% 55%"}}}'),JSON.parse('{"name":"deep","label":"Neutral: Deep","cssVars":{"dark":{"highlight":"184 53% 54%","neutral":"215 15% 50%","neutral-light":"210 20% 68%","neutral-dark":"220 18% 22%","background":"0 0% 0%","foreground":"215 15% 82%","card":"218 25% 5%","card-foreground":"215 15% 82%","popover":"215 30% 8%","popover-foreground":"215 15% 82%","primary":"200 43% 48%","primary-foreground":"210 20% 92%","secondary":"218 30% 18%","secondary-foreground":"215 25% 75%","muted":"214 28% 5%","muted-foreground":"215 18% 48%","accent":"216 32% 12%","accent-foreground":"215 15% 82%","destructive":"0 50% 35%","destructive-foreground":"0 15% 90%","border":"218 22% 10%","input":"216 28% 15%","ring":"215 45% 42%"}}}')],efC="ohif:theme",efk="ohif:custom-theme-css",efM="ohif-custom-theme",efS=new Set(["default","custom",...efx.map(e=>e.name)]);function efE(e){return!!e&&"custom"!==e&&efS.has(e)}let efT=tg.createContext(void 0);function efI(){let e=document.body.classList,t=[];e.forEach(e=>{e.startsWith("theme-")&&t.push(e)}),t.forEach(t=>e.remove(t))}function efP(){let e=document.getElementById(efM);e&&e.remove()}function efD({children:e}){let[t,r]=tg.useState(()=>{if("u"<typeof window)return"default";let e=new URLSearchParams(window.location.search).get("theme");if(efE(e))return e;let t=localStorage.getItem(efC);return t&&efS.has(t)&&("custom"!==t||localStorage.getItem(efk))?t:"default"}),[n,a]=tg.useState(()=>"u"<typeof window?"":localStorage.getItem(efk)||""),i=tg.useCallback(e=>{efS.has(e)&&(r(e),efI(),"default"!==e&&"custom"!==e&&document.body.classList.add(`theme-${e}`),"custom"!==e&&efP(),"default"===e?localStorage.removeItem(efC):localStorage.setItem(efC,e))},[]),o=tg.useCallback(e=>{let t,n,i,o=function(e){let t=[];for(let r of e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\*[\s\S]*$/,"").split(/[\n;]/)){let e=r.trim(),n=e.lastIndexOf("{");-1!==n&&(e=e.slice(n+1).trim());let a=e.indexOf(":");if(-1===a)continue;let i=e.slice(0,a).trim();if(!/^--[a-zA-Z0-9-]+$/.test(i))continue;let o=e.slice(a+1).replace(/[{}]/g,"").trim();o&&(o.includes("(")||o.includes(")")||t.push(` ${i}: ${o};`))}return t}(e);return 0!==o.length&&(t=o.join("\n"),n=`:root {
|
|
1837
|
+
`,this.dom.appendChild(this.metricsColumn),this.dom.appendChild(this.bindingsColumn)}isMemoryAvailable(){return void 0!==performance.memory}addPanel(e,t){((e===exT.RENDER_MODES?this.bindingsColumn:this.metricsColumn)??this.dom).appendChild(t.dom),this.panels.set(e,t)}startLoop(){let e=()=>{this.update(),this.animationFrameId=requestAnimationFrame(e)};this.animationFrameId=requestAnimationFrame(e)}stopLoop(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}updateStats(){this.frameCount++;let e=performance.now(),t=e-this.startTime,r=this.panels.get(exT.MS);if(r&&r.update(t,200),e>=this.lastUpdateTime+1e3){let t=1e3*this.frameCount/(e-this.lastUpdateTime),r=this.panels.get(exT.FPS);r&&r.update(t,300),this.lastUpdateTime=e,this.frameCount=0,this.updateMemoryPanel(),this.updateRenderModesPanel()}return e}updateRenderModesPanel(){let e=this.panels.get(exT.RENDER_MODES);if(!(e instanceof epq))return;let t=[];for(let e of ja())if(e&&!e.hasBeenDestroyed)for(let r of e.getViewports()){let n=r._debug?.renderModes;t.push({renderingEngineId:e.id,viewportId:r.id,viewportType:r.type,bindings:this.getViewportBindingDebugEntries(r,n??{})})}e.setContent(t)}getViewportBindingDebugEntries(e,t){let r=e.getActors?.()??[],n=e.getSourceDataId?.(),a=Object.entries(t);return a.length?a.map(([t,a])=>{var i,o;let l=ep0(e,t,n),s="source"===l?e.getDefaultActor?.():(i=r,o=t,i.find(e=>e.uid===o||e.representationUID===o||e.referencedId===o));return{actorUID:s?.uid,dataId:t,referencedId:s?.referencedId,renderMode:a,role:l,...ep1(s)}}):r.map(t=>{let r=t.representationUID??t.uid??"";return{actorUID:t.uid,dataId:r,referencedId:t.referencedId,renderMode:"-",role:ep0(e,r,n),...ep1(t)}})}updateMemoryPanel(){let e=this.panels.get(exT.MEMORY);if(!e)return;let t=performance;if(t.memory){let r=t.memory.usedJSHeapSize/1048576,n=t.memory.jsHeapSizeLimit/1048576;e.update(r,n)}}attachDragHandlers(){this.dom?.addEventListener("pointerdown",this.handlePointerDown)}detachDragHandlers(){this.dom?.removeEventListener("pointerdown",this.handlePointerDown),window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointercancel",this.handlePointerUp)}onPointerDown(e){if(!this.dom||0!==e.button)return;this.dragPointerId=e.pointerId;let t=this.dom.getBoundingClientRect();this.dragOffsetX=e.clientX-t.left,this.dragOffsetY=e.clientY-t.top,this.setPosition(t.left,t.top),window.addEventListener("pointermove",this.handlePointerMove),window.addEventListener("pointerup",this.handlePointerUp),window.addEventListener("pointercancel",this.handlePointerUp),e.preventDefault()}onPointerMove(e){this.dragPointerId===e.pointerId&&this.dom&&this.setPosition(e.clientX-this.dragOffsetX,e.clientY-this.dragOffsetY)}onPointerUp(e){if(this.dragPointerId!==e.pointerId||!this.dom)return;this.dragPointerId=null,window.removeEventListener("pointermove",this.handlePointerMove),window.removeEventListener("pointerup",this.handlePointerUp),window.removeEventListener("pointercancel",this.handlePointerUp);let t=this.dom.getBoundingClientRect();this.savePosition(t.left,t.top)}setPosition(e,t){if(!this.dom)return;let r=this.clampToViewport(e,t);this.dom.style.left=`${r.left}px`,this.dom.style.top=`${r.top}px`,this.dom.style.right="auto",this.dom.style.bottom="auto"}clampToViewport(e,t){if(!this.dom)return{left:e,top:t};let r=this.dom.offsetWidth,n=this.dom.offsetHeight;return{left:Math.min(Math.max(0,e),Math.max(0,window.innerWidth-r)),top:Math.min(Math.max(0,t),Math.max(0,window.innerHeight-n))}}restorePosition(){let e=this.readSavedPosition();e&&this.setPosition(e.left,e.top)}readSavedPosition(){try{let e=window.localStorage.getItem(epH);if(!e)return null;let t=JSON.parse(e);if("number"!=typeof t?.left||"number"!=typeof t?.top||!Number.isFinite(t.left)||!Number.isFinite(t.top))return null;return{left:t.left,top:t.top}}catch{return null}}savePosition(e,t){try{window.localStorage.setItem(epH,JSON.stringify({left:e,top:t}))}catch{}}}function ep0(e,t,r){let n=e.getDisplaySetRole?.(t);return"source"===n||"overlay"===n?n:r&&t===r?"source":"data"}function ep1(e){let t=e?.actor?.getMapper?.()?.getInputData?.();if(!t)return{};try{let e=t.getPointData?.()?.getScalars?.();if(e?.getDataType){let t=e.getNumberOfComponents?.()??1,r=t>1?e.getRange?.(0):e.getRange?.();return{scalarType:e.getDataType(),scalarRange:ep2(r),numberOfComponents:t}}let r=t.getScalarData?.();if(r?.constructor?.name){let e=Number.isFinite(t.minPixelValue)&&Number.isFinite(t.maxPixelValue)?[t.minPixelValue,t.maxPixelValue]:void 0;return{scalarType:r.constructor.name,scalarRange:ep2(e)}}}catch{}return{}}function ep2(e){if(e&&!(e.length<2)&&Number.isFinite(e[0])&&Number.isFinite(e[1]))return[e[0],e[1]]}epQ.instance=null;let ep5=epQ.getInstance();class ep3{constructor(e){throw this._needsRender=new Set,this._animationFrameSet=!1,this._animationFrameHandle=null,this.renderFrameOfReference=e=>{let t=this._getViewportsAsArray().map(t=>{if(t.getFrameOfReferenceUID()===e)return t.id});this.renderViewports(t)},this.id=e||jE(),this.useCPURendering=j9(),(e=>{jr[e.id]=e})(this),Error("@cornerstonejs/core is not initialized, run init() first")}enableElement(e){let t=this._normalizeViewportInputEntry(e);this._throwIfDestroyed();let{element:r,viewportId:n}=t;if(!r)throw Error("No element provided");this.getViewport(n)&&this.disableElement(n);let{type:a}=t;epW(a)?this.addCustomViewport(t):this.enableVTKjsDrivenViewport(t);let i=$v(r),{background:o}=t.defaultOptions;this.fillCanvasWithBackgroundColor(i,o)}disableElement(e){this._throwIfDestroyed();let t=this.getViewport(e);t?(this._resetViewport(t),!epW(t.type)&&this.offscreenMultiRenderWindow&&this.offscreenMultiRenderWindow.removeRenderer(e),this._removeViewport(e),t.isDisabled=!0,this._needsRender.delete(e),this.getViewports().length||this._clearAnimationFrame()):console.warn(`viewport ${e} does not exist`)}disableViewport(e){this.disableElement(e)}setViewports(e){let t=this._normalizeViewportInputEntries(e);this._throwIfDestroyed(),this._reset();let r=[],n=[];t.forEach(e=>{epW(e.type)?n.push(e):r.push(e)}),this.setVtkjsDrivenViewports(r),this.setCustomViewports(n),t.forEach(e=>{let t=$v(e.element),{background:r}=e.defaultOptions;this.fillCanvasWithBackgroundColor(t,r)})}resize(e=!0,t=!0){this._throwIfDestroyed();let r=this._getViewportsAsArray(),n=[],a=[];r.forEach(e=>{epU(e)?a.push(e):n.push(e)}),n.length&&this._resizeVTKViewports(n,t,e),a.length&&this._resizeUsingCustomResizeHandler(a,t,e)}getViewport(e){return this._viewports?.get(e)}getViewports(){return this._throwIfDestroyed(),this._getViewportsAsArray()}render(){let e=this.getViewports().map(e=>e.id);this._setViewportsToBeRenderedNextFrame(e)}renderViewports(e){this._setViewportsToBeRenderedNextFrame(e)}renderViewport(e){this._setViewportsToBeRenderedNextFrame([e])}destroy(){let e;if(this.hasBeenDestroyed)return;ep5.cleanup();let t=this._getViewportsAsArray();this._reset(),this.offscreenMultiRenderWindow&&(t.forEach(e=>{this.offscreenMultiRenderWindow&&!epU(e)&&this.offscreenMultiRenderWindow.getRenderer(e.id)&&this.offscreenMultiRenderWindow.removeRenderer(e.id)}),this.offscreenMultiRenderWindow.delete(),delete this.offscreenMultiRenderWindow),e=this.id,delete jr[e],this.hasBeenDestroyed=!0}fillCanvasWithBackgroundColor(e,t){let r=e.getContext("2d");r.fillStyle=t?Array.isArray(t)?`rgb(${t.map(e=>Math.round(255*e)).join(",")})`:t:"black",r.fillRect(0,0,e.width,e.height)}_normalizeViewportInputEntry(e){let t=e.type,{type:r}=e,{defaultOptions:n}=e;if(j7()){let e=ep3.NEXT_TYPE_REMAP[r];e&&(r=e)}let a=n;return a&&0!==Object.keys(a).length||(a={background:[0,0,0],orientation:null,displayArea:null},t===Fg.ORTHOGRAPHIC&&(a={...a,orientation:Fk.AXIAL})),{...e,requestedType:t!==r||j7()?t:void 0,type:r,defaultOptions:a}}_normalizeViewportInputEntries(e){let t=[];return e.forEach(e=>{t.push(this._normalizeViewportInputEntry(e))}),t}_resizeUsingCustomResizeHandler(e,t=!0,r=!0){e.forEach(e=>{e.resizeForRenderingEngine({keepCamera:t})}),r&&this.render()}_removeViewport(e){this.getViewport(e)?this._viewports.delete(e):console.warn(`viewport ${e} does not exist`)}addCustomViewport(e){let{element:t,viewportId:r,type:n,defaultOptions:a}=e;t.tabIndex=-1;let i=$v(t),{clientWidth:o,clientHeight:l}=i;(i.width!==o||i.height!==l)&&(i.width=o,i.height=l);let s={id:r,renderingEngineId:this.id,element:t,type:n,canvas:i,sx:0,sy:0,sWidth:o,sHeight:l,defaultOptions:a||{}},d=new(epj(e))(s);d.requestedType=n,this._viewports.set(r,d);let u={element:t,viewportId:r,renderingEngineId:this.id};jq(jG,Fm.ELEMENT_ENABLED,u)}getRenderer(e){return this.offscreenMultiRenderWindow.getRenderer(e)}getOffscreenMultiRenderWindow(e){if(!this.offscreenMultiRenderWindow)throw Error("Offscreen multi render window is not available.");return this.offscreenMultiRenderWindow}setCustomViewports(e){e.forEach(e=>{this.addCustomViewport(e)})}_getViewportsAsArray(){return Array.from(this._viewports.values())}_setViewportsToBeRenderedNextFrame(e){e.forEach(e=>{this._needsRender.add(e);let t=this._viewports.get(e);t&&(t.viewportStatus=B0.NEEDS_RENDER)}),this._render()}_render(){this._needsRender.size>0&&!this._animationFrameSet&&(this._animationFrameHandle=window.requestAnimationFrame(this._renderFlaggedViewports),this._animationFrameSet=!0)}_resetViewport(e){let t=this.id,{element:r,canvas:n,id:a}=e;e.removeWidgets(),jq(jG,Fm.ELEMENT_DISABLED,{element:r,viewportId:a,renderingEngineId:t}),e.destroy?.(),r.removeAttribute("data-viewport-uid"),r.removeAttribute("data-rendering-engine-uid"),n.getContext("2d").clearRect(0,0,n.width,n.height)}_clearAnimationFrame(){window.cancelAnimationFrame(this._animationFrameHandle),this._needsRender.clear(),this._animationFrameSet=!1,this._animationFrameHandle=null}_reset(){this._getViewportsAsArray().forEach(e=>{this._resetViewport(e)}),this._clearAnimationFrame(),this._viewports=new Map}_throwIfDestroyed(){if(this.hasBeenDestroyed)throw Error("this.destroy() has been manually called to free up memory, can not longer use this instance. Instead make a new one.")}}ep3.NEXT_TYPE_REMAP={[Fg.STACK]:Fg.PLANAR_NEXT,[Fg.ORTHOGRAPHIC]:Fg.PLANAR_NEXT,[Fg.VIDEO]:Fg.VIDEO_NEXT,[Fg.WHOLE_SLIDE]:Fg.WHOLE_SLIDE_NEXT,[Fg.ECG]:Fg.ECG_NEXT,[Fg.VOLUME_3D]:Fg.VOLUME_3D_NEXT},(ewj=exI||(exI={}))[ewj.None=0]="None",ewj[ewj.Capture=1]="Capture",ewj[ewj.Bubble=2]="Bubble",Symbol("LastRuntimeId");let ep4=Bf;function ep8(e){return Array.isArray(e)?e:[e]}new class{constructor(e="Tools",t=50){this.position=-1,this.redoAvailable=0,this.undoAvailable=0,this.ring=[],this.isRecordingGrouped=!1,this.label=e,this._size=t}get size(){return this._size}set size(e){this.ring=Array(e),this._size=e,this.position=-1,this.redoAvailable=0,this.undoAvailable=0}get canUndo(){return this.undoAvailable>0}get canRedo(){return this.redoAvailable>0}undo(e=1){for(;e>0&&this.undoAvailable>0;){for(let e of ep8(this.ring[this.position]).reverse())e.restoreMemo(!0),this.dispatchHistoryEvent({item:e,isUndo:!0});e--,this.redoAvailable++,this.undoAvailable--,this.position=(this.position-1+this.size)%this.size}}undoIf(e){return!!(this.undoAvailable>0&&e(this.ring[this.position]))&&(this.undo(),!0)}dispatchHistoryEvent({item:e,isUndo:t}){e.id&&jG.dispatchEvent(new CustomEvent(t?"CORNERSTONE_TOOLS_HISTORY_UNDO":"CORNERSTONE_TOOLS_HISTORY_REDO",{detail:{isUndo:t,id:e.id,operationType:e.operationType||"annotation",memo:e}}))}redo(e=1){for(;e>0&&this.redoAvailable>0;){let t=(this.position+1)%this.size;for(let e of ep8(this.ring[t]).reverse())e.restoreMemo(!1),this.dispatchHistoryEvent({item:e,isUndo:!1});e--,this.position=t,this.undoAvailable++,this.redoAvailable--}}initializeGroupItem(){this.redoAvailable=0,this.undoAvailable<this._size&&this.undoAvailable++,this.position=(this.position+1)%this._size,this.ring[this.position]=[]}startGroupRecording(){this.isRecordingGrouped=!0,this.initializeGroupItem()}rollbackUnusedGroupItem(){this.ring[this.position]=void 0,this.position=(this.position-1)%this._size,this.undoAvailable--}endGroupRecording(){this.isRecordingGrouped=!1;let e=this.ring[this.position];Array.isArray(e)&&0===e.length&&this.rollbackUnusedGroupItem()}pushGrouped(e){let t=this.ring[this.position];if(Array.isArray(t))return t.push(e),e;throw Error("Last item should be an array for grouped memos.")}push(e){if(!e)return;let t=e.restoreMemo?e:e.createMemo?.();if(t)return this.isRecordingGrouped?this.pushGrouped(t):(this.redoAvailable=0,this.undoAvailable<this._size&&this.undoAvailable++,this.position=(this.position+1)%this._size,this.ring[this.position]=t,t)}replaceCurrentMemo(e,t){if(!e||0===this.undoAvailable)return!1;let r=this.ring[this.position],n=ep8(r).findIndex(t);if(-1===n)return!1;let a=e.restoreMemo?e:e.createMemo?.();return!!a&&(Array.isArray(r)?r[n]=a:this.ring[this.position]=a,!0)}};let ep6={},ep9={add:(e,t)=>{let[r,n]=e,a=`${r}_${n}`;ep6[a]||(ep6[a]={}),ep6[a]=t},get:(e,t,r)=>{if("spatialRegistrationModule"!==e)return;let n=`${t}_${r}`;if(ep6[n])return ep6[n];let a=`${r}_${t}`;if(ep6[a])return LJ.mat4.invert(LJ.mat4.create(),ep6[a])}};qa(ep9.get.bind(ep9));let{Cc:ep7,VD:eme,lJ:emt}=F,emr=new jT("imageRetrievalPool");emr.setMaxSimultaneousRequests(Ff.Interaction,200),emr.setMaxSimultaneousRequests(Ff.Thumbnail,200),emr.setMaxSimultaneousRequests(Ff.Prefetch,200),emr.grabDelay=0;let emn=Symbol("DefaultSettings"),ema=Symbol("RuntimeSettings"),emi=Symbol("ObjectSettingsMap"),emo=Symbol("Dictionary");class eml{constructor(e){const t=Object.create(e instanceof eml&&emo in e?e[emo]:null);Object.seal(Object.defineProperty(this,emo,{value:t}))}set(e,t){return emd(this[emo],e,t,null)}get(e){var t;return t=this[emo],t[e]}unset(e){return function(e,t){if(t.endsWith(".")){let r=0,n=t.slice(0,-1),a=0===n.length;for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(a||i.startsWith(t)||i===n)&&(delete e[i],++r);return r>0}return delete e[t]}(this[emo],e+"")}forEach(e){ems(this[emo],e)}extend(){return new eml(this)}import(e){emu(e)&&Object.keys(e).forEach(t=>{emd(this[emo],t,e[t],null)})}dump(){let e={};return ems(this[emo],(t,r)=>{void 0!==r&&function e(t,r,n){let a=r.indexOf(".");if(a>=0){let i=r.slice(0,a),o=t[i];if("object"!=typeof o||null===o){let e=o;o={},void 0!==e&&(o[""]=e),t[i]=o}e(o,r.slice(a+1,r.length),n)}else t[r]=n}(e,t,r)}),e}static assert(e){return e instanceof eml?e:eml.getRuntimeSettings()}static getDefaultSettings(e=null){let t=eml[emn];if(t instanceof eml||(t=new eml,eml[emn]=t),e){let r={};return t.forEach(n=>{n.startsWith(e)&&(r[n.split(`${e}.`)[1]]=t.get(n))}),r}return t}static getRuntimeSettings(){let e=eml[ema];return e instanceof eml||(e=new eml(eml.getDefaultSettings()),eml[ema]=e),e}static getObjectSettings(e,t){let r=null;if(e instanceof eml)r=e;else if("object"==typeof e&&null!==e){let n=eml[emi];n instanceof WeakMap||(n=new WeakMap,eml[emi]=n),(r=n.get(e))instanceof eml||(r=new eml(eml.assert(eml.getObjectSettings(t))),n.set(e,r))}return r}static extendRuntimeSettings(){return eml.getRuntimeSettings().extend()}}function ems(e,t){for(let r in e)t(r,e[r])}function emd(e,t,r,n){if(function(e){let t,r,n;if("string"!=typeof e||(t=e.length-1)<0)return!1;for(n=-1;(r=e.indexOf(".",n+1))>=0;){if(r-n<2||r===t)return!1;n=r}return!0}(t)){if(emu(r)){let i;var a=n instanceof WeakSet?n:new WeakSet;if(a.has(r))return emd(e,t,null,a);for(let n in a.add(r),i=0,r)Object.prototype.hasOwnProperty.call(r,n)&&!emd(e,0===n.length?t:`${t}.${n}`,r[n],a)&&++i;return a.delete(r),0===i}return e[t]=r,!0}return!1}function emu(e){if("object"==typeof e&&null!==e){let t=Object.getPrototypeOf(e);if(t===Object.prototype||null===t)return!0}return!1}function emc(e,t,r){let{PaletteColorLookupTableUID:n}=e;if(void 0!==e[t]||void 0!==n)return function(e,t){let r=t[0]||65536,n=t[2];if(!e)return;let a=e=>{let t=e.buffer||e,a=t.byteLength===2*r||n>8?new Uint16Array(t):new Uint8Array(t),i=[];for(let e=0;e<r;e++)i[e]=a[e];return i};if(e.palette)return e.palette;if(e.InlineBinary)try{let t=Uint8Array.from(atob(e.InlineBinary),e=>e.charCodeAt(0));return e.palette=a(t)}catch(t){console.log("Couldn't decode",e.InlineBinary,t);return}let i=Array.isArray(e)?e[0]:e;return i instanceof ArrayBuffer?e.palette=a(i):e.retrieveBulkData?e.retrieveBulkData().then(t=>e.palette=a(t)):void console.error(`No data found for ${e} palette`)}(e[t],e[r])}function emh(e,t,r){if(e[r])return e[r];let n=Object.create(e);return Object.defineProperty(e,r,{value:n,writable:!1,enumerable:!1}),t&&[...t?Object.values(t).filter(Boolean).map(e=>e[0]).filter(e=>"object"==typeof e):[]].forEach(e=>{e.SOPInstanceUID||Object.entries(e).forEach(([e,t])=>{n[e]=t})}),n}eml.getDefaultSettings().set("useCursors",!0);let{ZX:emp,Cc:emm}=z,{nw:emf}=F,emg=new class{constructor(){this.imageURIToUIDs=new Map,this.customMetadata=new Map}addImageIdToUIDs(e,t){if(!e)throw Error("MetadataProvider::Empty imageId");let r=L0(e);this.imageURIToUIDs.set(r,t)}addCustomMetadata(e,t,r){let n=L0(e);this.customMetadata.has(t)||this.customMetadata.set(t,{}),this.customMetadata.get(t)[n]=r}_getInstance(e){if(!e)throw Error("MetadataProvider::Empty imageId");let t=this.getUIDsFromImageID(e);if(!t)return;let{StudyInstanceUID:r,SeriesInstanceUID:n,SOPInstanceUID:a,frameNumber:i}=t,o=Ll.getInstance(r,n,a);if(!o)return;let l=i&&((e,t)=>{let{PerFrameFunctionalGroupsSequence:r,SharedFunctionalGroupsSequence:n,NumberOfFrames:a,ImageType:i}=t;if(a<2)return t;t.ImageType=Array.isArray(i)&&i||"string"==typeof i&&i.split("\\")||i;let o=Number.parseInt(e||1),l=t.DetectorInformationSequence&&(!t.ImagePositionPatient||!t.ImageOrientationPatient);if(r&&n||l||a>1){!t.ImageOrientationPatient&&t.DetectorInformationSequence&&(t.ImageOrientationPatient=t.DetectorInformationSequence[0].ImageOrientationPatient);let e=t.ImagePositionPatient;if(!t.ImagePositionPatient&&t.DetectorInformationSequence){let r=t.DetectorInformationSequence[0].ImagePositionPatient,n=t.ImageOrientationPatient;r=r?.map(e=>Number(e)),n=n?.map(e=>Number(e));let a=Number(t.SpacingBetweenSlices);if(n&&a){let t=LJ.vec3.fromValues(n[0],n[1],n[2]),i=LJ.vec3.fromValues(n[3],n[4],n[5]),l=LJ.vec3.cross(LJ.vec3.create(),t,i),s=LJ.vec3.scaleAndAdd(LJ.vec3.create(),r,l,a*(o-1));e=[s[0],s[1],s[2]]}}t._parentInstance||Object.defineProperty(t,"_parentInstance",{value:{...t},enumerable:!1,writable:!1,configurable:!1});let a=emh(t._parentInstance,n?.[0],"_shared"),i=emh(a,r?.[o-1],o);return i.ImagePositionPatient=e??i.ImagePositionPatient??[0,0,o],Object.defineProperty(i,"frameNumber",{value:o,writable:!0,enumerable:!1,configurable:!0}),i}if(t.GridFrameOffsetVector){t._parentInstance||Object.defineProperty(t,"_parentInstance",{value:{...t},enumerable:!1,writable:!1,configurable:!1});let e=emh(t._parentInstance,n?.[0],"_shared"),a=emh(e,r?.[o-1],o),i=a.ImagePositionPatient?.map(Number),l=a.ImageOrientationPatient?.map(Number),s=Number(t.GridFrameOffsetVector[o-1]);if(i&&l&&!Number.isNaN(s)){let e=LJ.vec3.fromValues(l[0],l[1],l[2]),t=LJ.vec3.fromValues(l[3],l[4],l[5]),r=LJ.vec3.cross(LJ.vec3.create(),e,t),n=LJ.vec3.scaleAndAdd(LJ.vec3.create(),LJ.vec3.fromValues(...i),r,s);a.ImagePositionPatient=[n[0],n[1],n[2]]}return Object.defineProperty(a,"frameNumber",{value:o,writable:!0,enumerable:!1,configurable:!0}),a}return t})(i,o)||o;return l&&Object.defineProperty(l,"imageId",{value:e,writable:!0,enumerable:!1,configurable:!0}),l}get(e,t,r={fallback:!1}){if(Array.isArray(t))return;let n=this._getInstance(t);if(e===emb)return n;if(this.customMetadata.has(e)){let r=this.customMetadata.get(e),n=L0(t);if(r[n])return r[n]}return this.getTagFromInstance(e,n,r)}getTag(e,t,r){return this.get(e,t,r)}getInstance(e){return this.get(emb,e)}getTagFromInstance(e,t,r={fallback:!1}){if(t)return t[e]?t[e]:this._getCornerstoneDICOMImageLoaderTag(e,t)}addHandler(e,t){emv[e]=t}_getCornerstoneDICOMImageLoaderTag(e,t){let r=emv[e]?.(t);if(r)return r;switch(e){case emy.GENERAL_SERIES_MODULE:r={modality:t.Modality,seriesInstanceUID:t.SeriesInstanceUID,seriesNumber:LX(t.SeriesNumber),studyInstanceUID:t.StudyInstanceUID,seriesDescription:t.SeriesDescription,seriesDate:t.SeriesDate,seriesTime:t.SeriesTime};break;case emy.PATIENT_STUDY_MODULE:r={patientAge:t.PatientAge,patientSize:t.PatientSize,patientWeight:t.PatientWeight};break;case emy.PATIENT_DEMOGRAPHIC_MODULE:r={patientSex:t.PatientSex};break;case emy.IMAGE_PIXEL_MODULE:r={samplesPerPixel:LX(t.SamplesPerPixel),photometricInterpretation:t.PhotometricInterpretation,rows:LX(t.Rows),columns:LX(t.Columns),bitsAllocated:LX(t.BitsAllocated),bitsStored:LX(t.BitsStored),highBit:LX(t.HighBit),pixelRepresentation:LX(t.PixelRepresentation),planarConfiguration:LX(t.PlanarConfiguration),pixelAspectRatio:LX(t.PixelAspectRatio),smallestPixelValue:LX(t.SmallestPixelValue),largestPixelValue:LX(t.LargestPixelValue),redPaletteColorLookupTableDescriptor:LX(t.RedPaletteColorLookupTableDescriptor),greenPaletteColorLookupTableDescriptor:LX(t.GreenPaletteColorLookupTableDescriptor),bluePaletteColorLookupTableDescriptor:LX(t.BluePaletteColorLookupTableDescriptor),redPaletteColorLookupTableData:emc(t,"RedPaletteColorLookupTableData","RedPaletteColorLookupTableDescriptor"),greenPaletteColorLookupTableData:emc(t,"GreenPaletteColorLookupTableData","GreenPaletteColorLookupTableDescriptor"),bluePaletteColorLookupTableData:emc(t,"BluePaletteColorLookupTableData","BluePaletteColorLookupTableDescriptor")};break;case emy.VOI_LUT_MODULE:let{WindowCenter:n,WindowWidth:a,VOILUTFunction:i}=t;if(null==n||null==a)return;let o=Array.isArray(n)?n:[n],l=Array.isArray(a)?a:[a];r={windowCenter:LX(o),windowWidth:LX(l),voiLUTFunction:i};break;case emy.MODALITY_LUT_MODULE:let{RescaleIntercept:s,RescaleSlope:d}=t;if(null==s||null==d)return;r={rescaleIntercept:LX(t.RescaleIntercept),rescaleSlope:LX(t.RescaleSlope),rescaleType:t.RescaleType};break;case emy.SOP_COMMON_MODULE:r={sopClassUID:t.SOPClassUID,sopInstanceUID:t.SOPInstanceUID};break;case emy.PET_IMAGE_MODULE:r={frameReferenceTime:t.FrameReferenceTime,actualFrameDuration:t.ActualFrameDuration};break;case emy.PET_ISOTOPE_MODULE:let{RadiopharmaceuticalInformationSequence:u}=t;if(u){let{RadiopharmaceuticalStartTime:e,RadionuclideTotalDose:t,RadionuclideHalfLife:n}=Array.isArray(u)?u[0]:u;r={radiopharmaceuticalInfo:{radiopharmaceuticalStartTime:Fp().parseTM(e),radionuclideTotalDose:t,radionuclideHalfLife:n}}}break;case emy.OVERLAY_PLANE_MODULE:let c=[];for(let e=0;e<=30;e+=2){let r=`60${e.toString(16)}`;3===r.length&&(r=`600${e.toString(16)}`);let n=t[`${r}3000`];if(!n)continue;let a=`${r}0010`,i=`${r}0011`,o=`${r}0040`,l=`${r}0050`,s=`${r}0022`,d=`${r}1500`,u=`${r}1301`,h=`${r}1302`,p=`${r}1303`,m=t[l],f=0;f=t[a]instanceof Array?new Uint16Array(t[a][0])[0]:t[a];let g=0;g=t[i]instanceof Array?new Uint16Array(t[i][0])[0]:t[i];let y=0,v=0;if(1===m.length){let e=new Int16Array(m[0]);y=e[0],v=e[1]}else y=m[0],v=m[1];let b={rows:f,columns:g,type:t[o],x:y,y:v,pixelData:n,description:t[s],label:t[d],roiArea:t[u],roiMean:t[h],roiStandardDeviation:t[p]};c.push(b)}r={overlays:c};break;case emy.PATIENT_MODULE:r={patientName:t.PatientName,patientId:t.PatientID,patientSex:t.PatientSex,patientBirthDate:t.PatientBirthDate,issuerOfPatientId:t.IssuerOfPatientID,otherPatientIDsSequence:t.OtherPatientIDsSequence};break;case emy.GENERAL_IMAGE_MODULE:r={sopInstanceUID:t.SOPInstanceUID,instanceNumber:LX(t.InstanceNumber),lossyImageCompression:t.LossyImageCompression,lossyImageCompressionRatio:t.LossyImageCompressionRatio,lossyImageCompressionMethod:t.LossyImageCompressionMethod};break;case emy.GENERAL_STUDY_MODULE:r={studyDescription:t.StudyDescription,studyInstanceUID:t.StudyInstanceUID,studyDate:t.StudyDate,studyTime:t.StudyTime,accessionNumber:t.AccessionNumber,studyId:t.StudyID};break;case emy.CINE_MODULE:r={frameTime:t.FrameTime,numberOfFrames:t.NumberOfFrames?Number(t.NumberOfFrames):1};break;case emy.PET_SERIES_MODULE:r={correctedImage:t.CorrectedImage,units:t.Units,decayCorrection:t.DecayCorrection};break;case emy.CALIBRATION_MODULE:r={sequenceOfUltrasoundRegions:t.SequenceOfUltrasoundRegions?.map(e=>({regionSpatialFormat:e.RegionSpatialFormat,regionDataType:e.RegionDataType,regionFlags:e.RegionFlags,regionLocationMinX0:e.RegionLocationMinX0,regionLocationMinY0:e.RegionLocationMinY0,regionLocationMaxX1:e.RegionLocationMaxX1,regionLocationMaxY1:e.RegionLocationMaxY1,referencePixelX0:e.ReferencePixelX0,referencePixelY0:e.ReferencePixelY0,referencePixelPhysicalValueX:e.ReferencePixelPhysicalValueX,referencePixelPhysicalValueY:e.ReferencePixelPhysicalValueY,physicalUnitsXDirection:e.PhysicalUnitsXDirection,physicalUnitsYDirection:e.PhysicalUnitsYDirection,physicalDeltaX:e.PhysicalDeltaX,physicalDeltaY:e.PhysicalDeltaY}))};break;case"temporalPositionIdentifier":r={temporalPositionIdentifier:t.TemporalPositionIdentifier};break;default:return}return r}getUIDsFromImageID(e){if(e.startsWith("wadors:")){let t=e.split("/studies/")[1].split("/");return{StudyInstanceUID:t[0],SeriesInstanceUID:t[2],SOPInstanceUID:t[4],frameNumber:t[6]}}if(e.includes("?requestType=WADO")){let t=Lz.parse(e),r=t.frameNumber||t.frame;return{StudyInstanceUID:t.studyUID,SeriesInstanceUID:t.seriesUID,SOPInstanceUID:t.objectUID,frameNumber:r}}let t=L0(e),r=this.imageURIToUIDs.get(t);if(!r)return;let n=emf(e)?.framesString||r.frameNumber||"1";return{...r,frameNumber:n}}};Ll.setMetaDataProvider(emg);let emy={GENERAL_SERIES_MODULE:"generalSeriesModule",PATIENT_STUDY_MODULE:"patientStudyModule",IMAGE_PIXEL_MODULE:"imagePixelModule",VOI_LUT_MODULE:"voiLutModule",MODALITY_LUT_MODULE:"modalityLutModule",SOP_COMMON_MODULE:"sopCommonModule",PET_IMAGE_MODULE:"petImageModule",PET_ISOTOPE_MODULE:"petIsotopeModule",PET_SERIES_MODULE:"petSeriesModule",OVERLAY_PLANE_MODULE:"overlayPlaneModule",PATIENT_DEMOGRAPHIC_MODULE:"patientDemographicModule",PATIENT_MODULE:"patientModule",GENERAL_IMAGE_MODULE:"generalImageModule",GENERAL_STUDY_MODULE:"generalStudyModule",CINE_MODULE:"cineModule",CALIBRATION_MODULE:"calibrationModule"},emv={frameModule:e=>{let{frameNumber:t=1,numberOfFrames:r=1,SOPClassUID:n,SOPInstanceUID:a,SeriesInstanceUID:i,StudyInstanceUID:o}=e;return{frameNumber:t,numberOfFrames:r,sopClassUID:n,sopInstanceUID:a,seriesInstanceUID:i,studyInstanceUID:o}},imagePlaneModule:e=>{let t,r,n,a,i,{ImageOrientationPatient:o,ImagePositionPatient:l}=e,{PixelSpacing:s,type:d}=emm(e)||{},u=!1,c=!1,h=!1;s?([t,r]=s,ep4.get("calibratedPixelSpacing",e.imageId)||emp.add(e.imageId,{rowPixelSpacing:parseFloat(s[0]),columnPixelSpacing:parseFloat(s[1]),type:d})):(t=r=1,u=!0),o?(n=LX(o.slice(0,3)),a=LX(o.slice(3,6)),i=LX(o)):(n=[1,0,0],a=[0,1,0],i=[1,0,0,0,1,0],u=!0,c=!0,h=!0);let p=LX(l)||[0,0,0];return l||(u=!0),{frameOfReferenceUID:e.FrameOfReferenceUID,rows:LX(e.Rows),columns:LX(e.Columns),spacingBetweenSlices:LX(e.SpacingBetweenSlices),imageOrientationPatient:i,rowCosines:n,isDefaultValueSetForRowCosine:c,columnCosines:a,isDefaultValueSetForColumnCosine:h,imagePositionPatient:p,sliceThickness:LX(e.SliceThickness),sliceLocation:LX(e.SliceLocation),pixelSpacing:LX(s||1),rowPixelSpacing:t?LX(t):null,columnPixelSpacing:r?LX(r):null,usingDefaultValues:u}}},emb="instance";d(6642),{...Lq,defaults:{hotkeyBindings:Fd}};let emw={activeViewportId:null,layout:{numRows:0,numCols:0,layoutType:"grid"},isHangingProtocolLayout:!1,viewports:new Map(Object.entries({default:{viewportId:"default",displaySetInstanceUIDs:[],isReady:!1,viewportOptions:{viewportId:"default"},displaySetSelectors:[],displaySetOptions:[{}],x:0,y:0,width:100,height:100,viewportLabel:null}}))},emx=(0,tg.createContext)([emw,{}]);function emC({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,r)=>{switch(r.type){case"SET_ACTIVE_VIEWPORT_ID":return{...e,...{activeViewportId:r.payload}};case"SET_DISPLAYSETS_FOR_VIEWPORTS":{let{payload:n}=r,a=new Map(e.viewports);return n.forEach(r=>{let{viewportId:n,displaySetInstanceUIDs:i}=r;if(!n)throw Error("ViewportId is required to set display sets for viewport");let o=a.get(n);if(o?.viewportOptions?.initialImageOptions){let{useOnce:e}=o.viewportOptions.initialImageOptions;e&&(o.viewportOptions.initialImageOptions=null)}let l=NK()({},o?.viewportOptions,r?.viewportOptions),s=r?.displaySetOptions||[];!s.length&&(e.isHangingProtocolLayout&&s.push(...o.displaySetOptions||[]),s.length||s.push({})),r.viewportOptions||e.isHangingProtocolLayout||(l={viewportId:l.viewportId});let d={...o,displaySetInstanceUIDs:i,viewportOptions:l,displaySetOptions:s};l.presentationIds=t.getPresentationIds({viewport:d,viewports:a}),a.set(n,{...a.get(n),...d})}),{...e,viewports:a}}case"SET_LAYOUT":{let{numCols:n,numRows:a,layoutOptions:i,layoutType:o="grid",activeViewportId:l,findOrCreateViewport:s,isHangingProtocolLayout:d}=r.payload,u=i?.length,c=new Map,h={},p=l;for(let e=0;e<a;e++)for(let r=0;r<n;r++){let o,l,d,p,m=r+e*n,f=i[m];i&&i[m]?{x:o,y:l,width:d,height:p}=i[m]:(d=1/n,p=1/a,o=r*d,l=e*p);let g=Math.round(o*n),y=Math.round(l*a),v=f?.positionId||`${g}-${y}`;if(u&&m>=i.length)continue;let b=s(m,v,h);if(b){if(b.positionId=v,!b.viewportOptions?.viewportId){let e=LU().substring(0,8);b.viewportOptions=b.viewportOptions||{},b.viewportOptions.viewportId=`viewport-${e}`}if(b.viewportId=b.viewportOptions.viewportId,c.set(b.viewportId,b),Object.assign(b,{width:d,height:p,x:o,y:l}),b.isReady=!1,!b.viewportOptions.presentationIds){let e=t.getPresentationIds({viewport:b,viewports:c});b.viewportOptions.presentationIds=e}}}return p=p??((e,t)=>{let{activeViewportId:r}=e,n=e.viewports.get(r);if(!n)return t.values().next().value.viewportOptions.viewportId;let a=n.displaySetInstanceUIDs,i=n.viewportOptions.orientation,o=Array.from(Array.from(t.values()).filter(e=>e.displaySetInstanceUIDs?.length>0).values()).sort((e,t)=>{let r=e.viewportOptions.orientation===i,n=t.viewportOptions.orientation===i;if(r!==n)return n-r;let o=e.displaySetInstanceUIDs.some(e=>a.includes(e)),l=t.displaySetInstanceUIDs.some(e=>a.includes(e));return o!==l?l-o:0});return o?.length?o[0].viewportId:null})(e,c),{...e,activeViewportId:p,layout:{...e.layout,numCols:n,numRows:a,layoutType:o},viewports:c,isHangingProtocolLayout:d}}case"RESET":return emw;case"SET":return{...e,...r.payload};case"VIEWPORT_IS_READY":{let{viewportId:t,isReady:n}=r.payload,a=new Map(e.viewports),i=a.get(t);if(!i)return;return a.set(t,{...i,isReady:n}),{...e,viewports:a}}default:return r.payload}},emw),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_ACTIVE_VIEWPORT_ID",payload:e}),[n]),o=(0,tg.useCallback)(e=>n({type:"SET_DISPLAYSETS_FOR_VIEWPORTS",payload:e}),[n]),l=(0,tg.useCallback)((e,t)=>{n({type:"VIEWPORT_IS_READY",payload:{viewportId:e,isReady:t}})},[n,r]),s=(0,tg.useCallback)(()=>{let{viewports:e}=r,t=Array.from(e.values()).filter(e=>e.displaySetInstanceUIDs?.length>0);return 0!==t.length&&t.filter(e=>e.isReady).length===t.length},[r]),d=(0,tg.useCallback)(({layoutType:e,numRows:t,numCols:r,layoutOptions:a=[],activeViewportId:i,findOrCreateViewport:o,isHangingProtocolLayout:l})=>n({type:"SET_LAYOUT",payload:{layoutType:e,numRows:t,numCols:r,layoutOptions:a,activeViewportId:i,findOrCreateViewport:o,isHangingProtocolLayout:l}}),[n]),u=(0,tg.useCallback)(()=>n({type:"RESET",payload:{}}),[n]),c=(0,tg.useCallback)(e=>n({type:"SET",payload:e}),[n]),h=(0,tg.useCallback)(e=>{let{viewports:t}=r;return t.get(e)},[r]),p=(0,tg.useCallback)(()=>{let{layout:e,viewports:t}=r,{numRows:n,numCols:a}=e;return Math.min(t.size,a*n)},[r]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setActiveViewportId:i,setDisplaySetsForViewports:o,isReferenceViewable:()=>!1,setLayout:d,reset:u,onModeExit:u,set:c,getNumViewportPanes:p,setViewportIsReady:l,getViewportState:h,getGridViewportsReady:s})},[a,t,i,o,d,u,c,p,l,s,h]),tv().createElement(emx.Provider,{value:[r,{getState:a,setActiveViewportId:e=>t.setActiveViewportId(e),setDisplaySetsForViewport:e=>t.setDisplaySetsForViewports([e]),setDisplaySetsForViewports:e=>t.setDisplaySetsForViewports(e),isReferenceViewable:(e,r,n)=>t.isReferenceViewable(e,r,n),setLayout:e=>t.setLayout(e),getViewportState:e=>t.getViewportState(e),reset:()=>t.reset(),set:e=>t.setState(e),getNumViewportPanes:p,setViewportIsReady:l,getGridViewportsReady:s,getActiveViewportOptionByKey:e=>{let{viewports:t,activeViewportId:n}=r;return t.get(n)?.viewportOptions?.[e]},setViewportGridSizeChanged:e=>t.setViewportGridSizeChanged(e),publishViewportsReady:()=>t.publishViewportsReady(),getLayoutOptionsFromState:e=>t.getLayoutOptionsFromState(e),getDisplaySetsUIDsForViewport:e=>t.getDisplaySetsUIDsForViewport(e)}]},e)}emC.propTypes={children:MA().any,service:MA().instanceOf(L_).isRequired};let emk=()=>(0,tg.useContext)(emx);function emM(){return(emM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let emS=(0,tg.createContext)(null),emE=()=>{let e=(0,tg.useContext)(emS);if(!e)throw Error("useModal must be used within a ModalProvider");return e},emT={title:"",shouldCloseOnEsc:!0},emI=({children:e,modal:t,service:r=null})=>{let{t:n}=vQ("Modals"),[a,i]=(0,tg.useState)(emT),o=a.content,l=(0,tg.useCallback)(e=>{i(t=>({...t,...e}))},[]),s=(0,tg.useCallback)(()=>{i(emT)},[]);(0,tg.useEffect)(()=>{r&&r.setServiceImplementation({show:l,hide:s})},[s,r,l]);let{title:d}=a,u=r?.getCustomComponent();return tv().createElement(emS.Provider,{value:{show:l,hide:s}},o&&tv().createElement(u||t,emM({isOpen:!0,onClose:s,title:n(d)},a),tv().createElement(o,emM({},a.contentProps,{show:l,hide:s}))),e)};function emP(){return(emP=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}emS.Consumer;let emD=(e,t,r)=>{if(!e)return;let n=e.getBoundingClientRect();n.bottom>window.innerHeight&&(t.y=t.y-n.height),n.right>window.innerWidth&&(t.x=t.x-n.width),r(t)},em_=(0,tg.forwardRef)(({id:e,isOpen:t,title:r,content:n,contentProps:a,isDraggable:i,shouldCloseOnEsc:o=!1,shouldCloseOnOverlayClick:l=!1,showOverlay:s=!0,defaultPosition:d,onClose:u,unstyled:c,containerClassName:h},p)=>{let[m,f]=(0,tg.useState)(d),[g,y]=(0,tg.useState)(null);(0,tg.useImperativeHandle)(p,()=>({updatePosition:e=>{emD(g,e,f)}}),[]),(0,tg.useEffect)(()=>{f(d)},[d]);let[v,b]=(0,tg.useState)(d?"invisible":"visible"),w=(0,tg.useCallback)(e=>{e&&(y(e),emD(e,d,f),b("visible"))},[d]);return tv().createElement(aT,{open:t,modal:!1,onOpenChange:t=>{t||u(e)},isDraggable:i,shouldCloseOnEsc:o,shouldCloseOnOverlayClick:l,showOverlay:s},tv().createElement(aA,{ref:w,className:eN(c?"p-0":"",h,v),unstyled:c,style:{...m?{position:"fixed",left:`${m.x}px`,top:`${m.y}px`,transform:"translate(0, 0)",margin:0,animation:"none",transition:"none"}:{}}},!c&&tv().createElement(aO,null,r&&tv().createElement(aN,null,r)),tv().createElement(n,emP({},a,{hide:()=>u(e)}))))});em_.displayName="ManagedDialog";let emA=em_;function emO(){return(emO=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}let emR=(0,tg.createContext)(null),emN=()=>{let e=(0,tg.useContext)(emR);if(!e)throw Error("useDialog must be used within a DialogProvider");return e},emL=({children:e,dialog:t=emA,service:r=null})=>{let[n,a]=(0,tg.useState)([]),i=(0,tg.useRef)(new Map),o=(0,tg.useCallback)(e=>{let t=e.id;return a(r=>[...r,{...e,id:t}]),t},[]),l=(0,tg.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e)),i.current.delete(e)},[]),s=(0,tg.useCallback)(()=>{a([]),i.current.clear()},[]),d=(0,tg.useCallback)(()=>0===n.length,[n]),u=(0,tg.useCallback)((e,t)=>{let r=i.current.get(e);r&&r.updatePosition(t)},[]),c=(0,tg.useMemo)(()=>({show:o,hide:l,hideAll:s,isEmpty:d,updatePosition:u}),[o,l,s,d,u]);(0,tg.useEffect)(()=>{r&&r.setServiceImplementation(c)},[r,c]);let h=r?.getCustomComponent?.()||t;return tv().createElement(emR.Provider,{value:c},n.map(e=>tv().createElement(h,emO({key:e.id,ref:t=>{t&&i.current.set(e.id,t)},onClose:l,isOpen:!0},e))),e)},emV={message:void 0,type:"info",actions:void 0,onSubmit:()=>{console.log("btn value?")},onOutsideClick:()=>{console.warn("default: onOutsideClick")},onDismiss:()=>{console.log("dismiss? -1")},onKeyPress:()=>{console.log("key pressed?")}},emF=(0,tg.createContext)(null),{Provider:emB}=emF,emj=()=>(0,tg.useContext)(emF),emW=({children:e,service:t})=>{let[r,n]=(0,tg.useState)(emV),a=(0,tg.useCallback)(e=>n({...r,...e}),[r]),i=(0,tg.useCallback)(()=>n(emV),[]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({hide:i,show:a})},[i,t,a]),tv().createElement(emB,{value:[r,{show:a,hide:i}]},e)};emW.propTypes={children:MA().oneOfType([MA().arrayOf(MA().node),MA().node]).isRequired,service:MA().shape({setServiceImplementation:MA().func})};let emU=emW,emz={user:null,enabled:!1},emH=(0,tg.createContext)(emz);function emG({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,t)=>{switch(t.type){case"SET_USER":return{...e,...{user:t.payload.user}};case"RESET":return{user:null};case"SET":return{...e,...t.payload};default:return t.payload}},emz),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_USER",payload:{user:e}}),[n]),o=(0,tg.useCallback)(()=>r.user,[r]),l=(0,tg.useCallback)(()=>n({type:"RESET",payload:{}}),[n]),s=(0,tg.useCallback)(e=>n({type:"SET",payload:e}),[n]);(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setUser:i,getUser:o,reset:l,set:s})},[a,t,i,o,l,s]),t&&t.setServiceImplementation({getState:a,setUser:i,getUser:o,reset:l,set:s});let d={getState:a,setUser:i,getUser:o,getAuthorizationHeader:t.getAuthorizationHeader,handleUnauthenticated:t.handleUnauthenticated,reset:l,set:s};return tv().createElement(emH.Provider,{value:[r,d]},e)}emH.Consumer,emG.propTypes={children:MA().any,service:MA().shape({setServiceImplementation:MA().func}).isRequired};let emq=()=>(0,tg.useContext)(emH),em$=(0,tg.createContext)(null),emK=()=>(0,tg.useContext)(em$);function emY({StudyInstanceUIDs:e,children:t}){let r=(0,tg.useMemo)(()=>({StudyInstanceUIDs:e}),[e]);return tv().createElement(em$.Provider,{value:r},t)}function emZ(e){var t=null;return function(){return null==t&&(t=e()),t}}var emX=function(){var e;function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.entered=[],this.isNodeInDocument=e}return e=[{key:"enter",value:function(e){var t,r,n,a,i,o=this,l=this.entered.length;return this.entered=(t=this.entered.filter(function(t){return o.isNodeInDocument(t)&&(!t.contains||t.contains(e))}),r=[e],n=new Set,a=function(e){return n.add(e)},t.forEach(a),r.forEach(a),i=[],n.forEach(function(e){return i.push(e)}),i),0===l&&this.entered.length>0}},{key:"leave",value:function(e){var t,r=this.entered.length;return this.entered=(t=this.entered.filter(this.isNodeInDocument),t.filter(function(t){return t!==e})),r>0&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),emJ=emZ(function(){return/firefox/i.test(navigator.userAgent)}),emQ=emZ(function(){return!!window.safari}),em0=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");for(var n,a,i,o=e.length,l=[],s=0;s<o;s++)l.push(s);l.sort(function(t,r){return e[t]<e[r]?-1:1});for(var d=[],u=[],c=[],h=0;h<o-1;h++)n=e[h+1]-e[h],a=r[h+1]-r[h],u.push(n),d.push(a),c.push(a/n);for(var p=[c[0]],m=0;m<u.length-1;m++){var f=c[m],g=c[m+1];if(f*g<=0)p.push(0);else{n=u[m];var y=u[m+1],v=n+y;p.push(3*v/((v+y)/f+(v+n)/g))}}p.push(c[c.length-1]);for(var b=[],w=[],x=0;x<p.length-1;x++){i=c[x];var C=p[x],k=1/u[x],M=C+p[x+1]-i-i;b.push((i-C-M)*k),w.push(M*k*k)}this.xs=e,this.ys=r,this.c1s=p,this.c2s=b,this.c3s=w}return e=[{key:"interpolate",value:function(e){var t,r=this.xs,n=this.ys,a=this.c1s,i=this.c2s,o=this.c3s,l=r.length-1;if(e===r[l])return n[l];for(var s=0,d=o.length-1;s<=d;){var u=r[t=Math.floor(.5*(s+d))];if(u<e)s=t+1;else{if(!(u>e))return n[t];d=t-1}}var c=e-r[l=Math.max(0,d)],h=c*c;return n[l]+a[l]*c+i[l]*h+o[l]*c*h}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function em1(e){var t=1===e.nodeType?e:e.parentElement;if(!t)return null;var r=t.getBoundingClientRect(),n=r.top;return{x:r.left,y:n}}function em2(e){return{x:e.clientX,y:e.clientY}}var em5="__NATIVE_FILE__",em3="__NATIVE_URL__",em4="__NATIVE_TEXT__",em8="__NATIVE_HTML__";function em6(e,t,r){var n=t.reduce(function(t,r){return t||e.getData(r)},"");return null!=n?n:r}function em9(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var em7=(em9(exP={},em5,{exposeProperties:{files:function(e){return Array.prototype.slice.call(e.files)},items:function(e){return e.items}},matchesTypes:["Files"]}),em9(exP,em8,{exposeProperties:{html:function(e,t){return em6(e,t,"")}},matchesTypes:["Html","text/html"]}),em9(exP,em3,{exposeProperties:{urls:function(e,t){return em6(e,t,"").split("\n")}},matchesTypes:["Url","text/uri-list"]}),em9(exP,em4,{exposeProperties:{text:function(e,t){return em6(e,t,"")}},matchesTypes:["Text","text/plain"]}),exP),efe=function(){var e;function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.config=e,this.item={},this.initializeExposedProperties()}return e=[{key:"initializeExposedProperties",value:function(){var e=this;Object.keys(this.config.exposeProperties).forEach(function(t){Object.defineProperty(e.item,t,{configurable:!0,enumerable:!0,get:function(){return console.warn("Browser doesn't allow reading \"".concat(t,'" until the drop event.')),null}})})}},{key:"loadDataTransfer",value:function(e){var t=this;if(e){var r={};Object.keys(this.config.exposeProperties).forEach(function(n){r[n]={value:t.config.exposeProperties[n](e,t.config.matchesTypes),configurable:!0,enumerable:!0}}),Object.defineProperties(this.item,r)}}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function eft(e){if(!e)return null;var t=Array.prototype.slice.call(e.types||[]);return Object.keys(em7).filter(function(e){return em7[e].matchesTypes.some(function(e){return t.indexOf(e)>-1})})[0]||null}var efr=function(){var e;function t(e,r){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.ownerDocument=null,this.globalContext=e,this.optionsArgs=r}return e=[{key:"window",get:function(){return this.globalContext?this.globalContext:"u">typeof window?window:void 0}},{key:"document",get:function(){var e;return null!=(e=this.globalContext)&&e.document?this.globalContext.document:this.window?this.window.document:void 0}},{key:"rootElement",get:function(){var e;return(null==(e=this.optionsArgs)?void 0:e.rootElement)||this.window}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function efn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function efa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?efn(Object(r),!0).forEach(function(t){var n,a,i;n=e,a=t,i=r[t],a in n?Object.defineProperty(n,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[a]=i}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):efn(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var efi=function(){var e;function t(e,r,n){var a=this;if(!(this instanceof t))throw TypeError("Cannot call a class as a function");this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.sourceNodes=new Map,this.sourceNodeOptions=new Map,this.dragStartSourceIds=null,this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.asyncEndDragFrameId=null,this.dragOverTargetIds=null,this.getSourceClientOffset=function(e){var t=a.sourceNodes.get(e);return t&&em1(t)||null},this.endDragNativeItem=function(){a.isDraggingNativeItem()&&(a.actions.endDrag(),a.currentNativeHandle&&a.registry.removeSource(a.currentNativeHandle),a.currentNativeHandle=null,a.currentNativeSource=null)},this.isNodeInDocument=function(e){return!!(e&&a.document&&a.document.body&&document.body.contains(e))},this.endDragIfSourceWasRemovedFromDOM=function(){var e=a.currentDragSourceNode;!(null==e||a.isNodeInDocument(e))&&a.clearCurrentDragSourceNode()&&a.monitor.isDragging()&&a.actions.endDrag()},this.handleTopDragStartCapture=function(){a.clearCurrentDragSourceNode(),a.dragStartSourceIds=[]},this.handleTopDragStart=function(e){if(!e.defaultPrevented){var t=a.dragStartSourceIds;a.dragStartSourceIds=null;var r=em2(e);a.monitor.isDragging()&&a.actions.endDrag(),a.actions.beginDrag(t||[],{publishSource:!1,getSourceClientOffset:a.getSourceClientOffset,clientOffset:r});var n=e.dataTransfer,i=eft(n);if(a.monitor.isDragging()){if(n&&"function"==typeof n.setDragImage){var o=a.monitor.getSourceId(),l=a.sourceNodes.get(o),s=a.sourcePreviewNodes.get(o)||l;if(s){var d,u,c,h,p,m,f,g,y,v,b,w,x,C,k,M,S,E,T=a.getCurrentSourcePreviewNodeOptions(),I=T.anchorX,P=T.anchorY,D=T.offsetX,_=T.offsetY,A=(d={anchorX:I,anchorY:P},u={offsetX:D,offsetY:_},p=em1((h="IMG"===s.nodeName&&(emJ()||!(null!=(c=document.documentElement)&&c.contains(s))))?l:s),m={x:r.x-p.x,y:r.y-p.y},f=l.offsetWidth,g=l.offsetHeight,y=d.anchorX,v=d.anchorY,C=(b=h?s.width:f,w=h?s.height:g,emQ()&&h&&(w/=window.devicePixelRatio,b/=window.devicePixelRatio),x={dragPreviewWidth:b,dragPreviewHeight:w}).dragPreviewWidth,k=x.dragPreviewHeight,M=u.offsetX,S=u.offsetY,{x:0===M||M?M:new em0([0,.5,1],[m.x,m.x/f*C,m.x+C-f]).interpolate(y),y:0===S||S?S:(E=new em0([0,.5,1],[m.y,m.y/g*k,m.y+k-g]).interpolate(v),emQ()&&h&&(E+=(window.devicePixelRatio-1)*k),E)});n.setDragImage(s,A.x,A.y)}}try{null==n||n.setData("application/json",{})}catch(e){}a.setCurrentDragSourceNode(e.target),a.getCurrentSourcePreviewNodeOptions().captureDraggingState?a.actions.publishDragSource():setTimeout(function(){return a.actions.publishDragSource()},0)}else if(i)a.beginDragNativeItem(i);else{if(n&&!n.types&&(e.target&&!e.target.hasAttribute||!e.target.hasAttribute("draggable")))return;e.preventDefault()}}},this.handleTopDragEndCapture=function(){a.clearCurrentDragSourceNode()&&a.monitor.isDragging()&&a.actions.endDrag()},this.handleTopDragEnterCapture=function(e){if(a.dragEnterTargetIds=[],!(!a.enterLeaveCounter.enter(e.target)||a.monitor.isDragging())){var t=e.dataTransfer,r=eft(t);r&&a.beginDragNativeItem(r,t)}},this.handleTopDragEnter=function(e){var t=a.dragEnterTargetIds;a.dragEnterTargetIds=[],a.monitor.isDragging()&&(a.altKeyPressed=e.altKey,t.length>0&&a.actions.hover(t,{clientOffset:em2(e)}),t.some(function(e){return a.monitor.canDropOnTarget(e)})&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=a.getCurrentDropEffect())))},this.handleTopDragOverCapture=function(){a.dragOverTargetIds=[]},this.handleTopDragOver=function(e){var t=a.dragOverTargetIds;if(a.dragOverTargetIds=[],!a.monitor.isDragging()){e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none");return}a.altKeyPressed=e.altKey,a.actions.hover(t||[],{clientOffset:em2(e)}),(t||[]).some(function(e){return a.monitor.canDropOnTarget(e)})?(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=a.getCurrentDropEffect())):a.isDraggingNativeItem()?e.preventDefault():(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none"))},this.handleTopDragLeaveCapture=function(e){a.isDraggingNativeItem()&&e.preventDefault(),a.enterLeaveCounter.leave(e.target)&&a.isDraggingNativeItem()&&setTimeout(function(){return a.endDragNativeItem()},0)},this.handleTopDropCapture=function(e){if(a.dropTargetIds=[],a.isDraggingNativeItem()){var t;e.preventDefault(),null==(t=a.currentNativeSource)||t.loadDataTransfer(e.dataTransfer)}a.enterLeaveCounter.reset()},this.handleTopDrop=function(e){var t=a.dropTargetIds;a.dropTargetIds=[],a.actions.hover(t,{clientOffset:em2(e)}),a.actions.drop({dropEffect:a.getCurrentDropEffect()}),a.isDraggingNativeItem()?a.endDragNativeItem():a.monitor.isDragging()&&a.actions.endDrag()},this.handleSelectStart=function(e){var t=e.target;"function"!=typeof t.dragDrop||"INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop())},this.options=new efr(r,n),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.enterLeaveCounter=new emX(this.isNodeInDocument)}return e=[{key:"profile",value:function(){var e,t;return{sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,sourceNodeOptions:this.sourceNodeOptions.size,sourceNodes:this.sourceNodes.size,dragStartSourceIds:(null==(e=this.dragStartSourceIds)?void 0:e.length)||0,dropTargetIds:this.dropTargetIds.length,dragEnterTargetIds:this.dragEnterTargetIds.length,dragOverTargetIds:(null==(t=this.dragOverTargetIds)?void 0:t.length)||0}}},{key:"window",get:function(){return this.options.window}},{key:"document",get:function(){return this.options.document}},{key:"rootElement",get:function(){return this.options.rootElement}},{key:"setup",value:function(){var e=this.rootElement;if(void 0!==e){if(e.__isReactDndBackendSetUp)throw Error("Cannot have two HTML5 backends at the same time.");e.__isReactDndBackendSetUp=!0,this.addEventListeners(e)}}},{key:"teardown",value:function(){var e,t=this.rootElement;void 0!==t&&(t.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.rootElement),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&(null==(e=this.window)||e.cancelAnimationFrame(this.asyncEndDragFrameId)))}},{key:"connectDragPreview",value:function(e,t,r){var n=this;return this.sourcePreviewNodeOptions.set(e,r),this.sourcePreviewNodes.set(e,t),function(){n.sourcePreviewNodes.delete(e),n.sourcePreviewNodeOptions.delete(e)}}},{key:"connectDragSource",value:function(e,t,r){var n=this;this.sourceNodes.set(e,t),this.sourceNodeOptions.set(e,r);var a=function(t){return n.handleDragStart(t,e)},i=function(e){return n.handleSelectStart(e)};return t.setAttribute("draggable","true"),t.addEventListener("dragstart",a),t.addEventListener("selectstart",i),function(){n.sourceNodes.delete(e),n.sourceNodeOptions.delete(e),t.removeEventListener("dragstart",a),t.removeEventListener("selectstart",i),t.setAttribute("draggable","false")}}},{key:"connectDropTarget",value:function(e,t){var r=this,n=function(t){return r.handleDragEnter(t,e)},a=function(t){return r.handleDragOver(t,e)},i=function(t){return r.handleDrop(t,e)};return t.addEventListener("dragenter",n),t.addEventListener("dragover",a),t.addEventListener("drop",i),function(){t.removeEventListener("dragenter",n),t.removeEventListener("dragover",a),t.removeEventListener("drop",i)}}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),t=this.sourceNodeOptions.get(e);return efa({dropEffect:this.altKeyPressed?"copy":"move"},t||{})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId();return efa({anchorX:.5,anchorY:.5,captureDraggingState:!1},this.sourcePreviewNodeOptions.get(e)||{})}},{key:"isDraggingNativeItem",value:function(){var e=this.monitor.getItemType();return Object.keys(H).some(function(t){return H[t]===e})}},{key:"beginDragNativeItem",value:function(e,t){var r;this.clearCurrentDragSourceNode(),this.currentNativeSource=((r=new efe(em7[e])).loadDataTransfer(t),r),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"setCurrentDragSourceNode",value:function(e){var t=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.mouseMoveTimeoutTimer=setTimeout(function(){var e;return null==(e=t.rootElement)?void 0:e.addEventListener("mousemove",t.endDragIfSourceWasRemovedFromDOM,!0)},1e3)}},{key:"clearCurrentDragSourceNode",value:function(){if(this.currentDragSourceNode){if(this.currentDragSourceNode=null,this.rootElement){var e;null==(e=this.window)||e.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)}return this.mouseMoveTimeoutTimer=null,!0}return!1}},{key:"handleDragStart",value:function(e,t){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(t))}},{key:"handleDragEnter",value:function(e,t){this.dragEnterTargetIds.unshift(t)}},{key:"handleDragOver",value:function(e,t){null===this.dragOverTargetIds&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(t)}},{key:"handleDrop",value:function(e,t){this.dropTargetIds.unshift(t)}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}(),efo=function(e,t,r){return new efi(e,t,r)};let efl="u">typeof window&&!!("ontouchstart"in window||navigator.maxTouchPoints);function efs({children:e}){return console.log("using... touch backend?",efl),tv().createElement(Pq,{backend:efo,opts:{}},e)}efs.propTypes={children:MA().any};let efd=efs,efu={isCineEnabled:!1,cines:{}},efc={isPlaying:!1,frameRate:24},efh=(0,tg.createContext)(null);function efp({children:e,service:t}){let[r,n]=(0,tg.useReducer)((e,r)=>{switch(r.type){case"SET_CINE":{let{id:n,frameRate:a,isPlaying:i}=r.payload,o=e.cines,l=t.getSyncedViewports(n).map(({viewportId:e})=>e);return[n,...l].filter(e=>{let t=o[e]??{},r=t.frameRate!==(a??t.frameRate),n=t.isPlaying!==(i??t.isPlaying);return r||n}).forEach(e=>{let t=o[e];t||(t={id:n,...efc},o[e]=t),t.frameRate=a??t.frameRate,t.isPlaying=i??t.isPlaying}),{...e,...o}}case"SET_IS_CINE_ENABLED":return{...e,...{isCineEnabled:r.payload}};default:return r.payload}},efu),a=(0,tg.useCallback)(()=>r,[r]),i=(0,tg.useCallback)(e=>n({type:"SET_IS_CINE_ENABLED",payload:e}),[n]),o=(0,tg.useCallback)(({id:e,frameRate:t,isPlaying:r})=>n({type:"SET_CINE",payload:{id:e,frameRate:t,isPlaying:r}}),[n]);return(0,tg.useEffect)(()=>{t&&t.setServiceImplementation({getState:a,setIsCineEnabled:i,setCine:o})},[a,t,o,i]),tv().createElement(efh.Provider,{value:[r,{getState:a,setCine:o,setIsCineEnabled:e=>t.setIsCineEnabled(e),playClip:(e,r)=>t.playClip(e,r),stopClip:(e,r)=>t.stopClip(e,r),setViewportCineClosed:e=>t.setViewportCineClosed(e),clearViewportCineClosed:e=>t.clearViewportCineClosed(e),isViewportCineClosed:e=>t.isViewportCineClosed(e)}]},e)}let efm=()=>(0,tg.useContext)(efh),eff={tiny:16,small:20,medium:24,large:28},efg=(e="medium")=>"number"==typeof e?e:eff[e]||eff.medium,efy=(e="medium",t="")=>{let r=efg(e);return eN(`h-[${r}px] w-[${r}px]`,t)},efv=(0,tg.createContext)({size:"medium",getSizeValue:efg,getSizeClassName:efy,IconContainer:tR,containerProps:{variant:"ghost",size:"icon"},className:""}),efb=({size:e,children:t,IconContainer:r=tR,containerProps:n={}})=>{let a=efy(e),i={variant:"ghost",size:"icon",...n};return tv().createElement(efv.Provider,{value:{size:e,getSizeValue:efg,getSizeClassName:efy,IconContainer:r,containerProps:i,className:a}},t)},efw=()=>(0,tg.useContext)(efv),efx=[JSON.parse('{"name":"orchid","label":"Tonal: Orchid","cssVars":{"dark":{"highlight":"292 75% 62%","neutral":"270 18% 55%","neutral-light":"275 35% 75%","neutral-dark":"268 20% 24%","background":"270 45% 6%","foreground":"280 15% 96%","card":"268 40% 10%","card-foreground":"280 15% 96%","popover":"264 48% 13%","popover-foreground":"280 15% 96%","primary":"270 85% 65%","primary-foreground":"0 0% 98%","secondary":"268 45% 32%","secondary-foreground":"275 45% 88%","muted":"268 40% 10%","muted-foreground":"272 30% 60%","accent":"268 50% 20%","accent-foreground":"280 15% 96%","destructive":"0 65% 40%","destructive-foreground":"0 0% 98%","border":"268 30% 18%","input":"268 40% 25%","ring":"270 80% 60%"}}}'),JSON.parse('{"name":"arctic","label":"Tonal: Arctic","cssVars":{"dark":{"highlight":"173 81% 52%","neutral":"185 20% 55%","neutral-light":"180 40% 78%","neutral-dark":"190 18% 22%","background":"0 0% 0%","foreground":"180 10% 97%","card":"203 39% 9%","card-foreground":"180 10% 97%","popover":"202 54% 11%","popover-foreground":"180 10% 97%","primary":"175 85% 42%","primary-foreground":"185 50% 8%","secondary":"180 45% 28%","secondary-foreground":"175 50% 88%","muted":"203 39% 9%","muted-foreground":"185 30% 60%","accent":"185 55% 18%","accent-foreground":"180 10% 97%","destructive":"0 65% 35%","destructive-foreground":"0 0% 98%","border":"190 25% 17%","input":"223 40% 24%","ring":"175 85% 42%"}}}'),JSON.parse('{"name":"verdant","label":"Tonal: Verdant","cssVars":{"dark":{"highlight":"152 79% 52%","neutral":"150 15% 52%","neutral-light":"145 30% 72%","neutral-dark":"155 18% 24%","background":"155 40% 5%","foreground":"140 15% 95%","card":"152 35% 9%","card-foreground":"140 15% 95%","popover":"167 65% 10%","popover-foreground":"140 15% 95%","primary":"152 75% 40%","primary-foreground":"155 50% 8%","secondary":"150 40% 26%","secondary-foreground":"145 40% 85%","muted":"152 35% 9%","muted-foreground":"148 25% 55%","accent":"150 45% 16%","accent-foreground":"140 15% 95%","destructive":"0 65% 38%","destructive-foreground":"0 0% 98%","border":"150 25% 16%","input":"150 35% 22%","ring":"152 75% 40%"}}}'),JSON.parse('{"name":"midnight","label":"Neutral: Midnight","cssVars":{"dark":{"highlight":"188 90% 58%","neutral":"213 22% 59%","neutral-light":"214 69% 81%","neutral-dark":"214 16% 21%","background":"240 15% 3%","foreground":"0 0% 99%","card":"240 12% 8%","card-foreground":"0 0% 99%","popover":"225 45% 13%","popover-foreground":"0 0% 99%","primary":"210 100% 62%","primary-foreground":"0 0% 99%","secondary":"215 55% 32%","secondary-foreground":"200 60% 88%","muted":"240 12% 8%","muted-foreground":"210 40% 70%","accent":"220 65% 20%","accent-foreground":"0 0% 99%","destructive":"0 70% 35%","destructive-foreground":"0 0% 99%","border":"240 10% 18%","input":"225 35% 24%","ring":"210 100% 62%"}}}'),JSON.parse('{"name":"slate","label":"Neutral: Slate","cssVars":{"dark":{"highlight":"217 97% 52%","neutral":"0 0% 55%","neutral-light":"0 0% 75%","neutral-dark":"0 0% 25%","background":"0 0% 0%","foreground":"0 0% 96%","card":"0 0% 7%","card-foreground":"0 0% 96%","popover":"0 0% 9%","popover-foreground":"0 0% 96%","primary":"230 75% 55%","primary-foreground":"0 0% 98%","secondary":"0 0% 25%","secondary-foreground":"0 0% 85%","muted":"0 0% 7%","muted-foreground":"0 0% 60%","accent":"0 0% 18%","accent-foreground":"0 0% 96%","destructive":"0 65% 40%","destructive-foreground":"0 0% 98%","border":"0 0% 18%","input":"0 0% 22%","ring":"215 75% 55%"}}}'),JSON.parse('{"name":"deep","label":"Neutral: Deep","cssVars":{"dark":{"highlight":"184 53% 54%","neutral":"215 15% 50%","neutral-light":"210 20% 68%","neutral-dark":"220 18% 22%","background":"0 0% 0%","foreground":"215 15% 82%","card":"218 25% 5%","card-foreground":"215 15% 82%","popover":"215 30% 8%","popover-foreground":"215 15% 82%","primary":"200 43% 48%","primary-foreground":"210 20% 92%","secondary":"218 30% 18%","secondary-foreground":"215 25% 75%","muted":"214 28% 5%","muted-foreground":"215 18% 48%","accent":"216 32% 12%","accent-foreground":"215 15% 82%","destructive":"0 50% 35%","destructive-foreground":"0 15% 90%","border":"218 22% 10%","input":"216 28% 15%","ring":"215 45% 42%"}}}')],efC="ohif:theme",efk="ohif:custom-theme-css",efM="ohif-custom-theme",efS=new Set(["default","custom",...efx.map(e=>e.name)]);function efE(e){return!!e&&"custom"!==e&&efS.has(e)}let efT=tg.createContext(void 0);function efI(){let e=document.body.classList,t=[];e.forEach(e=>{e.startsWith("theme-")&&t.push(e)}),t.forEach(t=>e.remove(t))}function efP(){let e=document.getElementById(efM);e&&e.remove()}function efD({children:e}){let[t,r]=tg.useState(()=>{if("u"<typeof window)return"default";let e=new URLSearchParams(window.location.search).get("theme");if(efE(e))return e;let t=localStorage.getItem(efC);return t&&efS.has(t)&&("custom"!==t||localStorage.getItem(efk))?t:"default"}),[n,a]=tg.useState(()=>"u"<typeof window?"":localStorage.getItem(efk)||""),i=tg.useCallback(e=>{efS.has(e)&&(r(e),efI(),"default"!==e&&"custom"!==e&&document.body.classList.add(`theme-${e}`),"custom"!==e&&efP(),"default"===e?localStorage.removeItem(efC):localStorage.setItem(efC,e))},[]),o=tg.useCallback(e=>{let t,n,i,o=function(e){let t=[];for(let r of e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\*[\s\S]*$/,"").split(/[\n;]/)){let e=r.trim(),n=e.lastIndexOf("{");-1!==n&&(e=e.slice(n+1).trim());let a=e.indexOf(":");if(-1===a)continue;let i=e.slice(0,a).trim();if(!/^--[a-zA-Z0-9-]+$/.test(i))continue;let o=e.slice(a+1).replace(/[{}]/g,"").trim();o&&(o.includes("(")||o.includes(")")||t.push(` ${i}: ${o};`))}return t}(e);return 0!==o.length&&(t=o.join("\n"),n=`:root {
|
|
1838
1838
|
${t}
|
|
1839
1839
|
}
|
|
1840
1840
|
.dark {
|