@fnndsc/argus 0.47.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/assets/{Settings-zroG5v-C.js → Settings-Cgf4ntwX.js} +1 -1
  2. package/dist/assets/{Texture-BH3G5drd.js → Texture-stsTj2CO.js} +1 -1
  3. package/dist/assets/{addVolumesToViewports-CI-Z_EFJ.js → addVolumesToViewports-BGNXt9Rt.js} +1 -1
  4. package/dist/assets/{asciidoc-sSdJm0Es.js → asciidoc-DU7CeAcC.js} +1 -1
  5. package/dist/assets/{cornerstoneEngine-CceJDY0T.js → cornerstoneEngine-DNl1x7Jk.js} +2 -2
  6. package/dist/assets/{documentEngines-BHH8CEr5.js → documentEngines-Cg5l-yG3.js} +1 -1
  7. package/dist/assets/{field-mqO8YD7P.js → field-Bi_y6e1H.js} +1 -1
  8. package/dist/assets/{index-CxdNGKra.js → index-1hFWpa87.js} +1 -1
  9. package/dist/assets/index-2CG51jjM.css +1 -0
  10. package/dist/assets/{index-DmnxIj-o.js → index-5HEFFlyH.js} +1 -1
  11. package/dist/assets/{index-BpoNXxka.js → index-8Upksnci.js} +1 -1
  12. package/dist/assets/{index-mPREgKqk.js → index-B-_Js1Cl.js} +1 -1
  13. package/dist/assets/{index-CXo-sr5Z.js → index-B-fYJ2Ad.js} +1 -1
  14. package/dist/assets/{index-DkWC6Uoy.js → index-B0B4dGkd.js} +1 -1
  15. package/dist/assets/{index-goWzVI34.js → index-BMTSkZhc.js} +1 -1
  16. package/dist/assets/{index-HMFNHEp3.js → index-Bt1i9jwy.js} +1 -1
  17. package/dist/assets/{index-pmQVGTwq.js → index-C5S_Lp1b.js} +1 -1
  18. package/dist/assets/{index-CrkUUvtp.js → index-CnOKK4jd.js} +1 -1
  19. package/dist/assets/{index-Bt2YNJwH.js → index-CtnouYRB.js} +1 -1
  20. package/dist/assets/{index-BEIo56dr.js → index-DLVXeoZo.js} +1 -1
  21. package/dist/assets/{index-CAWJUBIm.js → index-KsS2gHZI.js} +1 -1
  22. package/dist/assets/{index-JZcFnVLl.js → index-wws88ys1.js} +287 -287
  23. package/dist/assets/{niivueEngine-Djxx4eAe.js → niivueEngine-Boy5_xDz.js} +2 -2
  24. package/dist/assets/{slabScene-ZcFdtKAq.js → slabScene-DlKg9-Br.js} +1 -1
  25. package/dist/assets/{syntax-6JMrtt_T.js → syntax-DpAgYXYh.js} +3 -3
  26. package/dist/build.json +1 -1
  27. package/dist/index.html +3 -2
  28. package/dist/notes.json +1 -1
  29. package/package.json +2 -2
  30. package/dist/assets/index-CK7NS1_v.css +0 -1
@@ -1 +1 @@
1
- import{v as H,B as U,t as E,E as M,g as L,a as W,b as S,u as G,s as $,V as q,c as Z,e as y,i as F,d as k,f as v,R as O,h as J,j as K,k as Y,l as Q,m as X,n as ee,o as te,p as ne,r as oe,q as se,w as ie,x as ae,y as re,z as de,A as ce,C as le,D as ge,F as me,G as he,I as ue,H as pe,J as N,S as xe,K as j,L as we,M as fe,N as Ie,O as Ve,P as Ce,Q as Pe,W as De,T as Re,U as Se,X as ve,Y as Ee,Z as Me,_ as _e,$ as Ge,a0 as ye,a1 as be,a2 as ze,a3 as Te,a4 as We,a5 as Fe,a6 as ke,a7 as Oe,a8 as Ae,a9 as Le,aa as Ne,ab as je}from"./Settings-zroG5v-C.js";import{ac as ft,ad as It,ae as Vt,af as Ct,ag as Pt,ah as Dt,ai as Rt,aj as St,ak as vt,al as Et,am as Mt,an as _t,ao as Gt,ap as yt,aq as bt,ar as zt,as as Tt,at as Wt,au as Ft,av as kt,aw as Ot,ax as At,ay as Lt,az as Nt,aA as jt,aB as Bt,aC as Ht,aD as Ut,aE as $t,aF as qt,aG as Zt,aH as Jt,aI as Kt,aJ as Yt,aK as Qt,aL as Xt,aM as en,aN as tn,aO as nn,aP as on,aQ as sn,aR as an,aS as rn,aT as dn,aU as cn,aV as ln,aW as gn,aX as mn,aY as hn,aZ as un,aO as pn,a_ as xn,a$ as wn,b0 as fn,b1 as In,b2 as Vn,b3 as Cn,b4 as Pn,b5 as Dn,b6 as Rn}from"./Settings-zroG5v-C.js";import{a as Be,T as He}from"./index-CxdNGKra.js";import{g as vn,b as En,c as Mn,d as _n,s as Gn,u as yn,v as bn,e as zn,f as Tn,h as Wn}from"./index-CxdNGKra.js";import"./cornerstoneEngine-CceJDY0T.js";import"./Texture-BH3G5drd.js";import{a as kn}from"./addVolumesToViewports-CI-Z_EFJ.js";import"./dcmjs.es-DfWkgqfk.js";import"./index-JZcFnVLl.js";import"./refusal-DOpm8I8L.js";import"./_commonjsHelpers-CE1G-McA.js";import"./__vite-browser-external-D7Ct-6yo.js";function ct(l,e,t){for(const n of t){const s=l.getViewport(n);if(!s)throw new Error(`Viewport with Id ${n} does not exist`);if(!s.addImages){console.warn(`Viewport with Id ${n} does not have addImages. Cannot add image segmentation to this viewport.`);return}}t.forEach(n=>{l.getViewport(n).addImages(e)})}class Ue{constructor(e,t=""){this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext=new Map,this.viewportSizes=new Map,this.contextMaxSizes=new Map;for(let n=0;n<e;n++){const s=H.newInstance(),o=document.createElement("div");s.setContainer(o),Be(s,t,n),this.contexts.push(s),this.offScreenCanvasContainers.push(o)}}getContextByIndex(e){return e>=0&&e<this.contexts.length?{context:this.contexts[e],container:this.offScreenCanvasContainers[e]}:null}assignViewportToContext(e,t){this.viewportToContext.set(e,t)}getContextIndexForViewport(e){return this.viewportToContext.get(e)}getAllContexts(){return this.contexts}getContextCount(){return this.contexts.length}updateViewportSize(e,t,n){const s=this.viewportToContext.get(e);if(s===void 0)return!1;this.viewportSizes.set(e,{width:t,height:n});const o=this.contextMaxSizes.get(s),i=this.calculateMaxSizeForContext(s);return this.contextMaxSizes.set(s,i),!o||o.width!==i.width||o.height!==i.height}getMaxSizeForContext(e){return this.contextMaxSizes.get(e)}calculateMaxSizeForContext(e){let t=0,n=0;return this.viewportToContext.forEach((s,o)=>{if(s===e){const i=this.viewportSizes.get(o);i&&(t=Math.max(t,i.width),n=Math.max(n,i.height))}}),{width:t,height:n}}removeViewport(e){const t=this.viewportToContext.get(e);if(this.viewportToContext.delete(e),this.viewportSizes.delete(e),t!==void 0){const n=this.calculateMaxSizeForContext(t);this.contextMaxSizes.set(t,n)}}destroy(){this.contexts.forEach(e=>{e.delete()}),this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext.clear(),this.viewportSizes.clear(),this.contextMaxSizes.clear()}}class A extends U{constructor(e){super(e),this._renderFlaggedViewports=()=>{this._throwIfDestroyed();const n=this._getViewportsAsArray().filter(o=>this._needsRender.has(o.id));if(n.length===0){this._animationFrameSet=!1,this._animationFrameHandle=null;return}const s=n.map(o=>{const i=this.renderViewportUsingCustomOrVtkPipeline(o);return o.setRendered(),this._needsRender.delete(o.id),i});this._animationFrameSet=!1,this._animationFrameHandle=null,s.forEach(o=>{o?.element&&E(o.element,M.IMAGE_RENDERED,o)})},this.useCPURendering||this.ensureContextPool()}ensureContextPool(){if(!this.contextPool){const{rendering:e}=L(),{webGlContextCount:t}=e;this.contextPool=new Ue(t,this.id)}return this.contextPool}enableVTKjsDrivenViewport(e){const s=this._getViewportsAsArray().filter(a=>W(a.type)===!1).map(a=>a.canvas),o=S(e.element);G(o),s.push(o);const i={...e,canvas:o};this.addVtkjsDrivenViewport(i)}addVtkjsDrivenViewport(e){const t=this.ensureContextPool(),{element:n,canvas:s,viewportId:o,type:i,defaultOptions:a}=e;n.tabIndex=-1,$(n);let r=0;if(i===q.STACK){const u=t.getAllContexts();r=this._viewports.size%u.length}t.assignViewportToContext(o,r),t.updateViewportSize(o,s.width,s.height);const d=t.getContextByIndex(r),{context:g,container:m}=d,p=t.getMaxSizeForContext(r);m.width=p.width,m.height=p.height,g.resize(),g.addRenderer({viewport:[0,0,1,1],id:o,background:a.background?a.background:[0,0,0]});const x={id:o,element:n,renderingEngineId:this.id,type:i,canvas:s,sx:0,sy:0,sWidth:s.width,sHeight:s.height,defaultOptions:a||{}},f=Z(e);if(!f)throw new Error(`Viewport Type ${i} is not supported`);const h=new f(x);h.requestedType=e.requestedType??i,this._viewports.set(o,h);const c={element:n,viewportId:o,renderingEngineId:this.id};h.suppressEvents||E(y,M.ELEMENT_ENABLED,c)}setVtkjsDrivenViewports(e){if(e.length){const t=e.map(n=>S(n.element));t.forEach(n=>G(n));for(let n=0;n<e.length;n++){const s=e[n],o=t[n],i={...s,canvas:o};this.addVtkjsDrivenViewport(i)}}}_getDisplayedSize(e){const t=window.devicePixelRatio||1,n=F(e)?e.element:S(e.element);return{displayedWidth:Math.round(n.clientWidth*t),displayedHeight:Math.round(n.clientHeight*t)}}_resizeVTKViewports(e,t=!0,n=!0){const s=[];for(const o of e){const i=S(o.element),{displayedWidth:a,displayedHeight:r}=this._getDisplayedSize(o);if(a===0||r===0)continue;const d=i.width,g=i.height;a===d&&r===g||s.push(o)}if(s.length!==0){for(const o of s){const{displayedWidth:i,displayedHeight:a}=this._getDisplayedSize(o),r=Math.max(v,i),d=Math.max(v,a);o.sWidth=r,o.sHeight=d}this._animationFrameSet||(e.length&&this._resize(e),e.forEach(o=>{if(o.resize?.(),F(o))return;const i=o.getCamera(),a=o.getRotation?.()??0,{flipHorizontal:r}=i,d=o;d.resetViewStateForResize?d.resetViewStateForResize():d.resetCameraForResize?.();const g=o.getDisplayArea();t&&(g?(r&&o.setCamera({flipHorizontal:r}),a&&o.setViewPresentation({rotation:a})):o.setCamera(i))}),n&&this.render())}}renderViewportUsingCustomOrVtkPipeline(e){if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");const t=this.contextPool.getContextIndexForViewport(e.id),n=this.contextPool.getContextByIndex(t),{context:s,container:o}=n;return this._renderViewportWithContext(e,s,o)}_renderViewportWithContext(e,t,n){if(e.canvas.clientWidth===0||e.canvas.clientHeight===0)return;if(e.sWidth<v||e.sHeight<v){console.warn("Viewport is too small",e.sWidth,e.sHeight);return}if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");t.getRenderer(e.id)||t.addRenderer({viewport:[0,0,1,1],id:e.id,background:e.defaultOptions?.background||[0,0,0]});const s=t.getRenderWindow(),o=s.getViews()[0],i=o.getRenderPasses(),a=this.getViewportRenderPasses(e.id);a&&o.setRenderPasses(a),this._resizeOffScreenCanvasForViewport(e,n,t);const r=t.getRenderer(e.id),d=this.contextPool.getContextIndexForViewport(e.id),g=this.contextPool.getMaxSizeForContext(d),m=e.sWidth,p=e.sHeight,x=Math.min(1,m/g.width),f=Math.min(1,p/g.height);r.setViewport(0,0,x,f);const h=t.getRenderers();h.forEach(({renderer:w,id:V})=>{const _=V.split("::")[0];w.setDraw(_===e.id)});const c=this.getWidgetRenderers();c.forEach((w,V)=>{V.setDraw(w===e.id)}),s.render(),h.forEach(({renderer:w})=>w.setDraw(!1)),c.forEach((w,V)=>{V.setDraw(!1)}),i&&o.setRenderPasses(i);const I=t.getOpenGLRenderWindow().get3DContext().canvas;return this._copyToOnscreenCanvas(e,I)}_renderViewportFromVtkCanvasToOnscreenCanvas(e,t){return this._copyToOnscreenCanvas(e,t)}_resizeOffScreenCanvasForViewport(e,t,n){const s=this.contextPool.getContextIndexForViewport(e.id);if(s===void 0||!this.contextPool.updateViewportSize(e.id,e.sWidth,e.sHeight))return;const i=this.contextPool.getMaxSizeForContext(s);t.width===i.width&&t.height===i.height||(t.width=i.width,t.height=i.height,n.resize())}_copyToOnscreenCanvas(e,t){const{element:n,canvas:s,id:o,renderingEngineId:i,suppressEvents:a}=e,r=e.sWidth,d=e.sHeight;G(s,{width:r,height:d});const g=s.getContext("2d"),m=this.contextPool.getContextIndexForViewport(o),x=this.contextPool.getMaxSizeForContext(m).height-d;return g.drawImage(t,0,x,r,d,0,0,r,d),{element:n,suppressEvents:a,viewportId:o,renderingEngineId:i,viewportStatus:e.viewportStatus}}_resize(e){const t=new Set;for(const n of e){n.sx=0,n.sy=0;const s=this.contextPool.getContextIndexForViewport(n.id);this.contextPool.updateViewportSize(n.id,n.sWidth,n.sHeight)&&t.add(s);const i=this.contextPool.getContextByIndex(s),{context:a}=i,r=a.getRenderer(n.id),d=this.contextPool.getMaxSizeForContext(s),g=Math.min(1,n.sWidth/d.width),m=Math.min(1,n.sHeight/d.height);r.setViewport(0,0,g,m)}t.forEach(n=>{const s=this.contextPool.getContextByIndex(n);if(s){const{context:o,container:i}=s,a=this.contextPool.getMaxSizeForContext(n);i.width=a.width,i.height=a.height,o.resize()}})}getWidgetRenderers(){const e=this._getViewportsAsArray(),t=new Map;return e.forEach(n=>{(n.getWidgets?n.getWidgets():[]).forEach(o=>{const i=o.getRenderer?o.getRenderer():null;i&&t.set(i,n.id)})}),t}getViewportRenderPasses(e){const t=this.getViewport(e);return t?.getRenderPasses?t.getRenderPasses():null}getRenderer(e){const t=this.contextPool?.getContextIndexForViewport(e);if(t===void 0||!this.contextPool)return;const n=this.contextPool.getContextByIndex(t);if(!n)return;const{context:s}=n;return s.getRenderer(e)}disableElement(e){const t=this.getViewport(e);if(t&&(super.disableElement(e),!W(t.type)&&this.contextPool)){const n=this.contextPool.getContextIndexForViewport(e);if(n!==void 0){const s=this.contextPool.getContextByIndex(n);if(s){const{context:o}=s;o.removeRenderer(e)}}this.contextPool.removeViewport(e)}}destroy(){super.destroy(),this.contextPool&&this.contextPool.destroy()}getOffscreenMultiRenderWindow(e){if(!this.contextPool)throw new Error("Offscreen multi render window is not available.");const t=this.contextPool.getContextIndexForViewport(e);if(t===void 0)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);const n=this.contextPool.getContextByIndex(t);if(!n)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);return n.context}}class lt{constructor(e){const n=L()?.rendering?.renderingEngineMode;switch(n){case O.Tiled:this._implementation=new He(e);break;case O.ContextPool:this._implementation=new A(e);break;default:console.warn(`RenderingEngine: Unknown rendering engine mode "${n}". Defaulting to Next rendering engine.`),this._implementation=new A(e);break}}get id(){return this._implementation.id}disableViewport(e){return this._implementation.disableElement(e)}enableElement(e){return this._implementation.enableElement(e)}disableElement(e){return this._implementation.disableElement(e)}setViewports(e){return this._implementation.setViewports(e)}resize(e=!0,t=!0){return this._implementation.resize(e,t)}getViewport(e){return this._implementation.getViewport(e)}getViewports(){return this._implementation.getViewports()}getRenderer(e){return this._implementation.getRenderer(e)}fillCanvasWithBackgroundColor(e,t){return this._implementation.fillCanvasWithBackgroundColor(e,t)}render(){return this._implementation.render()}renderViewports(e){return this._implementation.renderViewports(e)}renderViewport(e){return this._implementation.renderViewport(e)}destroy(){return this._implementation.destroy()}getOffscreenMultiRenderWindow(e){return this._implementation.getOffscreenMultiRenderWindow(e)}}const $e={adapter:K,getSnapshot:J},qe={adapter:Q,getSnapshot:Y},Ze={adapter:de,getSnapshot:re,getZoom:ae,getScale:ie,getPan:se,resolveICamera:oe,derivePresentation:ne,applyToRenderer:te,createImageSliceBasis:ee,createVolumeSliceBasis:X},Je={adapter:le,getSnapshot:ce},Ke={adapter:me,getSnapshot:ge},gt="5.8.2";class Ye extends he{constructor(e,t){super(e,t),this._dimensionGroupNumber=1,this._loadedDimensionGroups=new Set,this._getImageIdRequests=(o,i)=>this.getImageIdsRequests(o,i),this.getImageLoadRequests=o=>{const i=this.getImageIdsToLoad();return this._getImageIdRequests(i,o)};const{imageIdGroups:n,splittingTag:s}=e;this._splittingTag=s,this._imageIdGroups=n,this.numDimensionGroups=this._imageIdGroups.length}_getImageIdsToLoad(){const e=this._imageIdGroups,t=this._dimensionGroupNumber-1,n=[...e[t]];let s=t-1,o=t+1;for(;s>=0||o<e.length;)s>=0&&n.push(...e[s--]),o<e.length&&n.push(...e[o++]);return n}getImageIdsToLoad(){return this._getImageIdsToLoad()}get dimensionGroupNumber(){return this._dimensionGroupNumber}set dimensionGroupNumber(e){this._dimensionGroupNumber!==e&&(this._dimensionGroupNumber=e,this.voxelManager.setDimensionGroupNumber(e),this.invalidateVolume(!0),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED,{volumeId:this.volumeId,dimensionGroupNumber:e,numDimensionGroups:this.numDimensionGroups,imageIdGroupIndex:e-1,numImageIdGroups:this.numDimensionGroups,splittingTag:this.splittingTag}))}scroll(e){const t=this._dimensionGroupNumber+e;t<1?this.dimensionGroupNumber=this.numDimensionGroups:t>this.numDimensionGroups?this.dimensionGroupNumber=1:this.dimensionGroupNumber=t}getCurrentDimensionGroupImageIds(){return this._imageIdGroups[this._dimensionGroupNumber-1]}flatImageIdIndexToDimensionGroupNumber(e){return Math.floor(e/this._imageIdGroups[0].length)+1}flatImageIdIndexToImageIdIndex(e){return e%this._imageIdGroups[0].length}get splittingTag(){return this._splittingTag}isDimensionGroupLoaded(e){return this._loadedDimensionGroups.has(e)}markDimensionGroupAsLoaded(e){this._loadedDimensionGroups.add(e),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED,{volumeId:this.volumeId,dimensionGroupNumber:e})}checkDimensionGroupCompletion(e){const t=this.flatImageIdIndexToDimensionGroupNumber(e);this._imageIdGroups[t-1].every(o=>{const i=this.getImageIdIndex(o);return this.cachedFrames[i]===ue.FULL_RESOLUTION})&&!this.isDimensionGroupLoaded(t)&&this.markDimensionGroupAsLoaded(t)}}function Qe(l,e,t){return e.reduce((n,s)=>s.apply(n,t),l)}const Xe={name:"InPlaneDecimationModifier",apply(l,e){const[t=1,n=t]=e.options.ijkDecimation??[],s=Math.max(1,Math.floor(t)),o=Math.max(1,Math.floor(n));if(s===1&&o===1)return l;const[i,a]=l.dimensions,r=Math.max(1,Math.floor(i/s)),d=Math.max(1,Math.floor(a/o)),g=[r,d,l.dimensions[2]],m=[l.spacing[0]*s,l.spacing[1]*o,l.spacing[2]],p={...l.metadata,Columns:r,Rows:d,PixelSpacing:[m[1],m[0]]};return{...l,dimensions:g,spacing:m,metadata:p}}};function mt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume ");const[t=1,n=t,s=1]=e.ijkDecimation??[],o=Math.max(1,Math.floor(t)),i=n>1?Math.max(1,Math.floor(n)):o,a=Math.max(1,Math.floor(s)),r=o>1||i>1,d={ijkDecimation:[o,i,a]},g=[Xe];function m(c,u){return u===1?c:`${c}#decimation=${u}`}const p=Math.floor(e.imageIds.length/a),x=a>1&&e.imageIds.length<=p+1;if(a>1&&!x){const c=pe(e.imageIds,a),u=Array.isArray(c)&&c.length&&typeof c[0]=="number"?c.map(P=>e.imageIds[P]):c;e.imageIds=u}o>1&&(e.imageIds=e.imageIds.map(c=>m(c,o)));async function f(){const c=N(e.imageIds,l),u={volumeId:l,imageIds:e.imageIds,options:d},P=Qe(c,g,u),{dimensions:I,spacing:R,origin:w,direction:V,metadata:_,imageIds:b,dataType:B,numberOfComponents:z}=P,C=new xe({volumeId:l,metadata:_,dimensions:I,spacing:R,origin:w,direction:V,imageIds:b,dataType:B,numberOfComponents:z},{imageIds:b,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});if(r){const D=C.imageData;D&&(D.setDimensions(C.dimensions),D.setSpacing(C.spacing),D.modified());const T=j.createImageVolumeVoxelManager({dimensions:C.dimensions,imageIds:C.imageIds,numberOfComponents:z});C.voxelManager=T,D&&D.set({voxelManager:T})}return C}const h=f();return{promise:h,decache:()=>{h.then(c=>{c.destroy(),c=null})},cancel:()=>{h.then(c=>{c.cancelLoading()})}}}function ht(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a 4D streaming image volume");const{imageIds:t}=e,{splittingTag:n,imageIdGroups:s}=we(t),o=Math.floor(s.length/2),i=N(s[o],l),{metadata:a,dimensions:r,spacing:d,direction:g,sizeInBytes:m,origin:p,numberOfComponents:x,dataType:f}=i,h=g.slice(6,9),c=s.map(R=>fe(R,h).sortedImageIds),u=c.flat(),P=j.createScalarDynamicVolumeVoxelManager({dimensions:r,imageIdGroups:c,dimensionGroupNumber:1,numberOfComponents:x});let I=new Ye({volumeId:l,metadata:a,dimensions:r,spacing:d,origin:p,direction:g,sizeInBytes:m,imageIds:u,imageIdGroups:c,splittingTag:n,voxelManager:P,numberOfComponents:x,dataType:f},{imageIds:u,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});return{promise:Promise.resolve(I),decache:()=>{I.destroy(),I=null},cancel:()=>{I.cancelLoading()}}}const ut={GenericViewport:je,DefaultRenderPathResolver:Ne,defaultRenderPathResolver:Le,ECGGenericViewport:Ae,createDefaultECGRenderPaths:Oe,createECGRenderPathResolver:ke,DefaultECGDataProvider:Fe,ecgProjection:$e,VideoGenericViewport:We,createDefaultVideoRenderPaths:Te,createVideoRenderPathResolver:ze,DefaultVideoDataProvider:be,videoProjection:qe,PlanarViewport:ye,createDefaultPlanarRenderPaths:Ge,createPlanarRenderPathResolver:_e,DefaultPlanarDataProvider:Me,planarProjection:Ze,VolumeViewport3D:Ee,createDefaultVolume3DRenderPaths:ve,createVolume3DRenderPathResolver:Se,DefaultVolume3DDataProvider:Re,volume3DProjection:Je,WSIGenericViewport:De,createDefaultWSIRenderPaths:Pe,createWSIRenderPathResolver:Ce,DefaultWSIDataProvider:Ve,wsiProjection:Ke},pt=Ie;export{ft as ActorRenderMode,U as BaseRenderingEngine,It as BaseVolumeViewport,Vt as CONSTANTS,A as ContextPoolRenderingEngine,Fe as DefaultECGDataProvider,Me as DefaultPlanarDataProvider,Ne as DefaultRenderPathResolver,be as DefaultVideoDataProvider,Re as DefaultVolume3DDataProvider,Ve as DefaultWSIDataProvider,Ae as ECGGenericViewport,Ct as ECGViewport,Pt as EPSILON,M as EVENTS,Dt as Enums,je as GenericViewport,Ee as GenericVolumeViewport3D,Rt as ImageVolume,pt as LegacyVolumeViewport3D,ye as PlanarViewport,St as ProgressiveRetrieveImages,vt as RenderBackends,lt as RenderingEngine,Et as Settings,Mt as StackViewport,Ye as StreamingDynamicImageVolume,xe as StreamingImageVolume,_t as Surface,He as TiledRenderingEngine,We as VideoGenericViewport,Gt as VideoViewport,yt as Viewport,bt as ViewportProjectionService,zt as VolumeViewport,Ie as VolumeViewport3D,De as WSIGenericViewport,Tt as WSIViewport,ct as addImageSlicesToViewports,kn as addVolumesToViewports,Wt as cache,Ft as canRenderFloatTextures,kt as convertColorArrayToRgbString,Ot as convertMapperToNotSharedMapper,At as cornerstoneMeshLoader,ht as cornerstoneStreamingDynamicImageVolumeLoader,Lt as cornerstoneStreamingImageVolumeLoader,Nt as createCanvas,Oe as createDefaultECGRenderPaths,Ge as createDefaultPlanarRenderPaths,Te as createDefaultVideoRenderPaths,ve as createDefaultVolume3DRenderPaths,Pe as createDefaultWSIRenderPaths,ke as createECGRenderPathResolver,_e as createPlanarRenderPathResolver,ze as createVideoRenderPathResolver,jt as createViewportElement,Se as createVolume3DRenderPathResolver,Bt as createVolumeActor,Ht as createVolumeMapper,Ce as createWSIRenderPathResolver,mt as decimatedVolumeLoader,Le as defaultRenderPathResolver,Ut as detectRenderingCapabilities,$e as ecgProjection,y as eventTarget,$t as geometryLoader,L as getConfiguration,qt as getEffectiveRenderBackend,vn as getEnabledElement,En as getEnabledElementByIds,Mn as getEnabledElementByViewportId,_n as getEnabledElements,S as getOrCreateCanvas,Zt as getProjectionScaleMatrix,Jt as getRenderBackend,Kt as getRenderingCapabilities,Yt as getRenderingEngine,Qt as getRenderingEngines,Xt as getShouldUseCPURendering,en as getUseGenericViewport,tn as getWebWorkerManager,nn as imageLoadPoolManager,on as imageLoader,sn as imageRetrievalPoolManager,an as init,rn as isCornerstoneInitialized,dn as isRegisteredRenderBackend,cn as isRegisteredViewportType,ln as metaData,gn as peerImport,Ze as planarProjection,mn as registerImageLoader,hn as registerRenderBackend,un as registerViewportType,ut as renderingEngineExportsV2,pn as requestPoolManager,xn as resetInitialization,wn as resetUseCPURendering,fn as setCanvasCreator,In as setConfiguration,Vn as setPreferSizeOverAccuracy,Cn as setRenderBackend,Pn as setUseCPURendering,Gn as setVolumesForViewports,E as triggerEvent,G as updateCanvasSizeAndAspectRatio,yn as utilities,gt as version,qe as videoProjection,bn as viewportHasCanvasWorldTransform,zn as viewportHasFrameOfReferenceUID,Tn as viewportHasPan,Wn as viewportHasZoom,Dn as viewportProjection,Je as volume3DProjection,Rn as volumeLoader,Ke as wsiProjection};
1
+ import{v as H,B as U,t as E,E as M,g as L,a as W,b as S,u as G,s as $,V as q,c as Z,e as y,i as F,d as k,f as v,R as O,h as J,j as K,k as Y,l as Q,m as X,n as ee,o as te,p as ne,r as oe,q as se,w as ie,x as ae,y as re,z as de,A as ce,C as le,D as ge,F as me,G as he,I as ue,H as pe,J as N,S as xe,K as j,L as we,M as fe,N as Ie,O as Ve,P as Ce,Q as Pe,W as De,T as Re,U as Se,X as ve,Y as Ee,Z as Me,_ as _e,$ as Ge,a0 as ye,a1 as be,a2 as ze,a3 as Te,a4 as We,a5 as Fe,a6 as ke,a7 as Oe,a8 as Ae,a9 as Le,aa as Ne,ab as je}from"./Settings-Cgf4ntwX.js";import{ac as ft,ad as It,ae as Vt,af as Ct,ag as Pt,ah as Dt,ai as Rt,aj as St,ak as vt,al as Et,am as Mt,an as _t,ao as Gt,ap as yt,aq as bt,ar as zt,as as Tt,at as Wt,au as Ft,av as kt,aw as Ot,ax as At,ay as Lt,az as Nt,aA as jt,aB as Bt,aC as Ht,aD as Ut,aE as $t,aF as qt,aG as Zt,aH as Jt,aI as Kt,aJ as Yt,aK as Qt,aL as Xt,aM as en,aN as tn,aO as nn,aP as on,aQ as sn,aR as an,aS as rn,aT as dn,aU as cn,aV as ln,aW as gn,aX as mn,aY as hn,aZ as un,aO as pn,a_ as xn,a$ as wn,b0 as fn,b1 as In,b2 as Vn,b3 as Cn,b4 as Pn,b5 as Dn,b6 as Rn}from"./Settings-Cgf4ntwX.js";import{a as Be,T as He}from"./index-1hFWpa87.js";import{g as vn,b as En,c as Mn,d as _n,s as Gn,u as yn,v as bn,e as zn,f as Tn,h as Wn}from"./index-1hFWpa87.js";import"./cornerstoneEngine-DNl1x7Jk.js";import"./Texture-stsTj2CO.js";import{a as kn}from"./addVolumesToViewports-BGNXt9Rt.js";import"./dcmjs.es-DfWkgqfk.js";import"./index-wws88ys1.js";import"./refusal-DOpm8I8L.js";import"./_commonjsHelpers-CE1G-McA.js";import"./__vite-browser-external-D7Ct-6yo.js";function ct(l,e,t){for(const n of t){const s=l.getViewport(n);if(!s)throw new Error(`Viewport with Id ${n} does not exist`);if(!s.addImages){console.warn(`Viewport with Id ${n} does not have addImages. Cannot add image segmentation to this viewport.`);return}}t.forEach(n=>{l.getViewport(n).addImages(e)})}class Ue{constructor(e,t=""){this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext=new Map,this.viewportSizes=new Map,this.contextMaxSizes=new Map;for(let n=0;n<e;n++){const s=H.newInstance(),o=document.createElement("div");s.setContainer(o),Be(s,t,n),this.contexts.push(s),this.offScreenCanvasContainers.push(o)}}getContextByIndex(e){return e>=0&&e<this.contexts.length?{context:this.contexts[e],container:this.offScreenCanvasContainers[e]}:null}assignViewportToContext(e,t){this.viewportToContext.set(e,t)}getContextIndexForViewport(e){return this.viewportToContext.get(e)}getAllContexts(){return this.contexts}getContextCount(){return this.contexts.length}updateViewportSize(e,t,n){const s=this.viewportToContext.get(e);if(s===void 0)return!1;this.viewportSizes.set(e,{width:t,height:n});const o=this.contextMaxSizes.get(s),i=this.calculateMaxSizeForContext(s);return this.contextMaxSizes.set(s,i),!o||o.width!==i.width||o.height!==i.height}getMaxSizeForContext(e){return this.contextMaxSizes.get(e)}calculateMaxSizeForContext(e){let t=0,n=0;return this.viewportToContext.forEach((s,o)=>{if(s===e){const i=this.viewportSizes.get(o);i&&(t=Math.max(t,i.width),n=Math.max(n,i.height))}}),{width:t,height:n}}removeViewport(e){const t=this.viewportToContext.get(e);if(this.viewportToContext.delete(e),this.viewportSizes.delete(e),t!==void 0){const n=this.calculateMaxSizeForContext(t);this.contextMaxSizes.set(t,n)}}destroy(){this.contexts.forEach(e=>{e.delete()}),this.contexts=[],this.offScreenCanvasContainers=[],this.viewportToContext.clear(),this.viewportSizes.clear(),this.contextMaxSizes.clear()}}class A extends U{constructor(e){super(e),this._renderFlaggedViewports=()=>{this._throwIfDestroyed();const n=this._getViewportsAsArray().filter(o=>this._needsRender.has(o.id));if(n.length===0){this._animationFrameSet=!1,this._animationFrameHandle=null;return}const s=n.map(o=>{const i=this.renderViewportUsingCustomOrVtkPipeline(o);return o.setRendered(),this._needsRender.delete(o.id),i});this._animationFrameSet=!1,this._animationFrameHandle=null,s.forEach(o=>{o?.element&&E(o.element,M.IMAGE_RENDERED,o)})},this.useCPURendering||this.ensureContextPool()}ensureContextPool(){if(!this.contextPool){const{rendering:e}=L(),{webGlContextCount:t}=e;this.contextPool=new Ue(t,this.id)}return this.contextPool}enableVTKjsDrivenViewport(e){const s=this._getViewportsAsArray().filter(a=>W(a.type)===!1).map(a=>a.canvas),o=S(e.element);G(o),s.push(o);const i={...e,canvas:o};this.addVtkjsDrivenViewport(i)}addVtkjsDrivenViewport(e){const t=this.ensureContextPool(),{element:n,canvas:s,viewportId:o,type:i,defaultOptions:a}=e;n.tabIndex=-1,$(n);let r=0;if(i===q.STACK){const u=t.getAllContexts();r=this._viewports.size%u.length}t.assignViewportToContext(o,r),t.updateViewportSize(o,s.width,s.height);const d=t.getContextByIndex(r),{context:g,container:m}=d,p=t.getMaxSizeForContext(r);m.width=p.width,m.height=p.height,g.resize(),g.addRenderer({viewport:[0,0,1,1],id:o,background:a.background?a.background:[0,0,0]});const x={id:o,element:n,renderingEngineId:this.id,type:i,canvas:s,sx:0,sy:0,sWidth:s.width,sHeight:s.height,defaultOptions:a||{}},f=Z(e);if(!f)throw new Error(`Viewport Type ${i} is not supported`);const h=new f(x);h.requestedType=e.requestedType??i,this._viewports.set(o,h);const c={element:n,viewportId:o,renderingEngineId:this.id};h.suppressEvents||E(y,M.ELEMENT_ENABLED,c)}setVtkjsDrivenViewports(e){if(e.length){const t=e.map(n=>S(n.element));t.forEach(n=>G(n));for(let n=0;n<e.length;n++){const s=e[n],o=t[n],i={...s,canvas:o};this.addVtkjsDrivenViewport(i)}}}_getDisplayedSize(e){const t=window.devicePixelRatio||1,n=F(e)?e.element:S(e.element);return{displayedWidth:Math.round(n.clientWidth*t),displayedHeight:Math.round(n.clientHeight*t)}}_resizeVTKViewports(e,t=!0,n=!0){const s=[];for(const o of e){const i=S(o.element),{displayedWidth:a,displayedHeight:r}=this._getDisplayedSize(o);if(a===0||r===0)continue;const d=i.width,g=i.height;a===d&&r===g||s.push(o)}if(s.length!==0){for(const o of s){const{displayedWidth:i,displayedHeight:a}=this._getDisplayedSize(o),r=Math.max(v,i),d=Math.max(v,a);o.sWidth=r,o.sHeight=d}this._animationFrameSet||(e.length&&this._resize(e),e.forEach(o=>{if(o.resize?.(),F(o))return;const i=o.getCamera(),a=o.getRotation?.()??0,{flipHorizontal:r}=i,d=o;d.resetViewStateForResize?d.resetViewStateForResize():d.resetCameraForResize?.();const g=o.getDisplayArea();t&&(g?(r&&o.setCamera({flipHorizontal:r}),a&&o.setViewPresentation({rotation:a})):o.setCamera(i))}),n&&this.render())}}renderViewportUsingCustomOrVtkPipeline(e){if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");const t=this.contextPool.getContextIndexForViewport(e.id),n=this.contextPool.getContextByIndex(t),{context:s,container:o}=n;return this._renderViewportWithContext(e,s,o)}_renderViewportWithContext(e,t,n){if(e.canvas.clientWidth===0||e.canvas.clientHeight===0)return;if(e.sWidth<v||e.sHeight<v){console.warn("Viewport is too small",e.sWidth,e.sHeight);return}if(k(e))return e.customRenderViewportToCanvas();if(!this.contextPool)throw new Error("GPU not available, and using a viewport with no custom render pipeline.");t.getRenderer(e.id)||t.addRenderer({viewport:[0,0,1,1],id:e.id,background:e.defaultOptions?.background||[0,0,0]});const s=t.getRenderWindow(),o=s.getViews()[0],i=o.getRenderPasses(),a=this.getViewportRenderPasses(e.id);a&&o.setRenderPasses(a),this._resizeOffScreenCanvasForViewport(e,n,t);const r=t.getRenderer(e.id),d=this.contextPool.getContextIndexForViewport(e.id),g=this.contextPool.getMaxSizeForContext(d),m=e.sWidth,p=e.sHeight,x=Math.min(1,m/g.width),f=Math.min(1,p/g.height);r.setViewport(0,0,x,f);const h=t.getRenderers();h.forEach(({renderer:w,id:V})=>{const _=V.split("::")[0];w.setDraw(_===e.id)});const c=this.getWidgetRenderers();c.forEach((w,V)=>{V.setDraw(w===e.id)}),s.render(),h.forEach(({renderer:w})=>w.setDraw(!1)),c.forEach((w,V)=>{V.setDraw(!1)}),i&&o.setRenderPasses(i);const I=t.getOpenGLRenderWindow().get3DContext().canvas;return this._copyToOnscreenCanvas(e,I)}_renderViewportFromVtkCanvasToOnscreenCanvas(e,t){return this._copyToOnscreenCanvas(e,t)}_resizeOffScreenCanvasForViewport(e,t,n){const s=this.contextPool.getContextIndexForViewport(e.id);if(s===void 0||!this.contextPool.updateViewportSize(e.id,e.sWidth,e.sHeight))return;const i=this.contextPool.getMaxSizeForContext(s);t.width===i.width&&t.height===i.height||(t.width=i.width,t.height=i.height,n.resize())}_copyToOnscreenCanvas(e,t){const{element:n,canvas:s,id:o,renderingEngineId:i,suppressEvents:a}=e,r=e.sWidth,d=e.sHeight;G(s,{width:r,height:d});const g=s.getContext("2d"),m=this.contextPool.getContextIndexForViewport(o),x=this.contextPool.getMaxSizeForContext(m).height-d;return g.drawImage(t,0,x,r,d,0,0,r,d),{element:n,suppressEvents:a,viewportId:o,renderingEngineId:i,viewportStatus:e.viewportStatus}}_resize(e){const t=new Set;for(const n of e){n.sx=0,n.sy=0;const s=this.contextPool.getContextIndexForViewport(n.id);this.contextPool.updateViewportSize(n.id,n.sWidth,n.sHeight)&&t.add(s);const i=this.contextPool.getContextByIndex(s),{context:a}=i,r=a.getRenderer(n.id),d=this.contextPool.getMaxSizeForContext(s),g=Math.min(1,n.sWidth/d.width),m=Math.min(1,n.sHeight/d.height);r.setViewport(0,0,g,m)}t.forEach(n=>{const s=this.contextPool.getContextByIndex(n);if(s){const{context:o,container:i}=s,a=this.contextPool.getMaxSizeForContext(n);i.width=a.width,i.height=a.height,o.resize()}})}getWidgetRenderers(){const e=this._getViewportsAsArray(),t=new Map;return e.forEach(n=>{(n.getWidgets?n.getWidgets():[]).forEach(o=>{const i=o.getRenderer?o.getRenderer():null;i&&t.set(i,n.id)})}),t}getViewportRenderPasses(e){const t=this.getViewport(e);return t?.getRenderPasses?t.getRenderPasses():null}getRenderer(e){const t=this.contextPool?.getContextIndexForViewport(e);if(t===void 0||!this.contextPool)return;const n=this.contextPool.getContextByIndex(t);if(!n)return;const{context:s}=n;return s.getRenderer(e)}disableElement(e){const t=this.getViewport(e);if(t&&(super.disableElement(e),!W(t.type)&&this.contextPool)){const n=this.contextPool.getContextIndexForViewport(e);if(n!==void 0){const s=this.contextPool.getContextByIndex(n);if(s){const{context:o}=s;o.removeRenderer(e)}}this.contextPool.removeViewport(e)}}destroy(){super.destroy(),this.contextPool&&this.contextPool.destroy()}getOffscreenMultiRenderWindow(e){if(!this.contextPool)throw new Error("Offscreen multi render window is not available.");const t=this.contextPool.getContextIndexForViewport(e);if(t===void 0)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);const n=this.contextPool.getContextByIndex(t);if(!n)throw new Error(`Offscreen multi render window is not available for viewport ${e}.`);return n.context}}class lt{constructor(e){const n=L()?.rendering?.renderingEngineMode;switch(n){case O.Tiled:this._implementation=new He(e);break;case O.ContextPool:this._implementation=new A(e);break;default:console.warn(`RenderingEngine: Unknown rendering engine mode "${n}". Defaulting to Next rendering engine.`),this._implementation=new A(e);break}}get id(){return this._implementation.id}disableViewport(e){return this._implementation.disableElement(e)}enableElement(e){return this._implementation.enableElement(e)}disableElement(e){return this._implementation.disableElement(e)}setViewports(e){return this._implementation.setViewports(e)}resize(e=!0,t=!0){return this._implementation.resize(e,t)}getViewport(e){return this._implementation.getViewport(e)}getViewports(){return this._implementation.getViewports()}getRenderer(e){return this._implementation.getRenderer(e)}fillCanvasWithBackgroundColor(e,t){return this._implementation.fillCanvasWithBackgroundColor(e,t)}render(){return this._implementation.render()}renderViewports(e){return this._implementation.renderViewports(e)}renderViewport(e){return this._implementation.renderViewport(e)}destroy(){return this._implementation.destroy()}getOffscreenMultiRenderWindow(e){return this._implementation.getOffscreenMultiRenderWindow(e)}}const $e={adapter:K,getSnapshot:J},qe={adapter:Q,getSnapshot:Y},Ze={adapter:de,getSnapshot:re,getZoom:ae,getScale:ie,getPan:se,resolveICamera:oe,derivePresentation:ne,applyToRenderer:te,createImageSliceBasis:ee,createVolumeSliceBasis:X},Je={adapter:le,getSnapshot:ce},Ke={adapter:me,getSnapshot:ge},gt="5.8.2";class Ye extends he{constructor(e,t){super(e,t),this._dimensionGroupNumber=1,this._loadedDimensionGroups=new Set,this._getImageIdRequests=(o,i)=>this.getImageIdsRequests(o,i),this.getImageLoadRequests=o=>{const i=this.getImageIdsToLoad();return this._getImageIdRequests(i,o)};const{imageIdGroups:n,splittingTag:s}=e;this._splittingTag=s,this._imageIdGroups=n,this.numDimensionGroups=this._imageIdGroups.length}_getImageIdsToLoad(){const e=this._imageIdGroups,t=this._dimensionGroupNumber-1,n=[...e[t]];let s=t-1,o=t+1;for(;s>=0||o<e.length;)s>=0&&n.push(...e[s--]),o<e.length&&n.push(...e[o++]);return n}getImageIdsToLoad(){return this._getImageIdsToLoad()}get dimensionGroupNumber(){return this._dimensionGroupNumber}set dimensionGroupNumber(e){this._dimensionGroupNumber!==e&&(this._dimensionGroupNumber=e,this.voxelManager.setDimensionGroupNumber(e),this.invalidateVolume(!0),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_CHANGED,{volumeId:this.volumeId,dimensionGroupNumber:e,numDimensionGroups:this.numDimensionGroups,imageIdGroupIndex:e-1,numImageIdGroups:this.numDimensionGroups,splittingTag:this.splittingTag}))}scroll(e){const t=this._dimensionGroupNumber+e;t<1?this.dimensionGroupNumber=this.numDimensionGroups:t>this.numDimensionGroups?this.dimensionGroupNumber=1:this.dimensionGroupNumber=t}getCurrentDimensionGroupImageIds(){return this._imageIdGroups[this._dimensionGroupNumber-1]}flatImageIdIndexToDimensionGroupNumber(e){return Math.floor(e/this._imageIdGroups[0].length)+1}flatImageIdIndexToImageIdIndex(e){return e%this._imageIdGroups[0].length}get splittingTag(){return this._splittingTag}isDimensionGroupLoaded(e){return this._loadedDimensionGroups.has(e)}markDimensionGroupAsLoaded(e){this._loadedDimensionGroups.add(e),E(y,M.DYNAMIC_VOLUME_DIMENSION_GROUP_LOADED,{volumeId:this.volumeId,dimensionGroupNumber:e})}checkDimensionGroupCompletion(e){const t=this.flatImageIdIndexToDimensionGroupNumber(e);this._imageIdGroups[t-1].every(o=>{const i=this.getImageIdIndex(o);return this.cachedFrames[i]===ue.FULL_RESOLUTION})&&!this.isDimensionGroupLoaded(t)&&this.markDimensionGroupAsLoaded(t)}}function Qe(l,e,t){return e.reduce((n,s)=>s.apply(n,t),l)}const Xe={name:"InPlaneDecimationModifier",apply(l,e){const[t=1,n=t]=e.options.ijkDecimation??[],s=Math.max(1,Math.floor(t)),o=Math.max(1,Math.floor(n));if(s===1&&o===1)return l;const[i,a]=l.dimensions,r=Math.max(1,Math.floor(i/s)),d=Math.max(1,Math.floor(a/o)),g=[r,d,l.dimensions[2]],m=[l.spacing[0]*s,l.spacing[1]*o,l.spacing[2]],p={...l.metadata,Columns:r,Rows:d,PixelSpacing:[m[1],m[0]]};return{...l,dimensions:g,spacing:m,metadata:p}}};function mt(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a streaming image volume ");const[t=1,n=t,s=1]=e.ijkDecimation??[],o=Math.max(1,Math.floor(t)),i=n>1?Math.max(1,Math.floor(n)):o,a=Math.max(1,Math.floor(s)),r=o>1||i>1,d={ijkDecimation:[o,i,a]},g=[Xe];function m(c,u){return u===1?c:`${c}#decimation=${u}`}const p=Math.floor(e.imageIds.length/a),x=a>1&&e.imageIds.length<=p+1;if(a>1&&!x){const c=pe(e.imageIds,a),u=Array.isArray(c)&&c.length&&typeof c[0]=="number"?c.map(P=>e.imageIds[P]):c;e.imageIds=u}o>1&&(e.imageIds=e.imageIds.map(c=>m(c,o)));async function f(){const c=N(e.imageIds,l),u={volumeId:l,imageIds:e.imageIds,options:d},P=Qe(c,g,u),{dimensions:I,spacing:R,origin:w,direction:V,metadata:_,imageIds:b,dataType:B,numberOfComponents:z}=P,C=new xe({volumeId:l,metadata:_,dimensions:I,spacing:R,origin:w,direction:V,imageIds:b,dataType:B,numberOfComponents:z},{imageIds:b,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});if(r){const D=C.imageData;D&&(D.setDimensions(C.dimensions),D.setSpacing(C.spacing),D.modified());const T=j.createImageVolumeVoxelManager({dimensions:C.dimensions,imageIds:C.imageIds,numberOfComponents:z});C.voxelManager=T,D&&D.set({voxelManager:T})}return C}const h=f();return{promise:h,decache:()=>{h.then(c=>{c.destroy(),c=null})},cancel:()=>{h.then(c=>{c.cancelLoading()})}}}function ht(l,e){if(!e||!e.imageIds||!e.imageIds.length)throw new Error("ImageIds must be provided to create a 4D streaming image volume");const{imageIds:t}=e,{splittingTag:n,imageIdGroups:s}=we(t),o=Math.floor(s.length/2),i=N(s[o],l),{metadata:a,dimensions:r,spacing:d,direction:g,sizeInBytes:m,origin:p,numberOfComponents:x,dataType:f}=i,h=g.slice(6,9),c=s.map(R=>fe(R,h).sortedImageIds),u=c.flat(),P=j.createScalarDynamicVolumeVoxelManager({dimensions:r,imageIdGroups:c,dimensionGroupNumber:1,numberOfComponents:x});let I=new Ye({volumeId:l,metadata:a,dimensions:r,spacing:d,origin:p,direction:g,sizeInBytes:m,imageIds:u,imageIdGroups:c,splittingTag:n,voxelManager:P,numberOfComponents:x,dataType:f},{imageIds:u,loadStatus:{loaded:!1,loading:!1,cancelled:!1,cachedFrames:[],callbacks:[]}});return{promise:Promise.resolve(I),decache:()=>{I.destroy(),I=null},cancel:()=>{I.cancelLoading()}}}const ut={GenericViewport:je,DefaultRenderPathResolver:Ne,defaultRenderPathResolver:Le,ECGGenericViewport:Ae,createDefaultECGRenderPaths:Oe,createECGRenderPathResolver:ke,DefaultECGDataProvider:Fe,ecgProjection:$e,VideoGenericViewport:We,createDefaultVideoRenderPaths:Te,createVideoRenderPathResolver:ze,DefaultVideoDataProvider:be,videoProjection:qe,PlanarViewport:ye,createDefaultPlanarRenderPaths:Ge,createPlanarRenderPathResolver:_e,DefaultPlanarDataProvider:Me,planarProjection:Ze,VolumeViewport3D:Ee,createDefaultVolume3DRenderPaths:ve,createVolume3DRenderPathResolver:Se,DefaultVolume3DDataProvider:Re,volume3DProjection:Je,WSIGenericViewport:De,createDefaultWSIRenderPaths:Pe,createWSIRenderPathResolver:Ce,DefaultWSIDataProvider:Ve,wsiProjection:Ke},pt=Ie;export{ft as ActorRenderMode,U as BaseRenderingEngine,It as BaseVolumeViewport,Vt as CONSTANTS,A as ContextPoolRenderingEngine,Fe as DefaultECGDataProvider,Me as DefaultPlanarDataProvider,Ne as DefaultRenderPathResolver,be as DefaultVideoDataProvider,Re as DefaultVolume3DDataProvider,Ve as DefaultWSIDataProvider,Ae as ECGGenericViewport,Ct as ECGViewport,Pt as EPSILON,M as EVENTS,Dt as Enums,je as GenericViewport,Ee as GenericVolumeViewport3D,Rt as ImageVolume,pt as LegacyVolumeViewport3D,ye as PlanarViewport,St as ProgressiveRetrieveImages,vt as RenderBackends,lt as RenderingEngine,Et as Settings,Mt as StackViewport,Ye as StreamingDynamicImageVolume,xe as StreamingImageVolume,_t as Surface,He as TiledRenderingEngine,We as VideoGenericViewport,Gt as VideoViewport,yt as Viewport,bt as ViewportProjectionService,zt as VolumeViewport,Ie as VolumeViewport3D,De as WSIGenericViewport,Tt as WSIViewport,ct as addImageSlicesToViewports,kn as addVolumesToViewports,Wt as cache,Ft as canRenderFloatTextures,kt as convertColorArrayToRgbString,Ot as convertMapperToNotSharedMapper,At as cornerstoneMeshLoader,ht as cornerstoneStreamingDynamicImageVolumeLoader,Lt as cornerstoneStreamingImageVolumeLoader,Nt as createCanvas,Oe as createDefaultECGRenderPaths,Ge as createDefaultPlanarRenderPaths,Te as createDefaultVideoRenderPaths,ve as createDefaultVolume3DRenderPaths,Pe as createDefaultWSIRenderPaths,ke as createECGRenderPathResolver,_e as createPlanarRenderPathResolver,ze as createVideoRenderPathResolver,jt as createViewportElement,Se as createVolume3DRenderPathResolver,Bt as createVolumeActor,Ht as createVolumeMapper,Ce as createWSIRenderPathResolver,mt as decimatedVolumeLoader,Le as defaultRenderPathResolver,Ut as detectRenderingCapabilities,$e as ecgProjection,y as eventTarget,$t as geometryLoader,L as getConfiguration,qt as getEffectiveRenderBackend,vn as getEnabledElement,En as getEnabledElementByIds,Mn as getEnabledElementByViewportId,_n as getEnabledElements,S as getOrCreateCanvas,Zt as getProjectionScaleMatrix,Jt as getRenderBackend,Kt as getRenderingCapabilities,Yt as getRenderingEngine,Qt as getRenderingEngines,Xt as getShouldUseCPURendering,en as getUseGenericViewport,tn as getWebWorkerManager,nn as imageLoadPoolManager,on as imageLoader,sn as imageRetrievalPoolManager,an as init,rn as isCornerstoneInitialized,dn as isRegisteredRenderBackend,cn as isRegisteredViewportType,ln as metaData,gn as peerImport,Ze as planarProjection,mn as registerImageLoader,hn as registerRenderBackend,un as registerViewportType,ut as renderingEngineExportsV2,pn as requestPoolManager,xn as resetInitialization,wn as resetUseCPURendering,fn as setCanvasCreator,In as setConfiguration,Vn as setPreferSizeOverAccuracy,Cn as setRenderBackend,Pn as setUseCPURendering,Gn as setVolumesForViewports,E as triggerEvent,G as updateCanvasSizeAndAspectRatio,yn as utilities,gt as version,qe as videoProjection,bn as viewportHasCanvasWorldTransform,zn as viewportHasFrameOfReferenceUID,Tn as viewportHasPan,Wn as viewportHasZoom,Dn as viewportProjection,Je as volume3DProjection,Rn as volumeLoader,Ke as wsiProjection};
@@ -1 +1 @@
1
- import{s as E,T,f as A,b as x,k as L,A as O,a as y,p as g,S as D,E as w,P,O as M,ak as v,al as B,F as R,am as j}from"./syntax-6JMrtt_T.js";class te{constructor(t,e,n,i){this.state=t,this.pos=e,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(t){let e=E(this.state).resolveInner(this.pos,-1);for(;e&&t.indexOf(e.name)<0;)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos),n=Math.max(e.from,this.pos-250),i=e.text.slice(n-e.from,this.pos-e.from),l=i.search(W(t));return l<0?null:{from:n+l,to:this.pos,text:i.slice(l)}}get aborted(){return this.abortListeners==null}addEventListener(t,e,n){t=="abort"&&this.abortListeners&&(this.abortListeners.push(e),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function S(o){let t=Object.keys(o).join(""),e=/\w/.test(t);return e&&(t=t.replace(/\w/g,"")),`[${e?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function V(o){let t=Object.create(null),e=Object.create(null);for(let{label:i}of o){t[i[0]]=!0;for(let l=1;l<i.length;l++)e[i[l]]=!0}let n=S(t)+S(e)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function ne(o){let t=o.map(i=>typeof i=="string"?{label:i}:i),[e,n]=t.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:V(t);return i=>{let l=i.matchBefore(n);return l||i.explicit?{from:l?l.from:i.pos,options:t,validFor:e}:null}}function oe(o,t){return e=>{for(let n=E(e.state).resolveInner(e.pos,-1);n;n=n.parent){if(o.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return t(e)}}function W(o,t){var e;let{source:n}=o,i=n[n.length-1]!="$";return i?new RegExp(`(?:${n})${i?"$":""}`,(e=o.flags)!==null&&e!==void 0?e:o.ignoreCase?"i":""):o}const q=O.define(),z=w.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class H{constructor(t,e,n,i){this.field=t,this.line=e,this.from=n,this.to=i}}class b{constructor(t,e,n){this.field=t,this.from=e,this.to=n}map(t){let e=t.mapPos(this.from,-1,v.TrackDel),n=t.mapPos(this.to,1,v.TrackDel);return e==null||n==null?null:new b(this.field,e,n)}}class I{constructor(t,e){this.lines=t,this.fieldPositions=e}instantiate(t,e){let n=[],i=[e],l=t.doc.lineAt(e),p=/^\s*/.exec(l.text)[0];for(let r of this.lines){if(n.length){let f=p,c=/^\t*/.exec(r)[0].length;for(let s=0;s<c;s++)f+=t.facet(L);i.push(e+f.length-c),r=f+r.slice(c)}n.push(r),e+=r.length+1}let a=this.fieldPositions.map(r=>new b(r.field,i[r.line]+r.from,i[r.line]+r.to));return{text:n,ranges:a}}static parse(t){let e=[],n=[],i=[],l;for(let p of t.split(/\r\n?|\n/)){for(;l=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(p);){let a=l[1]?+l[1]:null,r=l[2]||l[3]||"",f=-1;a===0&&(a=1e9);let c=r.replace(/\\[{}]/g,s=>s[1]);for(let s=0;s<e.length;s++)(a!=null?e[s].seq==a:c&&e[s].name==c)&&(f=s);if(f<0){let s=0;for(;s<e.length&&(a==null||e[s].seq!=null&&e[s].seq<a);)s++;e.splice(s,0,{seq:a,name:c}),f=s;for(let d of i)d.field>=f&&d.field++}for(let s of i)if(s.line==n.length&&s.from>l.index){let d=l[2]?3+(l[1]||"").length:2;s.from-=d,s.to-=d}i.push(new H(f,n.length,l.index,l.index+c.length)),p=p.slice(0,l.index)+r+p.slice(l.index+l[0].length)}p=p.replace(/\\([{}])/g,(a,r,f)=>{for(let c of i)c.line==n.length&&c.from>f&&(c.from--,c.to--);return r}),n.push(p)}return new I(n,i)}}let K=g.widget({widget:new class extends B{toDOM(){let o=document.createElement("span");return o.className="cm-snippetFieldPosition",o}ignoreEvent(){return!1}}}),N=g.mark({class:"cm-snippetField"});class m{constructor(t,e){this.ranges=t,this.active=e,this.deco=g.set(t.map(n=>(n.from==n.to?K:N).range(n.from,n.to)),!0)}map(t){let e=[];for(let n of this.ranges){let i=n.map(t);if(!i)return null;e.push(i)}return new m(e,this.active)}selectionInsideField(t){return t.ranges.every(e=>this.ranges.some(n=>n.field==this.active&&n.from<=e.from&&n.to>=e.to))}}const h=x.define({map(o,t){return o&&o.map(t)}}),X=x.define(),u=D.define({create(){return null},update(o,t){for(let e of t.effects){if(e.is(h))return e.value;if(e.is(X)&&o)return new m(o.ranges,e.value)}return o&&t.docChanged&&(o=o.map(t.changes)),o&&t.selection&&!o.selectionInsideField(t.selection)&&(o=null),o},provide:o=>w.decorations.from(o,t=>t?t.deco:g.none)});function k(o,t){return y.create(o.filter(e=>e.field==t).map(e=>y.range(e.from,e.to)))}function U(o){let t=I.parse(o);return(e,n,i,l)=>{let{text:p,ranges:a}=t.instantiate(e.state,i),{main:r}=e.state.selection,f={changes:{from:i,to:l==r.from?r.to:l,insert:A.of(p)},scrollIntoView:!0,annotations:n?[q.of(n),T.userEvent.of("input.complete")]:void 0};if(a.length&&(f.selection=k(a,0)),a.some(c=>c.field>0)){let c=new m(a,0),s=f.effects=[h.of(c)];e.state.field(u,!1)===void 0&&s.push(x.appendConfig.of([u,Z,_,z]))}e.dispatch(e.state.update(f))}}function $(o){return({state:t,dispatch:e})=>{let n=t.field(u,!1);if(!n||o<0&&n.active==0)return!1;let i=n.active+o,l=o>0&&!n.ranges.some(p=>p.field==i+o);return e(t.update({selection:k(n.ranges,i),effects:h.of(l?null:new m(n.ranges,i)),scrollIntoView:!0})),!0}}const Y=({state:o,dispatch:t})=>o.field(u,!1)?(t(o.update({effects:h.of(null)})),!0):!1,G=$(1),J=$(-1),Q=[{key:"Tab",run:G,shift:J},{key:"Escape",run:Y}],F=R.define({combine(o){return o.length?o[0]:Q}}),Z=P.highest(M.compute([F],o=>o.facet(F)));function ie(o,t){return{...t,apply:U(o)}}const _=w.domEventHandlers({mousedown(o,t){let e=t.state.field(u,!1),n;if(!e||(n=t.posAtCoords({x:o.clientX,y:o.clientY}))==null)return!1;let i=e.ranges.find(l=>l.from<=n&&l.to>=n);return!i||i.field==e.active?!1:(t.dispatch({selection:k(e.ranges,i.field),effects:h.of(e.ranges.some(l=>l.field>i.field)?new m(e.ranges,i.field):null),scrollIntoView:!0}),!0)}}),C=new class extends j{};C.startSide=1;C.endSide=-1;export{te as C,ne as c,oe as i,ie as s};
1
+ import{s as E,T,f as A,b as x,k as L,A as O,a as y,p as g,S as D,E as w,P,O as M,ak as v,al as B,F as R,am as j}from"./syntax-DpAgYXYh.js";class te{constructor(t,e,n,i){this.state=t,this.pos=e,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(t){let e=E(this.state).resolveInner(this.pos,-1);for(;e&&t.indexOf(e.name)<0;)e=e.parent;return e?{from:e.from,to:this.pos,text:this.state.sliceDoc(e.from,this.pos),type:e.type}:null}matchBefore(t){let e=this.state.doc.lineAt(this.pos),n=Math.max(e.from,this.pos-250),i=e.text.slice(n-e.from,this.pos-e.from),l=i.search(W(t));return l<0?null:{from:n+l,to:this.pos,text:i.slice(l)}}get aborted(){return this.abortListeners==null}addEventListener(t,e,n){t=="abort"&&this.abortListeners&&(this.abortListeners.push(e),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function S(o){let t=Object.keys(o).join(""),e=/\w/.test(t);return e&&(t=t.replace(/\w/g,"")),`[${e?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function V(o){let t=Object.create(null),e=Object.create(null);for(let{label:i}of o){t[i[0]]=!0;for(let l=1;l<i.length;l++)e[i[l]]=!0}let n=S(t)+S(e)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function ne(o){let t=o.map(i=>typeof i=="string"?{label:i}:i),[e,n]=t.every(i=>/^\w+$/.test(i.label))?[/\w*$/,/\w+$/]:V(t);return i=>{let l=i.matchBefore(n);return l||i.explicit?{from:l?l.from:i.pos,options:t,validFor:e}:null}}function oe(o,t){return e=>{for(let n=E(e.state).resolveInner(e.pos,-1);n;n=n.parent){if(o.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return t(e)}}function W(o,t){var e;let{source:n}=o,i=n[n.length-1]!="$";return i?new RegExp(`(?:${n})${i?"$":""}`,(e=o.flags)!==null&&e!==void 0?e:o.ignoreCase?"i":""):o}const q=O.define(),z=w.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class H{constructor(t,e,n,i){this.field=t,this.line=e,this.from=n,this.to=i}}class b{constructor(t,e,n){this.field=t,this.from=e,this.to=n}map(t){let e=t.mapPos(this.from,-1,v.TrackDel),n=t.mapPos(this.to,1,v.TrackDel);return e==null||n==null?null:new b(this.field,e,n)}}class I{constructor(t,e){this.lines=t,this.fieldPositions=e}instantiate(t,e){let n=[],i=[e],l=t.doc.lineAt(e),p=/^\s*/.exec(l.text)[0];for(let r of this.lines){if(n.length){let f=p,c=/^\t*/.exec(r)[0].length;for(let s=0;s<c;s++)f+=t.facet(L);i.push(e+f.length-c),r=f+r.slice(c)}n.push(r),e+=r.length+1}let a=this.fieldPositions.map(r=>new b(r.field,i[r.line]+r.from,i[r.line]+r.to));return{text:n,ranges:a}}static parse(t){let e=[],n=[],i=[],l;for(let p of t.split(/\r\n?|\n/)){for(;l=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(p);){let a=l[1]?+l[1]:null,r=l[2]||l[3]||"",f=-1;a===0&&(a=1e9);let c=r.replace(/\\[{}]/g,s=>s[1]);for(let s=0;s<e.length;s++)(a!=null?e[s].seq==a:c&&e[s].name==c)&&(f=s);if(f<0){let s=0;for(;s<e.length&&(a==null||e[s].seq!=null&&e[s].seq<a);)s++;e.splice(s,0,{seq:a,name:c}),f=s;for(let d of i)d.field>=f&&d.field++}for(let s of i)if(s.line==n.length&&s.from>l.index){let d=l[2]?3+(l[1]||"").length:2;s.from-=d,s.to-=d}i.push(new H(f,n.length,l.index,l.index+c.length)),p=p.slice(0,l.index)+r+p.slice(l.index+l[0].length)}p=p.replace(/\\([{}])/g,(a,r,f)=>{for(let c of i)c.line==n.length&&c.from>f&&(c.from--,c.to--);return r}),n.push(p)}return new I(n,i)}}let K=g.widget({widget:new class extends B{toDOM(){let o=document.createElement("span");return o.className="cm-snippetFieldPosition",o}ignoreEvent(){return!1}}}),N=g.mark({class:"cm-snippetField"});class m{constructor(t,e){this.ranges=t,this.active=e,this.deco=g.set(t.map(n=>(n.from==n.to?K:N).range(n.from,n.to)),!0)}map(t){let e=[];for(let n of this.ranges){let i=n.map(t);if(!i)return null;e.push(i)}return new m(e,this.active)}selectionInsideField(t){return t.ranges.every(e=>this.ranges.some(n=>n.field==this.active&&n.from<=e.from&&n.to>=e.to))}}const h=x.define({map(o,t){return o&&o.map(t)}}),X=x.define(),u=D.define({create(){return null},update(o,t){for(let e of t.effects){if(e.is(h))return e.value;if(e.is(X)&&o)return new m(o.ranges,e.value)}return o&&t.docChanged&&(o=o.map(t.changes)),o&&t.selection&&!o.selectionInsideField(t.selection)&&(o=null),o},provide:o=>w.decorations.from(o,t=>t?t.deco:g.none)});function k(o,t){return y.create(o.filter(e=>e.field==t).map(e=>y.range(e.from,e.to)))}function U(o){let t=I.parse(o);return(e,n,i,l)=>{let{text:p,ranges:a}=t.instantiate(e.state,i),{main:r}=e.state.selection,f={changes:{from:i,to:l==r.from?r.to:l,insert:A.of(p)},scrollIntoView:!0,annotations:n?[q.of(n),T.userEvent.of("input.complete")]:void 0};if(a.length&&(f.selection=k(a,0)),a.some(c=>c.field>0)){let c=new m(a,0),s=f.effects=[h.of(c)];e.state.field(u,!1)===void 0&&s.push(x.appendConfig.of([u,Z,_,z]))}e.dispatch(e.state.update(f))}}function $(o){return({state:t,dispatch:e})=>{let n=t.field(u,!1);if(!n||o<0&&n.active==0)return!1;let i=n.active+o,l=o>0&&!n.ranges.some(p=>p.field==i+o);return e(t.update({selection:k(n.ranges,i),effects:h.of(l?null:new m(n.ranges,i)),scrollIntoView:!0})),!0}}const Y=({state:o,dispatch:t})=>o.field(u,!1)?(t(o.update({effects:h.of(null)})),!0):!1,G=$(1),J=$(-1),Q=[{key:"Tab",run:G,shift:J},{key:"Escape",run:Y}],F=R.define({combine(o){return o.length?o[0]:Q}}),Z=P.highest(M.compute([F],o=>o.facet(F)));function ie(o,t){return{...t,apply:U(o)}}const _=w.domEventHandlers({mousedown(o,t){let e=t.state.field(u,!1),n;if(!e||(n=t.posAtCoords({x:o.clientX,y:o.clientY}))==null)return!1;let i=e.ranges.find(l=>l.from<=n&&l.to>=n);return!i||i.field==e.active?!1:(t.dispatch({selection:k(e.ranges,i.field),effects:h.of(e.ranges.some(l=>l.field>i.field)?new m(e.ranges,i.field):null),scrollIntoView:!0}),!0)}}),C=new class extends j{};C.startSide=1;C.endSide=-1;export{te as C,ne as c,oe as i,ie as s};